From 30153c6d2e456b2d9a63b989bfe84c50cca2e4e0 Mon Sep 17 00:00:00 2001 From: Richard Eisenberg Date: Wed, 16 Nov 2022 15:25:49 -0500 Subject: [PATCH] Add support for annotating types with layouts. For example, this adds support for [(int : immediate)], [(string list : value)], and [(type 'a t : immediate)]. The full syntax is at https://docpub/JD/p/surface-syntax-for-unboxed-types/db6b3168-1985-302e-155c-e2b59c8f40bf#layout-annotations Also, fix up pretty-printing to show more layouts. --- .depend | 23 +- boot/menhir/parser.ml | 20283 ++++++++-------- parsing/ast_helper.ml | 26 +- parsing/ast_helper.mli | 15 +- parsing/ast_iterator.ml | 29 +- parsing/ast_iterator.mli | 1 + parsing/ast_mapper.ml | 30 +- parsing/ast_mapper.mli | 1 + parsing/asttypes.mli | 7 + parsing/builtin_attributes.ml | 19 +- parsing/builtin_attributes.mli | 9 +- parsing/depend.ml | 7 +- parsing/location.ml | 2 + parsing/location.mli | 3 +- parsing/parser.mly | 236 +- parsing/parsetree.mli | 20 +- parsing/pprintast.ml | 64 +- parsing/pprintast.mli | 5 + parsing/printast.ml | 37 +- testsuite/tests/letrec-check/unboxed.ml | 2 +- .../locations_test.compilers.reference | 4 +- testsuite/tests/typing-immediate/immediate.ml | 37 +- .../tests/typing-layouts-missing-cmi/c.ml | 4 +- testsuite/tests/typing-layouts/annots.ml | 378 + testsuite/tests/typing-layouts/basics.ml | 58 +- testsuite/tests/typing-layouts/datatypes.ml | 10 +- testsuite/tests/typing-layouts/modules.ml | 70 +- testsuite/tests/typing-layouts/void.ml | 2 +- testsuite/tests/typing-local/crossing.ml | 2 +- testsuite/tests/typing-unboxed-types/test.ml | 8 +- testsuite/tests/typing-unboxed/test.ml | 2 +- tools/eqparsetree.ml | 20 +- tools/ocamlprof.ml | 2 +- typing/ctype.ml | 64 +- typing/ctype.mli | 11 +- typing/datarepr.ml | 6 +- typing/oprint.ml | 77 +- typing/outcometree.mli | 28 +- typing/primitive.ml | 2 + typing/printtyp.ml | 245 +- typing/printtyped.ml | 23 +- typing/tast_iterator.ml | 9 +- typing/tast_iterator.mli | 1 + typing/tast_mapper.ml | 15 +- typing/tast_mapper.mli | 1 + typing/type_layout.ml | 19 +- typing/type_layout.mli | 7 +- typing/typeclass.ml | 4 +- typing/typecore.ml | 14 +- typing/typedecl.ml | 34 +- typing/typedtree.ml | 13 +- typing/typedtree.mli | 21 +- typing/types.ml | 4 + typing/types.mli | 9 +- typing/typetexp.ml | 125 +- typing/typetexp.mli | 15 +- typing/untypeast.ml | 23 +- 57 files changed, 12195 insertions(+), 9991 deletions(-) create mode 100644 testsuite/tests/typing-layouts/annots.ml diff --git a/.depend b/.depend index 80c7821b6d..c69f021e69 100644 --- a/.depend +++ b/.depend @@ -282,14 +282,17 @@ parsing/ast_invariants.cmi : \ parsing/ast_iterator.cmo : \ parsing/parsetree.cmi \ parsing/location.cmi \ + parsing/asttypes.cmi \ parsing/ast_iterator.cmi parsing/ast_iterator.cmx : \ parsing/parsetree.cmi \ parsing/location.cmx \ + parsing/asttypes.cmi \ parsing/ast_iterator.cmi parsing/ast_iterator.cmi : \ parsing/parsetree.cmi \ - parsing/location.cmi + parsing/location.cmi \ + parsing/asttypes.cmi parsing/ast_mapper.cmo : \ parsing/parsetree.cmi \ utils/misc.cmi \ @@ -316,7 +319,8 @@ parsing/ast_mapper.cmx : \ parsing/ast_mapper.cmi parsing/ast_mapper.cmi : \ parsing/parsetree.cmi \ - parsing/location.cmi + parsing/location.cmi \ + parsing/asttypes.cmi parsing/asttypes.cmi : \ parsing/location.cmi parsing/attr_helper.cmo : \ @@ -360,7 +364,8 @@ parsing/builtin_attributes.cmx : \ parsing/builtin_attributes.cmi : \ parsing/parsetree.cmi \ utils/misc.cmi \ - parsing/location.cmi + parsing/location.cmi \ + parsing/asttypes.cmi parsing/camlinternalMenhirLib.cmo : \ parsing/camlinternalMenhirLib.cmi parsing/camlinternalMenhirLib.cmx : \ @@ -1405,16 +1410,18 @@ typing/type_layout.cmo : \ typing/types.cmi \ utils/misc.cmi \ parsing/builtin_attributes.cmi \ + parsing/asttypes.cmi \ typing/type_layout.cmi typing/type_layout.cmx : \ typing/types.cmx \ utils/misc.cmx \ parsing/builtin_attributes.cmx \ + parsing/asttypes.cmi \ typing/type_layout.cmi typing/type_layout.cmi : \ typing/types.cmi \ parsing/parsetree.cmi \ - parsing/builtin_attributes.cmi + parsing/asttypes.cmi typing/typeclass.cmo : \ utils/warnings.cmi \ typing/typetexp.cmi \ @@ -1558,6 +1565,7 @@ typing/typecore.cmx : \ typing/typecore.cmi : \ typing/types.cmi \ typing/typedtree.cmi \ + typing/type_layout.cmi \ typing/shape.cmi \ typing/path.cmi \ parsing/parsetree.cmi \ @@ -1736,7 +1744,6 @@ typing/typedtree.cmo : \ parsing/location.cmi \ typing/ident.cmi \ typing/env.cmi \ - parsing/builtin_attributes.cmi \ parsing/asttypes.cmi \ typing/typedtree.cmi typing/typedtree.cmx : \ @@ -1751,7 +1758,6 @@ typing/typedtree.cmx : \ parsing/location.cmx \ typing/ident.cmx \ typing/env.cmx \ - parsing/builtin_attributes.cmx \ parsing/asttypes.cmi \ typing/typedtree.cmi typing/typedtree.cmi : \ @@ -1765,7 +1771,6 @@ typing/typedtree.cmi : \ parsing/location.cmi \ typing/ident.cmi \ typing/env.cmi \ - parsing/builtin_attributes.cmi \ parsing/asttypes.cmi typing/typemod.cmo : \ utils/warnings.cmi \ @@ -1866,12 +1871,12 @@ typing/typeopt.cmo : \ typing/predef.cmi \ typing/path.cmi \ utils/numbers.cmi \ - utils/misc.cmi \ lambda/lambda.cmi \ typing/ident.cmi \ typing/env.cmi \ typing/ctype.cmi \ utils/config.cmi \ + utils/clflags.cmi \ parsing/asttypes.cmi \ typing/typeopt.cmi typing/typeopt.cmx : \ @@ -1881,12 +1886,12 @@ typing/typeopt.cmx : \ typing/predef.cmx \ typing/path.cmx \ utils/numbers.cmx \ - utils/misc.cmx \ lambda/lambda.cmx \ typing/ident.cmx \ typing/env.cmx \ typing/ctype.cmx \ utils/config.cmx \ + utils/clflags.cmx \ parsing/asttypes.cmi \ typing/typeopt.cmi typing/typeopt.cmi : \ diff --git a/boot/menhir/parser.ml b/boot/menhir/parser.ml index e28c425ea5..96c365dbd6 100644 --- a/boot/menhir/parser.ml +++ b/boot/menhir/parser.ml @@ -16,7 +16,7 @@ module MenhirBasics = struct | VAL | UNDERSCORE | UIDENT of ( -# 842 "parsing/parser.mly" +# 914 "parsing/parser.mly" (string) # 22 "parsing/parser.ml" ) @@ -28,7 +28,7 @@ module MenhirBasics = struct | THEN | STRUCT | STRING of ( -# 829 "parsing/parser.mly" +# 901 "parsing/parser.mly" (string * Location.t * string option) # 34 "parsing/parser.ml" ) @@ -41,12 +41,12 @@ module MenhirBasics = struct | RBRACKET | RBRACE | QUOTED_STRING_ITEM of ( -# 833 "parsing/parser.mly" +# 905 "parsing/parser.mly" (string * Location.t * string * Location.t * string option) # 47 "parsing/parser.ml" ) | QUOTED_STRING_EXPR of ( -# 831 "parsing/parser.mly" +# 903 "parsing/parser.mly" (string * Location.t * string * Location.t * string option) # 52 "parsing/parser.ml" ) @@ -54,7 +54,7 @@ module MenhirBasics = struct | QUESTION | PRIVATE | PREFIXOP of ( -# 815 "parsing/parser.mly" +# 887 "parsing/parser.mly" (string) # 60 "parsing/parser.ml" ) @@ -64,7 +64,7 @@ module MenhirBasics = struct | PERCENT | OR | OPTLABEL of ( -# 808 "parsing/parser.mly" +# 880 "parsing/parser.mly" (string) # 70 "parsing/parser.ml" ) @@ -84,12 +84,12 @@ module MenhirBasics = struct | LPAREN | LOCAL | LIDENT of ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) # 90 "parsing/parser.ml" ) | LETOP of ( -# 771 "parsing/parser.mly" +# 843 "parsing/parser.mly" (string) # 95 "parsing/parser.ml" ) @@ -109,39 +109,39 @@ module MenhirBasics = struct | LBRACE | LAZY | LABEL of ( -# 776 "parsing/parser.mly" +# 848 "parsing/parser.mly" (string) # 115 "parsing/parser.ml" ) | INT of ( -# 775 "parsing/parser.mly" +# 847 "parsing/parser.mly" (string * char option) # 120 "parsing/parser.ml" ) | INITIALIZER | INHERIT | INFIXOP4 of ( -# 769 "parsing/parser.mly" +# 841 "parsing/parser.mly" (string) # 127 "parsing/parser.ml" ) | INFIXOP3 of ( -# 768 "parsing/parser.mly" +# 840 "parsing/parser.mly" (string) # 132 "parsing/parser.ml" ) | INFIXOP2 of ( -# 767 "parsing/parser.mly" +# 839 "parsing/parser.mly" (string) # 137 "parsing/parser.ml" ) | INFIXOP1 of ( -# 766 "parsing/parser.mly" +# 838 "parsing/parser.mly" (string) # 142 "parsing/parser.ml" ) | INFIXOP0 of ( -# 765 "parsing/parser.mly" +# 837 "parsing/parser.mly" (string) # 147 "parsing/parser.ml" ) @@ -149,7 +149,7 @@ module MenhirBasics = struct | IN | IF | HASHOP of ( -# 826 "parsing/parser.mly" +# 898 "parsing/parser.mly" (string) # 155 "parsing/parser.ml" ) @@ -163,7 +163,7 @@ module MenhirBasics = struct | FUN | FOR | FLOAT of ( -# 753 "parsing/parser.mly" +# 825 "parsing/parser.mly" (string * char option) # 169 "parsing/parser.ml" ) @@ -177,7 +177,7 @@ module MenhirBasics = struct | ELSE | DOWNTO | DOTOP of ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) # 183 "parsing/parser.ml" ) @@ -185,14 +185,14 @@ module MenhirBasics = struct | DOT | DONE | DOCSTRING of ( -# 850 "parsing/parser.mly" +# 922 "parsing/parser.mly" (Docstrings.docstring) # 191 "parsing/parser.ml" ) | DO | CONSTRAINT | COMMENT of ( -# 849 "parsing/parser.mly" +# 921 "parsing/parser.mly" (string * Location.t) # 198 "parsing/parser.ml" ) @@ -203,7 +203,7 @@ module MenhirBasics = struct | COLON | CLASS | CHAR of ( -# 733 "parsing/parser.mly" +# 805 "parsing/parser.mly" (char) # 209 "parsing/parser.ml" ) @@ -216,7 +216,7 @@ module MenhirBasics = struct | ASSERT | AS | ANDOP of ( -# 772 "parsing/parser.mly" +# 844 "parsing/parser.mly" (string) # 222 "parsing/parser.ml" ) @@ -512,8 +512,10 @@ let unclosed opening_name opening_loc closing_name closing_loc = raise(Syntaxerr.Error(Syntaxerr.Unclosed(make_loc opening_loc, opening_name, make_loc closing_loc, closing_name))) -let expecting loc nonterm = - raise Syntaxerr.(Error(Expecting(make_loc loc, nonterm))) +let expecting_loc (loc : Location.t) (nonterm : string) = + raise Syntaxerr.(Error(Expecting(loc, nonterm))) +let expecting (loc : Lexing.position * Lexing.position) nonterm = + expecting_loc (make_loc loc) nonterm (* Using the function [not_expecting] in a semantic action means that this syntactic form is recognized by the parser but is in fact incorrect. This @@ -662,20 +664,16 @@ let lapply ~loc p1 p2 = else raise (Syntaxerr.Error( Syntaxerr.Applicative_path (make_loc loc))) -(* [loc_map] could be [Location.map]. *) -let loc_map (f : 'a -> 'b) (x : 'a Location.loc) : 'b Location.loc = - { x with txt = f x.txt } - let make_ghost x = { x with loc = { x.loc with loc_ghost = true }} let loc_last (id : Longident.t Location.loc) : string Location.loc = - loc_map Longident.last id + Location.map Longident.last id let loc_lident (id : string Location.loc) : Longident.t Location.loc = - loc_map (fun x -> Lident x) id + Location.map (fun x -> Lident x) id let exp_of_longident lid = - let lid = loc_map (fun id -> Lident (Longident.last id)) lid in + let lid = Location.map (fun id -> Lident (Longident.last id)) lid in Exp.mk ~loc:lid.loc (Pexp_ident lid) let exp_of_label lbl = @@ -686,7 +684,8 @@ let pat_of_label lbl = let mk_newtypes ~loc newtypes exp = let mkexp = mkexp ~loc in - List.fold_right (fun newtype exp -> mkexp (Pexp_newtype (newtype, exp))) + List.fold_right (fun (name, layout) exp -> + mkexp (Pexp_newtype (name, exp, layout))) newtypes exp let wrap_type_annotation ~loc newtypes core_type body = @@ -694,7 +693,8 @@ let wrap_type_annotation ~loc newtypes core_type body = let mk_newtypes = mk_newtypes ~loc in let exp = mkexp(Pexp_constraint(body,core_type)) in let exp = mk_newtypes newtypes exp in - (exp, ghtyp(Ptyp_poly(newtypes, Typ.varify_constructors newtypes core_type))) + let vars, layouts = List.split newtypes in + (exp, ghtyp(Ptyp_poly(vars, Typ.varify_constructors vars core_type, layouts))) let wrap_exp_attrs ~loc body (ext, attrs) = let ghexp = ghexp ~loc in @@ -908,16 +908,88 @@ let mk_directive ~loc name arg = pdir_loc = make_loc loc; } -let check_layout loc id = - begin - match id with - | ("any" | "value" | "void" | "immediate64" | "immediate") -> () - | _ -> expecting loc "layout" - end; - Attr.mk ~loc:Location.none (mknoloc id) (PStr []) +(* returns both the translated layout and the string, because + the string is useful for building an Attribute *) +let check_layout loc id : (layout_annotation * string) with_loc = + let layout_annotation = match id with + | "any" -> Any + | "value" -> Value + | "void" -> Void + | "immediate64" -> Immediate64 + | "immediate" -> Immediate + | _ -> expecting_loc loc "layout" + in + mkloc (layout_annotation, id) loc + +(* See Note [Parsing layout annotations in types] *) +let check_layout_from_type layout_type : layout_annotation with_loc = + match layout_type.ptyp_desc with + | Ptyp_constr({ txt = Lident lay_string }, []) -> + Location.map fst (check_layout layout_type.ptyp_loc lay_string) + | _ -> expecting_loc layout_type.ptyp_loc "layout" + +(* See Note [Parsing layout annotations in types], the [Similar story] *) +let check_type_var_from_type tv_type : string with_loc = + match tv_type.ptyp_desc with + | Ptyp_var name -> mkloc name tv_type.ptyp_loc + | _ -> expecting_loc tv_type.ptyp_loc "type variable" + +(* Note [Parsing layout annotations in types] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + We wish to be able to parse [(int list : value)] as a layout annotation + in a type. This is slightly fraught, though: if we see [(int : value ...] + as we're parsing, have we seen the beginning a layout annotation, or have we + seen the beginning of a function type whose argument is labeled [int]? + + In order to build a non-conflicting parser with support for these layout + annotations, we must keep the productions for layout annotations in line + with those for labeled functions. The key action happens in the definition + of nonterminal [non_ident_atomic_type]. We have two problems to solve: + + 1. Before the COLON + + There are two different productions for layout annotations, one beginning with + [LPAREN LIDENT COLON] and the other wish [LPAREN non_ident_atomic_type COLON]. The + former nicely overlaps with the production for labeled functions (in + [strict_function_type]); this overlap allows menhir to avoid conflicts. + We similarly must be careful to avoid conflicts between these two productions, + which is why we define non_ident_atomic_type, which parses types that are + anything other than a single identifier. + + 2. After the COLON + + Because we need to keep the labeled-function parser and the layout-annotations + parser lined up until the disambiguator (either an [->] or a [)]), we still + must be careful after the colon. Here, we use [tuple_type], which again + dovetails with the productions in [strict_function_type]. + + Of course, a layout annotation is not quite a [tuple_type], and so + [check_layout_from_type] converts, reporting an error if the conversion + is impossible. + + The current design works well, but it is not as powerful as it could be. + In particular, the "before the colon" part accepts only non_ident_atomic_type, + meaning that e.g. [(int * bool * string : value)] cannot be parsed. If we + want to, we can extend this treatment to tuples or even function types, + but doing so seems under-motivated. + + [Similar story]: There is a similar overlap around [let f : ('a : value) ...]. + Is that the beginning of, say, a function type where ['a] is the argument? + Or is it the beginning of a list of universal variables. To avoid conflicts + in this case (the non-terminal of interest is [possibly_poly], which can't + know which side to take), we have layout-annotation case of [typevar] parse + liberally, lining up with the layout-annotation case of [non_ident_atomic_type], + checking that the variable is really a variable and the layout annotation + is really a layout annotation in [check_type_var_from_type] and + [check_layout_from_type]. +*) + + + + -# 921 "parsing/parser.ml" +# 993 "parsing/parser.ml" module Tables = struct @@ -1439,22 +1511,22 @@ module Tables = struct Obj.repr () and default_reduction = - (16, "\000\000\000\000\000\000\003:\0039\0038\0037\0036\003\007\0035\0034\0033\0032\0031\0030\003/\003.\003-\003,\003+\003*\003)\003(\003\026\003'\003&\003%\003$\003#\003\"\003\006\003!\003 \003\031\003\030\003\029\003\028\003\027\003\025\003\024\003\023\003\022\003\021\003\020\003\019\003\018\003\017\003\016\003\015\003\014\003\r\003\012\003\011\003\n\003\t\003\b\000\000\000\000\000,\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\163\001\213\001\192\001\210\001\209\001\208\001\214\001\218\000\000\003\164\001\212\001\211\001\193\001\216\001\207\001\206\001\205\001\204\001\203\001\201\001\217\001\215\000\000\000\000\000\000\000\237\000\000\000\000\001\196\000\000\000\000\000\000\001\198\000\000\000\000\000\000\001\200\001\222\001\219\001\202\001\194\001\220\001\221\000\000\003\162\003\161\003\165\000\000\000\000\000\026\001j\000\203\000\000\000\231\000\232\000\000\000\000\000\000\001\244\001\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\158\000\000\003\153\000\000\000\000\003\155\000\000\003\157\000\000\003\154\003\156\000\000\003\148\000\000\003\147\000\000\000\000\002\001\001\016\003\143\000\000\0015\002\000\000\000\003\146\000\000\002g\002f\000\000\000\000\000\000\000\000\000\000\000\000\000v\000\000\000\025\000\000\000\000\000t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\198\001v\000\000\000\000\000\000\000\000\000\000\000\000\002O\000\000\000\000\000\000\000\000\000\000\000\000\000q\000\000\000\000\000\000\000\000\000\000\002\244\000\000\002\160\002\161\000\000\002\158\002\159\000\000\000\000\000\000\000\000\000\000\001\141\001\140\000\000\002\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\240\000\017\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001t\000\000\000\000\001w\001u\001}\000C\002\193\003w\003v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000s\000\000\000\249\000\000\002\163\002\162\000\000\000\000\000\000\001\226\000\000\000\000\000'\000\000\000\000\000\000\001h\000\000\000\000\001|\000\000\001{\000\000\001k\001z\000\000\001i\000d\000 \000\000\000\000\001\169\000\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\142\000*\000\000\000\000\000!\000\028\000\000\000\000\000\000\000\000\003K\000\000\000\000\000\216\000\000\000\000\000\000\000\"\000\029\000\000\000\018\000\000\000\137\000\000\000\000\000\000\000\019\000\000\000\000\002X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003@\000\000\000\023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\000\000\003A\000\000\003I\002v\002b\000\000\000$\000\000\002c\000\000\000\000\001\223\000\000\000\000\000\000\000\000\003x\000\000\003y\000\000\000\000\000#\000\000\000\000\000\000\000%\000\000\000&\000\000\000(\000\000\000\000\000)\002V\002U\000\000\000\000\000\000\000\000\000\000\000\000\000o\000\000\002\249\000r\000u\000p\002\238\003\166\002\239\002!\002\241\000\000\000\000\002\246\002\157\002\248\000\000\000\000\000\000\002\255\002\252\000\000\000\000\000\000\002\029\002\015\000\000\000\000\000\000\000\000\002\019\000\000\002\014\000\000\002 \003\005\000\000\000\000\000\000\000\000\001\171\000\000\000\000\002\031\002\247\000}\000\000\000\000\000|\000\000\003\000\002\240\000\000\002\025\000\000\000\000\003\003\000\000\003\002\003\001\000\000\002\021\000\000\000\000\002\017\002\016\002\030\002\022\000\000\000{\000\000\002\254\002\253\000\000\002\251\000\000\002\165\002\164\000\000\000\000\002\128\002\250\000\000\000\000\000\000\000\000\001\228\001P\001Q\002\167\000\000\002\168\002\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\000\000\001\006\001\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\151\000\000\000\000\000\000\000\000\000\000\000\000\003\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\145\000\000\000\000\000\000\000\000\000\000\001\150\000\000\000\000\000\000\001s\001\157\001r\001\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002`\000\000\000\000\002a\002R\002Q\000\000\001\149\001\148\000\000\000\218\000\000\000\000\001\134\000\000\000\000\001\138\000\000\001\248\001\247\000\000\000\000\001\246\001\245\001\137\001\135\000\000\001\139\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\001x\002\204\002\202\000\000\000\000\000\000\002\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\237\000\000\002\236\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\001\003\002+\001\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\139\000\000\000\000\003\138\000\000\000\000\000\000\000\000\000\253\000\252\000\000\000\254\000\000\000\000\000\000\002\212\000\000\000\000\000\000\002\181\002\172\000\000\000\000\000\000\000\000\003\167\002\214\002\201\002\200\000\000\000\000\000\183\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\182\000\000\000\000\000\000\002\135\002\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\n\000\000\000\000\002W\000\000\000\000\000\000\001\014\000\000\000\000\000\000\000\000\000\000\001\r\001\t\000\000\001T\000\000\000\000\001S\001\011\001R\001V\000\000\001U\000\000\000\000\001\012\000\000\000\000\000\000\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\001\021\001\027\000\000\000\000\000\000\000\000\000\000\000\000\003=\000\000\000\000\000\210\000\209\000\000\003>\003?\000\000\000\000\000\000\000\000\000\000\000\000\001\024\000\000\000\000\000\000\000\000\001\022\000\000\000\000\001\020\001\019\000\000\000\000\000\000\000\000\001\026\000\000\000\000\001\025\000\000\002\028\000\000\000\000\002(\000\000\000\000\002*\000\000\000\000\002&\002%\002#\002$\000\000\000\000\000\000\001\017\000\000\000\000\001;\000\020\001\029\000\000\000\000\000\000\002\183\002\174\000\000\000\000\002\182\002\173\000\000\000\000\000\000\000\000\002\185\002\176\000\000\000\000\002z\000\000\000\000\002\189\002\180\000\000\000\000\002\187\002\178\002\208\000\000\000\000\000\000\000\000\000\000\002\184\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\000\000\000\000\002\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002T\002S\000\181\000\000\002\175\000\000\000\000\002\179\000\000\000\000\002\177\000\000\000\138\000\139\000\000\000\000\000\000\000\000\000\154\000\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\212\000\000\000\213\000\214\000\147\000\000\000\146\000\000\000\000\001X\000\000\001Y\001W\002Z\000\000\000\000\002[\002Y\000\000\000\000\000\000\000\000\000\000\001&\000\000\000\000\001'\000\000\000\000\000\184\000\000\001)\001(\000\000\000\000\002\216\002\209\000\000\002\225\000\000\002\226\002\224\000\000\000\000\000\000\000\000\000\000\000h\000j\000g\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002_\000i\002^\002\232\000\000\002\234\000\000\002\235\002\233\000\000\000\000\000\000\000\000\000\000\000l\000n\000k\000m\002\231\000\000\000\000\002\211\002\210\000\000\000\000\000\000\002B\000\000\001\242\000\000\000\000\000\000\002\131\002A\000\000\002\220\002\219\000\000\000\000\000\000\001y\000\000\002\191\000\000\002\192\002\190\000\000\002\218\002\217\000\000\000\000\000\000\002}\002\207\000\000\002\206\002\205\000\000\002\228\002\227\000\000\002\229\000\144\000\000\000\000\000\000\000\000\000\143\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\000\000\001\128\000\000\000\000\000\000\000w\000\000\000\000\000x\000\000\000\000\000\000\000\000\000\000\000\000\001\163\001\161\001\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\133\000\000\000\245\000\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\142\000y\000\000\000\000\002@\000\000\000\000\001\028\001\240\000\000\001\001\000\000\000\000\001\000\001\002\001$\000\000\000\199\002\223\000\000\002\222\002\221\000\000\002\230\002\203\000\000\000\000\000\000\000\000\002\194\000\000\002\196\000\000\002\195\000\000\002\170\002\169\000\000\002\171\000\000\000\000\000\000\000\000\001\255\001\249\000\000\001\254\000\000\001\252\000\000\001\253\000\000\001\250\000\000\000\000\001\251\000\000\001\189\000\000\000\000\000\000\001\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0011\003p\000\000\000\000\003o\000\000\000\000\000\000\000\000\000\000\0021\000\000\000\000\000\000\000\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\173\000\000\0027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003<\000\000\000\000\002\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\191\000\000\000\000\000\000\001\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\156\000\000\000\000\000\000\000\000\001\143\000\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0013\002\150\000\000\000\000\000\000\002\148\000\000\000\000\000\000\002\147\000\000\001\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\175\000\000\000\000\002h\000\000\000\208\000\000\002i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000G\000\000\000\000\000\000\000\000\001\168\000\000\001\167\000\000\000\000\000\000\000\000\000J\000\000\000\000\000\000\002>\000\000\002=\000\000\000\000\000\000\000\000\000K\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000P\000\000\000\000\000\000\000Q\000O\000\000\000T\000\000\000\000\000\000\000\000\000\000\000I\000\000\000\000\000\000\000\000\000\000\000\000\000L\000\000\000S\000R\000\000\000M\000N\000\000\001D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001/\000c\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\000b\000a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001-\002\155\002\140\000\000\002\146\002\141\002\153\002\152\002\151\002\149\001>\000\000\002\138\000\000\000\000\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\002O\000\000\000\000\0017\002\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\184\001\180\000\000\000\000\000\000\000\225\000\000\000\000\002E\002O\000\000\000\000\0019\002C\002D\000\000\000\000\000\000\000\000\000\000\001\187\001\183\001\179\000\000\000\000\000\226\000\000\000\000\001\186\001\182\001\178\001\176\002\143\002\139\002\156\001=\002.\002\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\159\000\000\000\000\000\000\003\170\000\000\000\000\003\172\000\000\0008\000\000\000\000\003\178\000\000\003\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\169\000\000\000\000\003\171\000\000\000\000\000\000\0029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001g\000\000\000\000\001e\001c\000\000\0009\000\000\000\000\003\181\000\000\003\180\000\000\000\000\000\000\001a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001f\000\000\000\000\001d\001b\000\000\000\000\000\000\000;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\031\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Z\000\000\000\000\000\000\000\000\000\000\000\000\0005\000\000\000\000\000Y\000\000\0003\001 \000\000\000B\000/\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\030\000\000\000X\000W\000\000\000\000\000]\000\\\000\000\000\000\001\230\000\000\0007\000\000\000\000\000\000\0006\000\000\000\000\000\000\000:\000\000\000[\000^\000\000\000<\000=\000\000\001F\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001+\003s\003j\000\000\000\000\003n\003;\003i\003r\003q\001B\000\000\000\000\003g\000\000\000\000\000\000\000\000\003u\000\000\003k\003h\003t\002-\000\000\000\000\003e\000\000\000\206\003d\000\000\000\000\000\239\000\000\000\000\001A\001@\000\000\001\132\001\131\000\000\000\000\003\004\002\243\000\000\000D\000\000\000\000\000E\000\000\000\000\002\198\002\197\000\000\000\000\000\150\000\000\000\000\0026\000\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\204\000\000\003m\002J\002K\002F\002H\002G\002I\000\000\000\000\000\000\000\205\000\000\000\000\002O\000\000\000\229\000\000\000\000\000\000\000\000\003l\000\000\000\202\000\000\000\000\000\000\000\000\000\000\000\000\001`\001Z\000\000\000\000\001[\000\031\000\000\000\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003F\000\000\000\000\000\000\000\000\000\000\003G\000\000\000\000\000\000\000\000\000\000\003E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003H\000\000\000\000\001\185\001\181\000\000\001\177\003\141\000\000\002O\000\000\000\228\000\000\000\000\000\000\000\000\002\145\002N\002L\002M\000\000\000\000\000\000\002O\000\000\000\227\000\000\000\000\000\000\000\000\002\144\000\000\001\145\001\144\000\000\000\024\000\000\003\173\000\000\000-\000\000\000\000\000\000\000\000\000\153\000\000\000\233\000\001\000\000\000\000\000\238\000\002\000\000\000\000\000\000\001m\001n\000\003\000\000\000\000\000\000\000\000\001p\001q\001o\000\021\001l\000\022\000\000\002\002\000\000\000\004\000\000\002\003\000\000\000\005\000\000\002\004\000\000\000\000\002\005\000\006\000\000\000\007\000\000\002\006\000\000\000\b\000\000\002\007\000\000\000\t\000\000\002\b\000\000\000\n\000\000\002\t\000\000\000\011\000\000\002\n\000\000\000\000\002\011\000\012\000\000\000\000\002\012\000\r\000\000\000\000\000\000\000\000\000\000\003\128\003{\003|\003\127\003}\000\000\003\132\000\014\000\000\003\131\000\000\001H\000\000\000\000\003\129\000\000\003\130\000\000\000\000\000\000\000\000\001L\001M\000\000\000\000\001K\001J\000\015\000\000\000\000\000\000\003\160\000\000\003\159") + (16, "\000\000\000\000\000\000\003L\003K\003J\003I\003H\003\025\003G\003F\003E\003D\003C\003B\003A\003@\003?\003>\003=\003<\003;\003:\003,\0039\0038\0037\0036\0035\0034\003\024\0033\0032\0031\0030\003/\003.\003-\003+\003*\003)\003(\003'\003&\003%\003$\003#\003\"\003!\003 \003\031\003\030\003\029\003\028\003\027\003\026\000\000\000\000\000\026\000\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\183\001\227\001\206\001\224\001\223\001\222\001\228\001\232\000\000\003\184\001\226\001\225\001\207\001\230\001\221\001\220\001\219\001\218\001\217\001\215\001\231\001\229\000\000\000\000\000\000\000\221\000\000\000\000\001\210\000\000\000\000\000\000\001\212\000\000\000\000\000\000\001\214\001\236\001\233\001\216\001\208\001\234\001\235\000\000\003\182\003\181\003\185\000\000\000\000\001\163\001]\000\186\000\000\000\215\000\216\000\000\000\000\000\000\002\004\002\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\178\000\000\003\173\000\000\000\000\003\175\000\000\003\177\000\000\003\174\003\176\000\000\003\168\000\000\003\167\000\000\000\000\001\002\001\000\003\163\002\017\000\000\001'\002\016\000\000\003\166\000\000\002y\002x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d\000\000\001\162\000\000\000\000\000b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\181\001i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002_\000\000\000\000\000\000\000\000\000\000\000\000\000_\000\000\000\000\000\000\000\000\000\000\003\006\000\000\002\178\002\179\000\000\002\176\002\177\000\000\000\000\000\000\000\000\000\000\001\128\001\127\000\000\003\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\017\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001g\000\000\000\000\001j\001h\001p\0001\002\211\003\139\003\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000a\000\000\000\233\000\000\002\181\002\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\240\000\000\000\000\001\176\000\000\000\000\000\000\001[\000\000\000\000\001o\000\000\001n\000\000\001^\001m\000\000\001\\\000R\001\169\000\000\000\000\001\156\000\000\000\000\000\000\000\023\000\000\000\000\000\000\000\000\001\164\000\000\000\000\000\024\000\000\000\000\003w\001\179\000\000\000\000\001\170\001\165\003\162\000\000\000\000\000\000\000\000\003^\000\000\000\000\000\200\000\000\000\000\000\000\001\171\001\166\000\000\000\018\000\000\000w\000\000\000\000\000\000\000\019\000\000\000\000\002i\000\000\000\000\000\000\000\000\002j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003S\000\000\000\000\000\000\001\181\000\000\001\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003U\000\000\000\000\000\000\000\000\000\000\003V\000\000\000\000\000\000\000\000\000\000\003T\000\000\003\\\002\136\002t\000\000\001\173\000\000\002u\000\000\000\000\001\237\000\000\000\000\000\000\000\000\003\140\000\000\003\141\000\000\000\000\001\172\000\000\000\000\000\000\001\174\000\000\001\175\000\000\001\177\000\000\000\000\001\178\002f\002e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003Y\000\000\000\000\000\000\000\000\000\000\003Z\000\000\000\000\000\000\000\000\000\000\003X\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\003\011\000`\000c\000^\003\000\003\186\003\001\0021\003\003\000\000\000\000\003\b\002\175\003\n\000\000\000\000\000\000\003\017\003\014\000\000\000\000\000\000\002-\002\031\000\000\000\000\000\000\000\000\002#\000\000\002\030\000\000\0020\003\023\000\000\000\000\000\000\000\000\001\183\000\000\000\000\002/\003\t\000k\000\000\000\000\000j\000\000\003\018\003\002\000\000\002)\000\000\000\000\003\021\000\000\003\020\003\019\000\000\002%\000\000\000\000\002!\002 \002.\002&\000\000\000i\000\000\003\016\003\015\000\000\003\r\000\000\002\183\002\182\000\000\000\000\002\146\003\012\000\000\000\000\000\000\000\000\001\242\001B\001C\002\185\000\000\002\186\002\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\247\000\000\000\246\000\248\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\138\000\000\000\000\000\000\000\000\000\000\000\000\003\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\165\000\000\000\000\000\000\000\000\000\000\001\137\000\000\000\000\000\000\001f\001\144\001e\001\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002r\000\000\000\000\002s\002b\002a\000\000\001\136\001\135\000\000\000\202\000\000\000\000\001y\000\000\000\000\001}\000\000\002\b\002\007\000\000\000\000\002\006\002\005\001|\001z\000\000\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\002\217\001k\002\222\002\220\000\000\000\000\000\000\002\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\255\000\000\002\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\244\000\000\000\000\000\243\002;\000\245\000\000\000\000\000\000\000\000\000\000\000\000\001\158\001\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\003\159\000\000\000\000\003\158\000\000\000\000\000\000\000\000\000\237\000\236\000\000\000\238\000\000\000\000\000\000\002\230\000\000\000\000\000\000\002\199\002\190\000\000\000\000\000\000\000\000\003\187\002\232\002\219\002\218\000\000\000\000\000\166\000\000\000\000\000\000\000\000\000\000\000\180\000\000\000\000\000\000\000\165\000\000\000\000\000\000\002\153\002\152\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\250\000\000\000\000\002g\000\000\000\000\000\000\000\000\002h\000\000\000\000\000\000\000\254\000\000\000\000\000\000\000\000\000\000\000\253\000\249\000\000\003O\000\000\000\000\000\193\000\192\000\251\000\000\003P\003R\001\159\000\000\000\000\003Q\000\000\001\157\001\185\000\000\000\000\000\252\000\000\000\000\000\000\000\000\000\000\000\255\001I\000\000\000\000\000\000\001F\000\000\000\000\001E\001D\001H\000\000\001G\000\000\000\000\000\000\000\000\000\000\001\t\000\000\000\000\001\007\001\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\n\000\000\000\000\000\000\000\000\001\b\000\000\000\000\001\006\001\005\000\000\000\000\000\000\000\000\001\012\000\000\000\000\001\011\000\000\002,\000\000\000\000\0028\000\000\000\000\002:\000\000\000\000\0026\0025\0023\0024\000\000\000\000\000\000\001\003\000\000\000\000\001-\000\020\001\015\000\000\000\000\000\000\002\201\002\192\000\000\000\000\002\200\002\191\000\000\000\000\000\000\000\000\002\203\002\194\000\000\000\000\002\140\000\000\000\000\002\207\002\198\000\000\000\000\002\205\002\196\002\226\000\000\000\000\000\000\000\000\000\000\002\202\000\000\000\000\000\000\000\000\000\000\002\206\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002d\002c\000\164\000\000\002\193\000\000\000\000\002\197\000\000\000\000\002\195\000\000\000x\000y\000\000\000\000\000\000\000\000\000\137\000\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\195\000\000\000\196\000\198\000\000\000\000\000\197\000\130\000\000\000\000\000\129\000\000\000\128\000\000\000\000\001K\000\000\001L\001J\002l\000\000\000\000\002m\002k\000\000\000\000\000\000\000\000\000\000\001\024\000\000\000\000\001\025\000\000\000\000\000\167\000\000\001\027\001\026\000\000\000\000\002\234\002\227\000\000\002\243\000\000\002\244\002\242\000\000\000\000\000\000\000\000\000\000\000V\000X\000U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002q\000W\002p\002\250\000\000\002\252\000\000\002\253\002\251\000\000\000\000\000\000\000\000\000\000\000Z\000\\\000Y\000[\002\249\000\000\000\000\002\229\002\228\000\000\000\000\000\000\002R\000\000\002\002\000\000\000\000\000\000\002\149\002Q\000\000\002\238\002\237\000\000\000\000\000\000\001l\000\000\002\209\000\000\002\210\002\208\000\000\002\236\002\235\000\000\000\000\000\000\002\143\002\225\000\000\002\224\002\223\000\000\002\246\002\245\000\000\002\247\000~\000\000\000\000\000\000\000\000\000}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000{\000\000\001s\000\000\000\000\000\000\000e\000\000\000\000\000f\000\000\000\000\000\000\000\000\000\000\000\000\001\150\001\148\001\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\226\000\000\000\000\000s\000\000\000\229\000\227\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000|\000g\000\000\000\000\002P\000\000\000\000\001\014\002\000\000\000\000\241\000\000\000\000\000\240\000\242\001\022\000\000\000\182\002\241\000\000\002\240\002\239\000\000\002\248\002\221\000\000\000\000\000\000\000\000\002\212\000\000\002\214\000\000\002\213\000\000\002\188\002\187\000\000\002\189\000\000\000\000\000\000\000\000\002\015\002\t\000\000\002\014\000\000\002\012\000\000\002\r\000\000\002\n\000\000\000\000\002\011\000\000\001\203\000\000\000\000\000\000\001\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001#\003\132\000\000\000\000\003\131\000\000\000\000\000\000\000\000\000\000\002A\000\000\000\000\000\000\000\219\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\187\000\000\002G\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\002\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\205\000\000\000\000\000\000\001\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\143\000\000\000\000\000\000\000\000\001\130\000\000\001\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001%\002\168\000\000\000\000\000\000\002\166\000\000\000\000\000\000\002\165\000\000\001u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\195\000\000\000\000\002z\000\000\000\191\000\000\002{\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005\000\000\000\000\000\000\000\000\001\155\000\000\001\154\000\000\000\000\000\000\000\000\0008\000\000\000\000\000\000\002N\000\000\002M\000\000\000\000\000\000\000\000\0009\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000>\000\000\000\000\000\000\000?\000=\000\000\000B\000\000\000\000\000\000\000\000\000\000\0007\000\000\000\000\000\000\000\000\000\000\000\000\000:\000\000\000A\000@\000\000\000;\000<\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001!\000Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000N\000\000\000P\000O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\031\002\173\002\158\000\000\002\164\002\159\002\171\002\170\002\169\002\167\0010\000\000\002\156\000\000\000\000\000\000\000\000\002\172\000\000\000\000\000\000\000\000\000\000\000\000\002_\000\000\000\000\001)\001\244\002\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\198\001\194\000\000\000\000\000\000\000\209\000\000\000\000\002U\002_\000\000\000\000\001+\002S\002T\000\000\000\000\000\000\000\000\000\000\001\201\001\197\001\193\000\000\000\000\000\210\000\000\000\000\001\200\001\196\001\192\001\190\002\161\002\157\002\174\001/\002>\002\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\146\000\000\000\000\000\000\003\190\000\000\000\000\003\192\000\000\000&\000\000\000\000\003\198\000\000\003\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\189\000\000\000\000\003\191\000\000\000\000\000\000\002I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Z\000\000\000\000\001X\001V\000\000\000'\000\000\000\000\003\201\000\000\003\200\000\000\000\000\000\000\001T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\001W\001U\000\000\000\000\000\000\000)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\000\000\000\000\000\000#\000\000\000\000\000G\000\000\000!\001\018\000\000\0000\000\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\000\000\000F\000E\000\000\000\000\000K\000J\000\000\000\000\001\246\000\000\000%\000\000\000\000\000\000\000$\000\000\000\000\000\000\000(\000\000\000I\000L\000\000\000*\000+\000\000\0018\000\000\000\000\000\000\000\000\000\000\000\000\000.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\003\135\003~\000\000\000\000\003\130\003M\003}\003\134\003\133\0014\000\000\000\000\003{\000\000\000\000\000\000\000\000\003\137\000\000\003\127\003|\003\136\002=\000\000\000\000\003y\000\000\000\189\003x\000\000\000\000\000\223\000\000\000\000\0013\0012\000\000\001w\001v\000\000\000\000\003\022\003\005\000\000\0002\000\000\000\000\0003\000\000\000\000\002\216\002\215\000\000\000\000\000\133\000\000\000\000\002F\000\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\187\000\000\003\129\002Z\002[\002V\002X\002W\002Y\000\000\000\000\000\000\000\188\000\000\000\000\000\000\002_\000\000\000\213\000\000\000\000\000\000\000\000\003\128\000\000\000\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003[\000\000\000\000\000\000\000\000\000\000\000\000\001S\001M\000\000\000\000\001N\001\168\000\000\001\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003W\000\000\001\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003]\000\000\000\000\000\000\001\199\001\195\000\000\001\191\003\161\000\000\002_\000\000\000\212\000\000\000\000\000\000\000\000\002\163\002^\002\\\002]\000\000\000\000\000\000\000\000\002_\000\000\000\211\000\000\000\000\000\000\000\000\002\162\000\000\001\132\001\131\000\000\001\161\000\000\003\193\000\000\000\027\000\000\000\000\000\000\000\000\000\136\000\000\000\217\000\001\000\000\000\000\000\222\000\002\000\000\000\000\000\000\001`\001a\000\003\000\000\000\000\000\000\000\000\001c\001d\001b\000\021\001_\000\022\000\000\002\018\000\000\000\004\000\000\002\019\000\000\000\005\000\000\002\020\000\000\000\000\002\021\000\006\000\000\000\007\000\000\002\022\000\000\000\b\000\000\002\023\000\000\000\t\000\000\002\024\000\000\000\n\000\000\002\025\000\000\000\011\000\000\002\026\000\000\000\000\002\027\000\012\000\000\000\000\002\028\000\r\000\000\000\000\000\000\000\000\000\000\003\148\003\143\003\144\003\147\003\145\000\000\003\152\000\014\000\000\003\151\000\000\001:\000\000\000\000\003\149\000\000\003\150\000\000\000\000\000\000\000\000\001>\001?\000\000\000\000\001=\001<\000\015\000\000\000\000\000\000\003\180\000\000\003\179") and error = - (127, "'\225 \197\138V\252\204\244\005\001\252\128\000q\192F\194\000\139\132\141\248\147\232\002\003\224\000\000c\129\247\217\016 \191\198\208\000L\028\015q\197\129A\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\175\235f\245\155W\252\205\255%C\252B \243\192\251\236\136\016_\227h\000&\014\007\184\226\192\160\208\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0026\016\004X$o\196\159@\016\031\000\000\003\028\015\190\200\129\005\2546\128\002`\224{\142,\n\r\t\248H\181b\149\1913=\001@\127\000\0002\r\130\000\201e\192\000\004\000\000\000\000\000\002\000\000\016\000\000\000\000\131\000\000\000@\000\000\001\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128 \000\b( \000\000\001\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\004\b\001\000\000\001\001\004\000\000\b\000\000\000\000\000\b\016\002\000\000\002\002\000\000\000\016\000\000\000\000\n~\018\012X\165o\204\223@P\031\196\000\007\028\020\252$\024\177J\223\153\158\128\160?\136\000\0148)\248H\177b\149\1913=\001@\1270\000\028p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\b\001\001\000\001\001\004\000\000\b\000\000\000\004\000\b\016\002\002\000\002\002\b\000\000\016\000\000\000\000\000\016 \004\000\000\004\004\016\000\000 \000\000\000\000\000 @\b\000\000\b\b\000\000\000@\000\000\000\000\001@\128\016\000\000\016\016\000\000\000\128\000\000\000\000\017\176\128\"\193#~$\250\000\128\248\000\000\024\224#a\000E\130F\252H\244\001\001\240\000\0001\192\002\000\000\000\128\000 \002\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\216@\017p\145\191\018}\000@|\000\000\012p\017\176\128\"\193#~$\250\000\128\248\000\000\024\224#a\000E\130F\252H\244\001\001\240\000\0001\193F\195\016\143\196\173\250\145\233\243\019\228\016\006k\174\004\132!\016\t\001A#\144\000\000\192\000\000\198\001\027\b\002,\0187\226G\160\b\015\128\000\001\206\0026\016\004X$o\196\143@\016\031\000\000\003\028\026\183\183z\255K\234\249\253\255\219\015\223m\255\243\200\216@\017`\145\191\018=\000@|\000\000\012p\001\144\128 @\001($Z\000 \024\000\000\016@\003!\000@\128\002PH\180\000@4\000\000(\128\006B\004\129\000\004\160\145h\000\128h\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\017\000\000\000\000\000\000\000\000\002\000\000\128\000\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\b\000`\000N\002\000\014.\016\000\b\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\0008\b\0008\184@\000 \000\000\000\000@\003\000\000p\016\000qp\128\000@\000\000\000\002\128\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\016\000\000\b\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\016\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\0008\b\0008\184@\000 \000\000\000\000@\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006$\001\220\000@\200$8\024\"@v\001b\017`0\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000`\000\012\000\000\n.\016\000\b\000\000\000\000\0001 \014\224\002\006A!\192\193\018\003\176\011\016\139\001\128\0008\b\0008\184@\000 \000\000\000\000\000\003\000\000`\000\000Qp\128\000@\000\000\000\000\001\137\000w\000\0162\t\014\006\b\144\029\128X\132[\018\002\238\000 d\018\028\012\017 ;\000\177\b\176\024\000\003\000\000\002\139\132\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001`.\224\002\006E!\192\193\018\003\176\011\016\139\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\022\002\238\000 dR\028\012\017 ;\000\177\b\176\024\000\003\000\000\002\139\132\000\002\000\000\000\000\000\012X\011\184\000\129\145Hp0D\128\236\002\196\"\216\144\007p\001\003 \144\224`\137\001\216\005\136E\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\0000\000\0008\184@\000 \000\000\000\000\000\003\000\000p\016\016qp\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000 \000\000\b\000\000\000\000\000\128\000\000\002\000\000\000\000\000\000\016\000\000\000\000\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\001\128\0008\b\0008\184@\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006$\001\220\000@\200$8\024\"@v\001b\017@\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\001\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\000\000\000@\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000`\000\014\002\000\014.\016\000\b\000\000\000\000\000\000\192\000\024\000\000\020\\ \000\016\000\000\000\000\000b@\029\192\004\012\130C\129\130$\007`\022!\022\196\128;\128\b\025\004\135\003\004H\014\192,B,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000\000\001\000\000\000\000\000 \000\000\000\000\001\000\000\000\192\000\024\000\000\020\\ \000\016\000\000\000\000\000\001\128\0008\b\b8\184@\000 \000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\002\000\000\000\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\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\000\000\000\000\000\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000`\000\012\000\000\n.\016\000\b\000\000\000\000\0001 \014\224\002\006A!\192\193\018\003\176\011\016\139b@\029\192\004\012\130C\129\130$\007`\022!\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\000\024\000\003\000\000\002\139\132\000\002\000\000\000\000\000\012H\003\184\000\129\144Hp0D\128\236\002\196\"\216\144\007p\001\003 \144\224`\137\001\216\005\136E\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\006\000\000\192\000\000\162\225\000\000\128\000\000\000\000\003\018\000\238\000 d\018\028\012\017 ;\000\177\b\182$\001\220\000@\200$8\024\"@v\001b\017`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\144\007p\001\003 \144\224`\137\001\216\005\136E\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\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\024\000\003\128\128\003\139\132\000\002\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\128\000\000 \000\001\000\000\000\000@\000\192\000\028\004\000\028\\ \000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\004\000\000\000\000\002\000\000\016\000\000\000\004\b\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\000\000\000\016\000\000\000\000\b\000\000@\000\000\000\017 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000 \000\001\000\000\000\000D\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\128\000\004\000\000\000\001\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\024\000\003\128\128\003\139\132\000\002\000\000\000\000\004\000\000\000 \000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\b\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\016\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\128\000\000\000\000\128\000\000\001\000\000\000\000\128\000\017\000\000\000\000\000\000\000\000\002\000\000\000\000\006B\000\129\000\004\160\145h\000\128h\000\000A\000\012\132\001\003\000\tA&\144\001\000\192\000\000\130\000\025\b\002\004\000\018\130M \002\001\128\000\001\004\0002\016\004\b\000%\004\138@\004\003\000\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\147)\027P\144\nPI\172\002@2\132\r\170\160\000\002\000\001\000\004\000\000\b\000\000@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018e#j\018\001J\t7\128H\006\208A\181T\000@\000\000\000\000\016\002(\000\000\000\000\000\000\000A\144\132 @\001($Z\000 \026\000\000\144@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\001\003\000\tA&\208\001\000\208\000\000\130\000\025\b\002\004\000\018\130M\160\002\001\160\000\001\004\0002\016\004\b\000%\004\139@\004\003@\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\r\128\000\004\000\000\128\001\000\001@\004\197\016\003!\000@\128\002PH\180\000@4\000\000 \129 \0006\000\000\016\000\002\000\004\000\005\000\019\020B\012\132\001\002\000\tA\"\208\001\000\208\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\001\176\000\000\128\000\016\000 \000(\000\152\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\200F\208 \002\148\018m\000\144\r\160\002j\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001&B6\129\000\020\160\147h\004\128m\000\019UB\014\134!\031\128Ye\"\211\227 \216 \012\150X\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\128\000\000\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\002\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128 @\001($R\000 \024\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000@\000\000\000\000\000 \000\001\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000@\000\000\000\000\002`\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006B\000\129\000\004\160\145h\000\128h\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\216\000\000@\000\b\000\016\000\020\000LQ\b0\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\006B\000\129\000\004\160\145h\000\128h\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\216\000\000@\000\b\000\016\000\020\000LQ\b\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000@\000\000\000\000\b\000\000\000\000\000H\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200@\144 \000\148\018-\000\016\r\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\144\000\000\000\000\b\000\000\000\000\000HQ\b2\016$\b\000%\004\139@\004\003@\000\002\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\128\000\000\000\000\128\000\000\000\000\004\129\016\128\000\017\000\000\000\000\000\000\000\000\000\000\000\000\001\006\000\002\000\000\000 \000\000\000\000\000\000\000\000\002\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\001B@\tA&\176\t\000\200\000&\138\192\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\128\000 \000\001\128\0008\b\0008\184@\000 \000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\002\000\000\000\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\000\000\000 \000\000\000\000\004\000\000\000\b\000\000\000\000\000\000@\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000 \000\000\000\004l \b\176H\223\137\030\128 >\000\000\0068\000\200A\0162\004\156\018m\000\016\r\000\000\b \000\129\000 \000 \128\000\001\000\000\000\000\128\001\002\000@@\000@A\000\000\002\000\000\000\000\000\002\004\000\128\000\000\128\130\000\000\004\000\000\000\000\000\004\b\001\000\000\001\001\000\000\000\b\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000`\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\001\000@@\000\016P@\000\000\002\000\000\000\000\000\002\000\128\128\000 \160\128\000\000\004\000\000\000\000\000\000\000\000\000\000\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\000\000\000\000\000\000\000\000\000\000 \b\b\000\002\n\b\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000b@\021@\004\012\002C\128\002 \007`\002 \004\000\128\000\000\000\016\000\000\000\000\000\000\000\000\000\000\006\000\000I\000\004\160\000\000@\000\000\000\000\002\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\016\000\0000\000\007\129\000\007\023\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\028\004\000\028\\ \000\016\000\000\000\000\000b@\021@\004\012\002C\128\002 \007`\002 \020\003\000\000p\016\000qp\128\000@\000\000\000\000\001\137\000U\000\0160\t\014\000\b\128\029\128H\128S\018\000\170\000 `\018\028\000\017\000;\000\145\000 \024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\000\000\000`\000\014\002\000\014.\016\000\b\000\000\000\000\0001 \n\160\002\006\001!\192\001\016\003\176\t\016\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\b\000\000\b\002\002\000\000\130\130\000\000\000\016\000\000\000\000\012H\002\168\000\129\128Hp\000D\000\236\000D\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\128\000\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\196\128*\128\b\024D\135\000\004@\014\194\006@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \b\b\000\002\n\b\000\000\000@\000\000\000\0001 \n\160\002\006\001!\192\001\016\003\176\001\016\002\000\128 \000\b( \000\000\001\000\000\000\000\000\196\128*\128\b\024\004\135\000\004@\014\192\004@\b\000\000\000\000\000\000\000\000\000\000\000\004\004\004\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006$\001T\000@\194$8\000\"\000v\016\"\000@\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\0001 \n\160\002\006\017!\192\001\016\003\176\129\016\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\128*\128\b\024\004\135\000\004@\014\192\004@\b\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\024\000\001\000\000\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\b\000\000\b\000\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\b\016\002\000\000\002\002\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\144\005P\001\003\b\144\224\000\200\001\216\000\152\001\001@\130\016\000\000\016\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\000\000\000@\001\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\002\000\000\130\130\000\000\000\016\000\000\000\000\012\000\000\128\000\000\128\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\137\000U\000\0160\137\014\000\012\128\029\132\t\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\016\000\000\000\000\000\0026\016\004X$o\196\143@\016\031\000\000\003\028\004l H\176H\223\137\030\128 >\000\000\0068\000\000\000\000\000\000\004\000\000\000\004\000\000\000\000\000@\000\b\000\000\000\000\000\000\000\b\001\000\000\000\000#a\000E\130F\252H\244\001\001\240\000\0001\192\002B\000\136\004\128\160\145\200\000\000`\000\000c\003\000\000D\000\000\000\000\000\000\003\000\b(\018\000\001\027\b\002.\0187\226O\160\b\015\130\000\001\142\0026\016\004X$o\196\159@\016\031\004\000\003\028\004l \b\176H\223\137\030\128 >\b\000\0068\000H@\017\016\144\020\018y\000\000\012\000\000\012`\000\144\128\"\001 ($\242\000\000\024\000\000\024\192\001!\000D\002@PH\228\000\0000\000\0001\128\002B\000\136\004\128\160\145\200\000\000`\000\000c\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005on\245\254\151\213s\251\255\182\031\190\219\255\239\128\128\000\000\000\000(\004p\000\000\000\000\000\000\000\163a\136G\226V\253H\244\249\137\242\b\0035\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\141\132!\022\t\027\241#\208\004\007\192\000\000\199\005\027\bB,\0187\226G\160\b\015\128\000\001\142\b\016 \004\004\000\004\004\016\000\000 \000\000\000\000\000 @\b\000\000\b\b \000\000@\000\000\000\000\000@\128\016\000\000\016\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000 \000\128\000\000\000\000\000@\000\129\000@@\000\016P@\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\000 \000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n6\016\132X$o\196\143@\016\031\000\000\003\028\020l!\b\176H\223\137\030\128 >\000\000\0068 \200B\016 \000\148\018-\000\016\012\000\000\b \000\000\000\000\000\000\000\000\128\000\000\001\000\004\193\016\003\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\000\000\000\000\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\001\027\b\002.\0187\226O\160\b\015\128\000\001\142\0026\016\004X$o\196\159@\016\031\000\000\003\028\004l \b\176H\223\137\030\128 >\000\000\0068\000\200@\0160\000\148\018m\000\016\r\000\000\b\160\001\144\128 @\001($\218\000 \026\000\000\017@\003!\000@\128\002PH\180\000@4\000\000\"\128\006B\000\129\000\004\160\145h\000\128h\000\000A\000@\000\000\000\000 \000\004\000\000\000\000\000$\b\129\027\b\002,\0187\226G\160\b\015\128\000\001\142\0002\144\005\r\000%\004\154\192\004\003\000\000\002\b\000e \n\018\000J\t5\128\b\006\000\000\004\016\000\202@\020$\000\148\018+\000\016\012\000\000\b \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\006B\000\129\000\004\224\145h\000\128h\000\000A\000\012\132\001\002\000\tA\"\208\001\000\208\000\000\130\000\000\000@\000\000\000\000\b\000\000\000\016\000L\017\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000@\000\000\000\192\000\028\004\000\028\\ \000\016\000\000\000\000\000\000\000\004\000\000\000\000\000\128\000\000\001\000\000\000\000\000\000\b\000\000\000\000\001\000\000\000\002\000\000\000\000\000\000\016\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000 \000\000\000\000\000\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\001\007C\016\143\192,\242\145i\241\144l\016\006K,\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\005\t\000\165\004\138\192\004\003\000\000\n\b\004l \b\176H\223\137\030\128 >\000\000\0068\000\200@\0160\000\148\018m\000\016\r\000\000\b \001\144\128 @\001($\218\000 \026\000\000\016@\003!\000@\128\002PH\180\000@4\000\000 \128\000\000\000\000\000\000\000\002\000\000\000\004\000\018\004@\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\000\t\b\002\"\018\002\130O \000\001\128\000\001\140\000\018\016\004@$\005\004\158@\000\003\000\000\003\024\000$ \b\128H\n\t\028\128\000\006\000\000\00605%.\224\250\007\193a\192\255\182\019\190\219\243\135\128\144\128\"\001 ($r\000\000\024\000\000\024\192\213\189\187\215\250_U\207\239\254\216~\251o\255\190\000\000\000\000\000\000\128\001@\000\000\000\000\000\000\000\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\001\027\b\002,\0187\226G\160\b\015\128\000\001\142\r[\219\189\127\165\245\\\254\255\237\135\239\182\255\249\224\000\000\000\000\000\n\000\000\000\000\000\000\000\000\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\000\000\000\000\000\002@\000\131\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000d\000\000\000\000\004\000\000\000\b\000\000\000\004\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\003 \000\000\000\000 \000\000\000@\000\128\000\000\192\000\028\004\000\028\\ \000\016\000\000\000\000\000@\000\012\128\000\000\000\000\128\000\000\001\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$ \b\128H\n\t\028\128\000\006\000\000\00605on\245\254\151\213s\251\255\182\031\190\219\255\239\128\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\160\001@\000\000\000\000\000\000\000\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005%.\224\250\007\193a\192\255\150\019\188[\243\135\145\176\128\"\193#~$z\000\128\248\000\000\024\224\213\189\187\215\250_U\207\239\254\216~\251o\255\159\169)w\007\208>\011\014\007\253\176\157\246\223\156<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\017\176\128\"\193#~$z\000\128\248\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\169)w\007\208>\011\014\007\252\176\157\226\223\156<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\2426\016\004X$o\196\143@\016\031\000\000\003\028\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000j\222\221\235\253/\170\231\247\255l?}\183\255\207\212\148\187\131\232\031\005\135\003\254\216N\251o\206\030F\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\191\173\222?R\255\238\127\191\250\207\247\139\127\254\247\223d@\130\255\027@\0010p=\199\022\005\006\132l \b\176H\223\137\030\128 >\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130F\252H\244\001\001\240\000\0001\193\169)w\007\208>\011\014\007\252\176\157\226\223\156<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\2426\016\004X$o\196\143@\016\031\000\000\003\028\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015#a\000E\130F\252H\244\001\001\240\000\0001\193\169)w\007\208>\011\014\007\252\176\157\226\223\156<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\2426\016\004X$o\196\143@\016\031\000\000\003\028\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015#a\000E\130F\252H\244\001\001\240\000\0001\193\169)w\007\208>\011\014\007\252\176\157\226\223\156<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\2426\016\004X$o\196\143@\016\031\000\000\003\028\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015#a\000E\130F\252H\244\001\001\240\000\0001\193\169)w\007\208>\011\014\007\252\176\157\226\223\156<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\2426\016\004X$o\196\143@\016\031\000\000\003\028\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015#a\000E\130F\252H\244\001\001\240\000\0001\193\169)w\007\208>\011\014\007\252\176\157\226\223\156<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\2426\016\004X$o\196\143@\016\031\000\000\003\028\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015\003!\000@\128\002pI\180\000@0\000\000 \128\006B\000\129\000\004\224\145h\000\128`\000\000A\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\000\025H\002\132\128\018\130E`\002\001\144\000%\004\b:\024\132~\001g\148\139O\140\131`\1282Y`\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128(H\001($V\000 \025\000\002P@\003!\000@\128\002PH\164\000@0\000\000 \129\006C\016\143\192,\242\145i\241\144l\016\006K,\012\132\001\002\000\tA\"\208\001\000\208\000\000\130\000\000\000@\000\000\000\000\b\000\000\000\000\000L\017\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\002\000\000\000\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\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\000\000\000\000\000\000\b\000\000\128\000\000\000\000\016\000\000\000\000\000\152\"\016`\000\014\002\000\014.\016\000\b\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\128\000\000\001\128\0008\b\0008\184@\000 \000\000\000\000\000\000\000\b\000\000\000\000\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\001\027\b\002,\0187\226G\160\b\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\b\216@\017`\145\191\018=\000@|\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\002\132\128\018\130E`\002\001\144\000%\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d \b\016\000J\t\022\128\b\006\128\000\004\016\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\001\000\000\000\000\000\t\130!\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\b\000\000\000\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \192\000\028\004\000\028\\ \000\016\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\001\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\000\000\000\000\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\004l \b\176H\223\137\030\128 >\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\135\169\"\208\152\018T\207\172\006@>\192\r\226\169\007C\016\143\192,\242\145i\241\144l\016\006K,\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\005\t\000%\004\138\192\004\003 \000J\b\004l \b\176H\223\137\030\128 >\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000#a\000E\130F\252H\244\001\001\240\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\002\132\128\018\130E`\002\001\144\000%\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \224\000\028\004\000\028\\ \000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\001\027\b\002,\0187\226G\160\b\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000@\000\000\000\192\000\028\004\000\028\\ \000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\001\000\000\000\000#a\000E\130F\252H\244\001\001\240\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\001\027\b\002,\0187\226G\160\b\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\002`\136\001\128\0008\b\0008\184@\000 \000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000\000F\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000H\017\0026\016\004X$o\196\143@\016\031\000\000\003\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \200@\016 \000\148\018-\000\016\r\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\t\002!\006B\000\129\000\004\160\145h\000\128h\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000H\017\b2\016\004\b\000%\004\139@\004\003@\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\002@\136@\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\144\"\000d \b\016\000J\t\022\128\b\006\128\000\004\016\000\000\000\000\000\000\000\000@\000\000\000\128\002@\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b\016\004\134\000\006@\012\192\000@\t\t\000E\000\016\"\t\012\006\012\128\025\128@\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\200\216@\017`\145\191\018=\000@|\000\000\012p@\000\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\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\004\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128\000\000\000\000\000\000\000\000 \000P\000\000\000\000\000\000\000#a\000E\130F\252H\244\001\001\240\000\0001\193\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\t\176>\000`\016\016\015\128\128 \000\176\192tl!h\176H\223\137\030\128 >\000\000\0078\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\176\128\"\193#~$z\000\128\248\000\000\024\224\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\b\002,\0187\226G\160\b\015\128\000\001\142\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001!\000D\002@PH\228\000\0000\000\0001\129\171{w\175\244\190\171\159\223\253\176\253\246\223\255|\000\000\000\000\000\001\000\002\128\000\000\000\000\000\000\001\027\b\002,\0187\226G\160\b\015\128\000\001\142\b\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005on\245\254\151\213\243\251\255\182\031\190\219\255\231\145\176\128\"\193#~$z\000\128\248\000\000\024\224\212\148\187\131\232\031\005\135\003\254XN\241o\206\030F\194\000\139\004\141\248\145\232\002\003\224\000\000c\130\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r[\219\189\127\165\245|\254\255\237\135\239\182\255\249\228l \b\176H\223\137\030\128 >\000\000\00685%.\224\250\007\193a\192\255\150\019\188[\243\135\145\176\128\"\193#~$z\000\128\248\000\000\024\224\128\000\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\003V\246\239_\233}_?\191\251a\251\237\191\254y\027\b\002,\0187\226G\160\b\015\128\000\001\142\rIK\184>\129\240Xp?\229\132\239\022\252\225\224 \000\000\000\000\n\000\020\000\000\000\000\000\000\000\b\216@\017`\145\191\018=\000@|\000\000\012p@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\213\189\187\215\250_W\207\239\254\216~\251o\255\158F\194\000\139\004\141\248\145\232\002\003\224\000\000c\131RR\238\015\160|\022\028\015\249a;\197\1918y\027\b\002,\0187\226G\160\b\015\128\000\001\142\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\026\183\183z\255K\234\249\253\255\219\015\223m\255\243\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015#a\000E\130F\252H\244\001\001\240\000\0001\193\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\003V\246\239_\233}_?\191\251a\251\237\191\254y\027\b\002,\0187\226G\160\b\015\128\000\001\142\rIK\184>\129\240Xp?\229\132\239\022\252\225\224\000\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\016\000(\000\000\000\000\000\000\000\017\176\128\"\193#~$z\000\128\248\000\000\024\224\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\001\171{w\175\244\190\175\159\223\253\176\253\246\223\255<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\2426\016\004X$o\196\143@\016\031\000\000\003\028\016\000\000@\000\000\000\000\000\000\000\000\000\000\000\0005on\245\254\151\213\243\251\255\182\031\190\219\255\231\145\176\128\"\193#~$z\000\128\248\000\000\024\224\212\148\187\131\232\031\005\135\003\254XN\241o\206\030F\194\000\139\004\141\248\145\232\002\003\224\000\000c\130\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\006\173\237\222\191\210\250\190\127\127\246\195\247\219\127\252\2426\016\004X$o\196\143@\016\031\000\000\003\028\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\245on\245\254\151\213\243\251\255\182\031\190\219\255\231\145\176\128\"\193#~$z\000\128\248\000\000\024\224\212\148\187\131\232\031\005\135\003\254XN\241o\206\031\171{w\175\244\190\171\159\223\253\176\253\246\223\255\127V\246\239_\233}W?\191\249a\251\197\191\254x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130F\252H\244\001\001\240\000\0001\193\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\b\002,\0187\226G\160\b\015\128\000\001\142\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000F\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\027\b\002,\0187\226G\160\b\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\208\196#\240\011<\164Z|d\027\004\001\146\203\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\001B@)A\"\176\001\000\192\000\002\130\000\024\000\003\000\000\002\139\132\000\002\000\000\000\000\000\000\016\000\000\000\000\129\000\000\000\004\000\000\000\000\000\004l \b\176H\223\137\030\128 >\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128(H\005($V\000 \024\000\000P@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\002\132\128R\130E`\002\001\128\000\005\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\b\216@\017`\145\191\018=\000@|\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130F\252H\244\001\001\240\002\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rIK\184>\129\240Xp?\229\132\239\022\252\225\224d \b\016\000J\t\022\128\b\006\128\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000F\194\000\139\004\141\248\145\232\002\003\224\000\000c\131RR\238\015\160|\022\028\015\249a;\197\1918y\027\b\002,\0187\226G\160\b\015\128\000\001\142\rIK\184>\129\240Xp?\229\132\239\022\252\225\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\002@\136\017\176\128\"\193#~$z\000\128\248\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000 \141\132\001\022\t\027\241#\208\004\007\192\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\016\004\b\000%\004\139@\004\003\000\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\144\132\"\001 ($r\000\000\024\000\000\024\192\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\b\002,\0187\226G\160\b\015\128\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\000\144\003\224\006\001\001\000\248\bB\000\011\012\006\006B\000\129\128\004\160\147h\000\128h\000\000A\000@\000\000\000\000\000\000\000\000\000\001\000\000\000 !\027\b\002,\0187\226G\160\b\015\128\000\001\142\000\000\b\000>\000`\016\016\015\128\132 \000\176\192`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\000@\192\002PI\180\000@4\000\000 \128\006B\000\129\000\004\160\147h\000\128h\000\000A\000\012\132\001\002\000\tA\"\208\001\000\208\000\000\130\000\000\000\000\000\000\000\000\b\000\016\000\016\000H\017\0026\016\004X$o\196\143@\016\031\000\000\003\028\002\000\016@|\000\192 \031\001\b@\001a\129\200\216@\017`\145\191\018=\000@|\000\000\012p\000\b@\001\240\003\000\128\128|\004\001\b\005\130\003#a\000E\130F\252H\244\001\001\240\000\0001\192 \001\004\007\192\012\002\002\001\240\016\132\000\022\024\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\216@\145`\145\191\018=\000@|\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\144\031\0000\b\b\007\192B\016\000X 02\016\004\012\000%\004\155@\004\003@\000\002\b\002\000\000@\000\000\000\000\000\000\000\b\000\000\000\001\b\216@\017`\145\191\018=\000@|\000\000\012p\000\000A\001\240\003\000\128\128|\004!\000\005\130\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000 \000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002B\000\136\004\128\160\145\200\000\000`\000\000c\001\000\000\000\000\000\000\000\000\000\003\000\000(\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002 \000\000\000\000\000\000\000\000@\000\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\b\128\000\000\000\000\000\000\000\001\000\000\000\000\128\000\017\000\000\000\000\000\000\000\000\000\000\000\000\001\002\000\002\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000`\000\005\000\000\000\001\000\000\000\000\000P\b\224\000\000\000\000\000\000\001\128\000\"\000\000\000\000\000\000\001\128\004\020\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\164\165\220\031@\248,8\031\246\194w\219~p\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\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\004\000\004\136\031\0000\b\b\007\192\192\016\000X 8\000\001\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\002\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000$\128\248\001\128@@>\002\016\128\002\193\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\128\000\000\128\130\000\000\004\000\000\000\000\000\004\b\001\000\000\001\001\000\000\000\b\000\000\000\000\000\000\000\000\000\000\002\000\b\000\016\000\000\000\000\000\0026\016\004X$o\196\143@\016\031\000\000\003\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\000\016\000\000\000@\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\128\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\004\000\001\000\000\004\b\001\000\000\001\001\000\000\000\b\000\000\000\000\004$\001\020\000@\130$8\0002\000f\000\002\000@\016\004\004\000\001\005\004\000\000\000 \000\000\000\000\b\000\000\000\000\001\000\000 \000\000\000@\000\000\000\000@\128\016\000\000\016\016\000\000\000\128\000\000\000\000B@\017@\004\b\"C\128\003 \006`\000 \004\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000F\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\b\000\b\0000\000\000\002\000\000\000\000\000H\000\000\000\000\016\000`\000\000\004\000\000\000\000\000\144\000\000\000\000 \000@\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000 \000@\000\000\000\016\000\000\192\000\024\000 \020\\(\000\017\000\000\000\000\000\001\128\0000\000\000(\184@\000 \000\000\000\000\000\133\128\162\128\b\024\020\135\000\006@\012\192 B\b\000\000\000\000\001@ \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\128\0008\b\0008\184@\000 \000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\002\000\000\000\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\000\000\000D\000\000\000\000\004\000\000 \000\000\000\000\128\000\000\136\000\000\000\000\b\000\000\000\000\000\000\000\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\020\002\000 \000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\000\000\000\000\128\000\004\000\000\000\000\016\000\000\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\004\000\002\128@\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\012\000\000\n.\016\000\b\000\000\000\000\000!`(\160\002\006\005!\192\001\144\0030\b\016\130\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000`\000\128Qp\128\000D\000\000\000\000\000\006\000\000\192\000\000\162\225\000\000\128\000\000\000\000\002\022\002\138\000 `R\028\000\025\0003\000\129\b \024\000\003\000\000\002\139\132\000\002\000\000\000\000\000\bX\n(\000\129\129Hp\000d\000\204\002\004 \144\176\020P\001\003\002\144\224\000\200\001\152\004\bA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\192Q@\004\b\nC\128\003 \006`\016!\004\003\000\000`\000\128Qp\160\000D\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\004\000\000\000\012\000\001\128\002\001E\194\128\001\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\0000\000\006\000\000\005\023\b\000\004\000\000\000\000\000\016\176\004P\001\002\002\144\224\000\200\001\152\004\bA!`(\160\002\006\005!\192\001\144\0030\b\016\130\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\003\000\000`\000\000Qp\128\000@\000\000\000\000\001\011\000E\000\016 )\014\000\012\128\025\128@\132\018\022\002\138\000 `R\028\000\025\0003\000\129\b \000\000\000\000\000\000\000\b\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\004l \b\176H\223\137\030\128 >\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003!\004@\128\002pI\180\000@0\000\000 \128\006B\b\129\000\004\224\145h\000\128`\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\002\004\000\019\130E\160\002\001\128\000\001\004\bH\002(\000\129\000H`\000d\000\204\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005%.\224\250\007\193a\192\255\150\019\188[\243\135\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\t\000>\000`\016\016\015\128\132 \000\176\192`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\129\000 \000 \128\000\001\000\000\000\000\000\001\002\000@\000\000@A\000\000\002\000\000\000\000\000\002\004\000\128\000\000\128\128\000\000\004\000\000\000\000\000\000\000 \000\000\001\000\004\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\016\004\004\000\001\005\004\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\002\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\000\000\000\000\000\000\004\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200@\016 \000\148\018-\000\016\r\000\000\b\160jJ]\193\244\015\130\195\129\255,'x\183\231\015\128\000\136\003\224\006\001\001\000\248\b\002\000\015\132\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\b\002\002\000\000\130\130\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\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@\128 \000\b( \000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000\000\016\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\002\000\000\130\130\000\000\000\016\000\000\000\000\004\000\000\128\000\000\128\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\017!\192\001\016\0030\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\002\000@\000\000@A\000\000\002\000\000\000\000\000\002\004\000\128\000\000\128\128\000\000\004\000\000\000\000\002\018\000\138\000 A\018\028\000\017\0003\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000@\004\000\000\000\016\000\000\000\000\000\000\000\000 \000\000\b\000\002\000 \000\000\000\000\000\000\000\000@\000\000\000\000\004\000@\000\000\000\000\000\000\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\132\128\"\128\b\016\004\134\000\004@\014\192\000@\000\002\000\128\128\000 \160\128\000\000\004\000\000\000\000\003\018\000\138\000 `\018\028\000\017\0003\000\001\000\004$\001\020\000@\128$0\000\"\000f\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\128\000\000\000\000 \000\000\000\000\000\000\000\000\192\001\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\002\000\000\128\001\t\000E\000\016 \t\012\000\b\128\025\128\000\128\018\018\000\138\000 @\018\016\000\017\0003\000\001\000 \024\000\000\000\000\000\000\b\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000@\000\016\000! \b\160\002\004\001!\128\001\016\0030\000\016\002B@\017@\004\b\002B\000\002 \006`\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\b\000\002\000\004$\001\020\000@\128$0\000\"\000f\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\190\200\129\005\2546\128\002`\224{\142,\n\r\t\248H\181b\149\1913=\001@\127\000\000\144\000\136\001\128\000\b\000! \b\160\002\004\000!\000\001\000\0030\000\016\000\000\128\000\000 \000\000\000\128\000\000\000\000\000\000\128\001\000\000\000@\000\000\001\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\130\0040\000 \000f\016\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000 \000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b C\000\002\000\006a\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\b\000\128\000\000\002\000\000\000\000\000\000\000\000\004\000\000\001\000\000@\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\b\000\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\000\000\000\000\000\000\016\144\004P\001\002\000\016\192\000\128\001\216\000H\000\000@\016\016\000\004\020\016\000\000\000\128\000\000\000\000b@\017@\004\012\000C\128\002\000\006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\b\000\000\000\000\002\000\000\000\000\000\000\000\000\012\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016\000\020\000\b\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\016!\128\001\000\0030\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\004\001\001\000\000AA\000\000\000\b\000\000\000\000\006$\001\020\000@\192\0048\000 \000f\000\002\000HH\002(\000\129\000\b@\000@\000\204\000\004\000\128`\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\001\000@@\000\016P@\000\000\002\000\000\000\000\001\137\000E\000\0160\001\014\000\b\000\025\128\000\128\018\018\000\138\000 @\002\016\000\016\0003\000\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\b\000\000\000\000\000@\000\016\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\000C\000\002\000\006a\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\128\128\000 \160\128\000\000\004\000\000\000\000\003\018\000\138\000 `\002\028\000\016\0003\000\001\000\004$\001\020\000@\128\0040\000 \000f\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000 \000 \000\192\000\000\b\000\000\000\000\001 \000\000\000\000@\001\128\000\000\016\000\000\000\000\002@\000\000\000\000\128\001\000\000\000 \000\000\000\002\018\000\138\0000@\002\028\000\016\0003\000\003\000\000D\000\000\002\000\000\128\012\000\000\000\000\000\000\000\000\128\000\000\004\000\001\000\024\000\000\000\000\000\000\000\001\000\000\000\000\000\002\0000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\128\000\000\000\000\000\000\000\004\000\000I\000\004\000\000\000@\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\004\144\000@\000\000\004\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\000\128\004\000(\129\000\000\000\000\000\000\000\002\016\000\002\000\000\005\002\020\004\000\000\001\000\128\000\004 \000\004\000\000\n\004 \b\000\000\002\001\000\000\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000\000\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\000B\000\000@\000\000\128B\000\128\000\000 \016\000\000\b\000\000\000\000 \016\001\000\000\000\000\000\000\000\000\016\000\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\128@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\003\000\000p\016\000qp\128\000@\000\000\000\000\001\b\000\001\000\000\002\001\014\002\000\000\000\128@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\000\128\b\000\000\000\000\000\000\000\000\128\000\000\128\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\b@\000\b\000\000\016\b`\016\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\016\000\128\005\016`\000\000\000\000\000\000\000\000\128\000 \001\000\n @\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\002\000\000\000\000\000\000\002\000\004\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000 \000\000\000 \000\b\000@\002\136\016\000\000\000\000\000\000\000\000\192\000\028\004\000\028\\ \000\016\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\000\000\000\016\000\000\000\000\b\000\000\000\000\000@\000\000\000\000 \000\000\000\000\016\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\021@\004\b\130C\128\130 \007`\016 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\b\000\002\000\016\000\162\004\000\000\000\000\000\000\000\bH\002\168\000\129\016Hp\016D\000\236\002\004\000\144\128\000\016\000\000 \016\224 \000\000\b\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\0008\b\0008\184\192\000 \000\000\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\000\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\004 \000\004\000\000\b\0048\024\000\000\002\001\000\000\b@\000\b\000\000\016\b`\016\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\000\001\000\000\002\001\012\002\000\000\000\128@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b@\000\b\000\000\016\b@\016\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\001!\192\001\016\0030\000\016\002B@\017@\004\b\002B\000\002 \006`\000 \004\b\000\000\000\000\000\016\001\128\000\000\000\000\000\000\000\016\000\000\000\000\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\b\000@\002\136\016\000\000\000\000\000\000\000! \b\160\002\004\001!\192\001\016\0030\000\016\002B@\017@\004\b\002B\000\002 \006`\000 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\006\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\128\0008\t\000*\184@\000 \000\000\000\000\000\133\128\170\128\b\024\016\135\000\004@\014\192\000\192\b\006\000\000\192\000\000\162\225\000\000\128\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\024\000\003\128\144\002\171\132\000\002\000\000\000\000\000\0000\000\007\001\000\007\023\b\000\004\000\000\000\000(\000\000\000@\000\000\000\000 \000\000\000\000\001\000@\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\001\128\0008\t\000*\184@\000 \000\000\000\000\000\003\000\000`\000\000Qp\128\000@\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\012\000\001\192H\001U\194\000\001\000\000\000\000\000\004,\005T\000@\192\1328\000\"\000v\000\002\000HX\n\168\000\129\129\bp\000D\000\236\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \n\160\002\004\000!\192\001\000\003\176\000\016\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000E\000\016 \001\012\000\b\000\025\128\000\128\018\018\000\138\000 @\002\016\000\016\0003\000\001\000 @\000\000\000\000\000\128\012\000\000\000\000\000\000\000\000\128\000\000\000\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\016\000\000\000\000\000\000\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\000\000\000\000\000\000@\000\003\000\000p\018\000Up\128\000@\000\000\000\000\001\t\000E\000\016 \001\012\000\b\000\025\128\000\128\018\018\000\138\000 @\002\016\000\016\0003\000\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! \b\160\002\004\000!\000\001\000\0030\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\000!\128\001\000\0030\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000@@@\016PA\000\000\002\000\000\000\000\000\002\000\128\128\000 \160\130\000\000\004\000\000\000\000\000\004\001\001\000\000AA\000\000\000\b\000\000\000\000\006$\001\020\000@\192\0048\000 \000f\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\004P\001\002\000\016\128\000\128\001\152\000\b\001\000\128\000\t \000\148\000@\b\000\000\000\000\000@\001\000\000\018@\001(\000\000\016\000\000\000\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\001\t\000E\000\016 \t\012\000\b\128\029\128@\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128$0\000\"\000f\001\002\000HH\002(\000\129\000H@\000D\000\204\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\000B\000\002\000\006`\000 \004\002\000\000$\128\002P\001\000 \000\000\000\000\001\000\004\000\000I\000\004\160\000\000@\000\000\000\000\002\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\0002\000\007\129\000\007\023\n\000\004\001\000@\000 \000`\000N\002\000\014.\016\000\b\000\000\000\000P\000\000\000\000\000(\004\000\000\000\001\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\022\128\138\000 A\018\026\000\017\000s\000\129\000$$\001\020\000`\128$8\000\"\000f\001\006\016HH\002(\000\129\000Hp\000D\000\204\002\004 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\001!\128\001\016\0030\b\016\130\000\144\000\000\000\000 \000@\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 @\002\024\000\016\0003\000\129\000$$\001\020\000@\128\004 \000 \000f\000\002\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\002C\128\002 \007`\016 \004\001 \000\b\000\000@\000\160\000\000\016\004\000\002\000\002@\000\000\000\000\128\001@\000\000 \b\000\004\000\000\000\000\000\002\128@\000\000\000\016\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\006\b\002C\128\002 \006`\016a\004\132\128\"\128\b\016\004\135\000\004@\012\192 B\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128@\000\000\000\016\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000@\000\000\000\000\000\000\000\004@\000\000 \000\b\000\192\000\000\000\000\000\000\000\b\000\000\000\000\000\016\001\128\000\000\000\000\000\000\000\016\000\000\000\000\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\0002\144\005\t\000%\004\138\192\004\003 \000\n\b\016d1\b\252\002\207)\022\159\025\006\193\000d\178\192@\000\016\000\128\021\016 \000\000 \000\000\000\000B\000\000@\000\000\160B\129\128\000\000 \016\000\000\132\000\000\128\000\001@\132\003\000\000\000@ \000\001\b\000\001\000\000\002\001\b\006\000\000\000\128@\000\000 \000\000\000\000\128@\004\000\000\000\000\000\000\004\000\000\000\000\000\001\000\128\b\000\000\000\000\000\000\000\000\000\000\000\000\002\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\002@\000#a\000E\130F\252H\244\001\001\240\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\001\027\b\002,\0187\226G\160\b\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\128\000\016\000\000 \016\192`\000\000\b\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\016\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\192\000\028\004\000\028\\ \000\016\000\000\000\000\000B\000\000@\000\000\128C\129\128\000\000 \016\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\t\000\000\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\004l \b\176H\223\137\030\128 >\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\004\000\000\b\000\128\000\000\000\000\000\000\128\000\000\000\b\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\016\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\0002\144\005\t\000%\004\138\192\004\003 \000\n\b\000p\000\014\002\000\014.\016\000\b\000\000\000\000\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\000\000\000\000\001\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\000\000\000\000\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\004l \b\176H\223\137\030\128 >\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\000\000\128\000\001\000\134\003\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000 \000\000@\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\0002\144\005\t\000%\004\138\192\004\003 \000\n\b\000p\000\014\002\000\014.\016\000\b\000\000\000\000\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\000\000\000\000\001\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\000\000\000\000\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\004l \b\176H\223\137\030\128 >\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130F\252I\244\001\001\240\000\0001\192F\194\000\139\004\141\248\145\232\002\003\224\000\000c\130\016\000\002\000\000\004\002\024\012\000\000\001\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\004\000 \005D\024\000\000\b\000\000\000\016\000 \000\b\000@\n\1360\000\000\016\000\000\000\000\000@\000\016\000\128\021\016 \000\000 \000\000\000\000\000\128\000 \001\000* @\000\000@\000\000\000\000\003!\004@\200\002pI\180\000@0\000\000 \128\251\236\136\016_\227h\000&\014\007\184\226\192\160\208\012\132\017\002\000\t\193&\208\001\000\192\000\000\130\000\025\b\"\004\000\019\130E\160\002\001\128\000\001\004\0002\016\004\b\000'\004\139@\004\003\000\000\002\b\000\000\000\000\000\000\000\000@\000@\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\128\000\000\000\000\000\000\128\001\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\b\000\002\000\016\002\162\004\000\000\004\000\000\000\000\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\001\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\000\000\000\000\000\000\000\000\003)\000P\144\002PI\172\000@0\000\000 \128\006R\000\161 \004\160\145X\000\128`\000\000A\000\012\164\001B@)A\"\176\001\000\192\000\000\130\000\b\000\002\000\016\002\162\004\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128 \000\b\000@\n\136\016\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B\212\149j\r(\170g\247\130 \030`\016x\212\133\169*\212\026QT\207\239\004@<\192 \241\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\170\000 D\018\028\012\017\0003\000\131\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\005P\001\002 \144\224`\136\001\152\004\024\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128*\128\b\017\004\135\003\004@\012\192 \192(\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\000\b\000\002\000\016\002\162\004\000\000\004\000\000\000\000\bH\002\168\000\129\016Hp0D\000\204\002\012\002\128d \136\016\000N\t\022\128\b\006\000\000\004\016\000\200@\016 \000\156\018-\000\016\012\000\000\b \000\000\000\000\000\000\000\001\000\001\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\016\000\000\000\000\002\000\000\000\000\000\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\0000\000\007\001 \005W\b\000\004\000\000\000\000\000\016\000\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\132\000\000\128\000\001\000\135\003\000\000\000@ \000 \000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004 \000\004\000\000\b\0040\024\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\b\000@\n\136\016\000\000\016\000\000\000\000!\000\000 \000\000@!\192\192\000\000\016\b\000\bB\000\000@\000\000\128C\001\128\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\224 \000\226\227\000\000\128\000\000\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\004 \000\004\000\000\b\0040\024\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\000\000\128\000\001\000\134\003\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004 \000\004\000\000\b\004 \024\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\004P\001\002\000\144\224\000\136\001\152\000\b\001\000\192\000\028\004\128\021\\ \000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\001\000\000@\002\000T@\128\000\000\128\000\000\000\001\t\000E\000\016 \t\014\000\b\128\025\128\000\128\016\012\164\001B@\tA\"\176\001\000\200\000\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\129\000H`\000D\000\204\000\004\000\144\144\004P\001\002\000\144\128\000\136\001\152\000\b\001\002\000\000\000\000\000\004\000`\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\012\164\001B@\tA\"\176\001\000\200\000\002\130\004$\001\020\000@\128$0\000\"\000f\000\002\000HH\002(\000\129\000H@\000D\000\204\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b\016\004\132\000\004\000\012\192\000@\000\006B\b\129\128\004\224\147h\000\128`\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b\016\004\132\000\004@\012\192\000@\t\t\000E\000\016 \t\012\000\b\128\025\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\016\002\002\000\002\002\b\000\000\016\000\000\000\000\000\016 \004\000\000\004\004\016\000\000 \000\000\000\000\000 @\b\000\000\b\b\000\000\000@\000\000\000\000! \b\160\002\004\017!\192\001\016\0030\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b\016\004\132\000\004@\012\192\000@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\004P\001\002\000\144\192\000\128\001\152\000\b\000! \b\160\002\004\001!\000\001\000\0030\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128$ \0002\000f\000\002\000@\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\001!\128\001\000\0030\000\016\000B@\017@\004\b\002B\000\002\000\006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\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\024\144\005P\001\003\b\144\224\000\136\001\216\000\136\0010\000\002\000\000\002\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\002\000\000\000\000\000\019\004@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\000\000 \000\000@!\000\192\000\000\016\b\000\000@\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\025\b\002\004\000\018\130E\160\002\001\160\000\001\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\192\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000 \000\001\000\002\000\000\000@\000\000\b\000\t\000\000\000\000\002\000\004\000\000\000\128\000\000\016\000\018\000\000\000\000\004\000\b\000\000\001\000\000\000\000\016\144\004P\001\130\000\144\224\000\136\001\216\000\024@\000H\000\000\000\000\016\000 \000\000\004\000\000\000\000B@\017@\004\b\002C\128\002 \006`\000!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000E\000\016 \t\012\000\b\128\025\128\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000E\000\024 \t\014\000\b\128\029\128\001\132\000\004\128\000\000\000\001\000\002\000\000\000@\000\000\000\004$\001\020\000@\128$8\000\"\000f\000\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000! \b\160\130\004\001!\128\001\016\003\176\b\016\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b\016\004\134\000\004@\012\192 @\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000@\000\002\000\004\000\000\000\128\000\000\016\000\018\000\000\000\000\004\000\b\000\000\001\000\000\000 \016\144\004P\001\002\000\144\192\000\136\001\152\000\b@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\000 \000\000\000 \000\000\000\144\000\000\001\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\000\000\000\128\000\000\000\000\b\000\000@\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\128\000\000\000\000\000`\000\012\000\000\n.0\000\t\000\000\128\000\000\000\192\000\024\000\000\020\\ \000\018\000\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\002\000 \000\000\000 \000\000\000\144\000\000\000\000\000\012\000\001\128\000\001E\194\000\001 \000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\000\000\000\000\000\000\000\000\001\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\016\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\0000\000\006\000\000\005\023\b\000\004\000\000\000\000\000\024\144\007p\001\003 \144\224`\137\001\216\005\136E\177 \014\224\002\006A!\192\193\018\003\176\011\016\139\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\000`\000\000Qp\128\000@\000\000\000\000\000\006\000\000\224 \226\225\000\000\128\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\b\000\000\000\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\192\000\028\004\000\028\\ \000\016\000\000\000\000\000\001\128\0000\000\000(\184@\000 \000\000\000\000\000\196\128;\128\b\025\004\135\003\004H\014\192,B-\137\000w\000\0162\t\014\006\b\144\029\128X\132X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000`\000\012\000\000\n.\016\000\b\000\000\000\000\0001 \014\224\002\006A!\192\193\018\003\176\011\016\139b@\029\192\004\012\130C\129\130$\007`\022!\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\000\024\000\003\000\000\002\139\132\000\002\000\000\000\000\000\012H\003\184\000\129\144Hp0D\128\236\002\196\"\216\144\007p\001\003 \144\224`\137\001\216\005\136E\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\001\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\016\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\0000\000\006\000\000\005\023\b\000\004\000\000\000\000\000\024\144\007p\001\003 \144\224`\137\001\216\005\136E\177 \014\224\002\006A!\192\193\018\003\176\011\016\139\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\004\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\000\000\000@\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000`\000\014\002\000\014.\016\000\b\000\000\000\000\000\000\192\000\024\000\000\020\\ \000\016\000\000\000\000\000b@\029\192\004\012\130C\129\130$\007`\022!\022\196\128;\128\b\025\004\135\003\004H\014\192,B,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128@\000\000\000\016\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\001!\192\001\016\0030\b\016\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006@\000\240 \000\226\225@\000\128 \b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128\0040\000 \000f\001\002\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000H\000\002\000\000\016\000 \000\000\004\000\000\000\128\000\144\000\000\000\000 \000@\000\000\b\000\000\001\000\132\128\"\128\b\016\000\134\000\004\000\012\192\000B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000! \b\160\130\004\000!\128\001\000\003\176\b\144\002\001\144\000<\b\0008\184P\000 \b\002\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000E\000\016 \001\012\000\b\000\025\128@\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\128\000\004\000\b\000\000\001\000\000\000 \000$\000\000\000\000\b\000\016\000\000\002\000\000\000@! \b\160\002\004\000!\128\001\000\0030\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000@\000\000@\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\004P\001\002\000\144\192\000\136\001\152\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000F\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\001\027\b\002,\0187\226G\160\b\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000A\000\016 \001\b\000\b\000\025\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\000\000\000\n\000\016\000\000\002\000\000\000\000 \000\"\001\248\005\130@\000>\"\000\130\000\193E\128\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\016\000\000\000\016\000\000\000\000\005\000\000\000\000\000\000\000\000\000\016\000\016\000\252\002\193 \000\031\017\000A\000`\162\192\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\000\000\000 \000@\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\176\128\"\193#~$z\000\128\248\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\016\002\000\000\002\002\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000 \000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128 \000\b( \000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\002\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128 @\001($Z\000 \026\000\000\016@\000\000\000\000\000\000\000\001\000\000\000\000\128\t\002 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\001\000\000\000\000\000P\000\000\000\000\000\000\000\000\000O\194A\139\020\173\249\153\232\n\131\249\000\000\227\128\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000-\t\004\000@\130\164 \"\000\228\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000A\000\016 \t\b\000\b\128\025\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001 \b \002\004\001!\000\001\000\003\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\252$\024\177J\223\153\158\128\168?\144\000\0148\t\248H1b\149\1913=\001P\127 \000\028p\002@\016@\004\b\002B\000\002 \006@\000 \000\004\128 \128\b\016\004\132\000\004@\012\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\001\004\000@\128$0\000\"\000d\000\002\000\000H\002\b\000\129\000H@\000D\000\200\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128 \128\b\016\004\134\000\004@\012\128\000@\000\t\000A\000\016 \t\b\000\b\128\025\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") + (127, "'\225 \197\138V\252\204\244\005\001\252\128\000q\192F\194\000\139\132\141\248\147\232\002\003\224\000\000c\129\247\217\016 \191\198\208\000L\028\015q\197\129A\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\175\235f\245\155W\252\205\255%C\252B \243\192\251\236\136\016_\227h\000&\014\007\184\226\192\160\208\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0026\016\004X$o\196\159@\016\031\000\000\003\028\015\190\200\129\005\2546\128\002`\224{\142,\n\r\t\248H\181b\149\1913=\001@\127\000\000A\000f\186\224HB\017\000\144\020\0189\000\000\012\000\000\012`\017\176\128\"\193#~$z\000\128\248\000\000\028\224#a\000E\130F\252H\244\001\001\240\000\0001\193\171{w\175\244\190\175\159\223\253\176\253\246\223\255<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\000\025\b\002\004\000\018\130E\160\002\001\128\000\001\004\0002\016\004\b\000%\004\139@\004\003@\000\002\136\000d H\016\000J\t\022\128\b\006\128\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\016\000\000\000\000\000\000\000\000 \000\b\000\000`\000\014\002\000\014.\016\000\b\000\000\000\000\0001`.\224\002\006E!\192\193\018\003\176\0110\139\001\128\0000\000\0008\184@\000 \000\000\000\000\000\003\000\000`\000\000Qp\128\000@\000\000\000\000\000\006\000\000\224 \226\225\000\000\128\000\000\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\b\000`\000N\002\000\014.\016\000\b\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\0008\b\0008\184@\000 \000\000\000\000@\003\000\000p\016\000qp\128\000@\000\000\000\002\128\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\016\000\000\b\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\016\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\0008\b\0008\184@\000 \000\000\000\000@\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\018\000\238\000 d\018\028\012\017 ;\000\177\b\176\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\0000\000\006\000\000\005\023\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001 \014\224\002\006A!\192\193\018\003\176\011\016\139\001\128\0008\b\0008\184@\000 \000\000\000\000\000\003\000\000`\000\000Qp\128\000@\000\000\000\000\001\137\000w\000\0162\t\014\006\b\144\029\128X\132X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006$\005\220\000@\200$8\024\"@v\001b\017`0\000\006\000\000\005\023\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\128\000\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\022\002\238\000 dR\028\012\017 ;\000\177\b\176\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000b\192]\192\004\012\138C\129\130$\007`\022!\022\003\000\000`\000\000Qp\128\000@\000\000\000\000\001\139\001w\000\0162)\014\006\b\144\029\128X\132[\018\000\238\000 d\018\028\012\017 ;\000\177\b\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\006\000\000\007\023\b\000\004\000\000\000\000\000\000`\000\014\002\002\014.\016\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\004\000\000\001\000\000\000\000\000\016\000\000\000@\000\000\000\000\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000@\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\196\128;\128\b\025\004\135\003\004H\014\192,B(\000\000\000@\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\004\000\000\000\000\000\000 \000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\0000\000\000(\184@\000 \000\000\000\000\000\001\000\000\000\000\000\016\000\000\000@\000\000\000\128\000\006\000\000\192\000\000\162\225\000\000\128\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\004\000\000\000\000\000\000`\000\014\002\000\014.\016\000\b\000\000\000\000\000\000\000\002\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\006\000\000\192\000\000\162\225\000\000\128\000\000\000\000\003\018\000\238\000 d\018\028\012\017 ;\000\177\b\182$\001\220\000@\200$8\024\"@v\001b\017`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \017\000\000\001\002\000 \000\b\000\000\001\016\004\000\192\000\024\000\000\020\\ \000\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\002\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\128\000\000`\000\012\000\000\n.\016\000\b\000\000\000\000\000\000\192\000\028\004\004\028\\ \000\016\000\000\000\000\000\000\000\000\016\000\000 \000\000\000\000\000\001\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\016\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\0000\000\006\000\000\005\023\b\000\004\000\000\000\000\000\024\144\007p\001\003 \144\224`\137\001\216\005\136E\177 \014\224\002\006A!\192\193\018\003\176\011\016\139\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\000\012\000\001\128\000\001E\194\000\001\000\000\000\000\000\006$\001\220\000@\200$8\024\"@v\001b\017lH\003\184\000\129\144Hp0D\128\236\002\196\"\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\001\128\0008\b\0008\184@\000 \000\000\000\000\000\003\000\000`\000\000Qp\128\000@\000\000\000\000\001\137\000w\000\0162\t\014\006\b\144\029\128X\132[\018\000\238\000 d\018\028\012\017 ;\000\177\b\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012H\003\184\000\129\144Hp0D\128\236\002\196\"\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000@\000\000\016\000\000\128\000\000\000 \000`\000\014\002\000\014.\016\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\0008\b\0008\184@\000 \000\000\000\000\000\000\000\002\000\000\000\000\001\000\000\b\000\000\000\002\004\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\000\000\000\b\000\000\000\000\004\000\000 \000\000\000\b\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\000\000\128\000\000\000\"@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000@\000\002\000\000\000\000\128\000\000\001\000\000\000\000\000\000\000\000\000\000\000\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\004\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\002\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\004\000\000\000\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\001\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\016\000\000\000\000\000\000\128\000\000\001\128\0008\b\0008\184@\000 \000\000\000\000\000\000\000\b\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\000\024\000\003\000\000\002\139\132\000\002\000\000\000\000\000\012H\003\184\000\129\144Hp0D\128\236\002\196\"\216\144\007p\001\003 \144\224`\137\001\216\005\136E\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\006\000\000\192\000\000\162\225\000\000\128\000\000\000\000\003\018\000\238\000 d\018\028\012\017 ;\000\177\b\182$\001\220\000@\200$8\024\"@v\001b\017`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\192\000\028\004\000\028\\ \000\016\000\000\000\000\000\001\128\0000\000\000(\184@\000 \000\000\000\000\000\196\128;\128\b\025\004\135\003\004H\014\192,B-\137\000w\000\0162\t\014\006\b\144\029\128X\132X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\136\000\000\000\000\b\000\000\000\016\000\000\000\b\000\001\016\000\000\000\000\000\000\000\000 \000\000\000\000d \b\016\000J\t\022\128\b\006\128\000\004\016\000\200@\0160\000\148\018i\000\016\012\000\000\b \001\144\128 @\001($\210\000 \024\000\000\016@\003!\000@\128\002PH\164\000@0\000\000 \128\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t2\145\181\t\000\165\004\154\192$\003(@\218\170\000\000 \000\016\000@\000\000\128\000\004\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001&R6\161 \020\160\147x\004\128m\004\027U@\004\000\000\000\000\001\000\"\128\000\000\000\000\000\000\004\025\bB\004\000\018\130E\160\002\001\160\000\t\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200@\0160\000\148\018m\000\016\r\000\000\b \001\144\128 @\001($\218\000 \026\000\000\016@\003!\000@\128\002PH\180\000@4\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000\216\000\000@\000\b\000\016\000\020\000LQ\0002\016\004\b\000%\004\139@\004\003@\000\002\b\018\000\003`\000\001\000\000 \000@\000P\0011D \200@\016 \000\148\018-\000\016\r\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\000\027\000\000\b\000\001\000\002\000\002\128\t\138 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002L\132m\002\000)A&\208\t\000\218\000&\170\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018d#h\016\001J\t6\128H\006\208\0015T \232b\017\248\005\150R->2\r\130\000\201e\128\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\002\004\000\018\130E \002\001\128\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\004\000\000\000\000\000\002\000\000\016\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\000\004\000\000\000\000\000&\b\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016d \b\016\000J\t\022\128\b\006\128\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\r\128\000\004\000\000\128\001\000\001@\004\197\016\131\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016d \b\016\000J\t\022\128\b\006\128\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\r\128\000\004\000\000\128\001\000\001@\004\197\016\128\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\000\000\000\000\000\128\000\000\000\000\004\129\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\t\002\000\tA\"\208\001\000\208\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\t\000\000\000\000\000\128\000\000\000\000\004\133\016\131!\002@\128\002PH\180\000@4\000\000(\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\136\000\000\000\000\b\000\000\000\000\000H\017\b\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\016`\000 \000\000\002\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\020$\000\148\018k\000\144\012\128\002h\172\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\b\000\002\000\000\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\000\000\000\002\000\000\004\000\000\000\000\000\000 \000\000\000`\000\014\002\000\014.\016\000\b\000\000\000\000\000\000\000\002\000\000\000\000\000@\000\000\000\128\000\000\000\000\000\004\000\000\000\000\000\128\000\000\001\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\002\000\000\000\000F\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\012\132\017\003 I\193&\208\001\000\208\000\000\130\000\b\016\002\002\000\002\002\b\000\000\016\000\000\000\b\000\016 \004\004\000\004\004\016\000\000 \000\000\000\000\000 @\b\000\000\b\b \000\000@\000\000\000\000\000@\128\016\000\000\016\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000 \000\128\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\006\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\016\004\004\000\001\005\004\000\000\000 \000\000\000\000\000 \b\b\000\002\n\b\000\000\000@\000\000\000\000\000\000\000\000\000\000\016\000@\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\b@\000\000\000\000\000\000\000\000\000\002\000\128\128\000 \160\128\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006$\001T\000@\192$8\000\"\000v\000\"\000@\b\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000`\000\004\144\000J\000\000\004\000\000\000\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\000\000\000\001\000\001\000\000\003\000\000x\016\000qp\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\006$\001T\000@\192$8\000\"\000v\000\"\001@0\000\007\001\000\007\023\b\000\004\000\000\000\000\000\024\144\005P\001\003\000\144\224\000\136\001\216\004\136\0051 \n\160\002\006\001!\192\001\016\003\176\t\016\002\001\128\0008\b\0008\184@\000 \000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\000\000\000\000\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\003\018\000\170\000 `\018\028\000\017\000;\000\145\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\128\000\000\128 \000\b( \000\000\001\000\000\000\000\000\196\128*\128\b\024\004\135\000\004@\014\192\004@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\b\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\012H\002\168\000\129\132Hp\000D\000\236 d\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\128\128\000 \160\128\000\000\004\000\000\000\000\003\018\000\170\000 `\018\028\000\017\000;\000\017\000 \b\002\002\000\000\130\130\000\000\000\016\000\000\000\000\012H\002\168\000\129\128Hp\000D\000\236\000D\000\128\000\000\000\000\000\000\000\000\000\000\000@@@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000b@\021@\004\012\"C\128\002 \007a\002 \004\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\018\000\170\000 a\018\028\000\017\000;\b\017\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012H\002\168\000\129\128Hp\000D\000\236\000D\000\128\016\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\016\000\000\016\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\128\000\000\128\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\016\000\000\000\000\000\000\000\000\000\000\129\000 \000\000 \000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\137\000U\000\0160\137\014\000\012\128\029\128\t\128\016\020\b!\000\000\001\001\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\128\000\000\004\000\016\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128 \000\b( \000\000\001\000\000\000\000\000\192\000\b\000\000\b\000\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\024\144\005P\001\003\b\144\224\000\200\001\216@\152\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\128\001\000\000\000\000\000\000#a\000E\130F\252H\244\001\001\240\000\0001\192F\194\004\139\004\141\248\145\232\002\003\224\000\000c\128\000\000\000\000\000\000@\000\000\000@\000\000\000\000\004\000\000\128\000\000\000\000\000\000\000\128\016\000\000\000\0026\016\004X$o\196\143@\016\031\000\000\003\028\000$ \b\128H\n\t\028\128\000\006\000\000\00600\000\004@\000\000\000\000\000\0000\000\130\129 \000\017\176\128\"\225#~$\250\000\128\248 \000\024\224#a\000E\130F\252I\244\001\001\240@\0001\192F\194\000\139\004\141\248\145\232\002\003\224\128\000c\128\004\132\001\017\t\001A'\144\000\000\192\000\000\198\000\t\b\002 \018\002\130O \000\001\128\000\001\140\000\018\016\004@$\005\004\142@\000\003\000\000\003\024\000$ \b\128H\n\t\028\128\000\006\000\000\0060\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003V\246\239_\233}W?\191\251a\251\237\191\254\248\b\000\000\000\000\002\128G\000\000\000\000\000\000\000\n6\024\132~%o\212\143O\152\159 \1283]`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000(\216B\017`\145\191\018=\000@|\000\000\012pQ\176\132\"\193#~$z\000\128\248\000\000\024\224\129\002\000@@\000@A\000\000\002\000\000\000\000\000\002\004\000\128\000\000\128\130\000\000\004\000\000\000\000\000\004\b\001\000\000\001\001\000\000\000\b\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\000\000\004\000\b\016\004\004\000\001\005\004\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\002\000\000\002\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\163a\bE\130F\252H\244\001\001\240\000\0001\193F\194\016\139\004\141\248\145\232\002\003\224\000\000c\130\012\132!\002\000\tA\"\208\001\000\192\000\000\130\000\000\000\000\000\000\000\000\b\000\000\000\016\000L\017\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000@\000\000\000\b\216@\017`\145\191\018=\000@|\000\000\012p\017\176\128\"\225#~$\250\000\128\248\000\000\024\224#a\000E\130F\252I\244\001\001\240\000\0001\192F\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\012\132\001\003\000\tA&\208\001\000\208\000\000\138\000\025\b\002\004\000\018\130M\160\002\001\160\000\001\020\0002\016\004\b\000%\004\139@\004\003@\000\002(\000d \b\016\000J\t\022\128\b\006\128\000\004\016\004\000\000\000\000\002\000\000@\000\000\000\000\002@\136\017\176\128\"\193#~$z\000\128\248\000\000\024\224\003)\000P\208\002PI\172\000@0\000\000 \128\006R\000\161 \004\160\147X\000\128`\000\000A\000\012\164\001B@\tA\"\176\001\000\192\000\000\130\000\016\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d \b\016\000N\t\022\128\b\006\128\000\004\016\000\200@\016 \000\148\018-\000\016\r\000\000\b \000\000\004\000\000\000\000\000\128\000\000\001\000\004\193\016\003\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\000@\000\000\128\000\000\000\000\000\004\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\000\000\000@\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\128\000\000\000\000\016\000\000\000 \000\000\000\000\000\001\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016t1\b\252\002\207)\022\159\025\006\193\000d\178\192\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\n\000\000\000\000\000\000\000\016\000\000@\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000P\144\nPH\172\000@0\000\000\160\128F\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\012\132\001\003\000\tA&\208\001\000\208\000\000\130\000\025\b\002\004\000\018\130M\160\002\001\160\000\001\004\0002\016\004\b\000%\004\139@\004\003@\000\002\b\000\000\000\000\000\000\000\000 \000\000\000@\001 D\b\216@\017`\145\191\018=\000@|\000\000\012p\000\144\128\"! ($\242\000\000\024\000\000\024\192\001!\000D\002@PI\228\000\0000\000\0001\128\002B\000\136\004\128\160\145\200\000\000`\000\000c\003RR\238\015\160|\022\028\015\251a;\237\1918x\t\b\002 \018\002\130G \000\001\128\000\001\140\r[\219\189\127\165\245\\\254\255\237\135\239\182\255\251\224\000\000\000\000\000\b\000\020\000\000\000\000\000\000\000\b\216@\017`\145\191\018=\000@|\000\000\012p\017\176\128\"\193#~$z\000\128\248\000\000\024\224\213\189\187\215\250_U\207\239\254\216~\251o\255\158\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000\b0\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\006@\000\000\000\000@\000\000\000\128\000\000\000A\128\0008\b\0008\184@\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\0002\000\000\000\000\002\000\000\000\004\000\b\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\004\000\000\200\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002B\000\136\004\128\160\145\200\000\000`\000\000c\003V\246\239_\233}W?\191\251a\251\237\191\254\248\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\n\000\020\000\000\000\000\000\000\000\b\216@\017`\145\191\018=\000@|\000\000\012p@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003RR\238\015\160|\022\028\015\249a;\197\1918y\027\b\002,\0187\226G\160\b\015\128\000\001\142\r[\219\189\127\165\245\\\254\255\237\135\239\182\255\249\250\146\151p}\003\224\176\224\127\219\t\223m\249\195\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000!\027\b\002,\0187\226G\160\b\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015#a\000E\130F\252H\244\001\001\240\000\0001\193\169)w\007\208>\011\014\007\252\176\157\226\223\156<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\173\237\222\191\210\250\174\127\127\246\195\247\219\127\252\253IK\184>\129\240Xp?\237\132\239\182\252\225\228l \b\176H\223\137\030\128 >\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000{\250\221\227\245/\254\231\251\255\172\255x\183\255\239}\246D\b/\241\180\000\019\007\003\220q`PhF\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0026\016\004X$o\196\143@\016\031\000\000\003\028\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015#a\000E\130F\252H\244\001\001\240\000\0001\193\169)w\007\208>\011\014\007\252\176\157\226\223\156<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\2426\016\004X$o\196\143@\016\031\000\000\003\028\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015#a\000E\130F\252H\244\001\001\240\000\0001\193\169)w\007\208>\011\014\007\252\176\157\226\223\156<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\2426\016\004X$o\196\143@\016\031\000\000\003\028\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015#a\000E\130F\252H\244\001\001\240\000\0001\193\169)w\007\208>\011\014\007\252\176\157\226\223\156<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\2426\016\004X$o\196\143@\016\031\000\000\003\028\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015#a\000E\130F\252H\244\001\001\240\000\0001\193\169)w\007\208>\011\014\007\252\176\157\226\223\156<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\2426\016\004X$o\196\143@\016\031\000\000\003\028\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015#a\000E\130F\252H\244\001\001\240\000\0001\193\169)w\007\208>\011\014\007\252\176\157\226\223\156<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\2402\016\004\b\000'\004\155@\004\003\000\000\002\b\000d \b\016\000N\t\022\128\b\006\000\000\004\016\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\001\148\128(H\001($V\000 \025\000\002P@\131\161\136G\224\022yH\180\248\2006\b\003%\150\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000 \000\000\001@\000\000\000\000\000\000\002\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000e \n\018\000J\t\021\128\b\006@\000\148\016 \232b\017\248\005\158R->2\r\130\000\201e\128\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000P\000\000\000\000\000\000\000\128\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\025H\002\132\128\018\130E`\002\001\144\000%\004\0002\016\004\b\000%\004\138@\004\003\000\000\002\b\016d1\b\252\002\207)\022\159\025\006\193\000d\178\192\200@\016 \000\148\018-\000\016\r\000\000\b \000\000\004\000\000\000\000\000\128\000\000\000\000\004\193\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\006\000\000\005\023\b\000\004\000\000\000\000\000\000 \000\000\000\000\002\000\000\000\b\000\000\000\016\000\000\192\000\024\000\000\020\\ \000\016\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\000\000\000\000\004\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\000\000\000@\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\000 \000\000\000\000\0010D \192\000\028\004\000\028\\ \000\016\000\000\000\000\000\000\000\000\016\000\000 \000\000\000\000\000\001\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\016\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0026\016\004X$o\196\143@\016\031\000\000\003\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\017\176\128\"\193#~$z\000\128\248\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\002\132\128\018\130E`\002\001\144\000%\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000P\144\002PH\172\000@2\000\004\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001@\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d \b\016\000J\t\022\128\b\006\128\000\004\016\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\001\000\000\000\000\000\t\130!\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\000\000\000\000\128\000\001\000\000\000\000\000\000\b\000\000\000\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000P\144\002PH\172\000@2\000\004\160\128F\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\0026\016\004X$o\196\143@\016\031\000\000\003\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000P\144\002PH\172\000@2\000\004\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\000\000\000\001\000\000\002\000\000\000\000\000\000\016\000\000\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000@\000\000\000\b\216@\017`\145\191\018=\000@|\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000F\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bz\146-\t\129%L\250\192d\003\236\000\222*\144p\000\014\002\000\014.\016\000\b\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\004\000\000\000\000\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\004\000\000\000\000\000\000 \000\000\000`\000\014\002\000\014.\016\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\128\000\000\000\017\176\128\"\193#~$z\000\128\248\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000@\0010D\000\192\000\028\004\000\028\\ \000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\001\000\000\000\000#a\000E\130F\252H\244\001\001\240\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000$\b\129\027\b\002,\0187\226G\160\b\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016d \b\016\000J\t\022\128\b\006\128\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\001\000\004\129\016\131!\000@\128\002PH\180\000@4\000\000 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000$\b\132\025\b\002\004\000\018\130E\160\002\001\160\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000@\001 D \000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\016\000H\017\0002\016\004\b\000%\004\139@\004\003@\000\002\b\000\000\000\000\000\000\000\000 \000\000\000@\001 D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\002C\000\003 \006`\000 \004\132\128\"\128\b\017\004\134\003\006@\012\192 @\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\rIK\184>\129\240Xp?\229\132\239\022\252\225\228l \b\176H\223\137\030\128 >\000\000\0068 \000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000F\194\000\139\004\141\248\145\232\002\003\224\000\000c\130\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\016\000(\000\000\000\000\000\000\000\017\176\128\"\193#~$z\000\128\248\000\000\024\224\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004\216\031\0000\b\b\007\192@\016\000X`:6\016\180X$o\196\143@\016\031\000\000\003\156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\216@\017`\145\191\018=\000@|\000\000\012p@\000\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\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\004\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\144\128\"\001 ($r\000\000\024\000\000\024\192\213\189\187\215\250_U\207\239\254\216~\251o\255\190\000\000\000\000\000\000\128\001@\000\000\000\000\000\000\000\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\183\183z\255K\234\249\253\255\219\015\223m\255\243\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015#a\000E\130F\252H\244\001\001\240\000\0001\193\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\173\237\222\191\210\250\190\127\127\246\195\247\219\127\252\2426\016\004X$o\196\143@\016\031\000\000\003\028\026\146\151p}\003\224\176\224\127\203\t\222-\249\195\200\216@\017`\145\191\018=\000@|\000\000\012p@\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\171{w\175\244\190\175\159\223\253\176\253\246\223\255<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\240\016\000\000\000\000\005\000\n\000\000\000\000\000\000\000\004l \b\176H\223\137\030\128 >\000\000\0068 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000j\222\221\235\253/\171\231\247\255l?}\183\255\207#a\000E\130F\252H\244\001\001\240\000\0001\193\169)w\007\208>\011\014\007\252\176\157\226\223\156<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\004\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\r[\219\189\127\165\245|\254\255\237\135\239\182\255\249\228l \b\176H\223\137\030\128 >\000\000\00685%.\224\250\007\193a\192\255\150\019\188[\243\135\145\176\128\"\193#~$z\000\128\248\000\000\024\224\128\000\001\000\000\000\000\000\000\000\000\000\000\000\000\001\171{w\175\244\190\175\159\223\253\176\253\246\223\255<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\240\000\000\000\000\000\000\000\000\000\000\000\000\160\000\000\000\000\000\000\000\000\b\000\020\000\000\000\000\000\000\000\b\216@\017`\145\191\018=\000@|\000\000\012p@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\213\189\187\215\250_W\207\239\254\216~\251o\255\158F\194\000\139\004\141\248\145\232\002\003\224\000\000c\131RR\238\015\160|\022\028\015\249a;\197\1918y\027\b\002,\0187\226G\160\b\015\128\000\001\142\b\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\026\183\183z\255K\234\249\253\255\219\015\223m\255\243\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015#a\000E\130F\252H\244\001\001\240\000\0001\193\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\003V\246\239_\233}_?\191\251a\251\237\191\254y\027\b\002,\0187\226G\160\b\015\128\000\001\142\rIK\184>\129\240Xp?\229\132\239\022\252\225\250\183\183z\255K\234\249\253\255\219\015\223m\255\243\200\216@\017`\145\191\018=\000@|\000\000\012pjJ]\193\244\015\130\195\129\255,'x\183\231\015\213\189\187\215\250_U\207\239\254\216~\251o\255\191\171{w\175\244\190\171\159\223\252\176\253\226\223\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\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\017\176\128\"\193#~$z\000\128\248\000\000\024\224\128\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\004\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130F\252H\244\001\001\240\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \232b\017\248\005\158R->2\r\130\000\201e\128\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000P\000\000\000\000\000\000\000\128\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\025H\002\132\128R\130E`\002\001\128\000\005\004\0000\000\006\000\000\005\023\b\000\004\000\000\000\000\000\000 \000\000\000\001\002\000\000\000\b\000\000\000\000\000\b\216@\017`\145\191\018=\000@|\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000P\144\nPH\172\000@0\000\000\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\005\t\000\165\004\138\192\004\003\000\000\n\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000P\144\nPH\172\000@0\000\000\160\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\001B@)A\"\176\001\000\192\000\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\004l \b\176H\223\137\030\128 >\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\176\128\"\193#~$z\000\128\248\001\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\164\165\220\031@\248,8\031\242\194w\139~p\2402\016\004\b\000%\004\139@\004\003@\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000#a\000E\130F\252H\244\001\001\240\000\0001\193\169)w\007\208>\011\014\007\252\176\157\226\223\156<\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\006\164\165\220\031@\248,8\031\242\194w\139~p\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000@\001 D\b\216@\017`\145\191\018=\000@|\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\016F\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\b\002\004\000\018\130E\160\002\001\128\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 HB\017\000\144\020\0189\000\000\012\000\000\012`@\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141\132\001\022\t\027\241#\208\004\007\192\000\000\231\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000H\001\240\003\000\128\128|\004!\000\005\134\003\003!\000@\192\002PI\180\000@4\000\000 \128 \000\000\000\000\000\000\000\000\000\000\128\000\000\016\016\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\000\000\004\000\031\0000\b\b\007\192B\016\000X`0\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128 `\001($\218\000 \026\000\000\016@\003!\000@\128\002PI\180\000@4\000\000 \128\006B\000\129\000\004\160\145h\000\128h\000\000A\000\000\000\000\000\000\000\000\004\000\b\000\b\000$\b\129\027\b\002,\0187\226G\160\b\015\128\000\001\142\001\000\b >\000`\016\016\015\128\132 \000\176\192\228l \b\176H\223\137\030\128 >\000\000\0068\000\004 \000\248\001\128@@>\002\000\132\002\193\001\145\176\128\"\193#~$z\000\128\248\000\000\024\224\016\000\130\003\224\006\001\001\000\248\bB\000\011\012\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004l H\176H\223\137\030\128 >\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\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\002\000\002H\015\128\024\004\004\003\224!\b\000,\016\024\025\b\002\006\000\018\130M\160\002\001\160\000\001\004\001\000\000 \000\000\000\000\000\000\000\004\000\000\000\000\132l \b\176H\223\137\030\128 >\000\000\0068\000\000 \128\248\001\128@@>\002\016\128\002\193\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001!\000D\002@PH\228\000\0000\000\0001\128\128\000\000\000\000\000\000\000\000\001\128\000\020\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\016\000\000\000\000\000\000\000\000 \000H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\004@\000\000\000\000\000\000\000\000\128\000\000\000@\000\b\128\000\000\000\000\000\000\000\000\000\000\000\000\129\000\001\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\0000\000\002\128\000\000\000\128\000\000\000\000(\004p\000\000\000\000\000\000\000\192\000\017\000\000\000\000\000\000\000\192\002\n\004\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003RR\238\015\160|\022\028\015\251a;\237\1918x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002D\015\128\024\004\004\003\224`\b\000,\016\028\000\000\128\000\000\000\000\000\000\000\128\000\000\000\000\b\000\000\000\000\000\001\000\000\000\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\018@|\000\192 \031\001\b@\001`\128\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\002\000@\000\000@A\000\000\002\000\000\000\000\000\002\004\000\128\000\000\128\128\000\000\004\000\000\000\000\000\000\000\000\000\000\001\000\004\000\b\000\000\000\000\000\001\027\b\002,\0187\226G\160\b\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\000\b\000\000\000 \000\000\000\000\000\000\000\000\192\000\000\000\000\000\000@\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\002\000\000\128\000\002\004\000\128\000\000\128\128\000\000\004\000\000\000\000\002\018\000\138\000 A\018\028\000\025\0003\000\001\000 \b\002\002\000\000\130\130\000\000\000\016\000\000\000\000\004\000\000\000\000\000\128\000\016\000\000\000 \000\000\000\000 @\b\000\000\b\b\000\000\000@\000\000\000\000! \b\160\002\004\017!\192\001\144\0030\000\016\002\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000#a\000E\130F\252H\244\001\001\240\000\0001\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\b\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\004\000\004\000\024\000\000\001\000\000\000\000\000$\000\000\000\000\b\0000\000\000\002\000\000\000\000\000H\000\000\000\000\016\000 \000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\016\000 \000\000\000\b\000\000`\000\012\000\016\n.\020\000\b\128\000\000\000\000\000\192\000\024\000\000\020\\ \000\016\000\000\000\000\000B\192Q@\004\012\nC\128\003 \006`\016!\004\000\000\000\000\000\160\016\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\192\000\028\004\000\028\\ \000\016\000\000\000\000\000\000\000\000\016\000\000 \000\000\000\000\000\001\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\"\000\000\000\000\002\000\000\016\000\000\000\000@\000\000D\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\n\001\000\016\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\000\000\000\000@\000\002\000\000\000\000\b\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\001@ \000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\006\000\000\005\023\b\000\004\000\000\000\000\000\016\176\020P\001\003\002\144\224\000\200\001\152\004\bA\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\0000\000@(\184@\000\"\000\000\000\000\000\003\000\000`\000\000Qp\128\000@\000\000\000\000\001\011\001E\000\0160)\014\000\012\128\025\128@\132\016\012\000\001\128\000\001E\194\000\001\000\000\000\000\000\004,\005\020\000@\192\1648\0002\000f\001\002\016HX\n(\000\129\129Hp\000d\000\204\002\004 \128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!`(\160\002\004\005!\192\001\144\0030\b\016\130\001\128\0000\000@(\184P\000\"\000\000\000\000\000\003\000\000p\016\016qp\128\000@\000\000\000\000\000\002\001\016\000\000\016 \002\000\000\128\000\000\017\000@\012\000\001\128\000\001E\194\000\001\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\bX\011\186\000\129\149Hp0d\128\236\"\204\"\128\000\000\004\000\000\b\000\000\000\000\000\000@\000\000\000\192\000\024\000 \020\\(\000\017\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\003\000\000`\000\000Qp\128\000@\000\000\000\000\001\011\000E\000\016 )\014\000\012\128\025\128@\132\018\022\002\138\000 `R\028\000\025\0003\000\129\b \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\0000\000\006\000\000\005\023\b\000\004\000\000\000\000\000\016\176\004P\001\002\002\144\224\000\200\001\152\004\bA!`(\160\002\006\005!\192\001\144\0030\b\016\130\000\000\000\000\000\000\000\000\128\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000F\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\016D\b\000'\004\155@\004\003\000\000\002\b\000d \136\016\000N\t\022\128\b\006\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128 @\0018$Z\000 \024\000\000\016@\132\128\"\128\b\016\004\134\000\006@\012\192\000@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003RR\238\015\160|\022\028\015\249a;\197\1918x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\000\144\003\224\006\001\001\000\248\bB\000\011\012\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\b\016\002\002\000\002\002\b\000\000\016\000\000\000\000\000\016 \004\000\000\004\004\016\000\000 \000\000\000\000\000 @\b\000\000\b\b\000\000\000@\000\000\000\000\000\000\002\000\000\000\016\000@\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000@@\000\016P@\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000 \000\000 \000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\128\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\132\001\002\000\tA\"\208\001\000\208\000\000\138\006\164\165\220\031@\248,8\031\242\194w\139~p\248\000\b\128>\000`\016\016\015\128\128 \000\248@`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\128 \000\b( \000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000\000\016\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\b\002\002\000\000\130\130\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\001\000\000\001\000\000 \000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128 \000\b( \000\000\001\000\000\000\000\000@\000\b\000\000\b\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 A\018\028\000\017\0003\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016 \004\000\000\004\004\016\000\000 \000\000\000\000\000 @\b\000\000\b\b\000\000\000@\000\000\000\000! \b\160\002\004\017!\192\001\016\0030\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\004\000@\000\000\001\000\000\000\000\000\000\000\000\002\000\000\000\128\000 \002\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\004\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\bH\002(\000\129\000H`\000D\000\236\000\004\000\000 \b\b\000\002\n\b\000\000\000@\000\000\000\0001 \b\160\002\006\001!\192\001\016\0030\000\016\000B@\017@\004\b\002C\000\002 \006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\b\000\000\000\000\002\000\000\000\000\000\000\000\000\012\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000 \000\b\000\016\144\004P\001\002\000\144\192\000\136\001\152\000\b\001! \b\160\002\004\001!\000\001\016\0030\000\016\002\001\128\000\000\000\000\000\000\128\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\004\000\001\000\002\018\000\138\000 @\018\024\000\017\0003\000\001\000$$\001\020\000@\128$ \000\"\000f\000\002\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\128\000 \000B@\017@\004\b\002C\000\002 \006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\251\236\136\016_\227h\000&\014\007\184\226\192\160\208\159\132\139V)[\2433\208\020\007\240\000\003\199\000\025\b\002\004\000\018\130E\160\002\001\160\000\001\004\001\000\000 \000\000\000\000\016\000\000\000\000\000\144\"\004l \b\176H\223\137\030\128 >\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000>\251\"\004\023\248\218\000\t\131\129\2388\176(4'\225\"\213\138V\252\204\244\005\001\252\000\000\241\192\002\004\128\128\128 \160\130\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\002\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\128\0008\b\0008\184@\000 \000\000\000\000\000\000\000\000 \000\000@\000\000\000\000\000\002\000\000\000\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\002\018\000\138\000 D\018\028\012\017\000;\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144$P\001\002\000\144\192\000\136\001\152\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\002C\000\002 \006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000E\000\016\"\t\014\006\b\128\029\128@\128\000\004\128\000\001\000\001\000\006\000\000\000@\000\000\000\000\t\000\000\000\000\002\000\012\000\000\000\128\000\000\000\000\018\000\000\000\000\004\000\b\000\000\001\000\000\000\000\016\144\004P\001\130\000\144\224\000\136\001\216\000\024\000\000H\000\000\000\000\016\000 \000\000\004\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\128\000\132\128\"\128\b\016\004\135\000\004@\012\194\000B\000\002\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\004$\001\020\000@\128$8\000\"\000f\000\002\000\bH\002(\000\129\000H`\000D\000\204\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\001!\192\001\016\0030\000\016\000B@\017@\004\b\002C\000\002 \006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\000E\2240 \227\233\000\b\128\024\000\000\128\002\018\000\138\000 @\002\016\000\016\0003\000\001\000\000\b\000\000\002\000\000\000\b\000\000\000\000\000\000\b\000\016\000\000\004\000\000\000\016\000\000\000\000\000\000\000\000 \000\000\000\000\000\000 \000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b C\000\002\000\006a\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\130\0040\000 \000f\016\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000p\000\128\b\000\000\000 \000\000\000\000\000\000\000\000@\000\000\016\000\004\000@\000\000\000\000\000\000\000\000\128\000\000\000\000\b\000\128\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\001\t\000E\000\016 \001\012\000\b\000\029\128\004\128\000\004\001\001\000\000AA\000\000\000\b\000\000\000\000\006$\001\020\000@\192\0048\000 \000f\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\128\000\000\000\000 \000\000\000\000\000\000\000\000\192\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\001\000\001@\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 A\002\024\000\016\0003\b\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000@\016\016\000\004\020\016\000\000\000\128\000\000\000\000b@\017@\004\012\000C\128\002\000\006`\000 \004\132\128\"\128\b\016\000\132\000\004\000\012\192\000@\b\006\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\016\004\004\000\001\005\004\000\000\000 \000\000\000\000\024\144\004P\001\003\000\016\224\000\128\001\152\000\b\001! \b\160\002\004\000!\000\001\000\0030\000\016\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\004\000\001\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128\0040\000 \000f\016\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \b\b\000\002\n\b\000\000\000@\000\000\000\0001 \b\160\002\006\000!\192\001\000\0030\000\016\000B@\017@\004\b\000C\000\002\000\006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\002\000\002\000\012\000\000\000\128\000\000\000\000\018\000\000\000\000\004\000\024\000\000\001\000\000\000\000\000$\000\000\000\000\b\000\016\000\000\002\000\000\000\000! \b\160\003\004\000!\192\001\000\0030\0000\000\004@\000\000 \000\b\000\192\000\000\000\000\000\000\000\b\000\000\000@\000\016\001\128\000\000\000\000\000\000\000\016\000\000\000\000\000 \003\000\000\000\000\000\000\000\000 \000\000\000\000\000@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\b\000\000\000\000\000\000\000\000@\000\004\144\000@\000\000\004\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\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\000\004\000\000I\000\004\000\000\000@\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\b\000@\002\136\016\000\000\000\000\000\000\000!\000\000 \000\000P!@@\000\000\016\b\000\000B\000\000@\000\000\160B\000\128\000\000 \016\000\000\003\000\000p\016\000qp\128\000@\000\000\000\000\000\000\000\016\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004 \000\004\000\000\b\004 \b\000\000\002\001\000\000\000\128\000\000\000\002\001\000\016\000\000\000\000\000\000\000\001\000\000\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\000\016\128\000\016\000\000 \016\224 \000\000\b\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\004\000\000\b\000\128\000\000\000\000\000\000\000\b\000\000\b\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\128\0008\b\0008\184@\000 \000\000\000\000\000\132\000\000\128\000\001\000\134\001\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\001\000\b\000Q\006\000\000\000\000\000\000\000\000\b\000\002\000\016\000\162\004\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000 \000\000\000\000\000\000 \000@\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\002\000\000\000\002\000\000\128\004\000(\129\000\000\000\000\000\000\000\000\012\000\001\192@\001\197\194\000\001\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000@\000\000\016\000\000\000\000\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\192\000\028\004\000\028\\ \000\016\000\000\000\000\000\000\000\001\000\000\000\000\000\128\000\000\000\000\004\000\000\000\000\002\000\000\000\000\001\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001T\000@\136$8\b\"\000v\001\002\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\128\000\000\000\128\000 \001\000\n @\000\000\000\000\000\000\000\132\128*\128\b\017\004\135\001\004@\014\192 @\t\b\000\001\000\000\002\001\014\002\000\000\000\128@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\003\128\128\003\139\140\000\002\000\000\000\000\000\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000@\000\000\000\000\192\000\028\004\000\028\\ \000\016\000\000\000\000\000B\000\000@\000\000\128C\129\128\000\000 \016\000\000\132\000\000\128\000\001\000\134\001\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\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\016\128\000\016\000\000 \016\192 \000\000\b\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\000\000\128\000\001\000\132\001\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 @\018\028\000\017\0003\000\001\000$$\001\020\000@\128$ \000\"\000f\000\002\000@\128\000\000\000\000\001\000\024\000\000\000\000\000\000\000\001\000\000\000\000\000\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\000\128\004\000(\129\000\000\000\000\000\000\000\002\018\000\138\000 @\018\028\000\017\0003\000\001\000$$\001\020\000@\128$ \000\"\000f\000\002\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\000`\000\000\000\000\000\000\000\004\000\000\000\000\000\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\024\000\003\128\144\002\171\132\000\002\000\000\000\000\000\bX\n\168\000\129\129\bp\000D\000\236\000\012\000\128`\000\012\000\000\n.\016\000\b\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\001\128\0008\t\000*\184@\000 \000\000\000\000\000\003\000\000p\016\000qp\128\000@\000\000\000\002\128\000\000\004\000\000\000\000\002\000\000\000\000\000\016\004\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\024\000\003\128\144\002\171\132\000\002\000\000\000\000\000\0000\000\006\000\000\005\023\b\000\004\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\192\000\028\004\128\021\\ \000\016\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\001\000\000\000\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\001\011\001U\000\0160!\014\000\b\128\029\128\000\128\018\022\002\170\000 `B\028\000\017\000;\000\001\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002\168\000\129\000\bp\000@\000\236\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\000C\000\002\000\006`\000 \004\132\128\"\128\b\016\000\132\000\004\000\012\192\000@\b\016\000\000\000\000\000 \003\000\000\000\000\000\000\000\000 \000\000\000\000\000@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\192\000\028\004\128\021\\ \000\016\000\000\000\000\000B@\017@\004\b\000C\000\002\000\006`\000 \004\132\128\"\128\b\016\000\132\000\004\000\012\192\000@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\129\000\b@\000@\000\204\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\129\000\b`\000@\000\204\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\016\016\016\004\020\016@\000\000\128\000\000\000\000\000\128 \000\b( \128\000\001\000\000\000\000\000\001\000@@\000\016P@\000\000\002\000\000\000\000\001\137\000E\000\0160\001\014\000\b\000\025\128\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128\004 \000 \000f\000\002\000@ \000\002H\000%\000\016\002\000\000\000\000\000\016\000@\000\004\144\000J\000\000\004\000\000\000\000\000 \000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000B@\017@\004\b\002C\000\002 \007`\016`\004\132\128\"\128\b\016\004\134\000\004@\014\192 @\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 @\018\024\000\017\0003\000\129\000$$\001\020\000@\128$ \000\"\000f\000\002\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\000B\000\002\000\006`\000 \004\002\000\000$\128\002P\001\000 \000\000\000\000\001\000\004\000\000I\000\004\160\000\000@\000\000\000\000\002\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000d\000\015\002\000\014.\020\000\b\002\000\128\000@\000\192\000\156\004\000\028\\ \000\016\000\000\000\000\160\000\000\000\000\000P\b\000\000\000\002\000\000\000\000\000\000\000\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\004-\001\020\000@\130$4\000\"\000\230\001\002\000HH\002(\000\193\000Hp\000D\000\204\002\012 \144\144\004P\001\002\000\144\224\000\136\001\152\004\bA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\002C\000\002 \006`\016!\004\001 \000\000\000\000@\000\128\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128\0040\000 \000f\001\002\000HH\002(\000\129\000\b@\000@\000\204\000\004\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b\016\004\135\000\004@\014\192 @\b\002@\000\016\000\000\128\001@\000\000 \b\000\004\000\004\128\000\000\000\001\000\002\128\000\000@\016\000\b\000\000\000\000\000\005\000\128\000\000\000 \000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\012\016\004\135\000\004@\012\192 \194\t\t\000E\000\016 \t\014\000\b\128\025\128@\132\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\128\000\000\000 \000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\128\000\000\000\000\000\000\000\b\128\000\000@\000\016\001\128\000\000\000\000\000\000\000\016\000\000\000\000\000 \003\000\000\000\000\000\000\000\000 \000\000\000\000\000@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\004\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000e \n\018\000J\t\021\128\b\006@\000\020\016 \200b\017\248\005\158R->2\r\130\000\201e\128\128\000 \001\000* @\000\000@\000\000\000\000\132\000\000\128\000\001@\133\003\000\000\000@ \000\001\b\000\001\000\000\002\129\b\006\000\000\000\128@\000\002\016\000\002\000\000\004\002\016\012\000\000\001\000\128\000\000@\000\000\000\001\000\128\b\000\000\000\000\000\000\b\000\000\000\000\000\002\001\000\016\000\000\000\000\000\000\000\000\000\000\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\004\128\000F\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\0026\016\004X$o\196\143@\016\031\000\000\003\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\000\000 \000\000@!\128\192\000\000\016\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000 \016\000\000\000\000\000\000\000\000\000\000\000\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\128\0008\b\0008\184@\000 \000\000\000\000\000\132\000\000\128\000\001\000\135\003\000\000\000@ \000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\018\000\001\027\b\002,\0187\226G\160\b\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\b\216@\017`\145\191\018=\000@|\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\b\000\000\016\001\000\000\000\000\000\000\001\000\000\000\000\016\000\000 \002\000\000\000\000\000\000\000\000\000\000\000 \000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000e \n\018\000J\t\021\128\b\006@\000\020\016\000\224\000\028\004\000\028\\ \000\016\000\000\000\000\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\001\027\b\002,\0187\226G\160\b\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\b\216@\017`\145\191\018=\000@|\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\000\001\000\000\002\001\012\006\000\000\000\128@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\128\000\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\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\012\000\001\192@\001\197\194\000\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\001\000\000\000\000\000\000\000\000\000\000e \n\018\000J\t\021\128\b\006@\000\020\016\000\224\000\028\004\000\028\\ \000\016\000\000\000\000\000\000\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\b\000\000\000\001\027\b\002,\0187\226G\160\b\015\128\000\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\b\216@\017`\145\191\018=\000@|\000\000\012p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000F\194\000\139\004\141\248\147\232\002\003\224\000\000c\128\141\132\001\022\t\027\241#\208\004\007\192\000\000\199\004 \000\004\000\000\b\0040\024\000\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\b\000@\n\1360\000\000\016\000\000\000 \000@\000\016\000\128\021\016`\000\000 \000\000\000\000\000\128\000 \001\000* @\000\000@\000\000\000\000\001\000\000@\002\000T@\128\000\000\128\000\000\000\000\006B\b\129\144\004\224\147h\000\128`\000\000A\001\247\217\016 \191\198\208\000L\028\015q\197\129A\160\025\b\"\004\000\019\130M\160\002\001\128\000\001\004\0002\016D\b\000'\004\139@\004\003\000\000\002\b\000d \b\016\000N\t\022\128\b\006\000\000\004\016\000\000\000\000\000\000\000\000\128\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\001\000\000\000\000\000\000\001\000\002\000\000\000\000\000\000\002\000\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\000\000\000\000\000\000\000\016\000\000\016\000\000\000\016\000\004\000 \005D\b\000\000\b\000\000\000\000\000`\000\014\002\000\014.\016\000\b\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\002\000\000\000\128\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000\161 \004\160\147X\000\128`\000\000A\000\012\164\001B@\tA\"\176\001\000\192\000\000\130\000\025H\002\132\128R\130E`\002\001\128\000\001\004\000\016\000\004\000 \005D\b\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\001\000@\000\016\000\128\021\016 \000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\133\169*\212\026QT\207\239\004@<\192 \241\169\011RU\1684\162\169\159\222\b\128y\128A\227P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001T\000@\136$8\024\"\000f\001\006\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! \n\160\002\004A!\192\193\016\0030\b0\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000U\000\016\"\t\014\006\b\128\025\128A\128P\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\016\000\000\000\016\000\004\000 \005D\b\000\000\b\000\000\000\000\016\144\005P\001\002 \144\224`\136\001\152\004\024\005\000\200A\016 \000\156\018-\000\016\012\000\000\b \001\144\128 @\0018$Z\000 \024\000\000\016@\000\000\000\000\000\000\000\002\000\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000 \000\000\000\000\004\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\014\002@\n\174\016\000\b\000\000\000\000\000 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\000\001\000\000\002\001\014\006\000\000\000\128@\000@\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b@\000\b\000\000\016\b`0\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\016\000\128\021\016 \000\000 \000\000\000\000B\000\000@\000\000\128C\129\128\000\000 \016\000\016\132\000\000\128\000\001\000\134\003\000\000\000@ \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\001\192@\001\197\198\000\001\000\000\000\000\000\000\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\b@\000\b\000\000\016\b`0\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\b\000\001\000\000\002\001\012\006\000\000\000\128@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b@\000\b\000\000\016\b@0\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\001!\192\001\016\0030\000\016\002\001\128\0008\t\000*\184@\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\000\128\004\000\168\129\000\000\001\000\000\000\000\002\018\000\138\000 @\018\028\000\017\0003\000\001\000 \025H\002\132\128\018\130E`\002\001\144\000\005\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\144\004P\001\002\000\144\192\000\136\001\152\000\b\001! \b\160\002\004\001!\000\001\016\0030\000\016\002\004\000\000\000\000\000\b\000\192\000\000\000\000\000\000\000\b\000\000\000\000\000\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\025H\002\132\128\018\130E`\002\001\144\000\005\004\bH\002(\000\129\000H`\000D\000\204\000\004\000\144\144\004P\001\002\000\144\128\000\136\001\152\000\b\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\001\t\000E\000\016 \t\b\000\b\000\025\128\000\128\000\012\132\017\003\000\t\193&\208\001\000\192\000\000\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000E\000\016 \t\b\000\b\128\025\128\000\128\018\018\000\138\000 @\018\024\000\017\0003\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016 \004\004\000\004\004\016\000\000 \000\000\000\000\000 @\b\000\000\b\b \000\000@\000\000\000\000\000@\128\016\000\000\016\016\000\000\000\128\000\000\000\000B@\017@\004\b\"C\128\002 \006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\t\000E\000\016 \t\b\000\b\128\025\128\000\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000! \b\160\002\004\001!\128\001\000\0030\000\016\000B@\017@\004\b\002B\000\002\000\006`\000 \000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bH\002(\000\129\000H@\000d\000\204\000\004\000\128\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\002C\000\002\000\006`\000 \000\132\128\"\128\b\016\004\132\000\004\000\012\192\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001 \n\160\002\006\017!\192\001\016\003\176\001\016\002`\000\004\000\000\004\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\004\000\000\000\000\000&\b\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000\000\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\000B\000\000@\000\000\128B\001\128\000\000 \016\000\000\128\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b2\016\004\b\000%\004\139@\004\003@\000\002(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0005%.\224\250\007\193a\192\255\150\019\188[\243\135\128\000\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\b\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000@\000\002\000\004\000\000\000\128\000\000\016\000\018\000\000\000\000\004\000\b\000\000\001\000\000\000 \000$\000\000\000\000\b\000\016\000\000\002\000\000\000\000! \b\160\003\004\001!\192\001\016\003\176\0000\128\000\144\000\000\000\000 \000@\000\000\b\000\000\000\000\132\128\"\128\b\016\004\135\000\004@\012\192\000B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 @\018\024\000\017\0003\000\001\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\0000@\018\028\000\017\000;\000\003\b\000\t\000\000\000\000\002\000\004\000\000\000\128\000\000\000\bH\002(\000\129\000Hp\000D\000\204\000\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\004\000\000\000\000\000\000\000\000\000B@\017A\004\b\002C\000\002 \007`\016`\004\132\128\"\128\b\016\004\134\000\004@\014\192 @\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\018\000\138\000 @\018\024\000\017\0003\000\129\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000$\000\001\000\000\b\000\016\000\000\002\000\000\000@\000H\000\000\000\000\016\000 \000\000\004\000\000\000\128B@\017@\004\b\002C\000\002 \006`\000!\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\002\000\000\000\000\000\000\016\000\000\0000\000\007\001\000\007\023\b\000\004\000\000\000\000\000\000\000\001\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\001\128\0008\b\0008\184@\000 \000\000\000\000\000\003\000\000`\000\000Qp\128\000@\000\000\000\000\001\137\000w\000\0162\t\014\006\b\144\029\128X\132[\018\000\238\000 d\018\028\012\017 ;\000\177\b\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000\000\000\001\000\000\000\004\128\000\000\b\000\000`\000\014\002\000\014.\016\000\b\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\002\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\004\000\000\000\000\000\003\000\000`\000\000Qq\128\000H\000\004\000\000\000\006\000\000\192\000\000\162\225\000\000\144\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\001\000\000\000\001\000\000\000\004\128\000\000\000\000\000`\000\012\000\000\n.\016\000\t\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\000\000\000\000\000\000\b\000\000\000\024\000\003\128\128\003\139\132\000\002\000\000\000\000\000\000\000\000\128\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\192\000\028\004\000\028\\ \000\016\000\000\000\000\000\001\128\0000\000\000(\184@\000 \000\000\000\000\000\196\128;\128\b\025\004\135\003\004H\014\192,B-\137\000w\000\0162\t\014\006\b\144\029\128X\132X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\b\000\000\000\000\000\000@\000\000\000\192\000\028\004\000\028\\ \000\016\000\000\000\000\000\000\000\004\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\000\012\000\001\128\000\001E\194\000\001\000\000\000\000\000\006$\001\220\000@\200$8\024\"@v\001b\017lH\003\184\000\129\144Hp0D\128\236\002\196\"\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000P\b\000\000\000\002\000\000\000\000\000\000\000\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\004$\001\020\000@\128$8\000\"\000f\001\002\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200\000\030\004\000\028\\(\000\016\004\001\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\132\128\"\128\b\016\000\134\000\004\000\012\192 @\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000@\000\002\000\004\000\000\000\128\000\000\016\000\018\000\000\000\000\004\000\b\000\000\001\000\000\000 \016\144\004P\001\002\000\016\192\000\128\001\152\000\b@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\000\000\000\000\000\000\004$\001\020\016@\128\0040\000 \000v\001\022\000HH\002(\000\129\000\b`\000@\000\236\002$\000\128d\000\015\002\000\014.\020\000\b\002\000\128\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000B@\017@\004\b\000C\000\002\000\006`\016 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\004\128\000 \000\001\000\002\000\000\000@\000\000\b\000\t\000\000\000\000\002\000\004\000\000\000\128\000\000\016\bH\002(\000\129\000\b`\000@\000\204\000\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\016\000\000\016\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004$\001\020\000@\128$0\000\"\000f\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\176\128\"\193#~$z\000\128\248\000\000\024\224\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000F\194\000\139\004\141\248\145\232\002\003\224\000\000c\128\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\016@\004\b\000B\000\002\000\006@\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000\000\000\000\002\128\004\000\000\000\128\000\000\000\b\000\b\128~\001`\144\000\015\136\128 \1280Q`\000\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\128\000\000\000\000\000\004\000\000\000\004\000\000\000\000\001@\000\000\000\000\000\000\000\000\004\000\004\000?\000\176H\000\007\196@\016@\024(\176\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000$\000\000\000\000\b\000\016\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\224 \000\226\225\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004l \b\176H\223\137\030\128 >\000\000\0068\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\004\000\128\000\000\128\128\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \b\b\000\002\n\b\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\004\000\000\128\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000d \b\016\000J\t\022\128\b\006\128\000\004\016\000\000\000\000\000\000\000\000@\000\000\000 \002@\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000@\000\000\000\000\020\000\000\000\000\000\000\000\000\000\019\240\144b\197+~fz\002\160\254@\0008\224\001\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\011BA\000\016 \169\b\b\b\1289\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002@\016@\004\b\002B\000\002 \006A\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\002\b\000\129\000H@\000@\000\192\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\t\006,R\183\230g\160*\015\228\000\003\142\002~\018\012X\165o\204\207@T\031\200\000\007\028\000\144\004\016\001\002\000\144\128\000\136\001\144\000\b\000\001 \b \002\004\001!\000\001\016\003 \000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\000A\000\016 \t\012\000\b\128\025\000\000\128\000\018\000\130\000 @\018\016\000\017\0002\000\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\001 \b \002\004\001!\128\001\016\003 \000\016\000\002@\016@\004\b\002B\000\002 \006@\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") and start = 15 and action = - ((16, "ENS\nF@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\204F@\000\000\000\000\020\214F@EN\022&\000K\001\234m>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\222\003\"\000_\000\000\000\168\002\170\000\000\004|\001\196\003\128\000\000\003\244\002\006\004\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003p\000\000\000\000\000\000\001\162\155\188\000\000\000\000\000\000\001\250\000\000\000\000Q(\003\b\006f\000\000\000\000\155\188G\200\020\214C*m\180\020\214\159\174P\028\020\214F\240\000\000\003&\000\000F\240\005\"\000\000E6\000\000\022h\000\000\000\000\004\246\000\000\001\250\000\000\002\198\001\250\000\000\000\000\000\000\020\214\000\000\000\000\004n\000\000E6\000\000\000\000\004\246\000\156\004>\143 \149`yn\000\000\001\250\000\000\151\150\155\188\000\000\164\170\155\188R\024p\128\155\188\163b\156\012F@EN\000\000\000\000P\028\020\214L:F\240\005\146\139\160\000\000\149\232F@ENS\n\020\214\000\000\000\000\016\222PL\020xT\198\\h\000\000\000\"\000\000\000\000\001 \000\000\000\000J\144\000\"\021n\005\152\000*\000\000\000\000\002<\000\000C*\007h\b|\020\214\026\184\020\214ENEN\000\000\000\000\000\000RJHJ\020\214\026\184QZ\020\214\000\000\022N\000\156\005\184\000\000\bp\005\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000S\n\020\214\000\000Cf\139\198EN\000\000\000\254\000\000\\hl2l2\000\000\005\184\000\000\004\234\000\000\000\000E\248v\236[\000\000\000v\236[\000\000\000v\236\156\012\006\148\000\000\006\156\005\148\000\000\003\162\000\000\b\178\000\000\000\000\b\178\000\000\000\000\000\000v\236\001\250\000\000\000\000^,\160j\164\170^\178\160\160\164\170_8[x{d\000\000\000\000S\244\006\148\000\000\000\000T\240{dU\236_\190\000\000\164d\155\188\000\000\007h\b\252\006\148\000\000\000\000v\236\000\000\006\190\000\000kB\t@\001\250\000\000\003\144\001\250\000\000v\236\001*\t\176\160\230\164\170`D`\202\000\000\bf\000\000v\236\b\186\164\192\155\188\005\210v\236\006\220\t\248\161\028\164\170aPa\214\000\000\n\174\161b\164\170b\\b\226\000\000\n\246\161\152\164\170chc\238\000\000dt\000\000\000\000\000\000\000\026\000\000v\236\000\000\020L\158\142\000\000v\236\005\252v\236B\192\000\000G\196\000\000\001\006\0060\000\000\n\170v\236\b$\000\000\b:\000\000\005@\000\000\000\000\002n\000\000\000\000\000\000\029\190\023\006\\hS\n\020\214\\h\000\000\006\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000P:Lv\000\000\000\000\000\000\002\000\015\200l2\000\000\000\000S\022\020\214\\h\000\000\000\000\\\182\\hn\238\143\158\000\000q\224\000\000\\h\000\000\000\000]ZOH\002@\002@\000\000\r2\\h\000\000\000\000\000\000\001 \r\\\000\000C2\000\000\000\000\143\234\000\000\156\158v\236\000\000\td\000\000\000\000\144|\000\000\156\228\006\196\000\000\000\000\000\000\000\000\r|\000\000MD\000\000\000\000\142\158\000\000\003\164\000\000\000\000D\254\138H\000\000\000\000F\130\021l\027\156\023\248\000\000\000\000\000\000\000\000\b\018\000\000\000\000l\018\004\152\t4\t4\021~\155\188\007\206v\236\t\144\nb\r\196\000\000\0140\000\000\000\000\005\226\t\214\t4\006\230\000\000S\nR\216HJ\020\214\026\184\000K\t\190\n\142\000\000\r\162C*C*\000K\t\190\t\190C*\000\000~\018\007FF\240\005\184\bf\159\006\000\000v\236y\238v\236pVznv\236\003\140v\236z\238\000\000\nR\t\142\nXC*~\146\000\000\007\170\000\252m\232\000\000\000\000\000\000\000\000C*\127\018C*\127\146\000\224\004>p\252\005\242\004>q\130\000\000\128\018\007F\000\000\000\000\000\000\021\162\000\000\000\000\000L\000\000\t\222\026\184\000\000n\174XN\000\000\024B\000\000\000\000C*\028\168\000\000\000\000\000\000\000\000l\208\000\000\tb\000\000Y\214\011v\007@\000\000\022\192P\162S\n\020\214I\nS\n\020\214\016\222\016\222\000\000\000\000\000\000\000\000\001\252\023pDZ\000\000V\222W\152S\000\020\214\026\184\011|W\004\000\000\001J\000\000XRY\012\144\200\023Rv\236\007\156\000\000S\n\020\214\000\000S\028\020\214l2\\h\0240\000\000S\n\020\214\140r\002\160\000\000\\h\\hDH\155\188\t\240v\236\011\140\012^\006\230\014\194\000\000\006\230\014\204\000\000\000\000\000\000J\144\002@\015@\133\202\000\000S\022\020\214\\h\027J\000\000S\n\020\214\016\222\022\192\016\222\002\250\016\198\000\000\000\000\016\222\b\236\015\134\t\182\156\012\000\000\028\192\159N\000\000\022lv\236\029<\015\212\000\000\000\000\016|\000\000\016\222\003\248\016\148\000\000\017\196\000\000\006j\000\000\000\000\026\184\000\000\017\220\023\190\000\000\000\000\000\000\000\000\007\168\000\000\000\000\027\182\000\000\028\180\000\000\029\178\000\000\018\218\024\188\000\000\000\000\000\000F@\000\000\000\000\000\000\000\000\030\176\000\000\031\174\000\000 \172\000\000!\170\000\000\"\168\000\000#\166\000\000$\164\000\000%\162\000\000&\160\000\000'\158\000\000(\156\000\000)\154\000\000*\152\000\000+\150\000\000,\148\000\000-\146\000\000.\144\000\000/\142\000\0000\140\000\0001\138\020\214\138H\001\234\128\170K\130\002@\016\224\1296\153\202OH\\h\025\020\000\000\017\n\001\250\000\000\n\238v\236\b\216\000\000H\194\155\188\011Tv\236\n,\000\000\000\000\000\000\000\000\016\224\000\000\000\000\000\000\000\000\000\000\1296\000\000\\h\017\134\000\000Jp\155\188\011fv\236\np\000\000\1574\011\192v\236\n\142\000\000\000\000\017<\000\000\000\000\000\000LvMd\002@\017\222\129\194\000\000\000\000\017T\000\000\000\000\000\000\129\194\000\000\000\000\1574\002@\017`v\236\011|\000\000\000\000\012dv\236\011\148\000\000\000\000\017\128\000\000\000\000\000\000\025Nv\236\012z\000\000\000\000\029F\000\000\000\000\145Z\000\000\030D\145\166\000\000\031B\1468\000\000 @\007\194\000\000\000\000\000\000\000\000!>\\h\"<\000\000\134F\134F\000\000\000\000\000\0002\136\000\000\011\192\000\000\000\000\000\000\012\218\000\000\000\000\n*\024J\000\000\0118\000\000\000\000oVI\n\000\000\000\000\012\146\000\000\000\000\000\000\r\216\000\000\000\000\000\000\016\222\004\246\024\174\000\000\0126\000\000\005\244\000\0003\134\000\000\r\030\000\000\006\242\000\0004\132\000\000\014\000\000\000\007\240\000\0005\130\018\194\000\000\012n\b\238\000\0006\128\000\000\r\144\t\236\000\0007~\000\000\014\214\n\234\000\0008|\nr\025N\000\000\r\240\011\232\000\0009z\000\000\014\028\012\230\000\000:x\000\000\014\254\r\228\000\000;v\014\226\000\000p\000\000?n\000\000#:\000\000\000\000\007\184\000\000\000\000\\h\000\000\000\000\140\190\014\238\000\000\000\000I\196\000\000\0142\000\000\000\000oVS\022\020\234\000\000|\246\000\000\000\000\000\000S\022\020\214\\hH\194\000\000r\020\000\000r\020\000\000r\214\000\000\000\000\000\000\000\000Z\160\000\000\015\128\000\000\000\000{`S\022\022\022\000\000{\234\000\000\000\000\000\000\000\000\000\000\011v\011^\000\000\000\000\022\192\024\160\005\184\000\000B\186\000\000\025\002\025D\023\246\000\000\000\000\015\212\000\000\000\000\001d\024nUf\000\000\025\186\000\000\005|\000\000\000\000\016V\000\000\000\000{\234\001(\012L\000\000\000\000\012\148\000\000\000\000\015\140\000\000\000\000{`\000\000\000\000\020\214\026\184\n`\000\000\000\000\021n\005\152\000*\012\250\026\184\140\254C*\002\166\026\184\141\132\018\016\000\000\000\000\012\250\000\000D\"\020\154\029\240\000\000\000!\018\138\000\000\018\162\003\226{d{ds*\003\242\000\000\000\000\000\000\018|\018\006\155\188\015\190v\236\022x\020\176\t\202\020\176\000\000B\136\018\190\000\000\025r\000\000\000\000{ds\248\018\214\163\192{dt&{dt\244u\"\000\000|\138\161\206\015\228{d\018\164{d\130Du\240\018\172{d\130\196v\030\006L\018r\000\000\000\000\000\000\020\214\146\132\000\000\138H\134F\000\000\000\000\019\002\000\000\006\230\019\006\000\000\000\000\000\000@l\000\000\000\000\015F\000\000\000\000oV\000\000\000\000S\000\020\214\026\184\026>\000\000Yz\000\000\002H\000\000\023\180\000\000\000\000\019\018\000\000\019\134h\000\000\000\156\004>\134h\000\000%\024\022N\000\156\001\250V\146C*\134F\000\000\020x\r\134\023d\r\002\000\000\134h\000\000\000*\018\164C*\134F\157d\005\152\000*\018\166C*\134F\157d\000\000\000\000\r\248\000\000\134F\000\000C*\152\248\134F\000\000\012\140\000\000D\"\020\154\029\240\135\198D\"\026\136\020\154\026p\000\000\012\206E6\000\000\012\190\000\000E6\000\000\019\"\018\206Kb\020xY$v\236\011*\000\000L:\000\"\006L\tX\000\000\r\130\000\000\0192\018\196v\236N\240\000\000\020\196\0268\016\154\000\000\015(\000\000\019D\018\208\155\188N\240\000\000\020\154Kb\019\132\020x\000\156\000\000\0050Kbv\236\014\186\006\148\000\000v\236\003\140\004\220\000\000\000\000\131D\000\000\000\000\015HKb\131\196N\240\000\000\020\214v\236\r\144v\236E\156N\240\000\000\014\148\000\000\000\000N\240\000\000\000\000L:\000\000\134F\154j\020\154\026p\012\206\019h\019 Kb\134F\154j\000\000\000\000\020\154\026p\012\206\019z\019\004\150\004Q\206{d\019\146\150\004\156\012\021\138\019\156\150\004{d\019\162\150\004\132J\132\202\000\000\150D\000\000\000\000\134F\157\190\020\154\026p\012\206\019\156\0190\150\004\134F\157\190\000\000\000\000\000\000\159\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\134F\000\000G\200\020\214C*\134F\000\000\154\234\020\162F\240\019\188\139\160\000\000\149\232\154\234\000\000\000\000\158\024\020\162F\240\019\192\019L\149`\156\012\003\242\019\254\000\000\000\000\133L\135\198\020\214\000\000\147\164\029\240\000\000\000\000\149\232\158\024\000\000\000\000\000\000\142\006I\208G\b\003\242\020\n\000\000\000\000\000\000\135\198\020\214\000\000\003\242\020\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\156D\"\020\154\026p\012\206\019\222\136\136\200\159\220\002@\020\012v\236\014\142\000\000\000\000\020V\000\000\000\000\000\000N\240\000\000\028\132\017\152\000\000\016(\000\000\021\002\020\190\155\188\000\000\021F\137T\160$\002@\020\232v\236\016r\000\000\000\000\021\002\000\000\000\000\000\000\020\214\000\000N\240\000\000\020\248\020\154M\020M\020\137\218F@\020\214\146\132\138H\002\178\000\000\021\022\000\156\000\000\016\026M\020v\236\016:\005\184\000\000\020\214\136<\136\162\236\164\170h\030h\164\000\000\017\180v\236\018\b\022J\163\004\164\170i*i\176\000\000\022R\018Fv\236\018`\022^\163J\164\170j6j\188\000\000\003\242\022\164\000\000\000\000\148*\000\000\000\000\149`\000\000\149\232\000\000\022\156F\174Nr\156l\000\000\000\000\000\000\000\000\014*\148~\149`\000\000\149\232\000\000\022\160F\174Nr\156l\000\000\018\140\000\000\000\000\b<\000\000\134F\000\000\022\182\000\000\000\000\022\"\000\000\022*\000\000\022J\000\000\000\000T$\022P\000\000\000\000\026\246m>\022\236\000\000\000\000\000\000\015\210\000\252o\224\022\252\000\000\000\000\000\000\000\000\000\000\000\000\022v\000\000\030\238\000\000\022\136\000\000v\236\000\000\000v\000\000\000\000\022\158\000\000\000\000\004>\000\000\r\226\000\000\000\000\000\000\014v\000\000\026\184\000\000\011|\000\000C*\000\000\002\166\000\000\t\142\000\000\022\164\000\000\\h\025.\000\000\000\000\007\146\022\170\000\000\000\000\022\162\b\144I\n\001\250\149\000\000\000\000\000\000\000\000\000\000\000y\194\000\000\000\000\023L\000\000T \000\000\016\198\023f\000\000\023l\000\000I\196I\196\146^\146^\000\000\000\000\134F\146^\000\000\000\000\000\000\134F\146^\022\214\000\000\022\242\000\000"), (16, "\n\017\n\017\000\006\n\017\002\194\n\017\002\234\002\238\n\017\003\026\002\174\n\017\004\205\n\017\004\205\003&\n\017\007=\n\017\n\017\n\017\004\205\n\017\n\017\n\017\001\218\000\246\003n\003r\003*\n\017\003\162\003\166\011\178\n\017\005\234\n\017\007=\003.\b\130\0012\003\198\020>\n\017\n\017\003\242\003\246\n\017\003\250\004\006\004\018\004\022\004\030\b:\001r\n\017\n\017\002\226\tF\004\205\004\014\n\017\n\017\n\017\t\150\t\154\t\166\t\186\004\205\006v\n\017\n\017\n\017\n\017\n\017\n\017\n\017\n\017\n\017\n.\000\246\n\017\b\254\n\017\n\017\004\205\003F\n:\nR\n\186\006\130\006\134\n\017\n\017\n\017\018J\n\017\n\017\n\017\n\017\004\205\000\246\016&\n\017\001z\n\017\n\017\003J\n\017\n\017\n\017\n\017\n\017\n\017\006\138\t\174\n\017\n\017\n\017\t\198\004\162\n\206\000\246\n\017\n\017\n\017\n\017\014\145\014\145\004\205\014\145\005\238\014\145\b\226\014\145\014\145\025N\014\145\014\145\014\145\014\145\000\246\014\145\014\145\007I\014\145\014\145\014\145\t\233\014\145\014\145\014\145\014\145\t\217\014\145\031{\014\145\014\145\014\145\014\145\014\145\014\145\014\145\014\145\007I\014\145\b\130\017\182\014\145\005R\014\145\014\145\014\145\014\145\014\145\0316\014\145\001\230\014\145\001\229\014\145\004\026\014\145\014\145\014\145\n\014\004\205\014\145\014\145\014\145\014\145\014\145\014\145\014\145\000\246\014\145\014\145\014\145\014\145\014\145\014\145\014\145\014\145\014\145\014\145\014\145\t\n\014\145\014\145\b\254\014\145\014\145\000\246\003R\t\018\t\217\014\145\014\145\014\145\014\145\014\145\014\145\t\022\014\145\014\145\014\145\014\145\014\145\000\246\014\145\014\145\t\233\014\145\014\145\003V\014\145\014\145\014\145\014\145\014\145\014\145\014\145\014\145\014\145\014\145\014\145\014\145\014\145\001\138\t\217\014\145\014\145\014\145\014\145\001\229\001\229\001\229\001\229\001\229\001\229\001\226\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\017\130\001\229\001\154\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\b\130\001\n\001\229\001\198\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\230\001\229\003z\001\229\006\165\001\229\001\229\001\229\019\158\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\206\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\006R\001\229\001\229\b\254\001\229\001\229\007\018\b\130\007\t\nb\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\000\246\t\222\001\229\006\186\001\229\001\229\007\t\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\004\205\001\229\001\229\001\229\001\229\001\229\011Q\011Q\b\254\011Q\nf\011Q\n\158\011Q\011Q\006\165\011Q\011Q\011Q\011Q\001~\011Q\011Q\003~\011Q\011Q\011Q\000\246\011Q\011Q\011Q\011Q\003\018\011Q\014U\011Q\011Q\011Q\011Q\011Q\011Q\011Q\011Q\000\246\011Q\001n\003\173\011Q\004\229\011Q\011Q\011Q\011Q\011Q\014U\011Q\004\162\011Q\018\026\011Q\031\203\011Q\011Q\011Q\001\242\001\190\011Q\011Q\011Q\011Q\011Q\011Q\011Q\007\017\011Q\011Q\011Q\011Q\011Q\011Q\011Q\011Q\011Q\011Q\011Q\001\194\011Q\011Q\004\205\011Q\011Q\007\166\002f\007\017\004\229\011Q\011Q\011Q\011Q\011Q\011Q\t\145\011Q\011Q\011Q\011Q\n\230\005B\011F\011Q\004~\011Q\011Q\007\170\011Q\011Q\011Q\011Q\011Q\011Q\011Q\011Q\011Q\011Q\011Q\011Q\011Q\001\142\011Q\011Q\011Q\011Q\011Q\003\249\003\249\003\029\003\249\002\194\003\249\004r\003\249\003\249\000\246\003\249\003\249\003\249\003\249\002.\003\249\003\249\001n\003\249\003\249\003\249\003\173\003\249\003\249\003\249\003\249\018Z\003\249\000\n\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\018j\003\249\018n\b\182\003\249\001\214\003\249\003\249\003\249\003\249\003\249\006}\003\249\005J\003\249\003i\003\249\t\145\003\249\003\249\003\249\003\029\004\130\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003i\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\002\134\n\222\011>\018r\003\249\003\249\001n\002\162\007\025\003\173\003\249\003\249\003\249\003\249\003\249\003\249\0072\003\249\003\249\003\249\003\249\n\230\018\226\011F\003\249\004\205\003\249\003\249\007\025\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\003\249\004:\003\249\003\249\003\249\003\249\003\249\003\233\003\233\007\242\003\233\b\"\003\233\002V\003\233\003\233\t\141\003\233\003\233\003\233\003\233\001\158\003\233\003\233\004>\003\233\003\233\003\233\000\246\003\233\003\233\003\233\003\233\002Z\003\233\014Y\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\001j\003\233\b\130\002\138\003\233\004\205\003\233\003\233\003\233\003\233\003\233\014Y\003\233\000\246\003\233\001\130\003\233\001\146\003\233\003\233\003\233\019\218\006F\003\233\003\233\003\233\003\233\003\233\003\233\003\233\017\154\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\004v\n\222\011>\b\254\003\233\003\233\001\214\001\214\004\205\004\205\003\233\003\233\003\233\003\233\003\233\003\233\t\141\003\233\003\233\003\233\003\233\n\230\000\246\011F\003\233\002\238\003\233\003\233\022\182\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\006J\003\233\003\233\003\233\003\233\003\233\n\185\n\185\003\006\n\185\t\018\n\185\003\222\n\185\n\185\005B\n\185\n\185\n\185\n\185\002:\n\185\n\185\000\246\n\185\n\185\n\185\003\210\n\185\n\185\n\185\n\185\004\205\n\185\005\238\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\017\158\n\185\b\130\b*\n\185\019R\n\185\n\185\n\185\n\185\n\185\022J\n\185\003\226\n\185\006&\n\185\014\190\n\185\n\185\n\185\019\246\011R\n\185\n\185\n\185\n\185\n\185\n\185\n\185\000\246\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\011V\n\185\n\185\b\254\n\185\n\185\005\134\022R\001\214\004\205\n\185\n\185\n\185\n\185\n\185\n\185\006\141\n\185\n\185\n\185\n\185\n\185\000\246\n\185\n\185\007v\n\185\n\185\000\246\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\n\185\t\189\004\205\n\185\n\185\n\185\n\185\n\201\n\201\006\n\n\201\004j\n\201\004r\n\201\n\201\005\142\n\201\n\201\n\201\n\201\007\185\n\201\n\201\004\205\n\201\n\201\n\201\t\213\n\201\n\201\n\201\n\201\001\n\n\201\001\198\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\000\246\n\201\007\161\004\205\n\201\001\246\n\201\n\201\n\201\n\201\n\201\025\130\n\201\b\134\n\201\000\246\n\201\014\214\n\201\n\201\n\201\007\161\004\142\n\201\n\201\n\201\n\201\n\201\n\201\n\201\003\134\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\005\014\n\201\n\201\t\189\n\201\n\201\b\194\025\138\002\238\b6\n\201\n\201\n\201\n\201\n\201\n\201\006u\n\201\n\201\n\201\n\201\n\201\027*\n\201\n\201\014\002\n\201\n\201\b\185\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\n\201\027.\007\161\n\201\n\201\n\201\n\201\n\193\n\193\001\n\n\193\001\198\n\193\t\162\n\193\n\193\005B\n\193\n\193\n\193\n\193\004r\n\193\n\193\007\226\n\193\n\193\n\193\000\246\n\193\n\193\n\193\n\193\001\n\n\193\001\198\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\000\246\n\193\b\130\005\030\n\193\011~\n\193\n\193\n\193\n\193\n\193\0066\n\193\016j\n\193\n*\n\193\014\238\n\193\n\193\n\193\030\210\006>\n\193\n\193\n\193\n\193\n\193\n\193\n\193\b\222\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\005n\n\193\n\193\b\254\n\193\n\193\b\006\0272\003\222\012b\n\193\n\193\n\193\n\193\n\193\n\193\016r\n\193\n\193\n\193\n\193\n\193\000\246\n\193\n\193\004\134\n\193\n\193\003\138\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\n\193\t\193\000\246\n\193\n\193\n\193\n\193\n\173\n\173\001\n\n\173\001\198\n\173\007\230\n\173\n\173\012\174\n\173\n\173\n\173\n\173\001\214\n\173\n\173\005\238\n\173\n\173\n\173\004\146\n\173\n\173\n\173\n\173\b\146\n\173\005\238\n\173\n\173\n\173\n\173\n\173\n\173\n\173\n\173\000\246\n\173\003\218\005r\n\173\b\154\n\173\n\173\n\173\n\173\n\173\n\250\n\173\011*\n\173\000\246\n\173\015\006\n\173\n\173\n\173\004j\007^\n\173\n\173\n\173\n\173\n\173\n\173\n\173\0056\n\173\n\173\n\173\n\173\n\173\n\173\n\173\n\173\n\173\n\173\n\173\007b\n\173\n\173\t\193\n\173\n\173\007\246\007\250\002\014\005\018\n\173\n\173\n\173\n\173\n\173\n\173\022N\n\173\n\173\n\173\n\173\n\173\003\221\n\173\n\173\006\149\n\173\n\173\tZ\n\173\n\173\n\173\n\173\n\173\n\173\n\173\n\173\n\173\n\173\n\173\n\173\n\173\000\246\000\246\n\173\n\173\n\173\n\173\n\181\n\181\018\150\n\181\001\230\n\181\003\193\n\181\n\181\t\146\n\181\n\181\n\181\n\181\005V\n\181\n\181\000\246\n\181\n\181\n\181\bv\n\181\n\181\n\181\n\181\bV\n\181\005B\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\tN\n\181\b.\007\250\n\181\bV\n\181\n\181\n\181\n\181\n\181\003\221\n\181\005\146\n\181\012\198\n\181\015\026\n\181\n\181\n\181\002\238\b\198\n\181\n\181\n\181\n\181\n\181\n\181\n\181\025b\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\003\217\n\181\n\181\011\002\n\181\n\181\011\014\r\022\003n\003r\n\181\n\181\n\181\n\181\n\181\n\181\000\246\n\181\n\181\n\181\n\181\n\181\bZ\n\181\n\181\nz\n\181\n\181\tZ\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\n\181\000\246\000\246\n\181\n\181\n\181\n\181\n\177\n\177\000\246\n\177\014^\n\177\003\218\n\177\n\177\017\242\n\177\n\177\n\177\n\177\005\170\n\177\n\177\000\246\n\177\n\177\n\177\b\206\n\177\n\177\n\177\n\177\003\217\n\177\005B\n\177\n\177\n\177\n\177\n\177\n\177\n\177\n\177\b\246\n\177\014j\015:\n\177\003\218\n\177\n\177\n\177\n\177\n\177\r*\n\177\005\194\n\177\022:\n\177\015.\n\177\n\177\n\177\017>\014n\n\177\n\177\n\177\n\177\n\177\n\177\n\177\025\170\n\177\n\177\n\177\n\177\n\177\n\177\n\177\n\177\n\177\n\177\n\177\005B\n\177\n\177\011\002\n\177\n\177\011\014\006.\001\214\005B\n\177\n\177\n\177\n\177\n\177\n\177\000\246\n\177\n\177\n\177\n\177\n\177\004\137\n\177\n\177\012\166\n\177\n\177\014B\n\177\n\177\n\177\n\177\n\177\n\177\n\177\n\177\n\177\n\177\n\177\n\177\n\177\t\158\tZ\n\177\n\177\n\177\n\177\n\189\n\189\014F\n\189\029\026\n\189\005B\n\189\n\189\000\246\n\189\n\189\n\189\n\189\017B\n\189\n\189\000\246\n\189\n\189\n\189\000\246\n\189\n\189\n\189\n\189\017\190\n\189\012\190\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\r\014\n\189\014\182\r\142\n\189\031\187\n\189\n\189\n\189\n\189\n\189\004\137\n\189\t\237\n\189\r\162\n\189\015J\n\189\n\189\n\189\n\002\014\186\n\189\n\189\n\189\n\189\n\189\n\189\n\189\011R\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\004\133\n\189\n\189\r\"\n\189\n\189\014\134\017\198\015\002\005B\n\189\n\189\n\189\n\189\n\189\n\189\025V\n\189\n\189\n\189\n\189\n\189\t\158\n\189\n\189\006u\n\189\n\189\014\138\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\n\189\014R\000\246\n\189\n\189\n\189\n\189\n\205\n\205\022\018\n\205\bV\n\205\t\237\n\205\n\205\000\246\n\205\n\205\n\205\n\205\021v\n\205\n\205\014V\n\205\n\205\n\205\001\214\n\205\n\205\n\205\n\205\004\133\n\205\014\206\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\r\154\n\205\0039\r\198\n\205\017\202\n\205\n\205\n\205\n\205\n\205\015\190\n\205\014\210\n\205\022\006\n\205\015^\n\205\n\205\n\205\007\030\bV\n\205\n\205\n\205\n\205\n\205\n\205\n\205\021\198\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\0076\n\205\n\205\022V\n\205\n\205\014B\003n\021n\022\022\n\205\n\205\n\205\n\205\n\205\n\205\007\138\n\205\n\205\n\205\n\205\n\205\021\130\n\205\n\205\018\n\n\205\n\205\015\022\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\n\205\014\150\018\018\n\205\n\205\n\205\n\205\n\197\n\197\006\145\n\197\b\022\n\197\014j\n\197\n\197\015\194\n\197\n\197\n\197\n\197\014\230\n\197\n\197\014\154\n\197\n\197\n\197\000\246\n\197\n\197\n\197\n\197\015F\n\197\014\134\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\014\234\n\197\016\154\003\222\n\197\001\214\n\197\n\197\n\197\n\197\n\197\004r\n\197\015Z\n\197\023\n\n\197\015r\n\197\n\197\n\197\b\030\bV\n\197\n\197\n\197\n\197\n\197\n\197\n\197\014\182\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\bb\n\197\n\197\020\250\n\197\n\197\014\206\030\154\015\158\023\030\n\197\n\197\n\197\n\197\n\197\n\197\031\155\n\197\n\197\n\197\n\197\n\197\004\130\n\197\n\197\021\186\n\197\n\197\015\170\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\n\197\014R\021\198\n\197\n\197\n\197\n\197\011=\011=\022\194\011=\n\142\011=\016\134\011=\011=\n\154\011=\011=\011=\011=\014\150\011=\011=\015*\011=\011=\011=\000\246\011=\011=\011=\011=\016\138\011=\016\158\011=\011=\011=\011=\011=\011=\011=\011=\015n\011=\022\130\025\142\011=\031\171\011=\011=\011=\011=\011=\t\018\011=\019j\011=\025\234\011=\015~\011=\011=\011=\023\"\014\230\011=\011=\011=\011=\011=\011=\011=\n\178\011=\011=\011=\011=\011=\011=\011=\011=\011=\011=\011=\017\006\011=\011=\015\182\011=\011=\017\210\b\233\006y\022\202\011=\011=\011=\011=\011=\011=\025\134\011=\011=\011=\011=\011=\017\n\011=\011=\014\189\011=\011=\017\214\011=\011=\011=\011=\011=\011=\011=\011=\011=\011=\011=\011=\011=\017v\003\222\011=\011=\011=\011=\003\229\003\229\022\238\003\229\026\214\003\229\n\254\003\229\003\229\005B\003\229\003\229\003\229\003\229\011&\003\229\003\229\017z\003\229\003\229\003\229\029V\003\229\003\229\003\229\003\229\t\018\003\229\005B\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\006\190\003\229\019n\026\026\003\229\004r\003\229\003\229\003\229\003\229\003\229\004\"\003\229\012b\003\229\007\154\003\229\004.\003\229\003\229\003\229\028\150\017\166\003\229\003\229\003\229\003\229\003\229\003\229\003\229\026\186\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\005B\n\222\011>\017\170\003\229\003\229\018\134\005u\b\225\027z\003\229\003\229\003\229\003\229\003\229\003\229\0312\003\229\003\229\003\229\003\229\n\230\000\246\011F\003\229\018\234\003\229\003\229\026\174\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\022z\003\229\003\229\003\229\003\229\003\229\002-\002-\0112\002-\t\018\002-\004\229\002\238\002-\000\246\002\174\002-\n\246\002-\011B\003&\002-\b\237\002-\002-\002-\012~\002-\002-\002-\001\218\022\202\011.\020\182\003*\002-\002-\002-\002-\002-\0116\002-\n\234\003.\028n\026J\003\198\029\138\002-\002-\002-\002-\002-\012\154\004\006\003\018\001\198\015\162\002-\015\174\002-\002-\002\226\027~\025\202\004\014\002-\002-\002-\t\150\t\154\t\166\027:\014\162\006v\002-\002-\002-\002-\002-\002-\002-\002-\002-\005B\n\222\011>\b\221\002-\002-\000\246\029\182\027>\028\162\002-\006\130\006\134\002-\002-\002-\012\218\002-\002-\002-\002-\014\170\005B\014\246\002-\012\254\002-\002-\027\014\002-\002-\002-\002-\002-\002-\006\138\t\174\002-\002-\002-\t\198\004\162\026\018\002\238\002-\002-\002-\002-\011%\011%\000\246\011%\t\018\011%\005B\002\238\011%\028r\002\174\011%\011%\011%\r6\003&\011%\014\201\011%\011%\011%\rR\011%\011%\011%\001\218\rb\011%\029\130\003*\011%\011%\011%\011%\011%\011%\011%\011J\003.\003\210\r\134\003\198\030\n\011%\011%\011%\011%\011%\r\174\004\006\029\174\001\198\014:\011%\014J\011%\011%\002\226\028\166\015\206\004\014\011%\011%\011%\t\150\t\154\t\166\015\214\011%\006v\011%\011%\011%\011%\011%\011%\011%\011%\011%\005B\011%\011%\030\002\011%\011%\000\246\0302\015\234\030\198\011%\006\130\006\134\011%\011%\011%\016\026\011%\011%\011%\011%\011%\016F\011%\011%\018&\011%\011%\018N\011%\011%\011%\011%\011%\011%\006\138\t\174\011%\011%\011%\t\198\004\162\004*\002\238\011%\011%\011%\011%\011!\011!\000\246\011!\018z\011!\018~\002\238\011!\018\166\002\174\011!\011!\011!\018\194\003&\011!\018\242\011!\011!\011!\019\002\011!\011!\011!\001\218\019\022\011!\030*\003*\011!\011!\011!\011!\011!\011!\011!\014\250\003.\003\210\019B\003\198\019N\011!\011!\011!\011!\011!\019\178\004\006\019\186\001\198\015\014\011!\015\"\011!\011!\002\226\030\202\020\174\004\014\011!\011!\011!\t\150\t\154\t\166\020\194\011!\006v\011!\011!\011!\011!\011!\011!\011!\011!\011!\020\198\011!\011!\007\134\011!\011!\021\138\021\162\022\"\022&\011!\006\130\006\134\011!\011!\011!\022^\011!\011!\011!\011!\011!\022b\011!\011!\022\138\011!\011!\022\142\011!\011!\011!\011!\011!\011!\006\138\t\174\011!\011!\011!\t\198\004\162\022\166\023R\011!\011!\011!\011!\002q\002q\023V\002q\023z\002q\023~\002\238\002q\023\142\002\174\002q\n\246\002q\023\158\003&\002q\023\170\002q\002q\002q\023\222\002q\002q\002q\001\218\003\029\011.\023\226\003*\002q\002q\002q\002q\002q\0116\002q\024F\003.\024n\024r\003\198\024\130\002q\002q\002q\002q\002q\024\210\004\006\024\242\001\198\000\n\002q\0252\002q\002q\002\226\025^\025n\004\014\002q\002q\002q\t\150\t\154\t\166\025\150\014\162\006v\002q\002q\002q\002q\002q\002q\002q\002q\002q\025\154\004\205\002q\003\029\002q\002q\004\205\004\205\004\205\025\166\002q\006\130\006\134\002q\002q\002q\005\250\002q\002q\002q\002q\025\182\004\205\025\210\002q\004\205\002q\002q\004\205\002q\002q\002q\002q\002q\002q\006\138\t\174\002q\002q\002q\t\198\004\162\000\246\004\205\002q\002q\002q\002q\004\205\025\226\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\021\"\004\205\016\174\004\205\004\205\000\246\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\025\246\004\205\004\205\000\246\004\205\004\205\004\205\000\246\004\205\004\205\004\205\004\205\004\205\004\205\000\246\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\000\246\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\000\246\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\022\170\026\"\004\205\0055\0012\004\205\004\205\004\205\000\246\004\205\003\029\003\029\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\004\205\007\198\000\246\004\205\004\205\0055\016\166\026&\004\205\t:\b\130\003\213\004\205\004\205\0262\004\205\000\n\025\194\026B\t\141\004\205\004\205\004\205\026V\027J\004\205\004\205\004\205\004\205\t>\000\169\004\205\000\169\016\190\000\169\000\169\000\169\000\169\000\169\000\169\000\169\016\194\000\169\026v\000\169\000\169\003\029\000\169\000\169\027\162\027\202\000\169\000\169\b\254\000\169\000\169\000\169\000\169\026\162\000\169\000\246\000\169\000\169\028F\028V\000\169\000\169\028\174\000\169\000\169\017\026\000\169\000\246\000\169\028\190\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\028\202\003\213\000\169\000\169\029.\017*\000\169\000\169\029B\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\003\029\007\254\000\169\t\141\029z\000\169\000\n\000\169\014\025\000\169\029\142\029\186\014]\t\217\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\003\029\029\210\003\029\000\169\000\n\014\025\014\025\029\234\000\230\014\025\014]\b\209\000\169\030\014\003\029\b\209\002J\004\190\000\169\000\169\000\169\000\169\003\029\0306\000\169\000\169\000\169\000\169\002i\002i\002N\002i\017\018\002i\003\029\002\238\002i\030R\002\174\002i\030z\002i\030\178\003&\002i\030\226\002i\002i\002i\000\246\002i\002i\002i\001\218\030\238\b\209\030\246\003*\002i\002i\002i\002i\002i\007\177\002i\030\255\003.\016\194\031\015\003\198\031\"\002i\002i\002i\002i\002i\b\209\004\006\031>\t\170\014\025\002i\007\177\002i\002i\002\226\007\177\031[\004\014\002i\002i\002i\t\150\t\154\t\166\011\026\031k\006v\002i\002i\002i\002i\002i\002i\002i\002i\002i\031\135\n\222\011>\031\219\002i\002i\031\247\0052 \002 7\002i\006\130\006\134\002i\002i\002i\003\222\002i\002i\002i\002i\n\230 K\011F\002i S\002i\002i \143\002i\002i\002i\002i\002i\002i\006\138\t\174\002i\002i\002i\t\198\004\162 \151\019\166\002i\002i\002i\002i\002}\002}\006f\002}\006-\002}\000\000\000\000\002}\bq\t\226\002}\001\198\002}\000\000\019\170\002}\000\000\002}\002}\002}\016\142\002}\002}\002}\016\250\0176\017F\n\005\007\137\002}\002}\002}\002}\002}\002\238\002}\000\000\000\000\000\000\bq\000\000\000\000\002}\002}\002}\002}\002}\007\206\006-\000\000\n\005\007\137\002}\bq\002}\002}\bq\n\"\000\000\nN\002}\002}\002}\bq\021r\tf\006-\bq\000\000\002}\002}\002}\002}\002}\002}\002}\002}\002}\003\210\n\222\011>\000\000\002}\002}\000\000\tj\000\000\000\000\002}\000\000\000\000\002}\002}\002}\003\222\002}\002}\002}\002}\n\230\016\"\011F\002}\011\002\002}\002}\011\014\002}\002}\002}\002}\002}\002}\017N\tZ\002}\002}\002}\014b\000\246\000\000\000\000\002}\002}\002}\002}\002y\002y\000\246\002y\000\000\002y\000\000\014~\002y\014\142\t\226\002y\017\134\002y\000\000\000\000\002y\000\000\002y\002y\002y\016\142\002y\002y\002y\016\250\0176\017F\000\000\000\000\002y\002y\002y\002y\002y\007\161\002y\000\000\007F\000\000\000\000\006\234\014\174\002y\002y\002y\002y\002y\007f\000\000\000\000\tn\007r\002y\007\161\002y\002y\014\198\007\161\014\222\020\134\002y\002y\002y\012\146\000\000\n\222\011>\n\001\000\000\002y\002y\002y\002y\002y\002y\002y\002y\002y\b\189\n\222\011>\000\000\002y\002y\000\000\n\230\017f\011F\002y\000\000\n\001\002y\002y\002y\000\000\002y\002y\002y\002y\n\230\000\000\011F\002y\001\214\002y\002y\000\246\002y\002y\002y\002y\002y\002y\003\205\000\000\002y\002y\002y\000\000\000\246\000\000\015>\002y\002y\002y\002y\002m\002m\t\162\002m\018j\002m\018n\000\000\002m\011\185\015R\002m\015f\002m\015\246\006}\002m\000\000\002m\002m\002m\004j\002m\002m\002m\007F\031\231\000\000\006\234\012\150\002m\002m\002m\002m\002m\007f\002m\000\000\007F\007r\011\185\006\234\000\000\002m\002m\002m\002m\002m\007f\018r\000\000\004\222\007r\002m\011\185\002m\002m\011\185\r\190\000\000\000\000\002m\002m\002m\011\185\000\000\000\000\022v\011\185\000\000\002m\002m\002m\002m\002m\002m\002m\002m\002m\000\000\n\222\011>\000\000\002m\002m\000\000\019\142\000\000\000\000\002m\000\000\022~\002m\002m\002m\021\254\002m\002m\002m\002m\n\230\000\000\011F\002m\000\000\002m\002m\003\029\002m\002m\002m\002m\002m\002m\b\229\tZ\002m\002m\002m\000\000\000\000\000\000\000\000\002m\002m\002m\002m\002u\002u\000\246\002u\000\000\002u\000\000\002\238\002u\000\n\000\000\002u\000\000\002u\003\146\014\181\002u\000\000\002u\002u\002u\000\000\002u\002u\002u\001\218\000\000\003\029\014\181\000\000\002u\002u\002u\002u\002u\000\000\002u\000\000\002\014\003\029\003\029\002\174\000\000\002u\002u\002u\002u\002u\000\000\003\186\000\000\019\146\000\000\002u\000\000\002u\002u\002\226\000\000\000\000\000\000\002u\002u\002u\028\138\000\000\000\000\000\000\000\000\000\000\002u\002u\002u\002u\002u\002u\002u\002u\002u\000\000\031\026\002u\001\230\002u\002u\000\000\bN\000\000\000\000\002u\000\000\000\000\002u\002u\002u\018R\002u\002u\002u\002u\000\000\000\000\000\000\002u\000\000\002u\002u\000\246\011^\002u\002u\002u\002u\002u\0059\000\000\002u\002u\002u\000\000\007\202\002\238\006\134\002u\002u\002u\002u\n\r\n\r\000\000\n\r\000\000\n\r\000\000\000\000\n\r\000\246\0059\n\r\000\000\n\r\005\157\000\000\011\138\000\000\n\r\011\174\n\r\000\000\n\r\n\r\n\r\007F\005\157\000\000\006\234\028\142\011\194\011\218\011\226\011\202\011\234\007f\n\r\000\000\003\210\007r\n\202\000\000\000\000\n\r\n\r\011\242\011\250\n\r\000\000\000\000\000\000\000\000\000\000\n\r\007F\012\002\n\r\006\234\005\157\000\000\000\000\n\r\n\r\000\246\007f\000\000\000\000\000\000\007r\000\000\n\r\n\r\011\146\011\210\012\n\012\018\012\"\n\r\n\r\000\000\000\000\n\r\000\000\n\r\012*\000\000\000\000\000\000\005\157\n\r\001\214\005\157\n\r\n\r\0122\000\000\n\r\n\r\n\r\n\r\000\000\000\000\029j\n\r\000\000\n\r\n\r\026\014\012R\n\r\012Z\012\026\n\r\n\r\000\000\000\000\n\r\012:\n\r\029J\000\000\tv\b\130\n\r\n\r\012B\012J\002\169\002\169\000\000\002\169\026\022\002\169\014!\004j\002\169\000\000\000\000\002\169\000\000\002\169\tz\000\000\002\169\000\000\002\169\002\169\002\169\000\000\002\169\002\169\002\169\014!\014!\b\221\000\000\014!\002\169\002\169\002\169\002\169\002\169\000\000\002\169\004\222\b\254\000\000\005y\000\000\000\000\002\169\002\169\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\246\000\000\000\000\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\014\029\000\246\002\169\002\169\011\146\002\169\002\169\002\169\002\169\002\169\002\169\000\000\000\000\002\169\000\000\002\169\002\169\000\000\000\000\014\029\014\029\002\169\000\000\014\029\002\169\002\169\002\169\000\000\002\169\002\169\002\169\002\169\014!\000\000\000\000\002\169\000\000\002\169\002\169\000\000\002\169\002\169\002\169\002\169\002\169\002\169\000\000\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\002\169\002\169\002\169\002\169\002\145\002\145\000\000\002\145\000\246\002\145\007\157\b\130\002\145\000\246\000\000\002\145\000\000\002\145\000\000\000\000\002\145\000\000\002\145\002\145\002\145\000\000\002\145\002\145\002\145\007\157\019\234\000\000\000\000\007\157\002\145\002\145\002\145\002\145\002\145\014\029\002\145\000\000\018B\000\000\r\210\002\174\000\000\002\145\002\145\002\145\002\145\002\145\000\000\000\000\b\254\000\000\000\000\002\145\r\218\002\145\002\145\r\230\000\000\000\000\000\000\002\145\002\145\002\145\r\242\000\000\000\000\000\000\r\254\000\246\002\145\002\145\011\146\002\145\002\145\002\145\002\145\002\145\002\145\000\000\018F\002\145\000\000\002\145\002\145\000\000\000\000\000\000\000\000\002\145\000\000\000\000\002\145\002\145\002\145\018R\002\145\002\145\002\145\002\145\007\157\000\000\000\000\002\145\000\000\002\145\002\145\000\000\002\145\002\145\002\145\002\145\002\145\002\145\000\000\019\238\002\145\002\145\002\145\000\000\000\000\000\000\006\134\002\145\002\145\002\145\002\145\002\157\002\157\000\000\002\157\000\000\002\157\028~\b\130\002\157\000\246\000\000\002\157\000\000\002\157\000\000\000\000\011\138\000\000\002\157\002\157\002\157\000\000\002\157\002\157\002\157\000\000\028\130\000\000\000\000\000\000\002\157\002\157\002\157\011\202\002\157\000\000\002\157\000\000\002\238\000\000\bi\002\174\000\000\002\157\002\157\002\157\002\157\002\157\000\000\000\000\b\254\000\000\000\000\002\157\bi\002\157\002\157\006\234\000\000\000\000\000\000\002\157\002\157\002\157\bi\000\000\000\000\000\000\bi\000\246\002\157\002\157\011\146\011\210\002\157\002\157\002\157\002\157\002\157\000\000\020\238\002\157\000\000\002\157\002\157\000\000\000\000\000\000\000\000\002\157\000\000\000\000\002\157\002\157\002\157\018R\002\157\002\157\002\157\002\157\000\000\000\000\000\000\002\157\000\000\002\157\002\157\000\000\002\157\002\157\002\157\002\157\002\157\002\157\000\000\000\000\002\157\002\157\002\157\000\000\000\000\000\000\006\134\002\157\002\157\002\157\002\157\002\173\002\173\000\000\002\173\000\000\002\173\000\000\000\000\002\173\b\133\000\000\002\173\000\000\002\173\000\000\000\000\002\173\000\000\002\173\002\173\002\173\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\002\173\002\173\002\173\002\173\000\000\002\173\000\000\000\000\000\000\b\133\000\000\000\000\002\173\002\173\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\002\173\b\133\002\173\002\173\006\234\000\000\000\000\000\000\002\173\002\173\002\173\b\133\000\000\000\000\000\000\b\133\000\000\002\173\002\173\011\146\002\173\002\173\002\173\002\173\002\173\002\173\000\000\000\000\002\173\000\000\002\173\002\173\000\000\000\000\000\000\000\000\002\173\000\000\000\000\002\173\002\173\002\173\000\000\002\173\002\173\002\173\002\173\000\000\000\000\000\000\002\173\000\000\002\173\002\173\000\000\002\173\002\173\002\173\002\173\002\173\002\173\000\000\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\002\173\002\173\002\173\002\173\002\141\002\141\000\000\002\141\000\000\002\141\000\000\000\000\002\141\000\246\000\000\002\141\000\000\002\141\000\000\000\000\002\141\000\000\002\141\002\141\002\141\000\000\002\141\002\141\002\141\000\000\000\000\000\000\000\000\000\000\002\141\002\141\002\141\002\141\002\141\000\000\002\141\000\000\000\000\000\000\b\161\000\000\000\000\002\141\002\141\002\141\002\141\002\141\000\000\000\000\000\000\000\000\000\000\002\141\007F\002\141\002\141\006\234\000\000\000\000\000\000\002\141\002\141\002\141\b\161\000\000\000\000\000\000\b\161\000\000\002\141\002\141\011\146\002\141\002\141\002\141\002\141\002\141\002\141\000\000\000\000\002\141\000\000\002\141\002\141\000\000\000\000\000\000\000\000\002\141\000\000\000\000\002\141\002\141\002\141\000\000\002\141\002\141\002\141\002\141\000\000\000\000\000\000\002\141\000\000\002\141\002\141\000\000\002\141\002\141\002\141\002\141\002\141\002\141\000\000\000\000\002\141\002\141\002\141\000\000\000\000\000\000\000\000\002\141\002\141\002\141\002\141\002\153\002\153\000\000\002\153\000\000\002\153\000\000\000\000\002\153\b\153\000\000\002\153\000\000\002\153\000\000\000\000\011\138\000\000\002\153\002\153\002\153\000\000\002\153\002\153\002\153\000\000\000\000\000\000\000\000\000\000\002\153\002\153\002\153\011\202\002\153\000\000\002\153\000\000\000\000\000\000\b\153\000\000\000\000\002\153\002\153\002\153\002\153\002\153\000\000\000\000\000\000\000\000\000\000\002\153\014\022\002\153\002\153\b\153\000\000\000\000\000\000\002\153\002\153\002\153\b\153\000\000\000\000\000\000\b\153\000\000\002\153\002\153\011\146\011\210\002\153\002\153\002\153\002\153\002\153\000\000\000\000\002\153\000\000\002\153\002\153\000\000\000\000\000\000\000\000\002\153\000\000\000\000\002\153\002\153\002\153\000\000\002\153\002\153\002\153\002\153\000\000\000\000\000\000\002\153\000\000\002\153\002\153\000\000\002\153\002\153\002\153\002\153\002\153\002\153\000\000\000\000\002\153\002\153\002\153\000\000\000\000\000\000\000\000\002\153\002\153\002\153\002\153\002\149\002\149\000\000\002\149\000\000\002\149\000\000\000\000\002\149\000\246\000\000\002\149\000\000\002\149\000\000\000\000\011\138\000\000\002\149\002\149\002\149\000\000\002\149\002\149\002\149\000\000\000\000\000\000\000\000\000\000\002\149\002\149\002\149\011\202\002\149\000\000\002\149\000\000\000\000\000\000\be\000\000\000\000\002\149\002\149\002\149\002\149\002\149\000\000\000\000\000\000\000\000\000\000\002\149\be\002\149\002\149\006\234\000\000\000\000\000\000\002\149\002\149\002\149\be\000\000\000\000\000\000\be\000\000\002\149\002\149\011\146\011\210\002\149\002\149\002\149\002\149\002\149\000\000\000\000\002\149\000\000\002\149\002\149\000\000\000\000\000\000\000\000\002\149\000\000\000\000\002\149\002\149\002\149\000\000\002\149\002\149\002\149\002\149\000\000\000\000\000\000\002\149\000\000\002\149\002\149\000\000\002\149\002\149\002\149\002\149\002\149\002\149\000\000\000\000\002\149\002\149\002\149\000\000\000\000\000\000\000\000\002\149\002\149\002\149\002\149\002\189\002\189\000\000\002\189\000\000\002\189\000\000\000\000\002\189\000\246\000\000\002\189\000\000\002\189\000\000\000\000\011\138\000\000\002\189\002\189\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\002\189\000\000\000\000\000\000\016^\000\000\000\000\002\189\002\189\011\242\011\250\002\189\000\000\000\000\000\000\000\000\000\000\002\189\r\218\012\002\002\189\r\230\000\000\000\000\000\000\002\189\002\189\000\246\r\242\000\000\000\000\000\000\r\254\000\000\002\189\002\189\011\146\011\210\012\n\012\018\012\"\002\189\002\189\000\000\000\000\002\189\000\000\002\189\012*\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002\189\002\189\0122\000\000\002\189\002\189\002\189\002\189\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\002\189\002\189\002\189\012\026\002\189\002\189\000\000\000\000\002\189\012:\002\189\000\000\000\000\000\000\000\000\002\189\002\189\012B\012J\002\165\002\165\000\000\002\165\000\000\002\165\000\000\000\000\002\165\000\000\000\000\002\165\000\000\002\165\000\000\000\000\011\138\000\000\002\165\002\165\002\165\000\000\002\165\002\165\002\165\003\029\003\029\020\022\000\000\000\000\002\165\002\165\002\165\011\202\002\165\000\000\002\165\000\000\000\000\000\000\003\029\000\000\000\000\002\165\002\165\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\n\002\165\000\000\002\165\002\165\000\000\000\000\000\000\000\000\002\165\002\165\002\165\003\029\003\029\021J\000\000\000\000\000\000\002\165\002\165\011\146\011\210\002\165\002\165\002\165\002\165\002\165\003\029\000\000\002\165\003\029\002\165\002\165\000\000\000\000\000\000\000\000\002\165\000\000\000\n\002\165\002\165\002\165\000\000\002\165\002\165\002\165\002\165\000\000\000\000\000\000\002\165\000\000\002\165\002\165\000\000\002\165\002\165\002\165\002\165\002\165\002\165\000\000\000\000\002\165\002\165\002\165\000\000\000\000\003\029\000\000\002\165\002\165\002\165\002\165\002\161\002\161\000\000\002\161\000\000\002\161\000\000\000\000\002\161\000\000\000\000\002\161\000\000\002\161\000\000\000\000\011\138\000\000\002\161\002\161\002\161\000\000\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\002\161\002\161\002\161\011\202\002\161\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\002\161\002\161\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\002\161\000\000\002\161\002\161\000\000\000\000\000\000\000\000\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\000\000\002\161\002\161\011\146\011\210\002\161\002\161\002\161\002\161\002\161\000\000\000\000\002\161\000\000\002\161\002\161\000\000\000\000\000\000\000\000\002\161\000\000\000\000\002\161\002\161\002\161\000\000\002\161\002\161\002\161\002\161\000\000\000\000\000\000\002\161\000\000\002\161\002\161\000\000\002\161\002\161\002\161\002\161\002\161\002\161\000\000\000\000\002\161\002\161\002\161\000\000\000\000\000\000\000\000\002\161\002\161\002\161\002\161\002\181\002\181\000\000\002\181\000\000\002\181\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\000\000\000\000\011\138\000\000\002\181\002\181\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\002\181\000\000\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\181\011\242\011\250\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\000\000\000\000\000\000\002\181\002\181\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\181\011\146\011\210\012\n\012\018\002\181\002\181\002\181\000\000\000\000\002\181\000\000\002\181\002\181\000\000\000\000\000\000\000\000\002\181\000\000\000\000\002\181\002\181\002\181\000\000\002\181\002\181\002\181\002\181\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\002\181\002\181\002\181\012\026\002\181\002\181\000\000\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\002\181\002\181\002\181\002\181\002\137\002\137\000\000\002\137\000\000\002\137\000\000\000\000\002\137\000\000\000\000\002\137\000\000\002\137\000\000\000\000\011\138\000\000\002\137\002\137\002\137\000\000\002\137\002\137\002\137\000\000\000\000\000\000\000\000\000\000\002\137\002\137\002\137\011\202\002\137\000\000\002\137\000\000\000\000\000\000\000\000\000\000\000\000\002\137\002\137\002\137\002\137\002\137\000\000\000\000\000\000\000\000\000\000\002\137\000\000\002\137\002\137\000\000\000\000\000\000\000\000\002\137\002\137\002\137\000\000\000\000\000\000\000\000\000\000\000\000\002\137\002\137\011\146\011\210\002\137\002\137\002\137\002\137\002\137\000\000\000\000\002\137\000\000\002\137\002\137\000\000\000\000\000\000\000\000\002\137\000\000\000\000\002\137\002\137\002\137\000\000\002\137\002\137\002\137\002\137\000\000\000\000\000\000\002\137\000\000\002\137\002\137\000\000\002\137\002\137\002\137\002\137\002\137\002\137\000\000\000\000\002\137\002\137\002\137\000\000\000\000\000\000\000\000\002\137\002\137\002\137\002\137\002\133\002\133\000\000\002\133\000\000\002\133\000\000\000\000\002\133\000\000\000\000\002\133\000\000\002\133\000\000\000\000\011\138\000\000\002\133\002\133\002\133\000\000\002\133\002\133\002\133\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\002\133\000\000\002\133\000\000\000\000\000\000\000\000\000\000\000\000\002\133\002\133\011\242\011\250\002\133\000\000\000\000\000\000\000\000\000\000\002\133\000\000\002\133\002\133\000\000\000\000\000\000\000\000\002\133\002\133\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\133\002\133\011\146\011\210\012\n\012\018\002\133\002\133\002\133\000\000\000\000\002\133\000\000\002\133\002\133\000\000\000\000\000\000\000\000\002\133\000\000\000\000\002\133\002\133\002\133\000\000\002\133\002\133\002\133\002\133\000\000\000\000\000\000\002\133\000\000\002\133\002\133\000\000\002\133\002\133\002\133\012\026\002\133\002\133\000\000\000\000\002\133\002\133\002\133\000\000\000\000\000\000\000\000\002\133\002\133\002\133\002\133\002\225\002\225\000\000\002\225\000\000\002\225\000\000\000\000\002\225\000\000\000\000\002\225\000\000\002\225\000\000\000\000\011\138\000\000\002\225\002\225\002\225\000\000\002\225\002\225\002\225\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\002\225\000\000\002\225\000\000\000\000\000\000\000\000\000\000\000\000\002\225\002\225\011\242\011\250\002\225\000\000\000\000\000\000\000\000\000\000\002\225\000\000\002\225\002\225\000\000\000\000\000\000\000\000\002\225\002\225\002\225\000\000\000\000\000\000\000\000\000\000\000\000\002\225\002\225\011\146\011\210\012\n\002\225\002\225\002\225\002\225\000\000\000\000\002\225\000\000\002\225\002\225\000\000\000\000\000\000\000\000\002\225\000\000\000\000\002\225\002\225\002\225\000\000\002\225\002\225\002\225\002\225\000\000\000\000\000\000\002\225\000\000\002\225\002\225\000\000\002\225\002\225\002\225\012\026\002\225\002\225\000\000\000\000\002\225\002\225\002\225\000\000\000\000\000\000\000\000\002\225\002\225\002\225\002\225\002\129\002\129\000\000\002\129\000\000\002\129\000\000\000\000\002\129\000\000\000\000\002\129\000\000\002\129\000\000\000\000\011\138\000\000\002\129\002\129\002\129\000\000\002\129\002\129\002\129\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\002\129\000\000\002\129\000\000\000\000\000\000\000\000\000\000\000\000\002\129\002\129\011\242\011\250\002\129\000\000\000\000\000\000\000\000\000\000\002\129\000\000\002\129\002\129\000\000\000\000\000\000\000\000\002\129\002\129\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\129\002\129\011\146\011\210\012\n\012\018\002\129\002\129\002\129\000\000\000\000\002\129\000\000\002\129\002\129\000\000\000\000\000\000\000\000\002\129\000\000\000\000\002\129\002\129\002\129\000\000\002\129\002\129\002\129\002\129\000\000\000\000\000\000\002\129\000\000\002\129\002\129\000\000\002\129\002\129\002\129\012\026\002\129\002\129\000\000\000\000\002\129\002\129\002\129\000\000\000\000\000\000\000\000\002\129\002\129\002\129\002\129\002\185\002\185\000\000\002\185\000\000\002\185\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\000\000\000\000\011\138\000\000\002\185\002\185\002\185\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\002\185\000\000\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\002\185\011\242\011\250\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\002\185\002\185\000\000\000\000\000\000\000\000\002\185\002\185\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\185\002\185\011\146\011\210\012\n\012\018\002\185\002\185\002\185\000\000\000\000\002\185\000\000\002\185\002\185\000\000\000\000\000\000\000\000\002\185\000\000\000\000\002\185\002\185\002\185\000\000\002\185\002\185\002\185\002\185\000\000\000\000\000\000\002\185\000\000\002\185\002\185\000\000\002\185\002\185\002\185\012\026\002\185\002\185\000\000\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\002\185\002\185\002\185\002\185\002\177\002\177\000\000\002\177\000\000\002\177\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\000\000\000\000\011\138\000\000\002\177\002\177\002\177\000\000\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\002\177\000\000\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\002\177\011\242\011\250\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\002\177\002\177\000\000\000\000\000\000\000\000\002\177\002\177\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\177\002\177\011\146\011\210\012\n\012\018\002\177\002\177\002\177\000\000\000\000\002\177\000\000\002\177\002\177\000\000\000\000\000\000\000\000\002\177\000\000\000\000\002\177\002\177\002\177\000\000\002\177\002\177\002\177\002\177\000\000\000\000\000\000\002\177\000\000\002\177\002\177\000\000\002\177\002\177\002\177\012\026\002\177\002\177\000\000\000\000\002\177\002\177\002\177\000\000\000\000\000\000\000\000\002\177\002\177\002\177\002\177\002\193\002\193\000\000\002\193\000\000\002\193\000\000\000\000\002\193\000\000\000\000\002\193\000\000\002\193\000\000\000\000\011\138\000\000\002\193\002\193\002\193\000\000\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\193\002\193\011\242\011\250\002\193\000\000\000\000\000\000\000\000\000\000\002\193\000\000\012\002\002\193\000\000\000\000\000\000\000\000\002\193\002\193\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\193\002\193\011\146\011\210\012\n\012\018\012\"\002\193\002\193\000\000\000\000\002\193\000\000\002\193\012*\000\000\000\000\000\000\000\000\002\193\000\000\000\000\002\193\002\193\0122\000\000\002\193\002\193\002\193\002\193\000\000\000\000\000\000\002\193\000\000\002\193\002\193\000\000\002\193\002\193\002\193\012\026\002\193\002\193\000\000\000\000\002\193\012:\002\193\000\000\000\000\000\000\000\000\002\193\002\193\012B\012J\002\197\002\197\000\000\002\197\000\000\002\197\000\000\000\000\002\197\000\000\000\000\002\197\000\000\002\197\000\000\000\000\011\138\000\000\002\197\002\197\002\197\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\002\197\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\197\011\242\011\250\002\197\000\000\000\000\000\000\000\000\000\000\002\197\000\000\012\002\002\197\000\000\000\000\000\000\000\000\002\197\002\197\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\197\011\146\011\210\012\n\012\018\012\"\002\197\002\197\000\000\000\000\002\197\000\000\002\197\012*\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\197\002\197\0122\000\000\002\197\002\197\002\197\002\197\000\000\000\000\000\000\002\197\000\000\002\197\002\197\000\000\002\197\002\197\002\197\012\026\002\197\002\197\000\000\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\002\197\002\197\012B\012J\002\201\002\201\000\000\002\201\000\000\002\201\000\000\000\000\002\201\000\000\000\000\002\201\000\000\002\201\000\000\000\000\011\138\000\000\002\201\002\201\002\201\000\000\002\201\002\201\002\201\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\002\201\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\201\011\242\011\250\002\201\000\000\000\000\000\000\000\000\000\000\002\201\000\000\012\002\002\201\000\000\000\000\000\000\000\000\002\201\002\201\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\201\011\146\011\210\012\n\012\018\012\"\002\201\002\201\000\000\000\000\002\201\000\000\002\201\012*\000\000\000\000\000\000\000\000\002\201\000\000\000\000\002\201\002\201\0122\000\000\002\201\002\201\002\201\002\201\000\000\000\000\000\000\002\201\000\000\002\201\002\201\000\000\002\201\002\201\002\201\012\026\002\201\002\201\000\000\000\000\002\201\002\201\002\201\000\000\000\000\000\000\000\000\002\201\002\201\012B\012J\t\201\t\201\000\000\t\201\000\000\t\201\000\000\000\000\t\201\000\000\000\000\t\201\000\000\t\201\000\000\000\000\011\138\000\000\t\201\t\201\t\201\000\000\t\201\t\201\t\201\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\t\201\000\000\000\000\000\000\000\000\000\000\000\000\t\201\t\201\011\242\011\250\t\201\000\000\000\000\000\000\000\000\000\000\t\201\000\000\012\002\t\201\000\000\000\000\000\000\000\000\t\201\t\201\000\246\000\000\000\000\000\000\000\000\000\000\000\000\t\201\t\201\011\146\011\210\012\n\012\018\012\"\t\201\t\201\000\000\000\000\t\201\000\000\t\201\012*\000\000\000\000\000\000\000\000\t\201\000\000\000\000\t\201\t\201\0122\000\000\t\201\t\201\t\201\t\201\000\000\000\000\000\000\t\201\000\000\t\201\t\201\000\000\t\201\t\201\t\201\012\026\t\201\t\201\000\000\000\000\t\201\012:\t\201\000\000\000\000\000\000\000\000\t\201\t\201\012B\012J\002\205\002\205\000\000\002\205\000\000\002\205\000\000\000\000\002\205\000\000\000\000\002\205\000\000\002\205\000\000\000\000\011\138\000\000\002\205\002\205\002\205\000\000\002\205\002\205\002\205\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\002\205\000\000\000\000\000\000\000\000\000\000\000\000\002\205\002\205\011\242\011\250\002\205\000\000\000\000\000\000\000\000\000\000\002\205\000\000\012\002\002\205\000\000\000\000\000\000\000\000\002\205\002\205\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\205\002\205\011\146\011\210\012\n\012\018\012\"\002\205\002\205\000\000\000\000\002\205\000\000\002\205\012*\000\000\000\000\000\000\000\000\002\205\000\000\000\000\002\205\002\205\0122\000\000\002\205\002\205\002\205\002\205\000\000\000\000\000\000\002\205\000\000\002\205\002\205\000\000\012R\002\205\012Z\012\026\002\205\002\205\000\000\000\000\002\205\012:\002\205\000\000\000\000\000\000\000\000\002\205\002\205\012B\012J\t\197\t\197\000\000\t\197\000\000\t\197\000\000\000\000\t\197\000\000\000\000\t\197\000\000\t\197\000\000\000\000\011\138\000\000\t\197\t\197\t\197\000\000\t\197\t\197\t\197\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\t\197\000\000\000\000\000\000\000\000\000\000\000\000\t\197\t\197\011\242\011\250\t\197\000\000\000\000\000\000\000\000\000\000\t\197\000\000\012\002\t\197\000\000\000\000\000\000\000\000\t\197\t\197\000\246\000\000\000\000\000\000\000\000\000\000\000\000\t\197\t\197\011\146\011\210\012\n\012\018\012\"\t\197\t\197\000\000\000\000\t\197\000\000\t\197\012*\000\000\000\000\000\000\000\000\t\197\000\000\000\000\t\197\t\197\0122\000\000\t\197\t\197\t\197\t\197\000\000\000\000\000\000\t\197\000\000\t\197\t\197\000\000\t\197\t\197\t\197\012\026\t\197\t\197\000\000\000\000\t\197\012:\t\197\000\000\000\000\000\000\000\000\t\197\t\197\012B\012J\002\249\002\249\000\000\002\249\000\000\002\249\000\000\000\000\002\249\000\000\000\000\002\249\000\000\002\249\000\000\000\000\011\138\000\000\002\249\002\249\002\249\000\000\002\249\002\249\002\249\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\002\249\000\000\000\000\000\000\000\000\000\000\000\000\002\249\002\249\011\242\011\250\002\249\000\000\000\000\000\000\000\000\000\000\002\249\000\000\012\002\002\249\000\000\000\000\000\000\000\000\002\249\002\249\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\249\002\249\011\146\011\210\012\n\012\018\012\"\002\249\002\249\000\000\000\000\002\249\000\000\002\249\012*\000\000\000\000\000\000\000\000\002\249\000\000\000\000\002\249\002\249\0122\000\000\002\249\002\249\002\249\002\249\000\000\000\000\000\000\002\249\000\000\002\249\002\249\000\000\012R\002\249\012Z\012\026\002\249\002\249\000\000\000\000\002\249\012:\002\249\000\000\000\000\000\000\000\000\002\249\002\249\012B\012J\003\t\003\t\000\000\003\t\000\000\003\t\000\000\000\000\003\t\000\000\000\000\003\t\000\000\003\t\000\000\000\000\011\138\000\000\003\t\003\t\003\t\000\000\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\003\t\000\000\000\000\000\000\000\000\000\000\000\000\003\t\003\t\011\242\011\250\003\t\000\000\000\000\000\000\000\000\000\000\003\t\000\000\012\002\003\t\000\000\000\000\000\000\000\000\003\t\003\t\000\246\000\000\000\000\000\000\000\000\000\000\000\000\003\t\003\t\011\146\011\210\012\n\012\018\012\"\003\t\003\t\000\000\000\000\003\t\000\000\003\t\012*\000\000\000\000\000\000\000\000\003\t\000\000\000\000\003\t\003\t\0122\000\000\003\t\003\t\003\t\003\t\000\000\000\000\000\000\003\t\000\000\003\t\003\t\000\000\012R\003\t\012Z\012\026\003\t\003\t\000\000\000\000\003\t\012:\003\t\000\000\000\000\000\000\000\000\003\t\003\t\012B\012J\003\001\003\001\000\000\003\001\000\000\003\001\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\000\000\000\000\011\138\000\000\003\001\003\001\003\001\000\000\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\003\001\011\242\011\250\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\012\002\003\001\000\000\000\000\000\000\000\000\003\001\003\001\000\246\000\000\000\000\000\000\000\000\000\000\000\000\003\001\003\001\011\146\011\210\012\n\012\018\012\"\003\001\003\001\000\000\000\000\003\001\000\000\003\001\012*\000\000\000\000\000\000\000\000\003\001\000\000\000\000\003\001\003\001\0122\000\000\003\001\003\001\003\001\003\001\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\012R\003\001\012Z\012\026\003\001\003\001\000\000\000\000\003\001\012:\003\001\000\000\000\000\000\000\000\000\003\001\003\001\012B\012J\002\237\002\237\000\000\002\237\000\000\002\237\000\000\000\000\002\237\000\000\000\000\002\237\000\000\002\237\000\000\000\000\011\138\000\000\002\237\002\237\002\237\000\000\002\237\002\237\002\237\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\002\237\000\000\000\000\000\000\000\000\000\000\000\000\002\237\002\237\011\242\011\250\002\237\000\000\000\000\000\000\000\000\000\000\002\237\000\000\012\002\002\237\000\000\000\000\000\000\000\000\002\237\002\237\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\237\002\237\011\146\011\210\012\n\012\018\012\"\002\237\002\237\000\000\000\000\002\237\000\000\002\237\012*\000\000\000\000\000\000\000\000\002\237\000\000\000\000\002\237\002\237\0122\000\000\002\237\002\237\002\237\002\237\000\000\000\000\000\000\002\237\000\000\002\237\002\237\000\000\012R\002\237\012Z\012\026\002\237\002\237\000\000\000\000\002\237\012:\002\237\000\000\000\000\000\000\000\000\002\237\002\237\012B\012J\002\245\002\245\000\000\002\245\000\000\002\245\000\000\000\000\002\245\000\000\000\000\002\245\000\000\002\245\000\000\000\000\011\138\000\000\002\245\002\245\002\245\000\000\002\245\002\245\002\245\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\002\245\000\000\000\000\000\000\000\000\000\000\000\000\002\245\002\245\011\242\011\250\002\245\000\000\000\000\000\000\000\000\000\000\002\245\000\000\012\002\002\245\000\000\000\000\000\000\000\000\002\245\002\245\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\245\002\245\011\146\011\210\012\n\012\018\012\"\002\245\002\245\000\000\000\000\002\245\000\000\002\245\012*\000\000\000\000\000\000\000\000\002\245\000\000\000\000\002\245\002\245\0122\000\000\002\245\002\245\002\245\002\245\000\000\000\000\000\000\002\245\000\000\002\245\002\245\000\000\012R\002\245\012Z\012\026\002\245\002\245\000\000\000\000\002\245\012:\002\245\000\000\000\000\000\000\000\000\002\245\002\245\012B\012J\002\241\002\241\000\000\002\241\000\000\002\241\000\000\000\000\002\241\000\000\000\000\002\241\000\000\002\241\000\000\000\000\011\138\000\000\002\241\002\241\002\241\000\000\002\241\002\241\002\241\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\002\241\000\000\000\000\000\000\000\000\000\000\000\000\002\241\002\241\011\242\011\250\002\241\000\000\000\000\000\000\000\000\000\000\002\241\000\000\012\002\002\241\000\000\000\000\000\000\000\000\002\241\002\241\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\241\002\241\011\146\011\210\012\n\012\018\012\"\002\241\002\241\000\000\000\000\002\241\000\000\002\241\012*\000\000\000\000\000\000\000\000\002\241\000\000\000\000\002\241\002\241\0122\000\000\002\241\002\241\002\241\002\241\000\000\000\000\000\000\002\241\000\000\002\241\002\241\000\000\012R\002\241\012Z\012\026\002\241\002\241\000\000\000\000\002\241\012:\002\241\000\000\000\000\000\000\000\000\002\241\002\241\012B\012J\002\253\002\253\000\000\002\253\000\000\002\253\000\000\000\000\002\253\000\000\000\000\002\253\000\000\002\253\000\000\000\000\011\138\000\000\002\253\002\253\002\253\000\000\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\002\253\000\000\000\000\000\000\000\000\000\000\000\000\002\253\002\253\011\242\011\250\002\253\000\000\000\000\000\000\000\000\000\000\002\253\000\000\012\002\002\253\000\000\000\000\000\000\000\000\002\253\002\253\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\253\002\253\011\146\011\210\012\n\012\018\012\"\002\253\002\253\000\000\000\000\002\253\000\000\002\253\012*\000\000\000\000\000\000\000\000\002\253\000\000\000\000\002\253\002\253\0122\000\000\002\253\002\253\002\253\002\253\000\000\000\000\000\000\002\253\000\000\002\253\002\253\000\000\012R\002\253\012Z\012\026\002\253\002\253\000\000\000\000\002\253\012:\002\253\000\000\000\000\000\000\000\000\002\253\002\253\012B\012J\003\r\003\r\000\000\003\r\000\000\003\r\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\000\000\000\000\011\138\000\000\003\r\003\r\003\r\000\000\003\r\003\r\003\r\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\003\r\000\000\000\000\000\000\000\000\000\000\000\000\003\r\003\r\011\242\011\250\003\r\000\000\000\000\000\000\000\000\000\000\003\r\000\000\012\002\003\r\000\000\000\000\000\000\000\000\003\r\003\r\000\246\000\000\000\000\000\000\000\000\000\000\000\000\003\r\003\r\011\146\011\210\012\n\012\018\012\"\003\r\003\r\000\000\000\000\003\r\000\000\003\r\012*\000\000\000\000\000\000\000\000\003\r\000\000\000\000\003\r\003\r\0122\000\000\003\r\003\r\003\r\003\r\000\000\000\000\000\000\003\r\000\000\003\r\003\r\000\000\012R\003\r\012Z\012\026\003\r\003\r\000\000\000\000\003\r\012:\003\r\000\000\000\000\000\000\000\000\003\r\003\r\012B\012J\003\005\003\005\000\000\003\005\000\000\003\005\000\000\000\000\003\005\000\000\000\000\003\005\000\000\003\005\000\000\000\000\011\138\000\000\003\005\003\005\003\005\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\003\005\000\000\000\000\000\000\000\000\000\000\000\000\003\005\003\005\011\242\011\250\003\005\000\000\000\000\000\000\000\000\000\000\003\005\000\000\012\002\003\005\000\000\000\000\000\000\000\000\003\005\003\005\000\246\000\000\000\000\000\000\000\000\000\000\000\000\003\005\003\005\011\146\011\210\012\n\012\018\012\"\003\005\003\005\000\000\000\000\003\005\000\000\003\005\012*\000\000\000\000\000\000\000\000\003\005\000\000\000\000\003\005\003\005\0122\000\000\003\005\003\005\003\005\003\005\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\012R\003\005\012Z\012\026\003\005\003\005\000\000\000\000\003\005\012:\003\005\000\000\000\000\000\000\000\000\003\005\003\005\012B\012J\002\233\002\233\000\000\002\233\000\000\002\233\000\000\000\000\002\233\000\000\000\000\002\233\000\000\002\233\000\000\000\000\011\138\000\000\002\233\002\233\002\233\000\000\002\233\002\233\002\233\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\002\233\000\000\000\000\000\000\000\000\000\000\000\000\002\233\002\233\011\242\011\250\002\233\000\000\000\000\000\000\000\000\000\000\002\233\000\000\012\002\002\233\000\000\000\000\000\000\000\000\002\233\002\233\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\233\002\233\011\146\011\210\012\n\012\018\012\"\002\233\002\233\000\000\000\000\002\233\000\000\002\233\012*\000\000\000\000\000\000\000\000\002\233\000\000\000\000\002\233\002\233\0122\000\000\002\233\002\233\002\233\002\233\000\000\000\000\000\000\002\233\000\000\002\233\002\233\000\000\012R\002\233\012Z\012\026\002\233\002\233\000\000\000\000\002\233\012:\002\233\000\000\000\000\000\000\000\000\002\233\002\233\012B\012J\002A\002A\000\000\002A\000\000\002A\000\000\000\000\002A\000\000\000\000\002A\000\000\002A\000\000\000\000\002A\000\000\002A\002A\002A\000\000\002A\002A\002A\000\000\000\000\000\000\000\000\000\000\002A\002A\002A\002A\002A\000\000\002A\000\000\000\000\000\000\000\000\000\000\000\000\002A\002A\002A\002A\002A\000\000\000\000\000\000\000\000\000\000\002A\000\000\002A\002A\000\000\000\000\000\000\000\000\002A\002A\002A\000\000\000\000\000\000\000\000\000\000\000\000\002A\002A\002A\002A\002A\002A\002A\002A\002A\000\000\000\000\002A\000\000\002A\002A\000\000\000\000\000\000\000\000\002A\000\000\000\000\002A\002A\002A\000\000\002A\002A\002A\002A\000\000\000\000\000\000\002A\000\000\002A\002A\000\000\002A\002A\002A\002A\002A\002A\000\000\000\000\002A\002A\0166\000\000\000\000\000\000\000\000\002A\002A\002A\002A\002]\002]\000\000\002]\000\000\002]\000\000\000\000\002]\000\000\000\000\002]\000\000\002]\000\000\000\000\011\138\000\000\002]\002]\002]\000\000\002]\002]\002]\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\002]\000\000\000\000\000\000\000\000\000\000\000\000\002]\002]\011\242\011\250\002]\000\000\000\000\000\000\000\000\000\000\002]\000\000\012\002\002]\000\000\000\000\000\000\000\000\002]\002]\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002]\002]\011\146\011\210\012\n\012\018\012\"\002]\002]\000\000\000\000\002]\000\000\002]\012*\000\000\000\000\000\000\000\000\002]\000\000\000\000\002]\002]\0122\000\000\002]\002]\016N\002]\000\000\000\000\000\000\002]\000\000\002]\002]\000\000\012R\002]\012Z\012\026\002]\002]\000\000\000\000\002]\012:\002]\000\000\000\000\000\000\000\000\002]\002]\012B\012J\002Y\002Y\000\000\002Y\000\000\002Y\000\000\000\000\002Y\000\000\000\000\002Y\000\000\002Y\000\000\000\000\011\138\000\000\002Y\002Y\002Y\000\000\002Y\002Y\002Y\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\002Y\000\000\000\000\000\000\000\000\000\000\000\000\002Y\002Y\011\242\011\250\002Y\000\000\000\000\000\000\000\000\000\000\002Y\000\000\012\002\002Y\000\000\000\000\000\000\000\000\002Y\002Y\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002Y\002Y\011\146\011\210\012\n\012\018\012\"\002Y\002Y\000\000\000\000\002Y\000\000\002Y\012*\000\000\000\000\000\000\000\000\002Y\000\000\000\000\002Y\002Y\0122\000\000\002Y\002Y\002Y\002Y\000\000\000\000\000\000\002Y\000\000\002Y\002Y\000\000\012R\002Y\012Z\012\026\002Y\002Y\000\000\000\000\002Y\012:\002Y\000\000\000\000\000\000\000\000\002Y\002Y\012B\012J\002\229\002\229\000\000\002\229\000\000\002\229\000\000\000\000\002\229\000\000\000\000\002\229\000\000\002\229\000\000\000\000\011\138\000\000\002\229\002\229\002\229\000\000\002\229\002\229\002\229\000\000\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\002\229\000\000\000\000\000\000\000\000\000\000\000\000\002\229\002\229\011\242\011\250\002\229\000\000\000\000\000\000\000\000\000\000\002\229\000\000\012\002\002\229\000\000\000\000\000\000\000\000\002\229\002\229\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\229\002\229\011\146\011\210\012\n\012\018\012\"\002\229\002\229\000\000\000\000\002\229\000\000\002\229\012*\000\000\000\000\000\000\000\000\002\229\000\000\000\000\002\229\002\229\0122\000\000\002\229\002\229\002\229\002\229\000\000\000\000\000\000\002\229\000\000\002\229\002\229\000\000\012R\002\229\012Z\012\026\002\229\002\229\000\000\000\000\002\229\012:\002\229\000\000\000\000\000\000\000\000\002\229\002\229\012B\012J\002M\002M\000\000\002M\000\000\002M\000\000\000\000\002M\000\000\000\000\002M\000\000\002M\000\000\000\000\002M\000\000\002M\002M\002M\000\000\002M\002M\002M\000\000\000\000\000\000\000\000\000\000\002M\002M\002M\002M\002M\000\000\002M\000\000\000\000\000\000\000\000\000\000\000\000\002M\002M\002M\002M\002M\000\000\000\000\000\000\000\000\000\000\002M\000\000\002M\002M\000\000\000\000\000\000\000\000\002M\002M\002M\000\000\000\000\000\000\000\000\000\000\000\000\002M\002M\002M\002M\002M\002M\002M\002M\002M\000\000\000\000\002M\000\000\002M\002M\000\000\000\000\000\000\000\000\002M\000\000\000\000\002M\002M\002M\000\000\002M\002M\002M\002M\000\000\000\000\000\000\002M\000\000\002M\002M\000\000\002M\002M\002M\002M\002M\002M\000\000\000\000\002M\002M\0166\000\000\000\000\000\000\000\000\002M\002M\002M\002M\002Q\002Q\000\000\002Q\000\000\002Q\000\000\000\000\002Q\000\000\000\000\002Q\000\000\002Q\000\000\000\000\002Q\000\000\002Q\002Q\002Q\000\000\002Q\002Q\002Q\000\000\000\000\000\000\000\000\000\000\002Q\002Q\002Q\002Q\002Q\b\205\002Q\000\000\000\000\b\205\000\000\007\193\000\000\002Q\002Q\002Q\002Q\002Q\000\000\000\000\000\000\000\000\000\000\002Q\000\000\002Q\002Q\000\000\000\000\000\000\007\193\002Q\002Q\002Q\007\193\000\000\tq\000\000\000\000\000\000\002Q\002Q\002Q\002Q\002Q\002Q\002Q\002Q\002Q\b\205\000\000\002Q\000\000\002Q\002Q\000\000\000\000\000\000\000\000\002Q\000\000\000\000\002Q\002Q\002Q\000\000\002Q\002Q\002Q\002Q\b\205\007>\000\000\002Q\002\014\002Q\002Q\tq\002Q\002Q\002Q\002Q\002Q\002Q\002\018\000\000\002Q\002Q\0166\000\000\000\000\007B\001\218\002Q\002Q\002Q\002Q\001\014\tq\000\006\000\000\000\000\000\000\002\234\002\238\007\193\003\026\002\174\0052\000\000\003\130\000\000\003&\001\018\000\000\000\000\bf\002\194\001\230\000\000\011\002\000\000\001\218\011\014\002\226\000\000\004\n\001\026\t\234\t\238\001&\001*\tq\000\000\000\246\003.\0052\000\000\003\198\tq\019~\000\000\n\018\n\022\000\000\003\250\004\006\004\018\004\022\n\026\b:\000\000\001B\bj\002\226\000\000\000\000\004\014\000\000\000\000\000\000\t\150\t\154\t\166\t\186\000\000\006v\000\000\000\000\001F\001J\001N\001R\001V\000\000\000\000\n.\001Z\000\000\007F\000\000\001^\006\234\007R\n:\nR\n\186\006\130\006\134\007f\000\000\001b\000\000\007r\000\000\003\029\000\000\001f\003\029\021\242\000\000\003\029\000\000\000\000\000\000\000\000\000\000\001\162\0072\000\000\000\000\006\138\t\174\000\000\001\166\000\000\016~\004\162\n\206\001\014\001\174\000\006\001\178\001\182\000\n\002\234\002\238\000\000\003\026\002\174\004\129\000\000\000\000\000\000\003&\001\018\000\000\000\000\000\000\t\230\003\029\000\000\003\029\000\000\001\218\000\000\000\000\000\000\004\n\001\026\t\234\t\238\001&\001*\003\029\003\029\000\000\003.\000\000\000\000\003\198\000\000\t\242\000\000\n\018\n\022\000\000\003\250\004\006\004\018\004\022\n\026\b:\000\246\001B\000\000\002\226\000\000\000\000\004\014\000\000\000\000\003\029\t\150\t\154\t\166\t\186\000\000\006v\000\000\000\000\001F\001J\001N\001R\001V\000\000\000\000\n.\001Z\000\000\t\245\000\000\001^\004\129\000\000\n:\nR\n\186\006\130\006\134\000\000\000\000\001b\000\000\000\000\000\000\000\000\007F\001f\007\178\006\234\nr\t\245\000\000\000\000\000\000\000\000\007f\001\162\007\134\000\000\007r\006\138\t\174\014Q\001\166\000\000\016~\004\162\n\206\004\249\001\174\000\006\001\178\001\182\000\254\002\234\002\238\002\242\003\026\002\174\000\000\000\000\000\000\014Q\003&\000\000\002&\003\154\000\000\002*\000\000\004\249\000\246\003\158\001\218\000\000\020~\000\000\003*\000\000\003\162\003\166\000\000\0026\000\000\003\170\000\000\003.\001\245\000\000\003\198\000\000\020\018\001\245\003\242\003\246\000\000\003\250\004\006\004\018\004\022\004\030\b:\000\000\000\000\020v\002\226\000\000\000\000\004\014\020\142\002B\001\245\t\150\t\154\t\166\t\186\007F\006v\000\000\006\234\000\000\000\000\000\000\000\000\t\245\020\150\007f\n.\000\000\000\000\007r\000\000\000\000\007\153\001\245\n:\nR\n\186\006\130\006\134\020\158\020\218\000\000\001\245\004\249\004\249\000\000\000\000\001\245\001\245\000\246\000\000\007\153\000\000\000\000\002F\007\153\001\245\001\245\000\000\021\022\025\030\006\138\t\174\019b\000\000\000\000\t\198\004\162\n\206\000\014\000\018\000\022\000\026\000\030\000\000\000\"\000&\000*\000.\0002\000\000\0006\000:\001\245\000\000\000>\000\000\000\000\000\000\000B\000\000\000\000\001\245\000\000\000\000\000\000\000F\000\000\000\000\000\000\000\000\007\181\000J\000\000\000N\000R\000V\000Z\000^\000b\000f\000j\000\000\000\000\000\000\000n\000r\000\000\000v\000z\007\181\000~\000\000\000\000\007\181\000\000\007\153\000\000\000\000\000\000\b\221\000\000\000\000\b\221\000\000\000\130\000\000\000\000\000\134\000\138\000\000\000\000\000\000\000\000\004F\000\142\000\146\000\150\000\000\000\000\000\000\025\202\000\000\000\000\000\154\000\158\000\162\000\166\000\000\000\170\000\174\000\178\014Q\014=\000\246\000\182\000\186\000\190\000\000\000\000\000\000\000\194\b\221\000\198\000\202\018B\000\000\000\000\002\174\000\000\000\000\000\206\014Q\000\210\000\000\002&\000\181\b\221\002*\000\214\000\218\000\181\000\222\002\238\000\181\0022\002\174\000\000\n\246\000\000\000\000\003&\0026\000\000\000\181\002>\000\181\014=\000\181\007F\000\181\001\218\006\234\011.\b\221\003*\000\000\018F\000\000\007f\000\000\0116\000\181\007r\003.\000\000\000\000\003\198\000\000\000\181\002B\000\000\018R\000\181\024\202\004\006\000\000\001\198\000\000\000\181\000\000\b\221\000\181\002\226\000\000\000\000\004\014\000\181\000\181\000\181\t\150\t\154\t\166\000\000\014\162\006v\000\181\000\181\000\000\006\134\000\000\000\000\000\000\000\181\000\000\000\000\000\000\000\181\000\000\024\214\000\000\003\029\000\000\000\000\000\000\002F\006\130\006\134\000\181\000\181\000\000\003\029\000\181\000\181\tm\000\000\024\138\000\000\000\000\003\029\000\000\000\000\000\181\000\000\000\000\000\000\000\000\000\n\000\181\000\181\006\138\t\174\000\000\000\000\000\205\t\198\004\162\003\029\000\181\000\205\000\181\002\238\000\205\003\029\002\174\003\029\n\246\000\000\000\000\003&\000\000\003\029\000\205\000\000\000\205\tm\000\205\003\029\000\205\001\218\000\000\011.\005\017\003*\000\000\000\000\003\029\025J\000\000\0116\000\205\000\000\003.\003\029\000\000\003\198\tm\000\205\000\000\000\000\003\029\000\205\000\000\004\006\003\029\001\198\003\158\000\205\000\000\000\000\000\205\002\226\000\n\000\000\004\014\000\205\000\205\000\205\t\150\t\154\t\166\000\000\014\162\006v\000\205\000\205\000\000\000\000\003\029\025\190\tm\000\205\000\000\000\000\0052\000\205\003\029\tm\020v\007>\000\000\000\000\003\029\020\142\006\130\006\134\000\205\000\205\000\000\000\000\000\205\000\205\026b\026r\000\000\000\000\000\000\000\000\000\000\007B\000\205\000\000\000\000\000\000\000\000\003\029\000\205\000\205\006\138\t\174\000\000\000\000\000\000\t\198\004\162\t\225\000\205\000\006\000\205\005\017\000\254\002\234\002\238\002\242\003\026\002\174\000\000\000\000\027f\000\000\003&\000\000\000\000\005\025\000\000\t\225\000\000\t\225\t\225\003\158\001\218\000\000\000\246\000\000\003*\000\000\003\162\003\166\000\000\000\000\000\000\003\170\000\000\003.\000\000\000\000\003\198\016\210\020\018\000\000\003\242\003\246\000\000\003\250\004\006\004\018\004\022\004\030\b:\000\000\000\000\020v\002\226\016\218\000\000\004\014\020\142\000\000\000\000\t\150\t\154\t\166\t\186\000\000\006v\000\000\000\000\007F\000\000\000\000\006\234\012\182\020\150\000\000\n.\000\000 \n\007f\000\000\000\000\000\000\007r\n:\nR\n\186\006\130\006\134\020\158\020\218\000\000\000\006 +\017\146\000\254\002\234\002\238\002\242\003\026\002\174\000\000\000\000\018B\000\000\003&\002\174\000\000 Z\000\000\025\030\006\138\t\174\t\225\003\158\001\218\t\198\004\162\n\206\003*\000\000\003\162\003\166\000\000\024\198\000\000\003\170\000\000\003.\000\000\000\000\003\198\000\000\020\018\000\000\003\242\003\246\000\000\003\250\004\006\004\018\004\022\004\030\b:\000\000\018F\020v\002\226\000\000\000\000\004\014\020\142\000\000\000\000\t\150\t\154\t\166\t\186\000\000\006v\018R\000\000\024\234\000\000\000\000\000\000\000\000\020\150\000\000\n.\000\000 \n\000\000\000\000\000\000\000\000\007>\n:\nR\n\186\006\130\006\134\020\158\020\218\000\000\000\000\005!\006\134\000\000\000\000\000\000\000\000\001\014\000\000\000\000\000\000\007B\024\246\003>\002\238\n\170\000\000\002\174\025\030\006\138\t\174\016\146\003&\001\018\t\198\004\162\n\206\002\194\018B\024\138\000\000\002\174\001\218\000\000\000\000\000\000\001\022\001\026\001\030\003^\001&\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003b\000\000\0016\007.\000\246\000\000\003Z\012\246\001\198\001>\000\000\000\000\001B\000\000\002\226\000\000\000\000\004\"\000\000\000\000\018F\004&\000\000\004.\006j\000\000\006v\000\000\000\000\001F\001J\001N\001R\001V\007\145\018R\000\000\001Z\006z\007\145\000\000\001^\000\000\000\000\000\000\000\000\000\000\006\130\006\134\007F\006\202\001b\006\234\r\006\000\000\000\000\000\000\001f\007\145\007f\000\000\000\000\006\134\007r\000\000\000\000\000\000\001\162\0072\001\214\000\000\006\138\000\000\000\000\001\166\000\000\001\170\004\162\001\014\000\000\001\174\007\145\001\178\001\182\003>\002\238\012v\001\218\002\174\028\210\007\145\000\000\000\000\003&\001\018\007\145\007\145\000\246\002\194\000\000\022*\000\000\000\000\001\218\007\145\007\145\000\000\001\022\001\026\001\030\003^\001&\001*\004j\000\000\022\162\000\000\000\000\000\000\002\226\000\000\003b\000\000\0016\007.\000\000\022\186\003Z\012\246\001\198\001>\007\145\000\000\001B\000\000\002\226\000\000\000\000\004\"\000\000\007\145\000\000\004&\000\000\004.\006j\000\000\006v\000\000\000\000\001F\001J\001N\001R\001V\000\000\027F\000\000\001Z\006z\000\000\000\000\001^\000\000\000\000\000\000\000\000\000\000\006\130\006\134\005\t\006\202\001b\000\000\000\000\022B\014Q\014=\001f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\162\0072\000\000\000\000\006\138\000\000\003\158\001\166\014Q\001\170\004\162\002&\004E\001\174\002*\001\178\001\182\004E\003>\002\238\004E\002\254\002\174\000\000\007\238\000\000\000\000\003&\0026\022n\004E\002>\000\000\014=\004E\000\000\004E\001\218\020v\b&\000\000\000\000\000\000\020\142\003B\000\000\000\000\n^\004E\000\000\000\000\000\000\000\000\022\154\000\000\004E\002B\000\000\003N\000\000\000\000\rF\000\000\001\198\000\000\004E\000\000\000\000\004E\002\226\000\000\000\000\004\"\004E\004E\011\181\004&\000\000\004.\005\t\012\130\006v\000\000\000\000\000\000\000\000\000\000\000\000\022\254\004E\004E\000\000\000\000\006z\000\000\000\000\000\000\000\000\002\238\000\000\000\000\002F\006\130\006\134\004E\004E\rV\000\000\004E\004E\000\000\000\000\000\000\000\000\000\000\007\146\001\218\000\000\000\000\000\000\011\181\011\002\000\000\011\181\rz\004E\006\138\000\000\000\000\025>\011\181\001\014\004\162\000\000\011\181\007\150\004E\003>\002\238\rJ\026~\002\174\003\210\000\000\026\130\000\000\003&\001\018\002\226\000\000\000\000\002\194\000\000\000\000\000\000\026\178\001\218\000\000\000\000\000\000\001\022\001\026\001\030\003^\001&\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003b\000\000\0016\007.\000\246\026\194\003Z\012\246\001\198\001>\000\000\000\000\001B\000\000\002\226\000\000\000\000\004\"\000\000\000\000\000\000\004&\000\000\004.\006j\000\000\006v\000\000\000\000\001F\001J\001N\001R\001V\014\157\000\000\000\000\001Z\006z\014\157\000\000\001^\000\000\000\000\000\000\000\000\000\000\006\130\006\134\007F\006\202\001b\006\234\000\000\000\000\000\000\000\000\001f\014\157\007f\000\000\000\000\000\000\007r\000\000\000\000\000\000\001\162\0072\000\000\000\000\006\138\000\000\000\000\001\166\000\000\001\170\004\162\001\014\000\000\001\174\014\157\001\178\001\182\003>\002\238\015\226\000\000\002\174\000\000\014\157\000\000\000\000\003&\001\018\014\157\014\157\000\246\002\194\018B\000\000\000\000\002\174\001\218\014\157\014\157\000\000\001\022\001\026\001\030\003^\001&\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003b\000\000\0016\007.\000\000\000\000\003Z\012\246\001\198\001>\014\157\000\000\001B\000\000\002\226\000\000\000\000\004\"\000\000\014\157\018F\004&\000\000\004.\006j\000\000\006v\000\000\000\000\001F\001J\001N\001R\001V\004\229\018R\000\000\001Z\006z\004\229\000\000\001^\000\000\000\000\000\000\000\000\000\000\006\130\006\134\000\000\006\202\001b\000\000\000\000\000\000\000\000\000\000\001f\004\229\000\000\000\000\000\000\006\134\000\000\000\000\000\000\000\000\001\162\0072\000\000\000\000\006\138\000\000\000\000\001\166\000\000\001\170\004\162\001\014\000\000\001\174\004\229\001\178\001\182\003>\002\238\007\014\000\000\002\174\024\158\004\229\000\000\000\000\003&\001\018\004\229\003\018\000\246\002\194\000\000\000\000\000\000\000\000\001\218\004\229\004\229\000\000\001\022\001\026\001\030\003^\001&\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003b\000\000\0016\007.\000\000\000\000\003Z\012\138\001\198\001>\004\229\000\000\001B\000\000\002\226\000\000\000\000\004\"\000\000\004\229\000\000\004&\000\000\004.\006j\000\000\006v\000\000\000\000\001F\001J\001N\001R\001V\000\000\000\000\000\000\001Z\006z\000\000\000\000\001^\000\000\000\000\000\000\000\000\000\000\006\130\006\134\000\000\006\202\001b\000\000\000\000\000\000\000\000\000\000\001f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\162\0072\003\029\003\029\006\138\000\000\000\000\001\166\000\000\001\170\004\162\011\209\000\000\001\174\011\209\001\178\001\182\011\209\011\209\000\000\003\029\011\209\003\029\011\209\000\000\003\029\011\209\000\000\003\029\000\n\011\209\011\209\000\000\011\209\011\209\003\029\011\209\000\000\011\209\000\000\000\000\000\000\003\029\011\209\003\029\003\029\011\209\003\029\000\000\000\000\000\000\000\000\000\000\000\n\000\000\011\209\000\000\011\209\000\000\003\029\011\209\000\000\011\209\005\205\014\145\000\000\000\000\003\029\011\209\003\029\003\029\011\209\000\000\000\000\011\209\011\209\003\029\011\209\000\000\011\209\011\209\003\029\005\205\003\029\000\000\000\000\005\205\000\000\000\000\011\209\003\029\003\029\011\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\209\011\209\000\000\000\000\011\209\000\000\011\209\000\000\000\000\000\000\000\000\006\166\000\000\000\000\003\029\000\000\003\029\000\000\011\209\011\209\000\000\011\209\011\209\000\000\011\209\003\029\011\209\000\000\011\209\000a\011\209\000\000\011\209\000\000\000a\000\000\000a\000a\000\000\000\000\000\000\000\000\014\145\014\145\000\000\000a\000\000\000a\000a\000a\000\000\000a\000a\000a\000\000\tY\005\205\000\000\000\000\003\190\000\000\002\238\014\145\000\000\014\145\000a\000\000\000\000\003\146\000\000\000\000\005\205\000a\000a\005\205\000\000\000a\000\000\000\000\001\218\000a\000\000\000a\000\000\000\000\000a\000\000\000\000\000\000\000\000\000a\000a\000a\000\000\000\000\000\000\000\000\000\000\000\000\000a\000a\000\000\000\000\003\186\000\000\000\000\000a\000a\000\000\000\000\000a\002\226\005\157\000a\000\000\000\000\000\000\005\157\000\000\005\157\005\157\000a\000a\000a\000\000\000a\000a\000\000\005\157\000\000\005\157\tY\005\157\000\000\005\157\000a\005\157\000a\000a\000\000\bN\000\000\000a\000\000\000\000\000\000\000\000\000a\005\157\005\157\005\157\000a\000\000\000a\005\157\005\157\005\157\005\157\000\000\000\000\000\000\000\000\000\000\005\157\000\000\005\157\000\000\005\157\005\157\005\157\000\000\005\157\005\157\005\157\005\157\005\157\000\000\000\000\000\000\000\000\000\000\003\029\000\000\000\000\000\000\005\157\000\000\000\000\003\029\005\157\000\000\000\000\005\157\005\157\000\000\000\000\005\157\000\000\000\000\003\029\005\157\000\000\005\157\000\000\005\157\005\157\005\157\000\n\005\157\005\157\005\157\005\157\005\157\000\000\000\000\000\000\000\000\000\000\000\000\005\157\005\157\000\000\000\000\003\029\023\134\005\157\005\157\000\000\000\000\000\000\005\157\003\029\000\000\005\157\000\000\000\000\005\157\003\029\000\000\000\000\000\000\005\157\005\157\005\157\000\000\005\157\005\157\000\000\000\000\000\000\000\000\000\000\003\029\000\000\000\000\005\157\000\000\005\157\005\157\003\029\003\029\002\210\005\157\000\000\000\000\0012\000\000\005\157\000\000\000\000\003\029\005\157\003\029\005\157\005\157\000\000\003\029\003\029\000\n\003\029\003\029\000\000\003\029\003\029\000\000\003\029\003\029\000\000\000\000\003\029\003\029\003\029\000\000\003\174\003\029\003\029\000\000\003\029\000\n\003\029\000\000\003\029\003\029\000\n\003\029\003\029\b>\000\000\003\029\000\n\000\000\003\029\000\n\017\250\003\029\003\029\003\029\000\000\003\029\003\029\003\029\003\029\003\029\003\029\000\000\003\029\000\000\003\029\003\029\000\000\003\029\003\029\000\000\003\029\003\029\003\029\003\029\003\029\003\029\003\029\003\029\000\000\003\029\003\029\000\000\003\029\003\029\000\000\003\029\003\029\000\000\003\029\000\000\000\000\000\000\000\000\000\000\003\029\003\029\003\029\003\029\003\029\000\000\0186\bB\000\000\003\029\003\029\000\000\003\029\003\029\000\000\003\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\029\003\029\000\000\t\205\t\205\003\029\003\029\003\029\t\205\003\029\001\214\t\205\003\029\003\029\000\000\003\029\000\000\000\000\000\000\t\205\000\000\t\205\t\205\t\205\000\000\t\205\t\205\t\205\000\000\000\000\000\254\000\000\000\254\002\242\000\000\002\026\000\000\000\000\000\000\t\205\000\000\000\000\000\000\005\025\000\000\021\026\t\205\t\205\000\000\003\158\t\205\003\158\000\000\000\000\004j\000\000\t\205\000\000\000\000\t\205\000\000\003\170\000\000\021\030\t\205\t\205\t\205\000\000\020\018\000\000\021F\000\000\000\000\t\205\t\205\000\000\000\000\000\000\027\230\000\000\t\205\020v\000\000\020v\004\222\000\000\020\142\t\205\020\142\000\000\000\000\000\000\000\000\000\000\000\000\t\205\t\205\t\205\000\000\t\205\t\205\000\000\020\150\000\000\020\150\000\000\000\000\000\000\001\021\t\205\000\000\t\205\t\205\001\021\000\000\000\000\t\205\020\158\020\218\020\158\021\222\t\205\000\000\004\237\000\000\t\205\000\000\t\205\t\205\014\017\014\017\000\000\001\021\000\000\014\017\000\000\001\214\014\017\025\030\000\000\021\238\000\000\000\000\000\000\000\000\004\238\000\000\014\017\014\017\014\017\000\000\014\017\014\017\014\017\000\000\001\021\000\000\003:\000\000\000\000\000\000\000\000\000\000\000\000\001\021\014\017\000\000\000\000\000\000\001\021\000\000\000\000\014\017\014\017\000\000\000\000\014\017\000\000\001\021\001\021\004j\000\000\014\017\000\000\000\000\014\017\000\000\000\000\005\209\014\145\014\017\014\017\014\017\000\000\000\000\000\000\000\000\000\000\000\000\014\017\014\017\000\000\000\000\000\000\000\000\001\021\014\017\005\209\000\000\000\000\004\222\005\209\000\000\014\017\001\021\000\000\000\000\000\000\000\000\000\000\000\000\014\017\014\017\014\017\000\000\014\017\014\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\017\000\000\014\017\014\017\000\000\000\000\000\000\014\017\000\000\000\000\000\000\000\000\014\017\000\000\000\000\000\000\014\017\000\000\014\017\014\017\t\209\t\209\000\000\000\000\000\000\t\209\000\000\001\214\t\209\000\000\000\000\000\000\000\000\014\145\014\145\000\000\t\209\000\000\t\209\t\209\t\209\000\000\t\209\t\209\t\209\000\000\000\000\005\209\000\000\000\000\000\000\000\000\000\000\014\145\000\000\014\145\t\209\000\000\000\000\000\000\000\000\000\000\005\209\t\209\t\209\005\209\000\000\t\209\000\000\000\000\000\000\004j\000\000\t\209\000\000\000\000\t\209\000\000\000\000\000\000\000\000\t\209\t\209\t\209\000\000\000\000\000\000\000\000\000\000\000\000\t\209\t\209\000\000\000\000\000\000\000\000\000\000\t\209\000\000\000\000\000\000\004\222\000\000\007\169\t\209\000\000\000\000\000\000\007\169\000\000\000\000\007\169\t\209\t\209\t\209\000\000\t\209\t\209\000\000\000\000\000\000\007\169\000\000\000\000\000\000\007\169\t\209\007\169\t\209\t\209\000\000\000\000\000\000\t\209\000\000\000\000\000\000\000\000\t\209\007\169\000\000\007A\t\209\000A\t\209\t\209\007\169\000A\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000A\000\000\000\000\007\169\n\006\007A\000\000\000\000\007\169\007\169\000A\002\014\000\000\000\000\000A\000\000\000A\000A\000\000\000\000\000\000\002\018\000\000\000A\007\169\000\000\000A\000\000\000\000\001\218\000A\000A\000\000\000A\000A\000A\000A\000A\000A\007\169\007\169\020&\000A\007\169\007\169\000A\000\000\003\130\000\000\000A\000A\000A\000A\bf\000A\001\230\000\000\021Z\000\000\000\000\007\169\002\226\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\007=\000\000\000=\000\000\000\000\000\000\000=\000=\000\000\000=\000=\000\000\bj\000\000\000\000\000=\000\000\000\000\000\000\000\000\007=\000A\000A\000\000\000\000\000=\000A\000A\000A\000=\000\000\000=\000=\000\000\000\000\000\000\000\000\000\000\000=\000\000\000\000\000=\000\000\000\000\000\000\000=\000=\000\000\000=\000=\000=\000=\000=\000=\000\000\000\000\000\000\000=\000\000\000\000\000=\000\000\000\000\000\000\000=\000=\000=\000=\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000=\000=\000=\000=\000\000\007M\000\000\r\217\003\190\000\000\002\238\r\217\r\217\000\000\r\217\r\217\000\000\003\146\000\000\000\000\r\217\000\000\000\000\t^\000\000\007M\000=\000=\001\218\000\000\r\217\000=\000=\000=\r\217\000\000\r\217\r\217\000\000\000\000\000\000\000\000\000\000\r\217\000\000\000\000\r\217\000\000\000\000\000\000\r\217\r\217\003\186\r\217\r\217\r\217\r\217\r\217\r\217\000\000\002\226\000\000\r\217\000\000\000\000\r\217\000\000\000\000\000\000\r\217\r\217\r\217\r\217\000\000\r\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\217\000\000\000\000\000\000\000\000\bN\000\000\000\000\r\217\r\217\r\217\r\217\r\217\000\000\007I\000\000\r\213\000\000\000\000\000\000\r\213\r\213\000\000\r\213\r\213\000\000\001\029\000\000\000\000\r\213\000\000\001\029\000\000\000\000\007I\r\217\r\217\000\000\000\000\r\213\r\217\r\217\r\217\r\213\000\000\r\213\r\213\000\000\000\000\000\000\001\029\000\000\r\213\000\000\000\000\r\213\000\000\000\000\000\000\r\213\r\213\000\000\r\213\r\213\r\213\r\213\r\213\r\213\000\000\019\150\000\000\r\213\000\000\001\029\r\213\0222\002\014\000\000\r\213\r\213\r\213\r\213\001\029\r\213\000\000\000\000\002\018\001\029\000\000\000\000\000\000\000\000\000\000\r\213\001\218\000\000\000\000\001\029\000\000\000\000\000\000\r\213\r\213\r\213\r\213\r\213\000\000\000\000\000\000\000\000\000\000\000\000\003\130\000\000\000\000\000\000\000\000\000\006\bf\000\000\001\230\002\234\002\238\001\029\003\026\002\174\002\226\000\000\r\213\r\213\003&\000\000\001\029\r\213\r\213\r\213\000\000\004*\000\000\000\000\001\218\000\000\000\000\000\000\003*\000\000\003\162\003\166\000\000\000\000\000\000\000\000\000\000\003.\000\000\bj\003\198\000\000\000\000\000\000\003\242\003\246\000\000\003\250\004\006\004\018\004\022\004\030\b:\000\000\019\210\000\000\002\226\000\000\000\000\004\014\000\000\002\014\000\000\t\150\t\154\t\166\t\186\000\000\006v\000\000\000\000\002\018\000\000\000\000\000\000\000\000\000\000\000\000\n.\001\218\000\000\000\000\000\000\000\000\000\000\000\000\n:\nR\n\186\006\130\006\134\000\000\000\000\000\000\000\000\000\000\000\000\003\130\000\000\000\000\000\000\000\000\000\006\bf\000\000\001\230\002\234\002\238\000\000\003\026\002\174\002\226\000\000\006\138\t\174\003&\000\000\000\000\t\198\004\162\n\206\000\000\016\254\000\000\000\000\001\218\000\000\000\000\000\000\003*\000\000\003\162\003\166\000\000\000\000\000\000\000\000\000\000\003.\000\000\bj\003\198\000\000\000\000\000\000\003\242\003\246\000\000\003\250\004\006\004\018\004\022\004\030\b:\007\129\007\129\000\000\002\226\000\000\000\000\004\014\000\000\000\000\000\000\t\150\t\154\t\166\t\186\000\000\006v\004Z\000\000\000\000\007\129\007\129\007\129\000\000\000\000\000\000\n.\000\000\000\000\000\000\007\129\000\000\000\000\000\000\n:\nR\n\186\006\130\006\134\000\000\000\000\000\000\000\000\000\000\007\129\007\129\007\129\000\000\000\000\000\000\007\129\000\000\007\129\007\129\007\129\014\021\014\021\000\000\000\000\007\129\014\021\006\138\t\174\014\021\000\000\000\000\t\198\004\162\n\206\000\000\000\000\004\206\000\000\014\021\014\021\014\021\007\129\014\021\014\021\014\021\019\226\000\000\000\000\000\000\000\000\000\000\000\000\002\014\000\000\000\000\000\000\014\021\000\000\000\000\000\000\000\000\000\000\002\018\014\021\014\021\000\000\000\000\014\021\000\000\000\000\001\218\000\000\000\000\014\021\000\000\000\000\014\021\000\000\004N\000\000\007\129\014\021\014\021\014\021\000\000\000\000\000\000\000\000\003\130\000\000\014\021\014\021\000\000\000\000\bf\000\000\001\230\014\021\000\000\000\000\000\000\014\021\002\226\000\000\014\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\021\014\021\014\021\000\000\014\021\014\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\021\000\000\014\021\014\021\000\000\bj\000\000\014\021\000\000\000\000\000\000\000\000\014\021\000\000\011\221\000\000\014\021\011\221\014\021\014\021\003>\002\238\000\000\000\000\002\174\000\000\000\000\000\000\000\000\003&\000\000\000\000\000\000\011\221\011\221\000\000\011\221\011\221\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\000\000\000\000\bE\000\000\000\000\bE\000\000\011\221\000\000\003N\000\000\000\000\003Z\nj\001\198\000\000\000\000\000\000\000\000\000\000\002\226\bE\bE\004\"\bE\bE\011\221\004&\000\000\004.\006j\000\000\006v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\221\000\000\000\000\006z\000\000\bE\000\000\000\000\000\000\000\000\000\000\000\000\006\130\006\134\000\000\006\202\011\221\000\000\011\221\000\000\000\000\000\000\000\000\000\000\bE\000\000\000\000\000\000\000\000\000\000\011\221\000\000\000\000\011\221\011\221\000\000\006\138\000\000\011\221\bE\011\221\000\000\004\162\011\217\011\221\000\000\011\217\000\000\000\000\003>\002\238\000\000\000\000\002\174\000\000\bE\000\000\bE\003&\000\000\000\000\000\000\011\217\011\217\000\000\011\217\011\217\000\000\001\218\006\226\000\000\000\000\bE\bE\000\000\003B\000\000\bE\000\000\bE\000\000\000\000\000\000\bE\000\000\000\000\000\000\011\217\000\000\003N\000\000\000\000\007\n\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\000\000\000\000\011\217\004&\000\000\004.\006j\000\000\006v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\217\000\000\000\000\006z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\130\006\134\000\000\006\202\011\217\000\000\011\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003Y\003Y\000\000\011\217\000\000\003Y\011\217\011\217\003Y\006\138\000\000\011\217\000\000\011\217\000\000\004\162\000\000\011\217\003Y\003Y\003Y\000\000\003Y\003Y\003Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003Y\000\000\000\000\000\000\000\000\000\000\000\000\003Y\004\178\000\000\000\000\003Y\000\000\000\000\000\000\000\000\000\000\003Y\000\000\000\000\003Y\000\000\000\000\000\000\000\000\003Y\003Y\003Y\000\000\000\000\000\000\ry\ry\000\000\003Y\003Y\ry\000\000\000\000\ry\000\000\003Y\000\000\000\000\000\000\003Y\000\000\000\000\003Y\ry\ry\ry\000\000\ry\ry\ry\003Y\003Y\003Y\000\000\003Y\003Y\000\000\000\000\000\000\000\000\000\000\ry\000\000\000\000\003Y\000\000\003Y\003Y\ry\004\190\000\000\003Y\ry\000\000\000\000\000\000\003Y\000\000\ry\000\000\003Y\ry\003Y\003Y\000\000\000\000\ry\ry\ry\000\000\000\000\000\000\r\137\r\137\000\000\ry\ry\r\137\000\000\000\000\r\137\000\000\ry\000\000\000\000\000\000\ry\000\000\000\000\ry\r\137\r\137\r\137\000\000\r\137\r\137\r\137\ry\ry\ry\000\000\ry\ry\000\000\000\000\000\000\000\000\000\000\r\137\000\000\000\000\ry\000\000\ry\ry\r\137\004\190\000\000\ry\r\137\000\000\000\000\000\000\ry\000\000\r\137\000\000\ry\r\137\ry\ry\000\000\000\000\r\137\r\137\r\137\000\000\000\000\000\000\r\133\r\133\000\000\r\137\r\137\r\133\000\000\000\000\r\133\000\000\r\137\000\000\000\000\000\000\r\137\000\000\000\000\r\137\r\133\r\133\r\133\000\000\r\133\r\133\r\133\r\137\r\137\r\137\000\000\r\137\r\137\000\000\000\000\000\000\000\000\000\000\r\133\000\000\000\000\r\137\000\000\r\137\r\137\r\133\004\178\000\000\r\137\r\133\000\000\000\000\000\000\r\137\000\000\r\133\000\000\r\137\r\133\r\137\r\137\000\000\000\000\r\133\r\133\r\133\000\000\000\000\000\000\r1\r1\000\000\r\133\r\133\r1\000\000\000\000\r1\000\000\r\133\000\000\000\000\000\000\r\133\000\000\000\000\r\133\r1\r1\r1\000\000\r1\r1\r1\r\133\r\133\r\133\000\000\r\133\r\133\000\000\000\000\000\000\000\000\000\000\r1\000\000\000\000\r\133\000\000\r\133\r\133\r1\004\190\000\000\r\133\r1\000\000\000\000\000\000\r\133\000\000\r1\000\000\r\133\r1\r\133\r\133\000\000\000\000\r1\r1\r1\000\000\000\000\000\000\r-\r-\000\000\r1\r1\r-\000\000\000\000\r-\000\000\r1\000\000\000\000\000\000\r1\000\000\000\000\r1\r-\r-\r-\000\000\r-\r-\r-\r1\r1\r1\000\000\r1\r1\000\000\000\000\000\000\000\000\000\000\r-\000\000\000\000\r1\000\000\r1\r1\r-\004\178\000\000\r1\r-\000\000\000\000\000\000\r1\000\000\r-\000\000\r1\r-\r1\r1\000\000\000\000\r-\r-\r-\000\000\000\000\000\000\rA\rA\000\000\r-\r-\rA\000\000\000\000\rA\000\000\r-\000\000\000\000\000\000\r-\000\000\000\000\r-\rA\rA\rA\000\000\rA\rA\rA\r-\r-\r-\000\000\r-\r-\000\000\000\000\000\000\000\000\000\000\rA\000\000\000\000\r-\000\000\r-\r-\rA\004\190\000\000\r-\rA\000\000\000\000\000\000\r-\000\000\rA\000\000\r-\rA\r-\r-\000\000\000\000\rA\rA\rA\000\000\000\000\000\000\r=\r=\000\000\rA\rA\r=\000\000\000\000\r=\000\000\rA\000\000\000\000\000\000\rA\000\000\000\000\rA\r=\r=\r=\000\000\r=\r=\r=\rA\rA\rA\000\000\rA\rA\000\000\000\000\000\000\000\000\000\000\r=\000\000\000\000\rA\000\000\rA\rA\r=\004\178\000\000\rA\r=\000\000\000\000\000\000\rA\000\000\r=\000\000\rA\r=\rA\rA\000\000\000\000\r=\r=\r=\000\000\000\000\000\000\rI\rI\000\000\r=\r=\rI\000\000\000\000\rI\000\000\r=\000\000\000\000\000\000\r=\000\000\000\000\r=\rI\rI\rI\000\000\rI\rI\rI\r=\r=\r=\000\000\r=\r=\000\000\000\000\000\000\000\000\000\000\rI\000\000\000\000\r=\000\000\r=\r=\rI\004\190\000\000\r=\rI\000\000\000\000\000\000\r=\000\000\rI\000\000\r=\rI\r=\r=\000\000\000\000\rI\rI\rI\000\000\000\000\000\000\rE\rE\000\000\rI\rI\rE\000\000\000\000\rE\000\000\rI\000\000\000\000\000\000\rI\000\000\000\000\rI\rE\rE\rE\000\000\rE\rE\rE\rI\rI\rI\000\000\rI\rI\000\000\000\000\000\000\000\000\000\000\rE\000\000\000\000\rI\000\000\rI\rI\rE\004\178\000\000\rI\rE\000\000\000\000\000\000\rI\000\000\rE\000\000\rI\rE\rI\rI\000\000\000\000\rE\rE\rE\000\000\000\000\000\000\r9\r9\000\000\rE\rE\r9\000\000\000\000\r9\000\000\rE\000\000\000\000\000\000\rE\000\000\000\000\rE\r9\r9\r9\000\000\r9\r9\r9\rE\rE\rE\000\000\rE\rE\000\000\000\000\000\000\000\000\000\000\r9\000\000\000\000\rE\000\000\rE\rE\r9\004\190\000\000\rE\r9\000\000\000\000\000\000\rE\000\000\r9\000\000\rE\r9\rE\rE\000\000\000\000\r9\r9\r9\000\000\000\000\000\000\r5\r5\000\000\r9\r9\r5\000\000\000\000\r5\000\000\r9\000\000\000\000\000\000\r9\000\000\000\000\r9\r5\r5\r5\000\000\r5\r5\r5\r9\r9\r9\000\000\r9\r9\000\000\000\000\000\000\000\000\000\000\r5\000\000\000\000\r9\000\000\r9\r9\r5\004\178\000\000\r9\r5\000\000\000\000\000\000\r9\000\000\r5\000\000\r9\r5\r9\r9\000\000\000\000\r5\r5\r5\000\000\000\000\000\000\ru\ru\000\000\r5\r5\ru\000\000\000\000\ru\000\000\r5\000\000\000\000\000\000\r5\000\000\000\000\r5\ru\ru\ru\000\000\ru\ru\ru\r5\r5\r5\000\000\r5\r5\000\000\000\000\000\000\000\000\000\000\ru\000\000\000\000\r5\000\000\r5\r5\ru\004\178\000\000\r5\ru\000\000\000\000\000\000\r5\000\000\ru\000\000\r5\ru\r5\r5\000\000\000\000\ru\ru\ru\000\000\000\000\000\000\rQ\rQ\000\000\ru\ru\rQ\000\000\000\000\rQ\000\000\ru\000\000\000\000\000\000\ru\000\000\000\000\ru\rQ\rQ\rQ\000\000\rQ\rQ\rQ\ru\ru\ru\000\000\ru\ru\000\000\000\000\000\000\000\000\000\000\rQ\000\000\000\000\ru\000\000\ru\ru\rQ\004\190\000\000\ru\rQ\000\000\000\000\000\000\ru\000\000\rQ\000\000\ru\rQ\ru\ru\000\000\000\000\rQ\rQ\rQ\000\000\000\000\000\000\rM\rM\000\000\rQ\rQ\rM\000\000\000\000\rM\000\000\rQ\000\000\000\000\000\000\rQ\000\000\000\000\rQ\rM\rM\rM\000\000\rM\rM\rM\rQ\rQ\rQ\000\000\rQ\rQ\000\000\000\000\000\000\000\000\000\000\rM\000\000\000\000\rQ\000\000\rQ\rQ\rM\004\178\000\000\rQ\rM\000\000\000\000\000\000\rQ\000\000\rM\000\000\rQ\rM\rQ\rQ\000\000\000\000\rM\rM\rM\000\000\000\000\000\000\ra\ra\000\000\rM\rM\ra\000\000\000\000\ra\000\000\rM\000\000\000\000\000\000\rM\000\000\000\000\rM\ra\ra\ra\000\000\ra\ra\ra\rM\rM\rM\000\000\rM\rM\000\000\000\000\000\000\000\000\000\000\ra\000\000\000\000\rM\000\000\rM\rM\ra\004\190\000\000\rM\ra\000\000\000\000\000\000\rM\000\000\ra\000\000\rM\ra\rM\rM\000\000\000\000\ra\ra\ra\000\000\000\000\000\000\r]\r]\000\000\ra\ra\r]\000\000\000\000\r]\000\000\ra\000\000\000\000\000\000\ra\000\000\000\000\ra\r]\r]\r]\000\000\r]\r]\r]\ra\ra\ra\000\000\ra\ra\000\000\000\000\000\000\000\000\000\000\r]\000\000\000\000\ra\000\000\ra\ra\r]\004\178\000\000\ra\r]\000\000\000\000\000\000\ra\000\000\r]\000\000\ra\r]\ra\ra\000\000\000\000\r]\r]\r]\000\000\000\000\000\000\ri\ri\000\000\r]\r]\ri\000\000\000\000\ri\000\000\r]\000\000\000\000\000\000\r]\000\000\000\000\r]\ri\ri\ri\000\000\ri\ri\ri\r]\r]\r]\000\000\r]\r]\000\000\000\000\000\000\000\000\000\000\ri\000\000\000\000\r]\000\000\r]\r]\ri\004\190\000\000\r]\ri\000\000\000\000\000\000\r]\000\000\ri\000\000\r]\ri\r]\r]\000\000\000\000\ri\ri\ri\000\000\000\000\000\000\re\re\000\000\ri\ri\re\000\000\000\000\re\000\000\ri\000\000\000\000\000\000\ri\000\000\000\000\ri\re\re\re\000\000\re\re\re\ri\ri\ri\000\000\ri\ri\000\000\000\000\000\000\000\000\000\000\re\000\000\000\000\ri\000\000\ri\ri\re\004\178\000\000\ri\re\000\000\000\000\000\000\ri\000\000\re\000\000\ri\re\ri\ri\000\000\000\000\re\re\re\000\000\000\000\000\000\rY\rY\000\000\re\re\rY\000\000\000\000\rY\000\000\re\000\000\000\000\000\000\re\000\000\000\000\re\rY\rY\rY\000\000\rY\rY\rY\re\re\re\000\000\re\re\000\000\000\000\000\000\000\000\000\000\rY\000\000\000\000\re\000\000\re\re\rY\004\190\000\000\re\rY\000\000\000\000\000\000\re\000\000\rY\000\000\re\rY\re\re\000\000\000\000\rY\rY\rY\000\000\000\000\000\000\rU\rU\000\000\rY\rY\rU\000\000\000\000\rU\000\000\rY\000\000\000\000\000\000\rY\000\000\000\000\rY\rU\rU\rU\000\000\rU\rU\rU\rY\rY\rY\000\000\rY\rY\000\000\000\000\000\000\000\000\000\000\rU\000\000\000\000\rY\000\000\rY\rY\rU\004\178\000\000\rY\rU\000\000\000\000\000\000\rY\000\000\rU\000\000\rY\rU\rY\rY\000\000\000\000\rU\rU\rU\000\000\000\000\000\000\r\129\r\129\000\000\rU\rU\r\129\000\000\000\000\r\129\000\000\rU\000\000\000\000\000\000\rU\000\000\000\000\rU\r\129\r\129\r\129\000\000\r\129\r\129\r\129\rU\rU\rU\000\000\rU\rU\000\000\000\000\000\000\000\000\000\000\r\129\000\000\000\000\rU\000\000\rU\rU\r\129\004\190\000\000\rU\r\129\000\000\000\000\000\000\rU\000\000\r\129\000\000\rU\r\129\rU\rU\000\000\000\000\r\129\r\129\r\129\000\000\000\000\000\000\r}\r}\000\000\r\129\r\129\r}\000\000\000\000\r}\000\000\r\129\000\000\000\000\000\000\r\129\000\000\000\000\r\129\r}\r}\r}\000\000\r}\r}\r}\r\129\r\129\r\129\000\000\r\129\r\129\000\000\000\000\000\000\000\000\000\000\r}\000\000\000\000\r\129\000\000\r\129\r\129\r}\004\178\000\000\r\129\r}\000\000\000\000\000\000\r\129\000\000\r}\000\000\r\129\r}\r\129\r\129\000\000\000\000\r}\r}\r}\000\000\000\000\000\000\rq\rq\000\000\r}\r}\rq\000\000\000\000\rq\000\000\r}\000\000\000\000\000\000\r}\000\000\000\000\r}\rq\rq\rq\000\000\rq\rq\rq\r}\r}\r}\000\000\r}\r}\000\000\000\000\000\000\000\000\000\000\rq\000\000\000\000\r}\000\000\r}\r}\rq\004\190\000\000\r}\rq\000\000\000\000\000\000\r}\000\000\rq\000\000\r}\rq\r}\r}\000\000\000\000\rq\rq\rq\000\000\000\000\000\000\rm\rm\000\000\rq\rq\rm\000\000\000\000\rm\000\000\rq\000\000\000\000\000\000\rq\000\000\000\000\rq\rm\rm\rm\000\000\rm\rm\rm\rq\rq\rq\000\000\rq\rq\000\000\000\000\000\000\000\000\000\000\rm\000\000\000\000\rq\000\000\rq\rq\rm\004\178\000\000\rq\rm\000\000\000\000\000\000\rq\000\000\rm\000\000\rq\rm\rq\rq\000\000\000\000\rm\rm\rm\000\000\000\000\000\000\002\029\002\029\000\000\rm\rm\002\029\000\000\000\000\002\029\000\000\rm\000\000\000\000\000\000\rm\000\000\000\000\rm\002\029\002\029\002\029\000\000\002\029\002\029\002\029\rm\rm\rm\000\000\rm\rm\000\000\000\000\000\000\000\000\000\000\002\029\000\000\000\000\rm\000\000\rm\rm\002\029\002\029\000\000\rm\002\029\000\000\000\000\000\000\rm\000\000\002\029\000\000\rm\002\029\rm\rm\000\000\000\000\002\029\002\029\002\029\000\000\000\000\000\000\000\000\000\000\000\000\002\029\002\029\000\000\000\000\000\000\000\000\000\000\002\029\000\000\000\000\000\000\002\029\000\000\000\000\002\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\029\002\029\002\029\000\000\002\029\002\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\029\000\000\002\029\002\029\003>\002\238\000\000\002\029\002\174\000\000\007\238\000\000\002\029\003&\006\194\000\000\0052\000\000\002\029\000\000\003>\002\238\000\000\001\218\002\174\b&\000\000\000\000\000\000\003&\003B\000\000\000\000\n^\006\198\000\000\004*\000\000\000\000\001\218\000\000\000\000\000\000\000\000\003N\000\000\003B\rF\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\000\000\003N\011\181\004&\003Z\004.\001\198\012\130\006v\000\000\000\000\000\000\002\226\000\000\000\000\004\"\000\000\004\145\000\000\004&\006z\004.\006j\000\000\006v\000\000\000\000\000\000\000\000\006\130\006\134\000\000\000\000\rV\006\029\006\029\006z\000\000\000\000\006\029\000\000\000\000\006\029\000\000\000\000\006\130\006\134\011\181\006\202\000\000\011\181\011\181\006\029\006\138\006\029\000\000\006\029\011\181\006\029\004\162\000\000\011\181\004\145\000\000\000\000\000\000\007\134\000\000\000\000\006\138\006\029\007\218\000\000\nF\000\000\004\162\000\000\006\029\006\029\000\000\000\000\000\000\000\000\006\029\000\000\000\000\000\000\006\029\000\000\001\014\006\029\000\000\000\000\000\000\000\000\006\029\006\029\006\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\018\000\000\000\000\000\000\002\194\000\000\006\029\006\029\000\000\000\000\006\029\000\000\000\000\001\022\001\026\001\030\001\"\001&\001*\000\000\000\000\006\029\006\029\006\029\000\000\006\029\006\029\001.\000\000\0016\001:\t\018\000\000\000\000\000\000\000\000\001>\000\000\006\029\001B\000\000\006\029\006\029\003\153\003\153\000\000\000\000\000\000\003\153\000\000\000\000\003\153\000\000\006\029\000\000\000\000\001F\001J\001N\001R\001V\003\153\000\000\003\153\001Z\003\153\000\000\003\153\001^\003\153\003\153\000\000\000\000\000\000\003\153\000\000\000\000\003\153\001b\003\153\000\000\000\000\000\000\000\000\001f\000\000\003\153\003\153\000\000\003\153\000\000\003\153\005\165\003\153\001\162\031\030\003\153\000\000\000\000\003\153\000\000\001\166\000\000\001\170\003\153\003\153\003\153\001\174\000\000\001\178\001\182\000\000\003\153\003\153\000\000\000\000\000\000\000\000\005\169\000\000\003\153\000\000\003\153\000\000\003\153\003\153\000\000\000\000\000\000\000\000\003\153\003\153\003\153\000\000\000\000\003\153\003\153\003\153\000\000\003\153\003\153\000\000\000\000\000\000\000\000\005\165\003\153\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\000\000\003\153\000\000\000\000\000\000\000\000\003\153\003\153\003\153\000\000\003\153\003\153\003\153\006\017\006\017\000\000\005\169\000\000\006\017\000\000\000\000\006\017\000\000\003\153\003\153\000\000\000\000\003\153\000\000\000\000\000\000\006\017\000\000\006\017\000\000\006\017\000\000\006\017\003\153\000\000\000\000\000\000\000\000\000\000\000\000\bY\000\000\000\000\bY\006\017\000\000\000\000\000\000\000\000\000\000\000\000\006\017\006\017\000\000\000\000\000\000\000\000\tZ\000\000\bY\bY\006\017\bY\bY\006\017\000\000\000\000\000\000\000\000\006\017\006\017\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bY\006\017\006\017\000\000\000\000\006\017\000\000\000\000\t\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\017\006\017\006\017\000\246\006\017\006\017\000\000\000\000\011\138\000\000\000\000\014v\t\221\000\000\t\221\t\221\000\000\006\017\bY\000\000\006\017\006\017\011\194\011\218\011\226\011\202\011\234\000\000\000\000\000\000\000\000\000\000\006\017\000\000\bY\000\000\bY\011\242\011\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\002\bY\000\000\000\000\006\234\bY\000\000\000\000\000\246\bY\000\000\bY\000\000\000\000\001\014\bY\000\000\011\146\011\210\012\n\012\018\012\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012*\001\018\000\000\000\000\000\000\016\166\000\000\000\000\000\000\000\000\0122\000\000\000\000\000\000\001\022\001\026\001\030\001\"\001&\001*\000\000\000\000\000\000\000\000\012R\000\000\012Z\012\026\001.\000\000\0016\001:\t\221\012:\000\000\000\000\000\000\001>\000\000\000\000\001B\012B\012J\000\000\t9\t9\000\000\000\000\000\000\t9\000\000\000\000\t9\000\000\000\000\000\000\000\000\001F\001J\001N\001R\001V\t9\000\000\t9\001Z\t9\000\000\t9\001^\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\001b\t9\000\000\000\000\000\000\000\000\001f\000\000\t9\t9\000\000\001\218\002\178\000\000\000\000\000\000\001\162\031:\t9\000\000\000\000\t9\000\000\001\166\000\000\001\170\t9\t9\t9\001\174\000\000\001\178\001\182\000\000\000\000\002\214\029\162\004j\000\000\000\000\000\000\002\218\t9\002\226\004J\004V\t9\000\000\014\221\014\221\004b\000\000\000\000\014\221\000\000\000\000\014\221\t9\t9\t9\000\000\t9\t9\000\000\000\000\000\000\014\221\004f\014\221\000\000\014\221\t9\014\221\000\000\t9\000\000\000\000\000\000\t9\000\000\000\000\000\000\000\000\000\000\014\221\000\000\000\000\0052\000\000\t9\000\000\014\221\014\221\000\000\000\000\000\000\000\000\004r\000\000\000\000\000\000\014\221\000\000\000\000\014\221\000\000\000\000\000\000\000\000\014\221\014\221\014\221\000\000\000\000\000\000\014\225\014\225\000\000\000\000\000\000\014\225\000\000\000\000\014\225\000\000\014\221\000\000\000\000\000\000\014\221\000\000\000\000\000\000\014\225\000\000\014\225\000\000\014\225\000\000\014\225\014\221\014\221\014\221\000\000\014\221\014\221\000\000\000\000\000\000\000\000\004\130\014\225\000\000\000\000\000\000\000\000\000\000\014\221\014\225\014\225\000\000\014\221\b1\000\000\004r\b1\000\000\000\000\014\225\000\000\000\000\014\225\014\221\000\000\000\000\000\000\014\225\014\225\014\225\000\000\000\000\b1\b1\000\000\b1\b1\000\000\000\000\000\000\000\000\000\000\001\149\014\225\000\000\000\000\000\000\014\225\000\000\000\000\015\190\000\000\000\000\000\000\000\000\011\138\000\000\b1\014\225\014\225\014\225\001\149\014\225\014\225\000\000\000\000\000\000\000\000\004\130\011\194\011\218\011\226\011\202\011\234\000\000\014\225\b1\000\000\000\000\014\225\000\000\000\000\000\000\000\000\011\242\011\250\000\000\000\000\000\000\000\000\014\225\b1\000\000\000\000\012\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\000\000\b1\000\000\b1\000\000\011\146\011\210\012\n\012\018\012\"\000\000\000\000\000\000\000\000\000\000\b1\000\000\012*\006\234\b1\000\000\000\000\001\149\b1\000\000\b1\000\000\0122\000\000\b1\000\000\000\000\015\194\001\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012R\000\000\012Z\012\026\000\000\011\138\000\000\000\000\001\149\012:\000\000\001\145\000\000\000\000\000\000\000\000\001\149\012B\012J\011\194\011\218\011\226\011\202\011\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\000\000\000\000\011\242\011\250\002\001\000\000\001\214\002\001\000\000\000\000\000\000\000\000\012\002\000\000\000\000\t\173\000\000\002\001\000\000\000\000\000\246\002\001\000\000\002\001\000\000\000\000\000\000\000\000\000\000\011\146\011\210\012\n\012\018\012\"\000\000\002\001\000\000\000\000\000\000\000\000\000\000\012*\002\001\002\001\000\000\000\000\001\145\000\000\000\000\000\000\004j\0122\002\001\000\000\000\000\002\001\000\000\000\000\000\000\000\000\002\001\002\001\002\001\000\000\000\000\012R\000\000\012Z\012\026\000\000\000\000\000\000\000\000\001\145\012:\000\000\002\001\002\001\000\000\000\000\004\222\001\145\012B\012J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\001\002\001\000\000\000\000\002\001\002\001\000\000\000\000\000\000\000\000\000\000\001\253\000\000\000\000\002\001\000\000\001\253\000\000\001\214\001\253\000\000\002\001\000\000\000\000\000\000\000\000\002\001\t\169\000\000\001\253\000\000\000\000\002\001\001\253\002\r\001\253\000\000\000\000\000\000\002\r\000\000\001\214\002\r\000\000\000\000\000\000\000\000\001\253\000\000\000\000\t\185\000\000\002\r\000\000\001\253\001\253\002\r\000\000\002\r\000\000\000\000\000\000\004j\000\000\001\253\000\000\000\000\001\253\000\000\000\000\002\r\000\000\001\253\001\253\001\253\000\000\000\000\002\r\002\r\000\000\000\000\000\000\000\000\000\000\000\000\004j\000\000\002\r\001\253\001\253\002\r\000\000\004\222\000\000\000\000\002\r\002\r\002\r\000\000\000\000\000\000\000\000\000\000\001\253\001\253\000\000\000\000\001\253\001\253\000\000\000\000\002\r\002\r\000\000\000\000\004\222\000\000\001\253\000\000\000\000\000\000\000\000\000\000\000\000\001\253\000\000\002\r\002\r\000\000\001\253\002\r\002\r\000\000\000\000\000\000\001\253\000\000\002\t\000\000\000\000\002\r\000\000\002\t\000\000\001\214\002\t\000\000\002\r\000\000\000\000\000\000\000\000\002\r\t\181\000\000\002\t\000\000\000\000\002\r\002\t\002\005\002\t\000\000\000\000\000\000\002\005\000\000\001\214\002\005\000\000\000\000\000\000\000\000\002\t\000\000\000\000\t\177\000\000\002\005\000\000\002\t\002\t\002\005\000\000\002\005\000\000\000\000\000\000\004j\000\000\002\t\000\000\000\000\002\t\000\000\000\000\002\005\000\000\002\t\002\t\002\t\000\000\000\000\002\005\002\005\000\000\000\000\000\000\000\000\000\000\000\000\004j\000\000\002\005\002\t\002\t\002\005\000\000\004\222\000\000\000\000\002\005\002\005\002\005\000\000\000\000\000\000\000\000\000\000\002\t\002\t\000\000\000\000\002\t\002\t\000\000\000\000\002\005\002\005\000\000\000\000\004\222\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\t\000\000\002\005\002\005\000\000\002\t\002\005\002\005\000\000\000\000\000\000\002\t\000\000\003}\000\000\000\000\002\005\000\000\003}\000\000\001\214\003}\000\000\002\005\000\000\000\000\000\000\000\000\002\005\t\165\000\000\003}\000\000\000\000\002\005\003}\003y\003}\000\000\000\000\000\000\003y\000\000\001\214\003y\000\000\000\000\000\000\000\000\003}\000\000\000\000\t\165\000\000\003y\000\000\003}\001\249\003y\000\000\003y\000\000\000\000\000\000\004j\000\000\003}\000\000\000\000\003}\000\000\000\000\003y\000\000\003}\003}\003}\000\000\000\000\003y\001\249\000\000\000\000\000\000\000\000\000\000\000\000\004j\000\000\003y\003}\003}\003y\000\000\004\222\000\000\000\000\003y\003y\003y\000\000\000\000\000\000\000\000\000\000\003}\003}\000\000\000\000\003}\003}\000\000\000\000\003y\003y\000\000\000\000\004\222\000\000\003}\000\000\000\000\000\000\000\000\000\000\000\000\003}\000\000\003y\003y\000\000\003}\003y\003y\000\000\000\000\000\000\003}\000\000\007V\000\000\000\000\003y\000\000\000\254\001\210\001\214\002\026\000\000\003y\000\000\000\000\000\000\000\000\003y\000\000\000\000\021\026\000\000\000\000\003y\004\237\000\000\003\158\001\218\002\178\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\021\030\000\000\000\000\000\000\000\000\000\000\000\000\021F\000\000\000\000\000\000\000\000\000\000\001\254\002\198\002\206\000\000\000\000\000\000\002\218\020v\002\226\004J\004V\000\000\020\142\000\189\000\000\004b\000\000\000\000\000\189\000\000\000\000\000\189\000\000\000\000\000\000\000\000\000\000\000\000\020\150\000\000\000\000\000\189\004f\000\189\000\000\000\189\000\000\000\189\000\000\000\000\000\000\000\000\000\000\020\158\021\222\000\000\000\000\000\000\000\000\000\189\000\000\000\000\000\000\000\000\000\000\000\000\000\189\000\000\000\000\000\000\000\189\000\000\000\000\000\000\021\238\000\000\000\189\000\000\000\000\000\189\000\000\004\162\000\000\000\000\000\189\000\189\000\246\001\001\000\000\000\000\000\000\000\000\001\001\000\189\000\189\001\001\000\000\000\000\000\000\000\000\000\189\000\000\000\000\000\000\000\189\001\001\000\000\001\001\000\000\001\001\000\000\001\001\000\000\000\000\000\000\000\189\000\189\000\000\000\000\000\189\000\189\000\000\000\000\001\001\000\000\000\000\000\000\000\000\000\000\000\189\001\001\000\000\000\000\000\000\001\001\000\189\000\189\000\000\000\000\000\000\001\001\000\000\000\000\001\001\000\000\000\189\000\000\000\189\001\001\001\001\000\246\000\197\000\000\000\000\000\000\000\000\000\197\001\001\001\001\000\197\000\000\000\000\000\000\000\000\001\001\000\000\000\000\000\000\001\001\000\197\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\000\000\000\001\001\001\001\000\000\000\000\001\001\001\001\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\001\001\000\197\000\000\000\000\000\000\000\197\001\001\001\001\000\000\000\000\000\000\000\197\000\000\000\000\000\197\000\000\001\001\000\000\001\001\000\197\000\197\000\246\000\193\000\000\000\000\000\000\000\000\000\193\000\197\000\197\000\193\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\197\000\193\000\000\000\193\000\000\000\193\000\000\000\193\000\000\000\000\000\000\000\197\000\197\000\000\000\000\000\197\000\197\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\197\000\193\000\000\000\000\000\000\000\193\000\197\000\197\000\000\000\000\000\000\000\193\000\000\000\000\000\193\000\000\000\197\000\000\000\197\000\193\000\193\000\246\000\000\000\000\000\000\001\217\000\000\000\000\000\193\000\193\001\217\000\000\000\000\001\217\000\000\000\193\000\000\000\000\000\000\000\193\000\000\000\000\000\000\001\217\000\000\000\000\000\000\001\217\000\000\001\217\000\193\000\193\000\000\000\000\000\193\000\193\000\000\000\000\000\000\000\000\000\000\001\217\001\217\000\000\000\193\000\000\000\000\000\000\001\217\000\000\000\193\000\193\r\245\000\000\005\165\r\245\000\000\000\000\001\217\000\000\000\193\001\217\000\193\000\000\000\000\r\245\001\217\001\217\001\217\014\217\014\217\r\245\000\000\000\000\014\217\000\000\000\000\014\217\000\000\000\000\000\000\000\000\001\217\r\245\000\000\000\000\001\217\014\217\000\000\014\217\r\245\014\217\000\000\014\217\000\000\000\000\000\000\001\217\001\217\000\000\r\245\001\217\001\217\r\245\000\000\014\217\000\000\005\165\r\245\000\000\000\000\001\217\014\217\014\217\000\000\000\000\000\000\001\217\001\217\000\000\000\000\000\000\014\217\001\217\r\245\014\217\000\000\000\000\r\245\001\217\014\217\014\217\014\217\014\213\014\213\000\000\000\000\000\000\014\213\r\245\r\245\014\213\000\000\r\245\000\000\000\000\014\217\000\000\000\000 \002\014\217\014\213\000\000\014\213\000\000\014\213\000\000\014\213\000\000\000\000\r\245\014\217\014\217\014\217\000\000\014\217\014\217\000\000\000\000\014\213\000\000\000\000\000\000\000\000\000\000\000\000\014\213\014\213\014\217\000\000\000\000\000\000\014\217\000\000\000\000\000\000\014\213\000\000\000\000\014\213\000\000\0052\000\000\014\217\014\213\014\213\014\213\t=\t=\000\000\000\000\000\000\t=\000\000\000\000\t=\000\000\000\000\000\000\000\000\014\213\000\000\000\000\000\000\014\213\t=\000\000\t=\000\000\t=\000\000\t=\000\000\000\000\000\000\014\213\014\213\014\213\000\000\014\213\014\213\000\000\000\000\t=\000\000\000\000\000\000\000\000\000\000\b\174\t=\t=\014\213\000\000\000\000\000\000\014\213\000\000\000\000\000\000\t=\000\000\000\000\t=\t\221\000\000\000\000\014\213\t=\t=\000\246\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\011\138\000\000\000\000\014v\t=\000\000\t\221\000\000\t=\000\000\000\000\001\218\002\178\000\000\011\194\011\218\011\226\011\202\011\234\t=\t=\t=\000\000\t=\t=\000\000\018^\000\000\000\000\011\242\011\250\000\000\000\000\t=\000\000\002\222\t=\004j\000\000\012\002\t=\002\218\000\000\002\226\004J\004V\000\000\000\246\000\000\000\000\004b\t=\018f\007\165\000\000\000\000\011\146\011\210\012\n\012\018\012\"\000\000\000\000\000\000\000\000\000\000\000\000\004f\012*\011\138\000\000\018\182\007\165\017\018\000\000\017\"\007\165\000\000\0122\000\000\000\000\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\000\000\000\000\000\000\012R\000\000\012Z\012\026\000\000\000\000\011\242\011\250\000\000\012:\000\000\000\000\000\000\000\000\000\000\000\000\012\002\012B\012J\000\000\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\146\011\210\012\n\012\018\012\"\000\000\000\000\000\000\001\249\000\000\000\000\007\165\012*\001\249\000\000\001\214\001\249\017\018\000\000\000\000\000\000\000\000\0122\000\000\t\165\000\000\001\249\000\000\000\000\000\000\001\249\000\000\001\249\000\000\000\000\000\000\012R\000\000\012Z\012\026\000\000\000\000\000\000\000\000\001\249\012:\000\000\000\000\000\000\000\000\000\000\001\249\000\000\012B\012J\000\000\000\000\000\000\000\000\004j\000\000\001\249\019\198\000\000\001\249\000\000\000\000\000\000\000\000\001\249\001\249\001\249\000\000\000\000\000\000\000\000\000\000\000\000\011\138\000\000\000\000\000\000\019\202\000\000\000\000\001\249\001\249\000\000\000\000\004\222\000\000\000\000\011\194\011\218\011\226\011\202\011\234\000\000\000\000\000\000\001\249\001\249\000\000\000\000\001\249\001\249\000\000\011\242\011\250\000\000\000\000\000\000\000\000\003\165\001\249\000\000\000\000\012\002\000\000\000\000\003\165\001\249\000\000\003\165\000\000\000\246\001\249\000\000\000\000\000\000\000\000\003\165\001\249\000\000\011\146\011\210\012\n\012\018\012\"\003\165\006I\006I\000\000\000\000\000\000\006I\012*\000\000\006I\003\165\000\000\016\166\000\000\000\000\000\000\003\165\0122\003\165\006I\000\000\006I\000\000\006I\003\165\006I\000\000\000\000\000\000\000\000\003\165\012R\019\206\012Z\012\026\019\222\000\000\006I\000\000\016\182\012:\000\000\000\000\000\000\006I\006I\000\000\000\000\012B\012J\tZ\000\000\000\000\020\154\006I\000\000\000\000\006I\000\000\000\000\000\000\000\000\006I\006I\000\246\006E\b\130\000\000\000\000\000\000\006E\000\000\000\000\006E\000\000\000\000\000\000\000\000\006I\000\000\000\000\000\000\006I\006E\000\000\006E\000\000\006E\000\000\006E\000\000\000\000\000\000\006I\006I\006I\000\000\006I\006I\000\000\000\000\006E\000\000\000\000\000\000\000\000\000\000\000\000\006E\b\254\006I\000\000\000\000\000\000\006I\000\000\000\000\000\000\006E\000\000\000\000\006E\000\000\000\000\000\000\006I\006E\006E\000\246\014\229\014\229\000\000\000\000\000\000\014\229\000\000\000\000\014\229\000\000\000\000\000\000\000\000\006E\000\000\000\000\000\000\006E\014\229\000\000\014\229\000\000\014\229\000\000\014\229\000\000\000\000\000\000\006E\006E\006E\000\000\006E\006E\000\000\000\000\014\229\000\000\000\000\000\000\000\000\000\000\000\000\014\229\014\229\006E\000\000\000\000\000\000\006E\000\000\000\000\000\000\014\229\000\000\000\000\014\229\000\000\000\000\000\000\006E\014\229\014\229\000\246\014\233\014\233\000\000\000\000\000\000\014\233\000\000\000\000\014\233\000\000\000\000\000\000\000\000\014\229\000\000\000\000\000\000\014\229\014\233\000\000\014\233\000\000\014\233\000\000\014\233\000\000\000\000\000\000\014\229\014\229\014\229\000\000\014\229\014\229\000\000\000\000\014\233\000\000\000\000\000\000\000\000\000\000\000\000\014\233\b\254\014\229\000\000\000\000\000\000\014\229\000\000\000\000\000\000\014\233\000\000\000\000\014\233\000\000\000\000\000\000\014\229\014\233\014\233\000\246\006]\b\130\000\000\000\000\000\000\006]\000\000\000\000\006]\000\000\000\000\000\000\000\000\014\233\000\000\000\000\000\000\014\233\006]\000\000\006]\000\000\006]\000\000\006]\000\000\000\000\000\000\014\233\014\233\014\233\000\000\014\233\014\233\000\000\000\000\006]\000\000\000\000\000\000\000\000\000\000\000\000\006]\b\254\014\233\000\000\000\000\000\000\014\233\000\000\000\000\000\000\006]\000\000\000\000\006]\000\000\000\000\000\000\014\233\006]\006]\000\246\006a\006a\000\000\000\000\000\000\006a\000\000\000\000\006a\000\000\000\000\000\000\000\000\006]\000\000\000\000\000\000\006]\006a\000\000\006a\000\000\006a\000\000\006a\000\000\000\000\000\000\006]\006]\006]\000\000\006]\006]\000\000\000\000\006a\000\000\000\000\000\000\000\000\000\000\000\000\006a\006a\006]\000\000\000\000\000\000\006]\000\000\000\000\000\000\006a\000\000\000\000\006a\000\000\000\000\000\000\006]\006a\006a\006a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006a\000\000\000\000\000\000\006a\003>\002\238\000\000\000\000\002\174\000\000\007\238\000\000\000\000\003&\006a\006a\006a\000\000\006a\006a\000\000\000\000\000\000\001\218\000\000\b&\000\000\000\000\000\000\000\000\003B\006a\000\000\n^\000\000\006a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\t&\012r\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\000\000\000\000\000\000\004&\000\000\004.\000\000\012\130\006v\000\000\000\000\000\000\000\000\000\000\000\000\003>\002\238\000\000\000\000\002\174\006z\007\238\000\000\000\000\003&\000\000\000\000\000\000\000\000\006\130\006\134\000\000\000\000\012\206\001\218\000\000\b&\000\000\000\000\000\000\000\000\003B\000\000\000\000\n^\000\000\000\000\000\000\011\002\000\000\000\000\r\026\000\000\006\138\000\000\003N\000\000\000\000\012r\004\162\001\198\000\000\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\000\000\000\000\000\000\004&\000\000\004.\000\000\012\130\006v\000\000\000\000\000\000\000\000\000\000\000\000\003>\002\238\000\000\000\000\002\174\006z\007\238\000\000\000\000\003&\000\000\000\000\000\000\000\000\006\130\006\134\000\000\000\000\012\206\001\218\000\000\b&\000\000\000\000\000\000\000\000\003B\000\000\000\000\n^\000\000\000\000\000\000\011\002\000\000\000\000\011\014\000\000\006\138\000\000\003N\000\000\000\000\rF\004\162\001\198\000\000\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\000\000\000\000\000\000\004&\003u\004.\000\000\012\130\006v\003u\000\000\001\214\003u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006z\000\000\003u\000\000\000\000\000\000\003u\000\000\003u\006\130\006\134\000\000\000\000\rV\000\000\000\000\000\000\000\000\000\000\000\000\003u\000\000\000\000\000\000\000\000\000\000\000\000\003u\011\002\000\000\000\000\011\014\000\000\006\138\000\000\004j\000\000\003u\000\000\004\162\003u\000\000\000\000\000\000\000\000\003u\003u\003u\003q\000\000\000\000\000\000\000\000\003q\000\000\001\214\003q\000\000\000\000\000\000\000\000\003u\003u\000\000\000\000\004\222\003q\000\000\000\000\000\000\003q\000\000\003q\000\000\000\000\000\000\003u\003u\000\000\000\000\003u\003u\000\000\000\000\003q\000\000\000\000\000\000\000\000\000\000\003u\003q\000\000\000\000\000\000\000\000\000\000\003u\000\000\004j\000\000\003q\003u\000\000\003q\000\000\000\000\000\000\003u\003q\003q\003q\001U\000\000\000\000\000\000\000\000\001U\000\000\000\000\001U\000\000\000\000\000\000\000\000\003q\003q\000\000\000\000\004\222\001U\000\000\001U\000\000\001U\000\000\001U\000\000\000\000\000\000\003q\003q\000\000\000\000\003q\003q\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\003q\001U\000\000\000\000\000\000\001U\000\000\003q\000\000\000\000\000\000\001U\003q\000\000\001U\000\000\000\000\000\000\003q\001U\001U\000\246\001Q\000\000\000\000\000\000\000\000\001Q\000\000\001U\001Q\000\000\000\000\000\000\000\000\001U\000\000\000\000\000\000\001U\001Q\000\000\001Q\000\000\001Q\000\000\001Q\000\000\000\000\000\000\001U\001U\001U\000\000\001U\001U\000\000\000\000\001Q\000\000\000\000\000\000\000\000\000\000\001U\001Q\000\000\000\000\000\000\001Q\000\000\001U\000\000\000\000\000\000\001Q\000\000\000\000\001Q\000\000\000\000\000\000\001U\001Q\001Q\000\246\000\000\000\000\000\000\001\141\000\000\000\000\000\000\001Q\001\141\000\000\0145\001\141\000\000\001Q\000\000\000\000\000\000\001Q\000\000\0145\000\000\001\141\000\000\001\141\000\000\001\141\000\000\001\141\001Q\001Q\001Q\000\000\001Q\001Q\000\000\000\000\000\000\000\000\000\000\001\141\000\000\000\000\001Q\000\000\000\000\000\000\001\141\0145\000\000\001Q\000\000\000\000\000\000\000\000\0145\000\000\000\000\000\000\000\000\001\141\001Q\000\000\000\000\000\000\001\141\001\141\001\141\001A\000\000\000\000\000\000\000\000\001A\000\000\000\165\001A\000\000\000\000\000\000\000\000\001\141\000\000\000\000\000\165\0145\001A\000\000\001A\000\000\001A\000\000\001A\000\000\000\000\000\000\001\141\001\141\001\141\000\000\001\141\001\141\000\000\000\000\001A\000\000\000\000\000\000\000\000\000\000\000\000\001A\000\165\000\000\000\000\000\000\000\000\001\141\000\000\000\165\000\000\000\000\000\000\000\000\001A\000\000\000\000\000\000\001\141\001A\001A\001A\000\000\002\021\000\000\000\000\000\000\000\000\002\021\000\000\018B\002\021\000\000\002\174\000\000\001A\000\000\000\000\000\000\000\165\000\000\002\021\000\000\000\000\000\000\002\021\000\000\002\021\000\000\000\000\001A\001A\001A\000\000\001A\001A\000\000\000\000\000\000\002\021\000\000\000\000\000\000\000\000\000\000\000\000\002\021\000\000\000\000\000\000\000\000\001A\018F\000\000\000\000\000\000\002\021\000\000\000\000\002\021\000\000\000\000\001A\000\000\002\021\002\021\000\000\018R\000\000\000\000\000\000\000\000\003>\002\238\000\000\000\000\002\174\000\000\007\238\000\000\002\021\003&\000\000\000\000\002\021\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\b&\006\134\002\021\002\021\000\000\003B\002\021\002\021\n^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\021\n\182\000\000\003N\000\000\000\000\015\222\002\021\001\198\000\000\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\002\021\004\229\b\130\004&\000\000\004.\004\229\012\130\006v\004\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\229\004\229\006z\000\000\000\000\004\229\000\000\004\229\004\229\000\000\000\000\006\130\006\134\000\000\000\000\000\000\000\000\000\000\004\229\004\229\000\000\000\000\004\229\000\000\004\229\000\000\004\229\b\254\000\000\000\000\004\229\000\000\tZ\015\238\000\000\006\138\004\229\000\000\000\000\004\229\000\000\004\162\000\000\004\229\004\229\003\018\000\246\b\201\000\000\004r\000\000\000\000\b\201\004\229\004\229\b\201\004\229\000\000\000\000\000\000\004\229\004\229\003\018\000\000\004\229\b\201\000\000\000\000\000\000\b\201\000\000\b\201\000\000\000\000\000\000\004\229\004\229\004\229\000\000\004\229\004\229\000\000\000\000\b\201\000\000\t\018\000\000\000\000\000\000\004\229\b\201\000\000\004\229\004\229\b\201\000\000\004\229\004\229\000\000\000\000\b\201\028\210\004\130\b\201\000\000\000\000\000\000\004\229\b\201\b\201\000\246\b\197\000\000\004\229\000\000\000\000\b\197\b\201\b\201\b\197\000\000\000\000\000\000\000\000\b\201\000\000\000\000\000\000\b\201\b\197\000\000\000\000\000\000\b\197\000\000\b\197\000\000\000\000\000\000\b\201\b\201\b\201\000\000\b\201\b\201\000\000\000\000\b\197\000\000\000\000\000\000\000\000\000\000\b\201\b\197\000\000\000\000\000\000\b\197\000\000\b\201\000\000\000\000\000\000\b\197\000\000\000\000\b\197\000\000\000\000\000\000\000\000\b\197\b\197\000\246\003i\000\000\000\000\000\000\000\000\003i\b\197\b\197\003i\000\000\000\000\000\000\000\000\b\197\000\000\000\000\000\000\b\197\003i\000\000\000\000\000\000\003i\000\000\003i\000\000\000\000\000\000\b\197\b\197\b\197\000\000\b\197\b\197\000\000\000\000\003i\018Z\000\000\000\000\000\000\000\000\b\197\003i\000\000\000\000\000\000\000\000\000\000\b\197\000\000\000\000\000\000\003i\000\000\000\000\003i\000\000\000\000\000\000\000\000\003i\003i\003i\000\000\003>\002\238\000\000\000\000\002\174\000\000\007\238\000\000\000\000\003&\000\000\000\000\003i\000\000\000\000\000\000\003i\000\000\000\000\001\218\000\000\b&\000\000\000\000\000\000\000\000\003B\003i\003i\n^\000\000\003i\003i\000\000\000\000\000\000\000\000\000\000\026\206\000\000\003N\003i\000\000\0256\000\000\001\198\000\000\018\226\003i\000\000\000\000\002\226\000\000\003i\004\"\000\000\000\000\000\000\004&\003i\004.\000\000\012\130\006v\000\000\000\000\000\000\000\000\000\000\000\000\003>\002\238\000\000\000\000\002\174\006z\007\238\000\000\000\000\003&\000\000\000\000\000\000\000\000\006\130\006\134\000\000\000\000\025:\001\218\000\000\b&\000\000\000\000\000\000\000\000\003B\000\000\000\000\n^\000\000\000\000\000\000\000\000\000\000\000\000\027\154\000\000\006\138\000\000\003N\000\000\000\000\rF\004\162\001\198\000\000\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\000\000\000\000\000\000\004&\000\000\004.\000\000\012\130\006v\000\000\000\000\000\000\000\000\000\000\000\000\003>\002\238\000\000\000\000\002\174\006z\007\238\000\000\000\000\003&\000\000\000\000\000\000\000\000\006\130\006\134\000\000\000\000\rV\001\218\000\000\b&\000\000\000\000\000\000\000\000\003B\000\000\000\000\n^\000\000\000\000\000\000\000\000\000\000\000\000\025\214\000\000\006\138\000\000\003N\000\000\000\000\rF\004\162\001\198\000\000\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\000\000\000\000\000\000\004&\000\000\004.\000\000\012\130\006v\000\000\000\000\000\000\004\205\004\205\000\000\000\000\004\205\000\000\000\000\000\000\006z\004\205\000\000\000\000\000\000\000\000\000\000\004\205\000\000\006\130\006\134\004\205\000\000\rV\000\000\000\000\000\000\000\000\004\205\026\134\000\000\000\000\026\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0266\004\205\006\138\000\000\004\205\004\205\004\205\000\000\004\162\000\000\t\249\000\000\004\205\000\000\000\000\004\205\003>\002\238\000\246\004\205\002\174\004\205\004\205\000\000\004\205\003&\000\000\000\000\000\000\000\000\000\000\000\000\t\249\000\000\000\000\001\218\004\205\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\004\205\004\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\000\000\003Z\012j\001\198\000\000\000\000\000\000\000\000\000\000\002\226\000\000\004\205\004\"\000\000\000\000\000\000\004&\004\205\004.\006j\000\000\006v\003i\000\000\000\000\000\000\003i\003i\000\000\000\000\003i\003i\000\000\006z\003i\000\000\000\000\000\000\000\000\000\000\003i\000\000\006\130\006\134\003i\006\202\003i\000\000\003i\000\000\003i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003i\018Z\000\000\000\000\003i\018Z\000\000\003i\006\138\000\000\t\249\003i\000\000\000\000\004\162\000\000\000\000\003i\000\000\000\000\003i\003i\000\000\000\000\003i\003i\003i\003i\000\000\003i\003i\003i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003i\000\000\000\000\000\000\003i\000\000\000\000\000\000\003i\000\000\000\000\000\000\000\000\000\000\000\000\003i\003i\028\218\000\000\003i\003i\029\n\000\000\003i\003i\014-\000\000\000\000\000\000\000\000\014-\000\000\000\000\014-\000\000\018\226\003i\000\000\000\000\018\226\003i\003i\000\000\014-\006\253\003i\000\000\014-\000\000\014-\000\000\002\238\000\000\000\000\002\174\005\157\000\000\000\000\000\000\003&\000\000\014-\000\000\000\000\006\253\000\000\000\000\000\000\014-\001\218\000\000\000\000\000\000\003*\000\000\000\000\000\000\000\000\014-\000\000\000\000\014-\003.\000\000\000\000\003\198\014-\014-\000\000\000\000\000\000\000\000\000\000\004\006\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\226\014-\000\000\004\014\000\000\014-\000\000\t\150\t\154\t\166\000\000\000\000\006v\000\000\000\000\000\000\014-\014-\002\166\000\000\014-\014-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014-\000\000\000\000\006\130\006\134\003>\002\238\014-\000\000\002\174\000\000\007\238\000\000\000\000\003&\000\000\000\000\000\000\014-\000\000\000\000\000\000\000\000\000\000\001\218\000\000\b&\006\138\t\174\000\000\000\000\003B\t\198\004\162\n^\000\000\000\000\007%\000\000\000\000\000\000\000\000\000\000\000\000\002\238\003N\000\000\002\174\n\166\000\000\001\198\000\000\003&\000\000\000\000\000\000\002\226\007%\000\000\004\"\000\000\000\000\001\218\004&\000\000\004.\003*\012\130\006v\005\245\000\000\000\000\000\000\000\000\005\245\003.\000\000\005\245\003\198\000\000\006z\000\000\000\000\000\000\000\000\000\000\004\006\005\245\001\198\006\130\006\134\005\245\000\000\005\245\002\226\000\000\000\000\004\014\000\000\000\000\000\000\t\150\t\154\t\166\000\000\005\245\006v\000\000\000\000\000\000\000\000\000\000\005\245\006\138\000\000\000\000\000\000\000\000\tZ\004\162\000\000\000\000\005\245\000\000\000\000\005\245\000\000\006\130\006\134\000\000\005\245\005\245\000\246\000\000\000\000\000\000\005\249\000\000\000\000\000\000\000\000\005\249\000\000\000\000\005\249\000\000\005\245\005\245\000\000\000\000\005\245\006\138\t\174\000\000\005\249\000\000\t\198\004\162\005\249\003i\005\249\005\245\005\245\000\000\003i\005\245\005\245\003i\000\000\000\000\000\000\000\000\005\249\000\000\000\000\000\000\000\000\003i\000\000\005\249\000\000\003i\005\245\003i\000\000\tZ\000\000\000\000\000\000\005\249\000\000\000\000\005\249\005\245\000\000\003i\018Z\005\249\005\249\000\246\000\000\006\181\003i\000\000\000\000\000\000\006\181\000\000\000\000\006\181\000\000\000\000\003i\005\249\005\249\003i\000\000\005\249\000\000\006\181\003i\003i\003i\006\181\000\000\006\181\000\000\000\000\005\249\005\249\000\000\000\000\005\249\005\249\000\000\000\000\003i\006\181\000\000\000\000\003i\000\000\000\000\000\000\006\181\000\000\000\000\000\000\000\000\005\249\000\000\003i\003i\020\234\006\181\003i\003i\006\181\000\000\000\000\005\249\000\000\006\181\006\181\000\246\000\000\000\000\000\000\000\000\000\000\000\000\018\226\003i\000\000\000\000\000\000\000\000\028\178\006\181\000\000\000\000\000\000\006\181\003>\002\238\000\000\000\000\002\174\000\000\000\000\000\000\000\000\003&\006\181\006\181\024\194\000\000\006\181\006\181\007\158\000\000\000\000\001\218\000\000\000\000\000\000\000\000\006\181\000\000\003B\000\000\000\000\000\000\000\000\006\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\006\181\003Z\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\226\000\000\000\000\004\"\000\000\000\000\000\000\004&\014-\004.\006j\000\000\006v\014-\000\000\000\000\014-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006z\000\000\014-\000\000\000\000\000\000\014-\000\000\014-\006\130\006\134\000\000\006\202\000\000\005\157\000\000\000\000\000\000\000\000\000\000\014-\000\000\000\000\000\000\000\000\000\000\000\000\014-\000\000\000\000\000\000\000\000\000\000\006\138\000\000\000\000\000\000\nF\000\000\004\162\014-\000\000\000\000\000\000\000\000\014-\014-\006\238\000\000\000\000\000\000\000\000\000\000\003>\002\238\000\000\000\000\002\174\000\000\000\000\000\000\014-\003&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\014-\014-\002\166\003B\014-\014-\000\000\000\000\000\000\007J\000\000\000\000\000\000\000\000\014-\003>\002\238\003N\030f\002\174\003Z\014-\001\198\000\000\003&\000\000\000\000\000\000\002\226\000\000\000\000\004\"\014-\000\000\001\218\004&\000\000\004.\006j\000\000\006v\003B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006z\000\000\000\000\003N\000\000\000\000\003Z\000\000\001\198\006\130\006\134\000\000\006\202\000\000\002\226\000\000\000\000\004\"\000\000\000\000\000\000\004&\000\000\004.\006j\000\000\006v\000\000\000\000\000\000\007j\000\000\000\000\006\138\000\000\000\000\003>\002\238\006z\004\162\002\174\000\000\000\000\000\000\000\000\003&\000\000\006\130\006\134\000\000\006\202\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\000\000\007\001\000\000\000\000\006\138\000\000\000\000\003>\002\238\003N\004\162\002\174\003Z\000\000\001\198\000\000\003&\000\000\000\000\000\000\002\226\007\001\000\000\004\"\000\000\000\000\001\218\004&\000\000\004.\006j\000\000\006v\003B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006z\000\000\000\000\003N\000\000\000\000\003Z\000\000\001\198\006\130\006\134\000\000\006\202\000\000\002\226\000\000\000\000\004\"\000\000\000\000\000\000\004&\000\000\004.\006j\000\000\006v\000\000\000\000\000\000\r\222\000\000\000\000\006\138\000\000\000\000\003>\002\238\006z\004\162\002\174\000\000\000\000\000\000\000\000\003&\000\000\006\130\006\134\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\000\000\r\234\000\000\000\000\006\138\000\000\000\000\003>\002\238\003N\004\162\002\174\003Z\000\000\001\198\000\000\003&\000\000\000\000\000\000\002\226\000\000\000\000\004\"\000\000\000\000\001\218\004&\000\000\004.\006j\000\000\006v\003B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006z\000\000\000\000\003N\000\000\000\000\003Z\000\000\001\198\006\130\006\134\000\000\006\202\000\000\002\226\000\000\000\000\004\"\000\000\000\000\000\000\004&\000\000\004.\006j\000\000\006v\000\000\000\000\000\000\r\246\000\000\000\000\006\138\000\000\000\000\003>\002\238\006z\004\162\002\174\000\000\000\000\000\000\000\000\003&\000\000\006\130\006\134\000\000\006\202\000\000\000\000\000\000\000\254\001\218\000\000\002\242\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000 Z\000\000\000\000\000\000\006\138\000\000\003\158\b\249\b\249\003N\004\162\b\249\003Z\000\000\001\198\000\000\b\249\000\000\003\170\000\000\002\226\000\000\019*\004\"\000\000\020\018\b\249\004&\000\000\004.\006j\000\000\006v\b\249\000\000\027\230\000\000\000\000\020v\000\000\000\000\000\000\000\000\020\142\006z\000\000\000\000\b\249\000\000\000\000\b\249\b\249\b\249\006\130\006\134\000\000\006\202\000\000\b\249\020\150\000\000\b\249\000\000 \n\000\000\b\249\000\000\b\249\b\249\000\000\b\249\000\000\000\000\000\000\020\158\020\218\000\000\006\138\005!\000\000\007\173\b\130\b\249\004\162\000\000\007\173\000\000\000\000\007\173\000\000\000\000\b\249\b\249\000\000\000\000\025\030\000\000\000\000\007\173\000\000\000\000\000\000\007\173\000\000\007\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\249\007\173\000\000\000\000\000\000\000\000\b\249\001\229\007\173\b\254\000\000\000\000\001\229\000\000\000\000\001\229\000\000\000\000\007\173\000\000\000\000\007\173\000\000\000\000\000\000\001\229\007\173\007\173\000\246\001\229\002\025\001\229\000\000\000\000\000\000\002\025\000\000\000\000\002\025\000\000\000\000\000\000\007\173\001\229\000\000\000\000\007\173\000\000\002\025\000\000\001\229\000\000\002\025\000\000\002\025\000\000\000\000\007\173\007\173\000\000\001\229\007\173\007\173\001\229\000\000\000\000\002\025\000\000\001\229\001\229\001\229\000\000\000\000\002\025\000\000\000\000\000\000\000\000\007\173\000\000\000\000\000\000\000\000\002\025\001\229\000\000\002\025\000\000\001\229\000\000\000\000\002\025\002\025\000\000\000\000\000\000\000\000\006\185\000\000\001\229\001\229\000\000\006\185\001\229\001\229\006\185\000\000\002\025\000\000\020\246\000\000\002\025\000\000\000\000\000\000\006\185\000\000\000\000\000\000\006\185\001\229\006\185\002\025\002\025\000\000\001\229\002\025\002\025\000\000\000\000\000\000\000\000\000\000\006\185\000\000\000\000\002\025\000\000\000\000\014-\006\185\000\000\000\000\002\025\014-\000\000\000\000\014-\024\158\000\000\006\185\000\000\000\000\006\185\002\025\000\000\000\000\014-\006\185\006\185\000\246\014-\000\000\014-\000\000\000\000\000\000\000\000\000\000\005\157\000\000\000\000\000\000\000\000\006\185\014-\000\000\000\000\006\185\000\000\000\000\000\000\014-\000\000\000\000\000\000\000\000\000\000\000\000\006\185\006\185\000\000\000\000\006\185\006\185\014-\000\000\000\000\000\000\000\000\014-\014-\000\000\006\185\000\000\000\000\000\000\000\000\000\000\r\229\006\185\002\238\r\229\000\000 \018\000\000\014-\000\000\000\000 \022\000\000\006\185\r\229\000\000\000\000\000\000\000\000\000\000\r\229\000\000\000\000\014-\014-\002\166\000\000\014-\014-\000\000\000\000\000\000\r\229\000\000\000\000\000\000\000\000\014-\000\000\r\229\000\000\030\158\000\000\000\000\014-\001\n\000\000\001\198\000\000\r\229\001\210\002\170\r\229\000\000\002\174\014-\000\000\r\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \026\000\000\000\000\000\000\001\218\002\178\001\238\002\186\r\229\000\000\000\000\000\000\r\229\000\000\001\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \030\r\229\r\229\000\000\000\000\r\229\002\190\002\198\002\206\000\000\000\000\000\000\002\218\000\000\002\226\004J\004V\000\000\000\000\000\000\000\000\024v\r\229\024z\000\000\004\229\000\000\000\000\000\000\000\000\004\229\000\000\000\000\004\229\000\000\000\000\000\000\000\000\004f\000\000\000\000\000\000\000\000\004\229\000\000\001\210\001\214\004\229\006\134\004\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\134\000\000\000\000\004\229\000\000\000\000\001\218\002\178\001\238\000\000\004\229\000\000\000\000\001y\000\000\000\000\001\250\024\138\001y\022*\004\229\001y\000\000\004\229\000\000\000\000\000\000\000\000\004\229\003\018\002\222\001y\023\130\001y\022\162\001y\002\218\001y\002\226\004J\004V\000\000\000\000\000\000\004\229\023\146\000\000\000\000\004\229\001y\000\000\000\000\000\000\000\000\000\000\000\000\001y\000\000\000\000\004\229\004\229\000\000\004f\004\229\004\229\000\000\000\000\000\000\000\000\001y\000\000\000\000\000\000\b\174\001y\001y\000\246\000\245\000\000\000\000\004\229\000\000\000\245\000\000\000\000\000\245\000\000\000\000\000\000\000\000\001y\004\229\000\000\000\000\000\000\000\245\000\000\000\000\000\000\000\245\000\000\000\245\000\000\000\000\000\000\001y\001y\001y\000\000\001y\001y\000\000\000\000\000\245\000\000\000\000\000\000\000\000\000\000\000\000\000\245\000\000\000\000\000\249\000\000\000\000\001y\000\000\000\249\000\000\000\245\000\249\000\000\000\245\000\000\000\000\000\000\001y\000\245\000\245\000\246\000\249\000\000\000\000\000\000\000\249\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\245\000\000\000\000\000\000\000\245\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\249\000\000\000\000\000\245\000\245\000\000\000\000\000\245\000\245\000\000\000\249\000\000\000\000\000\249\000\000\000\000\000\000\000\000\000\249\000\249\000\246\000\000\001\210\002\170\000\245\000\000\002\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\249\000\245\000\000\000\000\000\249\000\000\000\000\001\218\002\178\001\238\000\000\000\000\000\000\000\000\000\000\000\249\000\249\001\250\000\000\000\249\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\002\198\002\206\000\000\000\000\000\249\002\218\000\000\002\226\004J\004V\000\000\000\000\000\000\000\000\024v\000\249\030J\000\000\007\169\000\000\000\000\000\000\000\000\007\169\000\000\000\000\007\169\000\000\000\000\000\000\000\000\004f\000\000\000\000\000\000\000\000\007\169\000\000\000\000\000\000\007\169\006\134\007\169\000\000\000\000\006\173\000\000\000\000\000\000\000\000\006\173\030V\000\000\006\173\007\169\000\000\000\000\000\000\000\000\000\000\020\198\007\169\000\000\006\173\000\000\000\000\000\000\006\173\024\138\006\173\000\000\007\169\000\000\000\000\007\169\000\000\000\000\000\000\000\000\007\169\007\169\006\173\000\000\000\000\000\000\000\000\000\000\000\000\006\173\000\000\000\000\000\000\000\000\000\000\000\000\007\169\000\000\000\000\006\173\007\169\000\000\006\173\000\000\000\000\000\000\000\000\006\173\006\173\000\000\000\000\007\169\007\169\020&\000\000\007\169\007\169\000\000\000\000\000\000\000\000\000\000\000\000\006\173\000\000\000\000\000\000\006\173\006\001\b\130\000\000\000\000\007\169\006\001\000\000\000\000\006\001\000\000\006\173\006\173\000\000\000\000\006\173\006\173\000\000\000\000\006\001\000\000\000\000\000\000\006\001\000\000\006\001\000\000\000\000\000\000\000\000\r\149\000\000\006\173\000\000\000\000\r\149\000\000\006\001\r\149\000\000\000\000\000\000\000\000\000\000\006\001\b\254\000\000\000\000\r\149\000\000\000\000\000\000\r\149\000\000\r\149\000\000\000\000\006\001\000\000\000\000\000\000\000\000\006\001\006\001\000\246\000\000\r\149\000\000\000\000\000\000\000\000\000\000\000\000\r\149\000\000\000\000\000\000\000\000\006\001\000\000\000\000\000\000\000\000\r\149\000\000\000\000\r\149\000\000\000\000\000\000\000\000\r\149\000\000\006\001\006\001\000\000\000\000\006\001\006\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\149\011~\000\000\000\000\r\149\003>\002\238\006\001\000\000\002\174\000\000\000\000\000\000\000\000\003&\r\149\r\149\000\000\000\000\r\149\r\149\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003B\000\000\000\000\000\000\000\000\r\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003N\000\000\012b\012\134\004\189\001\198\000\000\000\000\000\000\004\189\000\000\002\226\004\189\000\000\004\"\000\000\000\000\000\000\004&\000\000\004.\000\000\004\189\006v\000\000\000\000\004\189\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\181\006z\000\000\000\000\000\000\004\181\004\189\000\000\004\181\000\000\006\130\006\134\000\000\004\189\000\000\000\000\000\000\000\000\004\181\000\000\000\000\000\000\004\181\004\189\004\181\000\000\004\189\000\000\000\000\000\000\000\000\004\189\000\000\000\000\006\138\000\000\004\181\000\000\000\000\000\000\004\162\000\000\000\000\004\181\000\000\000\000\000\000\004\189\000\000\000\000\000\000\004\189\000\000\004\181\000\000\000\000\004\181\000\000\000\000\000\000\000\000\004\181\004\189\004\189\004\213\000\000\004\189\004\189\000\000\004\213\000\000\000\000\004\213\000\000\000\000\000\000\000\000\004\181\000\000\000\000\000\000\004\181\004\213\004\189\000\000\000\000\004\213\000\000\004\213\000\000\004\165\000\000\004\181\004\181\020N\004\165\004\181\004\181\004\165\000\000\004\213\000\000\000\000\000\000\000\000\000\000\000\000\004\213\004\165\000\000\000\000\000\000\004\165\004\181\004\165\000\000\000\000\004\213\000\000\000\000\004\213\000\000\000\000\000\000\023B\004\213\004\165\000\000\000\000\000\000\000\000\000\000\000\000\004\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\213\000\000\004\165\000\000\004\213\004\165\000\000\000\000\000\000\000\000\004\165\000\000\000\000\000\000\000\000\004\213\004\213\000\000\000\000\004\213\004\213\000\000\000\000\000\000\000\000\000\000\004\165\000\000\007V\000\000\004\165\000\000\000\000\000\000\001\210\001\214\004\213\000\000\000\000\000\000\000\000\004\165\004\165\000\000\000\000\004\165\004\165\024:\002\194\000\000\000\000\000\000\000\000\001\218\001\222\001\238\000\000\000\000\000\000\000\000\000\000\000\000\004\165\001\250\000\000\000\000\000\000\000\000\011\006\000\000\000\000\002\002\000\000\027\186\001\210\001\214\000\000\001\254\002\198\002\206\000\000\000\000\000\000\002\218\000\000\002\226\004J\004V\000\000\000\000\004*\000\000\004b\001\218\002\178\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\000\000\000\000\000\000\000\000\000\000\004f\000\000\002\002\000\000\000\000\000\000\000\000\004\229\001\254\002\198\002\206\000\000\004\229\000\000\002\218\004\229\002\226\004J\004V\000\000\000\000\000\000\000\000\004b\000\000\004\229\000\000\000\000\000\000\004\229\018J\004\229\b]\000\000\000\000\b]\000\000\000\000\000\000\000\000\004f\000\000\000\000\004\229\000\000\000\000\000\000\000\000\000\000\000\000\004\229\b]\b]\000\000\b]\b]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\229\000\000\000\000\000\000\bM\004\229\003\018\bM\000\000\000\000\000\000\000\000\000\000\b]\004\158\000\000\004\162\000\000\000\000\000\000\000\000\004\229\000\000\bM\bM\000\000\bM\bM\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\004\229\004\229\000\000\000\000\004\229\004\229\000\000\000\000\011\018\000\000\000\000\b]\bM\000\000\001\210\001\214\r~\000\000\000\000\000\000\000\000\004\229\000\000\000\000\000\000\000\000\024\158\b]\000\000\b]\000\000\000\246\004\197\001\218\001\222\001\238\000\000\004\197\000\000\000\000\004\197\b]\000\000\001\250\006\234\b]\bM\000\000\000\000\b]\004\197\b]\000\000\000\000\004\197\b]\004\197\001\254\002\198\002\206\000\000\000\000\bM\002\218\bM\002\226\004J\004V\004\197\000\000\000\000\000\000\004b\000\000\000\000\004\197\007F\004\173\000\000\006\234\bM\000\000\004\173\000\000\bM\004\173\bM\000\000\004\197\004f\bM\000\000\000\000\004\197\000\000\004\173\000\000\000\000\000\000\004\173\000\000\004\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\197\000\000\000\000\000\000\004\173\000\000\000\000\000\000\000\000\000\000\000\000\004\173\000\000\004\221\000\000\004\197\004\197\000\000\004\221\004\197\004\197\004\221\000\000\000\000\004\173\000\000\000\000\000\000\000\000\004\173\000\000\004\221\000\000\000\000\000\000\004\221\004\197\004\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\173\000\000\021\150\000\000\004\221\000\000\000\000\000\000\000\000\000\000\000\000\004\221\000\000\004\249\000\000\004\173\004\173\000\000\000\254\004\173\004\173\002\242\000\000\000\000\004\221\000\000\000\000\000\000\000\000\004\221\000\000\003\154\000\000\007}\007}\004\249\004\173\003\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\221\000\000\023\206\000\000\003\170\000\000\000\000\007}\007}\007}\000\000\020\018\000\000\000\000\000\000\004\221\004\221\007}\000\000\004\221\004\221\027\230\000\000\000\000\020v\000\000\000\000\000\000\000\000\020\142\000\000\007}\007}\007}\000\000\000\000\004\221\007}\000\000\007}\007}\007}\000\000\000\000\000\000\020\150\007}\024b\014\237\014\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\158\020\218\000\000\007}\004\249\004\249\000\000\014\237\014\237\014\237\b\150\000\000\000\000\000\000\000\000\000\000\000\000\014\237\011\018\000\000\000\000\025\030\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\014\237\014\237\014\237\000\000\000\000\000\000\014\237\000\000\014\237\014\237\014\237\000\000\001\218\002\178\001\238\014\237\005\254\000\000\000\000\000\000\000\000\000\000\001\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\237\000\000\000\000\004\237\001\254\002\198\002\206\000\000\000\254\000\000\002\218\002\026\002\226\004J\004V\000\000\000\000\000\000\000\000\004b\000\000\021\026\000\000\000\000\000\000\004\237\000\000\003\158\000\000\000\000\000\000\000\000\001\210\001\214\025\218\000\000\004f\000\000\000\000\021\030\000\000\000\000\000\000\000\000\000\000\000\000\021F\000\000\000\000\000\000\000\000\001\218\001\222\001\238\000\000\000\000\000\000\000\000\000\000\020v\000\000\001\250\000\000\000\000\020\142\000\000\000\000\000\000\001\210\001\214\026:\000\000\000\000\000\000\000\000\001\254\002\198\002\206\000\000\000\000\020\150\002\218\000\000\002\226\004J\004V\000\000\001\218\001\222\001\238\004b\000\000\000\000\000\000\000\000\020\158\021\222\001\250\000\000\004\237\004\237\000\000\000\000\001\210\001\214\000\000\000\000\004f\000\000\000\000\000\000\001\254\002\198\002\206\000\000\000\000\021\238\002\218\000\000\002\226\004J\004V\001\218\002\178\001\238\000\000\004b\000\000\000\000\000\000\001\210\001\214\001\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004f\000\000\000\000\001\254\004\182\002\206\001\218\002\178\001\238\002\218\000\000\002\226\004J\004V\000\000\000\000\001\250\000\000\004b\000\000\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\001\254\004\194\002\206\000\000\000\000\004f\002\218\000\000\002\226\004J\004V\001\218\002\178\001\238\000\000\004b\000\000\000\000\000\000\001\210\001\214\001\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004f\000\000\000\000\001\254\005Z\002\206\001\218\002\178\001\238\002\218\000\000\002\226\004J\004V\000\000\000\000\001\250\000\000\004b\000\000\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\001\254\005\150\002\206\000\000\000\000\004f\002\218\000\000\002\226\004J\004V\001\218\002\178\001\238\000\000\004b\000\000\000\000\000\000\001\210\001\214\001\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004f\000\000\000\000\001\254\005\174\002\206\001\218\002\178\001\238\002\218\000\000\002\226\004J\004V\001\210\001\214\001\250\000\000\004b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\254\005\198\002\206\001\218\001\222\004f\002\218\000\000\002\226\004J\004V\000\000\000\000\000\000\000\000\004b\000\000\000\000\018^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\004j\000\000\000\000\004f\002\218\000\000\002\226\004J\004V\000\000\000\000\000\000\000\000\004b\000\000\018f\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\210\001\214\000\000\004f\000\000\000\000\000\000\018\182\001\218\002\178\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\001\218\002\178\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\000\000\000\000\001\254\029\146\002\206\000\000\001\210\001\214\002\218\000\000\002\226\004J\004V\001\254\029\190\002\206\000\000\004b\000\000\002\218\000\000\002\226\004J\004V\000\000\001\218\002\178\001\238\004b\000\000\000\000\000\000\000\000\000\000\004f\001\250\000\000\000\000\000\000\000\000\000\000\001\210\001\214\000\000\000\000\004f\000\000\000\000\000\000\001\254\029\214\002\206\000\000\001\210\001\214\002\218\000\000\002\226\004J\004V\001\218\002\178\001\238\000\000\004b\000\000\000\000\000\000\000\000\000\000\001\250\000\000\001\218\002\178\001\238\000\000\000\000\000\000\000\000\000\000\000\000\004f\001\250\000\000\001\254\029\238\002\206\000\000\001\210\001\214\002\218\000\000\002\226\004J\004V\000\000\001\254\030\018\002\206\004b\001\210\001\214\002\218\000\000\002\226\004J\004V\001\218\002\178\001\238\000\000\004b\000\000\000\000\000\000\000\000\004f\001\250\000\000\001\218\002\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004f\000\000\000\000\001\254\030:\002\206\000\000\000\000\000\000\002\218\000\000\002\226\004J\004V\000\000\002\222\000\000\029F\004b\001\210\001\214\002\218\000\000\002\226\004J\004V\000\000\000\000\000\000\000\000\004b\000\000\000\000\000\000\000\000\004f\000\000\000\000\001\218\002\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004f\000\000\000\000\029r\000\000\000\000\018\198\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\004j\001\210\001\214\029^\002\218\000\000\002\226\004J\004V\001\218\002\178\000\000\000\000\004b\000\000\000\000\000\000\000\000\000\000\000\000\001\218\002\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004f\000\000\000\000\002\222\018\206\029F\000\000\001\210\001\214\002\218\000\000\002\226\004J\004V\002\222\000\000\029F\000\000\004b\000\000\002\218\000\000\002\226\004J\004V\000\000\001\218\002\178\000\000\004b\000\000\000\000\000\000\000\000\000\000\004f\000\000\000\000\005m\000\000\000\000\000\000\001\210\001\214\000\000\000\000\004f\000\000\000\000\005q\005\002\005z\004j\001\210\001\214\029^\002\218\000\000\002\226\004J\004V\001\218\002\178\000\000\000\000\004b\029^\000\000\000\000\001\210\001\214\000\000\001\218\002\178\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004f\000\000\000\000\002\202\000\000\004j\001\218\002\178\000\000\002\218\000\000\002\226\004J\004V\005~\000\000\004j\000\000\004b\000\000\002\218\000\000\002\226\004J\004V\000\000\000\000\000\000\000\000\004b\029\166\000\000\004j\000\000\000\000\004f\002\218\000\000\002\226\004J\004V\000\000\000\000\000\000\000\000\004b\004f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004f")) + ((16, "ENT\004F@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\204F@\000\000\000\000\020\214F@EN\022&\000K\001\234n8\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\222\003\"\000_\000\000\000\168\002\170\000\000\004|\002V\003\128\000\000\002:\002l\004\166\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003p\000\000\000\000\000\000\003B\159\146\000\000\000\000\000\000\004>\000\000\000\000P<\005N\004\236\000\000\000\000\158\176G\200\020\214C*n\174\020\214\162\164Q8\020\214F\240\000\000\003&\000\000F\240\005\"\000\000E6\000\000\022h\000\000\000\000\004\246\000\000\004>\000\000\002\198\004>\000\000\000\000\000\000\000\000\020\214\000\000\000\000\004n\000\000E6\000\000\000\000\004\246\000\156\005\146\140@W\140\151\142zh\000\000\004>\000\000\153\196\158\176\000\000\166\194\158\176Jbqz\158\176\165\162\161(\158\176F@EN\000\000\000\000Q8\020\214M,F\240\005\184\140@\145n\000\000\152\022F@ENT\004\020\214\000\000\000\000\016\222R.\020xU\192]b\000\000\000\"\000\000\000\000\001 \000\000\000\000J\144\000\"\021n\005\152\000*\000\000\000\000\002<\000\000C*\007X\007~\020\214\026\184\020\214ENEN\000\000\000\000\000\000R\172HJ\020\214\026\184O\236\020\214\000\000\022N\000\156\005\242\000\000\007\154\006\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000T\004\020\214\000\000Cf\142\"EN\000\000\000\254\000\000]bm,m,\000\000\005\242\000\000\004\026\000\000\000\000E\248w\230S\018qz\166\236\158\176[\250\000\000w\230[\250\000\000w\230\158\198\006\240\000\000\006\172\004\250\000\000\003\162\000\000\bh\000\000\000\000\b\178\000\000\000\000\000\000w\230\004>\000\000_&\163\026\166\194\000\000_\172\163`\166\194`2\000\000\\r|^\000\000\007@\b\236\000\000\000\000T\238\006\240\000\000\000\000\000\000U\234|^V\230`\184\000\000\145\152\158\176\000\000\005l\b\252\006\240\000\000\000\000w\230\000\000\006\190\000\000l<\t\138\004>\000\000\0218\004>\000\000|^\024d|^\n\206\000\000\t\250w\230\001*\n\174\163\150\166\194a>a\196\000\000Q\n|^\011\016\000\000\bf\000\000w\230\b\186\167<\158\176\024\148w\230\003F\012N\163\220\166\194bJb\208\000\000\012\150\164\018\166\194cVc\220\000\000\r\002\164X\166\194dbd\232\000\000en\000\000\000\000\000\000\000\026\000\000w\230\000\000\020L\161\158\000\000w\230\005\252w\230B\192\000\000G\196\000\000\001\006\003x\000\000\r\"w\230\0060\000\000\007d\000\000\005@\000\000\000\000\005\218\000\000\000\000\000\000\025\162w\230\006 \r\214\164\142\166\194e\244fz\000\000\r\224\164\212\166\194g\000g\134\000\000\014\146\165\n\166\194h\012h\146\000\000\029\190\023\006]bT\004\020\214]b\000\000\006\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000R\028Mh\000\000\000\000\000\000\002\000\015\200m,\000\000\000\000T\016\020\214]b\000\000\000\000]\176]bo\232\145\228\000\000r\218\000\000]b\000\000\000\000^TOH\007\218\007\218\000\000\015h]b\000\000\000\000\000\000\001 \015\202\000\000C2\000\000\000\000\146p\000\000\159>w\230\000\000\td\000\000\000\000\146\222\000\000\159P\006\196\000\000\000\000\000\000\000\000\016V\000\000N6\000\000\000\000\146p\000\000\002\b\000\000\000\000D\254\140\216\000\000\000\000F\130\023\248\027\156\026\158\000\000\000\000\000\000\000\000\bT\000\000\000\000m\012\b\192\t4\t4\023h\159\146\029\030w\230\t\144\nb\016v\000\000\016\210\000\000\000\000\t\142\t\214\t4\007\242\000\000T\004S\210HJ\020\214\026\184\000K\t\190\011\140\000\000\0166C*C*\000K\t\190\t\190C*\000\000\127\146\b\002F\240\005\242\nX\161\180\000\000w\230z\232w\230qP{hw\230\b\146w\230{\232\000\000\n\138\t\234\n\130C*\128\018\000\000\b\224\000\252n\226\000\000\000\000\000\000\000\000C*\128\146C*\129\018\000\224\004\250q\246\006\148\004\250r|\000\000\129\146\b\002\000\000\000\000\000\000\021\162\000\000\000\000\000L\000\000\t\222\026\184\000\000o\168O\236\000\000\024B\000\000\000\000C*\028\168\000\000\000\000\000\000\000\000m\202\000\000\tb\000\000Z\208\011v\007@\000\000\022\192V`T\004\020\214I\nT\004\020\214\016\222\016\222\000\000\000\000\000\000\000\000\001\252\023pDZ\000\000W\216X\146Rl\020\214\026\184\011|\\\164\000\000\001J\000\000YLZ\006\147n\023Rw\230\t\166\000\000T\004\020\214\000\000T\022\020\214m,]b\0240\000\000T\004\020\214\142\156\002\160\000\000]b]bDH\159\146\030\000w\230\n\142\012^\007\242\017T\000\000\007\242\017\128\000\000\000\000\000\000J\144\n\140\017H\017\000\004>\017\192\000\000\000\000\021\252\004>\017\208\135J\000\000T\016\020\214]b\027J\000\000T\004\020\214\016\222\022\192\016\222\002\250\016\198\000\000\000\000\016\222\n\236\017\160\007\192\158\198\000\000\028\192\161\252\000\000\022lw\230\029<\017\232\000\000\000\000\017\174\000\000\016\222\003\248\017\214\000\000\017\196\000\000\006j\000\000\000\000\026\184\000\000\017\220\023\190\000\000\000\000\000\000\000\000\004b\000\000\000\000\027\182\000\000\028\180\000\000\029\178\000\000\018\218\024\188\000\000\000\000\000\000F@\000\000\000\000\000\000\000\000\030\176\000\000\031\174\000\000 \172\000\000!\170\000\000\"\168\000\000#\166\000\000$\164\000\000%\162\000\000&\160\000\000'\158\000\000(\156\000\000)\154\000\000*\152\000\000+\150\000\000,\148\000\000-\146\000\000.\144\000\000/\142\000\0000\140\000\0001\138\020\214\140\216\001\234\130*K\130\011\138\026\218\004>\018\024\130\182Lt\011\208\027\\\004>\018*\130\182\155\248OH]b\025\020\000\000\004\182\004>\000\000|^\025~|^\018:\000\000\030\028w\230\006\220\000\000H\194\162D\030\148w\230\007\030\000\000\000\000\000\000\000\000\017\190\000\000\000\000\000\000\000\000\130\182\000\000\000\000\000\000\018X\130\182\000\000\023\162\000\000\000\000]b\018b\000\000KT\162D\030\174w\230\b\216\000\000\000\000\018\132\131B\000\000\000\000\017\246\000\000\000\000\000\000\000\000\131B\000\000\159\146\031\026w\230\n\164\000\000\000\000\018\018\000\000\000\000\000\000Mh\159\146\0120\018\022w\230\011|\000\000\000\000\031\130w\230\011\140\000\000\000\000\018*\000\000\000\000\000\000\025Nw\230\011\148\000\000\000\000\029F\000\000\000\000\147\220\000\000\030D\148(\000\000\031B\148\186\000\000 @\007\194\000\000\000\000\000\000\000\000!>]b\"<\000\000\135\198\135\198\000\000\000\000\000\0002\136\000\000\011\244\000\000\000\000\000\000\012^\000\000\000\000\011\204\024\174\000\000\tt\000\000\000\000pPI\n\000\000\000\000\012\190\000\000\000\000\000\000\012\218\000\000\000\000\000\000\016\222\004\246\025N\000\000\r\030\000\000\005\244\000\0003\134\000\000\r\144\000\000\006\242\000\0004\132\000\000\r\002\000\000\007\240\000\0005\130\018\194\000\000\r\216\b\238\000\0006\128\000\000\r\236\t\236\000\0007~\000\000\014\006\n\234\000\0008|\012n\025\188\000\000\014j\011\232\000\0009z\000\000\r\240\012\230\000\000:x\000\000\014\214\r\228\000\000;v\014\226\000\000\018\212\135J|^\029v\000\000\000\000\135J\000\000\000\000\018\220\135J\000\000\000\000\018\230\135J\000\000\135J\000\000\018\186\000\000\000\000\000\000\000\000\000\000\000\000=r]b\000\000\000\000\019\016\000\000>p\000\000?n\000\000#:\000\000\000\000\005\006\000\000\000\000]b\000\000\000\000\143\"\015\026\000\000\000\000I\196\000\000\014H\000\000\000\000pPT\016\020\234\000\000\135\198\000\000\000\000\000\000T\016\020\214]bH\194\000\000s\014\000\000s\014\000\000s\208\000\000\000\000\000\000\000\000[\154\000\000\015\128\000\000\000\000|ZT\016\022\022\000\000|\228\000\000\000\000\000\000\000\000\000\000\011v\014\144\000\000\000\000\022\192\024\160\005\242\000\000B\186\000\000\025\002\026\242\026\240\000\000\000\000\015X\000\000\000\000\001d\024nZ\156\000\000\025\186\000\000\005|\000\000\000\000\015\212\000\000\000\000|\228\001(\012L\000\000\000\000\014\230\000\000\000\000\015\184\000\000\000\000|Z\000\000\000\000\020\214\026\184\n`\000\000\000\000\021n\005\152\000*\012\250\026\184\143bC*\002\166\026\184\143\232\018\146\000\000\000\000\012\250\000\000D\"\020\154\029\240\000\000\000!\019\018\000\000\019\018\003\226|^|^t$\003\242\000\000\000\000\000\000\018\234\018\128\159\146\031\134w\230\022x\020\176\016^\020\176\000\000B\136\019J\000\000\025r\000\000\000\000|^t\242\019^\166(|^u |^u\238v\028\000\000}\132\140\\\161(R\\|^\019\\Q,\031\146|^\019.|^\131\196v\234\0190|^\132Dw\024\012\238\018\238\000\000\000\000\000\000\020\214\149\006\000\000\140\216\135\198\000\000\000\000\019p\000\000\007\242\019|\000\000\000\000\000\000@l\000\000\000\000\015F\000\000\000\000pP\000\000\000\000Rl\020\214\026\184\0314\000\000^\146\000\000\002H\000\000\023\180\000\000\000\000\019\130\000\000\019\174m,Aj}\240\000\000\000\000^\200\000\000\005B\000\000o\200\000\000\029\190\000\000C*\006@\000\000\135\198\000\000\020\214\026\184\135\198\000\000$\202\022N\000\156\004>\154LC*\149\164\135\198\000\000\020x\000*\000*\012\250\135\198\156\\\005\152\000*\012\250\135\198\156\\\000\000\000\000\012\250\135\198\000\000F@EN]b\025.\000\000\000\000F@ENPn\000\000\022&\000K\001\234\018\236\159\146\031\150w\230\136\170\019\018\019\190\154\130\000\000\135\198\000\000\137*D\"\020\154\029\240\141l\030\238\001\200\149\248\016H\019\002\020\214\135\198\000\000\020\214\135\198\000\000w\230\162\164\019\254\003\238\000\156\004\250\156\208\000\000\000\156\004\250\156\208\000\000%\024\022N\000\156\004>\157*C*\135\198\000\000\020x\r\134\023d\011\136\000\000\156\208\000\000\000*\019\004C*\135\198\1606\005\152\000*\019\nC*\135\198\1606\000\000\000\000\r\248\000\000\135\198\000\000C*\155&\135\198\000\000\nZ\000\000D\"\020\154\029\240\137\170D\"\026\136\020\154\028&\000\000\r\204E6\000\000\012\204\000\000E6\000\000\019\142\019>Kb\020xZ\030w\230\n,\000\000M,\000\"\006L\011T\000\000\015\134\000\000\019\156\0190w\230N\240\000\000\020\196\026p\016\154\000\000\016(\000\000\019\188\019F\159\146N\240\000\000\020\154Kb\019\224\020x\000\156\000\000\0034Kbw\230\r\188\006\240\000\000w\230\002\224\003\222\000\000\000\000\132\196\000\000\000\000\r\188Kb\133DN\240\000\000\020\214w\230\014\142w\230E\156N\240\000\000\r4\000\000\000\000N\240\000\000\000\000M,\000\000\135\198\157\132\020\154\028&\r\204\019\198\019|Kb\135\198\157\132\000\000\000\000\020\154\028&\r\204\019\214\019d\1522~\144|^\019\244\1522\158\198\0228\019\246\1522|^\020\006\1522\011\162\012\170\133\202\134J\000\000\152r\000\000\000\000\135\198\160H\020\154\028&\r\204\020\016\019\168\1522\135\198\160H\000\000\000\000\000\000\162\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\135\198\000\000G\200\020\214C*\135\198\000\000\157\248\020\162F\240\020:\140@\145n\000\000\152\022\157\248\000\000\000\000\000\000\160\138\020\162F\240\020>\0158\019\252\151\142\158\198\003\242\020\228\000\000\000\000\134\204\137\170\020\214\000\000\150&\029\240\000\000\000\000\152\022\160\138\000\000\000\000\000\000\144\022I\208G\b\003\242\021:\000\000\000\000\000\000\137\170\020\214\000\000\003\242\021d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\148D\"\020\154\028&\r\204\021.\138 J\144N\006\020xU\192HP\000\"\000\"\r0\000\000\0218\t\182\000\000\000\000\020\240\000\000\000\000N\240\000\000\007J\015\002\000\000\017$\000\000\021N\020\214w\230L\028\021X\n\180\000\000\000\000\021\004\000\000\000\000\020\196\006\220\017\028\000\000\021\140\138\172\162D\0120\021(w\230\016r\000\000\000\000\021L\000\000\000\000\000\000N\240\000\000\028\148\017\152\000\000\0176\000\000\021\168\0210\159\146\000\000\021\210\1398\162\210\0120\021nw\230\017p\000\000\000\000\021\132\000\000\000\000\000\000\020\214\000\000N\240\000\000\020\248\020\154N\006N\006\139\190F@\020\214\149\006\140\216\002\178\000\000\021(\000\156\000\000\016\026N\006w\230\014\200\005\242\000\000\020\214\138 \138 N\006\015LN\006\000\000G,H\024\000\000xb\000\000\000\000x\226\000\000\000\000yb\000\000\016FN\006y\226\149\006\140\216\002\178\000\000\007\188\000\000\000\000\1522\017d\000\000\000\000K*\021\226\000\000N\240\000\000N\006K*N\240\000\000\020\214w\230N\240\000\000\015\146\000\000\000\000N\240\000\000\000\000HP\000\000\152\242\1522\021\180N\006\153N\138 \000\000\135\198\158\n\020\154\028&\r\204\022\012\138 \135\198\158\n\000\000\000\000\000\000\161\012T\004\000\000\000\000\000\000\000\000\000\000\000\000\155`\135\198\000\000HJ\020\214\026\184\135\198\000\000\157\248\000\000\000\000\000\000\000\000\135\198\161\012\000\000\022J\000\000\000\000\155`\022^\000\000\135\198\161\012\000\000\000\000\016\144\000\000\000\000\127\018\030\188\000\000\000\000\027\016\000\000w\230\016\012\000\000HP\017\142\000\000\000\000\022\148\144\226\000\000Bh\022v\000\000\000\000\022nF\174KN\029\240\141Z\030\238\020\214\000\000\135\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\141d\030\238\020\214\000\000\015\164\140@\145n\000\000\152\022\000\000\022\150F\174KN\135\198\000\000\022\172\000\000\031\152w\230\017\n\022\138\165P\166\194i\024i\158\000\000\027\196\159\146\004\162\b\030\020\214\166H\000\000\000\000\028\\\166r\000\000\000\000\022L\000\000\031\172w\230\018\b\022\160\165\134\166\194j$j\170\000\000\017\140\000\000\031\174w\230\018`\022\178\165\204\166\194k0k\182\000\000\022\188\003\242\023\b\000\000\000\000\150\172\000\000\000\000\151\142\000\000\152\022\000\000\023\012F\174Od\156\208\000\000\000\000\000\000\000\000\016\162\140@\144\244\151\142\000\000\152\022\000\000\023\"F\174Od\156\208\000\000\018\140\000\000\000\000\b<\000\000\135\198\000\000\0238\000\000\000\000\022\152\000\000\022\160\000\000\022\176\000\000\000\000U\030\022\202\000\000\000\000\026\246n8\023n\000\000\000\000\000\000\015\154\000\252p\218\023\138\000\000\000\000\000\000\000\000\000\000\000\000\023\012\000\000\030\238\000\000\023\026\000\000w\230\000\000\000v\000\000\000\000\023 \000\000\000\000\004\250\000\000\r\226\000\000\000\000\000\000\017\218\000\000\026\184\000\000\011|\000\000C*\000\000\002\166\000\000\t\234\000\000\0236\000\000]b\025.\000\000\000\000\007\146\023J\000\000\000\000\023@\b\144I\n\004>\151.\000\000\000\000\000\000\000\000\000\000z\188\000\000\000\000\023\236\000\000S>\000\000\016\198\023\238\000\000\023\254\000\000I\196I\196\148\224\148\224\000\000\000\000\135\198\148\224\000\000\000\000\000\000\135\198\148\224\023t\000\000\023\156\000\000"), (16, "\nY\nY\000\006\nY\002\202\nY\002\246\002\250\nY\003*\002\182\nY\004\149\nY\004\149\0036\nY\007u\nY\nY\nY\004\149\nY\nY\nY\001\218\000\246\003~\003\130\003:\nY\003\178\003\182\012\130\nY\006F\nY\007u\003>\t2\0012\003\214\021\142\nY\nY\004\002\004\006\nY\004\n\004\022\004\"\004&\004.\b\234\001r\nY\nY\002\238\t\246\004\149\004\030\nY\nY\nY\nF\nJ\nV\nj\004\149\007&\nY\nY\nY\nY\nY\nY\nY\nY\nY\n\222\000\246\nY\t\174\nY\nY\004\149\003V\n\234\011\002\011\138\0072\0076\nY\nY\nY\019\134\nY\nY\nY\nY\004\149\000\246\017b\nY\001z\nY\nY\003Z\nY\nY\nY\nY\nY\nY\007:\n^\nY\nY\nY\nv\004\194\011\158\000\246\nY\nY\nY\nY\014\225\014\225\004\149\014\225\006J\014\225\t\146\014\225\014\225\026\178\014\225\014\225\014\225\014\225\000\246\014\225\014\225\007\129\014\225\014\225\014\225\n1\014\225\014\225\014\225\014\225\n!\014\225 \147\014\225\014\225\014\225\014\225\014\225\014\225\014\225\014\225\007\129\014\225\t2\018\242\014\225\005\158\014\225\014\225\014\225\014\225\014\225 N\014\225\001\230\014\225\001\157\014\225\004*\014\225\014\225\014\225\n\190\004\149\014\225\014\225\014\225\014\225\014\225\014\225\014\225\000\246\014\225\014\225\014\225\014\225\014\225\014\225\014\225\014\225\014\225\014\225\014\225\t\186\014\225\014\225\t\174\014\225\014\225\000\246\003b\t\194\n!\014\225\014\225\014\225\014\225\014\225\014\225\t\198\014\225\014\225\014\225\014\225\014\225\000\246\014\225\014\225\n1\014\225\014\225\003f\014\225\014\225\014\225\014\225\014\225\014\225\014\225\014\225\014\225\014\225\014\225\014\225\014\225\002\202\n!\014\225\014\225\014\225\014\225\001\157\001\157\001\157\001\157\001\157\001\157\bV\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\018\190\001\157\bZ\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\t2\001\n\001\157\001\198\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001n\001\157\003\138\001\157\003m\001\157\001\157\001\157\020\238\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\138\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\154\001\157\001\157\t\174\001\157\001\157\007\226\t2\007A\011\018\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\000\246\n\142\001\157\007j\001\157\001\157\007A\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\001\157\004\149\001\157\001\157\001\157\001\157\001\157\011\153\011\153\t\174\011\153\011\022\011\153\011N\011\153\011\153\t\217\011\153\011\153\011\153\011\153\001~\011\153\011\153\003\142\011\153\011\153\011\153\000\246\011\153\011\153\011\153\011\153\003\"\011\153\014\165\011\153\011\153\011\153\011\153\011\153\011\153\011\153\011\153\000\246\011\153\001n\003m\011\153\004\173\011\153\011\153\011\153\011\153\011\153\014\165\011\153\000\246\011\153\019V\011\153 \227\011\153\011\153\011\153\005\234\001\190\011\153\011\153\011\153\011\153\011\153\011\153\011\153\007I\011\153\011\153\011\153\011\153\011\153\011\153\011\153\011\153\011\153\011\153\011\153\001\194\011\153\011\153\004\149\011\153\011\153\006\130\002f\007I\004\173\011\153\011\153\011\153\011\153\011\153\011\153\t\217\011\153\011\153\011\153\011\153\011\182\000\246\012\022\011\153\004\158\011\153\011\153\024\006\011\153\011\153\011\153\011\153\011\153\011\153\011\153\011\153\011\153\011\153\011\153\011\153\011\153\001\142\011\153\011\153\011\153\011\153\011\153\003\185\003\185\002\217\003\185\t\194\003\185\004\146\003\185\003\185\t\213\003\185\003\185\003\185\003\185\002.\003\185\003\185\004J\003\185\003\185\003\185\001\206\003\185\003\185\003\185\003\185\019\150\003\185\000\n\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\019\166\003\185\019\170\004N\003\185\001\226\003\185\003\185\003\185\003\185\003\185\006I\003\185\000\246\003\185\003)\003\185\n\029\003\185\003\185\003\185\002\217\004\162\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003)\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\002\138\011\174\012\014\019\174\003\185\003\185\001n\001\230\007Q\003m\003\185\003\185\003\185\003\185\003\185\003\185\t\213\003\185\003\185\003\185\003\185\011\182\020\030\012\022\003\185\004\149\003\185\003\185\007Q\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\r\138\003\185\003\185\003\185\003\185\003\185\003\169\003\169\004\150\003\169\012N\003\169\002V\003\169\003\169\001\214\003\169\003\169\003\169\003\169\001\158\003\169\003\169\r\146\003\169\003\169\003\169\000\246\003\169\003\169\003\169\003\169\002Z\003\169\014\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\001j\003\169\t2\002\142\003\169\004\149\003\169\003\169\003\169\003\169\003\169\014\169\003\169\r2\003\169\001\130\003\169\001\146\003\169\003\169\003\169\021*\006\162\003\169\003\169\003\169\003\169\003\169\003\169\003\169\018\214\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\005B\011\174\012\014\t\174\003\169\003\169\001\214\017\166\004\149\004\149\003\169\003\169\003\169\003\169\003\169\003\169\001\242\003\169\003\169\003\169\003\169\011\182\000\246\012\022\003\169\001\214\003\169\003\169\001\246\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\006\166\003\169\003\169\003\169\003\169\003\169\011\001\011\001\002\166\011\001\017\174\011\001\002\250\011\001\011\001\006\174\011\001\011\001\011\001\011\001\002:\011\001\011\001\000\246\011\001\011\001\011\001\003\018\011\001\011\001\011\001\011\001\004\149\011\001\006J\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\018\218\011\001\t2\005R\011\001\006\198\011\001\011\001\011\001\011\001\011\001\023\154\011\001\003\226\011\001\006\146\011\001\015\218\011\001\011\001\011\001\021F\012\"\011\001\011\001\011\001\011\001\011\001\011\001\011\001\000\246\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\011\001\012&\011\001\011\001\t\174\011\001\011\001\000\246\023\162\003\238\004\149\011\001\011\001\011\001\011\001\011\001\011\001\006Y\011\001\011\001\011\001\011\001\011\001\000\246\011\001\011\001\b&\011\001\011\001\004\194\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\n\005\004\149\011\001\011\001\011\001\011\001\011\017\011\017\006f\011\017\003\242\011\017\001\214\011\017\011\017\r\178\011\017\011\017\011\017\011\017\004\146\011\017\011\017\004\149\011\017\011\017\011\017\006J\011\017\011\017\011\017\011\017\001\n\011\017\001\198\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\000\246\011\017\007\225\004\149\011\017\r\202\011\017\011\017\011\017\011\017\011\017\026\230\011\017\004\138\011\017\000\246\011\017\015\242\011\017\011\017\011\017\007\225\003\150\011\017\011\017\011\017\011\017\011\017\011\017\011\017\004\174\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\006\154\011\017\011\017\n\005\011\017\011\017\000\246\026\238\002\250\004\146\011\017\011\017\011\017\011\017\011\017\011\017\006A\011\017\011\017\011\017\011\017\011\017\028\142\011\017\011\017\015\030\011\017\011\017\003\154\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\011\017\028\146\007\225\011\017\011\017\011\017\011\017\011\t\011\t\001\n\011\t\001\198\011\t\nR\011\t\011\t\006\213\011\t\011\t\011\t\011\t\004\254\011\t\011\t\t6\011\t\011\t\011\t\007\249\011\t\011\t\011\t\011\t\001\n\011\t\001\198\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\000\246\011\t\t2\007\194\011\t\030\226\011\t\011\t\011\t\011\t\011\t\006J\011\t\b\146\011\t\tr\011\t\016\n\011\t\011\t\011\t\031\234\003\234\011\t\011\t\011\t\011\t\011\t\011\t\011\t\004\166\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\005\202\011\t\011\t\t\174\011\t\011\t\011\210\028\150\003\238\011\222\011\t\011\t\011\t\011\t\011\t\011\t\b\230\011\t\011\t\011\t\011\t\011\t\000\246\011\t\011\t\004\166\011\t\011\t\005A\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\011\t\n\t\000\246\011\t\011\t\011\t\011\t\n\245\n\245\001\n\n\245\001\198\n\245\004\166\n\245\n\245\0146\n\245\n\245\n\245\n\245\001\214\n\245\n\245\000\246\n\245\n\245\n\245\004\178\n\245\n\245\n\245\n\245\b\162\n\245\b\210\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\000\246\n\245\b\150\005\206\n\245\004\146\n\245\n\245\n\245\n\245\n\245\tf\n\245\005\002\n\245\000\246\n\245\016\"\n\245\n\245\n\245\004\138\b\014\n\245\n\245\n\245\n\245\n\245\n\245\n\245\015\134\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\b\018\n\245\n\245\n\t\n\245\n\245\b\166\b\170\015\138\005F\n\245\n\245\n\245\n\245\n\245\n\245\t\142\n\245\n\245\n\245\n\245\n\245\003\157\n\245\n\245\005j\n\245\n\245\n\n\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\n\245\000\246\000\246\n\245\n\245\n\245\n\245\n\253\n\253\b\218\n\253\020\162\n\253\002\014\n\253\n\253\nB\n\253\n\253\n\253\n\253\001\214\n\253\n\253\000\246\n\253\n\253\n\253\t&\n\253\n\253\n\253\n\253\t\006\n\253\000\246\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\t\254\n\253\b\222\b\170\n\253\t\006\n\253\n\253\n\253\n\253\n\253\003\157\n\253\001\230\n\253\023\138\n\253\0166\n\253\n\253\n\253\004\138\n\218\n\253\n\253\n\253\n\253\n\253\n\253\n\253\026\198\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\003\153\n\253\n\253\011\210\n\253\n\253\011\222\002\250\tv\005\014\n\253\n\253\n\253\n\253\n\253\n\253\000\246\n\253\n\253\n\253\n\253\n\253\004Q\n\253\n\253\t\006\n\253\n\253\n\n\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\n\253\000\246\000\246\n\253\n\253\n\253\n\253\n\249\n\249\011^\n\249\011v\n\249\005\142\n\249\n\249\019.\n\249\n\249\n\249\n\249\005\162\n\249\n\249\000\246\n\249\n\249\n\249\tB\n\249\n\249\n\249\n\249\003\153\n\249\000\246\n\249\n\249\n\249\n\249\n\249\n\249\n\249\n\249\tJ\n\249\005\194\023\022\n\249\t~\n\249\n\249\n\249\n\249\n\249\004Q\n\249\011\202\n\249\011\250\n\249\016J\n\249\n\249\n\249\t\166\014z\n\249\n\249\n\249\n\249\n\249\n\249\n\249\027\014\n\249\n\249\n\249\n\249\n\249\n\249\n\249\n\249\n\249\n\249\n\249\022\198\n\249\n\249\011\210\n\249\n\249\011\222\001\214\003~\003\130\n\249\n\249\n\249\n\249\n\249\n\249\023\158\n\249\n\249\n\249\n\249\n\249\t\n\n\249\n\249\006a\n\249\n\249\b\249\n\249\n\249\n\249\n\249\n\249\n\249\n\249\n\249\n\249\n\249\n\249\n\249\n\249\nN\n\n\n\249\n\249\n\249\n\249\011\005\011\005\011^\011\005\rJ\011\005\015^\011\005\011\005\000\246\011\005\011\005\011\005\011\005\004\146\011\005\011\005\000\246\011\005\011\005\011\005\000\246\011\005\011\005\011\005\011\005\018\250\011\005\015b\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011^\011\005\rb\014\170\011\005 \211\011\005\011\005\011\005\011\005\011\005\014\190\011\005\n5\011\005\014\226\011\005\016f\011\005\011\005\011\005\n\178\015n\011\005\011\005\011\005\011\005\011\005\011\005\011\005\025\002\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\004M\011\005\011\005\015r\011\005\011\005\011^\015z\014\014\003\234\011\005\011\005\011\005\011\005\011\005\011\005\005\238\011\005\011\005\011\005\011\005\011\005\nN\011\005\011\005\004\166\011\005\011\005\015\162\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\011\005\015\178\000\246\011\005\011\005\011\005\011\005\011\021\011\021\015\166\011\021\006\006\011\021\n5\011\021\011\021\023b\011\021\011\021\011\021\011\021\016\002\011\021\011\021\015\182\011\021\011\021\011\021\025\006\011\021\011\021\011\021\011\021\004M\011\021\015\210\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\016\006\011\021\024n\016V\011\021\003\234\011\021\011\021\011\021\011\021\011\021\015\214\011\021\011^\011\021\017\002\011\021\016z\011\021\011\021\011\021\006\030\t\006\011\021\011\021\011\021\011\021\011\021\011\021\011\021\000\246\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\026\186\011\021\011\021\004\149\011\021\011\021\015\234\003~\022\190\006A\011\021\011\021\011\021\011\021\011\021\011\021\023f\011\021\011\021\011\021\011\021\011\021\022\210\011\021\011\021\019F\011\021\011\021\015\238\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\011\021\012\"\019N\011\021\011\021\011\021\011\021\011\r\011\r\024\018\011\r\015^\011\r\015\162\011\r\011\r\024r\011\r\011\r\011\r\011\r\016\030\011\r\011\r\015n\011\r\011\r\011\r\006\138\011\r\011\r\011\r\011\r\0162\011\r\016v\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\006\202\011\r\002\245\016F\011\r\006\226\011\r\011\r\011\r\011\r\011\r\004\146\011\r\017\214\011\r\023V\011\r\016\142\011\r\011\r\011\r\024>\t\006\011\r\011\r\011\r\011\r\011\r\011\r\011\r\015\134\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\016\218\011\r\011\r\t\194\011\r\011\r\015\234\018z\016b\024\026\011\r\011\r\011\r\011\r\011\r\011\r \179\011\r\011\r\011\r\011\r\011\r\004\162\011\r\011\r\023\n\011\r\011\r\016\198\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\011\r\015\178\023\022\011\r\011\r\011\r\011\r\011\133\011\133\019\002\011\133\006\250\011\133\015\210\011\133\011\133\028\030\011\133\011\133\011\133\011\133\016\002\011\133\011\133\016\138\011\133\011\133\011\133\000\246\011\133\011\133\011\133\011\133\016\186\011\133\017\194\011\133\011\133\011\133\011\133\011\133\011\133\011\133\011\133\016\210\011\133\017\218\016\222\011\133\018~\011\133\011\133\011\133\011\133\011\133\017\198\011\133\020\186\011\133\024Z\011\133\016\154\011\133\011\133\011\133\026\234\018\178\011\133\011\133\011\133\011\133\011\133\011\133\011\133\015\r\011\133\011\133\011\133\011\133\011\133\011\133\011\133\011\133\011\133\011\133\011\133\018B\011\133\011\133\018\182\011\133\011\133\019\006\023\166\007\206\028\222\011\133\011\133\011\133\011\133\011\133\011\133\024\026\011\133\011\133\011\133\011\133\011\133\018F\011\133\011\133\001\214\011\133\011\133\019\014\011\133\011\133\011\133\011\133\011\133\011\133\011\133\011\133\011\133\011\133\011\133\011\133\011\133\018\226\003\238\011\133\011\133\011\133\011\133\003\165\003\165\019\018\003\165\028:\003\165\006]\003\165\003\165\007\230\003\165\003\165\003\165\003\165\004\146\003\165\003\165\018\230\003\165\003\165\003\165\030~\003\165\003\165\003\165\003\165\007\201\003\165\002f\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\007n\003\165\020\190\023\210\003\165\029\250\003\165\003\165\003\165\003\165\003\165\0042\003\165\r2\003\165\bJ\003\165\004>\003\165\003\165\003\165\028\226\003\238\003\165\003\165\003\165\003\165\003\165\003\165\003\165 J\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\b:\011\174\012\014\019\210\003\165\003\165\000\246\003\129\t)\029\210\003\165\003\165\003\165\003\165\003\165\003\165\b\198\003\165\003\165\003\165\003\165\011\182\022J\012\022\003\165\001\214\003\165\003\165\028\018\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\003\165\023\202\003\165\003\165\003\165\003\165\003\165\001\229\001\229\028r\001\229\t\194\001\229\004\173\002\250\001\229\000\246\002\182\001\229\011\198\001\229\b\206\0036\001\229\t-\001\229\001\229\001\229\031\174\001\229\001\229\001\229\001\218\t\194\011\254\t\018\003:\001\229\001\229\001\229\001\229\001\229\012\006\001\229\011\186\003>\026\242\027N\003\214\030\186\001\229\001\229\001\229\001\229\001\229\027~\004\022\003\"\001\198\016\190\001\229\016\202\001\229\001\229\002\238\029\214\027.\004\030\001\229\001\229\001\229\nF\nJ\nV\028\158\015\190\007&\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\001\229\011>\011\174\012\014\t\029\001\229\001\229\000\246\006E\028\162\030\006\001\229\0072\0076\001\229\001\229\001\229\t!\001\229\001\229\001\229\001\229\015\198\011J\016\018\001\229\011b\001\229\001\229\0312\001\229\001\229\001\229\001\229\001\229\001\229\007:\n^\001\229\001\229\001\229\nv\004\194\027v\002\250\001\229\001\229\001\229\001\229\011m\011m\011f\011m\006\250\011m\011n\002\250\011m\000\246\002\182\011m\011m\011m\011\130\0036\011m\015\025\011m\011m\011m\011\206\011m\011m\011m\001\218\011\246\011m\012\002\003:\011m\011m\011m\011m\011m\011m\011m\012\026\003>\003\226\027\174\003\214\031\022\011m\011m\011m\011m\011m\012\018\004\022\rV\001\198\015V\011m\015f\011m\011m\002\238\030\n\rn\004\030\011m\011m\011m\nF\nJ\nV\r\162\011m\007&\011m\011m\011m\011m\011m\011m\011m\011m\011m\r\222\011m\011m\014\002\011m\011m\000\246\031B\014\030\031\222\011m\0072\0076\011m\011m\011m \195\011m\011m\011m\011m\011m\t\194\011m\011m\014B\011m\011m\014R\011m\011m\011m\011m\011m\011m\007:\n^\011m\011m\011m\nv\004\194\014\134\002\250\011m\011m\011m\011m\011i\011i\000\246\011i\014\162\011i\014\202\002\250\011i\016\234\002\182\011i\011i\011i\016\242\0036\011i\017\014\011i\011i\011i\0172\011i\011i\011i\001\218\017B\011i\017V\003:\011i\011i\011i\011i\011i\011i\011i\016\022\003>\003\226\017\130\003\214\019b\011i\011i\011i\011i\011i\019\138\004\022\004:\001\198\016*\011i\016>\011i\011i\002\238\031\226\019\182\004\030\011i\011i\011i\nF\nJ\nV\019\186\011i\007&\011i\011i\011i\011i\011i\011i\011i\011i\011i\019\226\011i\011i\019\254\011i\011i\0202\020B\020R\020f\011i\0072\0076\011i\011i\011i\020\146\011i\011i\011i\011i\011i\020\158\011i\011i\021\002\011i\011i\021\n\011i\011i\011i\011i\011i\011i\007:\n^\011i\011i\011i\nv\004\194\021\254\022\018\011i\011i\011i\011i\002-\002-\022\022\002-\b6\002-\022\218\002\250\002-\022\242\002\182\002-\011\198\002-\023r\0036\002-\023v\002-\002-\002-\023\174\002-\002-\002-\001\218\002\217\011\254\023\178\003:\002-\002-\002-\002-\002-\012\006\002-\023\218\003>\023\222\023\246\003\214\024\162\002-\002-\002-\002-\002-\024\166\004\022\024\202\001\198\000\n\002-\024\206\002-\002-\002\238\024\222\024\238\004\030\002-\002-\002-\nF\nJ\nV\024\250\015\190\007&\002-\002-\002-\002-\002-\002-\002-\002-\002-\0256\004\149\002-\002\217\002-\002-\004\149\004\149\004\149\025:\002-\0072\0076\002-\002-\002-\006V\002-\002-\002-\002-\025\158\004\149\025\206\002-\004\149\002-\002-\004\149\002-\002-\002-\002-\002-\002-\007:\n^\002-\002-\002-\nv\004\194\000\246\004\149\002-\002-\002-\002-\004\149\025\214\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\022r\004\149\017\234\004\149\004\149\000\246\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\025\230\004\149\004\149\000\246\004\149\004\149\004\149\000\246\004\149\004\149\004\149\004\149\004\149\004\149\000\246\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\000\246\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\000\246\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\023\250\0266\004\149\005v\0012\004\149\004\149\004\149\000\246\004\149\002\217\002\217\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\026V\026\150\004\149\004\149\005~\017\226\026\194\004\149\t\234\t2\000\246\004\149\004\149\026\210\004\149\000\n\027&\026\250\026\254\004\149\004\149\004\149\027\n\027\026\004\149\004\149\004\149\004\149\t\238\000a\004\149\000a\017\250\000a\000a\000a\000a\000a\000a\000a\017\254\000a\027\218\000a\000a\002\217\000a\000a\0276\027F\000a\000a\t\174\000a\000a\000a\000a\005\150\000a\027Z\000a\000a\027\134\027\138\000a\000a\028\006\000a\000a\018V\000a\000\246\000a\006q\000a\000a\000a\000a\000a\000a\000a\000a\000a\027\150\027\166\000a\000a\027\186\018f\000a\000a\028\174\000a\000a\000a\000a\000a\000a\000a\000a\000a\002\217\006q\000a\006q\t\213\000a\000\n\000a\014i\000a\029\006\029.\014\173\029\170\000a\000a\000a\000a\000a\000a\000a\000a\002\217\029\186\002\217\000a\000\n\014i\014i\030\018\000\230\014i\014\173\t\017\000a\030\"\002\217\t\017\002J\030.\000a\000a\000a\000a\002\217\000\246\000a\000a\000a\000a\002%\002%\002N\002%\018N\002%\002\217\002\250\002%\030\150\002\182\002%\030\170\002%\011z\0036\002%\030\190\002%\002%\002%\000\246\002%\002%\002%\001\218\031\006\t\017\031\026\003:\002%\002%\002%\002%\002%\007\241\002%\031F\003>\017\254\t\213\003\214\004\222\002%\002%\002%\002%\002%\t\017\004\022\n!\nZ\014i\002%\007\241\002%\002%\002\238\007\241\031f\004\030\002%\002%\002%\nF\nJ\nV\011\234\031\142\007&\002%\002%\002%\002%\002%\002%\002%\002%\002%\031\202\011\174\012\014\031\250\002%\002% \006\005f \014 \023\002%\0072\0076\002%\002%\002%\003\238\002%\002%\002%\002%\011\182 '\012\022\002%\003\149\002%\002% :\002%\002%\002%\002%\002%\002%\007:\n^\002%\002%\002%\nv\004\194 V\020\246\002%\002%\002%\002%\0029\0029\007\022\0029\005\249\0029\006\221 s\0029\b\177\n\146\0029\001\198\0029 \131\020\250\0029 \159\0029\0029\0029\017\202\0029\0029\0029\0186\018r\018\130 \243\004\253\0029\0029\0029\0029\0029\011^\0029\014\014!\015!\026\b\177!O!c\0029\0029\0029\0029\0029\bv\005\249!k\003\149\004\253\0029\b\177\0029\0029\b\177\n\210!\167\n\254\0029\0029\0029\b\177\022\194\n\022\005\249\b\177\b\174\0029\0029\0029\0029\0029\0029\0029\0029\0029!\175\011\174\012\014\000\000\0029\0029\000\000\n\026\000\000\006\221\0029\000]\000\000\0029\0029\0029\003\238\0029\0029\0029\0029\011\182\017^\012\022\0029\011\210\0029\0029\011\222\0029\0029\0029\0029\0029\0029\018\138\n\n\0029\0029\0029\000\000\000\246\000\000\000\000\0029\0029\0029\0029\0025\0025\000\246\0025\000\000\0025\005v\000]\0025\000\000\n\146\0025\018\194\0025\000\000\000\000\0025\000\000\0025\0025\0025\017\202\0025\0025\0025\0186\018r\018\130\000\000\005~\0025\0025\0025\0025\0025\007\225\0025\000]\007\246\000\000\000\000\007\154\015~\0025\0025\0025\0025\0025\b\022\000\000\000\000\n\030\b\"\0025\007\225\0025\0025\015\154\007\225\015\170\021\214\0025\0025\0025\r\130\000\000\011\174\012\014\005\134\000\000\0025\0025\0025\0025\0025\0025\0025\0025\0025\b\253\011\174\012\014\005\226\0025\0025\000\000\011\182\000\000\012\022\0025\000\000\000\000\0025\0025\0025\000\000\0025\0025\0025\0025\011\182\000\000\012\022\0025\000]\0025\0025\000\246\0025\0025\0025\0025\0025\0025\003\141\000\000\0025\0025\0025\000\000\000\246\000\000\015\202\0025\0025\0025\0025\002)\002)\nR\002)\019\166\002)\019\170\000\000\002)\012\001\015\226\002)\015\250\002)\005v\006I\002)\000\000\002)\002)\002)\000]\002)\002)\002)\007\246 \255\000\000\007\154\r\134\002)\002)\002)\002)\002)\b\022\002)\005~\007\246\b\"\012\001\007\154\000\000\002)\002)\002)\002)\002)\b\022\019\174\016Z\000]\b\"\002)\012\001\002)\002)\012\001\014\218\000\000\000\000\002)\002)\002)\012\001\016n\000\000\016\130\012\001\000\000\002)\002)\002)\002)\002)\002)\002)\002)\002)\000\000\011\174\012\014\r\154\002)\002)\000\000\000\000\000\000\000\000\002)\006\190\000\000\002)\002)\002)\023\198\002)\002)\002)\002)\011\182\000\000\012\022\002)\000\000\002)\002)\002\217\002)\002)\002)\002)\002)\002)\007\193\000\000\002)\002)\002)\023\206\000\000\000\000\000\000\002)\002)\002)\002)\0021\0021\000\000\0021\000\000\0021\b~\002\250\0021\000\n\007\193\0021\000\000\0021\003\162\t%\0021\000\000\0021\0021\0021\000\000\0021\0021\0021\001\218\000\000\002\217\nM\nI\0021\0021\0021\0021\0021\002\250\0021\006q\002\014\002\217\002\217\002\182\000\000\0021\0021\0021\0021\0021\018\162\003\202\000\000\nM\nI\0021\000\000\0021\0021\002\238\000\000\000\000\000\000\0021\0021\0021\029\238\000\000\006q\000\000\006q\000\000\0021\0021\0021\0021\0021\0021\0021\0021\0021\003\226 2\0021\001\230\0021\0021\000\000\b\254\000\000\000\000\0021\000\000\000\000\0021\0021\0021\019\142\0021\0021\0021\0021\000\000\000\000\006q\0021\000\000\0021\0021\000\246\012.\0021\0021\0021\0021\0021\005\001\000\000\0021\0021\0021\000\000\bz\002\250\0076\0021\0021\0021\0021\nU\nU\rN\nU\006q\nU\006q\000\000\nU\000\246\005\001\nU\000\000\nU\000Y\000\000\012Z\000\000\nU\012~\nU\000\000\nU\nU\nU\007\246\000Y\000\000\007\154\029\242\012\146\012\170\012\178\012\154\012\186\b\022\nU\000\000\003\226\b\"\011\154\000\000\000\000\nU\nU\012\194\012\202\nU\000\000\000\000\000\000\000\000\000\000\nU\007\246\012\210\nU\007\154\000Y\000\000\023N\nU\nU\000\246\b\022\000\000\000\000\rf\b\"\000\000\nU\nU\012b\012\162\012\218\012\226\012\242\nU\nU\000\000\000\000\nU\000\000\nU\012\250\000\000\000\000\000\000\000Y\nU\001\214\000Y\nU\nU\r\002\000\000\nU\nU\nU\nU\006q\000\000\030\246\nU\000\000\nU\nU\015\005\r\"\nU\r*\012\234\nU\nU\000\000\027r\nU\r\n\nU\030\214\015\005\n&\t2\nU\nU\r\018\r\026\002e\002e\006q\002e\006q\002e\014q\004\138\002e\000\000\000\000\002e\027z\002e\n*\000\000\002e\000\000\002e\002e\002e\000\000\002e\002e\002e\014q\014q\000\000\000\000\014q\002e\002e\002e\002e\002e\t\029\002e\005\014\t\174\000\000\005E\000\000\000\000\002e\002e\002e\002e\002e\000\000\000\000\000\000\000\000\000\000\002e\000\000\002e\002e\000\246\000\000\000\000\000\000\002e\002e\002e\000\000\017\006\000\000\000\000\014m\000\246\002e\002e\012b\002e\002e\002e\002e\002e\002e\005v\000\000\002e\000\000\002e\002e\000\000\000\000\014m\014m\002e\000\000\014m\002e\002e\002e\000\000\002e\002e\002e\002e\014q\000\000\005~\002e\001\214\002e\002e\000\000\002e\002e\002e\002e\002e\002e\000\000\000\000\002e\002e\002e\000\000\000\000\000\000\000\000\002e\002e\002e\002e\002M\002M\000\000\002M\000\246\002M\007\221\t2\002M\000\246\000\000\002M\000\000\002M\017\026\000\000\002M\000\000\002M\002M\002M\004\138\002M\002M\002M\007\221\021:\000\000\b\182\007\221\002M\002M\002M\002M\002M\014m\002M\000\000\019~\000\000\014\238\002\182\000\000\002M\002M\002M\002M\002M\000\000\000\000\t\174\005\014\000\000\002M\014\246\002M\002M\015\002\000\000\000\000\000\000\002M\002M\002M\015\014\005v\000\000\000\000\015\026\000\246\002M\002M\012b\002M\002M\002M\002M\002M\002M\005v\019\130\002M\000\000\002M\002M\000\000\000\000\000\000\005~\002M\000\000\000\000\002M\002M\002M\019\142\002M\002M\002M\002M\007\221\000\000\005~\002M\000\000\002M\002M\000\000\002M\002M\002M\002M\002M\002M\000\000\021>\002M\002M\002M\000\000\000\000\000\000\0076\002M\002M\002M\002M\002Y\002Y\000\000\002Y\000\000\002Y\029\226\t2\002Y\000\246\000\000\002Y\005v\002Y\011*\000\000\012Z\000\000\002Y\002Y\002Y\000\000\002Y\002Y\002Y\005v\029\230\000\000\r\170\000\000\002Y\002Y\002Y\012\154\002Y\005~\002Y\000\000\002\250\000\000\b\169\002\182\000\000\002Y\002Y\002Y\002Y\002Y\005~\000\000\t\174\000\000\000\000\002Y\b\169\002Y\002Y\007\154\000\000\000\000\000\000\002Y\002Y\002Y\b\169\000\000\000\000\000\000\b\169\000\246\002Y\002Y\012b\012\162\002Y\002Y\002Y\002Y\002Y\005v\022>\002Y\000\000\002Y\002Y\000\000\020\222\000\000\r\194\002Y\000\000\000\000\002Y\002Y\002Y\019\142\002Y\002Y\002Y\002Y\000\000\014.\005~\002Y\000\000\002Y\002Y\000\000\002Y\002Y\002Y\002Y\002Y\002Y\000\000\n\n\002Y\002Y\002Y\000\000\000\000\000\000\0076\002Y\002Y\002Y\002Y\002i\002i\000\246\002i\005v\002i\005v\000\000\002i\b\197\000\000\002i\005v\002i\005v\005v\002i\000\000\002i\002i\002i\000\000\002i\002i\002i\005v\005v\005~\014r\005~\002i\002i\002i\002i\002i\005~\002i\005~\005~\000\000\b\197\000\000\000\000\002i\002i\002i\002i\002i\005~\005~\000\000\020\226\000\000\002i\b\197\002i\002i\007\154\000\000\000\000\000\000\002i\002i\002i\b\197\000\000\000\000\000\000\b\197\000\000\002i\002i\012b\002i\002i\002i\002i\002i\002i\000\000\014\182\002i\019\194\002i\002i\000\000\000\000\000\000\020:\002i\022\006\030\178\002i\002i\002i\000\000\002i\002i\002i\002i\000\000\031\014\031:\002i\000\000\002i\002i\000\000\002i\002i\002i\002i\002i\002i\000\000\000\000\002i\002i\002i\000\000\000\000\000\000\000\000\002i\002i\002i\002i\002I\002I\000\000\002I\000\000\002I\000\000\000\000\002I\000\246\000\000\002I\000\000\002I\000\000\000\000\002I\000\000\002I\002I\002I\000\000\002I\002I\002I\000\000\000\000\000\000\000\000\000\000\002I\002I\002I\002I\002I\000\000\002I\000\000\000\000\000\000\b\225\000\000\000\000\002I\002I\002I\002I\002I\000\000\000\000\000\000\000\000\000\000\002I\007\246\002I\002I\007\154\000\000\000\000\000\000\002I\002I\002I\b\225\000\000\000\000\000\000\b\225\000\000\002I\002I\012b\002I\002I\002I\002I\002I\002I\000\000\000\000\002I\000\000\002I\002I\000\000\000\000\000\000\000\000\002I\000\000\000\000\002I\002I\002I\000\000\002I\002I\002I\002I\000\000\000\000\000\000\002I\000\000\002I\002I\000\000\002I\002I\002I\002I\002I\002I\000\000\000\000\002I\002I\002I\000\000\000\000\000\000\000\000\002I\002I\002I\002I\002U\002U\000\000\002U\000\000\002U\000\000\000\000\002U\b\217\000\000\002U\000\000\002U\000\000\000\000\012Z\000\000\002U\002U\002U\000\000\002U\002U\002U\000\000\000\000\000\000\000\000\000\000\002U\002U\002U\012\154\002U\000\000\002U\000\000\000\000\000\000\b\217\000\000\000\000\002U\002U\002U\002U\002U\000\000\000\000\000\000\000\000\000\000\002U\0152\002U\002U\b\217\000\000\000\000\000\000\002U\002U\002U\b\217\000\000\000\000\000\000\b\217\000\000\002U\002U\012b\012\162\002U\002U\002U\002U\002U\000\000\000\000\002U\000\000\002U\002U\000\000\000\000\000\000\000\000\002U\000\000\000\000\002U\002U\002U\000\000\002U\002U\002U\002U\000\000\000\000\000\000\002U\000\000\002U\002U\000\000\002U\002U\002U\002U\002U\002U\000\000\000\000\002U\002U\002U\000\000\000\000\000\000\000\000\002U\002U\002U\002U\002Q\002Q\000\000\002Q\000\000\002Q\000\000\000\000\002Q\000\246\000\000\002Q\000\000\002Q\000\000\000\000\012Z\000\000\002Q\002Q\002Q\000\000\002Q\002Q\002Q\000\000\000\000\000\000\000\000\000\000\002Q\002Q\002Q\012\154\002Q\000\000\002Q\000\000\000\000\000\000\b\165\000\000\000\000\002Q\002Q\002Q\002Q\002Q\000\000\000\000\000\000\000\000\000\000\002Q\b\165\002Q\002Q\007\154\000\000\000\000\000\000\002Q\002Q\002Q\b\165\000\000\000\000\000\000\b\165\000\000\002Q\002Q\012b\012\162\002Q\002Q\002Q\002Q\002Q\000\000\000\000\002Q\000\000\002Q\002Q\000\000\000\000\000\000\000\000\002Q\000\000\000\000\002Q\002Q\002Q\000\000\002Q\002Q\002Q\002Q\000\000\000\000\000\000\002Q\000\000\002Q\002Q\000\000\002Q\002Q\002Q\002Q\002Q\002Q\000\000\000\000\002Q\002Q\002Q\000\000\000\000\000\000\000\000\002Q\002Q\002Q\002Q\002y\002y\000\000\002y\000\000\002y\000\000\000\000\002y\000\246\000\000\002y\000\000\002y\000\000\000\000\012Z\000\000\002y\002y\002y\000\000\002y\002y\002y\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002y\000\000\000\000\000\000\017\154\000\000\000\000\002y\002y\012\194\012\202\002y\000\000\000\000\000\000\000\000\000\000\002y\014\246\012\210\002y\015\002\000\000\000\000\000\000\002y\002y\000\246\015\014\000\000\000\000\000\000\015\026\000\000\002y\002y\012b\012\162\012\218\012\226\012\242\002y\002y\000\000\000\000\002y\000\000\002y\012\250\000\000\000\000\000\000\000\000\002y\000\000\000\000\002y\002y\r\002\000\000\002y\002y\002y\002y\000\000\000\000\000\000\002y\000\000\002y\002y\000\000\002y\002y\002y\012\234\002y\002y\000\000\000\000\002y\r\n\002y\000\000\000\000\000\000\000\000\002y\002y\r\018\r\026\002a\002a\000\000\002a\000\000\002a\000\000\000\000\002a\000\000\000\000\002a\000\000\002a\000\000\000\000\012Z\000\000\002a\002a\002a\000\000\002a\002a\002a\002\217\002\217\021f\000\000\000\000\002a\002a\002a\012\154\002a\000\000\002a\000\000\000\000\000\000\002\217\000\000\000\000\002a\002a\002a\002a\002a\000\000\000\000\000\000\000\000\000\n\002a\000\000\002a\002a\000\000\000\000\000\000\000\000\002a\002a\002a\002\217\002\217\022\154\000\000\000\000\000\000\002a\002a\012b\012\162\002a\002a\002a\002a\002a\002\217\000\000\002a\002\217\002a\002a\000\000\000\000\000\000\000\000\002a\000\000\000\n\002a\002a\002a\000\000\002a\002a\002a\002a\000\000\000\000\000\000\002a\000\000\002a\002a\000\000\002a\002a\002a\002a\002a\002a\000\000\000\000\002a\002a\002a\000\000\000\000\002\217\000\000\002a\002a\002a\002a\002]\002]\000\000\002]\000\000\002]\000\000\000\000\002]\000\000\000\000\002]\000\000\002]\000\000\000\000\012Z\000\000\002]\002]\002]\000\000\002]\002]\002]\000\000\000\000\000\000\000\000\000\000\002]\002]\002]\012\154\002]\000\000\002]\000\000\000\000\000\000\000\000\000\000\000\000\002]\002]\002]\002]\002]\000\000\000\000\000\000\000\000\000\000\002]\000\000\002]\002]\000\000\000\000\000\000\000\000\002]\002]\002]\000\000\000\000\000\000\000\000\000\000\000\000\002]\002]\012b\012\162\002]\002]\002]\002]\002]\000\000\000\000\002]\000\000\002]\002]\000\000\000\000\000\000\000\000\002]\000\000\000\000\002]\002]\002]\000\000\002]\002]\002]\002]\000\000\000\000\000\000\002]\000\000\002]\002]\000\000\002]\002]\002]\002]\002]\002]\000\000\000\000\002]\002]\002]\000\000\000\000\000\000\000\000\002]\002]\002]\002]\002q\002q\000\000\002q\000\000\002q\000\000\000\000\002q\000\000\000\000\002q\000\000\002q\000\000\000\000\012Z\000\000\002q\002q\002q\000\000\002q\002q\002q\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\002q\000\000\002q\000\000\000\000\000\000\000\000\000\000\000\000\002q\002q\012\194\012\202\002q\000\000\000\000\000\000\000\000\000\000\002q\000\000\002q\002q\000\000\000\000\000\000\000\000\002q\002q\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002q\002q\012b\012\162\012\218\012\226\002q\002q\002q\000\000\000\000\002q\000\000\002q\002q\000\000\000\000\000\000\000\000\002q\000\000\000\000\002q\002q\002q\000\000\002q\002q\002q\002q\000\000\000\000\000\000\002q\000\000\002q\002q\000\000\002q\002q\002q\012\234\002q\002q\000\000\000\000\002q\002q\002q\000\000\000\000\000\000\000\000\002q\002q\002q\002q\002E\002E\000\000\002E\000\000\002E\000\000\000\000\002E\000\000\000\000\002E\000\000\002E\000\000\000\000\012Z\000\000\002E\002E\002E\000\000\002E\002E\002E\000\000\000\000\000\000\000\000\000\000\002E\002E\002E\012\154\002E\000\000\002E\000\000\000\000\000\000\000\000\000\000\000\000\002E\002E\002E\002E\002E\000\000\000\000\000\000\000\000\000\000\002E\000\000\002E\002E\000\000\000\000\000\000\000\000\002E\002E\002E\000\000\000\000\000\000\000\000\000\000\000\000\002E\002E\012b\012\162\002E\002E\002E\002E\002E\000\000\000\000\002E\000\000\002E\002E\000\000\000\000\000\000\000\000\002E\000\000\000\000\002E\002E\002E\000\000\002E\002E\002E\002E\000\000\000\000\000\000\002E\000\000\002E\002E\000\000\002E\002E\002E\002E\002E\002E\000\000\000\000\002E\002E\002E\000\000\000\000\000\000\000\000\002E\002E\002E\002E\002A\002A\000\000\002A\000\000\002A\000\000\000\000\002A\000\000\000\000\002A\000\000\002A\000\000\000\000\012Z\000\000\002A\002A\002A\000\000\002A\002A\002A\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\002A\000\000\002A\000\000\000\000\000\000\000\000\000\000\000\000\002A\002A\012\194\012\202\002A\000\000\000\000\000\000\000\000\000\000\002A\000\000\002A\002A\000\000\000\000\000\000\000\000\002A\002A\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002A\002A\012b\012\162\012\218\012\226\002A\002A\002A\000\000\000\000\002A\000\000\002A\002A\000\000\000\000\000\000\000\000\002A\000\000\000\000\002A\002A\002A\000\000\002A\002A\002A\002A\000\000\000\000\000\000\002A\000\000\002A\002A\000\000\002A\002A\002A\012\234\002A\002A\000\000\000\000\002A\002A\002A\000\000\000\000\000\000\000\000\002A\002A\002A\002A\002\157\002\157\000\000\002\157\000\000\002\157\000\000\000\000\002\157\000\000\000\000\002\157\000\000\002\157\000\000\000\000\012Z\000\000\002\157\002\157\002\157\000\000\002\157\002\157\002\157\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\002\157\000\000\002\157\000\000\000\000\000\000\000\000\000\000\000\000\002\157\002\157\012\194\012\202\002\157\000\000\000\000\000\000\000\000\000\000\002\157\000\000\002\157\002\157\000\000\000\000\000\000\000\000\002\157\002\157\002\157\000\000\000\000\000\000\000\000\000\000\000\000\002\157\002\157\012b\012\162\012\218\002\157\002\157\002\157\002\157\000\000\000\000\002\157\000\000\002\157\002\157\000\000\000\000\000\000\000\000\002\157\000\000\000\000\002\157\002\157\002\157\000\000\002\157\002\157\002\157\002\157\000\000\000\000\000\000\002\157\000\000\002\157\002\157\000\000\002\157\002\157\002\157\012\234\002\157\002\157\000\000\000\000\002\157\002\157\002\157\000\000\000\000\000\000\000\000\002\157\002\157\002\157\002\157\002=\002=\000\000\002=\000\000\002=\000\000\000\000\002=\000\000\000\000\002=\000\000\002=\000\000\000\000\012Z\000\000\002=\002=\002=\000\000\002=\002=\002=\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\002=\000\000\002=\000\000\000\000\000\000\000\000\000\000\000\000\002=\002=\012\194\012\202\002=\000\000\000\000\000\000\000\000\000\000\002=\000\000\002=\002=\000\000\000\000\000\000\000\000\002=\002=\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002=\002=\012b\012\162\012\218\012\226\002=\002=\002=\000\000\000\000\002=\000\000\002=\002=\000\000\000\000\000\000\000\000\002=\000\000\000\000\002=\002=\002=\000\000\002=\002=\002=\002=\000\000\000\000\000\000\002=\000\000\002=\002=\000\000\002=\002=\002=\012\234\002=\002=\000\000\000\000\002=\002=\002=\000\000\000\000\000\000\000\000\002=\002=\002=\002=\002u\002u\000\000\002u\000\000\002u\000\000\000\000\002u\000\000\000\000\002u\000\000\002u\000\000\000\000\012Z\000\000\002u\002u\002u\000\000\002u\002u\002u\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\002u\000\000\002u\000\000\000\000\000\000\000\000\000\000\000\000\002u\002u\012\194\012\202\002u\000\000\000\000\000\000\000\000\000\000\002u\000\000\002u\002u\000\000\000\000\000\000\000\000\002u\002u\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002u\002u\012b\012\162\012\218\012\226\002u\002u\002u\000\000\000\000\002u\000\000\002u\002u\000\000\000\000\000\000\000\000\002u\000\000\000\000\002u\002u\002u\000\000\002u\002u\002u\002u\000\000\000\000\000\000\002u\000\000\002u\002u\000\000\002u\002u\002u\012\234\002u\002u\000\000\000\000\002u\002u\002u\000\000\000\000\000\000\000\000\002u\002u\002u\002u\002m\002m\000\000\002m\000\000\002m\000\000\000\000\002m\000\000\000\000\002m\000\000\002m\000\000\000\000\012Z\000\000\002m\002m\002m\000\000\002m\002m\002m\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\002m\000\000\002m\000\000\000\000\000\000\000\000\000\000\000\000\002m\002m\012\194\012\202\002m\000\000\000\000\000\000\000\000\000\000\002m\000\000\002m\002m\000\000\000\000\000\000\000\000\002m\002m\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002m\002m\012b\012\162\012\218\012\226\002m\002m\002m\000\000\000\000\002m\000\000\002m\002m\000\000\000\000\000\000\000\000\002m\000\000\000\000\002m\002m\002m\000\000\002m\002m\002m\002m\000\000\000\000\000\000\002m\000\000\002m\002m\000\000\002m\002m\002m\012\234\002m\002m\000\000\000\000\002m\002m\002m\000\000\000\000\000\000\000\000\002m\002m\002m\002m\002}\002}\000\000\002}\000\000\002}\000\000\000\000\002}\000\000\000\000\002}\000\000\002}\000\000\000\000\012Z\000\000\002}\002}\002}\000\000\002}\002}\002}\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002}\000\000\000\000\000\000\000\000\000\000\000\000\002}\002}\012\194\012\202\002}\000\000\000\000\000\000\000\000\000\000\002}\000\000\012\210\002}\000\000\000\000\000\000\000\000\002}\002}\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002}\002}\012b\012\162\012\218\012\226\012\242\002}\002}\000\000\000\000\002}\000\000\002}\012\250\000\000\000\000\000\000\000\000\002}\000\000\000\000\002}\002}\r\002\000\000\002}\002}\002}\002}\000\000\000\000\000\000\002}\000\000\002}\002}\000\000\002}\002}\002}\012\234\002}\002}\000\000\000\000\002}\r\n\002}\000\000\000\000\000\000\000\000\002}\002}\r\018\r\026\002\129\002\129\000\000\002\129\000\000\002\129\000\000\000\000\002\129\000\000\000\000\002\129\000\000\002\129\000\000\000\000\012Z\000\000\002\129\002\129\002\129\000\000\002\129\002\129\002\129\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\002\129\000\000\002\129\000\000\000\000\000\000\000\000\000\000\000\000\002\129\002\129\012\194\012\202\002\129\000\000\000\000\000\000\000\000\000\000\002\129\000\000\012\210\002\129\000\000\000\000\000\000\000\000\002\129\002\129\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\129\002\129\012b\012\162\012\218\012\226\012\242\002\129\002\129\000\000\000\000\002\129\000\000\002\129\012\250\000\000\000\000\000\000\000\000\002\129\000\000\000\000\002\129\002\129\r\002\000\000\002\129\002\129\002\129\002\129\000\000\000\000\000\000\002\129\000\000\002\129\002\129\000\000\002\129\002\129\002\129\012\234\002\129\002\129\000\000\000\000\002\129\002\129\002\129\000\000\000\000\000\000\000\000\002\129\002\129\r\018\r\026\002\133\002\133\000\000\002\133\000\000\002\133\000\000\000\000\002\133\000\000\000\000\002\133\000\000\002\133\000\000\000\000\012Z\000\000\002\133\002\133\002\133\000\000\002\133\002\133\002\133\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\002\133\000\000\002\133\000\000\000\000\000\000\000\000\000\000\000\000\002\133\002\133\012\194\012\202\002\133\000\000\000\000\000\000\000\000\000\000\002\133\000\000\012\210\002\133\000\000\000\000\000\000\000\000\002\133\002\133\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\133\002\133\012b\012\162\012\218\012\226\012\242\002\133\002\133\000\000\000\000\002\133\000\000\002\133\012\250\000\000\000\000\000\000\000\000\002\133\000\000\000\000\002\133\002\133\r\002\000\000\002\133\002\133\002\133\002\133\000\000\000\000\000\000\002\133\000\000\002\133\002\133\000\000\002\133\002\133\002\133\012\234\002\133\002\133\000\000\000\000\002\133\002\133\002\133\000\000\000\000\000\000\000\000\002\133\002\133\r\018\r\026\n\017\n\017\000\000\n\017\000\000\n\017\000\000\000\000\n\017\000\000\000\000\n\017\000\000\n\017\000\000\000\000\012Z\000\000\n\017\n\017\n\017\000\000\n\017\n\017\n\017\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\n\017\000\000\000\000\000\000\000\000\000\000\000\000\n\017\n\017\012\194\012\202\n\017\000\000\000\000\000\000\000\000\000\000\n\017\000\000\012\210\n\017\000\000\000\000\000\000\000\000\n\017\n\017\000\246\000\000\000\000\000\000\000\000\000\000\000\000\n\017\n\017\012b\012\162\012\218\012\226\012\242\n\017\n\017\000\000\000\000\n\017\000\000\n\017\012\250\000\000\000\000\000\000\000\000\n\017\000\000\000\000\n\017\n\017\r\002\000\000\n\017\n\017\n\017\n\017\000\000\000\000\000\000\n\017\000\000\n\017\n\017\000\000\n\017\n\017\n\017\012\234\n\017\n\017\000\000\000\000\n\017\r\n\n\017\000\000\000\000\000\000\000\000\n\017\n\017\r\018\r\026\002\137\002\137\000\000\002\137\000\000\002\137\000\000\000\000\002\137\000\000\000\000\002\137\000\000\002\137\000\000\000\000\012Z\000\000\002\137\002\137\002\137\000\000\002\137\002\137\002\137\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002\137\000\000\000\000\000\000\000\000\000\000\000\000\002\137\002\137\012\194\012\202\002\137\000\000\000\000\000\000\000\000\000\000\002\137\000\000\012\210\002\137\000\000\000\000\000\000\000\000\002\137\002\137\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\137\002\137\012b\012\162\012\218\012\226\012\242\002\137\002\137\000\000\000\000\002\137\000\000\002\137\012\250\000\000\000\000\000\000\000\000\002\137\000\000\000\000\002\137\002\137\r\002\000\000\002\137\002\137\002\137\002\137\000\000\000\000\000\000\002\137\000\000\002\137\002\137\000\000\r\"\002\137\r*\012\234\002\137\002\137\000\000\000\000\002\137\r\n\002\137\000\000\000\000\000\000\000\000\002\137\002\137\r\018\r\026\n\r\n\r\000\000\n\r\000\000\n\r\000\000\000\000\n\r\000\000\000\000\n\r\000\000\n\r\000\000\000\000\012Z\000\000\n\r\n\r\n\r\000\000\n\r\n\r\n\r\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\n\r\000\000\000\000\000\000\000\000\000\000\000\000\n\r\n\r\012\194\012\202\n\r\000\000\000\000\000\000\000\000\000\000\n\r\000\000\012\210\n\r\000\000\000\000\000\000\000\000\n\r\n\r\000\246\000\000\000\000\000\000\000\000\000\000\000\000\n\r\n\r\012b\012\162\012\218\012\226\012\242\n\r\n\r\000\000\000\000\n\r\000\000\n\r\012\250\000\000\000\000\000\000\000\000\n\r\000\000\000\000\n\r\n\r\r\002\000\000\n\r\n\r\n\r\n\r\000\000\000\000\000\000\n\r\000\000\n\r\n\r\000\000\n\r\n\r\n\r\012\234\n\r\n\r\000\000\000\000\n\r\r\n\n\r\000\000\000\000\000\000\000\000\n\r\n\r\r\018\r\026\002\181\002\181\000\000\002\181\000\000\002\181\000\000\000\000\002\181\000\000\000\000\002\181\000\000\002\181\000\000\000\000\012Z\000\000\002\181\002\181\002\181\000\000\002\181\002\181\002\181\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002\181\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\181\012\194\012\202\002\181\000\000\000\000\000\000\000\000\000\000\002\181\000\000\012\210\002\181\000\000\000\000\000\000\000\000\002\181\002\181\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\181\002\181\012b\012\162\012\218\012\226\012\242\002\181\002\181\000\000\000\000\002\181\000\000\002\181\012\250\000\000\000\000\000\000\000\000\002\181\000\000\000\000\002\181\002\181\r\002\000\000\002\181\002\181\002\181\002\181\000\000\000\000\000\000\002\181\000\000\002\181\002\181\000\000\r\"\002\181\r*\012\234\002\181\002\181\000\000\000\000\002\181\r\n\002\181\000\000\000\000\000\000\000\000\002\181\002\181\r\018\r\026\002\197\002\197\000\000\002\197\000\000\002\197\000\000\000\000\002\197\000\000\000\000\002\197\000\000\002\197\000\000\000\000\012Z\000\000\002\197\002\197\002\197\000\000\002\197\002\197\002\197\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002\197\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\197\012\194\012\202\002\197\000\000\000\000\000\000\000\000\000\000\002\197\000\000\012\210\002\197\000\000\000\000\000\000\000\000\002\197\002\197\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\197\002\197\012b\012\162\012\218\012\226\012\242\002\197\002\197\000\000\000\000\002\197\000\000\002\197\012\250\000\000\000\000\000\000\000\000\002\197\000\000\000\000\002\197\002\197\r\002\000\000\002\197\002\197\002\197\002\197\000\000\000\000\000\000\002\197\000\000\002\197\002\197\000\000\r\"\002\197\r*\012\234\002\197\002\197\000\000\000\000\002\197\r\n\002\197\000\000\000\000\000\000\000\000\002\197\002\197\r\018\r\026\002\189\002\189\000\000\002\189\000\000\002\189\000\000\000\000\002\189\000\000\000\000\002\189\000\000\002\189\000\000\000\000\012Z\000\000\002\189\002\189\002\189\000\000\002\189\002\189\002\189\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\189\012\194\012\202\002\189\000\000\000\000\000\000\000\000\000\000\002\189\000\000\012\210\002\189\000\000\000\000\000\000\000\000\002\189\002\189\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\189\002\189\012b\012\162\012\218\012\226\012\242\002\189\002\189\000\000\000\000\002\189\000\000\002\189\012\250\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002\189\002\189\r\002\000\000\002\189\002\189\002\189\002\189\000\000\000\000\000\000\002\189\000\000\002\189\002\189\000\000\r\"\002\189\r*\012\234\002\189\002\189\000\000\000\000\002\189\r\n\002\189\000\000\000\000\000\000\000\000\002\189\002\189\r\018\r\026\002\169\002\169\000\000\002\169\000\000\002\169\000\000\000\000\002\169\000\000\000\000\002\169\000\000\002\169\000\000\000\000\012Z\000\000\002\169\002\169\002\169\000\000\002\169\002\169\002\169\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002\169\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\169\012\194\012\202\002\169\000\000\000\000\000\000\000\000\000\000\002\169\000\000\012\210\002\169\000\000\000\000\000\000\000\000\002\169\002\169\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\169\002\169\012b\012\162\012\218\012\226\012\242\002\169\002\169\000\000\000\000\002\169\000\000\002\169\012\250\000\000\000\000\000\000\000\000\002\169\000\000\000\000\002\169\002\169\r\002\000\000\002\169\002\169\002\169\002\169\000\000\000\000\000\000\002\169\000\000\002\169\002\169\000\000\r\"\002\169\r*\012\234\002\169\002\169\000\000\000\000\002\169\r\n\002\169\000\000\000\000\000\000\000\000\002\169\002\169\r\018\r\026\002\177\002\177\000\000\002\177\000\000\002\177\000\000\000\000\002\177\000\000\000\000\002\177\000\000\002\177\000\000\000\000\012Z\000\000\002\177\002\177\002\177\000\000\002\177\002\177\002\177\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\177\002\177\012\194\012\202\002\177\000\000\000\000\000\000\000\000\000\000\002\177\000\000\012\210\002\177\000\000\000\000\000\000\000\000\002\177\002\177\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\177\002\177\012b\012\162\012\218\012\226\012\242\002\177\002\177\000\000\000\000\002\177\000\000\002\177\012\250\000\000\000\000\000\000\000\000\002\177\000\000\000\000\002\177\002\177\r\002\000\000\002\177\002\177\002\177\002\177\000\000\000\000\000\000\002\177\000\000\002\177\002\177\000\000\r\"\002\177\r*\012\234\002\177\002\177\000\000\000\000\002\177\r\n\002\177\000\000\000\000\000\000\000\000\002\177\002\177\r\018\r\026\002\173\002\173\000\000\002\173\000\000\002\173\000\000\000\000\002\173\000\000\000\000\002\173\000\000\002\173\000\000\000\000\012Z\000\000\002\173\002\173\002\173\000\000\002\173\002\173\002\173\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002\173\000\000\000\000\000\000\000\000\000\000\000\000\002\173\002\173\012\194\012\202\002\173\000\000\000\000\000\000\000\000\000\000\002\173\000\000\012\210\002\173\000\000\000\000\000\000\000\000\002\173\002\173\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\173\002\173\012b\012\162\012\218\012\226\012\242\002\173\002\173\000\000\000\000\002\173\000\000\002\173\012\250\000\000\000\000\000\000\000\000\002\173\000\000\000\000\002\173\002\173\r\002\000\000\002\173\002\173\002\173\002\173\000\000\000\000\000\000\002\173\000\000\002\173\002\173\000\000\r\"\002\173\r*\012\234\002\173\002\173\000\000\000\000\002\173\r\n\002\173\000\000\000\000\000\000\000\000\002\173\002\173\r\018\r\026\002\185\002\185\000\000\002\185\000\000\002\185\000\000\000\000\002\185\000\000\000\000\002\185\000\000\002\185\000\000\000\000\012Z\000\000\002\185\002\185\002\185\000\000\002\185\002\185\002\185\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002\185\000\000\000\000\000\000\000\000\000\000\000\000\002\185\002\185\012\194\012\202\002\185\000\000\000\000\000\000\000\000\000\000\002\185\000\000\012\210\002\185\000\000\000\000\000\000\000\000\002\185\002\185\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\185\002\185\012b\012\162\012\218\012\226\012\242\002\185\002\185\000\000\000\000\002\185\000\000\002\185\012\250\000\000\000\000\000\000\000\000\002\185\000\000\000\000\002\185\002\185\r\002\000\000\002\185\002\185\002\185\002\185\000\000\000\000\000\000\002\185\000\000\002\185\002\185\000\000\r\"\002\185\r*\012\234\002\185\002\185\000\000\000\000\002\185\r\n\002\185\000\000\000\000\000\000\000\000\002\185\002\185\r\018\r\026\002\201\002\201\000\000\002\201\000\000\002\201\000\000\000\000\002\201\000\000\000\000\002\201\000\000\002\201\000\000\000\000\012Z\000\000\002\201\002\201\002\201\000\000\002\201\002\201\002\201\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002\201\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\201\012\194\012\202\002\201\000\000\000\000\000\000\000\000\000\000\002\201\000\000\012\210\002\201\000\000\000\000\000\000\000\000\002\201\002\201\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\201\002\201\012b\012\162\012\218\012\226\012\242\002\201\002\201\000\000\000\000\002\201\000\000\002\201\012\250\000\000\000\000\000\000\000\000\002\201\000\000\000\000\002\201\002\201\r\002\000\000\002\201\002\201\002\201\002\201\000\000\000\000\000\000\002\201\000\000\002\201\002\201\000\000\r\"\002\201\r*\012\234\002\201\002\201\000\000\000\000\002\201\r\n\002\201\000\000\000\000\000\000\000\000\002\201\002\201\r\018\r\026\002\193\002\193\000\000\002\193\000\000\002\193\000\000\000\000\002\193\000\000\000\000\002\193\000\000\002\193\000\000\000\000\012Z\000\000\002\193\002\193\002\193\000\000\002\193\002\193\002\193\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\193\002\193\012\194\012\202\002\193\000\000\000\000\000\000\000\000\000\000\002\193\000\000\012\210\002\193\000\000\000\000\000\000\000\000\002\193\002\193\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\193\002\193\012b\012\162\012\218\012\226\012\242\002\193\002\193\000\000\000\000\002\193\000\000\002\193\012\250\000\000\000\000\000\000\000\000\002\193\000\000\000\000\002\193\002\193\r\002\000\000\002\193\002\193\002\193\002\193\000\000\000\000\000\000\002\193\000\000\002\193\002\193\000\000\r\"\002\193\r*\012\234\002\193\002\193\000\000\000\000\002\193\r\n\002\193\000\000\000\000\000\000\000\000\002\193\002\193\r\018\r\026\002\165\002\165\000\000\002\165\000\000\002\165\000\000\000\000\002\165\000\000\000\000\002\165\000\000\002\165\000\000\000\000\012Z\000\000\002\165\002\165\002\165\000\000\002\165\002\165\002\165\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002\165\000\000\000\000\000\000\000\000\000\000\000\000\002\165\002\165\012\194\012\202\002\165\000\000\000\000\000\000\000\000\000\000\002\165\000\000\012\210\002\165\000\000\000\000\000\000\000\000\002\165\002\165\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\165\002\165\012b\012\162\012\218\012\226\012\242\002\165\002\165\000\000\000\000\002\165\000\000\002\165\012\250\000\000\000\000\000\000\000\000\002\165\000\000\000\000\002\165\002\165\r\002\000\000\002\165\002\165\002\165\002\165\000\000\000\000\000\000\002\165\000\000\002\165\002\165\000\000\r\"\002\165\r*\012\234\002\165\002\165\000\000\000\000\002\165\r\n\002\165\000\000\000\000\000\000\000\000\002\165\002\165\r\018\r\026\001\249\001\249\000\000\001\249\000\000\001\249\000\000\000\000\001\249\000\000\000\000\001\249\000\000\001\249\000\000\000\000\001\249\000\000\001\249\001\249\001\249\000\000\001\249\001\249\001\249\000\000\000\000\000\000\000\000\000\000\001\249\001\249\001\249\001\249\001\249\000\000\001\249\000\000\000\000\000\000\000\000\000\000\000\000\001\249\001\249\001\249\001\249\001\249\000\000\000\000\000\000\000\000\000\000\001\249\000\000\001\249\001\249\000\000\000\000\000\000\000\000\001\249\001\249\001\249\000\000\000\000\000\000\000\000\000\000\000\000\001\249\001\249\001\249\001\249\001\249\001\249\001\249\001\249\001\249\000\000\000\000\001\249\000\000\001\249\001\249\000\000\000\000\000\000\000\000\001\249\000\000\000\000\001\249\001\249\001\249\000\000\001\249\001\249\001\249\001\249\000\000\000\000\000\000\001\249\000\000\001\249\001\249\000\000\001\249\001\249\001\249\001\249\001\249\001\249\000\000\000\000\001\249\001\249\017r\000\000\000\000\000\000\000\000\001\249\001\249\001\249\001\249\002\025\002\025\000\000\002\025\000\000\002\025\000\000\000\000\002\025\000\000\000\000\002\025\000\000\002\025\000\000\000\000\012Z\000\000\002\025\002\025\002\025\000\000\002\025\002\025\002\025\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002\025\000\000\000\000\000\000\000\000\000\000\000\000\002\025\002\025\012\194\012\202\002\025\000\000\000\000\000\000\000\000\000\000\002\025\000\000\012\210\002\025\000\000\000\000\000\000\000\000\002\025\002\025\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\025\002\025\012b\012\162\012\218\012\226\012\242\002\025\002\025\000\000\000\000\002\025\000\000\002\025\012\250\000\000\000\000\000\000\000\000\002\025\000\000\000\000\002\025\002\025\r\002\000\000\002\025\002\025\017\138\002\025\000\000\000\000\000\000\002\025\000\000\002\025\002\025\000\000\r\"\002\025\r*\012\234\002\025\002\025\000\000\000\000\002\025\r\n\002\025\000\000\000\000\000\000\000\000\002\025\002\025\r\018\r\026\002\021\002\021\000\000\002\021\000\000\002\021\000\000\000\000\002\021\000\000\000\000\002\021\000\000\002\021\000\000\000\000\012Z\000\000\002\021\002\021\002\021\000\000\002\021\002\021\002\021\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002\021\000\000\000\000\000\000\000\000\000\000\000\000\002\021\002\021\012\194\012\202\002\021\000\000\000\000\000\000\000\000\000\000\002\021\000\000\012\210\002\021\000\000\000\000\000\000\000\000\002\021\002\021\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\021\002\021\012b\012\162\012\218\012\226\012\242\002\021\002\021\000\000\000\000\002\021\000\000\002\021\012\250\000\000\000\000\000\000\000\000\002\021\000\000\000\000\002\021\002\021\r\002\000\000\002\021\002\021\002\021\002\021\000\000\000\000\000\000\002\021\000\000\002\021\002\021\000\000\r\"\002\021\r*\012\234\002\021\002\021\000\000\000\000\002\021\r\n\002\021\000\000\000\000\000\000\000\000\002\021\002\021\r\018\r\026\002\161\002\161\000\000\002\161\000\000\002\161\000\000\000\000\002\161\000\000\000\000\002\161\000\000\002\161\000\000\000\000\012Z\000\000\002\161\002\161\002\161\000\000\002\161\002\161\002\161\000\000\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\002\161\002\161\012\194\012\202\002\161\000\000\000\000\000\000\000\000\000\000\002\161\000\000\012\210\002\161\000\000\000\000\000\000\000\000\002\161\002\161\000\246\000\000\000\000\000\000\000\000\000\000\000\000\002\161\002\161\012b\012\162\012\218\012\226\012\242\002\161\002\161\000\000\000\000\002\161\000\000\002\161\012\250\000\000\000\000\000\000\000\000\002\161\000\000\000\000\002\161\002\161\r\002\000\000\002\161\002\161\002\161\002\161\000\000\000\000\000\000\002\161\000\000\002\161\002\161\000\000\r\"\002\161\r*\012\234\002\161\002\161\000\000\000\000\002\161\r\n\002\161\000\000\000\000\000\000\000\000\002\161\002\161\r\018\r\026\002\t\002\t\000\000\002\t\000\000\002\t\000\000\000\000\002\t\000\000\000\000\002\t\000\000\002\t\000\000\000\000\002\t\000\000\002\t\002\t\002\t\000\000\002\t\002\t\002\t\000\000\000\000\000\000\000\000\000\000\002\t\002\t\002\t\002\t\002\t\000\000\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\t\002\t\002\t\002\t\002\t\000\000\000\000\000\000\000\000\000\000\002\t\000\000\002\t\002\t\000\000\000\000\000\000\000\000\002\t\002\t\002\t\000\000\000\000\000\000\000\000\000\000\000\000\002\t\002\t\002\t\002\t\002\t\002\t\002\t\002\t\002\t\000\000\000\000\002\t\000\000\002\t\002\t\000\000\000\000\000\000\000\000\002\t\000\000\000\000\002\t\002\t\002\t\000\000\002\t\002\t\002\t\002\t\000\000\000\000\000\000\002\t\000\000\002\t\002\t\000\000\002\t\002\t\002\t\002\t\002\t\002\t\000\000\000\000\002\t\002\t\017r\000\000\000\000\000\000\000\000\002\t\002\t\002\t\002\t\002\r\002\r\000\000\002\r\000\000\002\r\000\000\000\000\002\r\000\000\000\000\002\r\000\000\002\r\000\000\000\000\002\r\000\000\002\r\002\r\002\r\000\000\002\r\002\r\002\r\000\000\000\000\000\000\000\000\000\000\002\r\002\r\002\r\002\r\002\r\t\r\002\r\000\000\000\000\t\r\000\000\b\001\000\000\002\r\002\r\002\r\002\r\002\r\000\000\000\000\000\000\000\000\000\000\002\r\000\000\002\r\002\r\000\000\000\000\000\000\b\001\002\r\002\r\002\r\b\001\000\000\t\185\000\000\000\000\000\000\002\r\002\r\002\r\002\r\002\r\002\r\002\r\002\r\002\r\t\r\000\000\002\r\000\000\002\r\002\r\000\000\000\000\000\000\000\000\002\r\000\000\000\000\002\r\002\r\002\r\000\000\002\r\002\r\002\r\002\r\t\r\007\238\000\000\002\r\002\014\002\r\002\r\t\185\002\r\002\r\002\r\002\r\002\r\002\r\002\018\000\000\002\r\002\r\017r\000\000\000\000\007\242\001\218\002\r\002\r\002\r\002\r\001\014\t\185\000\006\000\000\000\000\000\000\002\246\002\250\b\001\003*\002\182\005f\000\000\003\146\000\000\0036\001\018\000\000\000\000\t\022\002\202\001\230\000\000\011\210\000\000\001\218\011\222\002\238\000\000\004\026\001\026\n\154\n\158\001&\001*\t\185\000\000\000\246\003>\005f\000\000\003\214\t\185\020\206\000\000\n\194\n\198\000\000\004\n\004\022\004\"\004&\n\202\b\234\000\000\001B\t\026\002\238\000\000\000\000\004\030\000\000\000\000\000\000\nF\nJ\nV\nj\000\000\007&\000\000\000\000\001F\001J\001N\001R\001V\000\000\000\000\n\222\001Z\000\000\007\246\000\000\001^\007\154\b\002\n\234\011\002\011\138\0072\0076\b\022\000\000\001b\000\000\b\"\000\000\002\217\000\000\001f\002\217\023B\000\000\002\217\000\000\000\000\000\000\000\000\000\000\001\162\007\226\000\000\000\000\007:\n^\000\000\001\166\000\000\017\186\004\194\011\158\001\014\001\174\000\006\001\178\001\182\000\n\002\246\002\250\000\000\003*\002\182\004I\000\000\000\000\000\000\0036\001\018\000\000\000\000\000\000\n\150\002\217\000\000\002\217\000\000\001\218\000\000\000\000\000\000\004\026\001\026\n\154\n\158\001&\001*\002\217\002\217\000\000\003>\000\000\000\000\003\214\000\000\n\162\000\000\n\194\n\198\000\000\004\n\004\022\004\"\004&\n\202\b\234\000\246\001B\000\000\002\238\000\000\000\000\004\030\000\000\000\000\002\217\nF\nJ\nV\nj\000\000\007&\000\000\000\000\001F\001J\001N\001R\001V\000\000\000\000\n\222\001Z\000\000\n=\000\000\001^\004I\000\000\n\234\011\002\011\138\0072\0076\000\000\000\000\001b\000\000\000\000\000\000\000\000\007\246\001f\bb\007\154\011\"\n=\000\000\000\000\000\000\000\000\b\022\001\162\b6\000\000\b\"\007:\n^\014\161\001\166\000\000\017\186\004\194\011\158\004\193\001\174\000\006\001\178\001\182\000\254\002\246\002\250\002\254\003*\002\182\000\000\000\000\000\000\014\161\0036\000\000\002&\003\170\000\000\002*\000\000\004\193\000\246\003\174\001\218\000\000\021\206\000\000\003:\000\000\003\178\003\182\000\000\0026\000\000\003\186\000\000\003>\001\173\000\000\003\214\000\000\021b\001\173\004\002\004\006\000\000\004\n\004\022\004\"\004&\004.\b\234\000\000\000\000\021\198\002\238\000\000\000\000\004\030\021\222\002B\001\173\nF\nJ\nV\nj\007\246\007&\000\000\007\154\000\000\000\000\000\000\000\000\n=\021\230\b\022\n\222\000\000\000\000\b\"\000\000\000\000\007\217\001\173\n\234\011\002\011\138\0072\0076\021\238\022*\000\000\001\173\004\193\004\193\000\000\000\000\001\173\001\173\000\246\000\000\007\217\000\000\000\000\002F\007\217\001\173\001\173\000\000\022f\026\130\007:\n^\020\178\000\000\000\000\nv\004\194\011\158\000\014\000\018\000\022\000\026\000\030\000\000\000\"\000&\000*\000.\0002\000\000\0006\000:\001\173\000\000\000>\000\000\000\000\000\000\000B\000\000\000\000\001\173\000\000\000\000\000\000\000F\000\000\000\000\000\000\000\000\007\245\000J\000\000\000N\000R\000V\000Z\000^\000b\000f\000j\000\000\000\000\000\000\000n\000r\000\000\000v\000z\007\245\000~\000\000\000\000\007\245\000\000\007\217\000\000\000\000\000\000\t\029\000\000\000\000\t\029\000\000\000\130\000\000\000\000\000\134\000\138\000\000\000\000\000\000\000\000\004V\000\142\000\146\000\150\000\000\000\000\000\000\027.\000\000\000\000\000\154\000\158\000\162\000\166\000\000\000\170\000\174\000\178\014\161\014\141\000\246\000\182\000\186\000\190\000\000\000\000\000\000\000\194\t\029\000\198\000\202\019~\000\000\000\000\002\182\000\000\000\000\000\206\014\161\000\210\000\000\002&\000m\t\029\002*\000\214\000\218\000m\000\222\002\250\000m\0022\002\182\000\000\011\198\000\000\000\000\0036\0026\000\000\000m\002>\000m\014\141\000m\007\246\000m\001\218\007\154\011\254\t\029\003:\000\000\019\130\000\000\b\022\000\000\012\006\000m\b\"\003>\000\000\000\000\003\214\000\000\000m\002B\000\000\019\142\000m\026.\004\022\000\000\001\198\000\000\000m\000\000\t\029\000m\002\238\000\000\000\000\004\030\000m\000m\000m\nF\nJ\nV\000\000\015\190\007&\000m\000m\000\000\0076\000\000\000\000\000\000\000m\000\000\000\000\000\000\000m\000\000\026:\000\000\002\217\000\000\000\000\000\000\002F\0072\0076\000m\000m\000\000\002\217\000m\000m\t\181\000\000\025\238\000\000\000\000\002\217\000\000\000\000\000m\000\000\000\000\000\000\000\000\000\n\000m\000m\007:\n^\000\000\000\000\000\133\nv\004\194\002\217\000m\000\133\000m\002\250\000\133\002\217\002\182\002\217\011\198\000\000\000\000\0036\000\000\002\217\000\133\000\000\000\133\t\181\000\133\002\217\000\133\001\218\000\000\011\254\004\217\003:\000\000\000\000\002\217\026\174\000\000\012\006\000\133\000\000\003>\002\217\000\000\003\214\t\181\000\133\000\000\000\000\002\217\000\133\000\000\004\022\002\217\001\198\003\174\000\133\000\000\000\000\000\133\002\238\000\n\000\000\004\030\000\133\000\133\000\133\nF\nJ\nV\000\000\015\190\007&\000\133\000\133\000\000\000\000\002\217\027\"\t\181\000\133\000\000\000\000\005f\000\133\002\217\t\181\021\198\007\238\000\000\000\000\002\217\021\222\0072\0076\000\133\000\133\000\000\000\000\000\133\000\133\027\198\027\214\000\000\000\000\000\000\000\000\000\000\007\242\000\133\000\000\000\000\000\000\000\000\002\217\000\133\000\133\007:\n^\000\000\000\000\000\000\nv\004\194\n)\000\133\000\006\000\133\004\217\000\254\002\246\002\250\002\254\003*\002\182\000\000\000\000\028\202\000\000\0036\000\000\000\000\004\225\000\000\n)\000\000\n)\n)\003\174\001\218\000\000\000\246\000\000\003:\000\000\003\178\003\182\000\000\000\000\000\000\003\186\000\000\003>\000\000\000\000\003\214\018\014\021b\000\000\004\002\004\006\000\000\004\n\004\022\004\"\004&\004.\b\234\000\000\000\000\021\198\002\238\018\022\000\000\004\030\021\222\000\000\000\000\nF\nJ\nV\nj\000\000\007&\000\000\000\000\007\246\000\000\000\000\007\154\r\186\021\230\000\000\n\222\000\000!\"\b\022\000\000\000\000\000\000\b\"\n\234\011\002\011\138\0072\0076\021\238\022*\000\000\000\006!C\018\206\000\254\002\246\002\250\002\254\003*\002\182\000\000\000\000\019~\000\000\0036\002\182\000\000!r\000\000\026\130\007:\n^\n)\003\174\001\218\nv\004\194\011\158\003:\000\000\003\178\003\182\000\000\026*\000\000\003\186\000\000\003>\000\000\000\000\003\214\000\000\021b\000\000\004\002\004\006\000\000\004\n\004\022\004\"\004&\004.\b\234\000\000\019\130\021\198\002\238\000\000\000\000\004\030\021\222\000\000\000\000\nF\nJ\nV\nj\000\000\007&\019\142\000\000\026N\000\000\000\000\000\000\000\000\021\230\000\000\n\222\000\000!\"\000\000\000\000\000\000\000\000\000Y\n\234\011\002\011\138\0072\0076\021\238\022*\000\000\000Y\004\233\0076\000\000\000Y\000\000\000\000\001\014\000\000\000\000\000\000\000\000\026Z\003N\002\250\011Z\000\000\002\182\026\130\007:\n^\017\206\0036\001\018\nv\004\194\011\158\002\202\000Y\025\238\000\000\000\000\001\218\000\000\000\000\000Y\001\022\001\026\001\030\003n\001&\001*\000\000\000\000\000\000\000\000\000\000\000Y\000\000\000\000\003r\000\000\0016\007\222\000\000\000\000\003j\014\022\001\198\001>\000\000\000\000\001B\000\000\002\238\000Y\000\000\0042\000\000\000\000\000\000\0046\000\000\004>\007\026\000\000\007&\000\000\000\000\001F\001J\001N\001R\001V\007\209\000\000\000\000\001Z\007*\007\209\000\000\001^\000Y\000\000\000\000\000\000\002\218\0072\0076\000\000\007z\001b\000\000\000\000\000\000\007\238\000Y\001f\007\209\019~\000\000\000\000\002\182\000\000\000\000\000\000\000\000\001\162\007\226\001\214\000\000\007:\000\000\000\000\001\166\007\242\001\170\004\194\001\014\000\000\001\174\007\209\001\178\001\182\003N\002\250\rF\001\218\002\182\000\000\007\209\000\000\000\000\0036\001\018\007\209\007\209\000\246\002\202\000\000\023z\019\130\000\000\001\218\007\209\007\209\000\000\001\022\001\026\001\030\003n\001&\001*\004\138\000\000\023\242\019\142\000\000\000\246\002\238\000\000\003r\000\000\0016\007\222\000\000\024\n\003j\014\022\001\198\001>\007\209\000\000\001B\000\000\002\238\000\000\000\000\0042\000\000\007\209\000\000\0046\0076\004>\007\026\000\000\007&\000\000\000\000\001F\001J\001N\001R\001V\014\237\028\170\000\000\001Z\007*\014\237\000\000\001^\007\246\000\000\000\000\007\154\014&\0072\0076\0306\007z\001b\b\022\000\000\000\000\000\000\b\"\001f\014\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\162\007\226\000\000\000\000\007:\000\000\000\000\001\166\000\000\001\170\004\194\001\014\000\000\001\174\014\237\001\178\001\182\003N\002\250\r^\000\000\002\182\000\000\014\237\000\000\000\000\0036\001\018\014\237\014\237\000\246\002\202\000\000\000\000\000\000\000\000\001\218\014\237\014\237\000\000\001\022\001\026\001\030\003n\001&\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003r\000\000\0016\007\222\000\000\000\000\003j\014\022\001\198\001>\014\237\000\000\001B\000\000\002\238\000\000\000\000\0042\000\000\014\237\000\000\0046\000\000\004>\007\026\000\000\007&\000\000\000\000\001F\001J\001N\001R\001V\000\000\000\000\000\000\001Z\007*\000\000\000\000\001^\000\000\000\000\000\000\000\000\000\000\0072\0076\004\209\007z\001b\000\000\000\000\023\146\014\161\014\141\001f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\162\007\226\000\000\000\000\007:\000\000\003\174\001\166\014\161\001\170\004\194\002&\004\r\001\174\002*\001\178\001\182\004\r\003N\002\250\004\r\003\n\002\182\000\000\b\158\000\000\000\000\0036\0026\023\190\004\r\002>\000\000\014\141\004\r\000\000\004\r\001\218\021\198\b\214\000\000\000\000\000\000\021\222\003R\000\000\000\000\011\014\004\r\000\000\000\000\000\000\000\000\023\234\000\000\004\r\002B\000\000\003^\000\000\000\000\rZ\000\000\001\198\000\000\004\r\000\000\000\000\004\r\002\238\000\000\000\000\0042\004\r\004\r\011\253\0046\000\000\004>\004\209\rr\007&\000\000\000\000\000\000\000\000\000\000\000\000\024N\004\r\004\r\000\000\000\000\007*\000\000\000\000\000\000\000\000\002\250\000\000\000\000\002F\0072\0076\004\r\004\r\r\210\000\000\004\r\004\r\000\000\000\000\000\000\000\000\000\000\bB\001\218\000\000\000\000\000\000\011\253\011\210\000\000\011\253\014\150\004\r\007:\000\000\000\000\026\162\011\253\001\014\004\194\000\000\011\253\bF\004\r\003N\002\250\016\254\027\226\002\182\003\226\000\000\027\230\000\000\0036\001\018\002\238\000\000\000\000\002\202\000\000\000\000\000\000\028\022\001\218\000\000\000\000\000\000\001\022\001\026\001\030\003n\001&\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003r\000\000\0016\007\222\000\246\028&\003j\014\022\001\198\001>\000\000\000\000\001B\000\000\002\238\000\000\000\000\0042\000\000\000\000\000\000\0046\000\000\004>\007\026\000\000\007&\000\000\000\000\001F\001J\001N\001R\001V\004\173\000\000\000\000\001Z\007*\004\173\000\000\001^\000\000\000\000\000\000\000\000\000\000\0072\0076\007\246\007z\001b\007\154\000\000\000\000\000\000\000\000\001f\004\173\b\022\000\000\000\000\000\000\b\"\000\000\000\000\000\000\001\162\007\226\000\000\000\000\007:\000\000\000\000\001\166\000\000\001\170\004\194\001\014\000\000\001\174\004\173\001\178\001\182\003N\002\250\007\190\000\000\002\182\000\000\004\173\000\000\000\000\0036\001\018\004\173\003\"\000\246\002\202\019~\000\000\000\000\002\182\001\218\004\173\004\173\000\000\001\022\001\026\001\030\003n\001&\001*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003r\000\000\0016\007\222\000\000\000\000\003j\rz\001\198\001>\004\173\000\000\001B\000\000\002\238\000\000\000\000\0042\000\000\004\173\019\130\0046\000\000\004>\007\026\000\000\007&\000\000\000\000\001F\001J\001N\001R\001V\000\000\019\142\000\000\001Z\007*\000\000\000\000\001^\000\000\000\000\003\206\000\000\002\250\0072\0076\000\000\007z\001b\000\000\003\162\000\000\000\000\000\000\001f\000\000\n\014\000\000\000\000\0076\000\000\001\218\000\000\000\000\001\162\007\226\000\000\000\000\007:\000\000\000\000\001\166\000\000\001\170\004\194\000\000\006\133\001\174\000\000\001\178\001\182\006\133\000\000\006\133\006\133\003\202\026\002\000\000\000\000\000\000\000\000\000\000\006\133\002\238\006\133\006\133\006\133\000\000\006\133\006\133\006\133\000\000\t\153\000\000\000\000\000\000\000\000\000\000\003e\000\000\000\000\000\000\006\133\000\000\000\000\003e\000\000\000\000\003e\006\133\006\133\000\000\b\254\006\133\000\000\t\153\003e\006\133\000\000\006\133\000\000\000\000\006\133\000\000\003e\000\000\000\000\006\133\006\133\006\133\000\000\000\000\000\000\000\000\003e\000\000\006\133\006\133\000\000\000\000\003e\000\000\003e\006\133\006\133\000\000\000\000\006\133\003e\000\000\006\133\000\000\000\000\000\000\003e\000\000\000\000\000\000\006\133\006\133\006\133\000\000\006\133\006\133\000\000\000\000\000\000\000\000\t\153\000\000\000\000\000\000\006\133\000\000\006\133\006\133\000]\021\234\006\133\006\133\000\000\000\000\000\000\000\000\006\133\000]\006\209\000\000\006\133\000]\006\133\006\209\000\000\006\209\006\209\000\000\000\000\000\000\002\217\002\217\000\000\000\000\006\209\000\000\006\209\006\209\006\209\000\000\006\209\006\209\006\209\000\000\t\157\000]\000\000\000\000\000\000\000\000\002\217\000\000\000]\002\217\006\209\000\000\002\217\000\n\000\000\000\000\000\000\006\209\006\209\002\217\000]\006\209\000\000\t\157\000\000\006\209\002\217\006\209\000\000\002\217\006\209\002\217\000\000\000\000\000\000\006\209\006\209\006\209\000]\000\000\000\000\000\000\000\000\002\217\006\209\006\209\000\000\000\000\000\000\000\000\000\000\006\209\006\209\000\000\002\217\006\209\000\000\000\000\006\209\000\000\000\000\000\000\000\000\000\000\000\000\000]\006\209\006\209\006\209\005\186\006\209\006\209\000\000\000\000\000\000\000\000\t\157\000\000\000\000\000]\006\209\000\000\006\209\006\209\000\000\000\000\006\209\006\209\000\000\000\000\000\000\000\000\006\209\000\000\012\025\000\000\006\209\012\025\006\209\002\217\012\025\012\025\000\000\002\217\012\025\000\000\012\025\000\000\002\217\012\025\000\000\000\000\000\000\012\025\012\025\000\000\012\025\012\025\000\000\012\025\000\000\012\025\000\000\000\000\000\000\000\000\012\025\002\217\000\000\012\025\000\000\000\000\000\000\000]\0012\000\000\000\n\000\000\012\025\000\000\012\025\002\217\000]\012\025\000\000\012\025\000]\000\000\002\217\000\000\002\217\012\025\002\217\000\000\012\025\000\000\000\000\012\025\012\025\002\217\012\025\000\000\012\025\012\025\002\217\000\000\002\217\000\n\000\000\000\000\000]\000\000\012\025\002\217\002\217\012\025\000\000\000]\000\000\000\000\002\217\000\000\000\000\002\217\012\025\012\025\000\000\000\000\012\025\000]\012\025\002\217\000\000\000\000\000\000\007V\000\000\002\217\000\000\000\n\002\217\000\000\012\025\012\025\000\000\012\025\012\025\000]\012\025\002\217\012\025\000\000\012\025\000\000\012\025\002\217\012\025\000Y\000Y\000\000\002\217\000\000\000Y\002\217\000Y\000Y\000\000\000\000\000\000\002\217\000\000\000\000\000\000\000Y\000]\000Y\000Y\000Y\020*\000Y\000Y\000Y\000\000\000\000\000\254\000\000\000\000\002\254\000]\000\000\000\000\000\000\002\217\000Y\000\000\000\000\000\000\004\225\000\000\000\000\000Y\000Y\000\000\003\174\000Y\000\000\000\000\000\000\000Y\000\000\000Y\000\000\000\000\000Y\000\000\003\186\000\000\000\000\000Y\000Y\000Y\000\000\021b\000\000\000\000\003\190\000\000\000Y\000Y\000\000\000\000\000\000\029J\000\000\000Y\021\198\000\000\000\000\000Y\000\000\021\222\000Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Y\000Y\000Y\000\000\000Y\000Y\000\000\021\230\000\000\000\000\000\000\002\217\000\000\000\000\000Y\000\000\000Y\000Y\002\217\000\000\004^\000Y\021\238\022*\000\000\000\000\000Y\000\000\000\000\002\217\000Y\002\217\000Y\000Y\000\000\002\217\002\217\000\n\002\217\002\217\000\000\002\217\002\217\026\130\002\217\002\217\000\000\000\000\002\217\000\000\002\217\000\000\000\000\002\217\002\217\000\000\002\217\000\000\002\217\000\000\002\217\002\217\000\n\002\217\002\217\b\238\000\000\002\217\000\n\000\000\002\217\000\n\0196\000\000\002\217\002\217\000\000\002\217\002\217\002\217\002\217\002\217\002\217\000\000\002\217\000\000\002\217\002\217\000\000\002\217\002\217\000\000\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\000\000\002\217\002\217\000\000\002\217\002\217\000\000\002\217\002\217\000\000\002\217\000\000\000\000\000\000\000\000\000\000\002\217\002\217\002\217\002\217\002\217\000\000\019r\b\242\000\000\002\217\002\217\000\000\002\217\002\217\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\217\002\217\000\000\n\021\n\021\002\217\002\217\002\217\n\021\002\217\001\214\n\021\002\217\002\217\000\000\002\217\000\000\000\000\000\000\n\021\000\000\n\021\n\021\n\021\000\000\n\021\n\021\n\021\000\000\000\000\000\000\000\000\000\254\000\000\000\000\002\026\000\000\000\000\000\000\n\021\000\000\000\000\000\000\000\000\000\000\022j\n\021\n\021\000\000\000\000\n\021\003\174\000\000\000\000\004\138\000\000\n\021\000\000\000\000\n\021\000\000\000\000\000\000\022n\n\021\n\021\n\021\000\000\000\000\000\000\022\150\000\000\000\000\n\021\n\021\000\000\000\000\000\000\000\000\000\000\n\021\000\000\000\000\021\198\005\014\000\000\000\000\n\021\021\222\000\000\000\000\000\000\000\000\000\000\000\000\n\021\n\021\n\021\000\000\n\021\n\021\000\000\000\000\000\000\021\230\000\000\000\000\000\000\000\205\n\021\000\000\n\021\n\021\000\205\000\000\000\000\n\021\000\000\000\000\021\238\023.\n\021\000\000\004\181\000\000\n\021\000\000\n\021\n\021\014a\014a\000\000\000\205\000\000\014a\000\000\001\214\014a\000\000\000\000\023>\000\000\000\000\000\000\000\000\005\"\000\000\014a\014a\014a\000\000\014a\014a\014a\000\000\000\205\000\000\003J\000\000\000\000\000\000\000\000\000\000\000\000\000\205\014a\000\000\000\000\000\000\000\205\000\000\000\000\014a\014a\000\000\000\000\014a\000\000\000\205\000\205\004\138\000\000\014a\000\000\000\000\014a\000\000\000\000\005\153\014\225\014a\014a\014a\000\000\000\000\000\000\000\000\000\000\000\000\014a\014a\000\000\000\000\000\000\000\000\000\205\014a\005\153\000\000\000\000\005\014\005\153\000\000\014a\000\205\000\000\000\000\000\000\000\000\000\000\000\000\014a\014a\014a\000\000\014a\014a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014a\000\000\014a\014a\000\000\000\000\000\000\014a\000\000\000\000\000\000\000\000\014a\000\000\000\000\000\000\014a\000\000\014a\014a\n\025\n\025\000\000\000\000\000\000\n\025\000\000\001\214\n\025\000\000\000\000\000\000\000\000\014\225\014\225\000\000\n\025\000\000\n\025\n\025\n\025\000\000\n\025\n\025\n\025\000\000\000\000\005\153\000\000\000\000\000\000\000\000\000\000\014\225\000\000\014\225\n\025\000\000\000\000\000\000\000\000\000\000\005\153\n\025\n\025\005\153\000\000\n\025\000\000\000\000\000\000\004\138\000\000\n\025\000\000\000\000\n\025\000\000\000\000\000\000\000\000\n\025\n\025\n\025\000\000\000\000\000\000\000\000\000\000\000\000\n\025\n\025\000\000\000\000\000\000\000\000\000\000\n\025\000\000\000\000\000\000\005\014\000\000\014}\n\025\000\000\000\000\000\000\014}\000\000\000\000\014}\n\025\n\025\n\025\000\000\n\025\n\025\000\000\000\000\000\000\014}\000\000\000\000\000\000\014}\n\025\014}\n\025\n\025\000\000\000\000\000\000\n\025\000\000\000\000\000\000\000\000\n\025\014}\000\000\007y\n\025\000A\n\025\n\025\014}\000A\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000A\000\000\000\000\014}\000\000\007y\000\000\000\000\014}\014}\000A\000\000\000\000\000\000\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000\000\000A\014}\000\000\000A\000\000\000\000\000\000\000A\000A\000\000\000A\000A\000A\000A\000A\000A\014}\014}\002\174\000A\014}\014}\000A\000\000\000\000\000\000\000A\000A\000A\000A\014}\000A\000\000\000\000\031z\000\000\000\000\014}\000\000\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\014}\000A\000A\000A\000A\000A\000\000\007u\000\000\000=\000\000\000\000\000\000\000=\000=\000\000\000=\000=\000\000\000\000\000\000\000\000\000=\000\000\000\000\000\000\000\000\007u\000A\000A\000\000\000\000\000=\000A\000A\000A\000=\000\000\000=\000=\000\000\000\000\000\000\000\000\000\000\000=\000\000\000\000\000=\000\000\000\000\000\000\000=\000=\000\000\000=\000=\000=\000=\000=\000=\000\000\000\000\000\000\000=\000\000\000\000\000=\000\000\000\000\000\000\000=\000=\000=\000=\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000=\000=\000=\000=\000=\000\000\007\133\000\000\014)\000\000\000\000\000\000\014)\014)\000\000\014)\014)\000\000\000\000\000\000\000\000\014)\000\000\000\000\000\000\000\000\007\133\000=\000=\000\000\000\000\014)\000=\000=\000=\014)\000\000\014)\014)\000\000\000\000\000\000\000\000\000\000\014)\000\000\000\000\014)\000\000\000\000\000\000\014)\014)\000\000\014)\014)\014)\014)\014)\014)\000\000\000\000\000\000\014)\000\000\000\000\014)\000\000\000\000\000\000\014)\014)\014)\014)\000\000\014)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014)\014)\014)\014)\014)\000\000\007\129\000\000\014%\000\000\000\000\000\000\014%\014%\000\000\014%\014%\000\000\000\213\000\000\000\000\014%\000\000\000\213\000\000\000\000\007\129\014)\014)\000\000\000\000\014%\014)\014)\014)\014%\000\000\014%\014%\000\000\000\000\000\000\000\213\000\000\014%\000\000\000\000\014%\000\000\000\000\000\000\014%\014%\000\000\014%\014%\014%\014%\014%\014%\000\000\000\000\000\000\014%\000\000\000\213\014%\023\130\000\000\000\000\014%\014%\014%\014%\000\213\014%\000\000\000\000\000\000\000\213\000\000\005\157\014\225\000\000\000\000\014%\000\000\000\000\000\000\000\213\000\000\000\000\000\000\014%\014%\014%\014%\014%\000\000\000\000\005\157\000\000\000\000\000\000\005\157\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\246\002\250\000\213\003*\002\182\000\000\000\000\014%\014%\0036\000\000\000\213\014%\014%\014%\000\000\004:\000\000\000\000\001\218\000\000\000\000\000\000\003:\000\000\003\178\003\182\000\000\000\000\000\000\000\000\000\000\003>\000\000\000\000\003\214\000\000\000\000\000\000\004\002\004\006\000\000\004\n\004\022\004\"\004&\004.\b\234\014\225\014\225\000\000\002\238\000\000\000\000\004\030\000\000\000\000\000\000\nF\nJ\nV\nj\005\157\007&\000\000\000\000\000\000\000\000\014\225\000\000\014\225\000\000\000\000\n\222\000\000\000\000\000\000\005\157\000\000\000\000\005\157\n\234\011\002\011\138\0072\0076\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000\000\000\000\000\002\246\002\250\000\000\003*\002\182\000\000\000\000\007:\n^\0036\000\000\000\000\nv\004\194\011\158\000\000\018:\000\000\000\000\001\218\000\000\000\000\000\000\003:\000\000\003\178\003\182\000\000\000\000\000\000\000\000\000\000\003>\000\000\000\000\003\214\000\000\000\000\000\000\004\002\004\006\000\000\004\n\004\022\004\"\004&\004.\b\234\007\185\007\185\000\000\002\238\000\000\000\000\004\030\000\000\000\000\000\000\nF\nJ\nV\nj\000\000\007&\004z\000\000\000\000\007\185\007\185\007\185\000\000\000\000\000\000\n\222\000\000\000\000\000\000\007\185\000\000\000\000\000\000\n\234\011\002\011\138\0072\0076\000\000\000\000\000\000\000\000\000\000\007\185\007\185\007\185\000\000\000\000\000\000\007\185\000\000\007\185\007\185\007\185\014e\014e\000\000\000\000\007\185\014e\007:\n^\014e\000\000\000\000\nv\004\194\011\158\000\000\000\000\004\242\000\000\014e\014e\014e\007\185\014e\014e\014e\n\182\000\000\000\000\000\000\000\000\000\000\000\000\002\014\000\000\000\000\000\000\014e\000\000\000\000\000\000\000\000\000\000\002\018\014e\014e\000\000\000\000\014e\000\000\000\000\001\218\000\000\000\000\014e\000\000\000\000\014e\000\000\004n\000\000\007\185\014e\014e\014e\000\000\000\000\000\000\000\000\003\146\000\000\014e\014e\000\000\000\000\t\022\000\000\001\230\014e\000\000\000\000\000\000\014e\002\238\000\000\014e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014e\014e\014e\000\000\014e\014e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014e\000\000\014e\014e\000\000\t\026\000\000\014e\000\000\000\000\000\000\000\000\014e\000\000\012%\000\000\014e\012%\014e\014e\003N\002\250\000\000\000\000\002\182\000\000\000\000\000\000\000\000\0036\000\000\000\000\000\000\012%\012%\000\000\012%\012%\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\000\000\b\133\000\000\000\000\b\133\000\000\012%\000\000\003^\000\000\000\000\003j\011\026\001\198\000\000\000\000\000\000\000\000\000\000\002\238\b\133\b\133\0042\b\133\b\133\012%\0046\000\000\004>\007\026\000\000\007&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012%\000\000\000\000\007*\000\000\b\133\000\000\000\000\000\000\000\000\000\000\000\000\0072\0076\000\000\007z\012%\000\000\012%\000\000\000\000\000\000\000\000\000\000\b\133\000\000\000\000\000\000\000\000\000\000\012%\000\000\000\000\012%\012%\000\000\007:\000\000\012%\b\133\012%\000\000\004\194\012!\012%\000\000\012!\000\000\000\000\003N\002\250\000\000\000\000\002\182\000\000\b\133\000\000\b\133\0036\000\000\000\000\000\000\012!\012!\000\000\012!\012!\000\000\001\218\007\146\000\000\000\000\b\133\b\133\020\230\003R\000\000\b\133\000\000\b\133\000\000\002\014\000\000\b\133\000\000\000\000\000\000\012!\000\000\003^\000\000\002\018\007\186\000\000\001\198\000\000\000\000\000\000\000\000\001\218\002\238\021\"\000\000\0042\000\000\000\000\012!\0046\002\014\004>\007\026\000\000\007&\000\000\000\000\000\000\000\000\003\146\002\018\000\000\000\000\012!\000\000\t\022\007*\001\230\001\218\000\000\000\000\000\000\000\000\002\238\000\000\0072\0076\000\000\007z\012!\000\000\012!\000\000\000\000\000\000\000\000\003\146\000\000\000\000\000\000\003\025\003\025\t\022\012!\001\230\003\025\012!\012!\003\025\007:\002\238\012!\t\026\012!\000\000\004\194\000\000\012!\003\025\003\025\003\025\000\000\003\025\003\025\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\025\000\000\000\000\t\026\000\000\000\000\000\000\003\025\004\206\000\000\000\000\003\025\000\000\000\000\000\000\000\000\000\000\003\025\000\000\000\000\003\025\000\000\000\000\000\000\000\000\003\025\003\025\003\025\000\000\000\000\000\000\r\197\r\197\000\000\003\025\003\025\r\197\000\000\000\000\r\197\000\000\003\025\000\000\000\000\000\000\003\025\000\000\000\000\003\025\r\197\r\197\r\197\000\000\r\197\r\197\r\197\003\025\003\025\003\025\000\000\003\025\003\025\000\000\000\000\000\000\000\000\000\000\r\197\000\000\000\000\003\025\000\000\003\025\003\025\r\197\004\222\000\000\003\025\r\197\000\000\000\000\000\000\003\025\000\000\r\197\000\000\003\025\r\197\003\025\003\025\000\000\000\000\r\197\r\197\r\197\000\000\000\000\000\000\r\213\r\213\000\000\r\197\r\197\r\213\000\000\000\000\r\213\000\000\r\197\000\000\000\000\000\000\r\197\000\000\000\000\r\197\r\213\r\213\r\213\000\000\r\213\r\213\r\213\r\197\r\197\r\197\000\000\r\197\r\197\000\000\000\000\000\000\000\000\000\000\r\213\000\000\000\000\r\197\000\000\r\197\r\197\r\213\004\222\000\000\r\197\r\213\000\000\000\000\000\000\r\197\000\000\r\213\000\000\r\197\r\213\r\197\r\197\000\000\000\000\r\213\r\213\r\213\000\000\000\000\000\000\r\209\r\209\000\000\r\213\r\213\r\209\000\000\000\000\r\209\000\000\r\213\000\000\000\000\000\000\r\213\000\000\000\000\r\213\r\209\r\209\r\209\000\000\r\209\r\209\r\209\r\213\r\213\r\213\000\000\r\213\r\213\000\000\000\000\000\000\000\000\000\000\r\209\000\000\000\000\r\213\000\000\r\213\r\213\r\209\004\206\000\000\r\213\r\209\000\000\000\000\000\000\r\213\000\000\r\209\000\000\r\213\r\209\r\213\r\213\000\000\000\000\r\209\r\209\r\209\000\000\000\000\000\000\r}\r}\000\000\r\209\r\209\r}\000\000\000\000\r}\000\000\r\209\000\000\000\000\000\000\r\209\000\000\000\000\r\209\r}\r}\r}\000\000\r}\r}\r}\r\209\r\209\r\209\000\000\r\209\r\209\000\000\000\000\000\000\000\000\000\000\r}\000\000\000\000\r\209\000\000\r\209\r\209\r}\004\222\000\000\r\209\r}\000\000\000\000\000\000\r\209\000\000\r}\000\000\r\209\r}\r\209\r\209\000\000\000\000\r}\r}\r}\000\000\000\000\000\000\ry\ry\000\000\r}\r}\ry\000\000\000\000\ry\000\000\r}\000\000\000\000\000\000\r}\000\000\000\000\r}\ry\ry\ry\000\000\ry\ry\ry\r}\r}\r}\000\000\r}\r}\000\000\000\000\000\000\000\000\000\000\ry\000\000\000\000\r}\000\000\r}\r}\ry\004\206\000\000\r}\ry\000\000\000\000\000\000\r}\000\000\ry\000\000\r}\ry\r}\r}\000\000\000\000\ry\ry\ry\000\000\000\000\000\000\r\141\r\141\000\000\ry\ry\r\141\000\000\000\000\r\141\000\000\ry\000\000\000\000\000\000\ry\000\000\000\000\ry\r\141\r\141\r\141\000\000\r\141\r\141\r\141\ry\ry\ry\000\000\ry\ry\000\000\000\000\000\000\000\000\000\000\r\141\000\000\000\000\ry\000\000\ry\ry\r\141\004\222\000\000\ry\r\141\000\000\000\000\000\000\ry\000\000\r\141\000\000\ry\r\141\ry\ry\000\000\000\000\r\141\r\141\r\141\000\000\000\000\000\000\r\137\r\137\000\000\r\141\r\141\r\137\000\000\000\000\r\137\000\000\r\141\000\000\000\000\000\000\r\141\000\000\000\000\r\141\r\137\r\137\r\137\000\000\r\137\r\137\r\137\r\141\r\141\r\141\000\000\r\141\r\141\000\000\000\000\000\000\000\000\000\000\r\137\000\000\000\000\r\141\000\000\r\141\r\141\r\137\004\206\000\000\r\141\r\137\000\000\000\000\000\000\r\141\000\000\r\137\000\000\r\141\r\137\r\141\r\141\000\000\000\000\r\137\r\137\r\137\000\000\000\000\000\000\r\149\r\149\000\000\r\137\r\137\r\149\000\000\000\000\r\149\000\000\r\137\000\000\000\000\000\000\r\137\000\000\000\000\r\137\r\149\r\149\r\149\000\000\r\149\r\149\r\149\r\137\r\137\r\137\000\000\r\137\r\137\000\000\000\000\000\000\000\000\000\000\r\149\000\000\000\000\r\137\000\000\r\137\r\137\r\149\004\222\000\000\r\137\r\149\000\000\000\000\000\000\r\137\000\000\r\149\000\000\r\137\r\149\r\137\r\137\000\000\000\000\r\149\r\149\r\149\000\000\000\000\000\000\r\145\r\145\000\000\r\149\r\149\r\145\000\000\000\000\r\145\000\000\r\149\000\000\000\000\000\000\r\149\000\000\000\000\r\149\r\145\r\145\r\145\000\000\r\145\r\145\r\145\r\149\r\149\r\149\000\000\r\149\r\149\000\000\000\000\000\000\000\000\000\000\r\145\000\000\000\000\r\149\000\000\r\149\r\149\r\145\004\206\000\000\r\149\r\145\000\000\000\000\000\000\r\149\000\000\r\145\000\000\r\149\r\145\r\149\r\149\000\000\000\000\r\145\r\145\r\145\000\000\000\000\000\000\r\133\r\133\000\000\r\145\r\145\r\133\000\000\000\000\r\133\000\000\r\145\000\000\000\000\000\000\r\145\000\000\000\000\r\145\r\133\r\133\r\133\000\000\r\133\r\133\r\133\r\145\r\145\r\145\000\000\r\145\r\145\000\000\000\000\000\000\000\000\000\000\r\133\000\000\000\000\r\145\000\000\r\145\r\145\r\133\004\222\000\000\r\145\r\133\000\000\000\000\000\000\r\145\000\000\r\133\000\000\r\145\r\133\r\145\r\145\000\000\000\000\r\133\r\133\r\133\000\000\000\000\000\000\r\129\r\129\000\000\r\133\r\133\r\129\000\000\000\000\r\129\000\000\r\133\000\000\000\000\000\000\r\133\000\000\000\000\r\133\r\129\r\129\r\129\000\000\r\129\r\129\r\129\r\133\r\133\r\133\000\000\r\133\r\133\000\000\000\000\000\000\000\000\000\000\r\129\000\000\000\000\r\133\000\000\r\133\r\133\r\129\004\206\000\000\r\133\r\129\000\000\000\000\000\000\r\133\000\000\r\129\000\000\r\133\r\129\r\133\r\133\000\000\000\000\r\129\r\129\r\129\000\000\000\000\000\000\r\193\r\193\000\000\r\129\r\129\r\193\000\000\000\000\r\193\000\000\r\129\000\000\000\000\000\000\r\129\000\000\000\000\r\129\r\193\r\193\r\193\000\000\r\193\r\193\r\193\r\129\r\129\r\129\000\000\r\129\r\129\000\000\000\000\000\000\000\000\000\000\r\193\000\000\000\000\r\129\000\000\r\129\r\129\r\193\004\206\000\000\r\129\r\193\000\000\000\000\000\000\r\129\000\000\r\193\000\000\r\129\r\193\r\129\r\129\000\000\000\000\r\193\r\193\r\193\000\000\000\000\000\000\r\173\r\173\000\000\r\193\r\193\r\173\000\000\000\000\r\173\000\000\r\193\000\000\000\000\000\000\r\193\000\000\000\000\r\193\r\173\r\173\r\173\000\000\r\173\r\173\r\173\r\193\r\193\r\193\000\000\r\193\r\193\000\000\000\000\000\000\000\000\000\000\r\173\000\000\000\000\r\193\000\000\r\193\r\193\r\173\004\222\000\000\r\193\r\173\000\000\000\000\000\000\r\193\000\000\r\173\000\000\r\193\r\173\r\193\r\193\000\000\000\000\r\173\r\173\r\173\000\000\000\000\000\000\r\169\r\169\000\000\r\173\r\173\r\169\000\000\000\000\r\169\000\000\r\173\000\000\000\000\000\000\r\173\000\000\000\000\r\173\r\169\r\169\r\169\000\000\r\169\r\169\r\169\r\173\r\173\r\173\000\000\r\173\r\173\000\000\000\000\000\000\000\000\000\000\r\169\000\000\000\000\r\173\000\000\r\173\r\173\r\169\004\206\000\000\r\173\r\169\000\000\000\000\000\000\r\173\000\000\r\169\000\000\r\173\r\169\r\173\r\173\000\000\000\000\r\169\r\169\r\169\000\000\000\000\000\000\r\181\r\181\000\000\r\169\r\169\r\181\000\000\000\000\r\181\000\000\r\169\000\000\000\000\000\000\r\169\000\000\000\000\r\169\r\181\r\181\r\181\000\000\r\181\r\181\r\181\r\169\r\169\r\169\000\000\r\169\r\169\000\000\000\000\000\000\000\000\000\000\r\181\000\000\000\000\r\169\000\000\r\169\r\169\r\181\004\222\000\000\r\169\r\181\000\000\000\000\000\000\r\169\000\000\r\181\000\000\r\169\r\181\r\169\r\169\000\000\000\000\r\181\r\181\r\181\000\000\000\000\000\000\r\177\r\177\000\000\r\181\r\181\r\177\000\000\000\000\r\177\000\000\r\181\000\000\000\000\000\000\r\181\000\000\000\000\r\181\r\177\r\177\r\177\000\000\r\177\r\177\r\177\r\181\r\181\r\181\000\000\r\181\r\181\000\000\000\000\000\000\000\000\000\000\r\177\000\000\000\000\r\181\000\000\r\181\r\181\r\177\004\206\000\000\r\181\r\177\000\000\000\000\000\000\r\181\000\000\r\177\000\000\r\181\r\177\r\181\r\181\000\000\000\000\r\177\r\177\r\177\000\000\000\000\000\000\r\165\r\165\000\000\r\177\r\177\r\165\000\000\000\000\r\165\000\000\r\177\000\000\000\000\000\000\r\177\000\000\000\000\r\177\r\165\r\165\r\165\000\000\r\165\r\165\r\165\r\177\r\177\r\177\000\000\r\177\r\177\000\000\000\000\000\000\000\000\000\000\r\165\000\000\000\000\r\177\000\000\r\177\r\177\r\165\004\222\000\000\r\177\r\165\000\000\000\000\000\000\r\177\000\000\r\165\000\000\r\177\r\165\r\177\r\177\000\000\000\000\r\165\r\165\r\165\000\000\000\000\000\000\r\161\r\161\000\000\r\165\r\165\r\161\000\000\000\000\r\161\000\000\r\165\000\000\000\000\000\000\r\165\000\000\000\000\r\165\r\161\r\161\r\161\000\000\r\161\r\161\r\161\r\165\r\165\r\165\000\000\r\165\r\165\000\000\000\000\000\000\000\000\000\000\r\161\000\000\000\000\r\165\000\000\r\165\r\165\r\161\004\206\000\000\r\165\r\161\000\000\000\000\000\000\r\165\000\000\r\161\000\000\r\165\r\161\r\165\r\165\000\000\000\000\r\161\r\161\r\161\000\000\000\000\000\000\r\189\r\189\000\000\r\161\r\161\r\189\000\000\000\000\r\189\000\000\r\161\000\000\000\000\000\000\r\161\000\000\000\000\r\161\r\189\r\189\r\189\000\000\r\189\r\189\r\189\r\161\r\161\r\161\000\000\r\161\r\161\000\000\000\000\000\000\000\000\000\000\r\189\000\000\000\000\r\161\000\000\r\161\r\161\r\189\004\222\000\000\r\161\r\189\000\000\000\000\000\000\r\161\000\000\r\189\000\000\r\161\r\189\r\161\r\161\000\000\000\000\r\189\r\189\r\189\000\000\000\000\000\000\r\185\r\185\000\000\r\189\r\189\r\185\000\000\000\000\r\185\000\000\r\189\000\000\000\000\000\000\r\189\000\000\000\000\r\189\r\185\r\185\r\185\000\000\r\185\r\185\r\185\r\189\r\189\r\189\000\000\r\189\r\189\000\000\000\000\000\000\000\000\000\000\r\185\000\000\000\000\r\189\000\000\r\189\r\189\r\185\004\206\000\000\r\189\r\185\000\000\000\000\000\000\r\189\000\000\r\185\000\000\r\189\r\185\r\189\r\189\000\000\000\000\r\185\r\185\r\185\000\000\000\000\000\000\r\157\r\157\000\000\r\185\r\185\r\157\000\000\000\000\r\157\000\000\r\185\000\000\000\000\000\000\r\185\000\000\000\000\r\185\r\157\r\157\r\157\000\000\r\157\r\157\r\157\r\185\r\185\r\185\000\000\r\185\r\185\000\000\000\000\000\000\000\000\000\000\r\157\000\000\000\000\r\185\000\000\r\185\r\185\r\157\004\222\000\000\r\185\r\157\000\000\000\000\000\000\r\185\000\000\r\157\000\000\r\185\r\157\r\185\r\185\000\000\000\000\r\157\r\157\r\157\000\000\000\000\000\000\r\153\r\153\000\000\r\157\r\157\r\153\000\000\000\000\r\153\000\000\r\157\000\000\000\000\000\000\r\157\000\000\000\000\r\157\r\153\r\153\r\153\000\000\r\153\r\153\r\153\r\157\r\157\r\157\000\000\r\157\r\157\000\000\000\000\000\000\000\000\000\000\r\153\000\000\000\000\r\157\000\000\r\157\r\157\r\153\004\206\000\000\r\157\r\153\000\000\000\000\000\000\r\157\000\000\r\153\000\000\r\157\r\153\r\157\r\157\000\000\000\000\r\153\r\153\r\153\000\000\000\000\000\000\r\205\r\205\000\000\r\153\r\153\r\205\000\000\000\000\r\205\000\000\r\153\000\000\000\000\000\000\r\153\000\000\000\000\r\153\r\205\r\205\r\205\000\000\r\205\r\205\r\205\r\153\r\153\r\153\000\000\r\153\r\153\000\000\000\000\000\000\000\000\000\000\r\205\000\000\000\000\r\153\000\000\r\153\r\153\r\205\004\222\000\000\r\153\r\205\000\000\000\000\000\000\r\153\000\000\r\205\000\000\r\153\r\205\r\153\r\153\000\000\000\000\r\205\r\205\r\205\000\000\000\000\000\000\r\201\r\201\000\000\r\205\r\205\r\201\000\000\000\000\r\201\000\000\r\205\000\000\000\000\000\000\r\205\000\000\000\000\r\205\r\201\r\201\r\201\000\000\r\201\r\201\r\201\r\205\r\205\r\205\000\000\r\205\r\205\000\000\000\000\000\000\000\000\000\000\r\201\000\000\000\000\r\205\000\000\r\205\r\205\r\201\004\206\000\000\r\205\r\201\000\000\000\000\000\000\r\205\000\000\r\201\000\000\r\205\r\201\r\205\r\205\000\000\000\000\r\201\r\201\r\201\000\000\000\000\000\000\001\213\001\213\000\000\r\201\r\201\001\213\000\000\000\000\001\213\000\000\r\201\000\000\000\000\000\000\r\201\000\000\000\000\r\201\001\213\001\213\001\213\000\000\001\213\001\213\001\213\r\201\r\201\r\201\000\000\r\201\r\201\000\000\000\000\000\000\000\000\000\000\001\213\000\000\000\000\r\201\000\000\r\201\r\201\001\213\001\213\000\000\r\201\001\213\000\000\000\000\000\000\r\201\000\000\001\213\000\000\r\201\001\213\r\201\r\201\000\000\000\000\001\213\001\213\001\213\000\000\000\000\000\000\000\000\000\000\000\000\001\213\001\213\000\000\000\000\000\000\000\000\000\000\001\213\000\000\000\000\000\000\001\213\000\000\000\000\001\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\213\001\213\001\213\000\000\001\213\001\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\213\000\000\001\213\001\213\003N\002\250\000\000\001\213\002\182\000\000\b\158\000\000\001\213\0036\007r\000\000\005f\000\000\001\213\000\000\003N\002\250\000\000\001\218\002\182\b\214\000\000\000\000\000\000\0036\003R\000\000\000\000\011\014\007v\000\000\004:\000\000\000\000\001\218\000\000\000\000\000\000\000\000\003^\000\000\003R\rZ\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\000\000\003^\011\253\0046\003j\004>\001\198\rr\007&\000\000\000\000\000\000\002\238\000\000\000\000\0042\000\000\004Y\000\000\0046\007*\004>\007\026\000\000\007&\000\000\000\000\000\000\000\000\0072\0076\000\000\000\000\r\210\005\233\005\233\007*\000\000\000\000\005\233\000\000\000\000\005\233\000\000\000\000\0072\0076\011\253\007z\000\000\011\253\011\253\005\233\007:\005\233\000\000\005\233\011\253\005\233\004\194\000\000\011\253\004Y\000\000\000\000\000\000\b6\000\000\000\000\007:\005\233\b\138\000\000\n\246\000\000\004\194\000\000\005\233\005\233\000\000\000\000\000\000\000\000\005\233\000\000\000\000\000\000\005\233\000\000\001\014\005\233\000\000\000\000\000\000\000\000\005\233\005\233\005\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\018\000\000\000\000\000\000\002\202\000\000\005\233\005\233\000\000\000\000\005\233\000\000\000\000\001\022\001\026\001\030\001\"\001&\001*\000\000\000\000\005\233\005\233\005\233\000\000\005\233\005\233\001.\000\000\0016\001:\t\194\000\000\000\000\000\000\000\000\001>\000\000\005\233\001B\000\000\005\233\005\233\003Y\003Y\000\000\000\000\000\000\003Y\000\000\000\000\003Y\000\000\005\233\000\000\000\000\001F\001J\001N\001R\001V\003Y\000\000\003Y\001Z\003Y\000\000\003Y\001^\003Y\003Y\000\000\000\000\000\000\003Y\000\000\000\000\003Y\001b\003Y\000\000\000\000\000\000\000\000\001f\000\000\003Y\003Y\000\000\003Y\000\000\003Y\005q\003Y\001\162 6\003Y\000\000\000\000\003Y\000\000\001\166\000\000\001\170\003Y\003Y\003Y\001\174\000\000\001\178\001\182\000\000\003Y\003Y\000\000\000\000\000\000\000\000\005u\000\000\003Y\000\000\003Y\000\000\003Y\003Y\000\000\000\000\000\000\000\000\003Y\003Y\003Y\000\000\000\000\003Y\003Y\003Y\000\000\003Y\003Y\000\000\000\000\000\000\000\000\005q\003Y\000\000\000\000\000\000\003Y\000\000\003Y\003Y\000\000\000\000\003Y\000\000\000\000\000\000\000\000\003Y\003Y\003Y\000\000\003Y\003Y\003Y\005\221\005\221\000\000\005u\000\000\005\221\000\000\000\000\005\221\000\000\003Y\003Y\000\000\000\000\003Y\000\000\0212\000\000\005\221\000\000\005\221\000\000\005\221\002\014\005\221\003Y\000\000\000\000\000\000\000\000\000\000\000\000\b\153\002\018\000\000\b\153\005\221\000\000\000\000\000\000\000\000\001\218\000\000\005\221\005\221\000\000\000\000\000\000\000\000\n\n\000\000\b\153\b\153\005\221\b\153\b\153\005\221\000\000\000\000\003\146\000\000\005\221\005\221\000\246\000\000\t\022\000\000\001\230\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\b\153\005\221\005\221\000\000\000\000\005\221\000\000\000\000\n%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\221\005\221\005\221\000\246\005\221\005\221\000\000\000\000\012Z\000\000\t\026\015\146\n%\000\000\n%\n%\000\000\005\221\b\153\000\000\005\221\005\221\012\146\012\170\012\178\012\154\012\186\000\000\000\000\000\000\000\000\000\000\005\221\000\000\b\153\000\000\b\153\012\194\012\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\210\b\153\000\000\000\000\007\154\b\153\000\000\000\000\000\246\b\153\000\000\b\153\000\000\000\000\001\014\b\153\000\000\012b\012\162\012\218\012\226\012\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\250\001\018\000\000\000\000\000\000\017\226\000\000\000\000\000\000\000\000\r\002\000\000\000\000\000\000\001\022\001\026\001\030\001\"\001&\001*\000\000\000\000\000\000\000\000\r\"\000\000\r*\012\234\001.\000\000\0016\001:\n%\r\n\000\000\000\000\000\000\001>\000\000\000\000\001B\r\018\r\026\000\000\ty\ty\000\000\000\000\000\000\ty\000\000\000\000\ty\000\000\000\000\000\000\000\000\001F\001J\001N\001R\001V\ty\000\000\ty\001Z\ty\000\000\ty\001^\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\001b\ty\000\000\000\000\000\000\000\000\001f\000\000\ty\ty\000\000\001\218\002\186\000\000\000\000\000\000\001\162 R\ty\000\000\000\000\ty\000\000\001\166\000\000\001\170\ty\ty\ty\001\174\000\000\001\178\001\182\000\000\000\000\002\222\004b\004\214\000\000\000\000\000\000\002\226\ty\002\238\004j\004v\ty\000\000\015-\015-\004\130\000\000\000\000\015-\000\000\000\000\015-\ty\ty\ty\000\000\ty\ty\000\000\000\000\000\000\015-\004\134\015-\000\000\015-\ty\015-\000\000\ty\000\000\000\000\000\000\ty\000\000\000\000\000\000\000\000\000\000\015-\000\000\000\000\005f\000\000\ty\000\000\015-\015-\000\000\000\000\000\000\000\000\004\146\000\000\000\000\000\000\015-\000\000\000\000\015-\000\000\000\000\000\000\000\000\015-\015-\015-\000\000\000\000\000\000\0151\0151\000\000\000\000\000\000\0151\000\000\000\000\0151\000\000\015-\000\000\000\000\000\000\015-\000\000\000\000\000\000\0151\000\000\0151\000\000\0151\000\000\0151\015-\015-\015-\000\000\015-\015-\000\000\000\000\000\000\000\000\004\162\0151\000\000\000\000\000\000\000\000\000\000\015-\0151\0151\000\000\015-\bq\000\000\004\146\bq\000\000\000\000\0151\000\000\000\000\0151\015-\000\000\000\000\000\000\0151\0151\0151\000\000\000\000\bq\bq\000\000\bq\bq\000\000\000\000\000\000\000\000\000\000\001M\0151\000\000\000\000\000\000\0151\000\000\000\000\016\218\000\000\000\000\000\000\000\000\012Z\000\000\bq\0151\0151\0151\001M\0151\0151\000\000\000\000\000\000\000\000\004\162\012\146\012\170\012\178\012\154\012\186\000\000\0151\bq\000\000\000\000\0151\000\000\000\000\000\000\000\000\012\194\012\202\000\000\000\000\000\000\000\000\0151\bq\000\000\000\000\012\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\000\000\bq\000\000\bq\000\000\012b\012\162\012\218\012\226\012\242\000\000\000\000\000\000\000\000\000\000\bq\000\000\012\250\007\154\bq\000\000\000\000\001M\bq\000\000\bq\000\000\r\002\000\000\bq\000\000\000\000\016\222\001I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\"\000\000\r*\012\234\000\000\012Z\000\000\000\000\001M\r\n\000\000\001I\000\000\000\000\000\000\000\000\001M\r\018\r\026\012\146\012\170\012\178\012\154\012\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\185\000\000\000\000\012\194\012\202\001\185\000\000\001\214\001\185\000\000\000\000\000\000\000\000\012\210\000\000\000\000\t\245\000\000\001\185\000\000\000\000\000\246\001\185\000\000\001\185\000\000\000\000\000\000\000\000\000\000\012b\012\162\012\218\012\226\012\242\000\000\001\185\000\000\000\000\000\000\000\000\000\000\012\250\001\185\001\185\000\000\000\000\001I\000\000\000\000\000\000\004\138\r\002\001\185\000\000\000\000\001\185\000\000\000\000\000\000\000\000\001\185\001\185\001\185\000\000\000\000\r\"\000\000\r*\012\234\000\000\000\000\000\000\000\000\001I\r\n\000\000\001\185\001\185\000\000\000\000\005\014\001I\r\018\r\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\185\001\185\000\000\000\000\001\185\001\185\000\000\000\000\000\000\000\000\000\000\001\181\000\000\000\000\001\185\000\000\001\181\000\000\001\214\001\181\000\000\001\185\000\000\000\000\000\000\000\000\001\185\t\241\000\000\001\181\000\000\000\000\001\185\001\181\001\197\001\181\000\000\000\000\000\000\001\197\000\000\001\214\001\197\000\000\000\000\000\000\000\000\001\181\000\000\000\000\n\001\000\000\001\197\000\000\001\181\001\181\001\197\000\000\001\197\000\000\000\000\000\000\004\138\000\000\001\181\000\000\000\000\001\181\000\000\000\000\001\197\000\000\001\181\001\181\001\181\000\000\000\000\001\197\001\197\000\000\000\000\000\000\000\000\000\000\000\000\004\138\000\000\001\197\001\181\001\181\001\197\000\000\005\014\000\000\000\000\001\197\001\197\001\197\000\000\000\000\000\000\000\000\000\000\001\181\001\181\000\000\000\000\001\181\001\181\000\000\000\000\001\197\001\197\000\000\000\000\005\014\000\000\001\181\000\000\000\000\000\000\000\000\000\000\000\000\001\181\000\000\001\197\001\197\000\000\001\181\001\197\001\197\000\000\000\000\000\000\001\181\000\000\001\193\000\000\000\000\001\197\000\000\001\193\000\000\001\214\001\193\000\000\001\197\000\000\000\000\000\000\000\000\001\197\t\253\000\000\001\193\000\000\000\000\001\197\001\193\001\189\001\193\000\000\000\000\000\000\001\189\000\000\001\214\001\189\000\000\000\000\000\000\000\000\001\193\000\000\000\000\t\249\000\000\001\189\000\000\001\193\001\193\001\189\000\000\001\189\000\000\000\000\000\000\004\138\000\000\001\193\000\000\000\000\001\193\000\000\000\000\001\189\000\000\001\193\001\193\001\193\000\000\000\000\001\189\001\189\000\000\000\000\000\000\000\000\000\000\000\000\004\138\000\000\001\189\001\193\001\193\001\189\000\000\005\014\000\000\000\000\001\189\001\189\001\189\000\000\000\000\000\000\000\000\000\000\001\193\001\193\000\000\000\000\001\193\001\193\000\000\000\000\001\189\001\189\000\000\000\000\005\014\000\000\001\193\000\000\000\000\000\000\000\000\000\000\000\000\001\193\000\000\001\189\001\189\000\000\001\193\001\189\001\189\000\000\000\000\000\000\001\193\000\000\003=\000\000\000\000\001\189\000\000\003=\000\000\001\214\003=\000\000\001\189\000\000\000\000\000\000\000\000\001\189\t\237\000\000\003=\000\000\000\000\001\189\003=\0039\003=\000\000\000\000\000\000\0039\000\000\001\214\0039\000\000\000\000\000\000\000\000\003=\000\000\000\000\t\237\000\000\0039\000\000\003=\001\177\0039\000\000\0039\000\000\000\000\000\000\004\138\000\000\003=\000\000\000\000\003=\000\000\000\000\0039\000\000\003=\003=\003=\000\000\000\000\0039\001\177\000\000\000\000\000\000\000\000\000\000\000\000\004\138\000\000\0039\003=\003=\0039\000\000\005\014\000\000\000\000\0039\0039\0039\000\000\000\000\000\000\000\000\000\000\003=\003=\000\000\000\000\003=\003=\000\000\000\000\0039\0039\000\000\000\000\005\014\000\000\003=\000\000\000\000\000\000\000\000\000\000\000\000\003=\000\000\0039\0039\000\000\003=\0039\0039\000\000\000\000\000\000\003=\000\000\b\006\000\000\000\000\0039\000\000\000\254\001\210\001\214\002\026\000\000\0039\000\000\000\000\000\000\000\000\0039\000\000\000\000\022j\000\000\000\000\0039\004\181\000\000\003\174\001\218\002\186\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\022n\000\000\000\000\000\000\000\000\000\000\000\000\022\150\000\000\000\000\000\000\000\000\000\000\002\234\002\206\004Z\000\000\000\000\000\000\002\226\021\198\002\238\004j\004v\000\000\021\222\000u\000\000\004\130\000\000\000\000\000u\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\021\230\000\000\000\000\000u\004\134\000u\000\000\000u\000\000\000u\000\000\000\000\000\000\000\000\000\000\021\238\023.\000\000\000\000\000\000\000\000\000u\000\000\000\000\000\000\000\000\000\000\000\000\000u\000\000\000\000\000\000\000u\000\000\000\000\000\000\023>\000\000\000u\000\000\000\000\000u\000\000\004\194\000\000\000\000\000u\000u\000\246\000\185\000\000\000\000\000\000\000\000\000\185\000u\000u\000\185\000\000\000\000\000\000\000\000\000u\000\000\000\000\000\000\000u\000\185\000\000\000\185\000\000\000\185\000\000\000\185\000\000\000\000\000\000\000u\000u\000\000\000\000\000u\000u\000\000\000\000\000\185\000\000\000\000\000\000\000\000\000\000\000u\000\185\000\000\000\000\000\000\000\185\000u\000u\000\000\000\000\000\000\000\185\000\000\000\000\000\185\000\000\000u\000\000\000u\000\185\000\185\000\246\000}\000\000\000\000\000\000\000\000\000}\000\185\000\185\000}\000\000\000\000\000\000\000\000\000\185\000\000\000\000\000\000\000\185\000}\000\000\000}\000\000\000}\000\000\000}\000\000\000\000\000\000\000\185\000\185\000\000\000\000\000\185\000\185\000\000\000\000\000}\000\000\000\000\000\000\000\000\000\000\000\185\000}\000\000\000\000\000\000\000}\000\185\000\185\000\000\000\000\000\000\000}\000\000\000\000\000}\000\000\000\185\000\000\000\185\000}\000}\000\246\000y\000\000\000\000\000\000\000\000\000y\000}\000}\000y\000\000\000\000\000\000\000\000\000}\000\000\000\000\000\000\000}\000y\000\000\000y\000\000\000y\000\000\000y\000\000\000\000\000\000\000}\000}\000\000\000\000\000}\000}\000\000\000\000\000y\000\000\000\000\000\000\000\000\000\000\000}\000y\000\000\000\000\000\000\000y\000}\000}\000\000\000\000\000\000\000y\000\000\000\000\000y\000\000\000}\000\000\000}\000y\000y\000\246\000\000\000\000\000\000\001\145\000\000\000\000\000y\000y\001\145\000\000\000\000\001\145\000\000\000y\000\000\000\000\000\000\000y\000\000\000\000\000\000\001\145\000\000\000\000\000\000\001\145\000\000\001\145\000y\000y\000\000\000\000\000y\000y\000\000\000\000\000\000\000\000\000\000\001\145\001\145\000\000\000y\000\000\000\000\000\000\001\145\000\000\000y\000y\014E\000\000\005q\014E\000\000\000\000\001\145\000\000\000y\001\145\000y\000\000\000\000\014E\001\145\001\145\001\145\015)\015)\014E\000\000\000\000\015)\000\000\000\000\015)\000\000\000\000\000\000\000\000\001\145\014E\000\000\000\000\001\145\015)\000\000\015)\014E\015)\000\000\015)\000\000\000\000\000\000\001\145\001\145\000\000\014E\001\145\001\145\014E\000\000\015)\000\000\005q\014E\000\000\000\000\001\145\015)\015)\000\000\000\000\000\000\001\145\001\145\000\000\000\000\000\000\015)\001\145\014E\015)\000\000\000\000\014E\001\145\015)\015)\015)\015%\015%\000\000\000\000\000\000\015%\014E\014E\015%\000\000\014E\000\000\000\000\015)\000\000\000\000!\026\015)\015%\000\000\015%\000\000\015%\000\000\015%\000\000\000\000\014E\015)\015)\015)\000\000\015)\015)\000\000\000\000\015%\000\000\000\000\000\000\000\000\000\000\000\000\015%\015%\015)\000\000\000\000\000\000\015)\000\000\000\000\000\000\015%\000\000\000\000\015%\000\000\005f\000\000\015)\015%\015%\015%\t}\t}\000\000\000\000\000\000\t}\000\000\000\000\t}\000\000\000\000\000\000\000\000\015%\000\000\000\000\000\000\015%\t}\000\000\t}\000\000\t}\000\000\t}\000\000\000\000\000\000\015%\015%\015%\000\000\015%\015%\000\000\000\000\t}\000\000\000\000\000\000\000\000\000\000\t^\t}\t}\015%\000\000\000\000\000\000\015%\000\000\000\000\000\000\t}\000\000\000\000\t}\n%\000\000\000\000\015%\t}\t}\000\246\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\012Z\000\000\000\000\015\146\t}\000\000\n%\000\000\t}\000\000\000\000\001\218\002\186\000\000\012\146\012\170\012\178\012\154\012\186\t}\t}\t}\000\000\t}\t}\000\000\019\154\000\000\000\000\012\194\012\202\000\000\000\000\t}\000\000\002\230\t}\004\214\000\000\012\210\t}\002\226\000\000\002\238\004j\004v\000\000\000\246\000\000\000\000\004\130\t}\019\162\007\229\000\000\000\000\012b\012\162\012\218\012\226\012\242\000\000\000\000\000\000\000\000\000\000\000\000\004\134\012\250\012Z\000\000\019\242\007\229\018N\000\000\018^\007\229\000\000\r\002\000\000\000\000\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\000\000\000\000\000\000\r\"\000\000\r*\012\234\000\000\000\000\012\194\012\202\000\000\r\n\000\000\000\000\000\000\000\000\000\000\000\000\012\210\r\018\r\026\000\000\000\000\000\000\000\000\000\000\000\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012b\012\162\012\218\012\226\012\242\000\000\000\000\000\000\001\177\000\000\000\000\007\229\012\250\001\177\000\000\001\214\001\177\018N\000\000\000\000\000\000\000\000\r\002\000\000\t\237\000\000\001\177\000\000\000\000\000\000\001\177\000\000\001\177\000\000\000\000\000\000\r\"\000\000\r*\012\234\000\000\000\000\000\000\000\000\001\177\r\n\000\000\000\000\000\000\000\000\000\000\001\177\000\000\r\018\r\026\000\000\000\000\000\000\000\000\004\138\000\000\001\177\021\022\000\000\001\177\000\000\000\000\000\000\000\000\001\177\001\177\001\177\000\000\000\000\000\000\000\000\000\000\000\000\012Z\000\000\000\000\000\000\021\026\000\000\000\000\001\177\001\177\000\000\000\000\005\014\000\000\000\000\012\146\012\170\012\178\012\154\012\186\000\000\000\000\000\000\001\177\001\177\000\000\000\000\001\177\001\177\000\000\012\194\012\202\000\000\000\000\000\000\000\000\000\000\001\177\000\000\000\000\012\210\000\000\000\000\000\000\001\177\000\000\000\000\000\000\000\246\001\177\000\000\000\000\000\000\000\000\000\000\001\177\000\000\012b\012\162\012\218\012\226\012\242\000\000\000\000\000\000\005i\000\000\000\000\000\000\012\250\005i\000\000\000Y\005i\000\000\000\000\000\000\000\000\000\000\r\002\000\000\000Y\000\000\005i\000\000\005i\000\000\005i\000\000\005i\000\000\000\000\000\000\r\"\021\030\r*\012\234\021.\000\000\000\000\000\000\005i\r\n\000\000\000\000\000\000\000\000\000\000\005i\000Y\r\018\r\026\000\000\000\000\000\000\000\000\000Y\000\000\000\000\000\000\000\000\005i\000\000\000\000\000\000\000\000\005i\005i\005i\000\000\006\021\006\021\000\000\000\000\000\000\006\021\000\000\000\000\006\021\000\000\000\000\000\000\005i\000\000\000\000\000\000\000Y\000\000\006\021\000\000\006\021\000\000\006\021\000\000\006\021\000\000\000\000\005i\005i\005i\000\000\005i\005i\000\000\000\000\000\000\006\021\000\000\000\000\000\000\000\000\000\000\000\000\006\021\006\021\000\000\000\000\024\214\005i\n\n\000\000\000\000\000\000\006\021\000\000\000\000\006\021\000\000\000\000\005i\000\000\006\021\006\021\000\246\006\017\t2\000\000\000\000\000\000\006\017\000\000\000\000\006\017\000\000\000\000\000\000\000\000\006\021\000\000\000\000\000\000\006\021\006\017\000\000\006\017\000\000\006\017\000\000\006\017\000\000\000\000\000\000\006\021\006\021\006\021\000\000\006\021\006\021\000\000\000\000\006\017\000\000\000\000\000\000\000\000\000\000\000\000\006\017\t\174\006\021\000\000\000\000\000\000\006\021\000\000\000\000\000\000\006\017\000\000\000\000\006\017\000\000\000\000\000\000\006\021\006\017\006\017\000\246\0155\0155\000\000\000\000\000\000\0155\000\000\000\000\0155\000\000\000\000\000\000\000\000\006\017\000\000\000\000\000\000\006\017\0155\000\000\0155\000\000\0155\000\000\0155\000\000\000\000\000\000\006\017\006\017\006\017\000\000\006\017\006\017\000\000\000\000\0155\000\000\000\000\000\000\000\000\000\000\000\000\0155\0155\006\017\000\000\000\000\000\000\006\017\000\000\000\000\000\000\0155\000\000\000\000\0155\000\000\000\000\000\000\006\017\0155\0155\000\246\0159\0159\000\000\000\000\000\000\0159\000\000\000\000\0159\000\000\000\000\000\000\000\000\0155\000\000\000\000\000\000\0155\0159\000\000\0159\000\000\0159\000\000\0159\000\000\000\000\000\000\0155\0155\0155\000\000\0155\0155\000\000\000\000\0159\000\000\000\000\000\000\000\000\000\000\000\000\0159\t\174\0155\000\000\000\000\000\000\0155\000\000\000\000\000\000\0159\000\000\000\000\0159\000\000\000\000\000\000\0155\0159\0159\000\246\006)\t2\000\000\000\000\000\000\006)\000\000\000\000\006)\000\000\000\000\000\000\000\000\0159\000\000\000\000\000\000\0159\006)\000\000\006)\000\000\006)\000\000\006)\000\000\000\000\000\000\0159\0159\0159\000\000\0159\0159\000\000\000\000\006)\000\000\000\000\000\000\000\000\000\000\000\000\006)\t\174\0159\000\000\000\000\000\000\0159\000\000\000\000\000\000\006)\000\000\000\000\006)\000\000\000\000\000\000\0159\006)\006)\000\246\006-\006-\000\000\000\000\000\000\006-\000\000\000\000\006-\000\000\000\000\000\000\000\000\006)\000\000\000\000\000\000\006)\006-\000\000\006-\000\000\006-\000\000\006-\000\000\000\000\000\000\006)\006)\006)\000\000\006)\006)\000\000\000\000\006-\000\000\000\000\000\000\000\000\000\000\000\000\006-\006-\006)\000\000\000\000\000\000\006)\000\000\000\000\000\000\006-\000\000\000\000\006-\000\000\000\000\000\000\006)\006-\006-\006-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006-\000\000\000\000\000\000\006-\003N\002\250\000\000\000\000\002\182\000\000\b\158\000\000\000\000\0036\006-\006-\006-\000\000\006-\006-\000\000\000\000\000\000\001\218\000\000\b\214\000\000\000\000\000\000\000\000\003R\006-\000\000\011\014\000\000\006-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\t\214\rB\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\000\000\000\000\000\000\0046\000\000\004>\000\000\rr\007&\000\000\000\000\000\000\000\000\000\000\000\000\003N\002\250\000\000\000\000\002\182\007*\b\158\000\000\000\000\0036\000\000\000\000\000\000\000\000\0072\0076\000\000\000\000\014F\001\218\000\000\b\214\000\000\000\000\000\000\000\000\003R\000\000\000\000\011\014\000\000\000\000\000\000\011\210\000\000\000\000\014j\000\000\007:\000\000\003^\000\000\000\000\rZ\004\194\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\000\000\000\000\000\000\0046\000\000\004>\000\000\rr\007&\000\000\000\000\000\000\000\000\000\000\000\000\003N\002\250\000\000\000\000\002\182\007*\b\158\000\000\000\000\0036\000\000\000\000\000\000\000\000\0072\0076\000\000\000\000\r\210\001\218\000\000\b\214\000\000\000\000\000\000\000\000\003R\000\000\000\000\011\014\000\000\000\000\000\000\011\210\000\000\000\000\011\222\000\000\007:\000\000\003^\000\000\000\000\rB\004\194\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\000\000\000\000\000\000\0046\0035\004>\000\000\rr\007&\0035\000\000\001\214\0035\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007*\000\000\0035\000\000\000\000\000\000\0035\000\000\0035\0072\0076\000\000\000\000\014F\000\000\000\000\000\000\000\000\000\000\000\000\0035\000\000\000\000\000\000\000\000\000\000\000\000\0035\011\210\000\000\000\000\011\222\000\000\007:\000\000\004\138\000\000\0035\000\000\004\194\0035\000\000\000\000\000\000\000\000\0035\0035\0035\0031\000\000\000\000\000\000\000\000\0031\000\000\001\214\0031\000\000\000\000\000\000\000\000\0035\0035\000\000\000\000\005\014\0031\000\000\000\000\000\000\0031\000\000\0031\000\000\000\000\000\000\0035\0035\000\000\000\000\0035\0035\000\000\000\000\0031\000\000\000\000\000\000\000\000\000\000\0035\0031\000\000\000\000\000\000\000\000\000\000\0035\000\000\004\138\000\000\0031\0035\000\000\0031\000\000\000\000\000\000\0035\0031\0031\0031\001\r\000\000\000\000\000\000\000\000\001\r\000\000\000\000\001\r\000\000\000\000\000\000\000\000\0031\0031\000\000\000\000\005\014\001\r\000\000\001\r\000\000\001\r\000\000\001\r\000\000\000\000\000\000\0031\0031\000\000\000\000\0031\0031\000\000\000\000\001\r\000\000\000\000\000\000\000\000\000\000\0031\001\r\000\000\000\000\000\000\001\r\000\000\0031\000\000\000\000\000\000\001\r\0031\000\000\001\r\000\000\000\000\000\000\0031\001\r\001\r\000\246\001\t\000\000\000\000\000\000\000\000\001\t\000\000\001\r\001\t\000\000\000\000\000\000\000\000\001\r\000\000\000\000\000\000\001\r\001\t\000\000\001\t\000\000\001\t\000\000\001\t\000\000\000\000\000\000\001\r\001\r\001\r\000\000\001\r\001\r\000\000\000\000\001\t\000\000\000\000\000\000\000\000\000\000\001\r\001\t\000\000\000\000\000\000\001\t\000\000\001\r\000\000\000\000\000\000\001\t\000\000\000\000\001\t\000\000\000\000\000\000\001\r\001\t\001\t\000\246\000\000\000\000\000\000\005m\000\000\000\000\000\000\001\t\005m\000\000\r\217\005m\000\000\001\t\000\000\000\000\000\000\001\t\000\000\r\217\000\000\005m\000\000\005m\000\000\005m\000\000\005m\001\t\001\t\001\t\000\000\001\t\001\t\000\000\000\000\000\000\000\000\000\000\005m\000\000\000\000\001\t\000\000\000\000\000\000\005m\r\217\000\000\001\t\000\000\000\000\000\000\000\000\r\217\000\000\000\000\000\000\000\000\005m\001\t\000\000\000\000\000\000\005m\005m\005m\000\249\000\000\000\000\000\000\000\000\000\249\000\000\006\201\000\249\000\000\000\000\000\000\000\000\005m\000\000\000\000\006\201\r\217\000\249\000\000\000\249\000\000\000\249\000\000\000\249\000\000\000\000\000\000\005m\005m\005m\000\000\005m\005m\000\000\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\249\006\201\000\000\000\000\000\000\000\000\005m\000\000\006\201\000\000\000\000\000\000\000\000\000\249\000\000\000\000\000\000\005m\000\249\000\249\000\249\000\000\001\205\000\000\000\000\000\000\000\000\001\205\000\000\019~\001\205\000\000\002\182\000\000\000\249\000\000\000\000\000\000\006\201\000\000\001\205\000\000\000\000\000\000\001\205\000\000\001\205\000\000\000\000\000\249\000\249\000\249\000\000\000\249\000\249\000\000\000\000\000\000\001\205\000\000\000\000\000\000\000\000\000\000\000\000\001\205\000\000\000\000\000\000\000\000\000\249\019\130\000\000\000\000\000\000\001\205\000\000\000\000\001\205\000\000\000\000\000\249\000\000\001\205\001\205\000\000\019\142\000\000\000\000\000\000\000\000\003N\002\250\000\000\000\000\002\182\000\000\b\158\000\000\001\205\0036\000\000\000\000\001\205\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\b\214\0076\001\205\001\205\000\000\003R\001\205\001\205\011\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\205\011\134\000\000\003^\000\000\000\000\016\250\001\205\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\001\205\004\173\t2\0046\000\000\004>\004\173\rr\007&\004\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012Z\000\000\004\173\007*\000\000\000\000\004\173\000\000\004\173\000\000\000\000\000\000\0072\0076\012\146\012\170\012\178\012\154\012\186\000\000\004\173\000\000\000\000\000\000\000\000\000\000\000\000\004\173\t\174\012\194\012\202\004\173\000\000\n\n\017\018\000\000\007:\004\173\000\000\012\210\004\173\000\000\004\194\000\000\000\000\004\173\003\"\000\246\000\000\000\000\000\000\000\000\000\000\000\000\004\173\004\173\012b\012\162\012\218\012\226\012\242\004\173\004\173\000\000\000\000\004\173\000\000\000\000\012\250\000\000\000\000\000\000\000\000\017\226\000\000\000\000\004\173\004\173\r\002\000\000\004\173\004\173\000\000\000\000\000\000\000\000\t\194\000\000\000\000\000\000\004\173\000\000\r\"\000\000\r*\012\234\000\000\004\173\t\t\000\000\017\242\r\n\0306\t\t\000\000\000\000\t\t\000\000\004\173\r\018\r\026\000\000\000\000\000\000\000\000\000\000\t\t\000\000\000\000\000\000\t\t\000\000\t\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\t\000\000\000\000\000\000\000\000\000\000\000\000\t\t\000\000\000\000\000\000\t\t\000\000\000\000\000\000\000\000\000\000\t\t\000\000\000\000\t\t\000\000\000\000\000\000\000\000\t\t\t\t\000\246\t\005\000\000\000\000\000\000\000\000\t\005\t\t\t\t\t\005\000\000\000\000\000\000\000\000\t\t\000\000\000\000\000\000\t\t\t\005\000\000\000\000\000\000\t\005\000\000\t\005\000\000\000\000\000\000\t\t\t\t\t\t\000\000\t\t\t\t\000\000\000\000\t\005\000\000\000\000\000\000\000\000\000\000\t\t\t\005\000\000\000\000\000\000\t\005\000\000\t\t\000\000\000\000\000\000\t\005\000\000\000\000\t\005\000\000\000\000\000\000\000\000\t\005\t\005\000\246\003)\000\000\000\000\000\000\000\000\003)\t\005\t\005\003)\000\000\000\000\000\000\000\000\t\005\000\000\000\000\000\000\t\005\003)\000\000\000\000\000\000\003)\000\000\003)\000\000\000\000\000\000\t\005\t\005\t\005\000\000\t\005\t\005\000\000\000\000\003)\019\150\000\000\000\000\000\000\000\000\t\005\003)\000\000\000\000\000\000\000\000\000\000\t\005\000\000\000\000\000\000\003)\000\000\000\000\003)\000\000\000\000\000\000\000\000\003)\003)\003)\000\000\003N\002\250\000\000\000\000\002\182\000\000\b\158\000\000\000\000\0036\000\000\000\000\003)\000\000\000\000\000\000\003)\000\000\000\000\001\218\000\000\b\214\000\000\000\000\000\000\000\000\003R\003)\003)\011\014\000\000\003)\003)\000\000\000\000\000\000\000\000\000\000\0282\000\000\003^\003)\000\000\026\154\000\000\001\198\000\000\020\030\003)\000\000\000\000\002\238\000\000\003)\0042\000\000\000\000\000\000\0046\003)\004>\000\000\rr\007&\000\000\000\000\000\000\000\000\000\000\000\000\003N\002\250\000\000\000\000\002\182\007*\b\158\000\000\000\000\0036\000\000\000\000\000\000\000\000\0072\0076\000\000\000\000\026\158\001\218\000\000\b\214\000\000\000\000\000\000\000\000\003R\000\000\000\000\011\014\000\000\000\000\000\000\000\000\000\000\000\000\028\254\000\000\007:\000\000\003^\000\000\000\000\rZ\004\194\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\000\000\000\000\000\000\0046\000\000\004>\000\000\rr\007&\000\000\000\000\000\000\000\000\000\000\000\000\003N\002\250\000\000\000\000\002\182\007*\b\158\000\000\000\000\0036\000\000\000\000\000\000\000\000\0072\0076\000\000\000\000\r\210\001\218\000\000\b\214\000\000\000\000\000\000\000\000\003R\000\000\000\000\011\014\000\000\000\000\000\000\000\000\000\000\000\000\027:\000\000\007:\000\000\003^\000\000\000\000\rZ\004\194\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\000\000\000\000\000\000\0046\000\000\004>\000\000\rr\007&\000\000\000\000\000\000\004\149\004\149\000\000\000\000\004\149\000\000\000\000\000\000\007*\004\149\000\000\000\000\000\000\000\000\000\000\004\149\000\000\0072\0076\004\149\000\000\r\210\000\000\000\000\000\000\000\000\004\149\027\234\000\000\000\000\028\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\154\004\149\007:\000\000\004\149\004\149\004\149\000\000\004\194\000\000\000\000\000\000\004\149\000\000\000\000\004\149\000\000\000\000\000\246\004\149\007\201\004\149\004\149\000\000\004\149\007\201\000\000\000\000\007\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\149\000\000\007\201\000\000\001\210\001\214\007\201\000\000\007\201\004\149\004\149\000\000\000\000\000\000\005i\000\000\000\000\000\000\000\000\000\000\007\201\000\000\000\000\001\218\001\222\000\000\000\000\007\201\000\000\000\000\000\000\000\000\000\000\004\149\000\000\000\000\000\000\007\201\019\154\004\149\007\201\000\000\000\000\000\000\000\000\007\201\007\201\020\"\000\000\004\214\000\000\000\000\000\000\002\226\000\000\002\238\004j\004v\000\000\000\000\nA\007\201\004\130\000\000\019\162\007\201\003N\002\250\000\000\000\000\002\182\000\000\000\000\000\000\000\000\0036\007\201\007\201\007\201\004\134\007\201\007\201\nA\019\242\000\000\001\218\000\000\000\000\000\000\000\000\007\201\000\000\003R\000\000\007\201\000\000\002f\007\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\007\201\003j\r:\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\000\000\000\000\000\000\0046\003)\004>\007\026\000\000\007&\003)\000\000\000\000\003)\003)\003)\000\000\000\000\003)\003)\000\000\007*\003)\003)\000\000\000\000\000\000\003)\003)\003)\0072\0076\003)\007z\003)\000\000\003)\000\000\003)\000\000\000\000\003)\019\150\000\000\000\000\000\000\003)\019\150\003)\000\000\003)\019\150\000\000\003)\007:\000\000\nA\003)\003)\000\000\004\194\003)\000\000\003)\000\000\000\000\003)\003)\003)\000\000\003)\003)\003)\003)\000\000\003)\003)\003)\000\000\000\000\000\000\000\000\003)\000\000\000\000\000\000\003)\003)\000\000\000\000\000\000\003)\000\000\000\000\000\000\003)\000\000\003)\003)\030>\000\000\003)\003)\003)\030n\0075\003)\003)\022:\000\000\003)\003)\002\250\000\000\000\000\002\182\000\000\020\030\003)\000\000\0036\000\000\020\030\003)\000\000\0075\020\030\003)\003)\000\000\001\218\000\000\000\000\000\000\003:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003>\000\000\000\000\003\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\022\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\000\000\004\030\000\000\000\000\000\000\nF\nJ\nV\003N\002\250\007&\000\000\002\182\000\000\b\158\000\000\000\000\0036\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\b\214\000\000\0072\0076\000\000\003R\000\000\000\000\011\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\000\000\011V\000\000\001\198\000\000\007:\n^\000\000\000\000\002\238\nv\004\194\0042\000\000\000\000\000\000\0046\000\000\004>\007]\rr\007&\000\000\000\000\000\000\000\000\002\250\000\000\000\000\002\182\000\000\000\000\000\000\007*\0036\000\000\000\000\000\000\000\000\007]\000\000\000\000\0072\0076\001\218\000\000\000\000\000\000\003:\000\000\000\000\005\193\000\000\000\000\000\000\000\000\005\193\003>\000\000\005\193\003\214\000\000\000\000\000\000\000\000\000\000\007:\000\000\004\022\005\193\001\198\000\000\004\194\005\193\000\000\005\193\002\238\000\000\000\000\004\030\000\000\000\000\000\000\nF\nJ\nV\000\000\005\193\007&\000\000\000\000\000\000\000\000\000\000\005\193\000\000\000\000\000\000\000\000\000\000\n\n\000\000\000\000\000\000\005\193\000\000\000\000\005\193\000\000\0072\0076\000\000\005\193\005\193\000\246\000\000\000\000\000\000\005\197\000\000\000\000\000\000\000\000\005\197\000\000\000\000\005\197\000\000\005\193\005\193\000\000\000\000\005\193\007:\n^\000\000\005\197\000\000\nv\004\194\005\197\006\237\005\197\005\193\005\193\000\000\006\237\005\193\005\193\006\237\000\000\000\000\000\000\000\000\005\197\000\000\000\000\000\000\000\000\006\237\000\000\005\197\000\000\006\237\005\193\006\237\000\000\n\n\000\000\000\000\000\000\005\197\000\000\000\000\005\197\005\193\000\000\006\237\000\000\005\197\005\197\000\246\000\000\000\000\006\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\237\005\197\005\197\006\237\000\000\005\197\000\000\000\000\006\237\006\237\000\246\000\000\000\000\000\000\000\000\000\000\005\197\005\197\000\000\000\000\005\197\005\197\000\000\000\000\006\237\000\000\000\000\000\000\006\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\197\000\000\006\237\006\237\026&\000\000\006\237\006\237\000\000\000\000\000\000\005\197\030\022\000\000\000\000\000\000\006\237\000\000\003N\002\250\000\000\014}\002\182\006\237\000\000\000\000\014}\0036\000\000\014}\000\000\000\000\000\000\000\000\006\237\000\000\000\000\001\218\000\000\014}\000\000\000\000\000\000\014}\003R\014}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014}\003^\000\000\000\000\003j\000\000\001\198\014}\000\000\000\000\000\000\000\000\002\238\000\000\000\000\0042\000\000\000\000\000\000\0046\014}\004>\007\026\000\000\007&\014}\014}\000\000\000\000\000\000\014}\000\000\000\000\014}\000\000\000\000\007*\000\000\000\000\000\000\000\000\014}\000\000\014}\000\000\0072\0076\014}\007z\014}\000\000\000\000\001\210\001\214\000\000\000\000\014}\014}\002\174\000\000\014}\014}\000\000\000\000\000\000\000\000\000\000\000\000\014}\007:\014}\001\218\002\186\n\246\031\182\004\194\000\000\014}\014}\000\000\000\000\014}\000\000\000\000\007\158\000\000\014}\014}\014}\000\000\003N\002\250\000\000\000\000\002\182\0056\005\214\004\214\000\000\0036\000\000\002\226\014}\002\238\004j\004v\014}\000\000\000\000\001\218\004\130\000\000\000\000\000\000\000\000\000\000\003R\014}\014}\002\174\000\000\014}\014}\000\000\000\000\000\000\000\000\004\134\000\000\000\000\003^\014}\000\000\003j\000\000\001\198\000\000\000\000\014}\000\000\000\000\002\238\000\000\000\000\0042\000\000\000\000\000\000\0046\014}\004>\007\026\000\000\007&\007\250\000\000\000\000\000\000\000\000\000\000\003N\002\250\000\000\000\000\002\182\007*\000\000\000\000\000\000\0036\000\000\000\000\000\000\000\000\0072\0076\bN\007z\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007:\000\000\003^\000\000\000\000\003j\004\194\001\198\000\000\000\000\000\000\b\026\000\000\002\238\000\000\000\000\0042\003N\002\250\000\000\0046\002\182\004>\007\026\000\000\007&\0036\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\007*\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\0072\0076\000\000\007z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\000\000\003j\000\000\001\198\000\000\000\000\000\000\000\000\000\000\002\238\000\000\007:\0042\000\000\000\000\000\000\0046\004\194\004>\007\026\000\000\007&\000\000\000\000\0079\000\000\000\000\000\000\000\000\000\000\003N\002\250\000\000\007*\002\182\000\000\000\000\000\000\000\000\0036\000\000\000\000\0072\0076\0079\007z\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007:\000\000\000\000\000\000\003^\000\000\004\194\003j\000\000\001\198\000\000\000\000\000\000\014\250\000\000\002\238\000\000\000\000\0042\003N\002\250\000\000\0046\002\182\004>\007\026\000\000\007&\0036\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\007*\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\0072\0076\000\000\015\006\000\000\000\000\000\000\000\000\000\000\003N\002\250\003^\000\000\002\182\003j\000\000\001\198\000\000\0036\000\000\000\000\000\000\002\238\000\000\007:\0042\000\000\000\000\001\218\0046\004\194\004>\007\026\000\000\007&\003R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007*\000\000\000\000\003^\000\000\000\000\003j\000\000\001\198\0072\0076\000\000\007z\000\000\002\238\000\000\000\000\0042\000\000\000\000\000\000\0046\000\000\004>\007\026\000\000\007&\000\000\000\000\000\000\015\018\000\000\000\000\007:\000\000\000\000\003N\002\250\007*\004\194\002\182\000\000\000\000\000\000\000\000\0036\000\000\0072\0076\000\000\007z\000\000\000\000\000\000\000\254\001\218\000\000\002\254\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000!r\000\000\000\000\000\000\007:\000\000\003\174\t9\t9\003^\004\194\t9\003j\000\000\001\198\000\000\t9\000\000\003\186\000\000\002\238\000\000\020z\0042\000\000\021b\t9\0046\000\000\004>\007\026\000\000\007&\t9\000\000\029J\000\000\000\000\021\198\000\000\000\000\000\000\000\000\021\222\007*\000\000\000\000\t9\000\000\000\000\t9\t9\t9\0072\0076\000\000\007z\000\000\t9\021\230\000\000\t9\000\000!\"\000\000\t9\000\000\t9\t9\000\000\t9\000\000\000\000\000\000\021\238\022*\000\000\007:\004\233\000\000\007\237\t2\t9\004\194\000\000\007\237\000\000\000\000\007\237\000\000\000\000\t9\t9\000\000\000\000\026\130\000\000\000\000\007\237\000\000\000\000\000\000\007\237\000\000\007\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t9\007\237\000\000\000\000\000\000\000\000\t9\001\157\007\237\t\174\000\000\000\000\001\157\000\000\000\000\001\157\000\000\000\000\007\237\000\000\000\000\007\237\000\000\000\000\000\000\001\157\007\237\007\237\000\246\001\157\001\209\001\157\000\000\000\000\000\000\001\209\000\000\000\000\001\209\000\000\000\000\000\000\007\237\001\157\000\000\000\000\007\237\000\000\001\209\000\000\001\157\000\000\001\209\000\000\001\209\000\000\000\000\007\237\007\237\000\000\001\157\007\237\007\237\001\157\000\000\000\000\001\209\000\000\001\157\001\157\001\157\000\000\000\000\001\209\000\000\000\000\000\000\000\000\007\237\000\000\000\000\000\000\000\000\001\209\001\157\000\000\001\209\000\000\001\157\000\000\000\000\001\209\001\209\000\000\000\000\000\000\000\000\006\241\000\000\001\157\001\157\000\000\006\241\001\157\001\157\006\241\000\000\001\209\000\000\022F\000\000\001\209\000\000\000\000\000\000\006\241\000\000\000\000\000\000\006\241\001\157\006\241\001\209\001\209\000\000\001\157\001\209\001\209\000\000\000\000\000\000\000\000\000\000\006\241\000\000\000\000\001\209\000\000\000\000\000\000\006\241\000\000\000\000\001\209\000\000\000\000\000\000\000\000\026\002\000\000\006\241\000\000\000\000\006\241\001\209\000\000\000\000\000\000\006\241\006\241\000\246\000\000\000\000\000\000\000\000\000\000\000\000\0145\000\000\002\250\0145\000\000!*\000\000\006\241\000\000\000\000!.\006\241\000\000\0145\000\000\000\000\000\000\000\000\000\000\0145\000\000\000\000\006\241\006\241\000\000\000\000\006\241\006\241\000\000\000\000\000\000\0145\000\000\000\000\000\000\000\000\006\241\000\000\0145\000\000\000\000\000\000\000\000\006\241\001\n\000\000\001\198\000\000\0145\001\210\002\178\0145\000\000\002\182\006\241\000\000\0145\000\000\000\000\000\000\000\000\000\000\000\000\000\000!2\000\000\000\000\000\000\001\218\002\186\001\238\002\194\0145\000\000\000\000\000\000\0145\000\000\001\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000!6\0145\0145\000\000\000\000\0145\002\198\002\206\004Z\000\000\000\000\000\000\002\226\000\000\002\238\004j\004v\000\000\000\000\000\000\000\000\025\218\0145\025\222\000\000\004\173\000\000\000\000\000\000\000\000\004\173\000\000\000\000\004\173\000\000\000\000\000\000\000\000\004\134\000\000\000\000\000\000\000\000\004\173\000\000\001\210\001\214\004\173\0076\004\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\234\000\000\000\000\004\173\000\000\000\000\001\218\002\186\001\238\000\000\004\173\000\000\000\000\0011\000\000\000\000\001\250\025\238\0011\023z\004\173\0011\000\000\004\173\000\000\000\000\000\000\000\000\004\173\003\"\002\230\0011\024\210\0011\023\242\0011\002\226\0011\002\238\004j\004v\000\000\000\000\000\000\004\173\024\226\000\000\000\000\004\173\0011\000\000\000\000\000\000\000\000\000\000\000\000\0011\000\000\000\000\004\173\004\173\000\000\004\134\004\173\004\173\000\000\000\000\000\000\000\000\0011\000\000\000\000\000\000\t^\0011\0011\000\246\000\173\000\000\000\000\004\173\000\000\000\173\000\000\000\000\000\173\000\000\000\000\000\000\000\000\0011\004\173\000\000\000\000\000\000\000\173\000\000\000\000\000\000\000\173\000\000\000\173\000\000\000\000\000\000\0011\0011\0011\000\000\0011\0011\000\000\000\000\000\173\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\000\000\177\000\000\000\000\0011\000\000\000\177\000\000\000\173\000\177\000\000\000\173\000\000\000\000\000\000\0011\000\173\000\173\000\246\000\177\000\000\000\000\000\000\000\177\000\000\000\177\000\000\000\000\000\000\000\000\000\000\000\000\000\173\000\000\000\000\000\000\000\173\000\177\000\000\000\000\000\000\000\000\000\000\000\000\000\177\000\000\000\000\000\173\000\173\000\000\000\000\000\173\000\173\000\000\000\177\000\000\000\000\000\177\000\000\000\000\000\000\000\000\000\177\000\177\000\246\000\000\001\210\002\178\000\173\000\000\002\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\177\000\173\000\000\000\000\000\177\000\000\000\000\001\218\002\186\001\238\000\000\000\000\000\000\000\000\000\000\000\177\000\177\001\250\000\000\000\177\000\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\002\206\004Z\000\000\000\000\000\177\002\226\000\000\002\238\004j\004v\000\000\000\000\000\000\000\000\025\218\000\177\031^\000\000\007\233\000\000\000\000\000\000\000\000\007\233\000\000\000\000\007\233\000\000\000\000\000\000\000\000\004\134\000\000\000\000\000\000\000\000\007\233\000\000\000\000\000\000\007\233\0076\007\233\000\000\000\000\006\229\000\000\000\000\000\000\000\000\006\229\031j\000\000\006\229\007\233\000\000\000\000\000\000\000\000\000\000\022\022\007\233\000\000\006\229\000\000\000\000\000\000\006\229\025\238\006\229\000\000\007\233\000\000\000\000\007\233\000\000\000\000\000\000\000\000\007\233\007\233\006\229\000\000\000\000\000\000\000\000\000\000\000\000\006\229\000\000\000\000\000\000\000\000\000\000\000\000\007\233\000\000\000\000\006\229\007\233\000\000\006\229\000\000\000\000\000\000\000\000\006\229\006\229\000\000\000\000\007\233\007\233\021v\000\000\007\233\007\233\000\000\000\000\000\000\000\000\000\000\000\000\006\229\000\000\000\000\000\000\006\229\005\205\t2\000\000\000\000\007\233\005\205\000\000\000\000\005\205\000\000\006\229\006\229\000\000\000\000\006\229\006\229\000\000\000\000\005\205\000\000\000\000\000\000\005\205\000\000\005\205\000\000\000\000\000\000\000\000\r\229\000\000\006\229\000\000\000\000\r\229\000\000\005\205\r\229\000\000\000\000\000\000\000\000\000\000\005\205\t\174\000\000\000\000\r\229\000\000\000\000\000\000\r\229\000\000\r\229\000\000\000\000\005\205\000\000\000\000\000\000\000\000\005\205\005\205\000\246\000\000\r\229\000\000\000\000\000\000\000\000\000\000\000\000\r\229\000\000\000\000\000\000\000\000\005\205\000\000\000\000\000\000\000\000\r\229\000\000\000\000\r\229\000\000\000\000\000\000\000\000\r\229\000\000\005\205\005\205\000\000\000\000\005\205\005\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\229\012N\000\000\000\000\r\229\003N\002\250\005\205\000\000\002\182\000\000\000\000\000\000\000\000\0036\r\229\r\229\000\000\000\000\r\229\r\229\000\000\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\000\000\r\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003^\000\000\r2\rv\004\133\001\198\000\000\000\000\000\000\004\133\000\000\002\238\004\133\000\000\0042\000\000\000\000\000\000\0046\000\000\004>\000\000\004\133\007&\000\000\000\000\004\133\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\007*\000\000\000\000\000\000\000\000\004\133\000\000\000\000\000\000\0072\0076\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\000\000\004\133\000\000\004\173\000\000\000\000\004\133\000\000\004\173\007:\000\000\004\173\000\000\000\000\000\000\004\194\000\000\000\000\000\000\000\000\000\000\004\173\004\133\000\000\000\000\004\173\004\133\004\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\133\004\133\004\173\000\000\004\133\004\133\000\000\000\000\000\000\004\173\000\000\007\233\000\000\000\000\000\000\004\146\007\233\000\000\000\000\007\233\000\000\004\133\004\173\000\000\000\000\000\000\000\000\004\173\003\"\007\233\000\000\000\000\021\158\007\233\000\000\007\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\173\000\000\000\000\000\000\007\233\000\000\000\000\000\000\000\000\000\000\000\000\007\233\000\000\004}\000\000\004\173\004\173\000\000\004}\004\173\004\173\004}\000\000\000\000\007\233\004\162\000\000\000\000\000\000\007\233\007\233\004}\000\000\000\000\000\000\004}\004\173\004}\000\000\000\000\000\000\026\002\000\000\000\000\000\000\007\233\000\000\000\000\000\000\004}\000\000\000\000\000\000\000\000\000\000\000\000\004}\000\000\000\000\000\000\007\233\007\233\021v\000\000\007\233\007\233\004}\000\000\000\000\004}\000\000\004\157\000\000\000\000\004}\000\000\004\157\000\000\022\170\004\157\004m\007\233\000\000\000\000\000\000\004m\000\000\000\000\004m\004\157\004}\000\000\000\000\004\157\004}\004\157\000\000\000\000\004m\000\000\000\000\000\000\004m\000\000\004m\004}\004}\004\157\000\000\004}\004}\000\000\000\000\000\000\004\157\000\000\004m\000\000\000\000\000\000\000\000\000\000\000\000\004m\004\157\000\000\004}\004\157\000\000\000\000\000\000\000\000\004\157\004m\000\000\000\000\004m\024\146\000\000\000\000\000\000\004m\000\000\000\000\000\000\000\000\000\000\000\000\004\157\000\000\000\000\000\000\004\157\000\000\000\000\000\000\000\000\004m\000\000\000\000\000\000\004m\000\000\004\157\004\157\000\000\000\000\004\157\004\157\001\210\001\214\000\000\004m\004m\011\214\000\000\004m\004m\000\000\000\000\001\210\001\214\000\000\002\202\004\157\000\000\000\000\000\000\001\218\001\222\001\238\000\000\000\000\004m\000\000\025\146\004:\000\000\001\250\001\218\002\186\001\238\000\000\000\000\029\030\000\000\002\002\000\000\000\000\001\250\000\000\000\000\001\254\002\206\002\214\000\000\000\000\000\000\002\226\000\000\002\238\004j\004v\002\234\002\206\004Z\000\000\004\130\000\000\002\226\000\000\002\238\004j\004v\b\157\000\000\000\000\b\157\004\130\000\000\000\000\000\000\000\000\b\141\004\134\000\000\b\141\000\000\000\000\000\000\000\000\000\000\000\000\b\157\b\157\004\134\b\157\b\157\000\000\000\000\000\000\000\000\b\141\b\141\000\000\b\141\b\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\134\000\000\011\226\000\000\b\157\000\000\000\000\000\000\001\210\001\214\014\154\000\000\000\000\b\141\000\000\000\000\000\000\000\000\004\190\000\000\004\194\000\000\000\000\000\246\000\000\000\000\000\000\001\218\001\222\001\238\000\000\000\000\000\246\000\000\000\000\000\000\000\000\001\250\b\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\141\000\000\000\000\000\000\001\254\002\206\004Z\b\157\000\000\b\157\002\226\000\000\002\238\004j\004v\000\000\b\141\000\000\b\141\004\130\000\000\b\157\000\000\000\000\007\154\b\157\000\000\000\000\000\000\b\157\007\246\b\157\000\000\007\154\b\141\b\157\004\134\004\141\b\141\000\000\b\141\000\000\004\141\000\000\b\141\004\141\004u\000\000\000\000\000\000\000\000\004u\000\000\000\000\004u\004\141\000\000\000\000\000\000\004\141\000\000\004\141\000\000\000\000\004u\000\000\000\000\000\000\004u\000\000\004u\000\000\000\000\004\141\000\000\000\000\000\000\000\000\000\000\004\165\004\141\000\000\004u\000\000\004\165\000\000\000\000\004\165\000\000\004u\000\000\000\000\000\000\004\141\000\000\000\000\000\000\004\165\004\141\000\000\000\000\004\165\004u\004\165\000\000\000\000\000\000\004u\000\000\000\000\000\000\000\000\000\000\000\000\004\141\004\165\000\000\000\000\000\000\000\000\000\000\000\000\004\165\004u\000\000\000\000\000\000\000\000\000\000\004\141\004\141\000\000\000\000\004\141\004\141\004\165\000\000\000\000\004u\004u\004\165\000\000\004u\004u\004\193\000\000\000\000\000\000\000\000\000\254\004\141\000\000\002\254\000\000\000\000\000\000\004\165\000\000\000\000\004u\000\000\022\230\003\170\000\000\001\210\001\214\004\193\000\000\003\174\000\000\025&\004\165\004\165\000\000\000\000\004\165\004\165\000\000\000\000\000\000\003\186\000\000\000\000\001\218\002\186\001\238\000\000\021b\000\000\000\000\000\000\000\000\004\165\001\250\000\000\000\000\000\000\029J\000\000\000\000\021\198\002\002\000\000\025\194\000\000\021\222\000\000\002\234\002\206\002\214\000\000\000\000\000\000\002\226\000\000\002\238\004j\004v\000\000\000\000\000\000\021\230\004\130\007\181\007\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015=\015=\021\238\022*\000\000\004\134\004\193\004\193\007\181\007\181\007\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\181\015=\015=\015=\tF\026\130\000\000\000\000\000\000\000\000\000\000\015=\011\226\000\000\007\181\007\181\007\181\000\000\001\210\001\214\007\181\000\000\007\181\007\181\007\181\015=\015=\015=\000\000\007\181\000\000\015=\000\000\015=\015=\015=\000\000\001\218\002\186\001\238\015=\000\000\000\000\000\000\000\000\000\000\007\181\001\250\b\006\000\000\000\000\000\000\000\000\000\000\001\210\001\214\027>\015=\000\000\000\000\000\000\002\234\002\206\004Z\000\000\000\000\000\000\002\226\000\000\002\238\004j\004v\000\000\001\218\001\222\001\238\004\130\000\000\000\000\000\000\000\000\000\000\000\000\001\250\000\000\000\000\000\000\000\000\000\000\000\000\006Z\000\000\000\000\004\134\000\000\000\000\004\181\001\254\002\206\004Z\000\000\000\254\000\000\002\226\002\026\002\238\004j\004v\000\000\000\000\000\000\000\000\004\130\000\000\022j\000\000\000\000\000\000\004\181\000\000\003\174\000\000\000\000\000\000\000\000\001\210\001\214\027\158\000\000\004\134\000\000\000\000\022n\000\000\000\000\000\000\000\000\000\000\000\000\022\150\000\000\000\000\000\000\000\000\001\218\001\222\001\238\000\000\000\000\000\000\000\000\000\000\021\198\000\000\001\250\000\000\000\000\021\222\000\000\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\001\254\002\206\004Z\000\000\000\000\021\230\002\226\000\000\002\238\004j\004v\000\000\001\218\002\186\001\238\004\130\000\000\000\000\000\000\000\000\021\238\023.\001\250\000\000\004\181\004\181\000\000\000\000\001\210\001\214\000\000\000\000\004\134\000\000\000\000\000\000\002\234\004\210\004Z\000\000\000\000\023>\002\226\000\000\002\238\004j\004v\001\218\002\186\001\238\000\000\004\130\000\000\000\000\000\000\001\210\001\214\001\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\134\000\000\000\000\002\234\004\226\004Z\001\218\002\186\001\238\002\226\000\000\002\238\004j\004v\000\000\000\000\001\250\000\000\004\130\000\000\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\002\234\005\166\004Z\000\000\000\000\004\134\002\226\000\000\002\238\004j\004v\001\218\002\186\001\238\000\000\004\130\000\000\000\000\000\000\001\210\001\214\001\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\134\000\000\000\000\002\234\005\242\004Z\001\218\002\186\001\238\002\226\000\000\002\238\004j\004v\000\000\000\000\001\250\000\000\004\130\000\000\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\002\234\006\n\004Z\000\000\000\000\004\134\002\226\000\000\002\238\004j\004v\001\218\002\186\001\238\000\000\004\130\000\000\000\000\000\000\001\210\001\214\001\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\134\000\000\000\000\002\234\006\"\004Z\001\218\002\186\001\238\002\226\000\000\002\238\004j\004v\000\000\000\000\001\250\000\000\004\130\000\000\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\002\234\006\206\004Z\000\000\000\000\004\134\002\226\000\000\002\238\004j\004v\001\218\002\186\001\238\000\000\004\130\000\000\000\000\000\000\001\210\001\214\001\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\134\000\000\000\000\002\234\006\230\004Z\001\218\002\186\001\238\002\226\000\000\002\238\004j\004v\000\000\000\000\001\250\000\000\004\130\000\000\000\000\000\000\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\002\234\006\254\004Z\000\000\000\000\004\134\002\226\000\000\002\238\004j\004v\001\218\002\186\001\238\000\000\004\130\000\000\000\000\000\000\001\210\001\214\001\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\134\001\210\001\214\002\234\030\194\004Z\001\218\002\186\001\238\002\226\000\000\002\238\004j\004v\000\000\000\000\001\250\000\000\004\130\000\000\001\218\002\186\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\002\234\031\030\004Z\000\000\000\000\004\134\002\226\000\000\002\238\004j\004v\001\218\002\186\001\238\002\230\004\130\030\210\000\000\000\000\000\000\002\226\001\250\002\238\004j\004v\000\000\000\000\000\000\000\000\004\130\000\000\000\000\004\134\000\000\000\000\002\234\031J\004Z\001\210\001\214\000\000\002\226\000\000\002\238\004j\004v\004\134\000\000\000\000\030\254\004\130\000\000\000\000\000\000\001\210\001\214\000\000\001\218\002\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\234\004\134\000\000\000\000\000\000\000\000\020\002\001\218\002\186\001\210\001\214\000\000\000\000\000\000\000\000\002\230\000\000\004\214\000\000\000\000\000\000\002\226\000\000\002\238\004j\004v\000\000\000\000\001\218\002\186\004\130\002\230\000\000\030\210\000\000\000\000\000\000\002\226\000\000\002\238\004j\004v\000\000\000\000\000\000\000\000\004\130\004\134\000\000\001\210\001\214\020\n\002\230\000\000\030\210\000\000\000\000\000\000\002\226\000\000\002\238\004j\004v\004\134\000\000\000\000\0059\004\130\001\218\002\186\001\210\001\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\234\004\134\000\000\000\000\005=\000\000\001\218\002\186\000\000\002\210\000\000\004\214\000\000\000\000\000\000\002\226\000\000\002\238\004j\004v\000\000\030\234\000\000\000\000\004\130\000\000\000\000\001\210\001\214\000\000\004f\000\000\004\214\000\000\000\000\000\000\002\226\000\000\002\238\004j\004v\004\134\000\000\000\000\000\000\004\130\001\218\002\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\218\000\000\004\214\000\000\000\000\000\000\002\226\000\000\002\238\004j\004v\000\000\000\000\000\000\000\000\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\134")) and lhs = - (8, "\014\r\012\011\n\t\b\007\006\005\004\003\002\001\000\234\234\233\233\232\231\231\230\230\230\230\230\230\230\230\230\230\230\230\230\230\230\230\230\230\230\230\229\229\228\227\227\227\227\227\227\227\227\226\226\226\226\226\226\226\226\225\225\225\224\224\223\222\222\222\221\221\220\220\220\220\220\220\219\219\219\219\219\219\219\219\218\218\218\218\218\218\218\218\217\217\217\217\216\215\214\214\213\213\213\213\212\212\212\212\211\211\211\211\210\210\210\210\209\209\209\208\208\208\208\207\206\206\206\206\206\206\206\205\205\204\204\203\203\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\202\201\201\200\200\199\198\197\196\196\195\195\194\194\194\194\193\193\192\192\191\191\191\191\191\191\190\189\188\188\187\187\186\186\185\184\184\183\183\182\181\181\180\179\178\178\178\177\177\177\176\175\175\175\175\175\175\174\174\174\174\174\174\174\174\174\174\174\174\174\174\174\174\173\172\172\171\171\171\171\171\171\171\171\171\170\170\169\169\169\168\168\168\167\167\167\167\166\166\165\165\164\164\163\163\162\162\161\161\160\160\159\159\158\158\157\157\156\156\156\155\155\155\155\154\154\153\153\152\152\151\151\151\151\151\150\150\150\150\149\149\148\148\148\147\147\147\146\146\146\146\146\146\146\145\145\145\145\145\145\145\144\144\143\143\142\142\142\142\142\142\141\141\140\140\139\139\138\138\137\137\137\136\135\135\135\134\134\133\133\133\133\133\133\133\133\133\132\132\131\131\130\130\130\130\130\130\130\130\130\130\130\129\128\127~~}}}}|||||{zzyyxxxxxxxxxxxxxxwwvvuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuttssrrqqppoonnmmllkkjjiiiiiiiiiiihhgfedcba`_^]\\\\\\\\\\\\\\\\\\\\[[[ZZZYYYYYXXXXXXXXXWWVVVVVUUTTSRQQPPPPPOONNMMMLLLLLLKKKJJIIHHGGFFEEEDDCCBBAA@@??>>======<<;;::99888777666555444432111111111111111111100000///////.....................................................................--,,,,,,,,,,,,,,,,,,,,,,+++++++++++++++++++++++++++++++++++++++++++++++++++++**)))((((((((((((((((((((((((((((((((((((''&&&&&&&&&&&&&&&&%%$$#######\"\"\"\"!! \031\031\030\029\028\028\028\027\027\026\026\026\026\026\026\026\026\026\026\025\025\024\024\024\024\023\023\022\021\021\021\021\021\020\019\019\018\018\018\017\017\017\016\016\016\016\016\016\015\015") + (8, "\014\r\012\011\n\t\b\007\006\005\004\003\002\001\000\242\242\241\241\240\239\239\238\238\237\237\236\235\235\235\235\235\235\235\235\234\234\234\234\234\234\234\234\233\233\233\232\232\231\230\230\230\229\229\228\228\228\228\228\228\227\227\227\227\227\227\227\227\226\226\226\226\226\226\226\226\225\225\225\225\224\223\222\222\221\221\221\221\220\220\220\220\219\219\219\219\218\218\218\218\217\217\217\216\216\216\216\215\214\214\214\214\214\214\214\213\213\212\212\211\211\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\210\209\209\208\208\207\206\205\204\204\203\203\202\202\202\202\202\201\201\200\200\199\199\199\199\199\199\198\197\196\196\195\195\194\194\193\192\192\191\191\190\189\189\188\187\186\186\186\185\185\185\184\183\183\183\183\183\183\182\182\182\182\182\182\182\182\182\182\182\182\182\182\182\182\181\180\179\178\178\177\177\177\177\177\177\177\177\177\176\176\175\175\175\174\174\174\173\173\173\173\172\172\171\171\170\170\169\169\168\168\167\167\166\166\165\165\164\164\163\163\162\162\162\161\161\161\161\160\160\159\159\158\158\157\157\157\157\157\156\156\156\156\155\155\154\154\154\154\153\153\153\152\152\152\152\152\152\152\151\151\151\151\151\151\151\150\150\149\149\148\148\148\148\148\148\147\147\146\146\145\145\144\144\143\143\143\142\141\141\141\140\140\139\139\139\139\139\139\139\139\139\138\138\137\137\136\136\136\136\136\136\136\136\136\136\136\135\134\133\132\132\131\131\131\131\130\130\130\130\130\129\128\128\127~~~~~~~~~~~~~~~~~~~~~~}}||{{zzzzzzzzzzzzzzyyxxwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwvvuuttssrrqqppoonnmmllkkjjjjjjjjjjjiihgfedcba`_^]]]]]]]]]]\\\\\\[[[ZZZZZYYYYYYYYYXXWWWWWVVUUTSRRQQQQQPPOONNNMMMMMMLLLKKJJIIHHGGGGFFFEEDDCCBBAA@@??>>>>>>==<<;;::9998887776665555432222222222222222222111110000000/////////////////////////////////////////////////////////////////////..----------------------,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,++****))))))))))))))))))))))))))))))))))))(''&&&&&&&&&&&&&&&&%%$$#######\"\"\"\"!! \031\031\030\029\028\028\028\027\027\026\026\026\026\026\026\026\026\026\026\025\025\024\024\024\024\023\023\022\021\021\021\021\021\020\019\019\018\018\018\017\017\017\016\016\016\016\016\016\015\015") and goto = - ((16, "\000)\001{\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000|\000\000\000\000\001/\001\180\000\n\001\017\000\195\001\014\000;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\000\000\000\000\000\000\000\000\000N\000\000\000\000\000\000\000\\\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\244\000\000\000\000\000\000\000r\000\000\000\000\000\000\000\000\000\000\000\000\000\000?\224\000\162\001\144\001.\000\000\001\194\001(\000\166\001\202\000\018\000\000\000\000\000\000\0050\000\000\000\000\000:\000\000\000\000\000\000\000\000\002V\000\000\001t\000\000\001\238\000\003\000\000\000\000\000\000\002`\000\000\000\000\000\000\000\000\000\194\000\000\000\000\002\242\001\238\000-\003Z\007N\000\000\000\000\002\216\000\000\t\206?\224\000\000\005\006A$\000\000\006\020A~\002B?\224\0028\001t\000\000\000\000\002\204\002\140\006\156\007h\003H\003Z\004\022\001\168\002\152\001\166\003\\\003\016\0114\000\000?\176\003n\003B\003\148:\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000%\180\000\000\003\204\004\026\004\138\000\000\000\000\000\000\000\000\001V\000\000\000\000\004<\005,\004\154\006d\b\000\000\000\000\000\000\000\004&\004\142\005\152\007\204\b\b\005\180%\250\004\180\005\246\002\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005Z\006\016\011v\n$?\176\011\234\012L\000\000&\030\012\180&\196'8\000\000\001\014\000\000\000\000\000\000\000\000\006\224H\192\007>\000\000\003j\007x\000\000'\142:\244\002\196\000\000\000\000\000r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\228\007\004\000\000\000\000\000\000\016*\011\202\000\000\024\160\014\184\000\000\000\000\007\150\000\000\000\000\003\190\005\228\000\000\000\000\003\190\nb\003\190\000\000\000\000\018\204A\212\000\000\000\000\005\244\006`\000\000\000\000H\230\000\000\006\020\000\000\000\000\000\000\007<\000\000\000\000\007J\000\000I\136\006\020\000\000 l\021\212\000\000\000\000\000\000\006\020\000\000I\178\006\020\025nB^\000\000I\204\006\020\000\000'\194\026\236\000\000\000\000\000\000\000\000,X\029\022\000\000\000\000\000\000\000\000/\192\030\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000;\020\000\000\006\186\007\236\000\000#0\007\"(X\000\000\000\000\000\000\000\000\006\020\000\000\000\000\000\000'\252\000\000\000\000\000\000\000\000\000\000\000\000\002*\b\002\000\000\000\000\000\000\006\020\b`;d\007\196\00741\188\000\000\006\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000%\000\000\000\000\000\000\000\000\tD<\012\000\000\000\000\b(\007f<@\000\000\000\000\000\000\000\000)b)\168\007\252F\180\000\000K:\006\020\006\020\012\026\000\000\000\000\012 \000\000\000\000\000\000\000\000)\224\012$\000\000\018d\015\190\011\140\tD>Z\007\252\016\000\011\146\t\134Q\138\000\000Q\174\000\000\000\000\016`*\024\005j\000\000\000\000\012\234K\146\000\000\006\020G@\000\000\006\020K\194\006\020\000\000\000\000\000\000\000\000\000\000Q\210\000\000\000\000\000\000\000\133\016\152\000\000\000\000\000\000\000\000*xR\b\000\000\000\000\000\000\000\000\000\000\011p\016\188\000\000\001\169*\206\001\169*\230\001\169\000\000R\160\000\000+4\001\169\017T\004L\017\150\000\000\000\000+\186\001\169,\b\001\169,\176\001\169,\186\001\169-\b\001\169-V\001\169-\170\001\169-\220\001\169.B\001\169.\152\001\169.\248\001\169/0\001\169/Z\001\169/\148\001\16906\001\1690\154\001\1690\232\001\1691\016\001\16916\001\1691p\001\169\t\142\018(\007\2348\028)\224\012x\000\0002\002L\"2:>\150\007\252\000\000\r\016\012:\000\000\000\000LP\006\020\000\000\007\252F\228\000\000Lj\006\020\000\000\000\000\017\184\000\000\000\000\018\134\000\000\000\000\000\000\000\0002\222\000\0003@\000\000\000\000\007\252G<\000\000L\184\006\020\000\000G@\000\000L\248\006\020\018\234\000\000\000\000\0198\000\000\000\000>\168)\224\012\198\000\000\006\236\019Z\000\000\000\000\019b\000\000\000\00036\000\000\000\000G\188\r\b\000\000M`\006\020\0206\000\000\000\000M\160\006\020\020X\000\000\000\000\021\014\000\000\000\000\000\000M\202\006\020\021&\000\000\012F\0210\000\000>\254\000\000\007\252?h\000\000\007\252?r\000\000\007\252\b\004\000\000\000\000\000\000\000\000\000\000?\184\007\252\000\000\003\230\004\142\000\000\000\000\000\000\001\169\022\002\000\000\000\000\000\000\022$\000\000\000\000\000\000\000\000\000\000\022\218\000\000\000\000\000\000\001\169\022\242\000\000\022\252\000\000\000\000\000\000\023\020\000\000\000\000\000\000\000\000R\168\000\000\000\000\023\232\000\000\000\000\000\0003\160\001\169\023\240\000\000\000\000\000\0003\184\001\169\024\190\000\000\000\000\000\0004\016\001\169\002\028\024\226\000\000\000\0004\204\001\169\025\176\000\000\000\0005\"\001\169\025\184\000\000\000\0005d\001\169\000\000\000\000\026\140\000\000\000\0005\142\001\169\026\164\000\000\000\0005\198\001\169\026\174\000\000\000\00066\001\169\000\0006^\001\169\000\000\004b\000\000\000\000\001\169\000\000\000\000\026\198\000\000\000\000\027|\000\000\000\000\012\218\000\000\000\000\027\158\000\000\028p\000\000\000\000\000\000)\224\r\128\000\000A\206\n\242\003\190\028x\000\000B\014\000\000\000\000\000\000B\220\000\000\000\000\028\208\000\000\029H\000\000\000\000\000\000\000\0007.\000\000\000\000\000\0007J\001\1697R\001\169\000\000\012F\029l\000\000\000\000\030\"\000\0007\186\000\000\000\000Q\022\000\000\000\000\000\000\030:\000\000\000\000\000\000\000\000\001\169\000{\012\2108R\004\238\000\000\000\000\000\000\000\144\t\162@,\007\2528`\001\1699\b\004J9V\001\169\000\000\000\000\000\000\000\000\030\136\000\000\000\000\000\000\000\000\001\159\000j\012\2169^\005P\000\000\000\000\000\000\000\000\000\000\014&\000\000\000\000\000\000@6\000\000\000\240\000\000\0028\000\000\r\194\000\000\b\020\000\000\000\000\000\000\000\000\000\000\000\000\007\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\169\000\000\014<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bJ\000\000\000\000\t\198\012f\000\016\030\252\000\000\r$\t\242\r\180\006\194\rT\000\016\016(\003\196\rz\000\016\000\000\031.\000\000\007\210\000\000\r0\t\246\007\234\000\000\000\000\000\000\000\000\000\000\rh\004\142\011\228\003\190\001^\000\000\000\000\000\000\000\000\000\000!\\\000\000Rp\000\000\n\004\000\000\n\006\000\000\000\000\000\000\000\000\004 \000\000\000\000\012t\003\190\000\000\r\224\014\238\003\190\015b\003\190\003\190\000\000\003\190\000\022\000\000\005T\000\000\016N\003\190\003\190\000\000\017\132\003\190\003\190\n\012\000\000\031\212\000\000\000\000\nT\014N\000\000\024\244\004\146\000\000\000\000\000\000\000\000\014H\000\000\000\000\000\000\000\000\001\169\000\000\000\000\000\000\000\000\000\000\005\198\000\000\000\000\r\146\nn\r\176\000\016\000\000\021\202\000\000\003\196\000\000\015$\000\000\000\000\000\000\000\000\000\000 &\000\000\001\169\000\000\000\000\022\194\000\000\003\196\000\000\023\198\000\000\003\196\000\000\024\156\003\196\000\000\005\164\000\000\n\150\0144\b\170\000\000\r\242\014\n\011\022\014J\015\b\029\142\003\196\t\192\000\000\011(\014\238\015\002\t\218\n2\014\208\011X\015\014\nF\nJ\014\248\000\000\000\000\n\242\nn\000\000\tf\003\016@|\007\252 >\000\000\n\186\003B\000\000\000\000\014\186\011^\n\138\000\000B.\000\000M\232\006\020\000\000\015\\\015x\000\000\011\148\000\000\006\020\014\234\011`\t\128\015\022\005\004\000\000\000\000\000\000\000\000\011n\012\020\000\000\011|\012H\000\000\bH\002\196\015,\015.\011\144\007<\012N\000\000\011\208\t\n\012|\000\000\0150\0158\011\236\015X\015\b\030\162\003\196\000\000\011\244\015\208\000\000\tR\000\000\012\150\000\000\015\210\000\000\030\236\003\222\015\154\0122\015\230\000\000\031\174\004D\015\186\000\000\000\000\n\254\004\140\012\176\000\000 \012\003\196\012\248\000\000\011V\000\000\015v\012D\012@\015\022\015x\015z\012b\016\244\000\000\015\150\0022\000\000\000\000\000\000\006H\000\000\000\000\000\000\000\167\012\134\015vN(\006\020\000\000\002\138\012\152\016F\000\000\000\000\000\000\000\000\000\000\000\000N\144\006\020\000\000\012\190\016\160\000\000\000\000\000\000\000\000\000\000\000\000C\136\r(\000\000\012\208\002b\000\000\012\212\012\232\005\150\000\000\003\012G\170\000\000\007\130\000\000N\176\006\020\006\020\000\000\000\000\006H\000\000\007x\000\000\006\004\006H\006H\000\000\r\006\020\212\006\020N\208\006\020\r,\000\000\000\000\000\000\000\000\r@\000\000\000\000\003\200\000\000\bN\016\n\r\018\0172\015\212\000\000\000\000\0066\b|\016$\000\000\000\000\rZ\017V\015\254\000\000\000\000\001$\000\000\031F\000\000\004\146%\144\006\020\000\000\012(#\004\000\000\0140\000\000\000\000\000\000\006H\000\000\000\000\rx\016P\r^\017t\016\"\000\000\000\000\020\000\r\162\016n\000\000\000\000\000\000\tF\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\216\000\000\016,\rl#,\b\212\000\000\016\144\rn\t\004\000\000\017\152\017F\014\024\016\158\000\000\000\000\016\174\r\194\nt\000\000\000\000\b\190:\244\b\136\000\000\000\000\000\000\r0\016z\014\006\000\000\016~\r0\000\000\017t\0142\016\206\000\000\000\000\000\000\006\020\000J\002F\n|\000\000\000\000\000\000\000\000\016\152\014\b\000\000\n\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\020\016\134\014\024\017\252\016\156\000\000C*)\224\001\003\0146\016j\004*\001\204\014H\0174\000\000\000\000\017\242 \196\000\000\000\000!,\000\000\014B\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000O$\006\020\000\000\017\246!\146\000\000\000\000!\196\000\000\000w\014V\017\152\000\000\000\000C\172C\242\017L\000\000O\152\006\020!\250\000\000\000\000\"f\000\000\000\000\014\184\000\000\003f\000\000\000\000\000\000\000\000\000\000\000\000D\020\000\000\000\000C\236D\218\017N\000\000O\176\006\020\"\200\000\000\000\000#d\000\000\000\000\014j#\184\014\192\000\000\014r\014v\000\233\000{\014\140\r\230\014\146\017\166$$\014\252\000\000\014\154\014\156\bN\000\000\002\184G\214\000\000\bn\000\000\014\176D\254E\n\002\224\016v\006\024\000\000+\162\004b\000\000\003\140\000\000\000\000\003\140\000\000\000\000\003\140\011\176\000\000\007\006\003\140\017\170$0\015\022\000\000\003\140\000\000\000\000\027>\000\000\000\000\000\000\003\140\000\000\000\000\015N\000\000\b\236\006\030\015\200\000\000\015\030G\204\015\202\000\000\000\000\000\000\000\000\015\240\000\000\000\000\004\194\000\000\003\140\028B\000\000\n\230\003\140E@\000\000\015\254\017\004\0152\018,\016\204\000\000EX\016\018\017\016\000\000\000\000\000\000\024\202\t0\000\000\000\000\000\000\000\000\000\000\000\000\011p\0168\000\000\016\204\015X\016\018\b\204\000\000\017(\000\000\000\000\000\000\000\000\016R \252\000\000\000\000\000\000\000\000\011p\000\000\000\000\016\142HB\000\000\000\000\000\000\000\000\000\000\000\016\003\196\000\000\000\000\007\252\000\000O\186\006\020\000\000\006,\000\000\000\000\000\000\000\000$\228\000\000\000\000\000\000\000\000\000\000\000\000\017\204\004.\r\246\016z\t \015n\000\000\000\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\152\tx\015\176\000\000\b\200\0182\017\222\016\158\000\000\000\000\017\210\004H\005\174\000\000\000\000\000\000\000\000I\014\016\026\000\000\016&\0072\000\000\000\000\003\190\t\006\000\000\000\000\000\000\000\000\000\000O\220\006\020\000\0002\254#\136\000\000\000\000\000\000%|E\174\000\000PP\006\020\000\0003\208%\188\000\000\000\000\000\000\000\00054&\234\000\000\000\000\000\000\000\000R\022&\250\000\000\000\000\000\000\000\000P\162\006\020\000\000R\198'n\000\000\000\000\000\000\000\000\000\000P\196\006\020\000\000R\240*H\000\000\000\000\000\000\011*\000\000\000\000\000\000\006\020\000\000\000\000\tZ\017\226\016\194\000\000\000\000\017\214\001R\002\158\000\000\000\000\000\000\000\000\nx\0182\t\134\017\230\016\212\000\000\000\000\017\218\006\012\003^\000\000\000\000\000\000\000\000\003\196\000\000\016\216\000\000\000\000\000\000%\"\000\000%D\000\000\000\000\000\000\000\000\000\0008\216\000\000\000\000\000\000\000\018\000;\000\000\000\000\000\000\000\000\000\000\007(\000;\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000\000\000\000\000\000H\182\000\000\006\020\000\000\011\018\000\000\000\000\000\000\000\242\000\000\000\000\000\000\001l\000\000\000\000\000\000\005$\000\000\000\016\000\000\000K\000\000\003\196\000\000\000{\000\000\000\000\000\000:\\\007\252\000\000\000\000\000Z\000\000\000\000\000\000\000\000\007\018\004\200\017\n\000\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\016\000\000\016\226\000\000\000\000\000\000\000\000\004\250\006\150\001\016\002\172\000\000\000\000\016\228<\212\000\000\000\000\000\000\016\240F0\000\000\000\000\000\000\000\000"), (16, "\006\248\004>\002s\002t\001\165\004M\004+\000\246\007\158\007\186\000\250\000\251\000=\b\t\002t\001\165\002\231\002\188\006\249\007\191\000\246\002\231\006\251\000\250\000\251\006\248\002\189\002s\002t\001\165\001\171\006\252\007\014\007\202\007\245\000\166\0023\007\166\0020\002\215\006\181\001+\002\188\006\249\007\r\000\246\0027\006\251\000\250\001\r\002;\002\189\001#\006\181\001\028\000\149\006\252\007\014\000\160\007\241\001#\001&\006\253\000B\002\215\000A\007\246\007\253\002t\001\165\003\151\006\183\004\176\000\250\001\r\000\246\0027\000\158\000\250\000\251\002;\004\186\001#\0009\006\183\002$\006\129\006\253\000o\006\184\002\031\007\184\000\161\007\242\006\186\002<\003\138\002H\006\230\006\254\0027\006\131\006\184\002\217\002;\0009\001#\006\186\006\181\006\255\003\168\006\209\007\203\002`\006'\001\028\002w\005\182\002\219\000\250\004F\001#\0015\000\149\006\254\002<\000\160\b\n\002\217\002\219\000\250\000\158\005\183\000\165\006\255\007\019\005\207\000^\007\255\006\183\0042\002w\002B\002\219\000\250\000\250\007\204\002I\001\028\002<\007\020\007\211\001#\004=\001#\0015\006\248\006\184\000s\001\165\007\019\007\002\006\186\002=\007\004\007\193\006\202\007\t\005\254\000\158\007;\b\024\000\155\004U\b\025\007\020\001+\007\011\006\251\005\231\002\220\b\000\002\226\002\219\000\250\000\156\007\002\006\252\002\232\007\004\001\203\002\222\007\t\001\172\001\031\007\212\007\012\005\255\007\177\006\000\001#\000\164\007\011\007<\0013\002\220\006\248\002\226\002s\002t\001\165\0016\007=\002\232\002\234\001\203\002\222\004\192\006\253\007\213\007\229\007\012\000b\002\188\006\249\007\r\006.\006/\006\251\000f\006\001\006\248\002\189\002s\002t\001\165\002a\006\252\007\014\002\234\007\214\004\195\006?\000{\007\161\002\215\0068\004\200\002\188\006\249\007\r\006^\005\233\006\251\0042\006\254\000\246\002\189\007\230\000\250\001\r\0009\006\252\007\014\001#\006\255\006\002\004=\006\253\000<\002\215\000\246\007P\0042\000\250\001\r\006\003\006\004\002\031\006\005\007\233\007\180\000\130\001\028\000\136\001\014\004;\b\027\0027\001#\005\236\000;\002;\006\253\001#\003\138\004V\007/\002\031\000\246\004\158\007\031\000\250\001\r\006F\006\254\007\001\000\166\0027\002\217\005\131\001\017\002;\001\246\001#\006\255\004W\007\002\007\234\001+\007\004\000\250\002w\007\t\002\219\000\250\000\153\0009\002\031\006\007\006\254\002Q\006\t\007\011\002\217\006\014\006\024\002<\0027\001\017\006\255\007\019\002;\005\132\001#\006B\005\237\002w\001\148\002\219\000\250\002=\007\012\004\169\004\171\004\173\007\020\002<\007\164\007\165\000\131\005\183\006\248\005\242\006C\005\239\007\019\007\002\006'\0071\007\004\002=\000\152\007\t\005\254\0009\001;\b\024\0068\004\200\b\025\007\020\006e\007\011\006\251\000\134\002\220\002<\002\226\000\137\006`\004X\007\002\006\252\002\232\007\004\001\203\002\222\007\t\002S\001\151\002=\007\012\005\255\000\167\006\000\003\206\000\157\007\011\000\250\001\r\002\220\006\248\002\226\002s\002t\001\165\002D\003\138\002\232\002\234\001\203\002\222\001#\006\253\002\029\001\028\007\012\000\158\002\188\006\249\007\r\001#\0015\006\251\007^\006\001\006\248\002\189\002s\002t\001\165\001\028\006\252\007\014\002\234\003\223\000?\001#\001&\0072\002\215\006\136\000\158\002\188\006\249\007\r\000\158\000\158\006\251\000\195\006\254\000\246\002\189\000\159\000\250\000\251\001+\006\252\007\014\001,\006\255\006\002\001x\006\253\000\158\002\215\001B\007\021\005\199\006.\006/\006\003\006\004\000\246\006\005\000\191\000\250\000\251\0016\006i\001\028\007\162\b\026\001y\0013\0067\001#\001&\006\253\0068\004\200\001\145\007\017\000\246\005\182\005\202\000\250\000\251\001:\006D\006\254\007\001\000\186\003\138\002\217\006\140\006\181\002M\007Z\005\183\006\255\005\204\007\002\005\190\007\163\007\004\001\028\002w\007\t\002\219\000\250\000\158\001#\001&\006\007\006\254\006\181\006\t\007\011\002\217\006\014\006\024\001@\002M\005\205\006\255\007\019\006\183\000\252\000\174\006B\000\201\002w\000\158\002\219\000\250\001\028\007\012\000\190\001~\000\198\007\020\001#\0015\003\138\006\184\006\212\006\183\001'\006C\006\186\007\019\007\002\001\028\006\193\007\004\000\206\003\138\007\t\001#\0015\003\138\002s\002t\001\165\006\184\007\020\007\176\007\011\005\182\006\186\002\220\0009\002\226\006\190\002\031\000\196\007\002\002N\002\232\007\004\001\203\002\222\007\t\005\183\0027\003\226\007\012\005\184\002;\007:\001#\001+\007\011\001+\001\028\002\220\005\231\002\226\000\158\007\163\001#\0015\007N\002\232\002\234\001\203\002\222\003\138\001I\000\200\006\248\007\012\002s\002t\001\165\0016\005\206\005Y\000\205\001\136\002G\0013\004\176\000\158\b\012\b\r\001#\002\188\b\015\002\234\005e\004\158\006\251\002<\003\140\006\248\002\189\002s\002t\001\165\b \006\252\b\017\005\202\003\138\001;\003\138\002=\001L\002\215\b\024\001+\002\188\b\025\007\137\001\223\001\165\006\251\007'\005\204\006\188\002\189\002v\000\219\006\222\000\218\006\252\b!\000\166\005\233\000\168\0020\006\253\002\031\002\215\002w\002 \002\219\000\250\0013\000\228\005k\005\205\0027\004\172\004\171\004\173\002;\0026\001#\001+\000\222\006\225\002s\002t\001\165\005p\006\253\001\028\000\250\001\028\0026\007>\007?\001#\0015\001#\005\236\006\227\006\254\005\001\007@\007A\002\217\003\228\007>\007?\003\226\003\139\006\255\004\206\004\176\007B\004\200\007@\007A\002w\000\230\002\219\000\250\0049\000\158\002<\007\237\006\254\007B\004\200\006\228\002\217\002\220\006\229\002U\b\020\003\227\006\255\002U\002=\002\221\000\158\001\203\002\222\002w\0026\002\219\000\250\002\231\005=\002\238\001\028\000\250\007\020\0016\000\237\005\237\001#\0015\b%\004\183\006\225\007\238\001G\007\002\002b\007\030\007\004\000\250\002b\007\t\005\183\000\250\005\241\000\243\005\239\003\138\006\227\007\020\001+\007\011\003\138\007z\002\220\004\184\002\226\001;\002v\000\158\007\002\001\028\002\232\007\004\001\203\002\222\007\t\001#\0015\002`\007\012\002w\000\166\002\219\000\250\005\135\007\011\006\228\0013\002\220\006\248\002\226\002s\002t\001\165\0016\004/\002\232\002\234\001\203\002\222\007\175\005@\005\173\001\203\007\012\000\250\002\188\006\249\007\027\002c\002\231\006\251\003\138\002c\006\248\002\189\002s\002t\001\165\003\229\006\252\007\014\002\234\000\166\001;\007F\0020\000\238\002\215\b\024\005\000\002\188\b\025\0016\001\160\007O\006\251\001\000\003\138\004\188\002\189\000\241\001\028\004J\002\220\006\252\b\028\006\216\001#\001&\001\028\006\253\002\221\002\215\001\203\002\222\001#\0015\001\028\002\231\001\164\001\165\007\217\004\191\001#\001&\001\028\000\246\007<\003X\000\250\000\251\001#\0015\000\244\006\248\006\253\007=\003[\004c\001\165\001\166\0039\001\028\001\168\001\169\005\155\001\001\006\254\001#\001&\007\209\002\217\b\015\007(\000\158\005=\006\251\006\255\000\250\006\181\002a\001+\004\222\001\028\002w\006\252\002\219\000\250\000\158\001#\001&\005\191\006\254\007\164\007\165\001+\002\217\002\231\001,\0019\005\182\006\225\006\255\007\019\000\166\001B\000\193\0020\0016\002w\006\183\002\219\000\250\0068\004\200\005\183\006\253\006\227\007\020\005\189\001\028\000\158\001\153\0013\b\031\005\182\001#\0015\006\184\007\002\004\137\001+\007\004\006\186\000\158\007\t\001K\006\187\001;\001\173\005\183\006\188\006'\007\020\005\215\007\011\006\228\007\218\002\220\001\203\002\226\001\135\001\174\006\254\007\002\000\250\002\232\007\004\001\203\002\222\007\t\001F\005\185\006\255\007\012\000\246\003\028\001\165\000\250\000\251\007\011\001@\001\021\002\220\006\248\002\226\002s\002t\001\165\003\130\001\165\002\232\002\234\001\203\002\222\007\153\b\016\004\140\001\028\007\012\003\\\002\188\006\249\005L\001#\0015\006\251\007Y\006\181\001#\002\189\001\024\001\028\001\133\007\001\006\252\007\023\002\234\001#\0015\005\254\003^\001\157\002\215\001*\007\002\001\193\004[\007\004\000\158\001+\007\t\005\187\001,\001\202\000\250\001\203\001\172\001\028\006\183\001B\007\011\007\210\002U\001#\001&\006\253\001\181\001\028\005\255\006E\006\000\001O\002\031\001#\0015\0025\006\184\0013\001R\007\012\0016\006\186\0027\006.\006/\006\197\002;\001I\001#\001\129\004\255\002\019\002U\002b\0016\004\141\000\250\002\021\0060\006@\000\158\006\001\006\254\0068\004\200\003\138\002\217\001\150\001+\000\158\007Z\001,\006\255\007K\000\166\002U\002#\0020\001B\002w\002Y\002\219\000\250\002b\001;\001@\000\250\001L\003\138\000\246\0016\002<\000\250\001\r\000\158\005\178\0013\006\002\007\026\000\166\001\241\006\017\0020\002d\001+\002=\002b\006\003\006\004\000\250\006\005\003\138\004\140\007\020\001\156\006'\001\028\002c\006\171\000\158\0017\000\250\001#\0015\007\002\000\158\005\254\007\004\003\138\004V\007\t\002\028\003\138\002`\000\246\006F\004\158\000\250\000\251\005\208\007\011\004\150\004\200\002\220\001@\002\226\001+\002c\002n\001,\002`\002\232\001\239\001\203\002\222\005\255\001B\006\000\006*\007\012\006\007\002q\005\216\006\t\001\180\0009\006\014\006\024\001+\001\190\002c\001,\001I\001\199\0013\001\028\006B\002\234\001B\0016\001\028\001#\0015\006G\002\127\005\004\001#\0015\006\001\006 \004\171\004\173\004x\006'\001\198\006C\0013\000\246\002\142\000\158\000\250\000\251\007\b\001\245\001+\002\007\006\r\001,\002\231\001;\005\185\001\028\001L\005P\001B\006'\000\158\001#\0015\001#\007\\\006\176\001@\005=\006\002\002\005\000\250\006.\006/\000\158\006\181\001I\0013\005\185\006\003\006\004\007\155\006\005\0016\002s\002t\001\165\0060\006@\001@\002\145\004\210\0068\004\200\005_\003\138\006'\000\158\001\028\002\188\001#\002a\002\r\007\169\001#\0015\006\183\006\006\002\189\002\151\002\177\000\158\005=\001;\004\233\000\250\001L\004\208\002a\0016\001\028\002\215\0026\001+\006\184\001@\001#\0015\000\166\006\186\006\027\0020\006\007\006\215\007\172\006\t\005+\001\165\006\014\006\024\0078\004\201\001\203\002\182\002s\002t\001\165\003\026\006B\007Z\006.\006/\003\138\004z\001I\002\018\001\028\0043\000\158\002\188\005\018\0016\001#\0015\003\138\0060\006@\006C\002\189\005\r\0068\004\200\006.\006/\004!\004{\001I\000\158\000\158\000o\0009\002\215\003\138\0016\007D\002\217\001\203\0060\006@\005:\004\200\001;\0068\004\200\001L\001+\005\031\004\129\002w\004\144\002\219\000\250\002\024\002s\002t\001\165\004\165\004\167\006.\006/\004\197\000\158\001I\001;\005\023\000\158\001L\004\140\002\188\0016\002s\002t\001\165\007\151\007\152\000\158\005\019\002\189\0068\004\200\001\028\004\158\002\223\007\225\004\158\002\188\001#\0015\005\024\000o\002\215\001\028\002L\000\158\002\189\002\217\004\202\001#\0015\001;\007+\002)\001L\002s\002t\001\165\005\029\002\215\002w\004\226\002\219\000\250\002\220\002U\002\226\000\158\002\031\000\158\002\188\002?\002\232\004\140\001\203\002\222\000\158\000\158\0027\002\189\000\158\005\002\002;\007\227\001#\004\238\0064\004\171\004\173\006<\004\171\004\173\002\215\002V\002\223\0016\002b\000\246\002\234\000\250\000\250\000\251\005\028\002+\001\028\001+\002\217\005t\001/\002:\001#\0015\002U\002s\002t\001\165\000\158\002K\001+\002w\004\158\002\219\000\250\002\217\002\220\001=\002\226\002<\002\188\000\158\006\181\003\138\002\232\0013\001\203\002\222\002w\002\189\002\219\000\250\002\128\002=\004q\002b\004m\005\b\000\250\004\218\002m\000\158\002\215\005w\001+\002\223\005\015\005\231\002\217\002p\002\234\004\140\002c\006\183\002s\002t\001\165\005v\002~\0016\005%\002w\002\223\002\219\000\250\007\148\004\171\004\173\002\141\002\188\005\021\006\184\0013\005*\0059\002\220\006\186\002\226\002\189\002\144\006\234\005A\001+\002\232\004\216\001\203\002\222\003\138\005D\003\253\006\195\002\215\002\220\000\250\002\226\002\223\002\150\0055\005K\002c\002\232\005v\001\203\002\222\001\028\000\158\002\217\001\251\001\165\002\234\001#\0015\002\169\003\138\000\158\002\163\003\138\001\028\002\166\002w\005\233\002\219\000\250\001#\0015\002\220\002\234\002\226\001\166\002\136\005O\001\168\001\169\002\232\002\172\001\203\002\222\002\176\000\158\003\138\002\181\000\158\000\158\002\201\005U\002s\002t\001\165\005[\000\158\002U\001\028\003\138\002\223\003\141\002\217\000\158\001#\005\236\002\234\002\188\005B\002s\002t\001\165\003\138\000\158\0016\002w\002\189\002\219\000\250\004\023\003\132\003\133\004\207\003\031\002\188\004|\005g\0016\002b\002\215\002\220\000\250\004\221\002\189\005E\005z\001\028\005M\002\232\004y\001\203\002\222\001#\0015\001;\000\158\002\215\003)\003\138\002\223\005\127\002s\002t\001\165\001\191\002\031\003(\004\153\002A\000\158\005Q\005\237\003T\000\158\002\234\0027\002\188\001\174\005\140\002;\000\250\001#\003\138\005`\003\138\002\189\005\183\005\146\005\240\002\220\005\239\002\226\005{\004\200\003\138\004t\005q\002\232\002\215\001\203\002\222\001;\002c\002\217\000\158\003a\005\157\004\026\004\031\0016\002s\002t\001\165\000\158\003\131\005\168\002w\005\186\002\219\000\250\002\217\001+\003\138\002\234\002<\002\188\002U\005\172\000\158\002s\002t\001\165\005u\002w\002\189\002\219\000\250\0009\002=\004\175\004f\001\193\005\193\003\138\002\188\002U\000\158\002\215\005\210\001\194\002\223\001\203\001\172\002\189\004\132\000\158\005\166\002b\005\198\004\022\000\250\001+\002\217\003\242\005\231\003\250\002\215\002\223\005\203\004<\003\138\004L\002U\004\136\000\158\002w\002b\002\219\000\250\000\250\002\220\004O\002\226\000\158\005\220\000\158\005\245\004Y\002\232\0013\001\203\002\222\004o\006\011\006\016\000\158\005\243\002\220\004\128\002\226\004\227\004\130\003\138\002b\004\143\002\232\000\250\001\203\002\222\002\223\000\158\002\217\006$\004\200\002\234\003\138\000\158\005\251\002s\002t\001\165\002c\004\196\003\138\002w\004\204\002\219\000\250\001\028\001+\002\217\002\234\0012\002\188\001#\0015\006\026\005\233\002U\002\220\002c\004w\002\189\002w\006\b\002\219\000\250\002\232\004\017\001\203\002\222\004\211\000\158\004\225\000\158\002\215\001+\0013\002\223\001\164\001\165\000\158\000\158\002s\002t\001\165\005\003\002c\001\028\002b\006&\006:\000\250\002\234\001#\005\236\006\021\002\223\002\188\006J\001\166\001\182\003\138\001\168\001\169\004\236\003\138\002\189\002\220\006,\002\226\0016\002\031\004\006\006Q\002]\002\232\006_\001\203\002\222\002\215\005\014\0027\006U\000\158\004\r\002;\002\220\001#\002\226\006r\0076\004\200\005\007\001+\002\232\003\138\001\203\002\222\002\217\006\154\004\182\002\234\006\163\006\214\001\183\006\159\001\184\002\147\003\138\005\t\005\237\002w\002c\002\219\000\250\001\028\006\198\000\158\000\158\006\164\002\234\001#\0015\006\194\006\170\005\183\000\158\005\238\005\012\005\239\002<\002s\002t\001\165\006\178\006\130\003\138\005\027\001\191\006\156\001;\000\158\001\028\002\217\002=\002\223\002\188\005\017\001#\0015\000\158\001\174\005\026\005\022\000\250\002\189\002w\000\158\002\219\000\250\002\031\003\247\004\016\002\131\002s\002t\001\165\000\158\002\215\006\167\0027\000\158\005\025\000\158\002;\002\220\001#\002\226\0016\002\188\005)\0054\006\201\002\232\000\158\001\203\002\222\000\158\002\189\006\219\002\223\000\158\000\158\001+\003\239\0053\001v\003\138\003\138\006\240\001\028\002\215\000\158\001w\0058\0016\001#\0015\001;\002\234\006\213\001+\002s\002t\001\165\001\193\005C\003\138\007\006\002<\002\220\0013\002\226\001\194\003\138\001\203\001\172\002\188\002\232\0079\001\203\002\222\002\217\002=\003\138\004\179\002\189\005N\005J\005Z\002s\002t\001\165\005T\005V\002w\003\231\002\219\000\250\002\215\005n\005b\005m\003\138\002\234\002\188\002U\000\158\002s\002t\001\165\005h\007E\0016\002\189\002\217\003\138\000\158\005l\001@\002\212\006\217\006\221\002\188\005y\005\219\005~\002\215\002w\002\223\002\219\000\250\002\189\005\129\007\007\005\136\000\158\002b\002\225\002\031\000\250\006\226\004\134\004\181\005\144\002\215\003\138\000\158\006\238\0027\001\028\005\151\005\162\002;\003\138\001#\001#\0015\006\245\002\220\005\218\002\226\002\223\002\217\005\211\007U\005\212\002\232\001\028\001\203\002\222\007W\003\138\005\217\001#\0015\002w\007\003\002\219\000\250\000\158\003\138\005\221\003\138\002s\002t\001\165\005\222\003\138\003\138\007\015\002\217\002\220\002\234\002\226\003\138\005\253\005\246\002<\002\188\002\232\002c\001\203\002\222\002w\005\247\002\219\000\250\002\189\002\217\002\223\005\252\002=\0016\002\240\006\n\001+\002s\002t\001\165\007\024\002\215\002w\006\023\002\219\000\250\002\234\006\019\007J\006\020\006\022\0016\002\188\000\158\002s\002t\001\165\006A\002\223\000\158\002\220\002\189\003\157\001;\006%\006)\007\157\002\239\002\232\002\188\001\203\002\222\006+\006-\002\215\007\171\002\223\007\183\002\189\0069\006I\004\190\b\018\b\029\0035\006K\006L\006R\002\220\b\"\002\226\002\215\006W\006[\002\234\006m\002\232\006t\001\203\002\222\006x\006\144\006\165\006\189\006\199\002\217\002\220\006\247\002\226\006\241\006\242\003Q\001\165\006\246\002\232\007\005\001\203\002\222\002w\007\n\002\219\000\250\002\234\0074\007H\007I\007M\007\156\007\160\007\170\007\174\b\004\003o\001\182\000\000\001\168\001\169\000\000\002\217\000\000\002\234\001\164\001\165\001\028\000\000\000\000\000\000\000\000\000\000\001#\0015\002w\002\223\002\219\000\250\002\217\000\000\002s\002t\001\165\000\000\000\000\001\166\0039\000\000\001\168\001\169\000\000\002w\000\000\002\219\000\250\002\188\000\000\000\000\000\000\003t\003\132\003\133\000\000\000\000\002\189\002\220\000\000\002\226\002\223\000\000\0038\000\000\000\000\002\232\000\000\001\203\002\222\002\215\000\000\000\000\000\000\000\000\000\000\001+\000\000\002\223\001p\000\000\000\000\0016\002s\002t\001\165\000\000\001\191\000\000\000\000\000\000\002\220\002\234\002\226\000\000\000\000\000\000\000\000\002\188\002\232\001\174\001\203\002\222\000\250\0013\000\000\000\000\002\189\002\220\000\000\002\226\000\000\004\194\003L\000\000\000\000\002\232\001\173\001\203\002\222\002\215\000\000\002s\002t\001\165\002\234\000\000\000\000\000\000\000\000\001\174\000\000\000\000\000\250\002\217\003\136\003\137\002\188\000\000\002s\002t\001\165\002\234\002s\002t\001\165\002\189\002w\000\000\002\219\000\250\000\000\003O\000\000\002\188\000\000\000\000\000\000\002\188\002\215\000\000\000\000\000\000\002\189\001\193\000\000\000\000\002\189\004\000\003W\000\000\000\000\001\194\003Z\001\203\001\172\002\215\000\000\000\000\000\000\002\215\002\223\000\000\001\028\002\217\000\000\000\000\000\000\004\003\001#\0015\000\000\000\000\000\000\001\193\000\000\000\000\002w\000\000\002\219\000\250\000\000\001\202\000\000\001\203\001\172\000\000\000\000\000\000\000\000\000\000\002\220\000\000\002\226\000\000\000\000\000\000\000\000\000\000\002\232\000\000\001\203\002\222\002\217\000\000\000\000\000\000\000\000\000\000\000\000\001+\002\223\000\000\005\231\000\000\000\000\002w\000\000\002\219\000\250\002\217\000\000\000\000\000\000\002\217\002\234\0016\000\000\000\000\002s\002t\001\165\000\000\002w\000\000\002\219\000\250\002w\0013\002\219\000\250\002\220\000\000\002\226\002\188\000\000\002s\002t\001\165\002\232\002\223\001\203\002\222\002\189\000\000\000\000\001;\000\000\000\000\003e\000\000\002\188\000\000\000\000\000\000\000\000\002\215\002\223\000\000\000\000\002\189\002\223\000\000\000\000\000\000\002\234\003j\000\000\000\000\000\000\002\220\000\000\002\226\002\215\000\000\000\000\005\233\000\000\002\232\000\000\001\203\002\222\000\000\000\000\000\000\000\000\000\000\002\220\000\000\002\226\000\000\002\220\000\000\002\226\000\000\002\232\000\000\001\203\002\222\002\232\000\000\001\203\002\222\000\000\002\234\000\000\001+\001\028\000\000\001,\000\000\000\000\000\000\001#\005\236\000\000\001B\000\000\000\000\000\000\002\217\002\234\000\000\000\000\000\000\002\234\000\000\002s\002t\001\165\000\000\000\000\000\000\002w\0013\002\219\000\250\002\217\000\000\002s\002t\001\165\002\188\000\000\002s\002t\001\165\000\000\000\000\000\000\002w\002\189\002\219\000\250\002\188\000\000\000\000\003m\000\000\002\188\000\000\000\000\000\000\002\189\002\215\000\000\000\000\002\223\002\189\003s\005\237\000\000\000\000\000\000\003v\000\000\002\215\000\000\000\000\000\000\000\000\002\215\001@\000\000\002\223\005\183\000\000\005\250\000\000\005\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\220\000\000\002\226\001;\000\000\000\000\000\000\000\000\002\232\000\000\001\203\002\222\000\000\000\000\000\000\000\000\001\028\002\220\000\000\002\226\000\000\000\000\001#\0015\000\000\002\232\000\000\001\203\002\222\000\000\000\000\002\217\000\000\000\000\002\234\000\000\000\000\001+\000\000\000\000\001X\000\000\000\000\002\217\002w\000\000\002\219\000\250\002\217\000\000\000\000\002\234\002s\002t\001\165\000\000\002w\000\000\002\219\000\250\000\000\002w\000\000\002\219\000\250\0013\000\000\002\188\000\000\002s\002t\001\165\001I\000\000\000\000\000\000\002\189\000\000\002\223\0016\000\000\000\000\003\144\005\194\002\188\000\000\005\197\000\000\000\000\002\215\002\223\000\000\000\000\002\189\000\000\002\223\000\000\000\000\000\000\003\148\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\220\001;\002\226\000\000\001L\000\000\000\000\000\000\002\232\000\000\001\203\002\222\002\220\000\000\002\226\000\000\000\000\002\220\000\000\002\226\002\232\002\031\001\203\002\222\004\231\002\232\000\000\001\203\002\222\000\000\000\000\0027\000\000\000\000\002\234\002;\001\028\001#\000\000\000\000\000\000\000\000\001#\0015\000\000\002\217\002\234\000\000\000\000\000\000\000\000\002\234\002s\002t\001\165\000\000\000\000\000\000\002w\000\000\002\219\000\250\002\217\000\000\002s\002t\001\165\002\188\000\000\002s\002t\001\165\000\000\000\000\000\000\002w\002\189\002\219\000\250\002\188\002<\002s\002t\001\165\002\188\000\000\003\154\000\000\002\189\002\215\000\000\000\000\002\223\002\189\002=\000\000\002\188\000\000\003\159\0016\000\000\002\215\000\000\003\161\000\000\002\189\002\215\000\000\000\000\002\223\000\000\000\000\000\000\000\000\000\000\003\165\000\000\000\000\002\215\000\000\000\000\000\000\002\220\000\000\002\226\000\000\000\000\000\000\000\000\001;\002\232\000\000\001\203\002\222\000\000\000\000\000\000\000\000\000\000\002\220\000\000\002\226\000\000\000\000\000\000\002\031\000\000\002\232\004\246\001\203\002\222\000\000\000\000\002\217\000\000\0027\002\234\000\000\000\000\002;\000\000\001#\000\000\000\000\000\000\002\217\002w\000\000\002\219\000\250\002\217\000\000\000\000\002\234\000\000\000\000\000\000\000\000\002w\000\000\002\219\000\250\002\217\002w\000\000\002\219\000\250\002s\002t\001\165\000\000\002s\002t\001\165\000\000\002w\000\000\002\219\000\250\000\000\002\223\000\000\002\188\000\000\002<\000\000\002\188\000\000\000\000\000\000\000\000\002\189\002\223\000\000\000\000\002\189\000\000\002\223\002=\000\000\000\000\003\173\000\000\000\000\002\215\003\179\000\000\000\000\002\215\002\223\002\220\000\000\003\157\000\000\000\000\000\000\000\000\000\000\002\232\000\000\001\203\002\222\002\220\000\000\003\157\000\000\000\000\002\220\000\000\003\157\002\232\000\000\001\203\002\222\000\000\002\232\000\000\001\203\002\222\002\220\000\000\003\157\000\000\000\000\002\234\000\000\000\000\002\232\000\000\001\203\002\222\000\000\000\000\000\000\000\000\002\031\002\234\000\000\004\250\000\000\000\000\002\234\000\000\000\000\000\000\0027\000\000\001+\002\217\002;\001>\001#\002\217\002\234\002s\002t\001\165\001?\006\248\000\000\000\000\002w\000\000\002\219\000\250\002w\000\000\002\219\000\250\002\188\000\000\000\000\002s\002t\001\165\0013\006\249\000\000\002\189\000\000\006\251\000\000\003Q\001\165\000\000\000\000\000\000\002\188\003\185\006\252\000\000\002\215\000\000\000\000\002<\002\223\002\189\000\000\000\000\002\223\000\000\000\000\003\192\003o\001\182\000\000\001\168\001\169\002=\002\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\253\000\000\000\000\001@\000\000\002\220\000\000\003\157\000\000\002\220\000\000\003\157\000\000\002\232\000\000\001\203\002\222\002\232\000\000\001\203\002\222\000\000\002\031\000\000\000\000\004\253\000\000\003t\003\132\003\133\001+\000\000\0027\001j\001\028\002\217\002;\006\254\001#\002\234\001#\0015\000\000\002\234\000\000\000\000\000\000\006\255\002w\000\000\002\219\000\250\000\000\002\217\000\000\002s\002t\001\165\0013\002s\002t\001\165\001\191\000\000\000\000\000\000\002w\000\000\002\219\000\250\002\188\000\000\000\000\007\000\002\188\001\174\000\000\000\000\000\250\002\189\000\000\002<\002\223\002\189\000\000\003\197\000\000\000\000\007\001\003\202\000\000\000\000\002\215\000\000\000\000\002=\002\215\0016\000\000\007\002\002\223\000\000\007\004\000\000\000\000\007\t\000\000\000\000\000\000\000\000\003\136\004\205\002\220\000\000\003\157\007\011\000\000\000\000\000\000\000\000\002\232\000\000\001\203\002\222\000\000\000\000\000\000\001;\000\000\000\000\002\220\000\000\002\226\000\000\007\012\000\000\000\000\001\028\002\232\001\193\001\203\002\222\000\000\001#\0015\000\000\002\234\001\194\000\000\001\203\001\172\000\000\000\000\000\000\000\000\000\000\002\217\000\000\000\000\000\000\002\217\000\000\000\000\000\000\002\234\002s\002t\001\165\000\000\002w\000\000\002\219\000\250\002w\000\000\002\219\000\250\002s\002t\001\165\002\188\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\002\189\000\000\000\000\002\188\000\000\002s\002t\001\165\002\188\000\000\003\209\0016\002\189\002\215\002\223\000\000\000\000\002\189\002\223\000\000\002\188\000\000\003\214\000\000\000\000\002\215\000\000\003\219\000\000\002\189\002\215\000\000\001+\000\000\000\000\001g\000\000\000\000\000\000\003\234\000\000\001;\002\215\000\000\002\220\000\000\002\226\000\000\002\220\000\000\002\226\000\000\002\232\000\000\001\203\002\222\002\232\000\000\001\203\002\222\0013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001+\000\000\000\000\005\231\002\217\002\234\000\000\000\000\000\000\002\234\000\000\000\000\000\000\000\000\000\000\000\000\002\217\002w\000\000\002\219\000\250\002\217\000\000\002s\002t\001\165\000\000\000\000\0013\002w\000\000\002\219\000\250\002\217\002w\000\000\002\219\000\250\002\188\000\000\002s\002t\001\165\000\000\000\000\000\000\002w\002\189\002\219\000\250\000\000\002\223\000\000\000\000\000\000\002\188\000\000\003\237\000\000\000\000\002\215\000\000\000\000\002\223\002\189\000\000\001\028\000\000\002\223\000\000\003\243\000\000\001#\0015\000\000\000\000\005\233\002\215\000\000\000\000\002\223\002\220\000\000\003\157\000\000\000\000\000\000\000\000\000\000\002\232\000\000\001\203\002\222\002\220\000\000\003\157\000\000\000\000\002\220\000\000\003\157\002\232\000\000\001\203\002\222\000\000\002\232\001\028\001\203\002\222\002\220\000\000\003\157\001#\005\236\002\234\000\000\000\000\002\232\000\000\001\203\002\222\000\000\000\000\002\217\000\000\000\000\002\234\000\000\0016\001+\000\000\002\234\005\231\000\000\000\000\000\000\002w\000\000\002\219\000\250\002\217\000\000\000\000\002\234\002s\002t\001\165\000\000\002s\002t\001\165\000\000\000\000\002w\000\000\002\219\000\250\0013\001;\002\188\000\000\000\000\000\000\002\188\000\000\000\000\000\000\000\000\002\189\005\237\002\223\000\000\002\189\000\000\003\245\000\000\000\000\000\000\003\255\000\000\000\000\002\215\000\000\000\000\005\183\002\215\006\206\002\223\005\239\000\000\000\000\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\001;\002\220\000\000\003\157\000\000\000\000\005\233\000\000\002\188\002\232\000\000\001\203\002\222\000\000\000\000\000\000\000\000\002\189\002\220\000\000\002\226\000\000\000\000\004\b\000\000\000\000\002\232\000\000\001\203\002\222\002\215\000\000\000\000\000\000\000\000\002\234\001+\001\028\000\000\001m\000\000\000\000\000\000\001#\005\236\000\000\002\217\000\000\000\000\000\000\002\217\000\000\002\234\002s\002t\001\165\000\000\000\000\000\000\002w\000\000\002\219\000\250\002w\0013\002\219\000\250\000\000\002\188\000\000\000\000\002s\002t\001\165\000\000\000\000\000\000\002\189\000\000\000\000\000\000\000\000\000\000\004\011\000\000\000\000\002\188\000\000\000\000\000\000\002\215\000\000\000\000\002\223\002\217\002\189\000\000\002\223\000\000\000\000\005\237\004\025\000\000\000\000\000\000\000\000\000\000\002w\002\215\002\219\000\250\000\000\000\000\000\000\000\000\005\183\000\000\006\232\000\000\005\239\000\000\000\000\000\000\002\220\000\000\002\226\000\000\002\220\000\000\002\226\001;\002\232\000\000\001\203\002\222\002\232\000\000\001\203\002\222\000\000\000\000\002\223\000\000\001\028\000\000\000\000\000\000\000\000\000\000\001#\0015\000\000\000\000\000\000\002\217\001+\000\000\002\234\001s\000\000\000\000\002\234\002s\002t\001\165\000\000\000\000\002w\000\000\002\219\000\250\002\220\002\217\002\226\002s\002t\001\165\002\188\000\000\002\232\000\000\001\203\002\222\0013\000\000\002w\002\189\002\219\000\250\002\188\000\000\000\000\004\028\002\031\000\000\000\000\005\011\000\000\002\189\002\215\000\000\002\223\000\000\0027\000\000\002\234\0016\002;\004&\001#\000\000\002\215\000\000\002s\002t\001\165\000\000\000\000\000\000\002\223\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\002\220\000\000\002\226\000\000\000\000\001;\002\189\000\000\002\232\000\000\001\203\002\222\000\000\000\000\000\000\000\000\004A\000\000\002\220\002\215\002\226\002<\000\000\000\000\000\000\000\000\002\232\000\000\001\203\002\222\000\000\001\028\002\217\000\000\002\234\002=\000\000\001#\0015\000\000\002s\002t\001\165\000\000\002\217\002w\000\000\002\219\000\250\000\000\000\000\000\000\002\234\000\000\000\000\002\188\000\000\002w\000\000\002\219\000\250\000\000\000\000\000\000\002\189\002s\002t\001\165\000\000\000\000\004~\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002\223\002\188\000\000\000\000\002\217\000\000\001+\000\000\000\000\005\227\002\189\000\000\002\223\000\000\000\000\0016\004\139\002w\000\000\002\219\000\250\002\031\000\000\002\215\005X\000\000\000\000\000\000\000\000\000\000\002\220\0027\002\226\000\000\0013\002;\000\000\001#\002\232\000\000\001\203\002\222\002\220\000\000\004)\001;\000\000\000\000\000\000\000\000\002\232\002\223\001\203\002\222\000\000\000\000\000\000\000\000\002\031\000\000\000\000\005d\002\217\000\000\002\234\000\000\000\000\000\000\0027\002s\002t\001\165\002;\000\000\001#\002w\002\234\002\219\000\250\000\000\002<\002\220\000\000\004D\002\188\000\000\000\000\002\217\000\000\002\232\000\000\001\203\002\222\002\189\002=\000\000\000\000\000\000\000\000\004\199\002w\000\000\002\219\000\250\000\000\000\000\002\215\000\000\000\000\002\223\000\000\001\164\001\165\001\028\000\000\002\234\000\000\002<\000\000\001#\0015\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\000\000\000\000\002=\001\166\001\182\002\223\001\168\001\169\002\188\000\000\002\220\000\000\002\226\000\000\000\000\000\000\000\000\002\189\002\232\000\000\001\203\002\222\000\000\005#\001+\000\000\002\031\001Y\004\240\005j\002\215\000\000\000\000\000\000\001Z\002\220\0027\002\226\000\000\000\000\002;\002\217\001#\002\232\002\234\001\203\002\222\0016\001\183\000\000\001\184\002\147\0013\000\000\002w\000\000\002\219\000\250\000\000\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\000\000\000\000\002\234\000\000\000\000\000\000\002\031\000\000\002\188\005s\001;\000\000\000\000\000\000\000\000\001\191\0027\002\189\002<\006\248\002;\002\223\001#\006Z\000\000\000\000\000\000\002\217\001\174\000\000\002\215\000\250\002=\001@\000\000\000\000\000\000\006\249\000\000\004\016\002w\006\251\002\219\000\250\000\000\002s\002t\001\165\000\000\000\000\006\252\002\220\000\000\002\226\000\000\000\000\000\000\000\000\000\000\002\232\002\188\001\203\002\222\000\000\001\028\002<\000\000\000\000\000\000\002\189\001#\0015\000\000\000\000\002\223\006]\000\000\001+\000\000\002=\001,\006\253\002\215\000\000\000\000\002\234\000\000\001B\000\000\000\000\000\000\000\000\001\193\000\000\002\217\000\000\002s\002t\001\165\000\000\001\194\000\000\001\203\001\172\002\220\0013\002\226\002w\000\000\002\219\000\250\002\188\002\232\000\000\001\203\002\222\000\000\004\161\006\254\000\000\002\189\002s\002t\001\165\000\000\000\000\006l\0016\006\255\000\000\000\000\004\164\000\000\002\215\000\000\000\000\002\188\000\000\002\234\000\000\000\000\002\223\000\000\000\000\000\000\002\189\002\217\000\000\002s\002t\001\165\006o\000\000\001@\007\016\000\000\000\000\001;\002\215\002w\000\000\002\219\000\250\002\188\000\000\000\000\000\000\000\000\000\000\007\001\000\000\002\220\002\189\002\226\000\000\000\000\000\000\000\000\006|\002\232\007\002\001\203\002\222\007\004\001\028\002\215\007\t\000\000\000\000\000\000\001#\0015\000\000\002\223\000\000\000\000\007\011\002\217\000\000\000\000\000\000\000\000\002s\002t\001\165\002\234\000\000\000\000\000\000\000\000\002w\000\000\002\219\000\250\000\000\007\012\000\000\002\188\000\000\000\000\000\000\000\000\002\217\002\220\000\000\002\226\002\189\000\000\000\000\000\000\000\000\002\232\006\127\001\203\002\222\002w\000\000\002\219\000\250\002\215\001I\000\000\000\000\000\000\002\223\000\000\000\000\0016\000\000\002\217\000\000\002s\002t\001\165\000\000\000\000\000\000\002\234\000\000\000\000\000\000\000\000\002w\000\000\002\219\000\250\002\188\000\000\000\000\002\223\000\000\000\000\000\000\000\000\002\220\002\189\002\226\001;\000\000\000\000\004\168\006\148\002\232\000\000\001\203\002\222\000\000\000\000\002\215\001+\000\000\000\000\005\234\000\000\000\000\000\000\002\223\000\000\000\000\002\220\000\000\002\226\000\000\002\217\000\000\000\000\000\000\002\232\002\234\001\203\002\222\001+\000\000\000\000\001,\000\000\002w\0013\002\219\000\250\000\000\001B\000\000\000\000\000\000\000\000\002\220\000\000\002\226\002s\002t\001\165\000\000\002\234\002\232\000\000\001\203\002\222\000\000\0013\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\000\000\001\130\002\223\000\000\002\217\002\189\000\000\001+\000\000\000\000\007f\006\151\002\234\000\000\000\000\000\000\000\000\002w\002\215\002\219\000\250\000\000\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\000\000\000\000\002\220\000\000\002\226\0013\000\000\000\000\002\188\001@\002\232\000\000\001\203\002\222\000\000\000\000\000\000\002\189\001\028\000\000\000\000\002\223\000\000\006\155\001#\0015\000\000\000\000\002\031\000\000\002\215\006\012\000\000\000\000\000\000\000\000\002\234\000\000\0027\000\000\001\028\000\000\002;\000\000\001#\000\000\001#\0015\003Q\001\165\000\000\002\220\002\217\002\226\003Q\001\165\000\000\000\000\000\000\002\232\000\000\001\203\002\222\000\000\000\000\002w\000\000\002\219\000\250\003o\001\182\000\000\001\168\001\169\000\000\003o\001\182\000\000\001\168\001\169\000\000\0016\000\000\000\000\001\028\002\234\000\000\002<\000\000\000\000\001#\0015\000\000\000\000\002\217\000\000\001I\000\000\000\000\002\223\000\000\002=\000\000\0016\000\000\000\000\000\000\002w\000\000\002\219\000\250\001;\000\000\003t\003\132\003\133\000\000\000\000\000\000\003t\003\132\003\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\220\000\000\002\226\000\000\001;\000\000\000\000\001\134\002\232\000\000\001\203\002\222\002\223\000\000\000\000\001\164\001\165\000\000\0016\001\191\000\000\000\000\000\000\000\000\000\000\001\191\000\000\000\000\000\000\000\000\000\000\000\000\001\174\000\000\002\234\000\250\001\166\001\182\001\174\001\168\001\169\000\250\002\220\000\000\002\226\002s\002t\001\165\001;\000\000\002\232\000\000\001\203\002\222\000\000\000\000\000\000\000\000\000\000\000\000\002\188\007.\002s\002t\001\165\000\000\000\000\003\136\006\166\002\189\000\000\000\000\000\000\003\136\006\200\007\187\002\234\002\188\000\000\000\000\000\000\001\183\002\215\001\184\002\147\000\000\002\189\000\000\000\000\000\000\000\000\000\000\007\189\000\000\000\000\000\000\001\193\000\000\001+\002\215\000\000\007t\001\193\000\000\001\194\000\000\001\203\001\172\001+\000\000\001\194\001,\001\203\001\172\001\137\001\191\000\000\000\000\001B\001\164\001\165\000\000\000\000\000\000\000\000\000\000\0013\000\000\001\174\000\000\001+\000\250\000\000\007q\000\000\001\139\0013\000\000\000\000\004\016\001\166\001\182\005\176\001\168\001\169\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\002s\002t\001\165\000\000\000\000\0013\002w\000\000\002\219\000\250\002\217\000\000\000\000\000\000\000\000\002\188\000\000\000\000\002s\002t\001\165\000\000\000\000\002w\002\189\002\219\000\250\000\000\000\000\000\000\000\000\001@\001\183\002\188\001\184\001\207\000\000\002\215\000\000\001\193\002\223\000\000\002\189\000\000\000\000\000\000\000\000\001\194\001~\001\203\001\172\000\000\001\028\000\000\000\000\002\215\000\000\002\223\001#\0015\000o\000\000\001\028\000\000\000\000\000\000\001\191\000\000\001#\0015\002\220\000\000\002\226\000\000\000\000\000\000\000\000\000\000\002\232\001\174\001\203\002\222\000\250\000\000\001\028\000\000\000\000\002\220\000\000\002\226\001#\0015\000\000\000\000\000\000\002\232\000\000\001\203\002\222\000\000\000\000\002\217\001\164\001\165\002\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002w\0016\002\219\000\250\001I\002\217\000\000\002\234\000\000\001\166\001\182\0016\001\168\001\169\001+\005\230\000\000\007w\002w\001\248\002\219\000\250\001+\000\000\000\000\007}\000\000\000\000\000\000\001\193\000\000\001;\000\000\0016\002\223\000\000\000\000\001\194\000\000\001\203\001\172\001;\0013\000\000\001L\000\000\001\164\001\165\000\000\000\000\0013\000\000\002\223\000\000\001\183\000\000\001\184\001\236\000\000\000\000\000\000\000\000\000\000\001;\002\220\000\000\004\241\001\166\001\182\000\000\001\168\001\169\002\232\000\000\001\203\002\222\000\000\001\233\000\000\000\000\001+\000\000\002\220\007\134\004\215\000\000\000\000\000\000\001\191\000\000\002\232\000\000\001\203\002\222\000\000\000\000\001+\000\000\002\234\001,\000\000\001\174\001x\000\000\000\250\000\000\001B\000\000\0013\000\000\000\000\000\000\001\183\000\000\001\184\001\236\002\234\000\000\000\000\000\000\000\000\001\028\001+\001y\0013\001h\000\000\001#\0015\001\028\000\000\001\143\001i\000\000\000\000\001#\0015\000\000\000\000\001+\000\000\000\000\001,\000\000\000\000\001x\001\191\000\000\000\000\001B\0013\001+\000\000\000\000\001,\000\000\000\000\001x\000\000\001\174\000\000\001B\000\250\000\000\000\000\001\193\001y\0013\000\000\000\000\000\000\000\000\001@\001\194\001z\001\203\001\172\000\000\001y\0013\000\000\000\000\000\000\000\000\0016\000\000\001\141\001\028\000\000\001~\000\000\000\000\0016\001#\0015\000\000\000\000\001+\001@\000\000\001,\000\000\000\000\001\028\000\000\000\000\000\000\001B\000\000\001#\0015\000\000\000\000\000\000\001;\001@\001\164\001\165\000\000\000\000\000\000\000\000\001;\001\193\000\000\0013\000\000\001@\000\000\001\028\000\000\001\194\001~\001\203\001\172\001#\0015\001\166\001\182\000\000\001\168\001\169\000\000\000\000\001~\000\000\001\028\001\238\000\000\000\000\0016\000\000\001#\0015\002s\002t\001\165\000\000\001\028\001I\000\000\000\000\000\000\000\000\001#\0015\0016\000\000\000\000\002\188\001\136\000\000\000\000\001@\000\000\000\000\000\000\000\000\002\189\000\000\001;\000\000\001\183\000\000\001\184\001\236\000\000\000\000\000\000\000\000\000\000\002\215\0016\000\000\000\000\000\000\001;\000\000\000\000\001L\000\000\000\000\001I\000\000\001\028\000\000\001\164\001\165\000\000\0016\001#\0015\000\000\001\136\001I\000\000\001\191\000\000\000\000\000\000\000\000\0016\001;\001\164\001\165\001\136\000\000\001\166\001\182\001\174\001\168\001\169\000\250\000\000\000\000\000\000\000\000\000\000\000\000\001;\000\000\000\000\001L\000\000\001\166\001\182\000\000\001\168\001\169\000\000\000\000\001;\000\000\000\000\001L\002\217\000\000\000\000\001\164\001\165\001I\000\000\000\000\000\000\000\000\000\000\000\000\0016\002w\000\000\002\219\000\250\001\183\000\000\001\184\002\147\000\000\000\000\000\000\001\166\001\182\000\000\001\168\001\169\000\000\000\000\001\164\001\165\000\000\001\183\000\000\001\184\002\156\001\193\000\000\000\000\000\000\001;\000\000\000\000\001\132\001\194\002\223\001\203\001\172\000\000\001\191\001\166\001\182\000\000\001\168\001\169\000\000\002s\002t\001\165\000\000\000\000\000\000\001\174\000\000\000\000\000\250\001\191\001\183\000\000\001\184\002\156\002\188\000\000\004\012\000\000\002\220\000\000\004l\000\000\001\174\002\189\000\000\000\250\002\232\000\000\001\203\002\222\000\000\001+\000\000\000\000\007\144\000\000\002\215\000\000\001\183\000\000\001\184\003A\000\000\000\000\001\191\000\000\000\000\002s\002t\001\165\000\000\000\000\002\234\000\000\002\165\000\000\000\000\001\174\000\000\0013\000\250\000\000\002\188\000\000\000\000\000\000\000o\000\000\000\000\001\193\000\000\002\189\001\191\000\000\000\000\000\000\000\000\001\194\000\000\001\203\001\172\000\000\000\000\000\000\002\215\001\174\001\193\000\000\000\250\002\162\002s\002t\001\165\000\000\001\194\000\000\001\203\001\172\000\000\000\000\002\217\000\000\002s\002t\001\165\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002w\002\189\002\219\000\250\002\188\000\000\000\000\000\000\001\193\000\000\000\000\000\000\000\000\002\189\002\215\000\000\001\194\000\000\001\203\001\172\000\000\000\000\000\000\000\000\000\000\001\028\002\215\000\000\002s\002t\001\165\001#\0015\000\000\002\223\002\217\001\193\000\000\000\000\000\000\000\000\000\000\000\000\002\188\001\194\000\000\001\203\001\172\002w\000\000\002\219\000\250\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\220\002\215\003\230\000\000\000\000\000\000\000\000\000\000\002\232\000\000\001\203\002\222\000\000\000\000\002\217\000\000\000\000\000\000\002\223\002s\002t\001\165\000\000\000\000\0016\000\000\002\217\002w\000\000\002\219\000\250\002s\002t\001\165\002\234\000\000\000\000\000\000\000\000\002w\000\000\002\219\000\250\003\226\000\000\000\000\002\188\000\000\002\220\000\000\003\142\000\000\000\000\000\000\001;\002\189\002\232\000\000\001\203\002\222\000\000\002\223\000\000\000\000\000\000\002\217\000\000\000\000\002\215\006\185\002s\002t\001\165\002\223\000\000\000\000\000\000\000\000\002w\000\000\002\219\000\250\002\234\000\000\000\000\002\188\000\000\000\000\000\000\000\000\000\000\002\220\000\000\002\228\002\189\000\000\000\000\000\000\000\000\002\232\000\000\001\203\002\222\002\220\000\000\002\230\000\000\002\215\000\000\000\000\000\000\002\232\002\223\001\203\002\222\000\000\000\000\000\000\001+\000\000\002v\001n\000\000\000\000\000\000\002\234\000\000\000\000\001o\000\000\000\000\000\000\002\217\002w\000\000\002\219\000\250\002\234\000\000\000\000\000\000\000\000\002\220\000\000\002\235\002w\0013\002\219\000\250\000\000\002\232\000\000\001\203\002\222\002s\002t\001\165\000\000\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\002\217\003\229\000\000\002\188\000\000\002\234\000\000\002\189\002\223\000\000\000\000\000\000\002\189\002w\000\000\002\219\000\250\000\000\000\000\000\000\002\215\000\000\000\000\001@\000\000\002\215\002\220\002s\002t\001\165\000\000\000\000\000\000\000\000\002\221\000\000\001\203\002\222\002\220\000\000\002\242\000\000\002\188\000\000\000\000\000\000\002\232\002\223\001\203\002\222\000\000\002\189\000\000\000\000\001\028\000\000\000\000\000\000\000\000\000\000\001#\0015\000\000\000\000\002\215\000\000\002s\002t\001\165\000\000\000\000\000\000\002\234\000\000\000\000\000\000\000\000\002\220\000\000\002\244\000\000\002\188\000\000\000\000\002\217\002\232\000\000\001\203\002\222\002\217\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002w\000\000\002\219\000\250\000\000\002w\002\215\002\219\000\250\000\000\000\000\002s\002t\001\165\002\234\000\000\000\000\000\000\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\000\000\002\217\000\000\000\000\002\223\002\189\002s\002t\001\165\002\223\000\000\000\000\000\000\000\000\002w\000\000\002\219\000\250\002\215\000\000\001;\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\000\000\000\000\000\000\002\220\000\000\002\246\000\000\000\000\002\220\002\217\002\248\002\232\002\215\001\203\002\222\000\000\002\232\002\223\001\203\002\222\000\000\000\000\002w\000\000\002\219\000\250\002s\002t\001\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\234\000\000\000\000\000\000\002\188\002\234\000\000\000\000\000\000\000\000\002\220\000\000\002\250\002\189\002\217\000\000\000\000\000\000\002\232\002\223\001\203\002\222\000\000\000\000\000\000\000\000\002\215\002w\000\000\002\219\000\250\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\002\217\000\000\000\000\000\000\000\000\002\234\000\000\000\000\002\188\000\000\002\220\000\000\002\252\002w\000\000\002\219\000\250\002\189\002\232\000\000\001\203\002\222\002\223\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002s\002t\001\165\002\234\000\000\000\000\002\223\000\000\000\000\000\000\002\217\002\220\000\000\002\254\000\000\002\188\000\000\000\000\000\000\002\232\000\000\001\203\002\222\002w\002\189\002\219\000\250\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\000\000\002\220\002\215\003\000\000\000\000\000\000\000\000\000\002\188\002\232\002\234\001\203\002\222\000\000\002s\002t\001\165\002\189\002\217\000\000\000\000\000\000\002\223\000\000\000\000\000\000\000\000\000\000\000\000\002\188\002\215\002w\000\000\002\219\000\250\002\234\000\000\000\000\002\189\000\000\000\000\000\000\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\000\000\002\215\002\220\000\000\003\002\000\000\000\000\000\000\002\188\000\000\002\232\000\000\001\203\002\222\000\000\002\223\002\217\002\189\000\000\000\000\000\000\000\000\000\000\001+\000\000\000\000\001t\000\000\000\000\002w\002\215\002\219\000\250\001u\000\000\000\000\002\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\217\002\220\000\000\003\004\000\000\000\000\000\000\0013\000\000\002\232\000\000\001\203\002\222\002w\000\000\002\219\000\250\000\000\000\000\002\223\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002s\002t\001\165\000\000\002w\002\234\002\219\000\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\002\223\000\000\002\220\002\217\003\006\000\000\000\000\002\189\001@\000\000\002\232\000\000\001\203\002\222\000\000\000\000\002w\000\000\002\219\000\250\002\215\002\223\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\220\000\000\003\b\002s\002t\001\165\002\234\000\000\002\232\001\028\001\203\002\222\000\000\000\000\000\000\001#\0015\000\000\002\188\000\000\002\223\002\220\000\000\003\n\000\000\000\000\000\000\002\189\000\000\002\232\000\000\001\203\002\222\000\000\002\234\000\000\000\000\000\000\000\000\000\000\002\215\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\000\000\002\220\000\000\003\012\000\000\002\217\002\234\000\000\002\188\002\232\000\000\001\203\002\222\002s\002t\001\165\000\000\002\189\002w\000\000\002\219\000\250\000\000\0016\000\000\000\000\000\000\000\000\002\188\000\000\002\215\000\000\002s\002t\001\165\002\234\000\000\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\002\215\000\000\002\223\001;\000\000\002\217\002\189\000\000\000\000\000\000\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\002w\002\215\002\219\000\250\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\000\000\000\000\002\220\000\000\003\014\002\189\000\000\000\000\000\000\000\000\002\232\000\000\001\203\002\222\002\217\000\000\000\000\000\000\002\215\000\000\001\164\001\165\002\223\000\000\000\000\000\000\000\000\002w\000\000\002\219\000\250\000\000\000\000\000\000\002\217\000\000\002\234\000\000\000\000\000\000\000\000\001\166\001\167\000\000\001\168\001\169\000\000\002w\000\000\002\219\000\250\000\000\002\220\002\217\003\016\001\164\001\165\000\000\000\000\000\000\002\232\002\223\001\203\002\222\0036\000\000\002w\000\000\002\219\000\250\000\000\000\000\000\000\000\000\000\000\000\000\001\166\0039\000\000\001\168\001\169\002\223\002\217\001\164\001\165\000\000\002\234\000\000\000\000\000\000\000\000\002\220\000\000\003\018\000\000\002w\000\000\002\219\000\250\002\232\002\223\001\203\002\222\000\000\001\166\001\182\000\000\001\168\001\169\000\000\000\000\002\220\000\000\003\020\000\000\000\000\000\000\000\000\000\000\002\232\001\173\001\203\002\222\000\000\000\000\002\234\000\000\000\000\000\000\002\223\002\220\000\000\003\022\001\174\000\000\000\000\000\250\000\000\002\232\000\000\001\203\002\222\000\000\000\000\000\000\002\234\000\000\000\000\000\000\001\183\000\000\001\184\003-\000\000\000\000\001\173\000\000\000\000\000\000\002\220\000\000\003\024\000\000\000\000\002\234\001\164\001\165\002\232\001\174\001\203\002\222\000\250\000\000\000\000\0036\000\000\000\000\000o\000\000\000\000\003:\003;\000\000\001\191\000\000\000\000\001\166\0039\001+\001\168\001\169\007g\000\000\002\234\000\000\000\000\001\174\001\193\007h\000\250\000\000\000\000\000\000\000\000\000\000\001\202\003<\001\203\001\172\001\164\001\165\000\000\000\000\000\000\001\164\001\165\0013\000\000\003X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003[\000\000\000\000\001\166\0039\001\193\001\168\001\169\001\166\001\182\000\000\001\168\001\169\001\202\000\000\001\203\001\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\193\002s\002t\001\165\001@\001\173\000\000\000\000\001\194\000\000\001\203\001\172\000\000\002s\002t\001\165\002\188\000\000\001\174\000\000\001\183\000\250\001\184\002\156\000\000\002\189\000\000\000\000\002\188\000\000\003:\003=\000\000\001+\000\000\001\028\007r\002\189\002\215\000\000\000\000\001#\0015\007s\000\000\000\000\000\000\000\000\000\000\001\173\002\215\000\000\000\000\000\000\001\191\000\000\003<\002s\002t\001\165\000\000\0013\001\174\000\000\000\000\000\250\000\000\001\174\000\000\000\000\000\250\000\000\002\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\189\001\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202\000\000\001\203\001\172\002\215\000\000\000\000\000\000\0016\003?\003\\\000\000\002\217\000\000\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\002\217\002w\000\000\002\219\000\250\000\000\000\000\003]\000\000\000\000\000\000\000\000\001\193\002w\001;\002\219\000\250\001\193\000\000\000\000\001\202\000\000\001\203\001\172\000\000\001\194\001\028\001\203\001\172\000\000\000\000\000\000\001#\0015\000\000\002\223\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\002\217\000\000\000\000\002\223\000\000\000\000\000\000\000\000\002\188\000\000\000\000\000\000\000\000\002w\000\000\002\219\000\250\002\189\000\000\000\000\000\000\002\220\000\000\003\177\000\000\000\000\000\000\000\000\000\000\002\232\002\215\001\203\002\222\002\220\000\000\003\183\002s\002t\001\165\000\000\000\000\002\232\000\000\001\203\002\222\0016\000\000\002\223\000\000\000\000\000\000\002\188\000\000\001+\000\000\002\234\007x\000\000\000\000\000\000\002\189\000\000\000\000\007y\000\000\000\000\000\000\002\234\000\000\002s\002t\001\165\000\000\002\215\000\000\001;\000\000\002\220\000\000\003\189\000\000\0013\000\000\000\000\002\188\002\232\000\000\001\203\002\222\000\000\002s\002t\001\165\002\189\002\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\002\215\002w\000\000\002\219\000\250\002\234\000\000\000\000\002\189\000\000\000\000\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\001@\000\000\000\000\000\000\002\188\000\000\000\000\000\000\002\217\000\000\000\000\000\000\002\223\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002w\000\000\002\219\000\250\000\000\002\215\000\000\000\000\000\000\000\000\001\028\000\000\000\000\000\000\000\000\000\000\001#\0015\000\000\000\000\002\217\002\220\000\000\003\195\002s\002t\001\165\000\000\000\000\002\232\000\000\001\203\002\222\002w\002\223\002\219\000\250\000\000\000\000\002\188\000\000\002\217\000\000\000\000\002s\002t\001\165\000\000\002\189\000\000\000\000\000\000\000\000\000\000\002w\002\234\002\219\000\250\000\000\002\188\000\000\002\215\000\000\000\000\002\220\000\000\003\200\002\223\002\189\002\217\000\000\000\000\002\232\0016\001\203\002\222\000\000\000\000\000\000\000\000\000\000\002\215\002w\000\000\002\219\000\250\000\000\000\000\002\223\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\220\002\234\003\205\000\000\000\000\000\000\001;\000\000\002\232\000\000\001\203\002\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002\220\000\000\003\212\000\000\000\000\000\000\000\000\002\217\002\232\000\000\001\203\002\222\000\000\002\234\000\000\000\000\000\000\000\000\000\000\000\000\002w\000\000\002\219\000\250\000\000\000\000\000\000\002\217\002\220\000\000\003\217\001\164\001\165\000\000\002\234\000\000\002\232\000\000\001\203\002\222\002w\000\000\002\219\000\250\002s\002t\001\165\000\000\002s\002t\001\165\000\000\001\166\001\182\002\223\001\168\001\169\000\000\000\000\002\188\000\000\000\000\002\234\002\188\000\000\000\000\000\000\000\000\002\189\000\000\000\000\000\000\002\189\000\000\002\223\000\000\000\000\000\000\000\000\000\000\000\000\002\215\000\000\000\000\002\220\002\215\003\222\000\000\000\000\000\000\000\000\000\000\002\232\000\000\001\203\002\222\000\000\001\183\000\000\001\184\002\147\001\251\001\165\000\000\002\220\000\000\003\225\000\000\000\000\000\000\000\000\000\000\002\232\000\000\001\203\002\222\000\000\000\000\002\234\000\000\000\000\000\000\001\166\002\136\000\000\001\168\001\169\000\000\000\000\000\000\000\000\001\191\000\000\000\000\000\000\000\000\000\000\000\000\002\234\000\000\000\000\000\000\000\000\000\000\001\174\002\217\000\000\000\250\000\000\002\217\001\164\001\165\000\000\000\000\000\000\004\015\000\000\000\000\002w\003M\002\219\000\250\002w\000\000\002\219\000\250\004\023\003\132\003\133\000\000\000\000\001\166\0039\000\000\001\168\001\169\002s\002t\001\165\000\000\000\000\000\000\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\000\000\002\188\002\223\000\000\000\000\000\000\002\223\000\000\002\188\000\000\002\189\001\191\000\000\000\000\000\000\000\000\000\000\002\189\001\193\000\000\000\000\000\000\000\000\002\215\001\174\000\000\001\194\000\250\001\203\001\172\002\215\000\000\002\220\000\000\004\019\000\000\002\220\000\000\004\021\000\000\002\232\000\000\001\203\002\222\002\232\000\000\001\203\002\222\000\000\000\000\000\000\005\254\000\000\000\000\000\000\004\030\000\000\000\000\000\000\000\000\001\173\000\000\000\000\000\000\000\000\000\000\002\234\000\000\000\000\000\000\002\234\000\000\000\000\001\174\000\000\000\000\000\250\002s\002t\001\165\005\255\007\195\006\000\000\000\000\000\003P\000\000\002\217\001\193\000\000\000\000\000\000\002\188\000\000\002\217\000\000\001\194\000\000\001\203\001\172\002w\002\189\002\219\000\250\000\000\000\000\000\000\002w\000\000\002\219\000\250\003<\000\000\006\001\002\215\000\000\002s\002t\001\165\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\000\000\000\000\002\223\002\188\000\000\001\193\000\000\000\000\002\189\002\223\000\000\000\000\002\189\001\202\000\000\001\203\001\172\006\002\000\000\000\000\000\000\002\215\000\000\000\000\000\000\002\215\000\000\006\003\006\004\000\000\006\005\000\000\002\220\000\000\004-\000\000\000\000\000\000\000\000\002\220\002\232\0046\001\203\002\222\000\000\000\000\002\217\002\232\000\000\001\203\002\222\000\000\000\000\000\000\000\000\006F\000\000\000\000\000\000\002w\000\000\002\219\000\250\000\000\000\000\000\000\002\234\000\000\000\000\000\000\000\000\000\000\000\000\002\234\000\000\000\000\000\000\000\000\000\000\000\000\006\007\007\197\000\000\006\t\000\000\002\217\006\014\006\024\000\000\002\217\002s\002t\001\165\002\223\000\000\000\000\006B\000\000\002w\000\000\002\219\000\250\002w\000\000\002\219\000\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004S\006C\001\164\001\165\000\000\000\000\000\000\004\\\000\000\002\220\000\000\0048\000\000\000\000\000\000\000\000\000\000\002\232\002\223\001\203\002\222\000\000\002\223\001\166\001\182\000\000\001\168\001\169\000\000\000\000\000\000\000\000\004i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\234\000\000\000\000\000\000\000\000\002\220\000\000\004:\000\000\002\220\000\000\004H\000\000\002\232\000\000\001\203\002\222\002\232\000\000\001\203\002\222\000\000\000\000\000\000\000\000\001\183\000\000\001\184\007\249\000\000\007\251\000\000\001\164\001\165\002v\000\000\000\000\000\000\000\000\002\234\000\000\000\000\001+\002\234\000\000\001,\000\000\004`\001\137\002\219\000\250\001\r\001B\001\166\001\182\000\000\001\168\001\169\001+\001\191\000\000\001,\000\000\000\000\001x\000\000\000\000\000\000\001B\001\139\0013\000\000\001\174\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001}\0013\004V\000\000\000\000\000\000\001\164\001\165\000\000\000\000\000\000\000\000\000\000\001\183\000\000\001\184\007\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\220\001\166\001\182\000\000\001\168\001\169\000\000\001@\002\221\000\000\001\203\002\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\191\000\000\001@\001~\001\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\194\001\174\001\203\001\172\000\250\001\028\000\000\001~\000\000\000\000\000\000\001#\0015\001\183\000\000\001\184\001\240\000\000\000\000\000\000\000\000\001\028\000\000\000\000\000\000\000\000\000\000\001#\0015\000\000\000\000\001\164\001\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\191\000\000\000\000\000\000\000\000\001\166\001\182\000\000\001\168\001\169\001\164\001\165\000\000\001\174\001I\000\000\000\250\000\000\001\193\000\000\000\000\0016\000\000\000\000\000\000\001\136\001\194\000\000\001\203\001\172\001I\001\166\001\182\000\000\001\168\001\169\000\000\0016\001\164\001\165\000\000\001\136\000\000\000\000\000\000\000\000\000\000\001\164\001\165\000\000\001\183\001;\001\184\001\228\001L\000\000\000\000\000\000\000\000\001\166\001\182\000\000\001\168\001\169\000\000\000\000\000\000\001;\001\166\001\182\001L\001\168\001\169\000\000\000\000\000\000\001\183\001\193\001\184\001\225\000\000\006\248\000\000\000\000\001\191\001\194\000\000\001\203\001\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\024\001\174\000\000\b\025\000\250\000\000\000\000\006\251\001\183\000\000\001\184\001\186\000\000\000\000\001\191\000\000\006\252\001\183\000\000\001\184\001\189\000\000\000\000\000\000\001\164\001\165\000\000\001\174\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\191\000\000\000\000\001\166\001\182\006\253\001\168\001\169\000\000\001\191\000\000\000\000\000\000\001\174\000\000\000\000\000\250\000\000\000\000\000\000\000\000\000\000\001\174\001\193\000\000\000\250\000\000\000\000\000\000\000\000\000\000\001\194\000\000\001\203\001\172\000\000\000\000\000\000\000\000\000\000\001\164\001\165\006\254\000\000\000\000\001\164\001\165\000\000\001\183\001\193\001\184\001\192\006\255\000\000\000\000\000\000\000\000\001\194\000\000\001\203\001\172\001\166\001\182\000\000\001\168\001\169\001\166\001\182\000\000\001\168\001\169\000\000\000\000\000\000\b\030\000\000\000\000\001\193\001\164\001\165\000\000\000\000\001\191\000\000\000\000\001\194\001\193\001\203\001\172\000\000\000\000\000\000\000\000\007\001\001\194\001\174\001\203\001\172\000\250\001\166\001\182\000\000\001\168\001\169\007\002\000\000\001\183\007\004\001\184\001\224\007\t\001\183\000\000\001\184\001\212\000\000\000\000\000\000\000\000\000\000\007\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\012\001\191\001\164\001\165\000\000\001\183\001\191\001\184\001\220\000\000\000\000\000\000\000\000\000\000\001\174\000\000\000\000\000\250\000\000\001\174\001\193\000\000\000\250\001\166\001\182\000\000\001\168\001\169\001\194\000\000\001\203\001\172\001\164\001\165\000\000\000\000\000\000\000\000\000\000\001\191\000\000\001\164\001\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003k\000\000\001\174\001\166\001\182\000\250\001\168\001\169\000\000\003n\000\000\000\000\001\166\0039\000\000\001\168\001\169\000\000\001\183\000\000\001\184\002\178\000\000\000\000\000\000\000\000\000\000\000\000\001\193\000\000\000\000\000\000\000\000\001\193\001\164\001\165\001\194\000\000\001\203\001\172\000\000\001\194\000\000\001\203\001\172\000\000\000\000\000\000\001\183\000\000\001\184\003$\001\191\000\000\000\000\001\166\001\182\000\000\001\168\001\169\000\000\000\000\000\000\000\000\000\000\001\174\001\193\000\000\000\250\000\000\000\000\000\000\000\000\000\000\001\194\000\000\001\203\001\172\000\000\000\000\000\000\000\000\001\191\000\000\000\000\000\000\000\000\001\164\001\165\000\000\000\000\001\173\001\164\001\165\000\000\001\174\000\000\000\000\000\250\000\000\001\183\000\000\001\184\003y\001\174\000\000\000\000\000\250\001\166\001\182\000\000\001\168\001\169\001\166\001\182\000\000\001\168\001\169\000\000\000\000\000\000\000\000\002s\002t\001\165\000\000\000\000\001\164\001\165\001\193\000\000\000\000\000\000\000\000\001\191\000\000\000\000\001\194\000\000\001\203\001\172\000\000\003\\\000\000\000\000\000\000\004\223\001\174\001\166\001\182\000\250\001\168\001\169\001\183\001+\001\184\003|\001,\001\183\001\193\001\184\003\127\000\000\000\000\001B\000\000\000\000\001\194\001\193\001\203\001\172\000\000\000\000\000\000\000\000\000\000\001\202\000\000\001\203\001\172\000\000\000\000\0013\000\000\001C\001\164\001\165\001\191\000\000\002s\002t\001\165\001\191\001\183\007\138\001\184\003\135\000\000\000\000\000\000\001\174\000\000\000\000\000\250\000\000\001\174\001\166\001\182\000\250\001\168\001\169\001\193\000\000\004S\000\000\000\000\000\000\000\000\000\000\001\194\004\\\001\203\001\172\002v\000\000\001\164\001\165\001\191\000\000\000\000\001@\000\000\000\000\000\000\000\000\000\000\002w\000\000\002\219\000\250\001\174\000\000\000\000\000\250\000\000\004]\001\166\001\182\000\000\001\168\001\169\001\183\000\000\001\184\0044\000\000\000\000\000\000\000\000\000\000\000\000\001\028\000\000\000\000\001\193\000\000\000\000\001#\0015\001\193\000\000\000\000\001\194\000\000\001\203\001\172\000\000\001\194\000\000\001\203\001\172\000\000\000\000\000\000\000\000\001\191\000\000\000\000\000\000\000\000\002v\001\183\001+\001\184\005!\001,\000\000\000\000\001\174\000\000\002\220\000\250\001B\004`\001\193\002\219\000\250\001\r\002\221\000\000\001\203\002\222\001\194\000\000\001\203\001\172\001+\001I\000\000\001,\0013\000\000\000\000\000\000\0016\001\191\001B\000\000\001[\000\000\000\000\000\000\005-\000\000\000\000\000\000\000\000\000\000\001\174\000\000\000\000\000\250\000\000\004V\0013\000\000\001C\007\182\000\000\000\000\000\000\000\000\000\000\000\000\001;\000\000\007\128\001L\000\000\000\000\000\000\001+\001\193\000\000\001,\000\000\000\000\002\220\001@\000\000\001\194\001B\001\203\001\172\000\000\002\221\000\000\001\203\002\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0013\000\000\001C\001@\000\000\001\164\001\165\000\000\000\000\000\000\001\028\000\000\007`\001\193\000\000\001+\001#\0015\001,\000\000\000\000\001\194\000\000\001\203\001\172\001B\001\166\0039\000\000\001\168\001\169\000\000\001\164\001\165\001\028\000\000\000\000\001\164\001\165\000\000\001#\0015\000\000\0013\000\000\001C\000\000\000\000\001@\000\000\004\214\000\000\000\000\001\166\0039\001P\001\168\001\169\001\166\0039\001+\001\168\001\169\001,\000\000\000\000\001I\000\000\000\000\000\000\001B\000\000\000\000\0016\000\000\000\000\000\000\0056\000\000\001\028\000\000\000\000\000\000\000\000\001+\001#\0015\001,\0013\000\000\001I\001@\000\000\000\000\001B\000\000\000\000\0016\000\000\000\000\005-\001[\000\000\001;\000\000\001\173\001L\000\000\000\000\000\000\000\000\000\000\0013\000\000\001C\0050\000\000\000\000\001\174\000\000\000\000\000\250\001\028\000\000\001a\000\000\000\000\001;\001#\0015\001L\000\000\001\173\000\000\000\000\001I\001@\001\173\000\000\000\000\001\164\001\165\0016\000\000\000\000\001\174\001[\000\000\000\250\000\000\001\174\000\000\000\000\000\250\000\000\000\000\004\000\000\000\000\000\000\000\001@\001\166\0039\000\000\001\168\001\169\000\000\001\028\000\000\000\000\000\000\000\000\001;\001#\0015\001L\004\002\000\000\001I\001\164\001\165\000\000\001\193\003\\\000\000\0016\000\000\000\000\004\000\001[\001\202\001\028\001\203\001\172\000\000\000\000\000\000\001#\0015\000\000\001\166\0039\000\000\001\168\001\169\000\000\000\000\000\000\004\001\001\193\000\000\000\000\000\000\000\000\001\193\001;\000\000\001\202\001L\001\203\001\172\000\000\001\202\001I\001\203\001\172\000\000\000\000\000\000\000\000\0016\000\000\000\000\001+\0056\000\000\001,\000\000\000\000\000\000\001\173\000\000\000\000\001B\001\164\001\165\000\000\001I\000\000\000\000\000\000\000\000\000\000\001\174\0016\000\000\000\250\000\000\001[\000\000\001;\0013\006\128\001L\000\000\001\166\0039\000\000\001\168\001\169\000\000\000\000\000\000\005-\000\000\000\000\001\164\001\165\000\000\001\173\000\000\000\000\000\000\000\000\001;\000\000\001+\001L\005\165\001,\000\000\004\000\001\174\000\000\006\152\000\250\001B\001\166\0039\000\000\001\168\001\169\000\000\001+\000\000\000\000\001,\000\000\000\000\001@\000\000\004\005\000\000\001B\0013\000\000\000\000\001\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202\005-\001\203\001\172\000\000\006\235\0013\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\028\006}\000\000\005-\001\173\000\000\001#\0015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\193\001\174\006\139\000\000\000\250\000\000\001@\000\000\001\202\000\000\001\203\001\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\173\000\000\000\000\001@\000\000\006\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\174\000\000\000\000\000\250\001\028\000\000\003\\\001I\000\000\000\000\001#\0015\000\000\001+\0016\000\000\001,\000\000\0056\000\000\000\000\001\028\000\000\001B\001\164\001\165\000\000\001#\0015\000\000\001\164\001\165\001\193\000\000\000\000\000\000\000\000\000\000\003\\\000\000\001\202\0013\001\203\001\172\001;\001\166\0039\001L\001\168\001\169\000\000\001\166\0039\005-\001\168\001\169\000\000\001\164\001\165\000\000\001I\000\000\000\000\000\000\001\193\000\000\000\000\0016\006\149\001\164\001\165\0056\001\202\000\000\001\203\001\172\000\000\001I\001\166\0039\000\000\001\168\001\169\000\000\0016\000\000\000\000\000\000\0056\001@\001\166\0039\000\000\001\168\001\169\000\000\000\000\001;\000\000\000\000\001L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001;\000\000\000\000\001L\000\000\001+\001\028\000\000\001,\000\000\001\173\000\000\001#\0015\000\000\001B\001\173\000\000\000\000\000\000\000\000\000\000\000\000\001\174\000\000\000\000\000\250\000\000\000\000\001\174\000\000\000\000\000\250\0013\000\000\001C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\173\000\000\007k\000\000\000\000\001+\000\000\000\000\001,\000\000\000\000\000\000\001\173\001\174\000\000\001B\000\250\006\248\006\179\001I\000\000\000\000\000\000\000\000\006\179\001\174\0016\000\000\000\250\000\000\0056\000\000\b\024\0013\000\000\b\025\000\000\000\000\001@\006\251\000\000\000\000\000\000\000\000\001\193\002\001\000\000\000\000\006\252\000\000\001\193\006\235\001\202\000\000\001\203\001\172\001;\000\000\001\202\001L\001\203\001\172\000\000\006\235\000\000\000\000\000\000\000\000\006\192\001\028\001\164\001\165\000\000\000\000\006\191\001#\0015\001\193\000\000\006\253\000\000\001@\000\000\000\000\000\000\001\202\000\000\001\203\001\172\001\193\000\000\001\166\0039\001+\001\168\001\169\001,\001\202\000\000\001\203\001\172\000\000\006\236\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\028\000\000\006\244\000\000\006\254\001+\001#\0015\001,\0013\000\000\000\000\000\000\001I\006\255\001B\000\000\000\000\000\000\000\000\0016\002\158\000\000\000\000\001[\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0013\000\000\000\000\b#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003/\000\000\000\000\000\000\001+\001;\001+\001,\001L\001,\007\001\001I\001@\001\173\001B\000\000\001B\000\000\0016\000\000\000\000\007\002\002\004\000\000\007\004\000\000\001\174\007\t\000\000\000\250\000\000\000\000\0013\000\000\0013\000\000\001@\007\011\000\000\000\000\000\000\000\000\000\000\001\028\003C\000\000\003H\000\000\001;\001#\0015\001L\000\000\000\000\000\000\000\000\007\012\000\000\000\000\001+\000\000\000\000\001,\000\000\004\004\000\000\000\000\001\028\001+\001B\000\000\001,\000\000\001#\0015\000\000\001+\000\000\001B\001,\001@\001+\001@\000\000\001,\000\000\001B\0013\000\000\000\000\001\193\001B\000\000\005\176\000\000\000\000\0013\000\000\001\202\001I\001\203\001\172\000\000\000\000\0013\000\000\0016\000\000\003f\0013\002\161\001\028\000\000\001\028\000\000\006\174\000\000\001#\0015\001#\0015\000\000\000\000\001I\000\000\006\248\000\000\000\000\000\000\000\000\0016\000\000\000\000\000\000\001\215\001@\001;\000\000\000\000\001L\000\000\000\000\000\000\006\249\001@\000\000\000\000\006\251\000\000\000\000\000\000\000\000\001@\000\000\000\000\000\000\006\252\001@\000\000\000\000\001;\000\000\000\000\001L\000\000\000\000\001\028\001I\000\000\001I\000\000\000\000\001#\0015\0016\001\028\0016\000\000\001\215\000\000\002\198\001#\0015\001\028\000\000\000\000\000\000\006\253\001\028\001#\0015\000\000\000\000\001+\001#\0015\001,\000\000\001+\000\000\000\000\001,\000\000\001B\001;\000\000\001;\001L\001B\001L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001+\000\000\000\000\001,\0013\001I\000\000\006\254\000\000\0013\001B\000\000\0016\000\000\001I\000\000\005\181\006\255\000\000\000\000\001+\0016\001I\001,\000\000\002\198\000\000\001I\0013\0016\001B\000\000\000\000\005\194\0016\000\000\006\220\000\000\005\181\000\000\000\000\000\000\001;\007\025\000\000\001L\000\000\007\221\0013\000\000\000\000\001;\001@\000\000\001L\000\000\000\000\001@\007\001\001;\004\161\000\000\001L\000\000\001;\000\000\000\000\001L\000\000\007\002\000\000\000\000\007\004\000\000\007T\007\t\001@\000\000\000\000\000\000\000\000\001+\000\000\001\028\001,\007\011\000\000\000\000\001\028\001#\0015\001B\000\000\000\000\001#\0015\001@\000\000\000\000\000\000\000\000\000\000\001+\000\000\007\012\001,\000\000\001\028\000\000\0013\000\000\000\000\001B\001#\0015\001+\000\000\000\000\001,\000\000\000\000\000\000\000\000\000\000\000\000\001B\000\000\001\028\000\000\000\000\0013\000\000\000\000\001#\0015\000\000\000\000\001\164\001\165\001I\000\000\000\000\000\000\0013\001I\000\000\0016\000\000\000\000\000\000\007\222\0016\000\000\000\000\000\000\001\152\000\000\001@\001\166\001\201\000\000\001\168\001\169\001I\000\000\000\000\000\000\000\000\000\000\000\000\0016\000\000\000\000\000\000\001J\000\000\001;\000\000\001@\001L\000\000\001;\000\000\001I\001L\000\000\001+\000\000\001\028\001,\0016\001@\000\000\000\000\001#\0015\001B\000\000\000\000\000\000\001;\000\000\000\000\001L\000\000\000\000\000\000\000\000\000\000\001\028\000\000\000\000\000\000\000\000\0013\001#\0015\000\000\000\000\000\000\001;\001+\001\028\004\168\001,\000\000\000\000\000\000\001#\0015\001+\001B\000\000\001,\000\000\000\000\000\000\001\173\000\000\000\000\001B\000\000\000\000\000\000\001I\000\000\000\000\000\000\000\000\0013\001\174\0016\000\000\000\250\000\000\001T\000\000\000\000\0013\000\000\000\000\000\000\001@\000\000\001+\001I\000\000\001,\000\000\000\000\000\000\000\000\0016\000\000\001B\000\000\001^\000\000\001I\000\000\000\000\001;\000\000\000\000\001L\0016\000\000\000\000\000\000\001c\000\000\000\000\0013\001\028\000\000\000\000\000\000\001@\001+\001#\0015\001,\001;\000\000\000\000\001L\001@\000\000\001B\000\000\000\000\000\000\000\000\000\000\001\193\001;\000\000\000\000\001L\000\000\000\000\000\000\001\202\000\000\001\203\001\172\0013\000\000\001\028\000\000\000\000\000\000\000\000\000\000\001#\0015\000\000\001\028\000\000\000\000\001@\000\000\001+\001#\0015\001,\000\000\000\000\000\000\001I\000\000\000\000\001B\000\000\000\000\000\000\0016\000\000\000\000\000\000\002\003\000\000\000\000\000\000\000\000\000\000\001+\000\000\000\000\001,\0013\001\028\000\000\000\000\001@\000\000\001B\001#\0015\000\000\000\000\000\000\000\000\000\000\001I\000\000\001;\000\000\000\000\001L\000\000\0016\000\000\001I\0013\002-\000\000\000\000\000\000\000\000\0016\000\000\000\000\000\000\002/\001\028\000\000\001\164\001\165\000\000\000\000\001#\0015\000\000\000\000\000\000\000\000\000\000\001@\000\000\000\000\001;\000\000\000\000\001L\000\000\000\000\001I\001\166\0033\001;\001\168\001\169\001L\0016\000\000\000\000\001+\002\138\000\000\001,\000\000\001@\000\000\000\000\000\000\000\000\001B\000\000\001\028\001+\000\000\000\000\001,\000\000\001#\0015\000\000\000\000\000\000\001B\001I\000\000\000\000\001;\0013\000\000\001L\0016\000\000\000\000\000\000\002\160\001\028\000\000\000\000\000\000\000\000\0013\001#\0015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001+\000\000\000\000\001,\000\000\000\000\000\000\000\000\000\000\001;\001B\000\000\001L\000\000\000\000\000\000\001I\000\000\001\173\000\000\000\000\000\000\000\000\0016\001@\000\000\000\000\002\195\0013\000\000\000\000\001\174\001+\000\000\000\250\001,\000\000\001@\000\000\000\000\001I\000\000\001B\000\000\000\000\000\000\000\000\0016\000\000\000\000\000\000\002\200\000\000\001;\000\000\001\028\001L\000\000\000\000\000\000\0013\001#\0015\000\000\000\000\000\000\000\000\000\000\001\028\000\000\000\000\000\000\000\000\000\000\001#\0015\001@\001;\000\000\000\000\001L\000\000\000\000\000\000\001+\000\000\000\000\001,\000\000\000\000\000\000\000\000\000\000\000\000\001B\001\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202\000\000\001\203\001\172\001\028\001@\000\000\000\000\001I\0013\001#\0015\000\000\001+\000\000\0016\001,\000\000\000\000\003+\000\000\001I\000\000\001B\000\000\000\000\000\000\000\000\0016\000\000\000\000\000\000\0031\000\000\001+\000\000\001\028\001,\000\000\000\000\000\000\0013\001#\0015\001B\001;\000\000\000\000\001L\001+\000\000\000\000\001,\000\000\000\000\000\000\000\000\001@\001;\001B\001I\001L\0013\000\000\000\000\000\000\000\000\0016\000\000\000\000\000\000\003E\000\000\000\000\000\000\000\000\000\000\0013\000\000\000\000\000\000\001+\000\000\000\000\001,\000\000\000\000\000\000\001\028\001@\000\000\001B\001I\000\000\001#\0015\000\000\001;\000\000\0016\001L\000\000\000\000\003J\000\000\000\000\000\000\000\000\000\000\0013\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\028\000\000\000\000\000\000\000\000\001@\001#\0015\000\000\001;\000\000\000\000\001L\001+\000\000\000\000\001,\000\000\000\000\000\000\000\000\001\028\000\000\001B\001I\000\000\000\000\001#\0015\001+\000\000\0016\001,\000\000\000\000\003c\001\028\001@\000\000\001B\000\000\0013\001#\0015\000\000\001+\000\000\000\000\001,\000\000\000\000\000\000\000\000\000\000\000\000\001B\001I\0013\000\000\000\000\000\000\001;\000\000\0016\001L\000\000\000\000\003h\001\028\000\000\000\000\000\000\000\000\0013\001#\0015\000\000\001I\000\000\000\000\000\000\000\000\000\000\000\000\0016\000\000\000\000\001+\003q\001@\001,\000\000\001I\001;\000\000\000\000\001L\001B\000\000\0016\000\000\000\000\000\000\005/\000\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001;\0013\000\000\001L\000\000\000\000\001\028\001@\000\000\000\000\001I\000\000\001#\0015\000\000\001;\000\000\0016\001L\000\000\000\000\005\142\001\028\000\000\000\000\000\000\000\000\000\000\001#\0015\000\000\001+\000\000\000\000\001,\000\000\000\000\000\000\001\028\000\000\000\000\001B\000\000\001+\001#\0015\001,\001;\001+\001@\001L\001,\000\000\001B\000\000\000\000\000\000\000\000\001B\0013\000\000\000\000\001I\000\000\000\000\001+\000\000\000\000\001,\0016\000\000\0013\000\000\005\154\000\000\001B\0013\000\000\001I\000\000\001\028\000\000\000\000\000\000\000\000\0016\001#\0015\000\000\005\180\000\000\000\000\000\000\0013\001I\000\000\000\000\000\000\000\000\001;\000\000\0016\001L\000\000\000\000\005\196\000\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001;\000\000\000\000\001L\001@\000\000\000\000\000\000\001+\001@\000\000\001,\000\000\000\000\000\000\000\000\001;\000\000\001B\001L\000\000\001I\000\000\001\028\000\000\000\000\001@\000\000\0016\001#\0015\000\000\006h\000\000\001+\001\028\0013\001,\000\000\000\000\001\028\001#\0015\000\000\001B\000\000\001#\0015\000\000\001+\000\000\000\000\001,\000\000\000\000\000\000\000\000\001\028\001;\001B\000\000\001L\0013\001#\0015\000\000\001+\000\000\000\000\001,\000\000\000\000\000\000\002s\002t\001\165\001B\0013\001+\001I\000\000\001,\000\000\000\000\001@\000\000\0016\000\000\001B\000\000\006z\001I\000\000\000\000\0013\000\000\001I\004d\0016\002s\002t\001\165\006\146\0016\000\000\000\000\0013\007%\000\000\000\000\001@\000\000\000\000\001I\000\000\001\028\001;\000\000\000\000\001L\0016\001#\0015\002u\007b\001@\000\000\000\000\001;\000\000\000\000\001L\000\000\001;\000\000\000\000\001L\000\000\000\000\000\000\000\000\001\028\001@\000\000\000\000\000\000\000\000\001#\0015\000\000\001;\000\000\000\000\001L\001@\000\000\001\028\002s\002t\001\165\000\000\000\000\001#\0015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001I\000\000\001\028\002v\002s\002t\001\165\0016\001#\0015\002\183\007m\000\000\000\000\001\028\000\000\002w\000\000\002\219\000\250\001#\0015\002s\002t\001\165\000\000\001I\000\000\002\185\002v\000\000\000\000\000\000\0016\000\000\000\000\000\000\001;\000\000\000\000\001L\001I\002w\000\000\002\219\000\250\002\207\000\000\0016\002s\002t\001\165\007\130\000\000\000\000\000\000\000\000\000\000\001I\000\000\000\000\000\000\000\000\001;\001+\0016\002(\007~\000\000\007\140\001I\000\000\000\000\002\218\007\127\000\000\000\000\0016\001;\000\000\002\220\001L\000\000\000\000\000\000\000\000\000\000\002v\002\221\000\000\001\203\002\222\0013\000\000\000\000\001;\000\000\000\000\001L\000\000\002w\000\000\002\219\000\250\000\000\002v\002\220\001;\000\000\001+\002*\000\000\001,\000\000\002\221\000\000\001\203\002\222\002w\001B\002\219\000\250\000\000\002v\000\000\002s\002t\001\165\000\000\002s\002t\001\165\000\000\000\000\000\000\000\000\002w\0013\002\219\000\250\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\233\002v\000\000\001+\003\170\000\000\007\135\000\000\000\000\000\000\000\000\000\000\000\000\007\136\002w\002\220\002\219\000\250\000\000\000\000\000\000\000\000\001\028\002\221\001+\001\203\002\222\007\145\001#\0015\000\000\0013\000\000\002\220\007\146\000\000\001@\000\000\000\000\000\000\000\000\002\221\000\000\001\203\002\222\000\000\000\000\000\000\000\000\000\000\000\000\002\220\0013\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\001\203\002\222\000\000\000\000\000\000\000\000\001\028\000\000\000\000\000\000\000\000\000\000\001#\0015\000\000\000\000\002v\002\220\001@\000\000\002v\000\000\000\000\000\000\0016\002\221\000\000\001\203\002\222\002w\000\000\002\219\000\250\002w\000\000\002\219\000\250\000\000\000\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\028\000\000\000\000\000\000\000\000\001;\001#\0015\000\000\000\000\000\000\000\000\000\000\001I\000\000\000\000\000\000\000\000\000\000\000\000\0016\001\028\000\000\000\000\000\000\000\000\000\000\001#\0015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\220\000\000\000\000\000\000\002\220\000\000\001;\000\000\002\221\004\163\001\203\002\222\002\221\000\000\001\203\002\222\000\000\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001;")) + ((16, "\000)\001\153\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\000\000\000\000\001A\000<\000\017\001W\001=\001\182\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\003\000\000\000\000\000\000\000\000\000\000\000\237\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\212\000\000\000\000\000\000\000W\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\024\000O\001\005\000\133\000\000\000_\029&\000;\001\022\001J\000\000\000\000\000\000\003\204\000\000\000\000\000|\000\000\000\000\000\000\000\000\001~\000\000\000\210\000\000\004\154\001Q\000\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\146\000\000\000\000\002*\004>\001\176\001 \0020\001t\000\000\000\000\001\006\000\000\t\140@D\000\000\000\018@\210\000\000\002\160A(\001\028\002\142@D\000\192\001\146\000\000\000\000\001F\004h\003\228\004\132\001\228\003\024\0020\002\152\003T\002\202\001\170\001\156\004l\nD\000\000\024d\001\182\004~\001\188:n\000\000\000\000\000\000\000\000\000\000\000\000\000\000%^\000\000\002\026\004\188\003\158\000\000\000\000\000\000\000\000\000g\000\000\000\000\004\198\000-\005 \006\140\b6\000\000\000\000\000\000\003\128\003\154\005x\000\140\004\154\005\160%T\003\206\005\206\000i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\005\252\n\164\t\218\024d\011\132\011\168\000\000&\004\012\n&*&\232\000\000\000\191\000\000\000\000\000\000\000\000\005\170J\024\000\000\005~\007ZAD\006v\000\000&R\006\156\000\000&f:\204\000\n\000\000\000\000\000\243\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000'\164\006 \000\000\000\000\001\204\007\230\000\000\000\000\0112\t*\000\000\000\000\000\000\007\138\000\000\000\000\000\000\000\000\000\000\003\150\004\194\000\000\000\000\000\000\003\150\t\020\003\150\000\000\000\000\011ZA\192\000\000\000\000\005\208\005\212\000\000\000\000K&\000\000\005\236\000\000\000\000\000\000\006b\000\000\000\000\006j\000\000\012\136\000\000\015^\000\000\000\000\003\150K8\005\236\000\000\012\222\018\216\000\000\000\000\000\000\000\000\020\174\000\000\000\000\005\236\000\000K\138\005\236\022\226B\006\000\000K\166\005\236\000\000\016.\023V\000\000\000\000\000\000\000\000\027\154 \018\000\000\000\000\000\000\000\000\028H)\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\234\000\000\006\018\007\208\000\000'\174\006\026SD\000\000\000\000\000\000\000\000\005\236\000\000\000\000\000\000'\218\000\000\000\000\000\000\000\000\000\000\000\000\000\143\007\196\000\000\000\000\000\000\000\000L@\005\236\000\000 V.\186\000\000\000\000\000\000\000\000!D;T\000\000\000\000\000\000\000\000\"|B&\000\000\000\000\000\000\005\236\b\016;L\007\138\006V\017\212\000\000\006\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\242\000\000\000\000\000\000\000\000\t\018;\204\000\000\000\000\007\226\006\242;\232\000\000\000\000\000\000\024\007\176\015\140\r\246\nnM\216\000\000RV\000\000\000\000\015\148)\252\003B\000\000\000\000\015\\M^\000\000\005\236H\180\000\000\005\236M\148\005\236\000\000\000\000\000\000\000\000\000\000S\240\000\000\000\000\000\000\003\024\016r\000\000\000\000\000\000\000\000*\020T\022\000\000\000\000\000\000\000\000\000\000\r\200\016\152\000\000\002\136*\"\002\136*J\002\136\000\000T8\000\000+\026\002\136\0178\007>\017~\000\000\000\000+\198\002\136+\232\002\136,\020\002\136,\030\002\136,6\002\136,@\002\136-\206\002\136-\216\002\136-\230\002\136-\240\002\136.>\002\136.H\002\136.\244\002\136/\212\002\136/\222\002\136/\236\002\1360\022\002\1360>\002\1360\228\002\1361<\002\136\n\134\017\144\007\140>@)\214\006\024\000\000\007\186\000\0001\188)\214\bH\000\000\bD\000\0002\0189\\2\028>^\007\176\000\000\015&\014t\000\000\020\190\000\000D\242\000\000\000\000\000\000N\020\005\236\000\000\007\176G\242\000\000NJ\005\236\000\000\000\000\0188\000\000\000\000\018Z\000\000\000\000\000\0002R\000\000\000\000\000\000\000\0003(\000\000\003\220\000\000\000\00032\000\000\000\000\007\176HX\000\000Nv\005\236\000\000\000\000\000\0003\128\018\156\000\000\000\000\0198\000\000\000\000\000\0003\222\000\000H\180\000\000N\128\005\236\019b\000\000\000\000\019\154\000\000\000\000\003\180H\228\b\212\000\000N\218\005\236\019\254\000\000\000\000O\016\005\236\020@\000\000\000\000\020f\000\000\000\000\000\000Ov\005\236\021F\000\000\0142\021^\000\000>\148\000\000\007\176?*\000\000\007\176?b\000\000\007\176\007\234\000\000\000\000\000\000\000\000\000\000?\166\007\176\000\000\007\212\bJ\000\000\000\000\000\000\002\136\021\148\000\000\000\000\000\000\022D\000\000\000\000\000\000\000\000\000\000\022p\000\000\000\000\000\000\002\136\022\166\000\000\023\016\000\000\000\000\000\000\023\132\000\000\000\000\000\000\000\000TT\000\000\000\000\023\140\000\000\000\000\000\0003\232\002\136\023\238\000\000\000\000\000\0004:\002\136\024\138\000\000\000\000\000\0004B\002\136\003p\024\174\000\000\000\0005F\002\136\025J\000\000\000\0005\162\002\136\025\152\000\000\000\0005\252\002\136\000\000\000\000\024\216\000\000\000\0006\006\002\136\026R\000\000\000\0006\020\002\136\026t\000\000\000\0006>\002\136\000\0006b\002\136\000\000\020x\000\000\000\000\002\136\000\000\000\000\026\170\000\000\000\000\0270\000\000\000\000\014l\000\000\000\000\027Z\000\000\027\208\000\000\000\000\000\000)\214\t\022\000\000\b\198\000\000BV\021\b\003\150\0286\000\000B\148\000\000\000\000\000\000B\178\000\000\000\000\000\000B\236\000\000C|\000\000\000\000\028>\000\000\028\158\000\000\000\000\000\000\000\0007t\000\000\000\000\000\0007\030\002\1367\238\002\136\000\000\0142\029>\000\000\000\000\029d\000\0007\246\000\000\000\000<*\000\000\000\000\000\000\029\154\000\000\000\000\000\000\000\000\002\136\000\017\014\1308<\002\214\000\000\000\000\000\000\001\b\n\154@\012\007\1768T\002\1369\n\007v9P\002\136\000\000\000\000\000\000\000\000\030`\000\000\000\000\000\000\000\000\003z\000\212\014\1409\182\004v\000\000\000\000\000\000\000\000\000\000\015\230\000\000\000\000\000\000?\204\000\000\000E\000\000\005\232\000\000\015x\000\000\005B\000\000\000\000\000\000\000\000\000\000\000\000\007\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\136\000\000\015\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\188\000\000\000\000\n\190\b|\001\238\030\252\000\000\014\196\n\216\015^\000\232\t\030\001\238\021\252\001$\n,\001\238\000\000\031&\000\000\007\188\000\000\014\210\n\218\bF\000\000\000\000\000\000\000\000\000\000\014\248\002>\0222\003\150\0001\000\000\000\000\000\000\000\000\000\000\027J\000\000T\144\000\000\n\222\000\000\n\234\000\000\000\000\000\000\000\000\000\178\000\000\000\000\026\n\003\150\000\000\027\018\028\004\003\150\028\216\003\150\003\150\000\000\003\150\005|\"\024\000\000F\138\000\000\000\000\000\000\nv\000\000\029\216\003\150\003\150\000\000\030\182\003\150\003\150\n\244\000\000\031>\000\000\000\000\011\002\015\236\000\000\031\152\n2\000\000\000\000\000\000\000\000\015\182\000\000\000\000\000\000\000\000\002\136\000\000\000\000\000\000\000\000\000\000\004.\000\000\000\000\014\242\011\020\np\001\238\000\000\023^\000\000\001$\000\000\016Z\000\000\000\000\000\000\000\000\000\000\016\194\000\000\002\136\000\000\000\000\025\162\000\000\001$\000\000\026\020\000\000\001$\000\000\026Z\001$\000\000\001\238\000\000\011$\011\212\004\214\000\000\014\250\015\004\011*\0154\015\244\029\190\001$\nP\000\000\011D\015\196\015\208\t\150\n\\\015\150\011F\015\212\t\168\n\200\015\168\000\000\000\000\nP\n\212\000\000\b\022\003L@B\007\176\031t\000\000\n2\003d\000\000\000\000\015X\011R\012\004\000\000\018\014\000\000O\136\005\236\000\000\016\006\016\n\000\000\011\150\000\000\005\236\015d\011h\011\028\015~\001\"\000\000\000\000\000\000\000\000\011\148\011\186\000\000\011\178\011\192\000\000\007\226\"X\015t\015x\011\196\n\142\012:\000\000\011\198\011b\012b\000\000\015~\015\134\011\248\015\178\015\244\031\154\001$\000\000\011\254\016*\000\000\011\132\000\000\012\154\000\000\0162\000\000 ^\003\238\016\002\012\020\016>\000\000 \158\007\130\016\006\000\000\000\000\007\230\003\210\012\170\000\000\"\230\001$\012\174\000\000\t\000\000\000\015\184\012B\011b\015~\015\192\015\200\012X\017F\000\000\015\214\n\002\000\000\000\000\000\000\005r\000\000\000\000\000\000\000\157\012p\015\168O\238\005\236\000\000\000\138\012v\016z\000\000\000\000\000\000\000\000\000\000\000\000O\242\007\196\000\000\012\134\016\222\000\000\000\000\000\000\000\000\000\000\000\000C$\012\178\000\000\012\136\001z\000\000\012\180\012\192\n<\000\000\002\188I\026\000\000\006\172\000\000P$\005\236\005\236\000\000\000\000\t<\000\000\012\246\000\000\004$\t<\t<\000\000\012\212IR\005\236P~\005\236\012\232\000\000\000\000\000\000\000\000\rb\000\000\000\000\002\174\000\000\tL\0162\012\218\017`\015\240\000\000\000\000\007\244\t\158\0168\000\000\000\000\012\232\017j\016\004\000\000\000\0004\220\000\000K\136\000\000D\0289\224\005\236\000\000P\144M>\000\000P\180\000\000\000\000\000\000\000\000\000\000\t<\000\000\000\000\r\130\016J\012\242\017z\016\012\000\000\000\000P\234\r\146\016R\000\000\000\000\000\000C,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\158\000\000\016\016\r\014#\244\n\004\000\000\016l\r\016\n&\000\000\t\152\017~\017,\r\176\016|\000\000\000\000\000\000\016\130\r8\n\178\000\000\n\134\000\000\007\026:\204\005\214\000\000\000\000\000\000\012\192\016>\r\160\000\000\016D\012\192\000\000\017>\r\206\016\142\000\000\000\000\000\000\005\236\002\160\005\216\006\170\000\000\000\000\000\000\000\000\016J\r\164\000\000\006\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\236\016>\r\174\017\188\016N\000\000C\182)\214\000\243\r\194\016\"\004(\001t\r\198\016\242\000\000\000\000\017\188 D\000\000\000\000 \188\000\000\r\234\000\000\r\026\000\000\000\000\000\000\000\000\000\000\000\000Qb\005\236\000\000\017\192!\020\000\000\000\000!b\000\000\0024\r\222\017b\000\000\000\000DzD\168\nT\000\000Q\152\005\236!\136\000\000\000\000!\218\000\000\000\000\r\248\000\000\r\236\000\000\000\000\000\000\000\000\000\000\000\000D\194\000\000\000\000E0D\212\n\202\000\000Q\162\005\236\"\166\000\000\000\000#\030\000\000\000\000\r\250#B\r\254\000\000\014\b\014\016\002b\002\130\014\022\r\140\0148\017l#t\014*\000\000\014>\014@\014\024\000\000\002\212I\170\000\000\003\250\000\000\014BE\166E\220\011x\016.\012~\000\000\tz\020x\000\000\012\148\000\000\000\000\012\148\000\000\000\000\012\148\014&\000\000\012\198\012\148\017t$8\014L\000\000\012\148\000\000\000\000Q\226\000\000\000\000\000\000\012\148\000\000\000\000\014\194\000\000\016:\r\018\014\218\000\000\014fI\180\015\022\000\000\000\000\000\000\000\000\0152\000\000\000\000\004X\000\000\012\148Q\242\000\000\019j\012\148F\022\000\000\015<\016\194\014\144\017\244\016\132\000\000FR\015>\016\200\000\000\000\000\000\000'f\t\192\000\000\000\000\000\000\000\000\000\000\000\000\r\200\015R\000\000\016~\014\150\012\250\005\162\000\000\016\218\000\000\000\000\000\000\000\000\015tI\140\000\000\000\000\000\000\000\000\r\200\000\000\000\000\015zJ\140\000\000\000\000\000\000\000\000\000\000\001\238\001$\000\000\000\000\007\176\000\000Q\250\005\236\000\000\007^\000\000\000\000\000\000\000\000$T\000\000\000\000\000\000\000\000\000\000\000\000\017\134\004\188\r\132\016>\005\014\014\210\000\000\b(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016J\006\194\014\218\000\000\006\214\012\000\017\238\017\156\015\134\000\000\000\000\017\154\005\162\t@\000\000\000\000\000\000\000\000R\170\005\236\000\000\"\224O\172\000\000\000\000\000\000\000\000J\200\014\230\000\000\014\252\001\030\000\000\000\000\003\150\019\182\000\000\000\000\000\000\000\000\000\000R\234\005\236\000\000*\178R^\000\000\000\000\000\000\000\000\000\000\000\000S\020\005\236\000\0008\164S\130\000\000\000\000\000\000\000\000\b\136\000\000\000\000\000\000\005\236\000\000\000\000\b\196\017\170\015\144\000\000\000\000\017\166\005\130\001\218\000\000\000\000\000\000\000\000\b\244\014>\017\238\t.\017\188\015\168\000\000\000\000\017\184\006\020\002<\000\000\000\000\000\000\000\000\001$\000\000\015\194\000\000\000\000\000\000$B\000\000%\030\000\000\000\000\000\000\000\000\000\000\014\186\000\000\000\000\000\000\004Z\000\129\000\000\000\000\000\000\000\000\000\000\t\026\000\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006T\000\000\000\000\000\000J\152\000\000\005\236\000\000\004p\000\000\000\000\000\000\000\127\000\000\000\000\000\000\b \000\000\000\000\000\000\000U\000\000\001\238\000\000\000\181\000\000\001$\000\000\004v\000\000\000\000\000\000:,\007\176\000\000\000\000\001\018\000\000\000\000\000\000\000\000\007\012\004\226\016\230\005\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0003\198\000\000\015\196\000\000\000\000\000\000\000\000\0050\006\218\0068F\156\000\000\000\000\015\206G\018\000\000\000\000\000\000\016\026G\136\000\000\000\000\000\000\000\000"), (16, "\007Q\001\171\002\159\002\160\001\209\000=\b\000\b7\000B\002\159\002\160\001\209\007Q\000\155\002\159\002\160\001\209\002\240\007R\b\005\004\164\000\250\001'\007T\000\254\000\255\000\156\002\241\001+\002\240\007R\007f\007U\007g\004\162\007T\000\131\b+\000A\002\241\003\011\004\171\007\215\002K\007U\007g\b8\000\250\0009\001;\000\254\001\017\003\011\002c\007\014\000o\b3\002g\001\174\001+\004z\001\018\000^\007V\002\129\001$\004\184\002K\001<\0009\007\250\001+\001.\000b\0009\007V\000\159\002c\000\159\007\254\b,\002g\002K\001+\002\129\007x\001+\007\016\000\149\001\021\000\250\000\161\002c\000\254\000\255\000f\002g\b4\001+\000\149\002\142\007W\000\161\000\254\002h\007\017\000\159\004\237\000\250\003\r\007\019\000\254\001\017\007W\007?\007X\002\162\007w\002i\000\134\002\142\003\r\002\163\000\254\003\015\000\254\000\162\007X\002h\004\175\006\n\003\015\000\254\001\017\002\163\001>\003\015\000\254\002p\0013\0009\007l\002i\002h\001+\006\011\001;\001O\001$\006#\004\165\000{\001?\007l\001+\001.\007m\002i\001+\bC\002\160\001\209\004\248\004\250\004\252\001<\002\143\000\166\007m\007[\000\130\004\165\007]\b\007\004\149\007b\002\129\005\129\000\165\001\000\000\136\007[\001;\001;\007]\007d\002\143\007b\003\016\000\159\003\022\000\167\007\252\007\235\002\\\003\016\003\028\007d\001\247\003\018\003\016\004\129\003\022\003\017\007e\001\247\003\018\006\183\003\028\005S\001\247\003\018\002\142\001M\004\140\000\254\007e\001B\000\153\0013\004\237\007Q\003\030\002\159\002\160\001\209\001;\001O\001/\006\027\003\209\bE\001>\007Q\003\030\002\159\002\160\001\209\002\240\007R\007f\000<\000s\001\209\007T\001<\007\227\001H\002\241\001?\002\240\007R\007f\007U\007g\001+\007T\004\216\006\030\000\171\002\241\003\011\000;\001\141\006\128\007U\007g\000?\001>\001>\001;\001\142\007\139\003\011\006 \004\251\004\250\004\252\002\143\bF\002n\003\015\000\254\000\254\007V\001?\001?\005\145\007\170\001<\000\254\001+\001+\001M\007\193\007\188\007V\006!\000\250\000\152\007\136\000\254\001\017\002K\000\168\000\137\002}\001V\007\222\005\173\002_\000\199\001>\002c\001B\004\129\004\219\002g\005\138\001+\002c\003\209\007W\006n\002g\000\176\001+\001;\004\140\001?\003\r\003\209\001$\000\189\007W\001+\007X\001M\001+\001.\002P\004\129\003\r\002\163\001H\003\015\000\254\001Y\007X\004\255\001B\001B\006\185\002\140\004\138\002\163\001>\003\015\000\254\001$\0013\005\148\007l\001\247\002h\001+\001G\001;\001O\007\204\003\209\002h\000\193\001?\007l\000\159\001;\007m\002i\001+\007\189\007\189\002b\006\135\006\136\001$\001<\001V\001P\007m\007[\001+\001G\007]\001B\001<\007b\006\n\006\137\006\153\007\231\0009\007[\006\145\005\028\007]\007d\000\200\007b\003\016\005T\003\022\006\011\001>\006\128\000\204\006\018\003\028\007d\001\247\003\018\003\016\000\159\003\022\001H\007e\001\215\001Y\000\209\003\028\001?\001\247\003\018\006\218\001M\007\232\001+\007e\001B\002\159\002\160\001\209\007Q\003\030\002\159\002\160\001\209\000\250\006\220\007\246\000\254\000\255\007\128\001n\007Q\003\030\002\159\002\160\001\209\002\240\007R\007f\001>\000\250\004)\007T\000\254\000\255\001H\002\241\001?\002\240\007R\007f\007U\007g\001+\007T\000\222\001?\007\014\002\241\003\011\002\141\007\232\001+\007U\007g\000\250\001F\004*\000\254\001\017\001$\003\011\001B\007\014\001\208\001\209\001+\001.\005\006\002\"\006\"\000\250\007V\003\178\000\254\000\255\007n\003\209\000\198\000\167\007\016\000\169\002\\\003\181\007V\000\159\001\210\003{\007j\001\212\001\213\000\167\005\007\007\159\002\\\001V\007\016\001\021\007\017\006\030\006\135\006\136\001B\007\019\007\014\003\222\001r\007*\000\254\001\017\007W\001B\004\141\002\162\007\017\006 \006\152\000\160\003\r\007\019\006\145\005\028\007W\007#\007X\006\n\002\163\003\027\003\015\000\254\003\r\002\163\001H\003\015\000\254\001Y\007X\007\016\006!\002\127\006\011\001H\006n\002\163\006\012\003\015\000\254\003\239\b\016\004\021\007l\004~\000\254\001\017\003\209\007\017\007\138\002\159\002\160\001\209\007\019\000\202\007l\001\216\007\026\007m\003\027\004,\000\226\001$\001\217\000\167\002\240\000\196\002\\\001+\001G\007m\007[\002\011\001\209\007]\002\241\001\218\007b\003\133\000\254\000\159\b'\003\131\007[\004&\003\016\007]\007d\003\011\007b\003\016\005\196\003\022\003\017\000\254\001\247\003\018\002I\003\028\007d\001\247\003\018\003\016\002t\003\022\007Q\007e\002\159\002\160\001\209\003\028\000\250\001\247\003\018\000\254\000\255\003|\005U\007e\bR\bS\b\017\002\240\bU\003\030\004\156\005\185\b;\007T\b)\000\241\003\127\002\241\001$\004P\003\131\003\030\007U\bW\001+\001.\003\027\001\237\007\147\007Q\003\011\002\159\002\160\001\209\bf\001\246\0077\001\247\001\216\002u\002\129\000\247\003\r\002y\b^\b\018\002\240\b_\003\209\b<\b\025\001+\007T\007V\000\157\002\163\002\241\003\015\000\254\002c\007>\007U\bg\002g\002K\001+\007:\002z\000\167\003\011\002\140\005\219\004\170\002\133\002c\000\194\002\142\000\205\002g\000\254\001+\001\190\007<\006\n\002b\007\t\000\210\001;\001;\003\019\007:\007W\007V\bO\002\160\001\209\b\026\001$\006\011\003\r\000\157\0052\006\017\001+\001.\007X\007<\001<\002y\004\255\002h\007=\002\163\000\158\003\015\000\254\003\027\000\223\005\014\001T\b\027\003\016\000\232\003\022\000\159\002h\007\230\005X\bZ\003\028\007W\001\247\003\018\004\166\005\145\007=\004\153\000\254\003\r\002i\001\004\b\028\002\143\007\168\007X\000\159\007m\000\159\007\151\007\152\003\209\002\163\003\027\003\015\000\254\003\030\000\159\007\153\007\154\007[\000\250\007Q\007]\000\254\001\017\007b\bk\000\234\007\155\005\028\000\159\006\128\002\140\001>\001>\007d\b^\001E\003\016\b_\003\022\002\219\002\221\001\197\007T\007m\003\028\000\159\001\247\003\018\001?\001?\000\159\007U\007e\000\156\001+\001+\007[\007\245\002\141\007]\004\165\007Q\007b\002\159\002\160\001\209\007\145\004\167\001\247\000\242\003\030\bP\007d\003\015\000\254\003\016\001\204\003\022\002\240\007R\007t\004\237\007V\003\028\007T\001\247\003\018\007a\002\241\000\245\001$\007e\001$\007U\007g\000\159\001+\001G\001+\001.\007Q\003\011\002\159\002\160\001\209\007\233\007\234\003\127\007\165\003\030\003\144\003\131\000\248\001B\001B\b^\b\031\002\240\b_\005\020\007W\007\151\007\152\007T\007V\006\145\005\028\002\241\004\178\001\209\007\153\007\154\007U\bb\007X\001\005\006y\004\250\004\252\000\159\003\011\007\155\005\028\005\023\001H\0013\001\158\001\029\006\135\006\136\001\156\002K\001;\001O\002L\005\145\ba\004\199\000\254\000\159\002\141\002c\007W\007V\006\144\002g\001 \001+\006\145\005\028\003\r\001<\001S\003\027\0009\007Z\007X\001\184\007\233\007\234\001\201\0012\000\159\002\163\001;\003\015\000\254\004\237\007[\001$\006\128\007]\003P\001\209\007b\001+\001G\001X\006\145\005\028\001$\007W\007l\001<\007d\000\159\001+\001.\001;\003\r\005\145\004\237\002h\000\254\001\\\007X\000\159\007m\001_\001M\000\159\001$\002\163\007e\003\015\000\254\002i\001+\001G\b \007[\001\247\006T\007]\006\131\002s\007b\be\001>\003\201\001\209\001+\006\141\004\250\004\252\0013\007d\0017\003\209\003\016\000\159\003\022\001;\001O\001;\001?\007m\003\028\001\225\001\247\003\018\001+\006U\006\158\006V\007e\006\149\004\250\004\252\007[\001>\001<\007]\001<\007Q\007b\002\159\002\160\001\209\002\129\006\006\003\209\0009\003\030\007\157\007d\001\247\001?\003\016\003\209\003\022\002\240\007R\001+\001>\006W\003\028\007T\001\247\003\018\002\129\002\241\002\224\002\221\007e\007\129\007U\007p\002?\006\135\006\136\001?\002\144\001V\003\011\002\142\000\156\001+\000\254\001M\001B\001\152\003\030\002\129\006\137\006\153\001\173\005\191\000\159\006\145\005\028\003\209\006X\002\130\004\220\007:\002\142\007V\001>\000\254\001>\000\167\b/\002O\002\\\002\029\006Y\006Z\003\209\006[\001H\007<\001B\001Y\005\200\001?\002\172\001?\0013\002\142\005\239\001+\000\254\001+\001$\001;\001O\003\"\003\211\004\136\001+\001.\003U\002\221\006\159\007W\001B\001\200\000\159\007\242\007=\002\143\001H\003\r\001<\b0\000\156\003\127\000\254\007X\003\128\003\131\b\023\004\219\003\027\002\129\002\163\002A\003\015\000\254\002b\006]\002\143\006\128\006_\001;\001C\006d\006p\001:\007\148\0013\002\027\001V\005\202\007s\001;\006\155\001;\001O\001B\001\224\001B\001\234\006\160\002\143\004\237\003\210\004\203\006\n\007m\002\142\001M\001X\000\254\001<\006\156\001<\002\159\002\160\001\209\003[\002\221\007[\006\011\007\149\007]\007\224\006+\007b\001H\001>\001H\001Y\007\150\000\156\006\128\003\127\0013\007d\003\168\003\131\003\016\004)\003\022\001;\001O\000\159\001?\003\209\003\028\003\209\001\247\003\018\001+\005s\002\129\003\209\007e\004\229\005\028\007\217\004\250\004\252\001<\001M\002\159\002\160\001\209\007\018\003\127\001>\001$\004L\003\131\005\203\003\030\002\143\001+\001G\007\239\002\240\001>\006\128\001>\001\243\004C\002\221\001?\004\211\000\167\002\241\002\142\005\215\001+\000\254\001\242\005=\003\209\001?\000\156\001?\006\135\006\136\003\011\001+\001V\001+\000\167\002!\006g\002\\\001M\001B\002\159\002\160\001\209\006\137\006\153\002\159\002\160\001\209\006\145\005\028\0023\002\162\006i\005\216\006\019\002\240\007\169\001>\0009\0021\002\240\005\202\006$\002H\002\163\002\241\003\015\000\254\b\024\001H\002\241\004p\001Y\005&\001?\003\209\007\132\005f\003\011\001B\001+\006\135\006\136\003\011\002\143\001V\005k\002\154\001;\000o\001B\007\149\001B\002\159\002\160\001\209\006\137\006\153\003\209\003\r\007\150\006\145\005\028\006,\000\167\004,\006s\002\\\002\240\001J\004\255\002\157\002\163\003\209\003\015\000\254\006n\002\129\002\241\003\209\001H\0029\001H\002\171\005B\001Y\002\186\006\r\006\135\006\136\003\016\003\011\001V\000\159\002\189\006\r\004\219\000o\003\017\001B\001\247\003\018\005$\007\220\007\221\004\219\003\019\003\r\006\145\005\028\004\215\002\129\003\r\002\142\006c\003\127\000\254\000\159\006\209\003\131\002\163\006\001\003\015\000\254\000\254\002\163\005\029\003\015\000\254\001H\005p\006u\001Y\003\209\001>\001K\006\r\005\"\003\016\003\209\003\022\000\159\001;\001L\0057\002\195\003\028\002\142\001\247\003\018\000\254\001?\005a\000\159\003\019\001\135\000\159\001+\005g\003\019\003\r\001<\001;\005\160\000\159\002\159\002\160\001\209\002\229\001+\002\234\004\201\003\030\002\163\003\127\003\015\000\254\006\233\003\131\002\143\002\240\001<\003N\002\159\002\160\001\209\003\016\002b\003\022\004\219\002\241\003\016\004\130\003\022\003\028\006n\001\247\003\018\002\240\003\028\005.\001\247\003\018\003\011\002\159\002\160\001\209\003\019\002\241\001M\004\202\005y\005l\002\143\005,\000\159\001B\002>\005q\002\240\003\030\003\011\005\016\004\208\004\223\003\030\004\244\002D\001>\002\241\005\127\001\209\004\246\002'\001\209\005#\003\209\005\025\000\159\003\016\000\159\003\022\003\011\002x\005\030\001?\005\019\003\028\001>\001\247\003\018\001+\000\159\0056\003\209\001\210\002\180\003\209\001\212\001\213\002K\005V\000\159\002a\005\\\001?\002\159\002\160\001\209\005\164\002c\001+\003\r\003\030\002g\001+\001+\005c\005i\000\250\000\159\002\240\000\254\000\255\005~\002\163\005\179\003\015\000\254\002\129\003\r\002\241\001+\000\159\000\159\005\141\000\159\004\200\002U\004f\003\203\003\204\000\159\002\163\003\011\003\015\000\254\000\159\005\142\005\028\001B\003\r\007\014\001;\000\159\005\137\002W\005\149\003\209\003\019\007\161\002h\005W\000\159\002\163\002\142\003\015\000\254\000\254\002f\001B\000\159\005\152\005\150\000\159\002i\005\153\003\019\003\209\001\235\001H\005\159\005\163\005\207\005\028\007\016\002w\000\159\000\159\001l\004\192\003\016\001\218\0051\000\159\000\254\001;\001m\003\019\003\028\001H\001\247\003\018\007\017\006\190\000\159\003\209\005\169\007\019\003\016\005\175\003\022\007\023\003\r\003\209\001<\003\209\003\028\003\209\001\247\003\018\005\187\004i\004n\006n\003\030\002\163\000\159\003\015\000\254\003\016\002\143\003\022\007-\002\159\002\160\001\209\005\161\003\028\001a\001\247\003\018\000\159\003\030\005\206\003\209\002\159\002\160\001\209\002\240\000\250\000\159\000\159\000\254\000\255\005\211\001?\005\165\001\237\002\241\003\019\002\240\001+\001M\003\030\004\181\001\238\005\224\001\247\001\216\005\230\002\241\003\011\002\159\002\160\001\209\002\129\000\159\005\241\005\252\000\159\004\195\001>\007\014\003\011\005\180\000\250\0009\002\240\000\254\000\255\000\159\003\016\005\197\003\022\005\201\0071\005\250\002\241\001?\003\028\006\014\001\247\003\018\004e\001+\003\209\006\000\006\225\007`\006\015\003\011\002\142\000\254\000\159\000\254\007\016\006\021\006\194\007\014\006&\001B\003\209\004\188\006\026\000\159\003\030\0060\002K\002\153\003\209\002k\006K\002\156\007\017\002\170\003\209\000\159\002c\007\019\000\159\003\r\002g\007\020\001+\003\209\006a\006f\000\159\000\159\002\185\001e\007\016\003\r\002\163\007\021\003\015\000\254\006}\005\028\003\209\002\159\002\160\001\209\001B\002\188\002\163\006r\003\015\000\254\007\017\000\159\002\194\006\229\003\209\007\019\002\240\000\159\002\143\007\030\003\r\003\209\001\208\001\209\003\209\006\031\002\241\000\159\003\019\002h\000\159\002\213\004`\002\163\001H\003\015\000\254\000\159\002\207\003\011\003\019\006I\000\159\002i\001\210\001\226\003\209\001\212\001\213\006Q\002\159\002\160\001\209\002\210\006T\006^\000\159\000\159\007\021\006\127\003\016\006\147\003\022\003\209\006l\002\240\006\163\003\019\003\028\004\\\001\247\003\018\003\016\002\228\004\198\002\241\006\170\000\159\006\174\006\133\003\028\004U\001\247\003\018\006U\b\t\006V\007\237\003\011\001\227\006\203\001\228\002\191\006\184\003\030\007\004\007\143\005\028\000\254\003\016\006\219\003\022\007\028\006\245\006\243\000\254\003\030\003\028\003\r\001\247\003\018\007/\002\159\002\160\001\209\006\248\002K\006W\007\031\002m\006\252\002\163\003\209\003\015\000\254\007\000\002c\002\240\001\235\000\159\002g\000\159\001+\003\030\003\209\006\253\000\159\002\241\007\027\007\003\007\011\001\218\007\"\004>\000\254\002\233\000\159\002\253\000\159\001c\003\011\006n\004_\003\212\006X\003\019\001;\003\r\0074\003j\000\159\002\159\002\160\001\209\003\209\002\159\002\160\001\209\006Y\006Z\002\163\006[\003\015\000\254\000\159\001<\002\240\002h\003\209\007I\002\240\000\159\007_\003\209\003\209\000\159\002\241\003\016\000\159\003\022\002\241\002i\0046\003d\003\209\003\028\006\159\001\247\003\018\003\011\004.\007.\003\202\003\011\003\019\000\159\0049\001\237\000\159\000\159\000\159\003\209\007\146\0072\003\209\001\238\007\158\001\247\001\216\003\r\003\209\003\030\007\184\006]\b\011\003\209\006_\004\139\000\159\006d\006p\004\155\002\163\007\186\003\015\000\254\003\016\003\209\003\022\006\155\004\158\004\168\001>\0076\003\028\004\190\001\247\003\018\004\207\000\159\003\209\003\209\000\159\001\127\004\209\004\222\003\209\007;\006\156\001?\001;\001\128\007G\007N\005\024\001+\003\019\005 \003\r\005'\003\030\0055\003\r\007\\\005@\005b\002\159\002\160\001\209\001<\005[\002\163\000\159\003\015\000\254\002\163\000\159\003\015\000\254\005]\007h\002\240\000\159\007q\003\209\002\159\002\160\001\209\003\016\007\164\003\022\002\241\005`\000\159\007\226\005o\003\028\003\b\001\247\003\018\002\240\005e\005n\005j\003\011\003\019\007\241\001\208\001\209\003\019\002\241\005m\005}\005\136\001B\005\135\003\021\001M\005\140\007\253\bX\005\151\003\030\003\011\002K\bc\005\162\002\137\005\158\001\210\001\226\005\174\001\212\001\213\002c\005\168\001>\003\016\002g\003\022\001+\003\016\005\170\003\228\001H\003\028\005\194\001\247\003\018\003\028\005\182\001\247\003\018\001?\005D\005\193\005\188\005\192\000\250\001+\005\205\000\254\000\255\bh\006/\002\159\002\160\001\209\005\210\005\213\005\220\003\030\005\228\003\r\001\227\003\030\001\228\002\191\005\235\005\246\002\240\006.\006'\006(\006-\002h\002\163\0061\003\015\000\254\002\241\007\014\003\r\0062\006S\006L\003$\006M\006R\002i\002\159\002\160\001\209\003\011\006`\002\163\006o\003\015\000\254\006j\003\165\001\209\006k\001\235\006m\002\240\006\154\006~\001B\006\130\003\019\006\132\006\134\006\146\007\016\002\241\001\218\006\162\006\164\000\254\006\165\003#\003\182\001\226\006\171\001\212\001\213\004_\003\011\003\019\006\176\006\180\007\017\006\198\001\208\001\209\006\205\007\019\001H\006\254\007\022\0070\003\016\007 \003\022\007P\007J\007K\007O\007^\003\028\007c\001\247\003\018\007\141\007\162\001\210\001\211\007\163\001\212\001\213\003\016\003\r\003\022\007\167\007\225\003\187\003\203\003\204\003\028\007\229\001\247\003\018\0013\007\240\002\163\003\030\003\015\000\254\007\244\001;\001O\001\237\002\159\002\160\001\209\bJ\000\000\000\000\000\000\001\238\000\000\001\247\001\216\000\000\003\030\000\000\003\r\002\240\001<\002\159\002\160\001\209\000\000\000\000\000\000\001\235\000\000\002\241\003\019\002\163\005\129\003\015\000\254\003v\002\240\000\000\000\000\000\000\001\218\000\000\003\011\000\254\000\000\000\000\002\241\005\132\000\000\000\000\000\000\000\000\003y\000\000\002\159\002\160\001\209\000\000\000\000\003\011\000\000\001\217\003\016\000\000\003\022\003\019\000\000\000\000\001M\002\240\003\028\000\000\001\247\003\018\001\218\003\207\003\208\000\254\000\000\002\241\000\000\000\000\000\000\000\000\000\000\003\147\000\000\001>\000\000\000\000\000\000\000\000\003\011\000\000\000\000\001k\003\030\003\016\000\000\003\022\000\000\000\000\001;\000\000\001?\003\028\001\237\001\247\003\018\000\000\001+\003\r\000\000\000\000\001\238\000\000\001\247\001\216\000\000\000\000\000\000\001<\000\000\000\000\002\163\000\000\003\015\000\254\003\r\000\000\000\000\003\030\002\159\002\160\001\209\000\000\000\000\000\000\000\000\000\000\001\237\002\163\000\000\003\015\000\254\000\000\000\000\002\240\001\246\000\000\001\247\001\216\000\000\002\159\002\160\001\209\000\000\002\241\003\019\000\000\000\000\003\r\001V\003\150\000\000\000\000\000\000\000\000\002\240\001B\003\011\000\000\000\000\005\138\002\163\003\019\003\015\000\254\002\241\000\000\000\000\002\159\002\160\001\209\003\160\000\000\000\000\000\000\001>\000\000\003\016\003\011\003\022\000\000\000\000\000\000\002\240\000\000\003\028\001H\001\247\003\018\001Y\000\000\000\000\001?\002\241\003\016\003\019\003\022\000\000\001+\003\163\001;\000\000\003\028\000\000\001\247\003\018\003\011\000\000\000\000\000\000\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\160\001\209\000\000\000\000\000\000\000\000\000\000\003\r\003\016\003\030\003\022\000\000\000\000\000\000\002\240\000\000\003\028\000\000\001\247\003\018\002\163\000\000\003\015\000\254\002\241\000\000\000\000\000\000\003\r\000\000\003\172\000\000\002\159\002\160\001\209\000\000\000\000\003\011\001B\000\000\000\000\002\163\003\030\003\015\000\254\000\250\000\000\002\240\000\254\000\255\000\000\002\159\002\160\001\209\003\019\000\000\003\r\002\241\000\000\000\000\002\159\002\160\001\209\003\177\000\000\000\000\002\240\001>\001H\002\163\003\011\003\015\000\254\000\000\000\000\003\019\002\241\000\000\007\014\000\000\000\000\000\000\003\180\000\000\001?\004)\003\016\000\000\003\022\003\011\001+\000\000\000\000\007\191\003\028\000\000\001\247\003\018\001p\000\000\000\000\000\000\000\000\003\019\000\000\001;\003\r\003\016\000\000\003\022\000\000\007\016\000\000\001;\000\000\003\028\000\000\001\247\003\018\002\163\003\030\003\015\000\254\000\000\001<\000\000\000\000\000\000\000\000\007\017\000\000\000\000\000\000\000\000\007\019\003\016\000\000\003\022\007C\003\r\000\000\003\030\000\000\003\028\000\000\001\247\003\018\000\000\000\000\001B\001;\000\000\002\163\003\019\003\015\000\254\000\000\000\000\003\r\000\000\000\000\000\000\000\000\002\159\002\160\001\209\000\000\002\162\000\000\003\030\000\000\002\163\000\000\003\015\000\254\002\159\002\160\001\209\002\240\007\189\002\163\000\000\003\015\000\254\000\000\003\016\003\019\003\022\002\241\000\000\002\240\001>\000\000\003\028\003\186\001\247\003\018\000\000\000\000\003f\002\241\003\011\002\159\002\160\001\209\003\019\003\189\000\000\001?\000\000\000\000\000\000\000\000\003\011\001+\000\000\001?\002\240\003\016\003\030\003\022\004+\001+\000\000\000\000\000\000\003\028\002\241\001\247\003\018\000\000\000\000\000\000\003\215\000\000\000\000\001>\003\016\000\000\003\022\003\011\000\000\000\000\000\000\000\000\003\028\003\016\001\247\003\018\000\000\000\000\000\000\003\030\001?\003\017\000\000\001\247\003\018\002K\001+\000\000\002\175\000\000\000\000\000\000\000\000\000\000\000\000\002c\000\000\003\r\003\030\002g\001B\001+\000\000\000\000\000\000\000\000\000\000\000\000\001B\003\r\002\163\000\000\003\015\000\254\000\000\000\000\000\000\002\159\002\160\001\209\000\000\000\000\002\163\000\000\003\015\000\254\001;\000\000\000\000\000\000\001H\000\000\002\240\000\000\000\000\000\000\003\r\000\000\001e\002\159\002\160\001\209\002\241\000\000\003\019\001B\002h\000\000\003\219\002\163\000\000\003\015\000\254\000\000\002\240\003\011\003\019\000\000\000\000\000\000\002i\000\000\000\000\000\000\002\241\000\000\002\159\002\160\001\209\000\000\000\000\000\000\000\000\000\000\003\225\004F\003\016\003\011\003\022\000\000\000\000\002\240\000\000\003\019\003\028\000\000\001\247\003\018\003\016\000\000\003\022\002\241\002K\000\000\000\000\004\213\003\028\000\000\001\247\003\018\000\000\003\230\002c\000\000\003\011\000\000\002g\001\129\001+\000\000\003\030\000\000\001>\000\000\001;\003\016\000\000\003\022\000\000\002\159\002\160\001\209\003\030\003\028\003\r\001\247\003\018\000\000\000\000\001?\000\000\000\000\000\000\001<\002\240\001+\000\000\002\163\000\000\003\015\000\254\000\000\000\000\000\000\002\241\000\000\003\r\000\000\000\000\003\030\000\000\000\000\000\000\002h\003\232\000\000\000\000\003\011\000\000\002\163\000\000\003\015\000\254\000\000\000\000\001~\000\000\002i\000\000\000\000\000\000\003\019\001;\003\r\000\000\000\000\000\000\002\159\002\160\001\209\000\000\002\159\002\160\001\209\000\000\000\000\002\163\000\000\003\015\000\254\000\000\001<\002\240\003\019\001B\000\000\002\240\000\000\000\000\000\000\001>\000\000\002\241\003\016\000\000\003\022\002\241\000\000\000\000\000\000\000\000\003\028\003\236\001\247\003\018\003\011\003\244\001?\000\000\003\011\003\019\000\000\000\000\001+\004\232\003\016\003\r\003\228\000\000\000\000\002\159\002\160\001\209\003\028\000\000\001\247\003\018\003\030\000\000\002\163\000\000\003\015\000\254\000\000\000\000\002\240\000\000\000\000\000\000\000\000\000\000\000\000\003\016\000\000\003\228\002\241\000\000\000\000\001>\003\030\003\028\000\000\001\247\003\018\000\000\003\250\000\000\000\000\003\011\002K\001\208\001\209\005;\003\019\000\000\001?\000\000\000\000\000\000\002c\000\000\001+\001B\002g\003\r\001+\003\030\000\000\003\r\002\159\002\160\001\209\001\210\001\245\000\000\001\212\001\213\002\163\000\000\003\015\000\254\002\163\000\000\003\015\000\254\003\016\000\000\003\228\002\159\002\160\001\209\000\000\001H\003\028\0053\001\247\003\018\000\000\000\000\000\000\000\000\000\000\000\000\002\240\000\000\000\000\002\159\002\160\001\209\000\000\002h\003\019\000\000\002\241\000\000\003\019\000\000\003\r\000\000\003\030\001B\002\240\000\000\004\000\002i\000\000\003\011\002\159\002\160\001\209\002\163\002\241\003\015\000\254\000\000\000\000\000\000\004\007\000\000\000\000\000\000\000\000\002\240\003\016\003\011\003\228\000\000\003\016\000\000\003\228\001H\003\028\002\241\001\247\003\018\003\028\001\217\001\247\003\018\000\000\000\000\000\000\004\024\000\000\003\019\003\011\000\000\000\000\000\000\001\218\000\000\000\000\000\254\000\000\000\000\000\000\002\162\003\030\000\000\000\000\000\000\003\030\000\000\000\000\002\159\002\160\001\209\000\000\000\000\002\163\000\000\003\015\000\254\000\000\000\000\003\r\003\016\000\000\003\228\002\240\000\000\000\000\000\000\000\000\003\028\000\000\001\247\003\018\002\163\002\241\003\015\000\254\000\000\003\r\000\000\004\012\000\000\000\000\000\000\000\000\000\000\000\000\003\011\002\159\002\160\001\209\002\163\000\000\003\015\000\254\003\030\000\000\000\000\000\000\003\r\001\237\000\000\000\000\002\240\000\000\000\000\000\000\003\019\001\246\000\000\001\247\001\216\002\163\002\241\003\015\000\254\000\000\000\000\000\000\004\017\003\016\000\000\000\000\000\000\000\000\003\019\003\011\000\000\003\017\000\000\001\247\003\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\016\000\000\003\228\000\000\000\000\000\000\000\000\003\019\003\028\000\000\001\247\003\018\000\000\000\000\000\000\000\000\000\000\003\r\003\016\000\000\003\022\000\000\000\000\000\000\001;\000\000\003\028\000\000\001\247\003\018\002\163\000\000\003\015\000\254\003\030\000\000\000\000\000\000\000\000\003\016\000\000\003\228\002\159\002\160\001\209\000\000\000\000\003\028\000\000\001\247\003\018\000\000\003\030\000\000\000\000\000\000\003\r\002\240\000\000\002\159\002\160\001\209\000\000\000\000\003\019\002K\000\000\002\241\005J\002\163\000\000\003\015\000\254\003\030\002\240\002c\000\000\004\029\000\000\002g\003\011\001+\000\000\000\000\002\241\000\000\002\159\002\160\001\209\000\000\000\000\000\000\000\000\000\000\004\"\000\000\003\016\003\011\003\022\000\000\000\000\002\240\000\000\003\019\003\028\000\000\001\247\003\018\000\000\000\000\001>\002\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0041\002K\000\000\003\011\005N\002h\001?\000\000\000\000\003\030\000\000\002c\001+\000\000\003\016\002g\003\022\001+\000\000\002i\000\000\000\000\003\028\000\000\001\247\003\018\000\000\000\000\003\r\000\000\000\000\000\000\002\159\002\160\001\209\001;\002K\000\000\000\000\005Q\000\000\002\163\000\000\003\015\000\254\003\r\002c\002\240\003\030\000\000\002g\000\000\001+\002\159\002\160\001\209\0013\002\241\002\163\000\000\003\015\000\254\002h\001;\001O\000\000\000\000\0044\002\240\000\000\003\011\001B\003\r\000\000\000\000\003\019\002i\000\000\002\241\000\000\000\000\000\000\001<\000\000\004:\002\163\000\000\003\015\000\254\000\000\000\000\003\011\003\019\000\000\004\240\000\000\001\133\002h\000\000\000\000\000\000\004\254\000\000\001;\001\134\000\000\000\000\003\016\004\243\003\228\000\000\002i\002\159\002\160\001\209\003\028\000\000\001\247\003\018\003\019\000\000\001>\001<\000\000\003\016\000\000\003\228\002\240\000\000\000\000\001M\000\000\003\028\000\000\001\247\003\018\000\000\002\241\001?\003\r\000\000\003\030\000\000\004<\001+\000\000\000\000\000\000\000\000\001>\003\011\003\016\002\163\003\228\003\015\000\254\001;\000\000\003\030\003\028\003\r\001\247\003\018\002\159\002\160\001\209\001?\002\159\002\160\001\209\001M\000\000\001+\002\163\000\000\003\015\000\254\000\000\002\240\000\000\000\000\000\000\002\240\001\139\000\000\003\030\003\019\000\000\002\241\001>\001;\001\140\002\241\000\000\004H\000\000\000\000\000\000\004W\000\000\000\000\003\011\000\000\001B\000\000\003\011\001?\003\019\000\000\001<\000\000\000\000\001+\000\000\000\000\002\159\002\160\001\209\003\016\003\r\003\228\000\000\000\000\000\000\001V\000\000\003\028\000\000\001\247\003\018\002\240\001B\002\163\005\005\003\015\000\254\000\000\000\000\000\000\003\016\002\241\003\022\001>\000\000\000\000\000\000\004Z\003\028\000\000\001\247\003\018\000\000\003\030\003\011\000\000\000\000\000\000\001M\000\000\001?\000\000\001H\001;\000\000\004\247\001+\003\019\000\000\000\000\000\000\003\r\001B\000\000\003\030\003\r\000\000\001>\000\000\000\000\000\000\000\000\006T\000\000\002\163\000\000\003\015\000\254\002\163\000\000\003\015\000\254\000\000\000\000\001?\000\000\002\159\002\160\001\209\003\016\001+\003\022\001H\000\000\000\000\000\000\000\000\003\028\000\000\001\247\003\018\002\240\006U\007\247\006V\002\159\002\160\001\209\003\019\000\000\000\000\002\241\003\019\003\r\000\000\001B\000\000\004h\000\000\000\000\002\240\000\000\000\000\003\030\003\011\000\000\002\163\000\000\003\015\000\254\002\241\000\000\002\159\002\160\001\209\006W\004k\000\000\000\000\001>\003\016\000\000\003\022\003\011\003\016\005\002\003\022\002\240\003\028\001B\001\247\003\018\003\028\000\000\001\247\003\018\001?\002\241\000\000\000\000\003\019\000\000\001+\000\000\000\000\000\000\000\000\004u\000\000\000\000\003\011\000\000\006X\000\000\003\030\000\000\000\000\000\000\003\030\001H\000\000\001;\000\000\000\000\000\000\000\000\006Y\006Z\000\000\006[\000\000\000\000\003\016\003\r\003\022\000\000\000\000\001\208\001\209\000\000\003\028\000\000\001\247\003\018\000\000\000\000\002\163\000\000\003\015\000\254\000\000\000\000\003\r\000\000\006\159\000\000\005*\000\000\000\000\001\210\003{\001B\001\212\001\213\000\000\002\163\003\030\003\015\000\254\000\000\000\000\002\159\002\160\001\209\000\000\000\000\000\000\000\000\000\000\003\r\003\019\006]\000\000\000\000\006_\000\000\002\240\006d\006p\000\000\000\000\005\004\002\163\000\000\003\015\000\254\002\241\006\155\000\000\003\019\000\000\002K\000\000\000\000\005_\000\000\004\144\001>\000\000\003\011\000\000\002c\003\016\000\000\003\022\002g\006\156\001+\000\000\000\000\003\028\000\000\001\247\003\018\001?\000\000\003\019\000\000\000\000\000\000\001+\003\016\001;\003\022\000\000\000\000\000\000\000\000\000\000\003\028\000\000\001\247\003\018\001\217\000\000\000\000\003\030\000\000\000\000\002\159\002\160\001\209\000\000\000\000\000\000\000\000\001\218\000\000\003\016\000\254\004x\000\000\002h\000\000\002\240\003\030\003\028\000\000\001\247\003\018\002\159\002\160\001\209\000\000\002\241\000\000\002i\000\000\003\r\000\000\004\205\000\000\002\159\002\160\001\209\002\240\000\000\003\011\000\000\001B\000\000\002\163\003\030\003\015\000\254\002\241\003|\002\240\000\000\000\000\000\000\004\218\000\000\000\000\000\000\000\000\000\000\002\241\003\011\002\159\002\160\001\209\000\000\005\027\000\000\000\000\000\000\000\000\001>\005\018\003\011\000\000\001\237\000\000\002\240\003\019\000\000\000\000\003\165\001\209\001\246\000\000\001\247\001\216\002\241\001?\000\000\000\000\000\000\000\000\005w\001+\000\000\000\000\000\000\000\000\000\000\003\011\000\000\000\000\003\182\001\226\000\000\001\212\001\213\000\000\003\r\003\016\000\000\004\147\000\000\000\000\000\000\000\000\000\000\003\028\000\000\001\247\003\018\002\163\000\000\003\015\000\254\000\000\000\000\000\000\000\000\003\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\r\002\163\003\030\003\015\000\254\003\187\003\203\003\204\000\000\000\000\001\132\001B\000\000\002\163\003\019\003\015\000\254\001;\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\160\001\209\003\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\019\001<\000\000\000\000\002\240\002\163\005\022\003\015\000\254\001\182\001\235\003\016\003\019\003\022\002\241\002K\001;\001\183\005\172\003\028\006\179\001\247\003\018\001\218\000\000\002c\000\254\003\011\000\000\002g\000\000\001+\003\016\000\000\003\022\001<\000\000\000\000\000\000\003\019\003\028\000\000\001\247\003\018\003\016\003\030\003\022\000\000\000\000\002\159\002\160\001\209\003\028\000\000\001\247\003\018\000\000\000\000\003\207\005!\000\000\000\000\000\000\000\000\002\240\000\000\003\030\000\000\001>\000\000\000\000\003\016\000\000\003\022\002\241\000\000\002h\000\000\003\030\003\028\006\182\001\247\003\018\001M\000\000\001?\000\000\003\011\000\000\001\237\002i\001+\000\000\002\159\002\160\001\209\003\r\001\238\000\000\001\247\001\216\000\000\001>\000\000\000\000\003\030\000\000\000\000\002\240\002\163\000\000\003\015\000\254\002K\000\000\000\000\005\184\000\000\002\241\001?\000\000\000\000\000\000\002c\006\197\001+\000\000\002g\001\188\001+\000\000\003\011\002\159\002\160\001\209\001;\001\189\000\000\000\000\000\000\000\000\000\000\000\000\003\019\000\000\002K\000\000\002\240\005\190\000\000\001B\002\159\002\160\001\209\001<\002c\003\r\002\241\000\000\002g\000\000\001+\000\000\006\200\000\000\000\000\002\240\000\000\000\000\002\163\003\011\003\015\000\254\000\000\002h\003\016\002\241\003\022\000\000\000\000\001H\000\000\006\213\003\028\001B\001\247\003\018\000\000\002i\003\011\000\000\000\000\002\159\002\160\001\209\000\000\000\000\000\000\000\000\000\000\003\r\000\000\001M\003\019\000\000\000\000\002h\002\240\000\000\003\030\000\000\000\000\000\000\002\163\001H\003\015\000\254\002\241\000\000\000\000\002i\001>\000\000\006\216\000\000\000\000\000\000\000\000\000\000\000\000\003\011\000\000\000\000\000\000\0013\003\016\000\000\003\022\001?\003\r\000\000\001;\001O\003\028\001+\001\247\003\018\003\019\000\000\000\000\000\000\000\000\002\163\006T\003\015\000\254\000\000\000\000\003\r\000\000\001<\000\000\001P\000\000\000\000\000\000\000\000\000\000\000\000\003\030\000\000\002\163\007\172\003\015\000\254\000\000\000\000\000\000\000\000\003\016\000\000\003\022\000\000\006U\001\194\006V\003\019\003\028\000\000\001\247\003\018\001;\001\195\000\000\002\159\002\160\001\209\000\000\000\000\003\r\000\000\000\000\000\000\001B\000\000\003\019\000\000\000\000\001M\002\240\001<\000\000\002\163\003\030\003\015\000\254\006W\000\000\003\016\002\241\003\022\000\000\000\000\000\000\000\000\006\237\003\028\005\n\001\247\003\018\000\000\000\000\003\011\001H\007\179\000\000\000\000\003\016\000\000\003\022\000\000\001;\007\180\000\000\001?\003\028\003\019\001\247\003\018\000\000\001+\000\000\003\030\006X\002\159\002\160\001\209\000\000\001M\000\000\001<\000\000\000\000\000\000\000\000\000\000\000\000\006Y\006Z\002\240\006[\003\030\002\159\002\160\001\209\000\000\000\000\001>\003\016\002\241\003\022\000\000\000\000\000\000\000\000\006\240\003\028\002\240\001\247\003\018\000\000\000\000\003\011\000\000\001?\006\157\000\000\002\241\003\165\001\209\001+\003\r\001V\006\244\000\000\000\000\000\000\000\000\001M\001B\003\011\000\000\003\030\001r\002\163\000\000\003\015\000\254\000\000\000\000\003\182\001\226\006]\001\212\001\213\006_\000\000\001>\006d\006p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002K\006\155\001H\005\199\000\000\001Y\000\000\001?\000\000\000\000\002c\003\019\000\000\001+\002g\000\000\001+\000\000\000\000\000\000\006\156\000\000\001B\000\000\003\r\000\000\000\000\003\187\003\203\003\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\163\000\000\003\015\000\254\000\000\003\r\003\016\000\000\003\022\000\000\000\000\000\000\000\000\000\000\003\028\001H\001\247\003\018\002\163\000\000\003\015\000\254\003\165\001\209\002h\000\000\002\159\002\160\001\209\000\000\001\235\000\000\000\000\000\000\003\019\001B\001\208\001\209\002i\000\000\003\030\002\240\000\000\001\218\003\182\001\226\000\254\001\212\001\213\000\000\000\000\002\241\003\019\000\000\000\000\000\000\000\000\b\001\001\210\001\226\000\000\001\212\001\213\000\000\003\011\001H\003\016\000\000\003\022\000\000\000\000\000\000\000\000\000\000\003\028\000\000\001\247\003\018\003\207\006\255\000\000\000\000\000\000\007\135\003\016\000\000\003\022\000\000\003\187\003\203\003\204\000\000\003\028\000\000\001\247\003\018\000\000\000\000\002K\000\000\003\030\006b\000\000\001\227\000\000\001\228\002\191\000\000\002c\001\237\000\000\000\000\002g\000\000\001+\000\000\000\000\001\238\003\030\001\247\001\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235\000\000\000\000\000\000\000\000\003\r\000\000\000\000\002\159\002\160\001\209\000\000\000\000\001\218\001\235\000\000\000\254\000\000\002\163\000\000\003\015\000\254\000\000\002\240\000\000\000\000\000\000\001\218\000\000\000\000\000\254\002h\000\000\002\241\000\000\002\159\002\160\001\209\004_\b\003\000\000\001\208\001\209\000\000\000\000\002i\003\011\000\000\003\207\007!\002\240\000\000\003\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\241\000\000\000\000\001\210\001\226\000\000\001\212\001\213\000\000\000\000\000\000\000\000\000\000\003\011\000\000\000\000\000\000\000\000\000\000\001\237\000\000\000\000\000\000\000\000\003\016\000\000\003\022\001\238\000\000\001\247\001\216\000\000\003\028\001\237\001\247\003\018\000\000\000\000\000\000\000\000\000\000\001\238\000\000\001\247\001\216\000\000\000\000\000\000\001\227\000\000\001\228\001\251\000\000\000\000\000\000\003\r\000\000\000\000\003\030\000\000\000\000\000\000\000\000\002\159\002\160\001\209\000\000\000\000\002\163\000\000\003\015\000\254\000\000\000\000\000\000\000\000\000\000\000o\002\240\000\000\000\000\000\000\003\r\001\208\001\209\000\000\000\000\001\235\002\241\000\000\000\000\000\000\000\000\000\000\000\000\002\163\000\000\003\015\000\254\000\000\001\218\003\011\003\019\000\254\000\000\001\210\001\226\000\000\001\212\001\213\000\000\000\000\000\000\0013\000\000\002$\001\143\000\000\000\000\000\000\001;\001O\000\000\0013\000\000\000\000\001\143\000\000\000\000\003\019\001;\001O\000\000\000\000\003\016\000\000\003\022\000\000\001\144\001<\000\000\000\000\003\028\000\000\001\247\003\018\001\168\000\000\001\144\001<\001\227\000\000\001\228\002\024\000\000\000\000\001\166\000\000\000\000\000\000\000\000\003\016\000\000\005E\000\000\000\000\001\237\000\000\003\030\003\028\003\r\001\247\003\018\000\000\001\238\000\000\001\247\001\216\001\208\001\209\000\000\000\000\000\000\002\163\000\000\003\015\000\254\001M\000\000\001\235\000\000\000\000\000\000\000\000\000\000\003\030\000\000\001M\000\000\000\000\001\210\001\226\001\218\001\212\001\213\000\254\001>\000\000\000\000\001\149\002\021\000\000\000\000\000\000\000\000\000\000\001>\003\019\000\000\001\149\000\000\000\000\000\000\001?\000\000\000\000\000\000\000\000\000\000\001+\000\000\000\000\000\000\001?\000\000\000\000\000\000\000\000\007Q\001+\000\000\000\000\000\000\000\000\000\000\001\227\000\000\001\228\002\024\003\016\000\000\005+\000\000\000\000\000\000\000\000\007R\003\028\000\000\001\247\003\018\007T\000\000\000\000\000\000\000\000\000\000\000\000\001\237\000\000\007U\000\000\000\000\000\000\000\000\000\000\001\238\000\000\001\247\001\216\000\000\001V\0013\003\030\001\235\001\143\000\000\0013\001B\001;\001O\001V\001\159\000\000\001;\001O\000\000\001\218\001B\000\000\000\254\007V\001\159\000\000\000\000\000\000\000\000\001\144\001<\0013\000\000\000\000\001\143\001<\000\000\001\145\001;\001O\001H\000\000\000\000\001Y\000\000\001\153\000\000\000\000\001\208\001\209\001H\000\000\000\000\001Y\000\000\000\000\001\144\001<\000\000\000\000\000\000\007W\000\000\000\000\001\164\000\000\002\159\002\160\001\209\000\000\001\210\001\226\000\000\001\212\001\213\007X\000\000\000\000\001M\000\000\002\026\002\240\000\000\001M\000\000\001\237\001\208\001\209\000\000\000\000\000\000\002\241\000\000\001\238\000\000\001\247\001\216\001>\000\000\000\000\001\149\007Y\001>\000\000\003\011\001M\000\000\000\000\001\210\001\226\000\000\001\212\001\213\000\000\001?\001\227\007Z\001\228\002\024\001?\001+\000\000\000\000\000\000\001>\001+\000\000\001\149\000\000\007[\000\000\000\000\007]\000\000\000\000\007b\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\000\000\007d\000\000\001+\000\000\000\000\000\000\000\000\000\000\001\227\001\235\001\228\002\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007e\000\000\000\000\001\218\001\208\001\209\000\254\000\000\001V\003\r\000\000\000\000\000\000\001V\000\000\001B\000\000\000\000\000\000\001\159\001B\000\000\002\163\000\000\003\015\000\254\001\210\001\226\001\235\001\212\001\213\000\000\000\000\000\000\000\000\001V\000\000\000\000\000\000\001\208\001\209\001\218\001B\000\000\000\254\001H\001\159\000\000\001Y\000\000\001H\000\000\004[\001\157\000\000\000\000\003\019\000\000\000\000\000\000\000\000\001\210\001\226\000\000\001\212\001\213\000\000\000\000\000\000\001\237\000\000\001\227\001H\001\228\002\200\001Y\000\000\001\238\000\000\001\247\001\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\016\000\000\004\187\000\000\000\000\000\000\001\138\000\000\003\028\000\000\001\247\003\018\000\000\001;\000\000\000\000\000\000\000\000\001\227\001\237\001\228\002\200\001\235\001\208\001\209\000\000\000\000\001\238\000\000\001\247\001\216\000\000\001<\000\000\003\030\001\218\000\000\000\000\000\254\000\000\000\000\002\159\002\160\001\209\000\000\001\210\001\226\000\000\001\212\001\213\000\000\000\000\000\000\002\159\002\160\001\209\002\240\001\235\000\000\000\000\002\159\002\160\001\209\000\000\000\000\000\000\002\241\002\209\002\240\000\000\001\218\000\000\000\000\000\254\000\000\002\240\000\000\000\000\002\241\003\011\002\159\002\160\001\209\000\000\000\000\002\241\000\000\000\000\000\000\000\000\001\227\003\011\001\228\003\137\000\000\002\240\000\000\000\000\003\011\001>\000\000\001\237\002\206\000\000\000\000\002\241\000\000\000\000\000\000\001\238\000\000\001\247\001\216\000\000\000\000\000\000\001?\000\000\003\011\000o\000\000\000\000\001+\000\000\000\000\000\000\000\000\000\000\000\000\001\235\000\000\000\000\000\000\000\000\000\000\000\000\001\237\000\000\000\000\000\000\000\000\000\000\001\218\007\202\001\238\000\254\001\247\001\216\003\r\000\000\001;\007\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\r\002\163\000\000\003\015\000\254\000\000\000\000\003\r\000\000\001<\000\000\000\000\000\000\002\163\000\000\003\015\000\254\000\000\000\000\000\000\002\163\001B\003\015\000\254\002\159\002\160\001\209\003\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\019\000\000\000\000\000\000\002\240\002\163\000\000\003\015\000\254\000\000\000\000\000\000\003\019\001\237\002\241\000\000\001H\000\000\000\000\003\019\000\000\001\238\001M\001\247\001\216\000\000\000\000\003\011\000\000\000\000\000\000\000\000\003\016\000\000\004-\000\000\000\000\000\000\000\000\003\019\003\028\001>\001\247\003\018\003\016\000\000\003\213\000\000\000\000\000\000\000\000\003\016\003\028\003\024\001\247\003\018\000\000\000\000\001?\003\028\000\000\001\247\003\018\000\000\001+\000\000\003\030\000\000\000\000\000\000\000\000\003\016\000\000\003\026\000\000\002\159\002\160\001\209\003\030\003\028\000\000\001\247\003\018\000\000\000\000\003\030\000\000\000\000\000\000\000\000\002\240\000\000\002\159\002\160\001\209\000\000\003\r\002\159\002\160\001\209\002\241\000\000\000\000\000\000\000\000\003\030\000\000\002\240\000\000\002\163\000\000\003\015\000\254\003\011\002\159\002\160\001\209\002\241\000\000\002\159\002\160\001\209\004\179\001B\000\000\000\000\000\000\000\000\000\000\002\240\003\011\002\159\002\160\001\209\002\240\000\000\002\159\002\160\001\209\002\241\000\000\000\000\000\000\003\019\002\241\000\000\002\240\000\000\000\000\000\000\000\000\002\240\003\011\001H\000\000\000\000\002\241\003\011\000\000\000\000\000\000\002\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\011\000\000\000\000\000\000\000\000\003\011\003\016\000\000\003\031\000\000\000\000\000\000\000\000\003\r\003\028\000\000\001\247\003\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\163\000\000\003\015\000\254\003\r\000\000\000\000\000\000\000\000\002\162\000\000\000\000\000\000\000\000\003\030\000\000\000\000\002\163\000\000\003\015\000\254\000\000\002\163\000\000\003\015\000\254\003\r\000\000\000\000\000\000\000\000\003\r\000\000\000\000\003\019\000\000\000\000\000\000\000\000\002\163\000\000\003\015\000\254\003\r\002\163\000\000\003\015\000\254\003\r\000\000\000\000\003\019\000\000\000\000\000\000\000\000\002\163\000\000\003\015\000\254\000\000\002\163\000\000\003\015\000\254\000\000\003\016\000\000\003&\000\000\000\000\000\000\000\000\003\019\003\028\000\000\001\247\003\018\003\019\000\000\000\000\000\000\000\000\003\016\000\000\003(\000\000\000\000\003\016\000\000\003\019\003\028\000\000\001\247\003\018\003\019\003\017\000\000\001\247\003\018\003\030\000\000\000\000\000\000\000\000\003\016\000\000\003*\000\000\000\000\003\016\000\000\003,\003\028\000\000\001\247\003\018\003\030\003\028\000\000\001\247\003\018\003\016\000\000\003.\000\000\000\000\003\016\000\000\0030\003\028\000\000\001\247\003\018\000\000\003\028\000\000\001\247\003\018\003\030\002\159\002\160\001\209\000\000\003\030\002\159\002\160\001\209\000\000\000\000\000\000\000\000\002\159\002\160\001\209\002\240\003\030\002\159\002\160\001\209\002\240\003\030\000\000\000\000\000\000\002\241\000\000\002\240\000\000\000\000\002\241\000\000\002\240\000\000\000\000\000\000\000\000\002\241\003\011\000\000\000\000\000\000\002\241\003\011\000\000\000\000\000\000\000\000\000\000\000\000\003\011\000\000\000\000\000\000\000\000\003\011\002\159\002\160\001\209\000\000\000\000\002\159\002\160\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\240\000\000\000\000\000\000\000\000\002\240\000\000\000\000\000\000\000\000\002\241\000\000\000\000\000\000\000\000\002\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\011\000\000\000\000\000\000\000\000\003\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\r\000\000\000\000\000\000\000\000\003\r\000\000\000\000\000\000\000\000\000\000\000\000\003\r\002\163\000\000\003\015\000\254\003\r\002\163\000\000\003\015\000\254\001\181\000\000\000\000\002\163\000\000\003\015\000\254\001;\002\163\000\000\003\015\000\254\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\160\001\209\000\000\000\000\000\000\000\000\003\019\001<\000\000\000\000\000\000\003\019\000\000\000\000\002\240\003\r\000\000\000\000\003\019\000\000\003\r\000\000\000\000\003\019\002\241\000\000\000\000\000\000\002\163\000\000\003\015\000\254\000\000\002\163\000\000\003\015\000\254\003\011\003\016\000\000\0032\000\000\000\000\003\016\000\000\0034\003\028\000\000\001\247\003\018\003\016\003\028\0036\001\247\003\018\003\016\000\000\0038\003\028\000\000\001\247\003\018\003\019\003\028\000\000\001\247\003\018\003\019\000\000\000\000\000\000\000\000\003\030\000\000\001>\000\000\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\003\030\000\000\000\000\000\000\000\000\003\030\000\000\001?\000\000\000\000\003\016\000\000\003:\001+\000\000\003\016\000\000\003<\003\028\000\000\001\247\003\018\003\r\003\028\000\000\001\247\003\018\002\159\002\160\001\209\000\000\000\000\002\159\002\160\001\209\002\163\000\000\003\015\000\254\002\159\002\160\001\209\002\240\000\000\003\030\000\000\000\000\002\240\000\000\003\030\000\000\000\000\002\241\000\000\002\240\000\000\000\000\002\241\000\000\000\000\002\159\002\160\001\209\000\000\002\241\003\011\000\000\000\000\000\000\003\019\003\011\000\000\001B\000\000\000\000\002\240\000\000\003\011\000\000\000\000\002\159\002\160\001\209\000\000\000\000\002\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\240\000\000\000\000\003\011\000\000\000\000\003\016\001H\003>\000\000\002\241\000\000\000\000\000\000\003\028\000\000\001\247\003\018\000\000\000\000\000\000\000\000\000\000\003\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\r\003\030\000\000\000\000\000\000\003\r\000\000\000\000\000\000\000\000\000\000\000\000\003\r\002\163\000\000\003\015\000\254\000\000\002\163\000\000\003\015\000\254\000\000\000\000\000\000\002\163\000\000\003\015\000\254\002\159\002\160\001\209\000\000\003\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\240\000\000\002\163\003\019\003\015\000\254\000\000\000\000\003\019\003\r\002\241\000\000\000\000\000\000\000\000\003\019\000\000\000\000\000\000\000\000\000\000\000\000\002\163\003\011\003\015\000\254\000\000\000\000\000\000\002\159\002\160\001\209\000\000\000\000\000\000\003\016\003\019\003@\000\000\000\000\003\016\000\000\003B\003\028\002\240\001\247\003\018\003\016\003\028\003D\001\247\003\018\000\000\000\000\002\241\003\028\003\019\001\247\003\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\011\003\016\003\030\003F\000\000\000\000\000\000\003\030\000\000\003\028\000\000\001\247\003\018\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\003\016\000\000\003H\000\000\003\r\000\000\001\208\001\209\003\028\000\000\001\247\003\018\000\000\000\000\003\030\003w\000\000\002\163\000\000\003\015\000\254\000\000\000\000\000\000\000\000\003z\000\000\000\000\001\210\003{\000\000\001\212\001\213\000\000\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\r\001\208\001\209\003\019\000\000\000\000\001\208\001\209\000\000\000\000\003w\000\000\000\000\002\163\000\000\003\015\000\254\000\000\000\000\000\000\003z\000\000\000\000\001\210\003{\000\000\001\212\001\213\001\210\001\226\000\000\001\212\001\213\001\208\001\209\003\016\000\000\003J\000\000\000\000\000\000\000\000\003w\003\028\000\000\001\247\003\018\003\019\000\000\000\000\000\000\000\000\003z\000\000\000\000\001\210\003{\000\000\001\212\001\213\000\000\000\000\000\000\000\000\001\217\000\000\000\000\000\000\000\000\003\030\000\000\000\000\000\000\001\227\000\000\001\228\003n\001\218\000\000\003\016\000\254\003L\000\000\000\000\000\000\000\000\000\000\003\028\000\000\001\247\003\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000o\000\000\000\000\000\000\000\000\001\217\000\000\000\000\000\000\000\000\001\235\003\030\000\000\000\000\000\000\003|\000\000\000\000\001\218\000\000\000\000\000\254\000\000\001\218\000\000\000\000\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\143\001\217\001\208\001\209\000\000\001\237\000\000\001\208\001\209\000\000\000\000\003w\000\000\001\246\001\218\001\247\001\216\000\254\000\000\000\000\000\000\003z\003|\000\000\001\210\003{\000\000\001\212\001\213\001\210\001\226\000\000\001\212\001\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003~\000\000\000\000\001\208\001\209\001\237\000\000\000\000\000\000\000\000\001\237\003|\003\148\001\246\000\000\001\247\001\216\000\000\001\238\000\000\001\247\001\216\000\000\000\000\000\000\001\210\003{\000\000\001\212\001\213\000\000\001\227\003}\001\228\002\200\007Q\000\000\001\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\246\000\000\001\247\001\216\000\000\001\208\001\209\000\000\bU\002\159\002\160\001\209\000\000\007T\003\148\000\000\000\000\000\000\000\000\000\000\001\217\000\000\007U\000\000\002\240\001\235\000\000\001\210\003{\000\000\001\212\001\213\000\000\001\218\002\241\000\000\000\254\000\000\001\218\000\000\000\000\000\254\000\000\000\000\000\000\000\000\000\000\003\011\000\000\000\000\002\159\002\160\001\209\007V\002\159\002\160\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\217\002\240\000\000\000\000\000\000\002\240\003\135\000\000\000\000\003|\000\000\002\241\000\000\001\218\000\000\002\241\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\011\003\151\003\152\007W\003\011\000\000\003\130\000\000\000\000\000\000\000\000\001\237\000\000\000\000\000\000\000\000\001\237\007X\000\000\001\246\000\000\001\247\001\216\001\217\001\238\000\000\001\247\001\216\003\r\003\153\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\254\bV\002\163\000\000\003\015\000\254\000\000\000\000\000\000\003\151\003\154\000\000\000\000\000\000\000\000\006;\001\237\000\000\000\000\007Z\000\000\000\000\001;\000\000\001\246\000\000\001\247\001\216\000\000\000\000\003\r\000\000\007[\000\000\003\r\007]\003\019\003\153\007b\000\000\000\000\001<\000\000\002\163\000\000\003\015\000\254\002\163\007d\003\015\000\254\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\160\001\209\000\000\000\000\000\000\001\237\000\000\000\000\000\000\007e\003\016\000\000\003\248\001\246\002\240\001\247\001\216\000\000\003\028\003\019\001\247\003\018\000\000\003\019\002\241\000\000\000\000\000\000\000\000\000\000\000\000\006=\000\000\000\000\000\000\000\000\000\000\003\011\000\000\000\000\000\000\000\000\000\000\000\000\003\030\002\159\002\160\001\209\000\000\000\000\001>\003\016\000\000\003\254\000\000\003\016\000\000\004\004\000\000\003\028\002\240\001\247\003\018\003\028\000\000\001\247\003\018\006@\000\000\000\000\002\241\000\000\000\000\001+\001.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\011\000\000\003\030\000\000\000\000\000\000\003\030\002\159\002\160\001\209\000\000\000\000\002\159\002\160\001\209\000\000\000\000\000\000\000\000\002\159\002\160\001\209\002\240\003\r\000\000\000\000\000\000\002\240\000\000\000\000\000\000\000\000\002\241\000\000\002\240\000\000\002\163\002\241\003\015\000\254\002\159\002\160\001\209\000\000\002\241\003\011\000\000\000\000\000\000\006C\003\011\000\000\000\000\000\000\000\000\002\240\000\000\003\011\002\159\002\160\001\209\000\000\000\000\000\000\006\011\002\241\006H\000\000\006E\003\r\003\019\000\000\000\000\002\240\000\000\000\000\000\000\000\000\003\011\001H\000\000\000\000\002\163\002\241\003\015\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\011\000\000\000\000\000\000\000\000\000\000\003\016\000\000\004\n\000\000\000\000\000\000\000\000\000\000\003\028\000\000\001\247\003\018\003\r\000\000\003\019\000\000\000\000\003\r\000\000\000\000\000\000\000\000\000\000\000\000\003\r\002\163\000\000\003\015\000\254\000\000\002\163\000\000\003\015\000\254\003\030\000\000\000\000\002\163\000\000\003\015\000\254\000\000\000\000\000\000\000\000\003\r\003\016\000\000\004\015\000\000\002\159\002\160\001\209\000\000\003\028\000\000\001\247\003\018\002\163\003\019\003\015\000\254\000\000\003\r\003\019\002\240\000\000\000\000\000\000\000\000\000\000\003\019\000\000\000\000\000\000\002\241\002\163\000\000\003\015\000\254\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\011\000\000\000\000\003\016\003\019\004\020\001\208\001\209\003\016\000\000\004\027\003\028\000\000\001\247\003\018\003\016\003\028\004 \001\247\003\018\000\000\000\000\003\019\003\028\000\000\001\247\003\018\000\000\001\210\001\226\000\000\001\212\001\213\000\000\000\000\000\000\003\016\003\030\004%\000\000\000\000\000\000\003\030\000\000\003\028\000\000\001\247\003\018\000\000\003\030\000\000\000\000\000\000\000\000\003\016\000\000\004(\000\000\000\000\000\000\000\000\000\000\003\028\000\000\001\247\003\018\002\159\002\160\001\209\003\r\003\030\002'\001\209\001\227\000\000\001\228\002\191\000\000\000\000\000\000\000\000\002\240\002\163\000\000\003\015\000\254\000\000\000\000\003\030\000\000\000\000\002\241\000\000\001\210\002\180\000\000\001\212\001\213\000\000\000\000\000\000\000\000\000\000\000\000\003\011\002\159\002\160\001\209\000\000\000\000\000\000\000\000\001\235\000\000\000\000\000\000\003\019\002\159\002\160\001\209\002\240\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\254\000\000\002\241\000\000\002\240\000\000\000\000\000\000\004^\004f\003\203\003\204\000\000\000\000\002\241\003\011\000\000\000\000\000\000\000\000\003\016\000\000\004b\000\000\000\000\000\000\000\000\003\011\003\028\000\000\001\247\003\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\213\000\000\000\000\000\000\000\000\003\r\000\000\001;\007\214\001\235\000\000\000\000\000\000\000\000\003\030\000\000\000\000\000\000\002\163\000\000\003\015\000\254\001\218\001\237\000\000\000\254\001<\000\000\000\000\000\000\000\000\001\238\000\000\001\247\001\216\000\000\000\000\000\000\000\000\000\000\002\159\002\160\001\209\000\000\003\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\019\004m\000\000\002\240\003\r\002\163\000\000\003\015\000\254\000\000\000\000\000\000\000\000\002\241\000\000\000\000\000\000\002\163\000\000\003\015\000\254\000\000\001M\002\159\002\160\001\209\003\011\000\000\000\000\000\000\001\208\001\209\003\016\000\000\004d\000\000\001\237\000\000\002\240\003\019\003\028\001>\001\247\003\018\001\238\000\000\001\247\001\216\002\241\000\000\000\000\003\019\001\210\003t\000\000\001\212\001\213\000\000\001?\000\000\000\000\003\011\000\000\000\000\001+\000\000\003\030\000\000\000\000\000\000\000\000\003\016\000\000\004|\002\159\002\160\001\209\000\000\000\000\003\028\000\000\001\247\003\018\003\016\000\000\004\133\000\000\000\000\000\000\002\240\000\000\003\028\000\000\001\247\003\018\003\r\000\000\000\000\000\000\002\241\000\000\000\000\000\000\000\000\000\000\003\030\0013\000\000\002\163\001\160\003\015\000\254\003\011\001;\001O\000\000\000\000\003\030\000\000\000\000\000\000\000\000\000\000\001B\000\000\000\000\000\000\000\000\000\000\000\000\003\r\001\162\001<\000\000\001\208\001\209\001\217\000\000\006\004\000\000\000\000\000\000\003\019\002\163\000\000\003\015\000\254\000\000\000\000\001\218\000\000\000\000\000\254\001H\000\000\000\000\001\210\001\226\000\000\001\212\001\213\000\000\000\000\000\000\000\000\000\000\000\000\001\208\001\209\000\000\000\000\000\000\000\000\000\000\003\016\000\000\004\135\003\019\000\000\000\000\001M\003\r\003\028\000\000\001\247\003\018\000\000\000\000\000\000\001\210\001\226\000\000\001\212\001\213\002\163\000\000\003\015\000\254\000\000\001>\000\000\001\227\001\149\001\228\b?\000\000\bA\000\000\003\030\003\016\000\000\004\137\000\000\000\000\000\000\001\237\001?\003\028\000\000\001\247\003\018\000\000\001+\001\246\0013\001\247\001\216\001\160\003\019\000\000\000\000\001;\001O\000\000\001\227\000\000\001\228\007{\000\000\0013\001\235\000\000\001\143\003\030\000\000\000\000\001;\001O\000\000\001\162\001<\000\000\000\000\001\218\000\000\000\000\000\254\000\000\000\000\000\000\003\016\000\000\004\151\000\000\001\148\001<\000\000\000\000\003\028\000\000\001\247\003\018\000\000\001\235\001V\000\000\000\000\000\000\001\208\001\209\000\000\001B\000\000\000\000\000\000\006:\001\218\000\000\000\000\000\254\000\000\000\000\001\187\000\000\003\030\000\000\000\000\000\000\001M\001;\001\210\001\226\000\000\001\212\001\213\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\000\001M\001Y\000\000\000\000\001>\001<\001\237\001\149\000\000\000\000\000\000\000\000\000\000\000\000\001\238\000\000\001\247\001\216\000\000\001>\000\000\001?\001\149\000\000\000\000\000\000\000\000\001+\000\000\001\208\001\209\000\000\001\227\000\000\001\228\002\028\001?\000\000\000\000\001\237\000\000\000\000\001+\001\208\001\209\000\000\000\000\001\238\000\000\001\247\001\216\001\210\001\226\000\000\001\212\001\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\210\001\226\000\000\001\212\001\213\000\000\001\235\001>\000\000\000\000\002\159\002\160\001\209\000\000\001V\000\000\000\000\000\000\000\000\001\218\000\000\001B\000\254\000\000\001?\001\159\000\000\000\000\000\000\001V\001+\001\227\000\000\001\228\002\016\002\161\001B\000\000\000\000\000\000\001\159\000\000\001\208\001\209\000\000\001\227\000\000\001\228\002\r\000\000\000\000\001H\000\000\000\000\001Y\000\000\001\208\001\209\000\000\000\000\000\000\000\000\000\000\000\000\001\210\001\226\001H\001\212\001\213\001Y\001\235\000\000\000\000\000\000\000\000\000\000\001\208\001\209\001\210\001\226\000\000\001\212\001\213\001\218\001\235\001\237\000\254\000\000\000\000\001B\000\000\000\000\000\000\001\238\000\000\001\247\001\216\001\218\001\210\001\226\000\254\001\212\001\213\000\000\000\000\000\000\000\000\000\000\000\000\001\227\000\000\001\228\001\230\000\000\001\208\001\209\000\000\002\162\000\000\001H\000\000\000\000\000\000\001\227\000\000\001\228\001\233\000\000\000\000\000\000\002\163\000\000\003\015\000\254\000\000\000\000\001\210\001\226\000\000\001\212\001\213\000\000\000\000\001\227\000\000\001\228\001\236\000\000\001\235\001\237\000\000\000\000\000\000\000\000\001\208\001\209\000\000\001\238\000\000\001\247\001\216\001\218\001\235\001\237\000\254\000\000\000\000\000\000\000\000\000\000\000\000\001\238\000\000\001\247\001\216\001\218\001\210\001\226\000\254\001\212\001\213\001\227\001\235\001\228\002\012\000\000\001\208\001\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\003\016\000\000\000\254\000\000\000\000\000\000\000\000\000\000\003\017\000\000\001\247\003\018\001\210\001\226\000\000\001\212\001\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235\001\227\000\000\001\228\002\000\000\000\000\000\001\237\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\238\000\254\001\247\001\216\000\000\000\000\001\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\238\000\000\001\247\001\216\001\227\000\000\001\228\002\b\000\000\001\208\001\209\001\235\001\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\238\000\000\001\247\001\216\001\218\000\000\000\000\000\254\000\000\001\208\001\209\001\210\001\226\000\000\001\212\001\213\000\000\000\000\003\161\000\000\000\000\000\000\000\000\001\235\001\208\001\209\000\000\000\000\000\000\000\000\001\237\001\210\003{\000\000\001\212\001\213\001\218\000\000\001\238\000\254\001\247\001\216\000\000\000\000\000\000\000\000\001\210\001\226\000\000\001\212\001\213\001\208\001\209\000\000\000\000\000\000\001\227\000\000\001\228\002\230\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\237\000\000\000\000\001\210\001\226\000\000\001\212\001\213\001\238\000\000\001\247\001\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\227\000\000\001\228\003`\001\235\000\000\000\000\000\000\000\000\000\000\000\000\001\237\000\000\000\000\000\000\000\000\000\000\001\218\000\000\001\238\000\254\001\247\001\216\000\000\001\217\000\000\000\000\001\227\000\000\001\228\003\192\000\000\000\000\000\000\000\000\001\208\001\209\001\218\000\000\001\235\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\164\000\000\000\000\001\218\000\000\000\000\000\254\000\000\001\210\001\226\000\000\001\212\001\213\000\000\001\208\001\209\000\000\001\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\153\000\000\001\218\000\000\000\000\000\254\001\237\000\000\001\210\001\226\000\000\001\212\001\213\000\000\001\238\000\000\001\247\001\216\000\000\000\000\001\208\001\209\000\000\000\000\000\000\001\227\001\237\001\228\003\195\000\000\000\000\000\000\000\000\000\000\001\246\000\000\001\247\001\216\002\159\002\160\001\209\001\237\001\210\001\226\000\000\001\212\001\213\000\000\000\000\001\238\000\000\001\247\001\216\001\227\000\000\001\228\003\198\000\000\000\000\000\000\000\000\000\000\000\000\004\162\001\235\000\000\000\000\000\000\001\237\000\000\004\171\001\208\001\209\000\000\000\000\000\000\001\238\001\218\001\247\001\216\000\254\000\000\000\000\000\000\000\000\000\000\000\000\001\227\000\000\001\228\003\206\000\000\001\235\001\210\001\226\004\172\001\212\001\213\001\208\001\209\000\000\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\254\0013\000\000\000\000\000\000\000\000\000\000\000\000\001;\001O\000\000\000\000\001\210\001\226\000\000\001\212\001\213\000\000\001\235\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001<\000\000\001P\001\227\001\218\001\228\004\131\000\254\001\237\000\000\002\162\000\000\007\172\000\000\000\000\000\000\001\238\000\000\001\247\001\216\000\000\000\000\000\000\004\175\000\000\003\015\000\254\001\017\000\000\000\000\001\227\000\000\001\228\005u\000\000\000\000\001\237\000\000\001\208\001\209\000\000\000\000\001\235\000\000\001\238\0013\001\247\001\216\001M\000\000\000\000\000\000\001;\001O\000\000\001\218\000\000\000\000\000\254\000\000\001\210\003{\000\000\001\212\001\213\004\165\000\000\001n\000\000\001\235\001\237\001<\000\000\001P\000\000\000\000\000\000\000\000\001\238\000\000\001\247\001\216\001\218\007\206\001?\000\254\000\000\000\000\0013\003\016\001+\000\000\000\000\000\000\000\000\001;\001O\003\017\000\000\001\247\003\018\000\000\0013\000\000\000\000\000\000\000\000\000\000\000\000\001;\001O\000\000\000\000\000\000\001<\000\000\001P\000\000\000\000\001M\000\000\001\237\000\000\000\000\000\000\000\000\007\195\000\000\001<\001\238\001P\001\247\001\216\000\000\000\000\000\000\000\000\000\000\001n\000\000\001\175\000\000\001V\000\000\001\217\000\000\000\000\000\000\001\237\001B\000\000\000\000\000\000\001r\000\000\001?\001\238\001\218\001\247\001\216\000\254\001+\001M\000\000\0013\000\000\000\000\000\000\000\000\000\000\000\000\001;\001O\000\000\000\000\000\000\001M\000\000\000\000\001H\000\000\001n\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001<\000\000\001P\000\000\000\000\001n\000\000\004I\001?\0013\000\000\000\000\001]\000\000\001+\000\000\001;\001O\000\000\000\000\000\000\000\000\001?\001V\000\000\001\193\000\000\004O\001+\000\000\001B\000\000\001;\001\237\001r\001<\000\000\001P\000\000\001\208\001\209\001\246\000\000\001\247\001\216\000\000\000\000\001x\001M\000\000\000\000\001<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\001\210\003{\001Y\001\212\001\213\001V\001n\000\000\000\000\001\208\001\209\000\000\001B\000\000\000\000\000\000\001r\000\000\000\000\001V\000\000\000\000\001M\001?\001\208\001\209\001B\000\000\000\000\001+\001r\001\210\003{\000\000\001\212\001\213\000\000\000\000\000\000\000\000\000\000\001n\001H\000\000\000\000\001Y\001\210\003{\000\000\001\212\001\213\000\000\000\000\001\208\001\209\000\000\001H\001>\001?\001Y\000\000\000\000\000\000\000\000\001+\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\001\210\003{\000\000\001\212\001\213\001+\001V\006T\000\000\001\217\000\000\000\000\000\000\001B\000\000\000\000\0013\001r\000\000\000\000\000\000\000\000\001\218\001;\001O\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006U\000\000\006V\001\217\001V\001<\001H\000\000\000\000\001Y\000\000\001B\000\000\001\208\001\209\001r\001\218\005\129\001\217\000\254\000\000\000\000\000\000\000\000\000\000\004I\000\000\001B\000\000\000\000\000\000\001\218\005\249\006W\000\254\001\210\003{\000\000\001\212\001\213\000\000\001H\001\208\001\209\001Y\004K\000\000\001\217\000\000\000\000\000\000\001\237\000\000\001M\000\000\000\000\004I\001H\000\000\001\246\001\218\001\247\001\216\000\254\001\210\003{\000\000\001\212\001\213\000\000\006X\004I\001>\000\000\000\000\000\000\004J\000\000\000\000\000\000\000\000\000\000\001\237\000\000\006Y\006Z\000\000\006[\000\000\001?\001\246\004N\001\247\001\216\000\000\001+\000\000\001\237\000\000\000\000\004I\000\000\000\000\006;\000\000\001\246\000\000\001\247\001\216\000\000\001;\000\000\006\\\000\000\000\000\000\000\000\000\000\000\000\000\001\217\004R\000\000\000\000\000\000\000\000\000\000\001\237\000\000\000\000\001<\000\000\000\000\001\218\000\000\001\246\000\254\001\247\001\216\000\000\006]\001\208\001\209\006_\000\000\000\000\006d\006p\001V\001\217\000\000\000\000\000\000\000\000\000\000\001B\006\155\000\000\000\000\005\138\006\217\000\000\001\218\001\210\003{\000\254\001\212\001\213\000\000\000\000\000\000\000\000\000\000\004I\0013\006\156\000\000\000\000\006=\000\000\000\000\001;\001O\000\000\000\000\001H\000\000\0013\001Y\000\000\000\000\000\000\000\000\004T\001;\001O\0013\001>\000\000\001\237\001<\000\000\007D\001;\001O\000\000\000\000\001\246\000\000\001\247\001\216\003h\005\129\001<\006@\000\000\000\000\000\000\001;\000\000\001+\001.\001<\000\000\000\000\005\129\000\000\006\214\001\237\000\000\000\000\000\000\001\208\001\209\005\129\000\000\001\246\001<\001\247\001\216\006\228\000\000\000\000\000\000\000\000\000\000\000\000\001\217\001M\006\238\000\000\006\241\000\000\007F\001\210\003{\000\000\001\212\001\213\000\000\001\218\001M\000\000\000\254\000\000\000\000\000\000\001>\000\000\000\000\001M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006C\001>\000\000\000\000\000\000\001?\000\000\000\000\000\000\000\000\001>\001+\001\208\001\209\000\000\006\011\000\000\006G\001?\006E\000\000\003|\000\000\000\000\001+\001>\000\000\001?\000\000\000\000\001H\000\000\000\000\001+\001\210\003{\000\000\001\212\001\213\001\208\001\209\000\000\001?\000\000\000\000\000\000\000\000\001\237\001+\000\000\000\000\000\000\000\000\000\000\000\000\001\246\000\000\001\247\001\216\001\217\000\000\001\210\003{\001V\001\212\001\213\000\000\000\000\001\208\001\209\001B\000\000\001\218\000\000\005\138\000\254\001V\000\000\000\000\000\000\000\000\000\000\000\000\001B\000\000\001V\000\000\005\138\000\000\000\000\001\210\003{\001B\001\212\001\213\000\000\005\138\000\000\001\208\001\209\001H\000\000\000\000\001Y\000\000\000\000\000\000\001B\000\000\000\000\000\000\000\000\003|\001H\000\000\000\000\001Y\000\000\001\217\000\000\001\210\003{\001H\001\212\001\213\001Y\000\000\000\000\000\000\000\000\000\000\001\218\007Q\000\000\000\254\000\000\005\012\001H\001\237\000\000\000\000\000\000\000\000\001;\000\000\001\217\001\246\b^\001\247\001\216\b_\000\000\000\000\001\208\001\209\007T\000\000\000\000\001\218\000\000\000\000\000\254\001<\000\000\007U\000\000\000\000\000\000\000\000\000\000\000\000\007\012\000\000\000\000\001\217\001\210\003{\000\000\001\212\001\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\000\000\000\000\000\254\007Q\000\000\0013\000\000\007V\000\000\001\237\007\012\000\000\001;\001O\000\000\000\000\001\217\001\246\b^\001\247\001\216\b_\000\000\000\000\000\000\000\000\007T\000\000\000\000\001\218\000\000\001<\000\254\007\025\000\000\007U\001\237\000\000\000\000\007D\000\000\001>\000\000\002-\001\246\007W\001\247\001\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\007X\007\024\000\000\007Q\000\000\001+\001\237\007V\000\000\000\000\007D\000\000\001\217\000\000\001\246\000\000\001\247\001\216\b^\000\000\001M\b_\b`\000\000\000\000\001\218\007T\000\000\000\254\000\000\000\000\007E\000\000\000\000\000\000\007U\001\237\000\000\000\000\001>\000\000\007Z\000\000\000\000\001\246\007W\001\247\001\216\000\000\000\000\000\000\000\000\000\000\000\000\007[\000\000\001?\007]\000\000\007X\007b\007M\001+\000\000\001B\004S\007V\0013\000\000\0013\007d\000\000\000\000\000\000\001;\001O\001;\001O\000\000\000\000\000\000\bd\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007e\000\000\001\237\000\000\001<\001H\001<\000\000\000\000\000\000\001\246\007Z\001\247\001\216\000\000\007W\002\202\000\000\003p\000\000\000\000\000\000\000\000\000\000\007[\001V\000\000\007]\000\000\007X\007b\0013\001B\000\000\000\000\000\000\0020\000\000\001;\001O\007d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\bi\001M\000\000\001M\000\000\000\000\001<\000\000\007e\000\000\000\000\001H\000\000\000\000\001Y\000\000\000\000\000\000\003\139\007Z\001>\000\000\001>\000\000\000\000\000\000\0013\000\000\000\000\000\000\000\000\000\000\007[\001;\001O\007]\000\000\001?\007b\001?\000\000\000\000\000\000\001+\000\000\001+\000\000\000\000\007d\000\000\0013\000\000\001<\000\000\001M\000\000\000\000\001;\001O\000\000\000\000\000\000\000\000\000\000\003\156\000\000\000\000\007e\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\001<\0013\000\000\000\000\000\000\000\000\000\000\000\000\001;\001O\000\000\000\000\003\173\000\000\001?\000\000\000\000\000\000\000\000\001V\001+\001V\000\000\000\000\001M\000\000\001B\001<\001B\0013\002\205\000\000\002\003\006\004\000\000\000\000\001;\001O\000\000\000\000\000\000\000\000\000\000\001>\000\000\007Q\000\000\000\000\001M\000\000\000\000\000\000\000\000\000\000\000\000\001<\001H\000\000\001H\001Y\001?\001Y\000\000\007R\000\000\000\000\001+\001>\007T\000\000\000\000\000\000\001V\0013\000\000\001M\000\000\007U\0013\001B\001;\001O\000\000\002\003\001?\001;\001O\000\000\000\000\000\000\001+\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\001<\000\000\000\000\000\000\001M\001<\007\007\000\000\000\000\007V\001H\000\000\001?\001Y\000\000\000\000\000\000\000\000\001+\001V\000\000\000\000\000\000\001>\000\000\000\000\001B\000\000\000\000\0013\002\250\000\000\000\000\000\000\000\000\000\000\001;\001O\000\000\000\000\001?\000\000\000\000\001V\000\000\000\000\001+\007W\001M\000\000\001B\000\000\000\000\001M\002\250\001<\001H\000\000\000\000\001Y\000\000\007X\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\001V\000\000\001>\000\000\007Q\000\000\000\000\001B\000\000\000\000\001H\006\t\000\000\001Y\001?\000\000\000\000\007i\000\000\001?\001+\000\000\007R\0013\000\000\001+\000\000\007T\001V\000\000\001;\001O\007Z\001M\000\000\001B\007U\001H\000\000\006\022\001Y\000\000\006\025\000\000\000\000\007[\000\000\0013\007]\001<\000\000\007b\001>\000\000\001;\001O\000\000\000\000\000\000\000\000\000\000\007d\000\000\000\000\000\000\001H\000\000\007V\001Y\001?\000\000\000\000\001V\001<\000\000\001+\000\000\001V\000\000\001B\007e\000\000\000\000\006\t\001B\004\240\000\000\000\000\006\022\000\000\000\000\0075\b#\000\000\0013\000\000\000\000\001M\000\000\007\183\000\000\001;\001O\0013\000\000\007W\000\000\000\000\000\000\001H\001;\001O\001Y\000\000\001H\000\000\001>\001Y\000\000\007X\001<\001M\000\000\000\000\000\000\000\000\000\000\001V\000\000\001<\000\000\000\000\000\000\001?\001B\000\000\000\000\000\000\001\196\001+\001>\000\000\000\000\0067\0013\007r\000\000\000\000\000\000\000\000\001;\001;\001O\000\000\000\000\000\000\000\000\001?\0013\000\000\007Z\000\000\000\000\001+\001H\001;\001O\001Y\001M\001<\001<\000\000\000\000\007[\000\000\000\000\007]\001M\000\000\007b\000\000\000\000\000\000\000\000\001<\000\000\000\000\001>\000\000\007d\000\000\001V\000\000\000\000\000\000\000\000\001>\000\000\001B\000\000\000\000\000\000\b$\000\000\001?\000\000\000\000\000\000\007e\000\000\001+\000\000\000\000\001?\000\000\001V\000\000\000\000\001M\001+\000\000\000\000\001B\000\000\000\000\000\000\000\000\000\000\001H\000\000\000\000\001Y\001M\000\000\000\000\0013\001>\001>\000\000\000\000\000\000\000\000\001;\001O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\001H\001?\001?\004\247\000\000\0013\000\000\001+\001+\001<\001V\000\000\001;\001O\000\000\000\000\001?\001B\000\000\001V\000\000\001W\001+\000\000\000\000\000\000\001B\0013\000\000\0013\001g\001<\000\000\000\000\001;\001O\001;\001O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\000\000\000\001Y\000\000\000\000\001<\0013\001<\001H\001M\000\000\001Y\001V\001;\001O\000\000\000\000\000\000\001B\001B\000\000\000\000\000\000\001u\000\000\000\000\001V\000\000\001>\000\000\000\000\001M\001<\001B\0013\000\000\000\000\001z\000\000\000\000\000\000\001;\001O\000\000\000\000\001?\000\000\000\000\001H\001H\001>\001+\001Y\001M\000\000\001M\000\000\000\000\000\000\000\000\001<\000\000\006>\001H\000\000\000\000\001Y\001?\000\000\001;\000\000\000\000\001>\001+\001>\000\000\000\000\000\000\0013\000\000\001M\000\000\000\000\000\000\000\000\001;\001O\000\000\001<\001?\000\000\001?\000\000\000\000\000\000\001+\000\000\001+\000\000\001>\000\000\000\000\000\000\001V\001<\0013\000\000\000\000\001M\000\000\001B\000\000\001;\001O\001\177\000\000\001?\000\000\000\000\000\000\000\000\000\000\001+\000\000\000\000\001V\000\000\001>\002\159\002\160\001\209\001<\001B\000\000\000\000\000\000\002/\000\000\000\000\000\000\001H\000\000\000\000\001Y\001?\000\000\000\000\001V\000\000\001V\001+\000\000\001M\002\235\001B\001>\001B\000\000\002Y\000\000\002[\000\000\001H\000\000\000\000\001Y\000\000\000\000\000\000\0013\000\000\001>\001?\000\000\001V\000\000\001;\001O\001+\001M\000\000\001B\000\000\000\000\001H\002\182\001H\001Y\001?\001Y\000\000\000\000\000\000\000\000\001+\001<\0013\000\000\001>\000\000\000\000\000\000\001V\001;\001O\000\000\000\000\000\000\000\000\001B\000\000\001H\000\000\002\204\001Y\001?\000\000\000\000\0013\000\000\000\000\001+\001<\0013\000\000\001;\001O\000\000\000\000\000\000\001;\001O\000\000\000\000\000\000\002\162\000\000\001B\000\000\001H\000\000\000\000\001Y\001M\001<\000\000\001V\000\000\002\163\001<\003\015\000\254\000\000\001B\000\000\000\000\000\000\002\247\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\001H\0013\000\000\001M\000\000\000\000\001V\000\000\001;\001O\000\000\000\000\001?\001B\000\000\000\000\001H\002\252\001+\001Y\000\000\000\000\001>\000\000\000\000\001M\000\000\001<\0013\000\000\001M\000\000\000\000\000\000\000\000\001;\001O\000\000\000\000\001?\000\000\000\000\000\000\001H\001>\001+\001Y\003\016\000\000\001>\000\000\000\000\000\000\000\000\001<\003\017\000\000\001\247\003\018\000\000\000\000\001?\000\000\000\000\000\000\000\000\001?\001+\000\000\000\000\001V\000\000\001+\000\000\000\000\001M\000\000\001B\000\000\0013\000\000\003l\000\000\000\000\000\000\000\000\001;\001O\0013\000\000\000\000\000\000\000\000\000\000\001>\001;\001O\001V\000\000\000\000\000\000\000\000\001M\000\000\001B\001<\007\178\001H\003r\000\000\001Y\001?\000\000\001;\001<\000\000\000\000\001+\000\000\001V\000\000\001>\000\000\000\000\001V\000\000\001B\000\000\000\000\000\000\003\141\001B\001<\000\000\001H\003\158\000\000\001Y\001?\0013\000\000\0013\000\000\000\000\001+\000\000\001;\001O\001;\001O\000\000\000\000\000\000\001M\000\000\000\000\001H\000\000\000\000\001Y\000\000\001H\001M\000\000\001Y\001<\0013\001<\000\000\001V\000\000\000\000\001>\001;\001O\000\000\001B\000\000\000\000\000\000\003\170\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001<\000\000\000\000\001+\001V\000\000\001?\001>\000\000\000\000\000\000\001B\001+\000\000\001H\003\175\000\000\001Y\000\000\0013\000\000\001M\000\000\001M\001?\000\000\001;\001O\006;\000\000\001+\000\000\000\000\000\000\000\000\001;\000\000\000\000\000\000\000\000\001>\001H\001>\000\000\001Y\001<\006;\000\000\001M\000\000\000\000\000\000\000\000\001;\001<\001V\000\000\001?\000\000\001?\000\000\000\000\001B\001+\001V\001+\003\184\001>\000\000\000\000\000\000\001B\001<\006;\000\000\005\131\000\000\000\000\000\000\000\000\001;\000\000\000\000\000\000\001?\000\000\000\000\000\000\000\000\001B\001+\000\000\001H\001M\000\000\001Y\000\000\000\000\000\000\001<\000\000\001H\006=\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\001V\000\000\001V\000\000\001H\006=\001>\001B\000\000\001B\000\000\005\226\000\000\005\238\001?\000\000\000\000\000\000\0013\000\000\001+\000\000\000\000\006@\001>\001;\001O\001V\000\000\001+\001.\000\000\006=\000\000\001B\000\000\000\000\001H\006\b\001H\001Y\006@\001Y\000\000\001<\0013\000\000\001+\001.\000\000\0013\001>\001;\001O\000\000\000\000\000\000\001;\001O\000\000\000\000\000\000\000\000\000\000\001H\000\000\000\000\001Y\006@\000\000\000\000\001<\001V\000\000\001+\001.\001<\000\000\000\000\001B\000\000\000\000\006;\006\024\000\000\000\000\000\000\000\000\006C\001;\006;\000\000\001M\000\000\0013\000\000\000\000\001;\000\000\000\000\000\000\001;\001O\006\011\000\000\006F\006C\006E\001<\001H\000\000\001>\001Y\000\000\000\000\000\000\001<\000\000\001H\001M\001<\006\011\000\000\006D\001M\006E\000\000\000\000\001?\002\159\002\160\001\209\000\000\006C\001+\000\000\001H\000\000\001>\000\000\000\000\000\000\000\000\001>\007\201\000\000\000\000\000\000\006\011\000\000\006P\001;\006E\000\000\002\237\001?\006=\000\000\000\000\000\000\001?\001+\000\000\001H\006=\000\000\001+\000\000\001M\000\000\001<\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\0013\001>\000\000\000\000\001V\001>\000\000\001;\001O\000\000\006@\001B\000\000\000\000\000\000\006\193\001+\001.\006@\000\000\000\000\000\000\001?\000\000\001+\001.\001<\000\000\001+\000\000\000\000\001V\0013\000\000\000\000\000\000\001V\000\000\001B\001;\001O\001H\006\211\001B\001Y\000\000\000\000\006\235\000\000\000\000\000\000\000\000\000\000\0013\002\162\001>\000\000\000\000\001<\000\000\001;\001O\000\000\000\000\000\000\000\000\000\000\002\163\001H\003\015\000\254\001Y\001?\001H\001M\006C\001Y\0013\001+\001<\001V\0013\000\000\006C\001;\001O\000\000\001B\001;\001O\006\011\007~\007'\001>\006E\000\000\000\000\000\000\006\011\000\000\007A\000\000\006E\001<\000\000\001H\001M\001<\007\212\000\000\001?\000\000\000\000\001H\000\000\001;\001+\001H\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001>\000\000\001M\000\000\000\000\000\000\000\000\0013\003\016\001<\000\000\000\000\001B\000\000\001;\001O\003\017\001?\001\247\003\018\000\000\001>\000\000\001+\000\000\000\000\001M\002\159\002\160\001\209\001M\000\000\000\000\001<\000\000\000\000\000\000\000\000\001?\000\000\000\000\000\000\001H\001V\001+\001>\002\159\002\160\001\209\001>\001B\000\000\003\003\000\000\007\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\002\159\002\160\001\209\001?\000\000\001+\000\000\000\000\003\014\001+\000\000\000\000\001V\001>\002\159\002\160\001\209\001H\001M\001B\001Y\000\000\000\000\007\197\000\000\003\029\000\000\000\000\000\000\000\000\001?\000\000\000\000\001V\000\000\000\000\001+\001>\000\000\003\241\001B\000\000\000\000\000\000\007\208\000\000\000\000\000\000\000\000\001H\000\000\000\000\001Y\000\000\001?\0013\000\000\001V\000\000\000\000\001+\001V\001;\001O\001B\000\000\000\000\000\000\001B\000\000\001H\002\162\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001<\000\000\000\000\002\163\000\000\003\015\000\254\000\000\000\000\002\162\000\000\000\000\000\000\001H\001B\000\000\001\155\001H\000\000\000\000\002T\000\000\002\163\000\000\003\015\000\254\002\162\000\000\000\000\000\000\000\000\001V\000\000\000\000\000\000\000\000\000\000\000\000\001B\002\163\002\162\003\015\000\254\000\000\001H\000\000\000\000\000\000\001M\000\000\000\000\000\000\000\000\002\163\000\000\003\015\000\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\001H\003\016\000\000\002V\000\000\000\000\000\000\000\000\000\000\003\017\000\000\001\247\003\018\000\000\000\000\000\000\001?\000\000\000\000\000\000\003\016\000\000\001+\000\000\000\000\000\000\000\000\000\000\003\017\000\000\001\247\003\018\000\000\000\000\000\000\000\000\000\000\003\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\001\247\003\018\000\000\000\000\003\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\001\247\003\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001V\000\000\000\000\000\000\000\000\000\000\000\000\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001H\000\000\000\000\004\242")) and semantic_action = [| @@ -1472,9 +1544,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4023 "parsing/parser.mly" +# 4165 "parsing/parser.mly" ( "+" ) -# 1478 "parsing/parser.ml" +# 1550 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1497,9 +1569,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4024 "parsing/parser.mly" +# 4166 "parsing/parser.mly" ( "+." ) -# 1503 "parsing/parser.ml" +# 1575 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1522,9 +1594,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 3530 "parsing/parser.mly" +# 3640 "parsing/parser.mly" ( _1 ) -# 1528 "parsing/parser.ml" +# 1600 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1569,24 +1641,24 @@ module Tables = struct let _endpos = _endpos_tyvar_ in let _v : (Parsetree.core_type) = let _1 = let _1 = -# 3533 "parsing/parser.mly" +# 3643 "parsing/parser.mly" ( Ptyp_alias(ty, tyvar) ) -# 1575 "parsing/parser.ml" +# 1647 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_tyvar_, _startpos_ty_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 1584 "parsing/parser.ml" +# 1656 "parsing/parser.ml" in -# 3535 "parsing/parser.mly" +# 3645 "parsing/parser.mly" ( _1 ) -# 1590 "parsing/parser.ml" +# 1662 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1632,30 +1704,30 @@ module Tables = struct let _v : (let_binding) = let attrs2 = let _1 = _1_inlined2 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 1638 "parsing/parser.ml" +# 1710 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 1647 "parsing/parser.ml" +# 1719 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2739 "parsing/parser.mly" +# 2814 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in mklb ~loc:_sloc false body attrs ) -# 1659 "parsing/parser.ml" +# 1731 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1678,9 +1750,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3896 "parsing/parser.mly" +# 4038 "parsing/parser.mly" ( _1 ) -# 1684 "parsing/parser.ml" +# 1756 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1703,9 +1775,123 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3897 "parsing/parser.mly" +# 4039 "parsing/parser.mly" ( Lident _1 ) -# 1709 "parsing/parser.ml" +# 1781 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 861 "parsing/parser.mly" + (string) +# 1802 "parsing/parser.ml" + ) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3737 "parsing/parser.mly" + ( Ptyp_constr(mkrhs (Lident _1) _sloc, []) ) +# 1815 "parsing/parser.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 1824 "parsing/parser.ml" + + in + +# 3739 "parsing/parser.mly" + ( _1 ) +# 1830 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.core_type) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.core_type) = +# 3741 "parsing/parser.mly" + ( _1 ) +# 1855 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (string) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (string Asttypes.loc) = let _1 = + let _1 = +# 4234 "parsing/parser.mly" + ( _1 ) +# 1881 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1077 "parsing/parser.mly" + ( mkloc _1 (make_loc _sloc) ) +# 1889 "parsing/parser.ml" + + in + +# 4236 "parsing/parser.mly" + ( _1 ) +# 1895 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1735,16 +1921,156 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.core_type) = Obj.magic _2 in + let _3 : (string Asttypes.loc) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (string) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (string Asttypes.loc) = let _1 = + let _1 = +# 4235 "parsing/parser.mly" + ( _1 ^ "." ^ _3.txt ) +# 1935 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1077 "parsing/parser.mly" + ( mkloc _1 (make_loc _sloc) ) +# 1944 "parsing/parser.ml" + + in + +# 4236 "parsing/parser.mly" + ( _1 ) +# 1950 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.payload) = Obj.magic _3 in + let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : (Parsetree.attribute) = let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4240 "parsing/parser.mly" + ( Builtin_attributes.mk_internal ~loc:(make_loc _sloc) _2 _3 ) +# 1999 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Parsetree.class_expr) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.class_expr) = +# 2039 "parsing/parser.mly" + ( _1 ) +# 2024 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : (Parsetree.class_expr) = Obj.magic _3 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.core_type) = -# 3626 "parsing/parser.mly" - ( _2 ) -# 1748 "parsing/parser.ml" + let _v : (Parsetree.class_expr) = let _2 = + let _1 = _1_inlined1 in + +# 4257 "parsing/parser.mly" + ( _1 ) +# 2065 "parsing/parser.ml" + + in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2041 "parsing/parser.mly" + ( wrap_class_attrs ~loc:_sloc _3 _2 ) +# 2074 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1757,14 +2083,56 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : (Parsetree.class_expr) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (let_bindings) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.class_expr) = let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2043 "parsing/parser.mly" + ( class_of_let_bindings ~loc:_sloc _1 _3 ) +# 2116 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined2; @@ -1792,51 +2160,146 @@ module Tables = struct }; }; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let _1_inlined3 : (Parsetree.module_type) = Obj.magic _1_inlined3 in + let _7 : (Parsetree.class_expr) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__7_ in + let _v : (Parsetree.class_expr) = let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 2181 "parsing/parser.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _4 = + let _1 = _1_inlined1 in + +# 4257 "parsing/parser.mly" + ( _1 ) +# 2190 "parsing/parser.ml" + + in + let _3 = +# 4157 "parsing/parser.mly" + ( Fresh ) +# 2196 "parsing/parser.ml" + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2045 "parsing/parser.mly" + ( let loc = (_startpos__2_, _endpos__5_) in + let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in + mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) ) +# 2206 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _7 : (Parsetree.class_expr) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.core_type) = let _4 = + let _endpos = _endpos__7_ in + let _v : (Parsetree.class_expr) = let _5 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3686 "parsing/parser.mly" - ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in - let descr = Ptyp_package (lid, cstrs) in - mktyp ~loc:_sloc ~attrs descr ) -# 1815 "parsing/parser.ml" +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 2278 "parsing/parser.ml" in - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _2 = - let _1 = _1_inlined1 in - -# 4115 "parsing/parser.mly" - ( _1 ) -# 1825 "parsing/parser.ml" - - in + let _endpos__5_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in -# 4128 "parsing/parser.mly" - ( _1, _2 ) -# 1831 "parsing/parser.ml" +# 4257 "parsing/parser.mly" + ( _1 ) +# 2287 "parsing/parser.ml" in - let _endpos = _endpos__5_ in + let _3 = +# 4158 "parsing/parser.mly" + ( Override ) +# 2293 "parsing/parser.ml" + in + let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3628 "parsing/parser.mly" - ( wrap_typ_attrs ~loc:_sloc (reloc_typ ~loc:_sloc _4) _3 ) -# 1840 "parsing/parser.ml" +# 2045 "parsing/parser.mly" + ( let loc = (_startpos__2_, _endpos__5_) in + let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in + mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) ) +# 2303 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1860,31 +2323,15 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : (Asttypes.label) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _2 : (Parsetree.attribute) = Obj.magic _2 in + let _1 : (Parsetree.class_expr) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 3631 "parsing/parser.mly" - ( Ptyp_var _2 ) -# 1873 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 1882 "parsing/parser.ml" - - in - -# 3663 "parsing/parser.mly" - ( _1 ) -# 1888 "parsing/parser.ml" + let _v : (Parsetree.class_expr) = +# 2049 "parsing/parser.mly" + ( Cl.attr _1 _2 ) +# 2335 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1896,35 +2343,57 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : unit = Obj.magic _1 in + let xs : ((Asttypes.arg_label * Parsetree.expression) list) = Obj.magic xs in + let _1 : (Parsetree.class_expr) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 3633 "parsing/parser.mly" - ( Ptyp_any ) -# 1914 "parsing/parser.ml" - in + let _endpos = _endpos_xs_ in + let _v : (Parsetree.class_expr) = let _1 = + let _1 = + let _2 = + let xs = +# 253 "" + ( List.rev xs ) +# 2370 "parsing/parser.ml" + in + +# 1149 "parsing/parser.mly" + ( xs ) +# 2375 "parsing/parser.ml" + + in + +# 2052 "parsing/parser.mly" + ( Pcl_apply(_1, _2) ) +# 2381 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos_xs_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 1922 "parsing/parser.ml" +# 1100 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 2391 "parsing/parser.ml" in -# 3663 "parsing/parser.mly" - ( _1 ) -# 1928 "parsing/parser.ml" +# 2055 "parsing/parser.mly" + ( _1 ) +# 2397 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1942,46 +2411,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in + let _1 : (Parsetree.extension) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let tid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 975 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 1959 "parsing/parser.ml" - - in - let tys = -# 3678 "parsing/parser.mly" - ( [] ) -# 1965 "parsing/parser.ml" - in - -# 3636 "parsing/parser.mly" - ( Ptyp_constr(tid, tys) ) -# 1970 "parsing/parser.ml" - - in + let _v : (Parsetree.class_expr) = let _1 = + let _1 = +# 2054 "parsing/parser.mly" + ( Pcl_extension _1 ) +# 2423 "parsing/parser.ml" + in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 1979 "parsing/parser.ml" +# 1100 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 2431 "parsing/parser.ml" in -# 3663 "parsing/parser.mly" - ( _1 ) -# 1985 "parsing/parser.ml" +# 2055 "parsing/parser.mly" + ( _1 ) +# 2437 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1994,59 +2446,73 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = self; + MenhirLib.EngineTypes.startp = _startpos_self_; + MenhirLib.EngineTypes.endp = _endpos_self_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in - let ty : (Parsetree.core_type) = Obj.magic ty in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let self : (string Asttypes.loc option) = Obj.magic self in + let _4 : (Parsetree.class_expr) = Obj.magic _4 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let tid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 975 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 2023 "parsing/parser.ml" - - in - let tys = -# 3680 "parsing/parser.mly" - ( [ty] ) -# 2029 "parsing/parser.ml" - in - -# 3636 "parsing/parser.mly" - ( Ptyp_constr(tid, tys) ) -# 2034 "parsing/parser.ml" - - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined2_ in + let _v : (Parsetree.class_field) = let _6 = + let _1 = _1_inlined2 in -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2044 "parsing/parser.ml" +# 4253 "parsing/parser.mly" + ( _1 ) +# 2492 "parsing/parser.ml" in + let _endpos__6_ = _endpos__1_inlined2_ in + let _3 = + let _1 = _1_inlined1 in + +# 4257 "parsing/parser.mly" + ( _1 ) +# 2501 "parsing/parser.ml" + + in + let _2 = +# 4157 "parsing/parser.mly" + ( Fresh ) +# 2507 "parsing/parser.ml" + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3663 "parsing/parser.mly" - ( _1 ) -# 2050 "parsing/parser.ml" +# 2104 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) +# 2516 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2059,88 +2525,80 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = self; + MenhirLib.EngineTypes.startp = _startpos_self_; + MenhirLib.EngineTypes.endp = _endpos_self_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; }; } = _menhir_stack in - let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in - let _3 : unit = Obj.magic _3 in - let xs : (Parsetree.core_type list) = Obj.magic xs in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let self : (string Asttypes.loc option) = Obj.magic self in + let _4 : (Parsetree.class_expr) = Obj.magic _4 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let tid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 975 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 2103 "parsing/parser.ml" - - in - let tys = - let tys = - let xs = -# 253 "" - ( List.rev xs ) -# 2111 "parsing/parser.ml" - in - -# 1137 "parsing/parser.mly" - ( xs ) -# 2116 "parsing/parser.ml" - - in - -# 3682 "parsing/parser.mly" - ( tys ) -# 2122 "parsing/parser.ml" - - in - -# 3636 "parsing/parser.mly" - ( Ptyp_constr(tid, tys) ) -# 2128 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__1_inlined3_ in + let _v : (Parsetree.class_field) = let _6 = + let _1 = _1_inlined3 in -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2138 "parsing/parser.ml" +# 4253 "parsing/parser.mly" + ( _1 ) +# 2578 "parsing/parser.ml" + + in + let _endpos__6_ = _endpos__1_inlined3_ in + let _3 = + let _1 = _1_inlined2 in + +# 4257 "parsing/parser.mly" + ( _1 ) +# 2587 "parsing/parser.ml" in + let _2 = +# 4158 "parsing/parser.mly" + ( Override ) +# 2593 "parsing/parser.ml" + in + let _endpos = _endpos__6_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3663 "parsing/parser.mly" - ( _1 ) -# 2144 "parsing/parser.ml" +# 2104 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) +# 2602 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2153,9 +2611,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -2170,32 +2628,32 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.object_field list * Asttypes.closed_flag) = Obj.magic _2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _2 : ((Asttypes.label Asttypes.loc * Asttypes.mutable_flag * + Parsetree.class_field_kind) * + Parsetree.attributes) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 3638 "parsing/parser.mly" - ( let (f, c) = _2 in Ptyp_object (f, c) ) -# 2184 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__1_inlined1_ in + let _v : (Parsetree.class_field) = let _3 = + let _1 = _1_inlined1 in -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2193 "parsing/parser.ml" +# 4253 "parsing/parser.mly" + ( _1 ) +# 2645 "parsing/parser.ml" in + let _endpos__3_ = _endpos__1_inlined1_ in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3663 "parsing/parser.mly" - ( _1 ) -# 2199 "parsing/parser.ml" +# 2107 "parsing/parser.mly" + ( let v, attrs = _2 in + let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_val v) ~attrs:(attrs@_3) ~docs ) +# 2657 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2208,42 +2666,49 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; } = _menhir_stack in - let _2 : unit = Obj.magic _2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _2 : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * + Parsetree.class_field_kind) * + Parsetree.attributes) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 3640 "parsing/parser.mly" - ( Ptyp_object ([], Closed) ) -# 2232 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__1_inlined1_ in + let _v : (Parsetree.class_field) = let _3 = + let _1 = _1_inlined1 in -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2241 "parsing/parser.ml" +# 4253 "parsing/parser.mly" + ( _1 ) +# 2700 "parsing/parser.ml" in + let _endpos__3_ = _endpos__1_inlined1_ in + let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3663 "parsing/parser.mly" - ( _1 ) -# 2247 "parsing/parser.ml" +# 2111 "parsing/parser.mly" + ( let meth, attrs = _2 in + let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_method meth) ~attrs:(attrs@_3) ~docs ) +# 2712 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2256,59 +2721,61 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in - let _2 : unit = Obj.magic _2 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _3 : (Parsetree.core_type * Parsetree.core_type) = Obj.magic _3 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__2_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 975 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 2285 "parsing/parser.ml" - - in - let tys = -# 3678 "parsing/parser.mly" - ( [] ) -# 2291 "parsing/parser.ml" - in - -# 3644 "parsing/parser.mly" - ( Ptyp_class(cid, tys) ) -# 2296 "parsing/parser.ml" - - in - let _startpos__1_ = _startpos__2_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined2_ in + let _v : (Parsetree.class_field) = let _4 = + let _1 = _1_inlined2 in -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2306 "parsing/parser.ml" +# 4253 "parsing/parser.mly" + ( _1 ) +# 2760 "parsing/parser.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + +# 4257 "parsing/parser.mly" + ( _1 ) +# 2769 "parsing/parser.ml" in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3663 "parsing/parser.mly" - ( _1 ) -# 2312 "parsing/parser.ml" +# 2115 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_constraint _3) ~attrs:(_2@_4) ~docs ) +# 2779 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2321,66 +2788,61 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in - let _2 : unit = Obj.magic _2 in - let ty : (Parsetree.core_type) = Obj.magic ty in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _3 : (Parsetree.expression) = Obj.magic _3 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 975 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 2357 "parsing/parser.ml" - - in - let tys = -# 3680 "parsing/parser.mly" - ( [ty] ) -# 2363 "parsing/parser.ml" - in - -# 3644 "parsing/parser.mly" - ( Ptyp_class(cid, tys) ) -# 2368 "parsing/parser.ml" - - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined2_ in + let _v : (Parsetree.class_field) = let _4 = + let _1 = _1_inlined2 in -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2378 "parsing/parser.ml" +# 4253 "parsing/parser.mly" + ( _1 ) +# 2827 "parsing/parser.ml" + + in + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = + let _1 = _1_inlined1 in + +# 4257 "parsing/parser.mly" + ( _1 ) +# 2836 "parsing/parser.ml" in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3663 "parsing/parser.mly" - ( _1 ) -# 2384 "parsing/parser.ml" +# 2118 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_initializer _3) ~attrs:(_2@_4) ~docs ) +# 2846 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2397,91 +2859,35 @@ module Tables = struct MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _3 : unit = Obj.magic _3 in - let xs : (Parsetree.core_type list) = Obj.magic xs in - let _1 : unit = Obj.magic _1 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : (Parsetree.extension) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 975 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 2444 "parsing/parser.ml" - - in - let tys = - let tys = - let xs = -# 253 "" - ( List.rev xs ) -# 2452 "parsing/parser.ml" - in - -# 1137 "parsing/parser.mly" - ( xs ) -# 2457 "parsing/parser.ml" - - in - -# 3682 "parsing/parser.mly" - ( tys ) -# 2463 "parsing/parser.ml" - - in - -# 3644 "parsing/parser.mly" - ( Ptyp_class(cid, tys) ) -# 2469 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _v : (Parsetree.class_field) = let _2 = + let _1 = _1_inlined1 in -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2479 "parsing/parser.ml" +# 4253 "parsing/parser.mly" + ( _1 ) +# 2880 "parsing/parser.ml" in + let _endpos__2_ = _endpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3663 "parsing/parser.mly" - ( _1 ) -# 2485 "parsing/parser.ml" +# 2121 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkcf ~loc:_sloc (Pcf_extension _1) ~attrs:_2 ~docs ) +# 2891 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2493,50 +2899,67 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.row_field) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _1 : (Parsetree.attribute) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.core_type) = let _1 = + let _endpos = _endpos__1_ in + let _v : (Parsetree.class_field) = let _1 = let _1 = -# 3647 "parsing/parser.mly" - ( Ptyp_variant([_2], Closed, None) ) -# 2525 "parsing/parser.ml" +# 2124 "parsing/parser.mly" + ( Pcf_attribute _1 ) +# 2917 "parsing/parser.ml" in - let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2534 "parsing/parser.ml" +# 1098 "parsing/parser.mly" + ( mkcf ~loc:_sloc _1 ) +# 2925 "parsing/parser.ml" in -# 3663 "parsing/parser.mly" - ( _1 ) -# 2540 "parsing/parser.ml" +# 2125 "parsing/parser.mly" + ( _1 ) +# 2931 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Parsetree.class_expr) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.class_expr) = +# 2019 "parsing/parser.mly" + ( _2 ) +# 2963 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2554,9 +2977,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -2572,54 +2995,33 @@ module Tables = struct }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let xs : (Parsetree.row_field list) = Obj.magic xs in - let _2 : unit = Obj.magic _2 in + let _4 : (Parsetree.class_expr) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.class_type) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let _3 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 2590 "parsing/parser.ml" - in - -# 1109 "parsing/parser.mly" - ( xs ) -# 2595 "parsing/parser.ml" - - in - -# 3692 "parsing/parser.mly" - ( _1 ) -# 2601 "parsing/parser.ml" - - in - -# 3649 "parsing/parser.mly" - ( Ptyp_variant(_3, Closed, None) ) -# 2607 "parsing/parser.ml" - - in + let _v : (Parsetree.class_expr) = let _1 = + let _1 = +# 2022 "parsing/parser.mly" + ( Pcl_constraint(_4, _2) ) +# 3010 "parsing/parser.ml" + in let _endpos__1_ = _endpos__4_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2617 "parsing/parser.ml" +# 1100 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 3019 "parsing/parser.ml" in -# 3663 "parsing/parser.mly" - ( _1 ) -# 2623 "parsing/parser.ml" +# 2025 "parsing/parser.mly" + ( _1 ) +# 3025 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2632,84 +3034,42 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let xs : (Parsetree.row_field list) = Obj.magic xs in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.row_field) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _2 : (Parsetree.class_expr) = Obj.magic _2 in + let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let _4 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 2680 "parsing/parser.ml" - in - -# 1109 "parsing/parser.mly" - ( xs ) -# 2685 "parsing/parser.ml" - - in - -# 3692 "parsing/parser.mly" - ( _1 ) -# 2691 "parsing/parser.ml" - - in - -# 3651 "parsing/parser.mly" - ( Ptyp_variant(_2 :: _4, Closed, None) ) -# 2697 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.class_expr) = let _1 = + let _1 = +# 2024 "parsing/parser.mly" + ( let (l,o,p) = _1 in Pcl_fun(l, o, p, _2) ) +# 3058 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2707 "parsing/parser.ml" +# 1100 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 3067 "parsing/parser.ml" in -# 3663 "parsing/parser.mly" - ( _1 ) -# 2713 "parsing/parser.ml" +# 2025 "parsing/parser.mly" + ( _1 ) +# 3073 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2722,77 +3082,49 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let xs : (Parsetree.row_field list) = Obj.magic xs in - let _2 : (unit option) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let e : (Parsetree.class_expr) = Obj.magic e in + let _2 : unit = Obj.magic _2 in + let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let _3 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 2763 "parsing/parser.ml" - in - -# 1109 "parsing/parser.mly" - ( xs ) -# 2768 "parsing/parser.ml" - - in - -# 3692 "parsing/parser.mly" - ( _1 ) -# 2774 "parsing/parser.ml" - - in - -# 3653 "parsing/parser.mly" - ( Ptyp_variant(_3, Open, None) ) -# 2780 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos_e_ in + let _v : (Parsetree.class_expr) = let _1 = + let _1 = +# 2080 "parsing/parser.mly" + ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) +# 3113 "parsing/parser.ml" + in + let _endpos__1_ = _endpos_e_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2790 "parsing/parser.ml" +# 1100 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 3122 "parsing/parser.ml" in -# 3663 "parsing/parser.mly" - ( _1 ) -# 2796 "parsing/parser.ml" +# 2081 "parsing/parser.mly" + ( _1 ) +# 3128 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2805,9 +3137,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -2816,271 +3148,31 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let e : (Parsetree.class_expr) = Obj.magic e in + let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.core_type) = let _1 = + let _endpos = _endpos_e_ in + let _v : (Parsetree.class_expr) = let _1 = let _1 = -# 3655 "parsing/parser.mly" - ( Ptyp_variant([], Open, None) ) -# 2829 "parsing/parser.ml" +# 2080 "parsing/parser.mly" + ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) +# 3161 "parsing/parser.ml" in - let _endpos__1_ = _endpos__2_ in + let _endpos__1_ = _endpos_e_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2838 "parsing/parser.ml" +# 1100 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 3170 "parsing/parser.ml" in -# 3663 "parsing/parser.mly" - ( _1 ) -# 2844 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let xs : (Parsetree.row_field list) = Obj.magic xs in - let _2 : (unit option) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let _3 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 2894 "parsing/parser.ml" - in - -# 1109 "parsing/parser.mly" - ( xs ) -# 2899 "parsing/parser.ml" - - in - -# 3692 "parsing/parser.mly" - ( _1 ) -# 2905 "parsing/parser.ml" - - in - -# 3657 "parsing/parser.mly" - ( Ptyp_variant(_3, Closed, Some []) ) -# 2911 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 2921 "parsing/parser.ml" - - in - -# 3663 "parsing/parser.mly" - ( _1 ) -# 2927 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs_inlined1; - MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_; - MenhirLib.EngineTypes.endp = _endpos_xs_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - } = _menhir_stack in - let _6 : unit = Obj.magic _6 in - let xs_inlined1 : (Asttypes.label list) = Obj.magic xs_inlined1 in - let _4 : unit = Obj.magic _4 in - let xs : (Parsetree.row_field list) = Obj.magic xs in - let _2 : (unit option) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = - let _5 = - let xs = xs_inlined1 in - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 2992 "parsing/parser.ml" - in - -# 1077 "parsing/parser.mly" - ( xs ) -# 2997 "parsing/parser.ml" - - in - -# 3720 "parsing/parser.mly" - ( _1 ) -# 3003 "parsing/parser.ml" - - in - let _3 = - let _1 = - let xs = -# 253 "" - ( List.rev xs ) -# 3011 "parsing/parser.ml" - in - -# 1109 "parsing/parser.mly" - ( xs ) -# 3016 "parsing/parser.ml" - - in - -# 3692 "parsing/parser.mly" - ( _1 ) -# 3022 "parsing/parser.ml" - - in - -# 3659 "parsing/parser.mly" - ( Ptyp_variant(_3, Closed, Some _5) ) -# 3028 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__6_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 3038 "parsing/parser.ml" - - in - -# 3663 "parsing/parser.mly" - ( _1 ) -# 3044 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.extension) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 3661 "parsing/parser.mly" - ( Ptyp_extension _1 ) -# 3070 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 3078 "parsing/parser.ml" - - in - -# 3663 "parsing/parser.mly" - ( _1 ) -# 3084 "parsing/parser.ml" +# 2081 "parsing/parser.mly" + ( _1 ) +# 3176 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3098,29 +3190,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : (string) = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (string Asttypes.loc) = let _1 = - let _1 = -# 4092 "parsing/parser.mly" - ( _1 ) -# 3110 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1005 "parsing/parser.mly" - ( mkloc _1 (make_loc _sloc) ) -# 3118 "parsing/parser.ml" - - in - -# 4094 "parsing/parser.mly" - ( _1 ) -# 3124 "parsing/parser.ml" + let _v : (Longident.t) = +# 4028 "parsing/parser.mly" + ( _1 ) +# 3201 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3150,32 +3227,19 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : (string Asttypes.loc) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (string) = Obj.magic _1 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.pattern) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (string Asttypes.loc) = let _1 = - let _1 = -# 4093 "parsing/parser.mly" - ( _1 ^ "." ^ _3.txt ) -# 3164 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__3_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1005 "parsing/parser.mly" - ( mkloc _1 (make_loc _sloc) ) -# 3173 "parsing/parser.ml" - - in + let _v : (Parsetree.pattern) = let _endpos = _endpos__3_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4094 "parsing/parser.mly" - ( _1 ) -# 3179 "parsing/parser.ml" +# 2089 "parsing/parser.mly" + ( reloc_pat ~loc:_sloc _2 ) +# 3243 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3188,43 +3252,63 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.payload) = Obj.magic _3 in - let _2 : (string Asttypes.loc) = Obj.magic _2 in + let _5 : unit = Obj.magic _5 in + let _4 : (Parsetree.core_type) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.pattern) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.attribute) = let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__5_ in + let _v : (Parsetree.pattern) = let _1 = + let _1 = +# 2091 "parsing/parser.mly" + ( Ppat_constraint(_2, _4) ) +# 3297 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1082 "parsing/parser.mly" + ( mkpat ~loc:_sloc _1 ) +# 3306 "parsing/parser.ml" + + in -# 4098 "parsing/parser.mly" - ( Builtin_attributes.mk_internal ~loc:(make_loc _sloc) _2 _3 ) -# 3228 "parsing/parser.ml" +# 2092 "parsing/parser.mly" + ( _1 ) +# 3312 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3235,21 +3319,17 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.class_expr) = Obj.magic _1 in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.class_expr) = -# 1967 "parsing/parser.mly" - ( _1 ) -# 3253 "parsing/parser.ml" + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.pattern) = let _endpos = _endpos__0_ in + let _symbolstartpos = _endpos in + let _sloc = (_symbolstartpos, _endpos) in + +# 2094 "parsing/parser.mly" + ( ghpat ~loc:_sloc Ppat_any ) +# 3333 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3267,9 +3347,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -3279,27 +3359,16 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : (Parsetree.class_expr) = Obj.magic _3 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.core_type) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.class_expr) = let _2 = - let _1 = _1_inlined1 in - -# 4115 "parsing/parser.mly" - ( _1 ) -# 3294 "parsing/parser.ml" - - in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1969 "parsing/parser.mly" - ( wrap_class_attrs ~loc:_sloc _3 _2 ) -# 3303 "parsing/parser.ml" + let _v : (Parsetree.core_type) = +# 2219 "parsing/parser.mly" + ( _2 ) +# 3372 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3310,38 +3379,30 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : (Parsetree.class_expr) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (let_bindings) = Obj.magic _1 in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.class_expr) = let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 2220 "parsing/parser.mly" + ( Ptyp_any ) +# 3391 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__0_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _endpos in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 3400 "parsing/parser.ml" + + in -# 1971 "parsing/parser.mly" - ( class_of_let_bindings ~loc:_sloc _1 _3 ) -# 3345 "parsing/parser.ml" +# 2221 "parsing/parser.mly" + ( _1 ) +# 3406 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3354,84 +3415,61 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let _7 : (Parsetree.class_expr) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _3 : (Parsetree.class_type) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in - let _v : (Parsetree.class_expr) = let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__1_inlined2_ in + let _v : (Parsetree.class_type_field) = let _4 = + let _1 = _1_inlined2 in -# 975 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 3410 "parsing/parser.ml" +# 4253 "parsing/parser.mly" + ( _1 ) +# 3454 "parsing/parser.ml" in - let _endpos__5_ = _endpos__1_inlined2_ in - let _4 = + let _endpos__4_ = _endpos__1_inlined2_ in + let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 3419 "parsing/parser.ml" +# 3463 "parsing/parser.ml" in - let _3 = -# 4015 "parsing/parser.mly" - ( Fresh ) -# 3425 "parsing/parser.ml" - in - let _endpos = _endpos__7_ in + let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1973 "parsing/parser.mly" - ( let loc = (_startpos__2_, _endpos__5_) in - let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in - mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) ) -# 3435 "parsing/parser.ml" +# 2229 "parsing/parser.mly" + ( let docs = symbol_docs _sloc in + mkctf ~loc:_sloc (Pctf_inherit _3) ~attrs:(_2@_4) ~docs ) +# 3473 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3444,19 +3482,19 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined2; @@ -3464,14 +3502,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = flags; + MenhirLib.EngineTypes.startp = _startpos_flags_; + MenhirLib.EngineTypes.endp = _endpos_flags_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -3485,263 +3523,71 @@ module Tables = struct }; }; } = _menhir_stack in - let _7 : (Parsetree.class_expr) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let ty : (Parsetree.core_type) = Obj.magic ty in + let _3 : unit = Obj.magic _3 in + let _1_inlined2 : ( +# 861 "parsing/parser.mly" + (string) +# 3533 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let flags : (Asttypes.mutable_flag * Asttypes.virtual_flag) = Obj.magic flags in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in - let _v : (Parsetree.class_expr) = let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 975 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 3507 "parsing/parser.ml" - - in - let _endpos__5_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in + let _endpos = _endpos__1_inlined3_ in + let _v : (Parsetree.class_type_field) = let _4 = + let _1 = _1_inlined3 in -# 4115 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 3516 "parsing/parser.ml" +# 3546 "parsing/parser.ml" in - let _3 = -# 4016 "parsing/parser.mly" - ( Override ) -# 3522 "parsing/parser.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1973 "parsing/parser.mly" - ( let loc = (_startpos__2_, _endpos__5_) in - let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in - mkclass ~loc:_sloc ~attrs:_4 (Pcl_open(od, _7)) ) -# 3532 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : (Parsetree.attribute) = Obj.magic _2 in - let _1 : (Parsetree.class_expr) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.class_expr) = -# 1977 "parsing/parser.mly" - ( Cl.attr _1 _2 ) -# 3564 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let xs : ((Asttypes.arg_label * Parsetree.expression) list) = Obj.magic xs in - let _1 : (Parsetree.class_expr) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos_xs_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = - let _2 = - let xs = -# 253 "" - ( List.rev xs ) -# 3599 "parsing/parser.ml" - in - -# 1077 "parsing/parser.mly" - ( xs ) -# 3604 "parsing/parser.ml" - - in + let _endpos__4_ = _endpos__1_inlined3_ in + let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let label = + let _1 = +# 3895 "parsing/parser.mly" + ( _1 ) +# 3556 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1980 "parsing/parser.mly" - ( Pcl_apply(_1, _2) ) -# 3610 "parsing/parser.ml" +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 3564 "parsing/parser.ml" in - let _endpos__1_ = _endpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1028 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 3620 "parsing/parser.ml" - - in - -# 1983 "parsing/parser.mly" - ( _1 ) -# 3626 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.extension) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = -# 1982 "parsing/parser.mly" - ( Pcl_extension _1 ) -# 3652 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1028 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 3660 "parsing/parser.ml" - - in - -# 1983 "parsing/parser.mly" - ( _1 ) -# 3666 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = self; - MenhirLib.EngineTypes.startp = _startpos_self_; - MenhirLib.EngineTypes.endp = _endpos_self_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - } = _menhir_stack in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let self : (string Asttypes.loc option) = Obj.magic self in - let _4 : (Parsetree.class_expr) = Obj.magic _4 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_field) = let _6 = - let _1 = _1_inlined2 in -# 4111 "parsing/parser.mly" - ( _1 ) -# 3721 "parsing/parser.ml" +# 2254 "parsing/parser.mly" + ( + let mut, virt = flags in + label, mut, virt, ty + ) +# 3573 "parsing/parser.ml" in - let _endpos__6_ = _endpos__1_inlined2_ in - let _3 = + let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 3730 "parsing/parser.ml" +# 3581 "parsing/parser.ml" in - let _2 = -# 4015 "parsing/parser.mly" - ( Fresh ) -# 3736 "parsing/parser.ml" - in - let _endpos = _endpos__6_ in + let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2032 "parsing/parser.mly" +# 2232 "parsing/parser.mly" ( let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) -# 3745 "parsing/parser.ml" + mkctf ~loc:_sloc (Pctf_val _3) ~attrs:(_2@_4) ~docs ) +# 3591 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3754,19 +3600,19 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _1_inlined4; + MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = self; - MenhirLib.EngineTypes.startp = _startpos_self_; - MenhirLib.EngineTypes.endp = _endpos_self_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined2; @@ -3774,237 +3620,91 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; }; }; } = _menhir_stack in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let self : (string Asttypes.loc option) = Obj.magic self in - let _4 : (Parsetree.class_expr) = Obj.magic _4 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.class_field) = let _6 = - let _1 = _1_inlined3 in - -# 4111 "parsing/parser.mly" - ( _1 ) -# 3807 "parsing/parser.ml" - - in - let _endpos__6_ = _endpos__1_inlined3_ in - let _3 = - let _1 = _1_inlined2 in - -# 4115 "parsing/parser.mly" - ( _1 ) -# 3816 "parsing/parser.ml" - - in - let _2 = -# 4016 "parsing/parser.mly" - ( Override ) -# 3822 "parsing/parser.ml" - in - let _endpos = _endpos__6_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2032 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) -# 3831 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in + let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in + let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _5 : unit = Obj.magic _5 in + let _1_inlined2 : ( +# 861 "parsing/parser.mly" + (string) +# 3651 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let _3 : (Asttypes.private_flag * Asttypes.virtual_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _2 : ((Asttypes.label Asttypes.loc * Asttypes.mutable_flag * - Parsetree.class_field_kind) * - Parsetree.attributes) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_field) = let _3 = - let _1 = _1_inlined1 in + let _endpos = _endpos__1_inlined4_ in + let _v : (Parsetree.class_type_field) = let _7 = + let _1 = _1_inlined4 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 3874 "parsing/parser.ml" +# 3664 "parsing/parser.ml" in - let _endpos__3_ = _endpos__1_inlined1_ in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2035 "parsing/parser.mly" - ( let v, attrs = _2 in - let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_val v) ~attrs:(attrs@_3) ~docs ) -# 3886 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _2 : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * - Parsetree.class_field_kind) * - Parsetree.attributes) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_field) = let _3 = - let _1 = _1_inlined1 in + let _endpos__7_ = _endpos__1_inlined4_ in + let _6 = + let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 3606 "parsing/parser.mly" ( _1 ) -# 3929 "parsing/parser.ml" +# 3673 "parsing/parser.ml" in - let _endpos__3_ = _endpos__1_inlined1_ in - let _endpos = _endpos__3_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2039 "parsing/parser.mly" - ( let meth, attrs = _2 in - let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_method meth) ~attrs:(attrs@_3) ~docs ) -# 3941 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - } = _menhir_stack in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _3 : (Parsetree.core_type * Parsetree.core_type) = Obj.magic _3 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_field) = let _4 = - let _1 = _1_inlined2 in + let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _1 = +# 3895 "parsing/parser.mly" + ( _1 ) +# 3681 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4111 "parsing/parser.mly" - ( _1 ) -# 3989 "parsing/parser.ml" +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 3689 "parsing/parser.ml" in - let _endpos__4_ = _endpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 3998 "parsing/parser.ml" +# 3697 "parsing/parser.ml" in - let _endpos = _endpos__4_ in + let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2043 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_constraint _3) ~attrs:(_2@_4) ~docs ) -# 4008 "parsing/parser.ml" +# 2236 "parsing/parser.mly" + ( let (p, v) = _3 in + let docs = symbol_docs _sloc in + mkctf ~loc:_sloc (Pctf_method (_4, p, v, _6)) ~attrs:(_2@_7) ~docs ) +# 3708 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4041,37 +3741,37 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _3 : (Parsetree.expression) = Obj.magic _3 in + let _3 : (Parsetree.core_type * Parsetree.core_type) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_field) = let _4 = + let _v : (Parsetree.class_type_field) = let _4 = let _1 = _1_inlined2 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 4056 "parsing/parser.ml" +# 3756 "parsing/parser.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 4065 "parsing/parser.ml" +# 3765 "parsing/parser.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2046 "parsing/parser.mly" +# 2240 "parsing/parser.mly" ( let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_initializer _3) ~attrs:(_2@_4) ~docs ) -# 4075 "parsing/parser.ml" + mkctf ~loc:_sloc (Pctf_constraint _3) ~attrs:(_2@_4) ~docs ) +# 3775 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4100,12 +3800,12 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_field) = let _2 = + let _v : (Parsetree.class_type_field) = let _2 = let _1 = _1_inlined1 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 4109 "parsing/parser.ml" +# 3809 "parsing/parser.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -4113,10 +3813,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2049 "parsing/parser.mly" +# 2243 "parsing/parser.mly" ( let docs = symbol_docs _sloc in - mkcf ~loc:_sloc (Pcf_extension _1) ~attrs:_2 ~docs ) -# 4120 "parsing/parser.ml" + mkctf ~loc:_sloc (Pctf_extension _1) ~attrs:_2 ~docs ) +# 3820 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4138,25 +3838,25 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.class_field) = let _1 = + let _v : (Parsetree.class_type_field) = let _1 = let _1 = -# 2052 "parsing/parser.mly" - ( Pcf_attribute _1 ) -# 4146 "parsing/parser.ml" +# 2246 "parsing/parser.mly" + ( Pctf_attribute _1 ) +# 3846 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1026 "parsing/parser.mly" - ( mkcf ~loc:_sloc _1 ) -# 4154 "parsing/parser.ml" +# 1096 "parsing/parser.mly" + ( mkctf ~loc:_sloc _1 ) +# 3854 "parsing/parser.ml" in -# 2053 "parsing/parser.mly" +# 2247 "parsing/parser.mly" ( _1 ) -# 4160 "parsing/parser.ml" +# 3860 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4168,42 +3868,74 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : (Parsetree.class_expr) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _1 : (Longident.t) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.class_expr) = -# 1947 "parsing/parser.mly" - ( _2 ) -# 4192 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { + let _endpos = _endpos__1_ in + let _v : (Parsetree.class_type) = let _1 = + let _1 = + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 3891 "parsing/parser.ml" + + in + let tys = + let tys = +# 2205 "parsing/parser.mly" + ( [] ) +# 3898 "parsing/parser.ml" + in + +# 2211 "parsing/parser.mly" + ( tys ) +# 3903 "parsing/parser.ml" + + in + +# 2188 "parsing/parser.mly" + ( Pcty_constr (cid, tys) ) +# 3909 "parsing/parser.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1094 "parsing/parser.mly" + ( mkcty ~loc:_sloc _1 ) +# 3918 "parsing/parser.ml" + + in + +# 2191 "parsing/parser.mly" + ( _1 ) +# 3924 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _3; @@ -4211,9 +3943,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -4224,33 +3956,72 @@ module Tables = struct }; }; } = _menhir_stack in - let _4 : (Parsetree.class_expr) = Obj.magic _4 in + let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.class_type) = Obj.magic _2 in + let xs : (Parsetree.core_type list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = -# 1950 "parsing/parser.mly" - ( Pcl_constraint(_4, _2) ) -# 4239 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_inlined1_ in + let _v : (Parsetree.class_type) = let _1 = + let _1 = + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 3977 "parsing/parser.ml" + + in + let tys = + let tys = + let params = + let xs = +# 253 "" + ( List.rev xs ) +# 3986 "parsing/parser.ml" + in + +# 1181 "parsing/parser.mly" + ( xs ) +# 3991 "parsing/parser.ml" + + in + +# 2207 "parsing/parser.mly" + ( params ) +# 3997 "parsing/parser.ml" + + in + +# 2211 "parsing/parser.mly" + ( tys ) +# 4003 "parsing/parser.ml" + + in + +# 2188 "parsing/parser.mly" + ( Pcty_constr (cid, tys) ) +# 4009 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1028 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 4248 "parsing/parser.ml" +# 1094 "parsing/parser.mly" + ( mkcty ~loc:_sloc _1 ) +# 4019 "parsing/parser.ml" in -# 1953 "parsing/parser.mly" +# 2191 "parsing/parser.mly" ( _1 ) -# 4254 "parsing/parser.ml" +# 4025 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4262,43 +4033,35 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : (Parsetree.class_expr) = Obj.magic _2 in - let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in + let _1 : (Parsetree.extension) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.class_expr) = let _1 = + let _endpos = _endpos__1_ in + let _v : (Parsetree.class_type) = let _1 = let _1 = -# 1952 "parsing/parser.mly" - ( let (l,o,p) = _1 in Pcl_fun(l, o, p, _2) ) -# 4287 "parsing/parser.ml" +# 2190 "parsing/parser.mly" + ( Pcty_extension _1 ) +# 4051 "parsing/parser.ml" in - let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1028 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 4296 "parsing/parser.ml" +# 1094 "parsing/parser.mly" + ( mkcty ~loc:_sloc _1 ) +# 4059 "parsing/parser.ml" in -# 1953 "parsing/parser.mly" +# 2191 "parsing/parser.mly" ( _1 ) -# 4302 "parsing/parser.ml" +# 4065 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4311,49 +4074,88 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = xss; + MenhirLib.EngineTypes.startp = _startpos_xss_; + MenhirLib.EngineTypes.endp = _endpos_xss_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; } = _menhir_stack in - let e : (Parsetree.class_expr) = Obj.magic e in - let _2 : unit = Obj.magic _2 in - let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in + let _4 : unit = Obj.magic _4 in + let xss : (Parsetree.class_type_field list list) = Obj.magic xss in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_e_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = -# 2008 "parsing/parser.mly" - ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) -# 4342 "parsing/parser.ml" - in - let _endpos__1_ = _endpos_e_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__4_ in + let _v : (Parsetree.class_type) = let _3 = + let _1 = _1_inlined2 in + let _2 = + let _1 = + let _1 = +# 260 "" + ( List.flatten xss ) +# 4122 "parsing/parser.ml" + in + +# 2225 "parsing/parser.mly" + ( _1 ) +# 4127 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + +# 1042 "parsing/parser.mly" + ( extra_csig _startpos _endpos _1 ) +# 4136 "parsing/parser.ml" + + in -# 1028 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 4351 "parsing/parser.ml" +# 2215 "parsing/parser.mly" + ( Csig.mk _1 _2 ) +# 4142 "parsing/parser.ml" in - -# 2009 "parsing/parser.mly" + let _2 = + let _1 = _1_inlined1 in + +# 4257 "parsing/parser.mly" ( _1 ) -# 4357 "parsing/parser.ml" +# 4150 "parsing/parser.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2193 "parsing/parser.mly" + ( mkcty ~loc:_sloc ~attrs:_2 (Pcty_signature _3) ) +# 4159 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4366,42 +4168,87 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = e; - MenhirLib.EngineTypes.startp = _startpos_e_; - MenhirLib.EngineTypes.endp = _endpos_e_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xss; + MenhirLib.EngineTypes.startp = _startpos_xss_; + MenhirLib.EngineTypes.endp = _endpos_xss_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let e : (Parsetree.class_expr) = Obj.magic e in - let _1 : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = Obj.magic _1 in + let _4 : unit = Obj.magic _4 in + let xss : (Parsetree.class_type_field list list) = Obj.magic xss in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_e_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = -# 2008 "parsing/parser.mly" - ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) -# 4390 "parsing/parser.ml" - in - let _endpos__1_ = _endpos_e_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _endpos = _endpos__4_ in + let _v : (Parsetree.class_type) = let _3 = + let _1 = _1_inlined2 in + let _2 = + let _1 = + let _1 = +# 260 "" + ( List.flatten xss ) +# 4216 "parsing/parser.ml" + in + +# 2225 "parsing/parser.mly" + ( _1 ) +# 4221 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + +# 1042 "parsing/parser.mly" + ( extra_csig _startpos _endpos _1 ) +# 4230 "parsing/parser.ml" + + in -# 1028 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 4399 "parsing/parser.ml" +# 2215 "parsing/parser.mly" + ( Csig.mk _1 _2 ) +# 4236 "parsing/parser.ml" in - -# 2009 "parsing/parser.mly" + let _2 = + let _1 = _1_inlined1 in + +# 4257 "parsing/parser.mly" ( _1 ) -# 4405 "parsing/parser.ml" +# 4244 "parsing/parser.ml" + + in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + +# 2195 "parsing/parser.mly" + ( unclosed "object" _loc__1_ "end" _loc__4_ ) +# 4252 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4413,20 +4260,27 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in + let _2 : (Parsetree.attribute) = Obj.magic _2 in + let _1 : (Parsetree.class_type) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3886 "parsing/parser.mly" - ( _1 ) -# 4430 "parsing/parser.ml" + let _endpos = _endpos__2_ in + let _v : (Parsetree.class_type) = +# 2197 "parsing/parser.mly" + ( Cty.attr _1 _2 ) +# 4284 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4439,36 +4293,84 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.pattern) = Obj.magic _2 in + let _7 : (Parsetree.class_type) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.pattern) = let _endpos = _endpos__3_ in + let _endpos = _endpos__7_ in + let _v : (Parsetree.class_type) = let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 4349 "parsing/parser.ml" + + in + let _endpos__5_ = _endpos__1_inlined2_ in + let _4 = + let _1 = _1_inlined1 in + +# 4257 "parsing/parser.mly" + ( _1 ) +# 4358 "parsing/parser.ml" + + in + let _3 = +# 4157 "parsing/parser.mly" + ( Fresh ) +# 4364 "parsing/parser.ml" + in + let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2017 "parsing/parser.mly" - ( reloc_pat ~loc:_sloc _2 ) -# 4472 "parsing/parser.ml" +# 2199 "parsing/parser.mly" + ( let loc = (_startpos__2_, _endpos__5_) in + let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in + mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) ) +# 4374 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4481,84 +4383,91 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; }; }; }; }; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let _4 : (Parsetree.core_type) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.pattern) = Obj.magic _2 in + let _7 : (Parsetree.class_type) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.pattern) = let _1 = - let _1 = -# 2019 "parsing/parser.mly" - ( Ppat_constraint(_2, _4) ) -# 4526 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__7_ in + let _v : (Parsetree.class_type) = let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" - ( mkpat ~loc:_sloc _1 ) -# 4535 "parsing/parser.ml" +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 4446 "parsing/parser.ml" in - -# 2020 "parsing/parser.mly" - ( _1 ) -# 4541 "parsing/parser.ml" + let _endpos__5_ = _endpos__1_inlined3_ in + let _4 = + let _1 = _1_inlined2 in + +# 4257 "parsing/parser.mly" + ( _1 ) +# 4455 "parsing/parser.ml" + + in + let _3 = +# 4158 "parsing/parser.mly" + ( Override ) +# 4461 "parsing/parser.ml" in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.pattern) = let _endpos = _endpos__0_ in - let _symbolstartpos = _endpos in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2022 "parsing/parser.mly" - ( ghpat ~loc:_sloc Ppat_any ) -# 4562 "parsing/parser.ml" +# 2199 "parsing/parser.mly" + ( let loc = (_startpos__2_, _endpos__5_) in + let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in + mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) ) +# 4471 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4589,116 +4498,15 @@ module Tables = struct }; } = _menhir_stack in let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.core_type) = Obj.magic _2 in + let _2 : (Parsetree.class_expr) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in - let _v : (Parsetree.core_type) = -# 2147 "parsing/parser.mly" + let _v : (Parsetree.class_expr) = +# 2059 "parsing/parser.mly" ( _2 ) -# 4601 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Parsetree.core_type) = let _1 = - let _1 = -# 2148 "parsing/parser.mly" - ( Ptyp_any ) -# 4620 "parsing/parser.ml" - in - let _endpos__1_ = _endpos__0_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _endpos in - let _sloc = (_symbolstartpos, _endpos) in - -# 1012 "parsing/parser.mly" - ( mktyp ~loc:_sloc _1 ) -# 4629 "parsing/parser.ml" - - in - -# 2149 "parsing/parser.mly" - ( _1 ) -# 4635 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - } = _menhir_stack in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _3 : (Parsetree.class_type) = Obj.magic _3 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_type_field) = let _4 = - let _1 = _1_inlined2 in - -# 4111 "parsing/parser.mly" - ( _1 ) -# 4683 "parsing/parser.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - -# 4115 "parsing/parser.mly" - ( _1 ) -# 4692 "parsing/parser.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2157 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkctf ~loc:_sloc (Pctf_inherit _3) ~attrs:(_2@_4) ~docs ) -# 4702 "parsing/parser.ml" +# 4510 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4711,381 +4519,35 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ty; - MenhirLib.EngineTypes.startp = _startpos_ty_; - MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = flags; - MenhirLib.EngineTypes.startp = _startpos_flags_; - MenhirLib.EngineTypes.endp = _endpos_flags_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let _1_inlined2 : ( -# 789 "parsing/parser.mly" - (string) -# 4762 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let flags : (Asttypes.mutable_flag * Asttypes.virtual_flag) = Obj.magic flags in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined3_ in - let _v : (Parsetree.class_type_field) = let _4 = - let _1 = _1_inlined3 in - -# 4111 "parsing/parser.mly" - ( _1 ) -# 4775 "parsing/parser.ml" - - in - let _endpos__4_ = _endpos__1_inlined3_ in - let _3 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let label = - let _1 = -# 3760 "parsing/parser.mly" - ( _1 ) -# 4785 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 975 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 4793 "parsing/parser.ml" - - in - -# 2182 "parsing/parser.mly" - ( - let mut, virt = flags in - label, mut, virt, ty - ) -# 4802 "parsing/parser.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 4115 "parsing/parser.mly" - ( _1 ) -# 4810 "parsing/parser.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2160 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkctf ~loc:_sloc (Pctf_val _3) ~attrs:(_2@_4) ~docs ) -# 4820 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined4; - MenhirLib.EngineTypes.startp = _startpos__1_inlined4_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - } = _menhir_stack in - let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in - let _5 : unit = Obj.magic _5 in - let _1_inlined2 : ( -# 789 "parsing/parser.mly" - (string) -# 4880 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let _3 : (Asttypes.private_flag * Asttypes.virtual_flag) = Obj.magic _3 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined4_ in - let _v : (Parsetree.class_type_field) = let _7 = - let _1 = _1_inlined4 in - -# 4111 "parsing/parser.mly" - ( _1 ) -# 4893 "parsing/parser.ml" - - in - let _endpos__7_ = _endpos__1_inlined4_ in - let _6 = - let _1 = _1_inlined3 in - -# 3496 "parsing/parser.mly" - ( _1 ) -# 4902 "parsing/parser.ml" - - in - let _4 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _1 = -# 3760 "parsing/parser.mly" - ( _1 ) -# 4910 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 975 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 4918 "parsing/parser.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 4115 "parsing/parser.mly" - ( _1 ) -# 4926 "parsing/parser.ml" - - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2164 "parsing/parser.mly" - ( let (p, v) = _3 in - let docs = symbol_docs _sloc in - mkctf ~loc:_sloc (Pctf_method (_4, p, v, _6)) ~attrs:(_2@_7) ~docs ) -# 4937 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - } = _menhir_stack in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _3 : (Parsetree.core_type * Parsetree.core_type) = Obj.magic _3 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _2 : (Parsetree.class_expr) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined2_ in - let _v : (Parsetree.class_type_field) = let _4 = - let _1 = _1_inlined2 in - -# 4111 "parsing/parser.mly" - ( _1 ) -# 4985 "parsing/parser.ml" - - in - let _endpos__4_ = _endpos__1_inlined2_ in - let _2 = - let _1 = _1_inlined1 in - -# 4115 "parsing/parser.mly" - ( _1 ) -# 4994 "parsing/parser.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2168 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkctf ~loc:_sloc (Pctf_constraint _3) ~attrs:(_2@_4) ~docs ) -# 5004 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : (Parsetree.extension) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_type_field) = let _2 = - let _1 = _1_inlined1 in - -# 4111 "parsing/parser.mly" - ( _1 ) -# 5038 "parsing/parser.ml" - - in - let _endpos__2_ = _endpos__1_inlined1_ in - let _endpos = _endpos__2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2171 "parsing/parser.mly" - ( let docs = symbol_docs _sloc in - mkctf ~loc:_sloc (Pctf_extension _1) ~attrs:_2 ~docs ) -# 5049 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.attribute) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.class_type_field) = let _1 = - let _1 = -# 2174 "parsing/parser.mly" - ( Pctf_attribute _1 ) -# 5075 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1024 "parsing/parser.mly" - ( mkctf ~loc:_sloc _1 ) -# 5083 "parsing/parser.ml" - - in + let _endpos = _endpos__3_ in + let _v : (Parsetree.class_expr) = let _loc__3_ = (_startpos__3_, _endpos__3_) in + let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2175 "parsing/parser.mly" - ( _1 ) -# 5089 "parsing/parser.ml" +# 2061 "parsing/parser.mly" + ( unclosed "(" _loc__1_ ")" _loc__3_ ) +# 4551 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5107,49 +4569,49 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.class_type) = let _1 = + let _v : (Parsetree.class_expr) = let _1 = let _1 = let cid = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 5120 "parsing/parser.ml" +# 4582 "parsing/parser.ml" in let tys = let tys = -# 2133 "parsing/parser.mly" +# 2205 "parsing/parser.mly" ( [] ) -# 5127 "parsing/parser.ml" +# 4589 "parsing/parser.ml" in -# 2139 "parsing/parser.mly" +# 2211 "parsing/parser.mly" ( tys ) -# 5132 "parsing/parser.ml" +# 4594 "parsing/parser.ml" in -# 2116 "parsing/parser.mly" - ( Pcty_constr (cid, tys) ) -# 5138 "parsing/parser.ml" +# 2064 "parsing/parser.mly" + ( Pcl_constr(cid, tys) ) +# 4600 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1022 "parsing/parser.mly" - ( mkcty ~loc:_sloc _1 ) -# 5147 "parsing/parser.ml" +# 1100 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 4609 "parsing/parser.ml" in -# 2119 "parsing/parser.mly" +# 2071 "parsing/parser.mly" ( _1 ) -# 5153 "parsing/parser.ml" +# 4615 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5192,7 +4654,7 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_type) = let _1 = + let _v : (Parsetree.class_expr) = let _1 = let _1 = let cid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in @@ -5200,9 +4662,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 5206 "parsing/parser.ml" +# 4668 "parsing/parser.ml" in let tys = @@ -5211,30 +4673,30 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 5215 "parsing/parser.ml" +# 4677 "parsing/parser.ml" in -# 1109 "parsing/parser.mly" +# 1181 "parsing/parser.mly" ( xs ) -# 5220 "parsing/parser.ml" +# 4682 "parsing/parser.ml" in -# 2135 "parsing/parser.mly" +# 2207 "parsing/parser.mly" ( params ) -# 5226 "parsing/parser.ml" +# 4688 "parsing/parser.ml" in -# 2139 "parsing/parser.mly" +# 2211 "parsing/parser.mly" ( tys ) -# 5232 "parsing/parser.ml" +# 4694 "parsing/parser.ml" in -# 2116 "parsing/parser.mly" - ( Pcty_constr (cid, tys) ) -# 5238 "parsing/parser.ml" +# 2064 "parsing/parser.mly" + ( Pcl_constr(cid, tys) ) +# 4700 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -5242,55 +4704,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1022 "parsing/parser.mly" - ( mkcty ~loc:_sloc _1 ) -# 5248 "parsing/parser.ml" - - in - -# 2119 "parsing/parser.mly" - ( _1 ) -# 5254 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.extension) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.class_type) = let _1 = - let _1 = -# 2118 "parsing/parser.mly" - ( Pcty_extension _1 ) -# 5280 "parsing/parser.ml" - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1022 "parsing/parser.mly" - ( mkcty ~loc:_sloc _1 ) -# 5288 "parsing/parser.ml" +# 1100 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 4710 "parsing/parser.ml" in -# 2119 "parsing/parser.mly" +# 2071 "parsing/parser.mly" ( _1 ) -# 5294 "parsing/parser.ml" +# 4716 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5333,58 +4755,217 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let xss : (Parsetree.class_type_field list list) = Obj.magic xss in - let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let xss : (Parsetree.class_field list list) = Obj.magic xss in + let _1_inlined2 : (Parsetree.pattern) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.class_type) = let _3 = - let _1 = _1_inlined2 in - let _2 = - let _1 = - let _1 = + let _v : (Parsetree.class_expr) = let _1 = + let _1 = + let _3 = + let _1 = _1_inlined2 in + let _2 = + let _1 = + let _1 = # 260 "" ( List.flatten xss ) -# 5351 "parsing/parser.ml" - in - -# 2153 "parsing/parser.mly" +# 4775 "parsing/parser.ml" + in + +# 2098 "parsing/parser.mly" ( _1 ) -# 5356 "parsing/parser.ml" +# 4780 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in + let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + +# 1041 "parsing/parser.mly" + ( extra_cstr _startpos _endpos _1 ) +# 4789 "parsing/parser.ml" + + in + +# 2085 "parsing/parser.mly" + ( Cstr.mk _1 _2 ) +# 4795 "parsing/parser.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in + let _2 = + let _1 = _1_inlined1 in + +# 4257 "parsing/parser.mly" + ( _1 ) +# 4803 "parsing/parser.ml" + + in + let _loc__4_ = (_startpos__4_, _endpos__4_) in + let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 970 "parsing/parser.mly" - ( extra_csig _startpos _endpos _1 ) -# 5365 "parsing/parser.ml" +# 2066 "parsing/parser.mly" + ( unclosed "object" _loc__1_ "end" _loc__4_ ) +# 4811 "parsing/parser.ml" in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2143 "parsing/parser.mly" - ( Csig.mk _1 _2 ) -# 5371 "parsing/parser.ml" +# 1100 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 4821 "parsing/parser.ml" in - let _2 = - let _1 = _1_inlined1 in + +# 2071 "parsing/parser.mly" + ( _1 ) +# 4827 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : unit = Obj.magic _5 in + let _4 : (Parsetree.class_type) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.class_expr) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : (Parsetree.class_expr) = let _1 = + let _1 = +# 2068 "parsing/parser.mly" + ( Pcl_constraint(_2, _4) ) +# 4881 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4115 "parsing/parser.mly" - ( _1 ) -# 5379 "parsing/parser.ml" +# 1100 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 4890 "parsing/parser.ml" in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2121 "parsing/parser.mly" - ( mkcty ~loc:_sloc ~attrs:_2 (Pcty_signature _3) ) -# 5388 "parsing/parser.ml" +# 2071 "parsing/parser.mly" + ( _1 ) +# 4896 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : unit = Obj.magic _5 in + let _4 : (Parsetree.class_type) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.class_expr) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : (Parsetree.class_expr) = let _1 = + let _1 = + let _loc__5_ = (_startpos__5_, _endpos__5_) in + let _loc__1_ = (_startpos__1_, _endpos__1_) in + +# 2070 "parsing/parser.mly" + ( unclosed "(" _loc__1_ ")" _loc__5_ ) +# 4953 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1100 "parsing/parser.mly" + ( mkclass ~loc:_sloc _1 ) +# 4963 "parsing/parser.ml" + + in + +# 2071 "parsing/parser.mly" + ( _1 ) +# 4969 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5427,57 +5008,58 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let xss : (Parsetree.class_type_field list list) = Obj.magic xss in - let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let xss : (Parsetree.class_field list list) = Obj.magic xss in + let _1_inlined2 : (Parsetree.pattern) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.class_type) = let _3 = + let _v : (Parsetree.class_expr) = let _3 = let _1 = _1_inlined2 in let _2 = let _1 = let _1 = # 260 "" ( List.flatten xss ) -# 5445 "parsing/parser.ml" +# 5026 "parsing/parser.ml" in -# 2153 "parsing/parser.mly" +# 2098 "parsing/parser.mly" ( _1 ) -# 5450 "parsing/parser.ml" +# 5031 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 970 "parsing/parser.mly" - ( extra_csig _startpos _endpos _1 ) -# 5459 "parsing/parser.ml" +# 1041 "parsing/parser.mly" + ( extra_cstr _startpos _endpos _1 ) +# 5040 "parsing/parser.ml" in -# 2143 "parsing/parser.mly" - ( Csig.mk _1 _2 ) -# 5465 "parsing/parser.ml" +# 2085 "parsing/parser.mly" + ( Cstr.mk _1 _2 ) +# 5046 "parsing/parser.ml" in let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 5473 "parsing/parser.ml" +# 5054 "parsing/parser.ml" in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - let _loc__1_ = (_startpos__1_, _endpos__1_) in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2123 "parsing/parser.mly" - ( unclosed "object" _loc__1_ "end" _loc__4_ ) -# 5481 "parsing/parser.ml" +# 2073 "parsing/parser.mly" + ( mkclass ~loc:_sloc ~attrs:_2 (Pcl_structure _3) ) +# 5063 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5489,27 +5071,20 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _2 : (Parsetree.attribute) = Obj.magic _2 in let _1 : (Parsetree.class_type) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in + let _endpos = _endpos__1_ in let _v : (Parsetree.class_type) = -# 2125 "parsing/parser.mly" - ( Cty.attr _1 _2 ) -# 5513 "parsing/parser.ml" +# 2176 "parsing/parser.mly" + ( _1 ) +# 5088 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5522,84 +5097,63 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = codomain; + MenhirLib.EngineTypes.startp = _startpos_codomain_; + MenhirLib.EngineTypes.endp = _endpos_codomain_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = domain; + MenhirLib.EngineTypes.startp = _startpos_domain_; + MenhirLib.EngineTypes.endp = _endpos_domain_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = label; + MenhirLib.EngineTypes.startp = _startpos_label_; + MenhirLib.EngineTypes.endp = _endpos_label_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let _7 : (Parsetree.class_type) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _1_inlined2 : (Longident.t) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let codomain : (Parsetree.class_type) = Obj.magic codomain in + let _3 : unit = Obj.magic _3 in + let domain : (Parsetree.core_type) = Obj.magic domain in + let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in - let _v : (Parsetree.class_type) = let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in + let _startpos = _startpos_label_ in + let _endpos = _endpos_codomain_ in + let _v : (Parsetree.class_type) = let _1 = + let _1 = + let label = +# 3689 "parsing/parser.mly" + ( Optional label ) +# 5136 "parsing/parser.ml" + in + +# 2182 "parsing/parser.mly" + ( Pcty_arrow(label, domain, codomain) ) +# 5141 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 5578 "parsing/parser.ml" - - in - let _endpos__5_ = _endpos__1_inlined2_ in - let _4 = - let _1 = _1_inlined1 in - -# 4115 "parsing/parser.mly" - ( _1 ) -# 5587 "parsing/parser.ml" +# 1094 "parsing/parser.mly" + ( mkcty ~loc:_sloc _1 ) +# 5151 "parsing/parser.ml" in - let _3 = -# 4015 "parsing/parser.mly" - ( Fresh ) -# 5593 "parsing/parser.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2127 "parsing/parser.mly" - ( let loc = (_startpos__2_, _endpos__5_) in - let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in - mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) ) -# 5603 "parsing/parser.ml" +# 2183 "parsing/parser.mly" + ( _1 ) +# 5157 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5612,130 +5166,74 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _7; - MenhirLib.EngineTypes.startp = _startpos__7_; - MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.semv = codomain; + MenhirLib.EngineTypes.startp = _startpos_codomain_; + MenhirLib.EngineTypes.endp = _endpos_codomain_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = domain; + MenhirLib.EngineTypes.startp = _startpos_domain_; + MenhirLib.EngineTypes.endp = _endpos_domain_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = label; + MenhirLib.EngineTypes.startp = _startpos_label_; + MenhirLib.EngineTypes.endp = _endpos_label_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; }; } = _menhir_stack in - let _7 : (Parsetree.class_type) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let codomain : (Parsetree.class_type) = Obj.magic codomain in + let _3 : unit = Obj.magic _3 in + let domain : (Parsetree.core_type) = Obj.magic domain in let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let label : ( +# 861 "parsing/parser.mly" + (string) +# 5206 "parsing/parser.ml" + ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in - let _v : (Parsetree.class_type) = let _5 = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _startpos = _startpos_label_ in + let _endpos = _endpos_codomain_ in + let _v : (Parsetree.class_type) = let _1 = + let _1 = + let label = +# 3691 "parsing/parser.mly" + ( Labelled label ) +# 5216 "parsing/parser.ml" + in + +# 2182 "parsing/parser.mly" + ( Pcty_arrow(label, domain, codomain) ) +# 5221 "parsing/parser.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 5675 "parsing/parser.ml" - - in - let _endpos__5_ = _endpos__1_inlined3_ in - let _4 = - let _1 = _1_inlined2 in - -# 4115 "parsing/parser.mly" - ( _1 ) -# 5684 "parsing/parser.ml" +# 1094 "parsing/parser.mly" + ( mkcty ~loc:_sloc _1 ) +# 5231 "parsing/parser.ml" in - let _3 = -# 4016 "parsing/parser.mly" - ( Override ) -# 5690 "parsing/parser.ml" - in - let _endpos = _endpos__7_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2127 "parsing/parser.mly" - ( let loc = (_startpos__2_, _endpos__5_) in - let od = Opn.mk ~override:_3 ~loc:(make_loc loc) _5 in - mkcty ~loc:_sloc ~attrs:_4 (Pcty_open(od, _7)) ) -# 5700 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.class_expr) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.class_expr) = -# 1987 "parsing/parser.mly" - ( _2 ) -# 5739 "parsing/parser.ml" +# 2183 "parsing/parser.mly" + ( _1 ) +# 5237 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5748,99 +5246,56 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = codomain; + MenhirLib.EngineTypes.startp = _startpos_codomain_; + MenhirLib.EngineTypes.endp = _endpos_codomain_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.semv = domain; + MenhirLib.EngineTypes.startp = _startpos_domain_; + MenhirLib.EngineTypes.endp = _endpos_domain_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in + let codomain : (Parsetree.class_type) = Obj.magic codomain in let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.class_expr) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Parsetree.class_expr) = let _loc__3_ = (_startpos__3_, _endpos__3_) in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 1989 "parsing/parser.mly" - ( unclosed "(" _loc__1_ ")" _loc__3_ ) -# 5780 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in + let domain : (Parsetree.core_type) = Obj.magic domain in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.class_expr) = let _1 = + let _startpos = _startpos_domain_ in + let _endpos = _endpos_codomain_ in + let _v : (Parsetree.class_type) = let _1 = let _1 = - let cid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 975 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 5811 "parsing/parser.ml" - - in - let tys = - let tys = -# 2133 "parsing/parser.mly" - ( [] ) -# 5818 "parsing/parser.ml" - in - -# 2139 "parsing/parser.mly" - ( tys ) -# 5823 "parsing/parser.ml" - - in + let label = +# 3693 "parsing/parser.mly" + ( Nolabel ) +# 5278 "parsing/parser.ml" + in -# 1992 "parsing/parser.mly" - ( Pcl_constr(cid, tys) ) -# 5829 "parsing/parser.ml" +# 2182 "parsing/parser.mly" + ( Pcty_arrow(label, domain, codomain) ) +# 5283 "parsing/parser.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_domain_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1028 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 5838 "parsing/parser.ml" +# 1094 "parsing/parser.mly" + ( mkcty ~loc:_sloc _1 ) +# 5293 "parsing/parser.ml" in -# 1999 "parsing/parser.mly" +# 2183 "parsing/parser.mly" ( _1 ) -# 5844 "parsing/parser.ml" +# 5299 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5853,95 +5308,251 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = bs; + MenhirLib.EngineTypes.startp = _startpos_bs_; + MenhirLib.EngineTypes.endp = _endpos_bs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = csig; + MenhirLib.EngineTypes.startp = _startpos_csig_; + MenhirLib.EngineTypes.endp = _endpos_csig_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = virt; + MenhirLib.EngineTypes.startp = _startpos_virt_; + MenhirLib.EngineTypes.endp = _endpos_virt_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ext; + MenhirLib.EngineTypes.startp = _startpos_ext_; + MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; }; }; }; } = _menhir_stack in - let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in - let _3 : unit = Obj.magic _3 in - let xs : (Parsetree.core_type list) = Obj.magic xs in + let bs : (Parsetree.class_type_declaration list) = Obj.magic bs in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let csig : (Parsetree.class_type) = Obj.magic csig in + let _8 : unit = Obj.magic _8 in + let _1_inlined2 : ( +# 861 "parsing/parser.mly" + (string) +# 5384 "parsing/parser.ml" + ) = Obj.magic _1_inlined2 in + let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in + let virt : (Asttypes.virtual_flag) = Obj.magic virt in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let ext : (string Asttypes.loc option) = Obj.magic ext in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_inlined1_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = - let cid = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos_bs_ in + let _v : (string Asttypes.loc option * Parsetree.class_type_declaration list) = let _1 = + let a = + let attrs2 = + let _1 = _1_inlined3 in + +# 4253 "parsing/parser.mly" + ( _1 ) +# 5402 "parsing/parser.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let id = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 5897 "parsing/parser.ml" +# 5414 "parsing/parser.ml" in - let tys = - let tys = - let params = - let xs = -# 253 "" - ( List.rev xs ) -# 5906 "parsing/parser.ml" - in - -# 1109 "parsing/parser.mly" - ( xs ) -# 5911 "parsing/parser.ml" - - in - -# 2135 "parsing/parser.mly" - ( params ) -# 5917 "parsing/parser.ml" - - in + let attrs1 = + let _1 = _1_inlined1 in -# 2139 "parsing/parser.mly" - ( tys ) -# 5923 "parsing/parser.ml" +# 4257 "parsing/parser.mly" + ( _1 ) +# 5422 "parsing/parser.ml" in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 1992 "parsing/parser.mly" - ( Pcl_constr(cid, tys) ) -# 5929 "parsing/parser.ml" +# 2321 "parsing/parser.mly" + ( + let attrs = attrs1 @ attrs2 in + let loc = make_loc _sloc in + let docs = symbol_docs _sloc in + ext, + Ci.mk id csig ~virt ~params ~attrs ~loc ~docs + ) +# 5437 "parsing/parser.ml" in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1028 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 5939 "parsing/parser.ml" +# 1278 "parsing/parser.mly" + ( let (x, b) = a in x, b :: bs ) +# 5443 "parsing/parser.ml" in -# 1999 "parsing/parser.mly" - ( _1 ) -# 5945 "parsing/parser.ml" +# 2309 "parsing/parser.mly" + ( _1 ) +# 5449 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Longident.t) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Longident.t) = +# 4025 "parsing/parser.mly" + ( _1 ) +# 5474 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _6 : (Parsetree.expression) = Obj.magic _6 in + let _5 : (Asttypes.direction_flag) = Obj.magic _5 in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.pattern) = Obj.magic _2 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _1 : (string Asttypes.loc option) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__6_ in + let _v : (Extensions.comprehension_clause) = let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 4257 "parsing/parser.mly" + ( _1 ) +# 5544 "parsing/parser.ml" + + in + +# 4270 "parsing/parser.mly" + ( _1, _2 ) +# 5550 "parsing/parser.ml" + + in + +# 2590 "parsing/parser.mly" + ( Extensions.From_to(_2, _4, _6, _5) ) +# 5556 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5959,14 +5570,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xss; - MenhirLib.EngineTypes.startp = _startpos_xss_; - MenhirLib.EngineTypes.endp = _endpos_xss_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined1; @@ -5983,76 +5594,33 @@ module Tables = struct }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let xss : (Parsetree.class_field list list) = Obj.magic xss in - let _1_inlined2 : (Parsetree.pattern) = Obj.magic _1_inlined2 in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.pattern) = Obj.magic _2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let _1 : (string Asttypes.loc option) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = - let _3 = - let _1 = _1_inlined2 in - let _2 = - let _1 = - let _1 = -# 260 "" - ( List.flatten xss ) -# 6004 "parsing/parser.ml" - in - -# 2026 "parsing/parser.mly" - ( _1 ) -# 6009 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - -# 969 "parsing/parser.mly" - ( extra_cstr _startpos _endpos _1 ) -# 6018 "parsing/parser.ml" - - in - -# 2013 "parsing/parser.mly" - ( Cstr.mk _1 _2 ) -# 6024 "parsing/parser.ml" - - in - let _2 = - let _1 = _1_inlined1 in - -# 4115 "parsing/parser.mly" - ( _1 ) -# 6032 "parsing/parser.ml" - - in - let _loc__4_ = (_startpos__4_, _endpos__4_) in - let _loc__1_ = (_startpos__1_, _endpos__1_) in + let _v : (Extensions.comprehension_clause) = let _1 = + let _2 = + let _1 = _1_inlined1 in -# 1994 "parsing/parser.mly" - ( unclosed "object" _loc__1_ "end" _loc__4_ ) -# 6040 "parsing/parser.ml" +# 4257 "parsing/parser.mly" + ( _1 ) +# 5612 "parsing/parser.ml" in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1028 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 6050 "parsing/parser.ml" +# 4270 "parsing/parser.mly" + ( _1, _2 ) +# 5618 "parsing/parser.ml" in -# 1999 "parsing/parser.mly" - ( _1 ) -# 6056 "parsing/parser.ml" +# 2591 "parsing/parser.mly" + ( Extensions.In(_2, _4) ) +# 5624 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6065,63 +5633,45 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let _4 : (Parsetree.class_type) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.class_expr) = Obj.magic _2 in + let xs : (Extensions.comprehension_clause list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = -# 1996 "parsing/parser.mly" - ( Pcl_constraint(_2, _4) ) -# 6110 "parsing/parser.ml" + let _endpos = _endpos__3_ in + let _v : (Extensions.comprehension list) = let _2 = + let xs = +# 253 "" + ( List.rev xs ) +# 5664 "parsing/parser.ml" in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 1028 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 6119 "parsing/parser.ml" +# 1181 "parsing/parser.mly" + ( xs ) +# 5669 "parsing/parser.ml" in -# 1999 "parsing/parser.mly" - ( _1 ) -# 6125 "parsing/parser.ml" +# 2596 "parsing/parser.mly" + ( [({clauses= _2; guard=None} : Extensions.comprehension)] ) +# 5675 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6149,9 +5699,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -6164,37 +5714,29 @@ module Tables = struct }; } = _menhir_stack in let _5 : unit = Obj.magic _5 in - let _4 : (Parsetree.class_type) = Obj.magic _4 in + let _4 : (Parsetree.expression) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.class_expr) = Obj.magic _2 in + let xs : (Extensions.comprehension_clause list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.class_expr) = let _1 = - let _1 = - let _loc__5_ = (_startpos__5_, _endpos__5_) in - let _loc__1_ = (_startpos__1_, _endpos__1_) in - -# 1998 "parsing/parser.mly" - ( unclosed "(" _loc__1_ ")" _loc__5_ ) -# 6182 "parsing/parser.ml" - - in - let _endpos__1_ = _endpos__5_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _v : (Extensions.comprehension list) = let _2 = + let xs = +# 253 "" + ( List.rev xs ) +# 5729 "parsing/parser.ml" + in -# 1028 "parsing/parser.mly" - ( mkclass ~loc:_sloc _1 ) -# 6192 "parsing/parser.ml" +# 1181 "parsing/parser.mly" + ( xs ) +# 5734 "parsing/parser.ml" in -# 1999 "parsing/parser.mly" - ( _1 ) -# 6198 "parsing/parser.ml" +# 2598 "parsing/parser.mly" + ( [({clauses= _2; guard= Some _4} : Extensions.comprehension)] ) +# 5740 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6207,24 +5749,75 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xss; - MenhirLib.EngineTypes.startp = _startpos_xss_; - MenhirLib.EngineTypes.endp = _endpos_xss_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : (Extensions.comprehension list) = Obj.magic _3 in + let xs : (Extensions.comprehension_clause list) = Obj.magic xs in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Extensions.comprehension list) = let _2 = + let xs = +# 253 "" + ( List.rev xs ) +# 5780 "parsing/parser.ml" + in + +# 1181 "parsing/parser.mly" + ( xs ) +# 5785 "parsing/parser.ml" + + in + +# 2600 "parsing/parser.mly" + ( ({clauses= _2; guard=None} : Extensions.comprehension) :: _3 ) +# 5791 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -6236,620 +5829,30 @@ module Tables = struct }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let xss : (Parsetree.class_field list list) = Obj.magic xss in - let _1_inlined2 : (Parsetree.pattern) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _5 : (Extensions.comprehension list) = Obj.magic _5 in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let xs : (Extensions.comprehension_clause list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Parsetree.class_expr) = let _3 = - let _1 = _1_inlined2 in - let _2 = - let _1 = - let _1 = -# 260 "" - ( List.flatten xss ) -# 6255 "parsing/parser.ml" - in - -# 2026 "parsing/parser.mly" - ( _1 ) -# 6260 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in - let _endpos = _endpos__1_ in - let _startpos = _startpos__1_ in - -# 969 "parsing/parser.mly" - ( extra_cstr _startpos _endpos _1 ) -# 6269 "parsing/parser.ml" - - in - -# 2013 "parsing/parser.mly" - ( Cstr.mk _1 _2 ) -# 6275 "parsing/parser.ml" - - in - let _2 = - let _1 = _1_inlined1 in + let _endpos = _endpos__5_ in + let _v : (Extensions.comprehension list) = let _2 = + let xs = +# 253 "" + ( List.rev xs ) +# 5845 "parsing/parser.ml" + in -# 4115 "parsing/parser.mly" - ( _1 ) -# 6283 "parsing/parser.ml" +# 1181 "parsing/parser.mly" + ( xs ) +# 5850 "parsing/parser.ml" in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 2001 "parsing/parser.mly" - ( mkclass ~loc:_sloc ~attrs:_2 (Pcl_structure _3) ) -# 6292 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Parsetree.class_type) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Parsetree.class_type) = -# 2104 "parsing/parser.mly" - ( _1 ) -# 6317 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = codomain; - MenhirLib.EngineTypes.startp = _startpos_codomain_; - MenhirLib.EngineTypes.endp = _endpos_codomain_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = domain; - MenhirLib.EngineTypes.startp = _startpos_domain_; - MenhirLib.EngineTypes.endp = _endpos_domain_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = label; - MenhirLib.EngineTypes.startp = _startpos_label_; - MenhirLib.EngineTypes.endp = _endpos_label_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - } = _menhir_stack in - let codomain : (Parsetree.class_type) = Obj.magic codomain in - let _3 : unit = Obj.magic _3 in - let domain : (Parsetree.core_type) = Obj.magic domain in - let label : (string) = Obj.magic label in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_label_ in - let _endpos = _endpos_codomain_ in - let _v : (Parsetree.class_type) = let _1 = - let _1 = - let label = -# 3579 "parsing/parser.mly" - ( Optional label ) -# 6365 "parsing/parser.ml" - in - -# 2110 "parsing/parser.mly" - ( Pcty_arrow(label, domain, codomain) ) -# 6370 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1022 "parsing/parser.mly" - ( mkcty ~loc:_sloc _1 ) -# 6380 "parsing/parser.ml" - - in - -# 2111 "parsing/parser.mly" - ( _1 ) -# 6386 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = codomain; - MenhirLib.EngineTypes.startp = _startpos_codomain_; - MenhirLib.EngineTypes.endp = _endpos_codomain_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = domain; - MenhirLib.EngineTypes.startp = _startpos_domain_; - MenhirLib.EngineTypes.endp = _endpos_domain_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = label; - MenhirLib.EngineTypes.startp = _startpos_label_; - MenhirLib.EngineTypes.endp = _endpos_label_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - } = _menhir_stack in - let codomain : (Parsetree.class_type) = Obj.magic codomain in - let _3 : unit = Obj.magic _3 in - let domain : (Parsetree.core_type) = Obj.magic domain in - let _2 : unit = Obj.magic _2 in - let label : ( -# 789 "parsing/parser.mly" - (string) -# 6435 "parsing/parser.ml" - ) = Obj.magic label in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_label_ in - let _endpos = _endpos_codomain_ in - let _v : (Parsetree.class_type) = let _1 = - let _1 = - let label = -# 3581 "parsing/parser.mly" - ( Labelled label ) -# 6445 "parsing/parser.ml" - in - -# 2110 "parsing/parser.mly" - ( Pcty_arrow(label, domain, codomain) ) -# 6450 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1022 "parsing/parser.mly" - ( mkcty ~loc:_sloc _1 ) -# 6460 "parsing/parser.ml" - - in - -# 2111 "parsing/parser.mly" - ( _1 ) -# 6466 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = codomain; - MenhirLib.EngineTypes.startp = _startpos_codomain_; - MenhirLib.EngineTypes.endp = _endpos_codomain_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = domain; - MenhirLib.EngineTypes.startp = _startpos_domain_; - MenhirLib.EngineTypes.endp = _endpos_domain_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let codomain : (Parsetree.class_type) = Obj.magic codomain in - let _3 : unit = Obj.magic _3 in - let domain : (Parsetree.core_type) = Obj.magic domain in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_domain_ in - let _endpos = _endpos_codomain_ in - let _v : (Parsetree.class_type) = let _1 = - let _1 = - let label = -# 3583 "parsing/parser.mly" - ( Nolabel ) -# 6507 "parsing/parser.ml" - in - -# 2110 "parsing/parser.mly" - ( Pcty_arrow(label, domain, codomain) ) -# 6512 "parsing/parser.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_domain_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1022 "parsing/parser.mly" - ( mkcty ~loc:_sloc _1 ) -# 6522 "parsing/parser.ml" - - in - -# 2111 "parsing/parser.mly" - ( _1 ) -# 6528 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = bs; - MenhirLib.EngineTypes.startp = _startpos_bs_; - MenhirLib.EngineTypes.endp = _endpos_bs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = csig; - MenhirLib.EngineTypes.startp = _startpos_csig_; - MenhirLib.EngineTypes.endp = _endpos_csig_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _8; - MenhirLib.EngineTypes.startp = _startpos__8_; - MenhirLib.EngineTypes.endp = _endpos__8_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = virt; - MenhirLib.EngineTypes.startp = _startpos_virt_; - MenhirLib.EngineTypes.endp = _endpos_virt_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - }; - }; - }; - }; - } = _menhir_stack in - let bs : (Parsetree.class_type_declaration list) = Obj.magic bs in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let csig : (Parsetree.class_type) = Obj.magic csig in - let _8 : unit = Obj.magic _8 in - let _1_inlined2 : ( -# 789 "parsing/parser.mly" - (string) -# 6613 "parsing/parser.ml" - ) = Obj.magic _1_inlined2 in - let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in - let virt : (Asttypes.virtual_flag) = Obj.magic virt in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Asttypes.loc option) = Obj.magic ext in - let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos_bs_ in - let _v : (string Asttypes.loc option * Parsetree.class_type_declaration list) = let _1 = - let a = - let attrs2 = - let _1 = _1_inlined3 in - -# 4111 "parsing/parser.mly" - ( _1 ) -# 6631 "parsing/parser.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let id = - let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 975 "parsing/parser.mly" - ( mkrhs _1 _sloc ) -# 6643 "parsing/parser.ml" - - in - let attrs1 = - let _1 = _1_inlined1 in - -# 4115 "parsing/parser.mly" - ( _1 ) -# 6651 "parsing/parser.ml" - - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2249 "parsing/parser.mly" - ( - let attrs = attrs1 @ attrs2 in - let loc = make_loc _sloc in - let docs = symbol_docs _sloc in - ext, - Ci.mk id csig ~virt ~params ~attrs ~loc ~docs - ) -# 6666 "parsing/parser.ml" - - in - -# 1206 "parsing/parser.mly" - ( let (x, b) = a in x, b :: bs ) -# 6672 "parsing/parser.ml" - - in - -# 2237 "parsing/parser.mly" - ( _1 ) -# 6678 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let _1 : (Longident.t) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Longident.t) = -# 3883 "parsing/parser.mly" - ( _1 ) -# 6703 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - }; - }; - } = _menhir_stack in - let _6 : (Parsetree.expression) = Obj.magic _6 in - let _5 : (Asttypes.direction_flag) = Obj.magic _5 in - let _4 : (Parsetree.expression) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.pattern) = Obj.magic _2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : (string Asttypes.loc option) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in - let _v : (Extensions.comprehension_clause) = let _1 = - let _2 = - let _1 = _1_inlined1 in - -# 4115 "parsing/parser.mly" - ( _1 ) -# 6773 "parsing/parser.ml" - - in - -# 4128 "parsing/parser.mly" - ( _1, _2 ) -# 6779 "parsing/parser.ml" - - in - -# 2515 "parsing/parser.mly" - ( Extensions.From_to(_2, _4, _6, _5) ) -# 6785 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - } = _menhir_stack in - let _4 : (Parsetree.expression) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.pattern) = Obj.magic _2 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : (string Asttypes.loc option) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in - let _v : (Extensions.comprehension_clause) = let _1 = - let _2 = - let _1 = _1_inlined1 in - -# 4115 "parsing/parser.mly" - ( _1 ) -# 6841 "parsing/parser.ml" - - in - -# 4128 "parsing/parser.mly" - ( _1, _2 ) -# 6847 "parsing/parser.ml" - - in - -# 2516 "parsing/parser.mly" - ( Extensions.In(_2, _4) ) -# 6853 "parsing/parser.ml" +# 2602 "parsing/parser.mly" + ( ({clauses= _2; guard= Some _4}: Extensions.comprehension) :: _5 ) +# 5856 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6889,18 +5892,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 6893 "parsing/parser.ml" +# 5896 "parsing/parser.ml" in -# 1109 "parsing/parser.mly" +# 1181 "parsing/parser.mly" ( xs ) -# 6898 "parsing/parser.ml" +# 5901 "parsing/parser.ml" in -# 2521 "parsing/parser.mly" +# 2596 "parsing/parser.mly" ( [({clauses= _2; guard=None} : Extensions.comprehension)] ) -# 6904 "parsing/parser.ml" +# 5907 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6954,18 +5957,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 6958 "parsing/parser.ml" +# 5961 "parsing/parser.ml" in -# 1109 "parsing/parser.mly" +# 1181 "parsing/parser.mly" ( xs ) -# 6963 "parsing/parser.ml" +# 5966 "parsing/parser.ml" in -# 2523 "parsing/parser.mly" +# 2598 "parsing/parser.mly" ( [({clauses= _2; guard= Some _4} : Extensions.comprehension)] ) -# 6969 "parsing/parser.ml" +# 5972 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7005,18 +6008,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 7009 "parsing/parser.ml" +# 6012 "parsing/parser.ml" in -# 1109 "parsing/parser.mly" +# 1181 "parsing/parser.mly" ( xs ) -# 7014 "parsing/parser.ml" +# 6017 "parsing/parser.ml" in -# 2525 "parsing/parser.mly" +# 2600 "parsing/parser.mly" ( ({clauses= _2; guard=None} : Extensions.comprehension) :: _3 ) -# 7020 "parsing/parser.ml" +# 6023 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7070,250 +6073,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 7074 "parsing/parser.ml" +# 6077 "parsing/parser.ml" in -# 1109 "parsing/parser.mly" +# 1181 "parsing/parser.mly" ( xs ) -# 7079 "parsing/parser.ml" +# 6082 "parsing/parser.ml" in -# 2527 "parsing/parser.mly" +# 2602 "parsing/parser.mly" ( ({clauses= _2; guard= Some _4}: Extensions.comprehension) :: _5 ) -# 7085 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let xs : (Extensions.comprehension_clause list) = Obj.magic xs in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Extensions.comprehension list) = let _2 = - let xs = -# 253 "" - ( List.rev xs ) -# 7125 "parsing/parser.ml" - in - -# 1109 "parsing/parser.mly" - ( xs ) -# 7130 "parsing/parser.ml" - - in - -# 2521 "parsing/parser.mly" - ( [({clauses= _2; guard=None} : Extensions.comprehension)] ) -# 7136 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let _4 : (Parsetree.expression) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let xs : (Extensions.comprehension_clause list) = Obj.magic xs in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Extensions.comprehension list) = let _2 = - let xs = -# 253 "" - ( List.rev xs ) -# 7190 "parsing/parser.ml" - in - -# 1109 "parsing/parser.mly" - ( xs ) -# 7195 "parsing/parser.ml" - - in - -# 2523 "parsing/parser.mly" - ( [({clauses= _2; guard= Some _4} : Extensions.comprehension)] ) -# 7201 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - } = _menhir_stack in - let _3 : (Extensions.comprehension list) = Obj.magic _3 in - let xs : (Extensions.comprehension_clause list) = Obj.magic xs in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in - let _v : (Extensions.comprehension list) = let _2 = - let xs = -# 253 "" - ( List.rev xs ) -# 7241 "parsing/parser.ml" - in - -# 1109 "parsing/parser.mly" - ( xs ) -# 7246 "parsing/parser.ml" - - in - -# 2525 "parsing/parser.mly" - ( ({clauses= _2; guard=None} : Extensions.comprehension) :: _3 ) -# 7252 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _5; - MenhirLib.EngineTypes.startp = _startpos__5_; - MenhirLib.EngineTypes.endp = _endpos__5_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - }; - }; - }; - } = _menhir_stack in - let _5 : (Extensions.comprehension list) = Obj.magic _5 in - let _4 : (Parsetree.expression) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let xs : (Extensions.comprehension_clause list) = Obj.magic xs in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in - let _v : (Extensions.comprehension list) = let _2 = - let xs = -# 253 "" - ( List.rev xs ) -# 7306 "parsing/parser.ml" - in - -# 1109 "parsing/parser.mly" - ( xs ) -# 7311 "parsing/parser.ml" - - in - -# 2527 "parsing/parser.mly" - ( ({clauses= _2; guard= Some _4}: Extensions.comprehension) :: _5 ) -# 7317 "parsing/parser.ml" +# 6088 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7332,17 +6103,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 775 "parsing/parser.mly" +# 847 "parsing/parser.mly" (string * char option) -# 7338 "parsing/parser.ml" +# 6109 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 3766 "parsing/parser.mly" +# 3901 "parsing/parser.mly" ( let (n, m) = _1 in Pconst_integer (n, m) ) -# 7346 "parsing/parser.ml" +# 6117 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7361,17 +6132,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 733 "parsing/parser.mly" +# 805 "parsing/parser.mly" (char) -# 7367 "parsing/parser.ml" +# 6138 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 3767 "parsing/parser.mly" +# 3902 "parsing/parser.mly" ( Pconst_char _1 ) -# 7375 "parsing/parser.ml" +# 6146 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7390,17 +6161,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 829 "parsing/parser.mly" +# 901 "parsing/parser.mly" (string * Location.t * string option) -# 7396 "parsing/parser.ml" +# 6167 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 3768 "parsing/parser.mly" +# 3903 "parsing/parser.mly" ( let (s, strloc, d) = _1 in Pconst_string (s, strloc, d) ) -# 7404 "parsing/parser.ml" +# 6175 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7419,17 +6190,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 753 "parsing/parser.mly" +# 825 "parsing/parser.mly" (string * char option) -# 7425 "parsing/parser.ml" +# 6196 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 3769 "parsing/parser.mly" +# 3904 "parsing/parser.mly" ( let (f, m) = _1 in Pconst_float (f, m) ) -# 7433 "parsing/parser.ml" +# 6204 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7459,9 +6230,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.label) = -# 3840 "parsing/parser.mly" +# 3975 "parsing/parser.mly" ( "[]" ) -# 7465 "parsing/parser.ml" +# 6236 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7491,9 +6262,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.label) = -# 3841 "parsing/parser.mly" +# 3976 "parsing/parser.mly" ( "()" ) -# 7497 "parsing/parser.ml" +# 6268 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7516,9 +6287,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3842 "parsing/parser.mly" +# 3977 "parsing/parser.mly" ( "false" ) -# 7522 "parsing/parser.ml" +# 6293 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7541,9 +6312,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3843 "parsing/parser.mly" +# 3978 "parsing/parser.mly" ( "true" ) -# 7547 "parsing/parser.ml" +# 6318 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7562,17 +6333,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 842 "parsing/parser.mly" +# 914 "parsing/parser.mly" (string) -# 7568 "parsing/parser.ml" +# 6339 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3846 "parsing/parser.mly" +# 3981 "parsing/parser.mly" ( _1 ) -# 7576 "parsing/parser.ml" +# 6347 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7609,14 +6380,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Asttypes.label) = let _1 = -# 3837 "parsing/parser.mly" +# 3972 "parsing/parser.mly" ( "::" ) -# 7615 "parsing/parser.ml" +# 6386 "parsing/parser.ml" in -# 3847 "parsing/parser.mly" +# 3982 "parsing/parser.mly" ( _1 ) -# 7620 "parsing/parser.ml" +# 6391 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7639,9 +6410,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3848 "parsing/parser.mly" +# 3983 "parsing/parser.mly" ( _1 ) -# 7645 "parsing/parser.ml" +# 6416 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7664,9 +6435,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3851 "parsing/parser.mly" +# 3986 "parsing/parser.mly" ( _1 ) -# 7670 "parsing/parser.ml" +# 6441 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7717,14 +6488,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = let _3 = -# 3837 "parsing/parser.mly" +# 3972 "parsing/parser.mly" ( "::" ) -# 7723 "parsing/parser.ml" +# 6494 "parsing/parser.ml" in -# 3852 "parsing/parser.mly" +# 3987 "parsing/parser.mly" ( Ldot(_1,_3) ) -# 7728 "parsing/parser.ml" +# 6499 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7761,14 +6532,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = let _1 = -# 3837 "parsing/parser.mly" +# 3972 "parsing/parser.mly" ( "::" ) -# 7767 "parsing/parser.ml" +# 6538 "parsing/parser.ml" in -# 3853 "parsing/parser.mly" +# 3988 "parsing/parser.mly" ( Lident _1 ) -# 7772 "parsing/parser.ml" +# 6543 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7791,9 +6562,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3854 "parsing/parser.mly" +# 3989 "parsing/parser.mly" ( Lident _1 ) -# 7797 "parsing/parser.ml" +# 6568 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7830,9 +6601,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.core_type * Parsetree.core_type) = -# 2193 "parsing/parser.mly" +# 2265 "parsing/parser.mly" ( _1, _3 ) -# 7836 "parsing/parser.ml" +# 6607 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7859,42 +6630,42 @@ module Tables = struct let xs = let x = let gbl = -# 3971 "parsing/parser.mly" +# 4113 "parsing/parser.mly" ( Nothing ) -# 7865 "parsing/parser.ml" +# 6636 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3347 "parsing/parser.mly" +# 3452 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 7874 "parsing/parser.ml" +# 6645 "parsing/parser.ml" in -# 1093 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [ x ] ) -# 7880 "parsing/parser.ml" +# 6651 "parsing/parser.ml" in # 253 "" ( List.rev xs ) -# 7886 "parsing/parser.ml" +# 6657 "parsing/parser.ml" in -# 1113 "parsing/parser.mly" +# 1185 "parsing/parser.mly" ( xs ) -# 7892 "parsing/parser.ml" +# 6663 "parsing/parser.ml" in -# 3355 "parsing/parser.mly" +# 3460 "parsing/parser.mly" ( Pcstr_tuple tys ) -# 7898 "parsing/parser.ml" +# 6669 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7928,42 +6699,42 @@ module Tables = struct let xs = let x = let gbl = -# 3972 "parsing/parser.mly" +# 4114 "parsing/parser.mly" ( Global ) -# 7934 "parsing/parser.ml" +# 6705 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3347 "parsing/parser.mly" +# 3452 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 7943 "parsing/parser.ml" +# 6714 "parsing/parser.ml" in -# 1093 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [ x ] ) -# 7949 "parsing/parser.ml" +# 6720 "parsing/parser.ml" in # 253 "" ( List.rev xs ) -# 7955 "parsing/parser.ml" +# 6726 "parsing/parser.ml" in -# 1113 "parsing/parser.mly" +# 1185 "parsing/parser.mly" ( xs ) -# 7961 "parsing/parser.ml" +# 6732 "parsing/parser.ml" in -# 3355 "parsing/parser.mly" +# 3460 "parsing/parser.mly" ( Pcstr_tuple tys ) -# 7967 "parsing/parser.ml" +# 6738 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -7997,42 +6768,42 @@ module Tables = struct let xs = let x = let gbl = -# 3973 "parsing/parser.mly" +# 4115 "parsing/parser.mly" ( Nonlocal ) -# 8003 "parsing/parser.ml" +# 6774 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3347 "parsing/parser.mly" +# 3452 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 8012 "parsing/parser.ml" +# 6783 "parsing/parser.ml" in -# 1093 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [ x ] ) -# 8018 "parsing/parser.ml" +# 6789 "parsing/parser.ml" in # 253 "" ( List.rev xs ) -# 8024 "parsing/parser.ml" +# 6795 "parsing/parser.ml" in -# 1113 "parsing/parser.mly" +# 1185 "parsing/parser.mly" ( xs ) -# 8030 "parsing/parser.ml" +# 6801 "parsing/parser.ml" in -# 3355 "parsing/parser.mly" +# 3460 "parsing/parser.mly" ( Pcstr_tuple tys ) -# 8036 "parsing/parser.ml" +# 6807 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8074,42 +6845,42 @@ module Tables = struct let x = let _endpos__0_ = _endpos__2_ in let gbl = -# 3971 "parsing/parser.mly" +# 4113 "parsing/parser.mly" ( Nothing ) -# 8080 "parsing/parser.ml" +# 6851 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3347 "parsing/parser.mly" +# 3452 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 8089 "parsing/parser.ml" +# 6860 "parsing/parser.ml" in -# 1097 "parsing/parser.mly" +# 1169 "parsing/parser.mly" ( x :: xs ) -# 8095 "parsing/parser.ml" +# 6866 "parsing/parser.ml" in # 253 "" ( List.rev xs ) -# 8101 "parsing/parser.ml" +# 6872 "parsing/parser.ml" in -# 1113 "parsing/parser.mly" +# 1185 "parsing/parser.mly" ( xs ) -# 8107 "parsing/parser.ml" +# 6878 "parsing/parser.ml" in -# 3355 "parsing/parser.mly" +# 3460 "parsing/parser.mly" ( Pcstr_tuple tys ) -# 8113 "parsing/parser.ml" +# 6884 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8157,42 +6928,42 @@ module Tables = struct let xs = let x = let gbl = -# 3972 "parsing/parser.mly" +# 4114 "parsing/parser.mly" ( Global ) -# 8163 "parsing/parser.ml" +# 6934 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3347 "parsing/parser.mly" +# 3452 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 8172 "parsing/parser.ml" +# 6943 "parsing/parser.ml" in -# 1097 "parsing/parser.mly" +# 1169 "parsing/parser.mly" ( x :: xs ) -# 8178 "parsing/parser.ml" +# 6949 "parsing/parser.ml" in # 253 "" ( List.rev xs ) -# 8184 "parsing/parser.ml" +# 6955 "parsing/parser.ml" in -# 1113 "parsing/parser.mly" +# 1185 "parsing/parser.mly" ( xs ) -# 8190 "parsing/parser.ml" +# 6961 "parsing/parser.ml" in -# 3355 "parsing/parser.mly" +# 3460 "parsing/parser.mly" ( Pcstr_tuple tys ) -# 8196 "parsing/parser.ml" +# 6967 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8240,42 +7011,42 @@ module Tables = struct let xs = let x = let gbl = -# 3973 "parsing/parser.mly" +# 4115 "parsing/parser.mly" ( Nonlocal ) -# 8246 "parsing/parser.ml" +# 7017 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3347 "parsing/parser.mly" +# 3452 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 8255 "parsing/parser.ml" +# 7026 "parsing/parser.ml" in -# 1097 "parsing/parser.mly" +# 1169 "parsing/parser.mly" ( x :: xs ) -# 8261 "parsing/parser.ml" +# 7032 "parsing/parser.ml" in # 253 "" ( List.rev xs ) -# 8267 "parsing/parser.ml" +# 7038 "parsing/parser.ml" in -# 1113 "parsing/parser.mly" +# 1185 "parsing/parser.mly" ( xs ) -# 8273 "parsing/parser.ml" +# 7044 "parsing/parser.ml" in -# 3355 "parsing/parser.mly" +# 3460 "parsing/parser.mly" ( Pcstr_tuple tys ) -# 8279 "parsing/parser.ml" +# 7050 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8312,9 +7083,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.constructor_arguments) = -# 3357 "parsing/parser.mly" +# 3462 "parsing/parser.mly" ( Pcstr_record _2 ) -# 8318 "parsing/parser.ml" +# 7089 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8337,9 +7108,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constructor_declaration list) = -# 3265 "parsing/parser.mly" +# 3370 "parsing/parser.mly" ( [] ) -# 8343 "parsing/parser.ml" +# 7114 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8362,14 +7133,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_xs_ in let _v : (Parsetree.constructor_declaration list) = let cs = -# 1198 "parsing/parser.mly" +# 1270 "parsing/parser.mly" ( List.rev xs ) -# 8368 "parsing/parser.ml" +# 7139 "parsing/parser.ml" in -# 3267 "parsing/parser.mly" +# 3372 "parsing/parser.mly" ( cs ) -# 8373 "parsing/parser.ml" +# 7144 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8392,14 +7163,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = let _1 = -# 3521 "parsing/parser.mly" +# 3631 "parsing/parser.mly" ( _1 ) -# 8398 "parsing/parser.ml" +# 7169 "parsing/parser.ml" in -# 3511 "parsing/parser.mly" +# 3621 "parsing/parser.mly" ( _1 ) -# 8403 "parsing/parser.ml" +# 7174 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8429,9 +7200,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type) = -# 3513 "parsing/parser.mly" +# 3623 "parsing/parser.mly" ( Typ.attr _1 _2 ) -# 8435 "parsing/parser.ml" +# 7206 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8454,9 +7225,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.direction_flag) = -# 3949 "parsing/parser.mly" +# 4091 "parsing/parser.mly" ( Upto ) -# 8460 "parsing/parser.ml" +# 7231 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8479,9 +7250,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.direction_flag) = -# 3950 "parsing/parser.mly" +# 4092 "parsing/parser.mly" ( Downto ) -# 8485 "parsing/parser.ml" +# 7256 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8504,9 +7275,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = -# 2387 "parsing/parser.mly" +# 2460 "parsing/parser.mly" ( _1 ) -# 8510 "parsing/parser.ml" +# 7281 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8584,9 +7355,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 8590 "parsing/parser.ml" +# 7361 "parsing/parser.ml" in let _3 = @@ -8594,21 +7365,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 8600 "parsing/parser.ml" +# 7371 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 8606 "parsing/parser.ml" +# 7377 "parsing/parser.ml" in -# 2422 "parsing/parser.mly" +# 2495 "parsing/parser.mly" ( Pexp_letmodule(_4, _5, _7), _3 ) -# 8612 "parsing/parser.ml" +# 7383 "parsing/parser.ml" in let _endpos__1_ = _endpos__7_ in @@ -8616,10 +7387,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 8623 "parsing/parser.ml" +# 7394 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8688,8 +7459,8 @@ module Tables = struct let _6 : (Parsetree.expression) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in - let _2_inlined1 : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = Obj.magic _2_inlined1 in + let _2_inlined1 : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic _2_inlined1 in let _1_inlined3 : (Asttypes.label) = Obj.magic _1_inlined3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in @@ -8704,9 +7475,9 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 8710 "parsing/parser.ml" +# 7481 "parsing/parser.ml" in let _endpos__3_ = _endpos__1_inlined1_ in @@ -8715,19 +7486,19 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 8721 "parsing/parser.ml" +# 7492 "parsing/parser.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3329 "parsing/parser.mly" +# 3434 "parsing/parser.mly" ( let vars, args, res = _2 in Te.decl _1 ~vars ~args ?res ~attrs:_3 ~loc:(make_loc _sloc) ) -# 8731 "parsing/parser.ml" +# 7502 "parsing/parser.ml" in let _3 = @@ -8735,21 +7506,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 8741 "parsing/parser.ml" +# 7512 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 8747 "parsing/parser.ml" +# 7518 "parsing/parser.ml" in -# 2424 "parsing/parser.mly" +# 2497 "parsing/parser.mly" ( Pexp_letexception(_4, _6), _3 ) -# 8753 "parsing/parser.ml" +# 7524 "parsing/parser.ml" in let _endpos__1_ = _endpos__6_ in @@ -8757,10 +7528,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 8764 "parsing/parser.ml" +# 7535 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8830,28 +7601,28 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 8836 "parsing/parser.ml" +# 7607 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 8842 "parsing/parser.ml" +# 7613 "parsing/parser.ml" in let _3 = -# 4015 "parsing/parser.mly" +# 4157 "parsing/parser.mly" ( Fresh ) -# 8848 "parsing/parser.ml" +# 7619 "parsing/parser.ml" in -# 2426 "parsing/parser.mly" +# 2499 "parsing/parser.mly" ( let open_loc = make_loc (_startpos__2_, _endpos__5_) in let od = Opn.mk _5 ~override:_3 ~loc:open_loc in Pexp_open(od, _7), _4 ) -# 8855 "parsing/parser.ml" +# 7626 "parsing/parser.ml" in let _endpos__1_ = _endpos__7_ in @@ -8859,10 +7630,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 8866 "parsing/parser.ml" +# 7637 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -8939,28 +7710,28 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 8945 "parsing/parser.ml" +# 7716 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 8951 "parsing/parser.ml" +# 7722 "parsing/parser.ml" in let _3 = -# 4016 "parsing/parser.mly" +# 4158 "parsing/parser.mly" ( Override ) -# 8957 "parsing/parser.ml" +# 7728 "parsing/parser.ml" in -# 2426 "parsing/parser.mly" +# 2499 "parsing/parser.mly" ( let open_loc = make_loc (_startpos__2_, _endpos__5_) in let od = Opn.mk _5 ~override:_3 ~loc:open_loc in Pexp_open(od, _7), _4 ) -# 8964 "parsing/parser.ml" +# 7735 "parsing/parser.ml" in let _endpos__1_ = _endpos__7_ in @@ -8968,10 +7739,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 8975 "parsing/parser.ml" +# 7746 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9020,18 +7791,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 9024 "parsing/parser.ml" +# 7795 "parsing/parser.ml" in -# 1170 "parsing/parser.mly" +# 1242 "parsing/parser.mly" ( xs ) -# 9029 "parsing/parser.ml" +# 7800 "parsing/parser.ml" in -# 2797 "parsing/parser.mly" +# 2876 "parsing/parser.mly" ( xs ) -# 9035 "parsing/parser.ml" +# 7806 "parsing/parser.ml" in let _2 = @@ -9039,21 +7810,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 9045 "parsing/parser.ml" +# 7816 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 9051 "parsing/parser.ml" +# 7822 "parsing/parser.ml" in -# 2430 "parsing/parser.mly" +# 2503 "parsing/parser.mly" ( Pexp_function _3, _2 ) -# 9057 "parsing/parser.ml" +# 7828 "parsing/parser.ml" in let _endpos__1_ = _endpos_xs_ in @@ -9061,10 +7832,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 9068 "parsing/parser.ml" +# 7839 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9120,22 +7891,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 9126 "parsing/parser.ml" +# 7897 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 9132 "parsing/parser.ml" +# 7903 "parsing/parser.ml" in -# 2432 "parsing/parser.mly" +# 2505 "parsing/parser.mly" ( let (l,o,p) = _3 in Pexp_fun(l, o, p, _4), _2 ) -# 9139 "parsing/parser.ml" +# 7910 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -9143,10 +7914,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 9150 "parsing/parser.ml" +# 7921 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9169,9 +7940,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _4; @@ -9208,7 +7979,7 @@ module Tables = struct } = _menhir_stack in let _7 : (Parsetree.expression) = Obj.magic _7 in let _6 : unit = Obj.magic _6 in - let xs : (string Asttypes.loc list) = Obj.magic xs in + let _5 : ((string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) list) = Obj.magic _5 in let _4 : unit = Obj.magic _4 in let _3 : unit = Obj.magic _3 in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in @@ -9218,34 +7989,29 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__7_ in let _v : (Parsetree.expression) = let _1 = - let _5 = -# 2651 "parsing/parser.mly" - ( xs ) -# 9225 "parsing/parser.ml" - in let _2 = let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 9234 "parsing/parser.ml" +# 8000 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 9240 "parsing/parser.ml" +# 8006 "parsing/parser.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2435 "parsing/parser.mly" +# 2508 "parsing/parser.mly" ( (mk_newtypes ~loc:_sloc _5 _7).pexp_desc, _2 ) -# 9249 "parsing/parser.ml" +# 8015 "parsing/parser.ml" in let _endpos__1_ = _endpos__7_ in @@ -9253,10 +8019,144 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 9260 "parsing/parser.ml" +# 8026 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _9; + MenhirLib.EngineTypes.startp = _startpos__9_; + MenhirLib.EngineTypes.endp = _endpos__9_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _9 : (Parsetree.expression) = Obj.magic _9 in + let _8 : unit = Obj.magic _8 in + let _7 : (Asttypes.layout_annotation Asttypes.loc) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _1_inlined3 : ( +# 861 "parsing/parser.mly" + (string) +# 8105 "parsing/parser.ml" + ) = Obj.magic _1_inlined3 in + let _4 : unit = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__9_ in + let _v : (Parsetree.expression) = let _1 = + let _5 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 8124 "parsing/parser.ml" + + in + let _2 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 4257 "parsing/parser.mly" + ( _1 ) +# 8134 "parsing/parser.ml" + + in + +# 4270 "parsing/parser.mly" + ( _1, _2 ) +# 8140 "parsing/parser.ml" + + in + let _endpos = _endpos__9_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2510 "parsing/parser.mly" + ( (mk_newtypes ~loc:_sloc [_5, Some _7] _9).pexp_desc, _2 ) +# 8149 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__9_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2462 "parsing/parser.mly" + ( let desc, attrs = _1 in + mkexp_attrs ~loc:_sloc desc attrs ) +# 8160 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9319,18 +8219,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 9323 "parsing/parser.ml" +# 8223 "parsing/parser.ml" in -# 1170 "parsing/parser.mly" +# 1242 "parsing/parser.mly" ( xs ) -# 9328 "parsing/parser.ml" +# 8228 "parsing/parser.ml" in -# 2797 "parsing/parser.mly" +# 2876 "parsing/parser.mly" ( xs ) -# 9334 "parsing/parser.ml" +# 8234 "parsing/parser.ml" in let _2 = @@ -9338,21 +8238,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 9344 "parsing/parser.ml" +# 8244 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 9350 "parsing/parser.ml" +# 8250 "parsing/parser.ml" in -# 2437 "parsing/parser.mly" +# 2512 "parsing/parser.mly" ( Pexp_match(_3, _5), _2 ) -# 9356 "parsing/parser.ml" +# 8256 "parsing/parser.ml" in let _endpos__1_ = _endpos_xs_ in @@ -9360,10 +8260,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 9367 "parsing/parser.ml" +# 8267 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9426,18 +8326,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 9430 "parsing/parser.ml" +# 8330 "parsing/parser.ml" in -# 1170 "parsing/parser.mly" +# 1242 "parsing/parser.mly" ( xs ) -# 9435 "parsing/parser.ml" +# 8335 "parsing/parser.ml" in -# 2797 "parsing/parser.mly" +# 2876 "parsing/parser.mly" ( xs ) -# 9441 "parsing/parser.ml" +# 8341 "parsing/parser.ml" in let _2 = @@ -9445,21 +8345,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 9451 "parsing/parser.ml" +# 8351 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 9457 "parsing/parser.ml" +# 8357 "parsing/parser.ml" in -# 2439 "parsing/parser.mly" +# 2514 "parsing/parser.mly" ( Pexp_try(_3, _5), _2 ) -# 9463 "parsing/parser.ml" +# 8363 "parsing/parser.ml" in let _endpos__1_ = _endpos_xs_ in @@ -9467,10 +8367,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 9474 "parsing/parser.ml" +# 8374 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9533,21 +8433,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 9539 "parsing/parser.ml" +# 8439 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 9545 "parsing/parser.ml" +# 8445 "parsing/parser.ml" in -# 2441 "parsing/parser.mly" +# 2516 "parsing/parser.mly" ( syntax_error() ) -# 9551 "parsing/parser.ml" +# 8451 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -9555,10 +8455,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 9562 "parsing/parser.ml" +# 8462 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9635,21 +8535,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 9641 "parsing/parser.ml" +# 8541 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 9647 "parsing/parser.ml" +# 8547 "parsing/parser.ml" in -# 2443 "parsing/parser.mly" +# 2518 "parsing/parser.mly" ( Pexp_ifthenelse(_3, _5, Some _7), _2 ) -# 9653 "parsing/parser.ml" +# 8553 "parsing/parser.ml" in let _endpos__1_ = _endpos__7_ in @@ -9657,10 +8557,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 9664 "parsing/parser.ml" +# 8564 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9723,21 +8623,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 9729 "parsing/parser.ml" +# 8629 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 9735 "parsing/parser.ml" +# 8635 "parsing/parser.ml" in -# 2445 "parsing/parser.mly" +# 2520 "parsing/parser.mly" ( Pexp_ifthenelse(_3, _5, None), _2 ) -# 9741 "parsing/parser.ml" +# 8641 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -9745,10 +8645,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 9752 "parsing/parser.ml" +# 8652 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9818,21 +8718,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 9824 "parsing/parser.ml" +# 8724 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 9830 "parsing/parser.ml" +# 8730 "parsing/parser.ml" in -# 2447 "parsing/parser.mly" +# 2522 "parsing/parser.mly" ( Pexp_while(_3, _5), _2 ) -# 9836 "parsing/parser.ml" +# 8736 "parsing/parser.ml" in let _endpos__1_ = _endpos__6_ in @@ -9840,10 +8740,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 9847 "parsing/parser.ml" +# 8747 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -9941,21 +8841,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 9947 "parsing/parser.ml" +# 8847 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 9953 "parsing/parser.ml" +# 8853 "parsing/parser.ml" in -# 2450 "parsing/parser.mly" +# 2525 "parsing/parser.mly" ( Pexp_for(_3, _5, _7, _6, _9), _2 ) -# 9959 "parsing/parser.ml" +# 8859 "parsing/parser.ml" in let _endpos__1_ = _endpos__10_ in @@ -9963,10 +8863,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 9970 "parsing/parser.ml" +# 8870 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10015,21 +8915,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 10021 "parsing/parser.ml" +# 8921 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 10027 "parsing/parser.ml" +# 8927 "parsing/parser.ml" in -# 2452 "parsing/parser.mly" +# 2527 "parsing/parser.mly" ( Pexp_assert _3, _2 ) -# 10033 "parsing/parser.ml" +# 8933 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -10037,10 +8937,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 10044 "parsing/parser.ml" +# 8944 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10089,21 +8989,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 10095 "parsing/parser.ml" +# 8995 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 10101 "parsing/parser.ml" +# 9001 "parsing/parser.ml" in -# 2454 "parsing/parser.mly" +# 2529 "parsing/parser.mly" ( Pexp_lazy _3, _2 ) -# 10107 "parsing/parser.ml" +# 9007 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -10111,10 +9011,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2389 "parsing/parser.mly" +# 2462 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 10118 "parsing/parser.ml" +# 9018 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10149,18 +9049,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 10153 "parsing/parser.ml" +# 9053 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 10158 "parsing/parser.ml" +# 9058 "parsing/parser.ml" in -# 2458 "parsing/parser.mly" +# 2533 "parsing/parser.mly" ( Pexp_apply(_1, _2) ) -# 10164 "parsing/parser.ml" +# 9064 "parsing/parser.ml" in let _endpos__1_ = _endpos_xs_ in @@ -10168,15 +9068,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10174 "parsing/parser.ml" +# 9074 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 10180 "parsing/parser.ml" +# 9080 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10205,24 +9105,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 10209 "parsing/parser.ml" +# 9109 "parsing/parser.ml" in -# 1137 "parsing/parser.mly" +# 1209 "parsing/parser.mly" ( xs ) -# 10214 "parsing/parser.ml" +# 9114 "parsing/parser.ml" in -# 2824 "parsing/parser.mly" +# 2905 "parsing/parser.mly" ( es ) -# 10220 "parsing/parser.ml" +# 9120 "parsing/parser.ml" in -# 2460 "parsing/parser.mly" +# 2535 "parsing/parser.mly" ( Pexp_tuple(_1) ) -# 10226 "parsing/parser.ml" +# 9126 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in @@ -10230,15 +9130,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10236 "parsing/parser.ml" +# 9136 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 10242 "parsing/parser.ml" +# 9142 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10274,15 +9174,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 10280 "parsing/parser.ml" +# 9180 "parsing/parser.ml" in -# 2462 "parsing/parser.mly" +# 2537 "parsing/parser.mly" ( Pexp_construct(_1, Some _2) ) -# 10286 "parsing/parser.ml" +# 9186 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -10290,15 +9190,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10296 "parsing/parser.ml" +# 9196 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 10302 "parsing/parser.ml" +# 9202 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10329,24 +9229,24 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2464 "parsing/parser.mly" +# 2539 "parsing/parser.mly" ( Pexp_variant(_1, Some _2) ) -# 10335 "parsing/parser.ml" +# 9235 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10344 "parsing/parser.ml" +# 9244 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 10350 "parsing/parser.ml" +# 9250 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10378,9 +9278,9 @@ module Tables = struct } = _menhir_stack in let e2 : (Parsetree.expression) = Obj.magic e2 in let op : ( -# 765 "parsing/parser.mly" +# 837 "parsing/parser.mly" (string) -# 10384 "parsing/parser.ml" +# 9284 "parsing/parser.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -10390,24 +9290,24 @@ module Tables = struct let _1 = let op = let _1 = -# 3810 "parsing/parser.mly" +# 3945 "parsing/parser.mly" ( op ) -# 10396 "parsing/parser.ml" +# 9296 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10405 "parsing/parser.ml" +# 9305 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10411 "parsing/parser.ml" +# 9311 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10415,15 +9315,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10421 "parsing/parser.ml" +# 9321 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 10427 "parsing/parser.ml" +# 9327 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10455,9 +9355,9 @@ module Tables = struct } = _menhir_stack in let e2 : (Parsetree.expression) = Obj.magic e2 in let op : ( -# 766 "parsing/parser.mly" +# 838 "parsing/parser.mly" (string) -# 10461 "parsing/parser.ml" +# 9361 "parsing/parser.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -10467,24 +9367,24 @@ module Tables = struct let _1 = let op = let _1 = -# 3811 "parsing/parser.mly" +# 3946 "parsing/parser.mly" ( op ) -# 10473 "parsing/parser.ml" +# 9373 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10482 "parsing/parser.ml" +# 9382 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10488 "parsing/parser.ml" +# 9388 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10492,15 +9392,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10498 "parsing/parser.ml" +# 9398 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 10504 "parsing/parser.ml" +# 9404 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10532,9 +9432,9 @@ module Tables = struct } = _menhir_stack in let e2 : (Parsetree.expression) = Obj.magic e2 in let op : ( -# 767 "parsing/parser.mly" +# 839 "parsing/parser.mly" (string) -# 10538 "parsing/parser.ml" +# 9438 "parsing/parser.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -10544,24 +9444,24 @@ module Tables = struct let _1 = let op = let _1 = -# 3812 "parsing/parser.mly" +# 3947 "parsing/parser.mly" ( op ) -# 10550 "parsing/parser.ml" +# 9450 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10559 "parsing/parser.ml" +# 9459 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10565 "parsing/parser.ml" +# 9465 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10569,15 +9469,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10575 "parsing/parser.ml" +# 9475 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 10581 "parsing/parser.ml" +# 9481 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10609,9 +9509,9 @@ module Tables = struct } = _menhir_stack in let e2 : (Parsetree.expression) = Obj.magic e2 in let op : ( -# 768 "parsing/parser.mly" +# 840 "parsing/parser.mly" (string) -# 10615 "parsing/parser.ml" +# 9515 "parsing/parser.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -10621,24 +9521,24 @@ module Tables = struct let _1 = let op = let _1 = -# 3813 "parsing/parser.mly" +# 3948 "parsing/parser.mly" ( op ) -# 10627 "parsing/parser.ml" +# 9527 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10636 "parsing/parser.ml" +# 9536 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10642 "parsing/parser.ml" +# 9542 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10646,15 +9546,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10652 "parsing/parser.ml" +# 9552 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 10658 "parsing/parser.ml" +# 9558 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10686,9 +9586,9 @@ module Tables = struct } = _menhir_stack in let e2 : (Parsetree.expression) = Obj.magic e2 in let op : ( -# 769 "parsing/parser.mly" +# 841 "parsing/parser.mly" (string) -# 10692 "parsing/parser.ml" +# 9592 "parsing/parser.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -10698,24 +9598,24 @@ module Tables = struct let _1 = let op = let _1 = -# 3814 "parsing/parser.mly" +# 3949 "parsing/parser.mly" ( op ) -# 10704 "parsing/parser.ml" +# 9604 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10713 "parsing/parser.ml" +# 9613 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10719 "parsing/parser.ml" +# 9619 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10723,15 +9623,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10729 "parsing/parser.ml" +# 9629 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 10735 "parsing/parser.ml" +# 9635 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10771,23 +9671,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3815 "parsing/parser.mly" +# 3950 "parsing/parser.mly" ("+") -# 10777 "parsing/parser.ml" +# 9677 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10785 "parsing/parser.ml" +# 9685 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10791 "parsing/parser.ml" +# 9691 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10795,15 +9695,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10801 "parsing/parser.ml" +# 9701 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 10807 "parsing/parser.ml" +# 9707 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10843,23 +9743,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3816 "parsing/parser.mly" +# 3951 "parsing/parser.mly" ("+.") -# 10849 "parsing/parser.ml" +# 9749 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10857 "parsing/parser.ml" +# 9757 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10863 "parsing/parser.ml" +# 9763 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10867,15 +9767,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10873 "parsing/parser.ml" +# 9773 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 10879 "parsing/parser.ml" +# 9779 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10915,23 +9815,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3817 "parsing/parser.mly" +# 3952 "parsing/parser.mly" ("+=") -# 10921 "parsing/parser.ml" +# 9821 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 10929 "parsing/parser.ml" +# 9829 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 10935 "parsing/parser.ml" +# 9835 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -10939,15 +9839,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 10945 "parsing/parser.ml" +# 9845 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 10951 "parsing/parser.ml" +# 9851 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10987,23 +9887,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3818 "parsing/parser.mly" +# 3953 "parsing/parser.mly" ("-") -# 10993 "parsing/parser.ml" +# 9893 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 11001 "parsing/parser.ml" +# 9901 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 11007 "parsing/parser.ml" +# 9907 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -11011,15 +9911,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 11017 "parsing/parser.ml" +# 9917 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 11023 "parsing/parser.ml" +# 9923 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11059,23 +9959,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3819 "parsing/parser.mly" +# 3954 "parsing/parser.mly" ("-.") -# 11065 "parsing/parser.ml" +# 9965 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 11073 "parsing/parser.ml" +# 9973 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 11079 "parsing/parser.ml" +# 9979 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -11083,15 +9983,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 11089 "parsing/parser.ml" +# 9989 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 11095 "parsing/parser.ml" +# 9995 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11131,23 +10031,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3820 "parsing/parser.mly" +# 3955 "parsing/parser.mly" ("*") -# 11137 "parsing/parser.ml" +# 10037 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 11145 "parsing/parser.ml" +# 10045 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 11151 "parsing/parser.ml" +# 10051 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -11155,15 +10055,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 11161 "parsing/parser.ml" +# 10061 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 11167 "parsing/parser.ml" +# 10067 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11203,23 +10103,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3821 "parsing/parser.mly" +# 3956 "parsing/parser.mly" ("%") -# 11209 "parsing/parser.ml" +# 10109 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 11217 "parsing/parser.ml" +# 10117 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 11223 "parsing/parser.ml" +# 10123 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -11227,15 +10127,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 11233 "parsing/parser.ml" +# 10133 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 11239 "parsing/parser.ml" +# 10139 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11275,23 +10175,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3822 "parsing/parser.mly" +# 3957 "parsing/parser.mly" ("=") -# 11281 "parsing/parser.ml" +# 10181 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 11289 "parsing/parser.ml" +# 10189 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 11295 "parsing/parser.ml" +# 10195 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -11299,15 +10199,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 11305 "parsing/parser.ml" +# 10205 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 11311 "parsing/parser.ml" +# 10211 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11347,23 +10247,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3823 "parsing/parser.mly" +# 3958 "parsing/parser.mly" ("<") -# 11353 "parsing/parser.ml" +# 10253 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 11361 "parsing/parser.ml" +# 10261 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 11367 "parsing/parser.ml" +# 10267 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -11371,15 +10271,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 11377 "parsing/parser.ml" +# 10277 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 11383 "parsing/parser.ml" +# 10283 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11419,23 +10319,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3824 "parsing/parser.mly" +# 3959 "parsing/parser.mly" (">") -# 11425 "parsing/parser.ml" +# 10325 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 11433 "parsing/parser.ml" +# 10333 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 11439 "parsing/parser.ml" +# 10339 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -11443,15 +10343,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 11449 "parsing/parser.ml" +# 10349 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 11455 "parsing/parser.ml" +# 10355 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11491,23 +10391,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3825 "parsing/parser.mly" +# 3960 "parsing/parser.mly" ("or") -# 11497 "parsing/parser.ml" +# 10397 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 11505 "parsing/parser.ml" +# 10405 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 11511 "parsing/parser.ml" +# 10411 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -11515,15 +10415,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 11521 "parsing/parser.ml" +# 10421 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 11527 "parsing/parser.ml" +# 10427 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11563,23 +10463,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3826 "parsing/parser.mly" +# 3961 "parsing/parser.mly" ("||") -# 11569 "parsing/parser.ml" +# 10469 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 11577 "parsing/parser.ml" +# 10477 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 11583 "parsing/parser.ml" +# 10483 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -11587,15 +10487,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 11593 "parsing/parser.ml" +# 10493 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 11599 "parsing/parser.ml" +# 10499 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11635,23 +10535,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3827 "parsing/parser.mly" +# 3962 "parsing/parser.mly" ("&") -# 11641 "parsing/parser.ml" +# 10541 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 11649 "parsing/parser.ml" +# 10549 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 11655 "parsing/parser.ml" +# 10555 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -11659,15 +10559,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 11665 "parsing/parser.ml" +# 10565 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 11671 "parsing/parser.ml" +# 10571 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11707,23 +10607,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3828 "parsing/parser.mly" +# 3963 "parsing/parser.mly" ("&&") -# 11713 "parsing/parser.ml" +# 10613 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 11721 "parsing/parser.ml" +# 10621 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 11727 "parsing/parser.ml" +# 10627 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -11731,15 +10631,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 11737 "parsing/parser.ml" +# 10637 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 11743 "parsing/parser.ml" +# 10643 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11779,23 +10679,23 @@ module Tables = struct let _1 = let op = let _1 = -# 3829 "parsing/parser.mly" +# 3964 "parsing/parser.mly" (":=") -# 11785 "parsing/parser.ml" +# 10685 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 11793 "parsing/parser.ml" +# 10693 "parsing/parser.ml" in -# 2466 "parsing/parser.mly" +# 2541 "parsing/parser.mly" ( mkinfix e1 op e2 ) -# 11799 "parsing/parser.ml" +# 10699 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_e2_, _startpos_e1_) in @@ -11803,15 +10703,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 11809 "parsing/parser.ml" +# 10709 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 11815 "parsing/parser.ml" +# 10715 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11844,9 +10744,9 @@ module Tables = struct let _1 = let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2468 "parsing/parser.mly" +# 2543 "parsing/parser.mly" ( mkuminus ~oploc:_loc__1_ _1 _2 ) -# 11850 "parsing/parser.ml" +# 10750 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -11854,15 +10754,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 11860 "parsing/parser.ml" +# 10760 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 11866 "parsing/parser.ml" +# 10766 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11895,9 +10795,9 @@ module Tables = struct let _1 = let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2470 "parsing/parser.mly" +# 2545 "parsing/parser.mly" ( mkuplus ~oploc:_loc__1_ _1 _2 ) -# 11901 "parsing/parser.ml" +# 10801 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -11905,15 +10805,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 11911 "parsing/parser.ml" +# 10811 "parsing/parser.ml" in -# 2392 "parsing/parser.mly" +# 2465 "parsing/parser.mly" ( _1 ) -# 11917 "parsing/parser.ml" +# 10817 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11953,9 +10853,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2394 "parsing/parser.mly" +# 2467 "parsing/parser.mly" ( expr_of_let_bindings ~loc:_sloc _1 _3 ) -# 11959 "parsing/parser.ml" +# 10859 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11995,9 +10895,9 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = Obj.magic bindings in let _1 : ( -# 771 "parsing/parser.mly" +# 843 "parsing/parser.mly" (string) -# 12001 "parsing/parser.ml" +# 10901 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -12007,9 +10907,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 12013 "parsing/parser.ml" +# 10913 "parsing/parser.ml" in let _startpos_pbop_op_ = _startpos__1_ in @@ -12017,13 +10917,13 @@ module Tables = struct let _symbolstartpos = _startpos_pbop_op_ in let _sloc = (_symbolstartpos, _endpos) in -# 2396 "parsing/parser.mly" +# 2469 "parsing/parser.mly" ( let (pbop_pat, pbop_exp, rev_ands) = bindings in let ands = List.rev rev_ands in let pbop_loc = make_loc _sloc in let let_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in mkexp ~loc:_sloc (Pexp_letop{ let_; ands; body}) ) -# 12027 "parsing/parser.ml" +# 10927 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12064,9 +10964,9 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in -# 2402 "parsing/parser.mly" +# 2475 "parsing/parser.mly" ( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[_1;_3])) ) -# 12070 "parsing/parser.ml" +# 10970 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12099,35 +10999,35 @@ module Tables = struct let _3 : (Parsetree.expression) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 12105 "parsing/parser.ml" +# 11005 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 12114 "parsing/parser.ml" +# 11014 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 12122 "parsing/parser.ml" +# 11022 "parsing/parser.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2404 "parsing/parser.mly" +# 2477 "parsing/parser.mly" ( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) ) -# 12131 "parsing/parser.ml" +# 11031 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12183,18 +11083,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 12189 "parsing/parser.ml" +# 11089 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2406 "parsing/parser.mly" +# 2479 "parsing/parser.mly" ( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) ) -# 12198 "parsing/parser.ml" +# 11098 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12260,14 +11160,14 @@ module Tables = struct let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2407 "parsing/parser.mly" +# 2480 "parsing/parser.mly" (Some v) -# 12266 "parsing/parser.ml" +# 11166 "parsing/parser.ml" in -# 2367 "parsing/parser.mly" +# 2440 "parsing/parser.mly" ( array, d, Paren, i, r ) -# 12271 "parsing/parser.ml" +# 11171 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in @@ -12275,9 +11175,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2408 "parsing/parser.mly" +# 2481 "parsing/parser.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 12281 "parsing/parser.ml" +# 11181 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12343,14 +11243,14 @@ module Tables = struct let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2407 "parsing/parser.mly" +# 2480 "parsing/parser.mly" (Some v) -# 12349 "parsing/parser.ml" +# 11249 "parsing/parser.ml" in -# 2369 "parsing/parser.mly" +# 2442 "parsing/parser.mly" ( array, d, Brace, i, r ) -# 12354 "parsing/parser.ml" +# 11254 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in @@ -12358,9 +11258,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2408 "parsing/parser.mly" +# 2481 "parsing/parser.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 12364 "parsing/parser.ml" +# 11264 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12426,14 +11326,14 @@ module Tables = struct let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2407 "parsing/parser.mly" +# 2480 "parsing/parser.mly" (Some v) -# 12432 "parsing/parser.ml" +# 11332 "parsing/parser.ml" in -# 2371 "parsing/parser.mly" +# 2444 "parsing/parser.mly" ( array, d, Bracket, i, r ) -# 12437 "parsing/parser.ml" +# 11337 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in @@ -12441,9 +11341,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2408 "parsing/parser.mly" +# 2481 "parsing/parser.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 12447 "parsing/parser.ml" +# 11347 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12503,9 +11403,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 12509 "parsing/parser.ml" +# 11409 "parsing/parser.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -12513,31 +11413,31 @@ module Tables = struct let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2409 "parsing/parser.mly" +# 2482 "parsing/parser.mly" (Some v) -# 12519 "parsing/parser.ml" +# 11419 "parsing/parser.ml" in let i = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 12524 "parsing/parser.ml" +# 11424 "parsing/parser.ml" in let d = let _1 = # 124 "" ( None ) -# 12530 "parsing/parser.ml" +# 11430 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 12535 "parsing/parser.ml" +# 11435 "parsing/parser.ml" in -# 2367 "parsing/parser.mly" +# 2440 "parsing/parser.mly" ( array, d, Paren, i, r ) -# 12541 "parsing/parser.ml" +# 11441 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in @@ -12545,9 +11445,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2410 "parsing/parser.mly" +# 2483 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 12551 "parsing/parser.ml" +# 11451 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12619,9 +11519,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 12625 "parsing/parser.ml" +# 11525 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -12631,39 +11531,39 @@ module Tables = struct let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2409 "parsing/parser.mly" +# 2482 "parsing/parser.mly" (Some v) -# 12637 "parsing/parser.ml" +# 11537 "parsing/parser.ml" in let i = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 12642 "parsing/parser.ml" +# 11542 "parsing/parser.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" (_2) -# 12650 "parsing/parser.ml" +# 11550 "parsing/parser.ml" in # 126 "" ( Some x ) -# 12655 "parsing/parser.ml" +# 11555 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 12661 "parsing/parser.ml" +# 11561 "parsing/parser.ml" in -# 2367 "parsing/parser.mly" +# 2440 "parsing/parser.mly" ( array, d, Paren, i, r ) -# 12667 "parsing/parser.ml" +# 11567 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in @@ -12671,9 +11571,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2410 "parsing/parser.mly" +# 2483 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 12677 "parsing/parser.ml" +# 11577 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12733,9 +11633,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 12739 "parsing/parser.ml" +# 11639 "parsing/parser.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -12743,31 +11643,31 @@ module Tables = struct let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2409 "parsing/parser.mly" +# 2482 "parsing/parser.mly" (Some v) -# 12749 "parsing/parser.ml" +# 11649 "parsing/parser.ml" in let i = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 12754 "parsing/parser.ml" +# 11654 "parsing/parser.ml" in let d = let _1 = # 124 "" ( None ) -# 12760 "parsing/parser.ml" +# 11660 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 12765 "parsing/parser.ml" +# 11665 "parsing/parser.ml" in -# 2369 "parsing/parser.mly" +# 2442 "parsing/parser.mly" ( array, d, Brace, i, r ) -# 12771 "parsing/parser.ml" +# 11671 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in @@ -12775,9 +11675,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2410 "parsing/parser.mly" +# 2483 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 12781 "parsing/parser.ml" +# 11681 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12849,9 +11749,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 12855 "parsing/parser.ml" +# 11755 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -12861,39 +11761,39 @@ module Tables = struct let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2409 "parsing/parser.mly" +# 2482 "parsing/parser.mly" (Some v) -# 12867 "parsing/parser.ml" +# 11767 "parsing/parser.ml" in let i = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 12872 "parsing/parser.ml" +# 11772 "parsing/parser.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" (_2) -# 12880 "parsing/parser.ml" +# 11780 "parsing/parser.ml" in # 126 "" ( Some x ) -# 12885 "parsing/parser.ml" +# 11785 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 12891 "parsing/parser.ml" +# 11791 "parsing/parser.ml" in -# 2369 "parsing/parser.mly" +# 2442 "parsing/parser.mly" ( array, d, Brace, i, r ) -# 12897 "parsing/parser.ml" +# 11797 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in @@ -12901,9 +11801,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2410 "parsing/parser.mly" +# 2483 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 12907 "parsing/parser.ml" +# 11807 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12963,9 +11863,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 12969 "parsing/parser.ml" +# 11869 "parsing/parser.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -12973,31 +11873,31 @@ module Tables = struct let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2409 "parsing/parser.mly" +# 2482 "parsing/parser.mly" (Some v) -# 12979 "parsing/parser.ml" +# 11879 "parsing/parser.ml" in let i = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 12984 "parsing/parser.ml" +# 11884 "parsing/parser.ml" in let d = let _1 = # 124 "" ( None ) -# 12990 "parsing/parser.ml" +# 11890 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 12995 "parsing/parser.ml" +# 11895 "parsing/parser.ml" in -# 2371 "parsing/parser.mly" +# 2444 "parsing/parser.mly" ( array, d, Bracket, i, r ) -# 13001 "parsing/parser.ml" +# 11901 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in @@ -13005,9 +11905,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2410 "parsing/parser.mly" +# 2483 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 13011 "parsing/parser.ml" +# 11911 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13079,9 +11979,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 13085 "parsing/parser.ml" +# 11985 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -13091,39 +11991,39 @@ module Tables = struct let _endpos = _endpos_v_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2409 "parsing/parser.mly" +# 2482 "parsing/parser.mly" (Some v) -# 13097 "parsing/parser.ml" +# 11997 "parsing/parser.ml" in let i = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 13102 "parsing/parser.ml" +# 12002 "parsing/parser.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" (_2) -# 13110 "parsing/parser.ml" +# 12010 "parsing/parser.ml" in # 126 "" ( Some x ) -# 13115 "parsing/parser.ml" +# 12015 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 13121 "parsing/parser.ml" +# 12021 "parsing/parser.ml" in -# 2371 "parsing/parser.mly" +# 2444 "parsing/parser.mly" ( array, d, Bracket, i, r ) -# 13127 "parsing/parser.ml" +# 12027 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_v_, _startpos_array_) in @@ -13131,9 +12031,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2410 "parsing/parser.mly" +# 2483 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 13137 "parsing/parser.ml" +# 12037 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13163,9 +12063,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 2412 "parsing/parser.mly" +# 2485 "parsing/parser.mly" ( Exp.attr _1 _2 ) -# 13169 "parsing/parser.ml" +# 12069 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13189,9 +12089,9 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2415 "parsing/parser.mly" +# 2488 "parsing/parser.mly" ( not_expecting _loc__1_ "wildcard \"_\"" ) -# 13195 "parsing/parser.ml" +# 12095 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13225,9 +12125,9 @@ module Tables = struct let _loc__1_ = (_startpos__1_, _endpos__1_) in let _sloc = (_symbolstartpos, _endpos) in -# 2418 "parsing/parser.mly" +# 2491 "parsing/parser.mly" ( mkexp_stack ~loc:_sloc ~kwd_loc:(_loc__1_) _2 ) -# 13231 "parsing/parser.ml" +# 12131 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13243,9 +12143,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (string Asttypes.loc option) = -# 4118 "parsing/parser.mly" +# 4260 "parsing/parser.mly" ( None ) -# 13249 "parsing/parser.ml" +# 12149 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13275,9 +12175,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string Asttypes.loc option) = -# 4119 "parsing/parser.mly" +# 4261 "parsing/parser.mly" ( Some _2 ) -# 13281 "parsing/parser.ml" +# 12181 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13321,9 +12221,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.extension) = -# 4131 "parsing/parser.mly" +# 4273 "parsing/parser.mly" ( (_2, _3) ) -# 13327 "parsing/parser.ml" +# 12227 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13342,9 +12242,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 831 "parsing/parser.mly" +# 903 "parsing/parser.mly" (string * Location.t * string * Location.t * string option) -# 13348 "parsing/parser.ml" +# 12248 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -13353,9 +12253,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4133 "parsing/parser.mly" +# 4275 "parsing/parser.mly" ( mk_quotedext ~loc:_sloc _1 ) -# 13359 "parsing/parser.ml" +# 12259 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13408,9 +12308,9 @@ module Tables = struct let _v : (Parsetree.extension_constructor) = let attrs = let _1 = _1_inlined3 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 13414 "parsing/parser.ml" +# 12314 "parsing/parser.ml" in let _endpos_attrs_ = _endpos__1_inlined3_ in @@ -13420,9 +12320,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 13426 "parsing/parser.ml" +# 12326 "parsing/parser.ml" in let cid = @@ -13431,19 +12331,19 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 13437 "parsing/parser.ml" +# 12337 "parsing/parser.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3431 "parsing/parser.mly" +# 3536 "parsing/parser.mly" ( let info = symbol_info _endpos in Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info ) -# 13447 "parsing/parser.ml" +# 12347 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13489,9 +12389,9 @@ module Tables = struct let _v : (Parsetree.extension_constructor) = let attrs = let _1 = _1_inlined2 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 13495 "parsing/parser.ml" +# 12395 "parsing/parser.ml" in let _endpos_attrs_ = _endpos__1_inlined2_ in @@ -13501,9 +12401,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 13507 "parsing/parser.ml" +# 12407 "parsing/parser.ml" in let cid = @@ -13511,25 +12411,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 13517 "parsing/parser.ml" +# 12417 "parsing/parser.ml" in let _startpos_cid_ = _startpos__1_ in let _1 = -# 3923 "parsing/parser.mly" +# 4065 "parsing/parser.mly" ( () ) -# 13524 "parsing/parser.ml" +# 12424 "parsing/parser.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos_cid_ in let _sloc = (_symbolstartpos, _endpos) in -# 3431 "parsing/parser.mly" +# 3536 "parsing/parser.mly" ( let info = symbol_info _endpos in Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info ) -# 13533 "parsing/parser.ml" +# 12433 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13576,10 +12476,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4106 "parsing/parser.mly" +# 4248 "parsing/parser.mly" ( mark_symbol_docs _sloc; Builtin_attributes.mk_internal ~loc:(make_loc _sloc) _2 _3 ) -# 13583 "parsing/parser.ml" +# 12483 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13595,14 +12495,14 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let params = -# 2133 "parsing/parser.mly" +# 2205 "parsing/parser.mly" ( [] ) -# 13601 "parsing/parser.ml" +# 12501 "parsing/parser.ml" in -# 1958 "parsing/parser.mly" +# 2030 "parsing/parser.mly" ( params ) -# 13606 "parsing/parser.ml" +# 12506 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13643,24 +12543,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 13647 "parsing/parser.ml" +# 12547 "parsing/parser.ml" in -# 1109 "parsing/parser.mly" +# 1181 "parsing/parser.mly" ( xs ) -# 13652 "parsing/parser.ml" +# 12552 "parsing/parser.ml" in -# 2135 "parsing/parser.mly" +# 2207 "parsing/parser.mly" ( params ) -# 13658 "parsing/parser.ml" +# 12558 "parsing/parser.ml" in -# 1958 "parsing/parser.mly" +# 2030 "parsing/parser.mly" ( params ) -# 13664 "parsing/parser.ml" +# 12564 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13683,9 +12583,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = -# 2769 "parsing/parser.mly" +# 2844 "parsing/parser.mly" ( _1 ) -# 13689 "parsing/parser.ml" +# 12589 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13725,9 +12625,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2771 "parsing/parser.mly" +# 2846 "parsing/parser.mly" ( mkexp_constraint ~loc:_sloc _3 _1 ) -# 13731 "parsing/parser.ml" +# 12631 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13757,9 +12657,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 2809 "parsing/parser.mly" +# 2888 "parsing/parser.mly" ( _2 ) -# 13763 "parsing/parser.ml" +# 12663 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13804,24 +12704,24 @@ module Tables = struct let _endpos = _endpos__4_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2811 "parsing/parser.mly" +# 2890 "parsing/parser.mly" ( Pexp_constraint (_4, _2) ) -# 13810 "parsing/parser.ml" +# 12710 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 13819 "parsing/parser.ml" +# 12719 "parsing/parser.ml" in -# 2812 "parsing/parser.mly" +# 2891 "parsing/parser.mly" ( _1 ) -# 13825 "parsing/parser.ml" +# 12725 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13854,12 +12754,12 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2815 "parsing/parser.mly" +# 2894 "parsing/parser.mly" ( let (l,o,p) = _1 in ghexp ~loc:_sloc (Pexp_fun(l, o, p, _2)) ) -# 13863 "parsing/parser.ml" +# 12763 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13882,9 +12782,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -13903,24 +12803,104 @@ module Tables = struct } = _menhir_stack in let _5 : (Parsetree.expression) = Obj.magic _5 in let _4 : unit = Obj.magic _4 in - let xs : (string Asttypes.loc list) = Obj.magic xs in + let _3 : ((string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) list) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _3 = -# 2651 "parsing/parser.mly" - ( xs ) -# 13916 "parsing/parser.ml" - in - let _endpos = _endpos__5_ in + let _v : (Parsetree.expression) = let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2820 "parsing/parser.mly" +# 2899 "parsing/parser.mly" ( mk_newtypes ~loc:_sloc _3 _5 ) -# 13924 "parsing/parser.ml" +# 12819 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _7 : (Parsetree.expression) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _5 : (Asttypes.layout_annotation Asttypes.loc) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _1_inlined1 : ( +# 861 "parsing/parser.mly" + (string) +# 12880 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__7_ in + let _v : (Parsetree.expression) = let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 12895 "parsing/parser.ml" + + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2901 "parsing/parser.mly" + ( mk_newtypes ~loc:_sloc [_3, Some _5] _7 ) +# 12904 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13943,9 +12923,9 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.core_type) = -# 3547 "parsing/parser.mly" +# 3657 "parsing/parser.mly" ( ty ) -# 13949 "parsing/parser.ml" +# 12929 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13968,9 +12948,9 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.core_type) = -# 3549 "parsing/parser.mly" +# 3659 "parsing/parser.mly" ( ty ) -# 13974 "parsing/parser.ml" +# 12954 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14001,9 +12981,9 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Lexing.position * Parsetree.functor_parameter) = let _startpos = _startpos__1_ in -# 1363 "parsing/parser.mly" +# 1435 "parsing/parser.mly" ( _startpos, Unit ) -# 14007 "parsing/parser.ml" +# 12987 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14059,16 +13039,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 14065 "parsing/parser.ml" +# 13045 "parsing/parser.ml" in let _startpos = _startpos__1_ in -# 1366 "parsing/parser.mly" +# 1438 "parsing/parser.mly" ( _startpos, Named (x, mty) ) -# 14072 "parsing/parser.ml" +# 13052 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14083,11 +13063,11 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in - let _v : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = -# 3333 "parsing/parser.mly" - ( ([],Pcstr_tuple [],None) ) -# 14091 "parsing/parser.ml" + let _v : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = +# 3438 "parsing/parser.mly" + ( (([],[]),Pcstr_tuple [],None) ) +# 13071 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14116,11 +13096,11 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = -# 3334 "parsing/parser.mly" - ( ([],_2,None) ) -# 14124 "parsing/parser.ml" + let _v : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = +# 3439 "parsing/parser.mly" + ( (([],[]),_2,None) ) +# 13104 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14163,11 +13143,11 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = -# 3336 "parsing/parser.mly" - ( ([],_2,Some _4) ) -# 14171 "parsing/parser.ml" + let _v : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = +# 3441 "parsing/parser.mly" + ( (([],[]),_2,Some _4) ) +# 13151 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14219,35 +13199,37 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _4 : (Parsetree.constructor_arguments) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in - let _v : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = let _2 = + let _v : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = let _2 = let _1 = let xs = # 253 "" ( List.rev xs ) -# 14234 "parsing/parser.ml" +# 13216 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 14239 "parsing/parser.ml" +# 13221 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 14245 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 13227 "parsing/parser.ml" in -# 3339 "parsing/parser.mly" +# 3444 "parsing/parser.mly" ( (_2,_4,Some _6) ) -# 14251 "parsing/parser.ml" +# 13233 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14276,11 +13258,11 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = -# 3341 "parsing/parser.mly" - ( ([],Pcstr_tuple [],Some _2) ) -# 14284 "parsing/parser.ml" + let _v : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = +# 3446 "parsing/parser.mly" + ( (([],[]),Pcstr_tuple [],Some _2) ) +# 13266 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14318,35 +13300,37 @@ module Tables = struct } = _menhir_stack in let _4 : (Parsetree.core_type) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in - let _v : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = let _2 = + let _v : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = let _2 = let _1 = let xs = # 253 "" ( List.rev xs ) -# 14333 "parsing/parser.ml" +# 13317 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 14338 "parsing/parser.ml" +# 13322 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 14344 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 13328 "parsing/parser.ml" in -# 3343 "parsing/parser.mly" +# 3448 "parsing/parser.mly" ( (_2,Pcstr_tuple [],Some _4) ) -# 14350 "parsing/parser.ml" +# 13334 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14383,21 +13367,21 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let vars_args_res : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = Obj.magic vars_args_res in + let vars_args_res : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined2_ in - let _v : (Ast_helper.str * string Asttypes.loc list * + let _v : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = let attrs = let _1 = _1_inlined2 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 14401 "parsing/parser.ml" +# 13385 "parsing/parser.ml" in let _endpos_attrs_ = _endpos__1_inlined2_ in @@ -14407,23 +13391,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 14413 "parsing/parser.ml" +# 13397 "parsing/parser.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3281 "parsing/parser.mly" +# 3386 "parsing/parser.mly" ( let vars, args, res = vars_args_res in let info = symbol_info _endpos in let loc = make_loc _sloc in cid, vars, args, res, attrs, loc, info ) -# 14427 "parsing/parser.ml" +# 13411 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14454,20 +13438,20 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let vars_args_res : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = Obj.magic vars_args_res in + let vars_args_res : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in let _1 : (Asttypes.label) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Ast_helper.str * string Asttypes.loc list * + let _v : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = let attrs = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 14471 "parsing/parser.ml" +# 13455 "parsing/parser.ml" in let _endpos_attrs_ = _endpos__1_inlined1_ in @@ -14476,29 +13460,29 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 14482 "parsing/parser.ml" +# 13466 "parsing/parser.ml" in let _startpos_cid_ = _startpos__1_ in let _1 = -# 3923 "parsing/parser.mly" +# 4065 "parsing/parser.mly" ( () ) -# 14489 "parsing/parser.ml" +# 13473 "parsing/parser.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos_cid_ in let _sloc = (_symbolstartpos, _endpos) in -# 3281 "parsing/parser.mly" +# 3386 "parsing/parser.mly" ( let vars, args, res = vars_args_res in let info = symbol_info _endpos in let loc = make_loc _sloc in cid, vars, args, res, attrs, loc, info ) -# 14502 "parsing/parser.ml" +# 13486 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14531,30 +13515,36 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ext; + MenhirLib.EngineTypes.startp = _startpos_ext_; + MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; @@ -14568,10 +13558,11 @@ module Tables = struct let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in + let layout : (Parsetree.attribute option) = Obj.magic layout in let _1_inlined2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 14575 "parsing/parser.ml" +# 13566 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -14584,9 +13575,9 @@ module Tables = struct Parsetree.type_declaration) = let attrs2 = let _1 = _1_inlined4 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 14590 "parsing/parser.ml" +# 13581 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -14595,24 +13586,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 14599 "parsing/parser.ml" +# 13590 "parsing/parser.ml" in -# 1059 "parsing/parser.mly" +# 1131 "parsing/parser.mly" ( xs ) -# 14604 "parsing/parser.ml" +# 13595 "parsing/parser.ml" in -# 3171 "parsing/parser.mly" +# 3265 "parsing/parser.mly" ( _1 ) -# 14610 "parsing/parser.ml" +# 13601 "parsing/parser.ml" in let kind_priv_manifest = -# 3206 "parsing/parser.mly" +# 3300 "parsing/parser.mly" ( _2 ) -# 14616 "parsing/parser.ml" +# 13607 "parsing/parser.ml" in let id = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -14620,38 +13611,38 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 14626 "parsing/parser.ml" +# 13617 "parsing/parser.ml" in let flag = -# 3943 "parsing/parser.mly" +# 4085 "parsing/parser.mly" ( Recursive ) -# 14632 "parsing/parser.ml" +# 13623 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 14639 "parsing/parser.ml" +# 13630 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3143 "parsing/parser.mly" +# 3236 "parsing/parser.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in (flag, ext), - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ) -# 14655 "parsing/parser.ml" +# 13646 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14684,35 +13675,41 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_inlined4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ext; + MenhirLib.EngineTypes.startp = _startpos_ext_; + MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; @@ -14727,10 +13724,11 @@ module Tables = struct let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in let _1_inlined4 : unit = Obj.magic _1_inlined4 in + let layout : (Parsetree.attribute option) = Obj.magic layout in let _1_inlined3 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 14734 "parsing/parser.ml" +# 13732 "parsing/parser.ml" ) = Obj.magic _1_inlined3 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined2 : unit = Obj.magic _1_inlined2 in @@ -14744,9 +13742,9 @@ module Tables = struct Parsetree.type_declaration) = let attrs2 = let _1 = _1_inlined5 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 14750 "parsing/parser.ml" +# 13748 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined5_ in @@ -14755,24 +13753,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 14759 "parsing/parser.ml" +# 13757 "parsing/parser.ml" in -# 1059 "parsing/parser.mly" +# 1131 "parsing/parser.mly" ( xs ) -# 14764 "parsing/parser.ml" +# 13762 "parsing/parser.ml" in -# 3171 "parsing/parser.mly" +# 3265 "parsing/parser.mly" ( _1 ) -# 14770 "parsing/parser.ml" +# 13768 "parsing/parser.ml" in let kind_priv_manifest = -# 3206 "parsing/parser.mly" +# 3300 "parsing/parser.mly" ( _2 ) -# 14776 "parsing/parser.ml" +# 13774 "parsing/parser.ml" in let id = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in @@ -14780,9 +13778,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 14786 "parsing/parser.ml" +# 13784 "parsing/parser.ml" in let flag = @@ -14791,33 +13789,33 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 3945 "parsing/parser.mly" +# 4087 "parsing/parser.mly" ( not_expecting _loc "nonrec flag" ) -# 14797 "parsing/parser.ml" +# 13795 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 14805 "parsing/parser.ml" +# 13803 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3143 "parsing/parser.mly" +# 3236 "parsing/parser.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in (flag, ext), - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ) -# 14821 "parsing/parser.ml" +# 13819 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14845,30 +13843,36 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ext; + MenhirLib.EngineTypes.startp = _startpos_ext_; + MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; @@ -14880,10 +13884,11 @@ module Tables = struct let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in + let layout : (Parsetree.attribute option) = Obj.magic layout in let _1_inlined2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 14887 "parsing/parser.ml" +# 13892 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -14896,9 +13901,9 @@ module Tables = struct Parsetree.type_declaration) = let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 14902 "parsing/parser.ml" +# 13907 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -14907,18 +13912,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 14911 "parsing/parser.ml" +# 13916 "parsing/parser.ml" in -# 1059 "parsing/parser.mly" +# 1131 "parsing/parser.mly" ( xs ) -# 14916 "parsing/parser.ml" +# 13921 "parsing/parser.ml" in -# 3171 "parsing/parser.mly" +# 3265 "parsing/parser.mly" ( _1 ) -# 14922 "parsing/parser.ml" +# 13927 "parsing/parser.ml" in let id = @@ -14927,38 +13932,38 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 14933 "parsing/parser.ml" +# 13938 "parsing/parser.ml" in let flag = -# 3939 "parsing/parser.mly" +# 4081 "parsing/parser.mly" ( Recursive ) -# 14939 "parsing/parser.ml" +# 13944 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 14946 "parsing/parser.ml" +# 13951 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3143 "parsing/parser.mly" +# 3236 "parsing/parser.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in (flag, ext), - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ) -# 14962 "parsing/parser.ml" +# 13967 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -14986,35 +13991,41 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ext; + MenhirLib.EngineTypes.startp = _startpos_ext_; + MenhirLib.EngineTypes.endp = _endpos_ext_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; @@ -15027,10 +14038,11 @@ module Tables = struct let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in let xs : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs in let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in + let layout : (Parsetree.attribute option) = Obj.magic layout in let _1_inlined3 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 15034 "parsing/parser.ml" +# 14046 "parsing/parser.ml" ) = Obj.magic _1_inlined3 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined2 : unit = Obj.magic _1_inlined2 in @@ -15044,9 +14056,9 @@ module Tables = struct Parsetree.type_declaration) = let attrs2 = let _1 = _1_inlined4 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 15050 "parsing/parser.ml" +# 14062 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -15055,18 +14067,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 15059 "parsing/parser.ml" +# 14071 "parsing/parser.ml" in -# 1059 "parsing/parser.mly" +# 1131 "parsing/parser.mly" ( xs ) -# 15064 "parsing/parser.ml" +# 14076 "parsing/parser.ml" in -# 3171 "parsing/parser.mly" +# 3265 "parsing/parser.mly" ( _1 ) -# 15070 "parsing/parser.ml" +# 14082 "parsing/parser.ml" in let id = @@ -15075,38 +14087,38 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 15081 "parsing/parser.ml" +# 14093 "parsing/parser.ml" in let flag = -# 3940 "parsing/parser.mly" +# 4082 "parsing/parser.mly" ( Nonrecursive ) -# 15087 "parsing/parser.ml" +# 14099 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 15094 "parsing/parser.ml" +# 14106 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3143 "parsing/parser.mly" +# 3236 "parsing/parser.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in (flag, ext), - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ) -# 15110 "parsing/parser.ml" +# 14122 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15125,17 +14137,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 842 "parsing/parser.mly" +# 914 "parsing/parser.mly" (string) -# 15131 "parsing/parser.ml" +# 14143 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3782 "parsing/parser.mly" +# 3917 "parsing/parser.mly" ( _1 ) -# 15139 "parsing/parser.ml" +# 14151 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15154,17 +14166,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 15160 "parsing/parser.ml" +# 14172 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3783 "parsing/parser.mly" +# 3918 "parsing/parser.mly" ( _1 ) -# 15168 "parsing/parser.ml" +# 14180 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15194,9 +14206,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.structure) = -# 1230 "parsing/parser.mly" +# 1302 "parsing/parser.mly" ( _1 ) -# 15200 "parsing/parser.ml" +# 14212 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15219,9 +14231,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.attribute list) = -# 1606 "parsing/parser.mly" +# 1678 "parsing/parser.mly" ( [] ) -# 15225 "parsing/parser.ml" +# 14237 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15254,9 +14266,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 1608 "parsing/parser.mly" +# 1680 "parsing/parser.mly" ( [include_functor_attr (make_loc _loc)] ) -# 15260 "parsing/parser.ml" +# 14272 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15272,9 +14284,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (string) = -# 3832 "parsing/parser.mly" +# 3967 "parsing/parser.mly" ( "" ) -# 15278 "parsing/parser.ml" +# 14290 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15304,9 +14316,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 3833 "parsing/parser.mly" +# 3968 "parsing/parser.mly" ( ";.." ) -# 15310 "parsing/parser.ml" +# 14322 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15336,9 +14348,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.signature) = -# 1237 "parsing/parser.mly" +# 1309 "parsing/parser.mly" ( _1 ) -# 15342 "parsing/parser.ml" +# 14354 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15382,9 +14394,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.extension) = -# 4136 "parsing/parser.mly" +# 4278 "parsing/parser.mly" ( (_2, _3) ) -# 15388 "parsing/parser.ml" +# 14400 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15403,9 +14415,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 833 "parsing/parser.mly" +# 905 "parsing/parser.mly" (string * Location.t * string * Location.t * string option) -# 15409 "parsing/parser.ml" +# 14421 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -15414,9 +14426,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4138 "parsing/parser.mly" +# 4280 "parsing/parser.mly" ( mk_quotedext ~loc:_sloc _1 ) -# 15420 "parsing/parser.ml" +# 14432 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15462,9 +14474,9 @@ module Tables = struct let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in let _3 : unit = Obj.magic _3 in let _1_inlined1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 15468 "parsing/parser.ml" +# 14480 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _1 : (Asttypes.mutable_flag * Asttypes.global_flag) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -15473,34 +14485,34 @@ module Tables = struct let _v : (Parsetree.label_declaration) = let _5 = let _1 = _1_inlined3 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 15479 "parsing/parser.ml" +# 14491 "parsing/parser.ml" in let _endpos__5_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 3500 "parsing/parser.mly" +# 3610 "parsing/parser.mly" ( _1 ) -# 15488 "parsing/parser.ml" +# 14500 "parsing/parser.ml" in let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 15496 "parsing/parser.ml" +# 14508 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 15504 "parsing/parser.ml" +# 14516 "parsing/parser.ml" in let _startpos__2_ = _startpos__1_inlined1_ in @@ -15512,13 +14524,13 @@ module Tables = struct let _loc__1_ = (_startpos__1_, _endpos__1_) in let _sloc = (_symbolstartpos, _endpos) in -# 3366 "parsing/parser.mly" +# 3471 "parsing/parser.mly" ( let info = symbol_info _endpos in let mut, gbl = _1 in mkld_global_maybe gbl (Type.field _2 _4 ~mut ~attrs:_5 ~loc:(make_loc _sloc) ~info) (make_loc _loc__1_) ) -# 15522 "parsing/parser.ml" +# 14534 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15578,9 +14590,9 @@ module Tables = struct let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in let _3 : unit = Obj.magic _3 in let _1_inlined1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 15584 "parsing/parser.ml" +# 14596 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _1 : (Asttypes.mutable_flag * Asttypes.global_flag) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -15589,43 +14601,43 @@ module Tables = struct let _v : (Parsetree.label_declaration) = let _7 = let _1 = _1_inlined4 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 15595 "parsing/parser.ml" +# 14607 "parsing/parser.ml" in let _endpos__7_ = _endpos__1_inlined4_ in let _5 = let _1 = _1_inlined3 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 15604 "parsing/parser.ml" +# 14616 "parsing/parser.ml" in let _endpos__5_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 3500 "parsing/parser.mly" +# 3610 "parsing/parser.mly" ( _1 ) -# 15613 "parsing/parser.ml" +# 14625 "parsing/parser.ml" in let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 15621 "parsing/parser.ml" +# 14633 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 15629 "parsing/parser.ml" +# 14641 "parsing/parser.ml" in let _startpos__2_ = _startpos__1_inlined1_ in @@ -15637,7 +14649,7 @@ module Tables = struct let _loc__1_ = (_startpos__1_, _endpos__1_) in let _sloc = (_symbolstartpos, _endpos) in -# 3375 "parsing/parser.mly" +# 3480 "parsing/parser.mly" ( let info = match rhs_info _endpos__5_ with | Some _ as info_before_semi -> info_before_semi @@ -15647,7 +14659,7 @@ module Tables = struct mkld_global_maybe gbl (Type.field _2 _4 ~mut ~attrs:(_5 @ _7) ~loc:(make_loc _sloc) ~info) (make_loc _loc__1_) ) -# 15651 "parsing/parser.ml" +# 14663 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15670,9 +14682,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.label_declaration list) = -# 3360 "parsing/parser.mly" +# 3465 "parsing/parser.mly" ( [_1] ) -# 15676 "parsing/parser.ml" +# 14688 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15695,9 +14707,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.label_declaration list) = -# 3361 "parsing/parser.mly" +# 3466 "parsing/parser.mly" ( [_1] ) -# 15701 "parsing/parser.ml" +# 14713 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15727,9 +14739,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.label_declaration list) = -# 3362 "parsing/parser.mly" +# 3467 "parsing/parser.mly" ( _1 :: _2 ) -# 15733 "parsing/parser.ml" +# 14745 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15748,9 +14760,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 15754 "parsing/parser.ml" +# 14766 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -15761,24 +14773,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 15767 "parsing/parser.ml" +# 14779 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2344 "parsing/parser.mly" +# 2417 "parsing/parser.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 15776 "parsing/parser.ml" +# 14788 "parsing/parser.ml" in -# 2331 "parsing/parser.mly" +# 2403 "parsing/parser.mly" ( x ) -# 15782 "parsing/parser.ml" +# 14794 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15811,9 +14823,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _2 : unit = Obj.magic _2 in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 15817 "parsing/parser.ml" +# 14829 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -15824,18 +14836,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 15830 "parsing/parser.ml" +# 14842 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2344 "parsing/parser.mly" +# 2417 "parsing/parser.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 15839 "parsing/parser.ml" +# 14851 "parsing/parser.ml" in let _startpos_x_ = _startpos__1_ in @@ -15843,11 +14855,11 @@ module Tables = struct let _symbolstartpos = _startpos_x_ in let _sloc = (_symbolstartpos, _endpos) in -# 2333 "parsing/parser.mly" +# 2405 "parsing/parser.mly" ( let lab, pat = x in lab, mkpat ~loc:_sloc (Ppat_constraint (pat, cty)) ) -# 15851 "parsing/parser.ml" +# 14863 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15891,12 +14903,14 @@ module Tables = struct } = _menhir_stack in let ty : (Parsetree.core_type) = Obj.magic ty in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 15900 "parsing/parser.ml" +# 14914 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -15908,24 +14922,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 15912 "parsing/parser.ml" +# 14926 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 15917 "parsing/parser.ml" +# 14931 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 15923 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 14937 "parsing/parser.ml" in -# 2337 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 15929 "parsing/parser.ml" +# 2410 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 14943 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_xs_) in @@ -15933,9 +14947,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 15939 "parsing/parser.ml" +# 14953 "parsing/parser.ml" in let _endpos_cty_ = _endpos_ty_ in @@ -15945,18 +14959,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 15951 "parsing/parser.ml" +# 14965 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2344 "parsing/parser.mly" +# 2417 "parsing/parser.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 15960 "parsing/parser.ml" +# 14974 "parsing/parser.ml" in let _startpos_x_ = _startpos__1_ in @@ -15964,11 +14978,11 @@ module Tables = struct let _symbolstartpos = _startpos_x_ in let _sloc = (_symbolstartpos, _endpos) in -# 2338 "parsing/parser.mly" +# 2411 "parsing/parser.mly" ( let lab, pat = x in lab, mkpat ~loc:_sloc (Ppat_constraint (pat, cty)) ) -# 15972 "parsing/parser.ml" +# 14986 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -15991,9 +15005,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3864 "parsing/parser.mly" +# 3999 "parsing/parser.mly" ( _1 ) -# 15997 "parsing/parser.ml" +# 15011 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16016,9 +15030,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.arg_label * Parsetree.expression) = -# 2634 "parsing/parser.mly" +# 2709 "parsing/parser.mly" ( (Nolabel, _1) ) -# 16022 "parsing/parser.ml" +# 15036 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16044,17 +15058,17 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : ( -# 776 "parsing/parser.mly" +# 848 "parsing/parser.mly" (string) -# 16050 "parsing/parser.ml" +# 15064 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.arg_label * Parsetree.expression) = -# 2636 "parsing/parser.mly" +# 2711 "parsing/parser.mly" ( (Labelled _1, _2) ) -# 16058 "parsing/parser.ml" +# 15072 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16079,9 +15093,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 16085 "parsing/parser.ml" +# 15099 "parsing/parser.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -16089,10 +15103,10 @@ module Tables = struct let _endpos = _endpos_label_ in let _v : (Asttypes.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 2638 "parsing/parser.mly" +# 2713 "parsing/parser.mly" ( let loc = _loc_label_ in (Labelled label, mkexpvar ~loc label) ) -# 16096 "parsing/parser.ml" +# 15110 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16137,9 +15151,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic ty in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 16143 "parsing/parser.ml" +# 15157 "parsing/parser.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -16149,10 +15163,10 @@ module Tables = struct let _v : (Asttypes.arg_label * Parsetree.expression) = let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 2641 "parsing/parser.mly" +# 2716 "parsing/parser.mly" ( (Labelled label, mkexp_constraint ~loc:(_startpos__2_, _endpos) (mkexpvar ~loc:_loc_label_ label) ty) ) -# 16156 "parsing/parser.ml" +# 15170 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16177,9 +15191,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 16183 "parsing/parser.ml" +# 15197 "parsing/parser.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -16187,10 +15201,10 @@ module Tables = struct let _endpos = _endpos_label_ in let _v : (Asttypes.arg_label * Parsetree.expression) = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 2644 "parsing/parser.mly" +# 2719 "parsing/parser.mly" ( let loc = _loc_label_ in (Optional label, mkexpvar ~loc label) ) -# 16194 "parsing/parser.ml" +# 15208 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16216,17 +15230,17 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : ( -# 808 "parsing/parser.mly" +# 880 "parsing/parser.mly" (string) -# 16222 "parsing/parser.ml" +# 15236 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.arg_label * Parsetree.expression) = -# 2647 "parsing/parser.mly" +# 2722 "parsing/parser.mly" ( (Optional _1, _2) ) -# 16230 "parsing/parser.ml" +# 15244 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16279,22 +15293,22 @@ module Tables = struct let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = let _1 = _1_inlined1 in -# 2327 "parsing/parser.mly" +# 2399 "parsing/parser.mly" ( _1 ) -# 16285 "parsing/parser.ml" +# 15299 "parsing/parser.ml" in let _3 = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 16291 "parsing/parser.ml" +# 15305 "parsing/parser.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__2_, _endpos__2_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2290 "parsing/parser.mly" +# 2362 "parsing/parser.mly" ( (Optional (fst _4), _5, mkpat_local_if _3 (snd _4) _loc__3_) ) -# 16298 "parsing/parser.ml" +# 15312 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16354,22 +15368,22 @@ module Tables = struct let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = let _1 = _1_inlined2 in -# 2327 "parsing/parser.mly" +# 2399 "parsing/parser.mly" ( _1 ) -# 16360 "parsing/parser.ml" +# 15374 "parsing/parser.ml" in let _3 = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 16366 "parsing/parser.ml" +# 15380 "parsing/parser.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2290 "parsing/parser.mly" +# 2362 "parsing/parser.mly" ( (Optional (fst _4), _5, mkpat_local_if _3 (snd _4) _loc__3_) ) -# 16373 "parsing/parser.ml" +# 15387 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16394,9 +15408,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 16400 "parsing/parser.ml" +# 15414 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -16409,24 +15423,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 16415 "parsing/parser.ml" +# 15429 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2344 "parsing/parser.mly" +# 2417 "parsing/parser.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 16424 "parsing/parser.ml" +# 15438 "parsing/parser.ml" in -# 2292 "parsing/parser.mly" +# 2364 "parsing/parser.mly" ( (Optional (fst _2), None, snd _2) ) -# 16430 "parsing/parser.ml" +# 15444 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16473,9 +15487,9 @@ module Tables = struct let _4 : (Parsetree.pattern) = Obj.magic _4 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 808 "parsing/parser.mly" +# 880 "parsing/parser.mly" (string) -# 16479 "parsing/parser.ml" +# 15493 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -16483,22 +15497,22 @@ module Tables = struct let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = let _1 = _1_inlined1 in -# 2327 "parsing/parser.mly" +# 2399 "parsing/parser.mly" ( _1 ) -# 16489 "parsing/parser.ml" +# 15503 "parsing/parser.ml" in let _3 = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 16495 "parsing/parser.ml" +# 15509 "parsing/parser.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__2_, _endpos__2_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2294 "parsing/parser.mly" +# 2366 "parsing/parser.mly" ( (Optional _1, _5, mkpat_local_if _3 _4 _loc__3_) ) -# 16502 "parsing/parser.ml" +# 15516 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16552,9 +15566,9 @@ module Tables = struct let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 808 "parsing/parser.mly" +# 880 "parsing/parser.mly" (string) -# 16558 "parsing/parser.ml" +# 15572 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -16562,22 +15576,22 @@ module Tables = struct let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _5 = let _1 = _1_inlined2 in -# 2327 "parsing/parser.mly" +# 2399 "parsing/parser.mly" ( _1 ) -# 16568 "parsing/parser.ml" +# 15582 "parsing/parser.ml" in let _3 = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 16574 "parsing/parser.ml" +# 15588 "parsing/parser.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2294 "parsing/parser.mly" +# 2366 "parsing/parser.mly" ( (Optional _1, _5, mkpat_local_if _3 _4 _loc__3_) ) -# 16581 "parsing/parser.ml" +# 15595 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16603,17 +15617,17 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.pattern) = Obj.magic _2 in let _1 : ( -# 808 "parsing/parser.mly" +# 880 "parsing/parser.mly" (string) -# 16609 "parsing/parser.ml" +# 15623 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = -# 2296 "parsing/parser.mly" +# 2368 "parsing/parser.mly" ( (Optional _1, None, _2) ) -# 16617 "parsing/parser.ml" +# 15631 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16657,17 +15671,17 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _3 = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 16663 "parsing/parser.ml" +# 15677 "parsing/parser.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__2_, _endpos__2_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2298 "parsing/parser.mly" +# 2370 "parsing/parser.mly" ( (Labelled (fst _4), None, mkpat_local_if _3 (snd _4) _loc__3_) ) -# 16671 "parsing/parser.ml" +# 15685 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16718,17 +15732,17 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _3 = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 16724 "parsing/parser.ml" +# 15738 "parsing/parser.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2298 "parsing/parser.mly" +# 2370 "parsing/parser.mly" ( (Labelled (fst _4), None, mkpat_local_if _3 (snd _4) _loc__3_) ) -# 16732 "parsing/parser.ml" +# 15746 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16753,9 +15767,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 16759 "parsing/parser.ml" +# 15773 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -16768,24 +15782,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 16774 "parsing/parser.ml" +# 15788 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2344 "parsing/parser.mly" +# 2417 "parsing/parser.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 16783 "parsing/parser.ml" +# 15797 "parsing/parser.ml" in -# 2301 "parsing/parser.mly" +# 2373 "parsing/parser.mly" ( (Labelled (fst _2), None, snd _2) ) -# 16789 "parsing/parser.ml" +# 15803 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16811,17 +15825,17 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.pattern) = Obj.magic _2 in let _1 : ( -# 776 "parsing/parser.mly" +# 848 "parsing/parser.mly" (string) -# 16817 "parsing/parser.ml" +# 15831 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = -# 2303 "parsing/parser.mly" +# 2375 "parsing/parser.mly" ( (Labelled _1, None, _2) ) -# 16825 "parsing/parser.ml" +# 15839 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16868,18 +15882,18 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 776 "parsing/parser.mly" +# 848 "parsing/parser.mly" (string) -# 16874 "parsing/parser.ml" +# 15888 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2305 "parsing/parser.mly" +# 2377 "parsing/parser.mly" ( (Labelled _1, None, mkpat_stack _4 (make_loc _loc__3_)) ) -# 16883 "parsing/parser.ml" +# 15897 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16902,9 +15916,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = -# 2307 "parsing/parser.mly" +# 2379 "parsing/parser.mly" ( (Nolabel, None, _1) ) -# 16908 "parsing/parser.ml" +# 15922 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -16949,9 +15963,9 @@ module Tables = struct let _endpos = _endpos__4_ in let _v : (Asttypes.arg_label * Parsetree.expression option * Parsetree.pattern) = let _loc__2_ = (_startpos__2_, _endpos__2_) in -# 2309 "parsing/parser.mly" +# 2381 "parsing/parser.mly" ( (Nolabel, None, mkpat_stack _3 (make_loc _loc__2_)) ) -# 16955 "parsing/parser.ml" +# 15969 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17014,14 +16028,16 @@ module Tables = struct let _4 : unit = Obj.magic _4 in let ty : (Parsetree.core_type) = Obj.magic ty in let _2_inlined2 : unit = Obj.magic _2_inlined2 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let pat : (Parsetree.pattern) = Obj.magic pat in let _2 : unit = Obj.magic _2 in let _1 : ( -# 776 "parsing/parser.mly" +# 848 "parsing/parser.mly" (string) -# 17025 "parsing/parser.ml" +# 16041 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -17036,24 +16052,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 17040 "parsing/parser.ml" +# 16056 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 17045 "parsing/parser.ml" +# 16061 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 17051 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 16067 "parsing/parser.ml" in -# 2360 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 17057 "parsing/parser.ml" +# 2433 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 16073 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_xs_) in @@ -17061,15 +16077,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 17067 "parsing/parser.ml" +# 16083 "parsing/parser.ml" in -# 2361 "parsing/parser.mly" +# 2434 "parsing/parser.mly" ( Ppat_constraint(pat, cty) ) -# 17073 "parsing/parser.ml" +# 16089 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_pat_) in @@ -17077,21 +16093,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 17083 "parsing/parser.ml" +# 16099 "parsing/parser.ml" in -# 2362 "parsing/parser.mly" +# 2435 "parsing/parser.mly" ( _1 ) -# 17089 "parsing/parser.ml" +# 16105 "parsing/parser.ml" in -# 2311 "parsing/parser.mly" +# 2383 "parsing/parser.mly" ( (Labelled _1, None, _3) ) -# 17095 "parsing/parser.ml" +# 16111 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17160,15 +16176,17 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _2_inlined2 : unit = Obj.magic _2_inlined2 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let pat : (Parsetree.pattern) = Obj.magic pat in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 776 "parsing/parser.mly" +# 848 "parsing/parser.mly" (string) -# 17172 "parsing/parser.ml" +# 16190 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -17183,24 +16201,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 17187 "parsing/parser.ml" +# 16205 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 17192 "parsing/parser.ml" +# 16210 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 17198 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 16216 "parsing/parser.ml" in -# 2360 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 17204 "parsing/parser.ml" +# 2433 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 16222 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_xs_) in @@ -17208,15 +16226,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 17214 "parsing/parser.ml" +# 16232 "parsing/parser.ml" in -# 2361 "parsing/parser.mly" +# 2434 "parsing/parser.mly" ( Ppat_constraint(pat, cty) ) -# 17220 "parsing/parser.ml" +# 16238 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_pat_) in @@ -17224,22 +16242,22 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 17230 "parsing/parser.ml" +# 16248 "parsing/parser.ml" in -# 2362 "parsing/parser.mly" +# 2435 "parsing/parser.mly" ( _1 ) -# 17236 "parsing/parser.ml" +# 16254 "parsing/parser.ml" in let _loc__2_ = (_startpos__2_, _endpos__2_) in -# 2313 "parsing/parser.mly" +# 2385 "parsing/parser.mly" ( (Labelled _1, None, mkpat_stack _4 (make_loc _loc__2_)) ) -# 17243 "parsing/parser.ml" +# 16261 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17296,7 +16314,9 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let ty : (Parsetree.core_type) = Obj.magic ty in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let pat : (Parsetree.pattern) = Obj.magic pat in let _1 : unit = Obj.magic _1 in @@ -17313,24 +16333,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 17317 "parsing/parser.ml" +# 16337 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 17322 "parsing/parser.ml" +# 16342 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 17328 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 16348 "parsing/parser.ml" in -# 2360 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 17334 "parsing/parser.ml" +# 2433 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 16354 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_xs_) in @@ -17338,15 +16358,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 17344 "parsing/parser.ml" +# 16364 "parsing/parser.ml" in -# 2361 "parsing/parser.mly" +# 2434 "parsing/parser.mly" ( Ppat_constraint(pat, cty) ) -# 17350 "parsing/parser.ml" +# 16370 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_pat_) in @@ -17354,21 +16374,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 17360 "parsing/parser.ml" +# 16380 "parsing/parser.ml" in -# 2362 "parsing/parser.mly" +# 2435 "parsing/parser.mly" ( _1 ) -# 17366 "parsing/parser.ml" +# 16386 "parsing/parser.ml" in -# 2315 "parsing/parser.mly" +# 2387 "parsing/parser.mly" ( (Nolabel, None, _2) ) -# 17372 "parsing/parser.ml" +# 16392 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17390,11 +16410,70 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Parsetree.attribute) = let _loc__1_ = (_startpos__1_, _endpos__1_) in + let _v : ((Asttypes.layout_annotation * string) Asttypes.loc) = let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 3220 "parsing/parser.mly" - ( check_layout _loc__1_ _1 ) -# 17398 "parsing/parser.ml" +# 3319 "parsing/parser.mly" + ( check_layout (make_loc _sloc) _1 ) +# 16420 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ((Asttypes.layout_annotation * string) Asttypes.loc) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Asttypes.layout_annotation Asttypes.loc) = +# 3314 "parsing/parser.mly" + ( Location.map fst _1 ) +# 16445 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let layout : ((Asttypes.layout_annotation * string) Asttypes.loc) = Obj.magic layout in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos_layout_ in + let _v : (Parsetree.attribute) = +# 3325 "parsing/parser.mly" + ( Attr.mk ~loc:layout.loc (Location.map snd layout) (PStr []) ) +# 16477 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17417,9 +16496,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern * Parsetree.expression * bool) = -# 2706 "parsing/parser.mly" +# 2781 "parsing/parser.mly" ( let p,e = _1 in (p,e,false) ) -# 17423 "parsing/parser.ml" +# 16502 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17445,9 +16524,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 2709 "parsing/parser.mly" +# 2784 "parsing/parser.mly" ( (mkpatvar ~loc:_loc _1, mkexpvar ~loc:_loc _1, true) ) -# 17451 "parsing/parser.ml" +# 16530 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17481,15 +16560,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2654 "parsing/parser.mly" +# 2729 "parsing/parser.mly" ( mkpatvar ~loc:_sloc _1 ) -# 17487 "parsing/parser.ml" +# 16566 "parsing/parser.ml" in -# 2658 "parsing/parser.mly" +# 2733 "parsing/parser.mly" ( (_1, _2) ) -# 17493 "parsing/parser.ml" +# 16572 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17537,16 +16616,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2654 "parsing/parser.mly" +# 2729 "parsing/parser.mly" ( mkpatvar ~loc:_sloc _1 ) -# 17543 "parsing/parser.ml" +# 16622 "parsing/parser.ml" in let _startpos__2_ = _startpos__1_ in let _1 = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 17550 "parsing/parser.ml" +# 16629 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos__5_ in @@ -17557,7 +16636,7 @@ module Tables = struct let _loc__1_ = (_startpos__1_, _endpos__1_) in let _sloc = (_symbolstartpos, _endpos) in -# 2660 "parsing/parser.mly" +# 2735 "parsing/parser.mly" ( let v = _2 in (* PR#7344 *) let t = match _3 with @@ -17567,7 +16646,7 @@ module Tables = struct in let loc = Location.(t.ptyp_loc.loc_start, t.ptyp_loc.loc_end) in let local_loc = _loc__1_ in - let typ = ghtyp ~loc (Ptyp_poly([],t)) in + let typ = ghtyp ~loc (Ptyp_poly([],t,[])) in let patloc = (_startpos__2_, _endpos__3_) in let pat = mkpat_local_if _1 (ghpat ~loc:patloc (Ppat_constraint(v, typ))) @@ -17579,7 +16658,7 @@ module Tables = struct local_loc) in (pat, exp) ) -# 17583 "parsing/parser.ml" +# 16662 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17635,16 +16714,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2654 "parsing/parser.mly" +# 2729 "parsing/parser.mly" ( mkpatvar ~loc:_sloc _1 ) -# 17641 "parsing/parser.ml" +# 16720 "parsing/parser.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 17648 "parsing/parser.ml" +# 16727 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -17654,7 +16733,7 @@ module Tables = struct let _loc__1_ = (_startpos__1_, _endpos__1_) in let _sloc = (_symbolstartpos, _endpos) in -# 2660 "parsing/parser.mly" +# 2735 "parsing/parser.mly" ( let v = _2 in (* PR#7344 *) let t = match _3 with @@ -17664,7 +16743,7 @@ module Tables = struct in let loc = Location.(t.ptyp_loc.loc_start, t.ptyp_loc.loc_end) in let local_loc = _loc__1_ in - let typ = ghtyp ~loc (Ptyp_poly([],t)) in + let typ = ghtyp ~loc (Ptyp_poly([],t,[])) in let patloc = (_startpos__2_, _endpos__3_) in let pat = mkpat_local_if _1 (ghpat ~loc:patloc (Ppat_constraint(v, typ))) @@ -17676,7 +16755,7 @@ module Tables = struct local_loc) in (pat, exp) ) -# 17680 "parsing/parser.ml" +# 16759 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17734,7 +16813,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in let _2 : unit = Obj.magic _2 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _3 : unit = Obj.magic _3 in let _1 : (Asttypes.label) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -17747,24 +16828,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 17751 "parsing/parser.ml" +# 16832 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 17756 "parsing/parser.ml" +# 16837 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 17762 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 16843 "parsing/parser.ml" in -# 3486 "parsing/parser.mly" - ( Ptyp_poly(_1, _3) ) -# 17768 "parsing/parser.ml" +# 3596 "parsing/parser.mly" + ( let vars, layouts = _1 in Ptyp_poly(vars, _3, layouts) ) +# 16849 "parsing/parser.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in @@ -17773,16 +16854,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2654 "parsing/parser.mly" +# 2729 "parsing/parser.mly" ( mkpatvar ~loc:_sloc _1 ) -# 17779 "parsing/parser.ml" +# 16860 "parsing/parser.ml" in let _startpos__2_ = _startpos__1_ in let _1 = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 17786 "parsing/parser.ml" +# 16867 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos__6_ in @@ -17794,7 +16875,7 @@ module Tables = struct let _loc__1_ = (_startpos__1_, _endpos__1_) in let _sloc = (_symbolstartpos, _endpos) in -# 2682 "parsing/parser.mly" +# 2757 "parsing/parser.mly" ( let patloc = (_startpos__2_, _endpos__4_) in let pat = mkpat_local_if _1 @@ -17804,7 +16885,7 @@ module Tables = struct in let exp = mkexp_local_if _1 ~loc:_sloc ~kwd_loc:(_loc__1_) _6 in (pat, exp) ) -# 17808 "parsing/parser.ml" +# 16889 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17868,7 +16949,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in let _2 : unit = Obj.magic _2 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _3 : unit = Obj.magic _3 in let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -17882,24 +16965,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 17886 "parsing/parser.ml" +# 16969 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 17891 "parsing/parser.ml" +# 16974 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 17897 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 16980 "parsing/parser.ml" in -# 3486 "parsing/parser.mly" - ( Ptyp_poly(_1, _3) ) -# 17903 "parsing/parser.ml" +# 3596 "parsing/parser.mly" + ( let vars, layouts = _1 in Ptyp_poly(vars, _3, layouts) ) +# 16986 "parsing/parser.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in @@ -17909,16 +16992,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2654 "parsing/parser.mly" +# 2729 "parsing/parser.mly" ( mkpatvar ~loc:_sloc _1 ) -# 17915 "parsing/parser.ml" +# 16998 "parsing/parser.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 17922 "parsing/parser.ml" +# 17005 "parsing/parser.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -17929,7 +17012,7 @@ module Tables = struct let _loc__1_ = (_startpos__1_, _endpos__1_) in let _sloc = (_symbolstartpos, _endpos) in -# 2682 "parsing/parser.mly" +# 2757 "parsing/parser.mly" ( let patloc = (_startpos__2_, _endpos__4_) in let pat = mkpat_local_if _1 @@ -17939,7 +17022,7 @@ module Tables = struct in let exp = mkexp_local_if _1 ~loc:_sloc ~kwd_loc:(_loc__1_) _6 in (pat, exp) ) -# 17943 "parsing/parser.ml" +# 17026 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -17972,9 +17055,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _3; @@ -18003,38 +17086,33 @@ module Tables = struct let _7 : unit = Obj.magic _7 in let _6 : (Parsetree.core_type) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in - let xs : (string Asttypes.loc list) = Obj.magic xs in + let _4 : ((string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) list) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Asttypes.label) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__8_ in - let _v : (Parsetree.pattern * Parsetree.expression) = let _4 = -# 2651 "parsing/parser.mly" - ( xs ) -# 18017 "parsing/parser.ml" - in - let _1 = + let _v : (Parsetree.pattern * Parsetree.expression) = let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2654 "parsing/parser.mly" +# 2729 "parsing/parser.mly" ( mkpatvar ~loc:_sloc _1 ) -# 18026 "parsing/parser.ml" +# 17104 "parsing/parser.ml" in let _endpos = _endpos__8_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2692 "parsing/parser.mly" +# 2767 "parsing/parser.mly" ( let exp, poly = wrap_type_annotation ~loc:_sloc _4 _6 _8 in let loc = (_startpos__1_, _endpos__6_) in (ghpat ~loc (Ppat_constraint(_1, poly)), exp) ) -# 18038 "parsing/parser.ml" +# 17116 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18071,9 +17149,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.pattern * Parsetree.expression) = -# 2697 "parsing/parser.mly" +# 2772 "parsing/parser.mly" ( (_1, _3) ) -# 18077 "parsing/parser.ml" +# 17155 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18124,10 +17202,10 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Parsetree.pattern * Parsetree.expression) = -# 2699 "parsing/parser.mly" +# 2774 "parsing/parser.mly" ( let loc = (_startpos__1_, _endpos__3_) in (ghpat ~loc (Ppat_constraint(_1, _3)), _5) ) -# 18131 "parsing/parser.ml" +# 17209 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18169,9 +17247,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2654 "parsing/parser.mly" +# 2729 "parsing/parser.mly" ( mkpatvar ~loc:_sloc _1 ) -# 18175 "parsing/parser.ml" +# 17253 "parsing/parser.ml" in let _endpos = _endpos__3_ in @@ -18179,9 +17257,9 @@ module Tables = struct let _loc__1_ = (_startpos__1_, _endpos__1_) in let _sloc = (_symbolstartpos, _endpos) in -# 2702 "parsing/parser.mly" +# 2777 "parsing/parser.mly" ( (_2, mkexp_stack ~loc:_sloc ~kwd_loc:(_loc__1_) _3) ) -# 18185 "parsing/parser.ml" +# 17263 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18242,36 +17320,36 @@ module Tables = struct let attrs2 = let _1 = _1_inlined2 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 18248 "parsing/parser.ml" +# 17326 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 18257 "parsing/parser.ml" +# 17335 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2729 "parsing/parser.mly" +# 2804 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 18269 "parsing/parser.ml" +# 17347 "parsing/parser.ml" in -# 2719 "parsing/parser.mly" +# 2794 "parsing/parser.mly" ( _1 ) -# 18275 "parsing/parser.ml" +# 17353 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18301,9 +17379,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (let_bindings) = -# 2720 "parsing/parser.mly" +# 2795 "parsing/parser.mly" ( addlb _1 _2 ) -# 18307 "parsing/parser.ml" +# 17385 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18357,41 +17435,41 @@ module Tables = struct let attrs2 = let _1 = _1_inlined2 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 18363 "parsing/parser.ml" +# 17441 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 18372 "parsing/parser.ml" +# 17450 "parsing/parser.ml" in let ext = -# 4122 "parsing/parser.mly" +# 4264 "parsing/parser.mly" ( None ) -# 18378 "parsing/parser.ml" +# 17456 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2729 "parsing/parser.mly" +# 2804 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 18389 "parsing/parser.ml" +# 17467 "parsing/parser.ml" in -# 2719 "parsing/parser.mly" +# 2794 "parsing/parser.mly" ( _1 ) -# 18395 "parsing/parser.ml" +# 17473 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18459,18 +17537,18 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 18465 "parsing/parser.ml" +# 17543 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let attrs1 = let _1 = _1_inlined2 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 18474 "parsing/parser.ml" +# 17552 "parsing/parser.ml" in let ext = @@ -18479,27 +17557,27 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 4124 "parsing/parser.mly" +# 4266 "parsing/parser.mly" ( not_expecting _loc "extension" ) -# 18485 "parsing/parser.ml" +# 17563 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2729 "parsing/parser.mly" +# 2804 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) ) -# 18497 "parsing/parser.ml" +# 17575 "parsing/parser.ml" in -# 2719 "parsing/parser.mly" +# 2794 "parsing/parser.mly" ( _1 ) -# 18503 "parsing/parser.ml" +# 17581 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18529,9 +17607,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (let_bindings) = -# 2720 "parsing/parser.mly" +# 2795 "parsing/parser.mly" ( addlb _1 _2 ) -# 18535 "parsing/parser.ml" +# 17613 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18554,9 +17632,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 2348 "parsing/parser.mly" +# 2421 "parsing/parser.mly" ( _1 ) -# 18560 "parsing/parser.ml" +# 17638 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18594,24 +17672,24 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 2350 "parsing/parser.mly" +# 2423 "parsing/parser.mly" ( Ppat_constraint(_1, _3) ) -# 18600 "parsing/parser.ml" +# 17678 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 18609 "parsing/parser.ml" +# 17687 "parsing/parser.ml" in -# 2351 "parsing/parser.mly" +# 2424 "parsing/parser.mly" ( _1 ) -# 18615 "parsing/parser.ml" +# 17693 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18655,7 +17733,9 @@ module Tables = struct } = _menhir_stack in let ty : (Parsetree.core_type) = Obj.magic ty in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _2 : unit = Obj.magic _2 in let pat : (Parsetree.pattern) = Obj.magic pat in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -18671,24 +17751,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 18675 "parsing/parser.ml" +# 17755 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 18680 "parsing/parser.ml" +# 17760 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 18686 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 17766 "parsing/parser.ml" in -# 2360 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 18692 "parsing/parser.ml" +# 2433 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 17772 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_xs_) in @@ -18696,15 +17776,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 18702 "parsing/parser.ml" +# 17782 "parsing/parser.ml" in -# 2361 "parsing/parser.mly" +# 2434 "parsing/parser.mly" ( Ppat_constraint(pat, cty) ) -# 18708 "parsing/parser.ml" +# 17788 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_pat_) in @@ -18712,21 +17792,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 18718 "parsing/parser.ml" +# 17798 "parsing/parser.ml" in -# 2362 "parsing/parser.mly" +# 2435 "parsing/parser.mly" ( _1 ) -# 18724 "parsing/parser.ml" +# 17804 "parsing/parser.ml" in -# 2353 "parsing/parser.mly" +# 2426 "parsing/parser.mly" ( _1 ) -# 18730 "parsing/parser.ml" +# 17810 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18760,15 +17840,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2654 "parsing/parser.mly" +# 2729 "parsing/parser.mly" ( mkpatvar ~loc:_sloc _1 ) -# 18766 "parsing/parser.ml" +# 17846 "parsing/parser.ml" in -# 2746 "parsing/parser.mly" +# 2821 "parsing/parser.mly" ( (pat, exp) ) -# 18772 "parsing/parser.ml" +# 17852 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18794,9 +17874,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 2749 "parsing/parser.mly" +# 2824 "parsing/parser.mly" ( (mkpatvar ~loc:_loc _1, mkexpvar ~loc:_loc _1) ) -# 18800 "parsing/parser.ml" +# 17880 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18847,10 +17927,10 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos_exp_ in let _v : (Parsetree.pattern * Parsetree.expression) = -# 2751 "parsing/parser.mly" +# 2826 "parsing/parser.mly" ( let loc = (_startpos_pat_, _endpos_typ_) in (ghpat ~loc (Ppat_constraint(pat, typ)), exp) ) -# 18854 "parsing/parser.ml" +# 17934 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18887,9 +17967,9 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos_exp_ in let _v : (Parsetree.pattern * Parsetree.expression) = -# 2754 "parsing/parser.mly" +# 2829 "parsing/parser.mly" ( (pat, exp) ) -# 18893 "parsing/parser.ml" +# 17973 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18912,10 +17992,10 @@ module Tables = struct let _startpos = _startpos_body_ in let _endpos = _endpos_body_ in let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = -# 2758 "parsing/parser.mly" +# 2833 "parsing/parser.mly" ( let let_pat, let_exp = body in let_pat, let_exp, [] ) -# 18919 "parsing/parser.ml" +# 17999 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18947,9 +18027,9 @@ module Tables = struct } = _menhir_stack in let body : (Parsetree.pattern * Parsetree.expression) = Obj.magic body in let _1 : ( -# 772 "parsing/parser.mly" +# 844 "parsing/parser.mly" (string) -# 18953 "parsing/parser.ml" +# 18033 "parsing/parser.ml" ) = Obj.magic _1 in let bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = Obj.magic bindings in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -18960,22 +18040,22 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 18966 "parsing/parser.ml" +# 18046 "parsing/parser.ml" in let _endpos = _endpos_body_ in let _symbolstartpos = _startpos_bindings_ in let _sloc = (_symbolstartpos, _endpos) in -# 2761 "parsing/parser.mly" +# 2836 "parsing/parser.mly" ( let let_pat, let_exp, rev_ands = bindings in let pbop_pat, pbop_exp = body in let pbop_loc = make_loc _sloc in let and_ = {pbop_op; pbop_pat; pbop_exp; pbop_loc} in let_pat, let_exp, and_ :: rev_ands ) -# 18979 "parsing/parser.ml" +# 18059 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18993,7 +18073,7 @@ module Tables = struct let _v : (Parsetree.class_declaration list) = # 211 "" ( [] ) -# 18997 "parsing/parser.ml" +# 18077 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19057,9 +18137,9 @@ module Tables = struct let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in let body : (Parsetree.class_expr) = Obj.magic body in let _1_inlined2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 19063 "parsing/parser.ml" +# 18143 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -19072,9 +18152,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 19078 "parsing/parser.ml" +# 18158 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -19084,24 +18164,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 19090 "parsing/parser.ml" +# 18170 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 19098 "parsing/parser.ml" +# 18178 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1936 "parsing/parser.mly" +# 2008 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -19109,13 +18189,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id body ~virt ~params ~attrs ~loc ~text ~docs ) -# 19113 "parsing/parser.ml" +# 18193 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 19119 "parsing/parser.ml" +# 18199 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19133,7 +18213,7 @@ module Tables = struct let _v : (Parsetree.class_description list) = # 211 "" ( [] ) -# 19137 "parsing/parser.ml" +# 18217 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19204,9 +18284,9 @@ module Tables = struct let cty : (Parsetree.class_type) = Obj.magic cty in let _6 : unit = Obj.magic _6 in let _1_inlined2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 19210 "parsing/parser.ml" +# 18290 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -19219,9 +18299,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 19225 "parsing/parser.ml" +# 18305 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -19231,24 +18311,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 19237 "parsing/parser.ml" +# 18317 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 19245 "parsing/parser.ml" +# 18325 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2227 "parsing/parser.mly" +# 2299 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -19256,13 +18336,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id cty ~virt ~params ~attrs ~loc ~text ~docs ) -# 19260 "parsing/parser.ml" +# 18340 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 19266 "parsing/parser.ml" +# 18346 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19280,7 +18360,7 @@ module Tables = struct let _v : (Parsetree.class_type_declaration list) = # 211 "" ( [] ) -# 19284 "parsing/parser.ml" +# 18364 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19351,9 +18431,9 @@ module Tables = struct let csig : (Parsetree.class_type) = Obj.magic csig in let _6 : unit = Obj.magic _6 in let _1_inlined2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 19357 "parsing/parser.ml" +# 18437 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -19366,9 +18446,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 19372 "parsing/parser.ml" +# 18452 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -19378,24 +18458,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 19384 "parsing/parser.ml" +# 18464 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 19392 "parsing/parser.ml" +# 18472 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2266 "parsing/parser.mly" +# 2338 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -19403,13 +18483,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id csig ~virt ~params ~attrs ~loc ~text ~docs ) -# 19407 "parsing/parser.ml" +# 18487 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 19413 "parsing/parser.ml" +# 18493 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19427,7 +18507,7 @@ module Tables = struct let _v : (Parsetree.module_binding list) = # 211 "" ( [] ) -# 19431 "parsing/parser.ml" +# 18511 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19488,9 +18568,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 19494 "parsing/parser.ml" +# 18574 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -19500,24 +18580,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 19506 "parsing/parser.ml" +# 18586 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 19514 "parsing/parser.ml" +# 18594 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1591 "parsing/parser.mly" +# 1663 "parsing/parser.mly" ( let loc = make_loc _sloc in let attrs = attrs1 @ attrs2 in @@ -19525,13 +18605,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Mb.mk name body ~attrs ~loc ~text ~docs ) -# 19529 "parsing/parser.ml" +# 18609 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 19535 "parsing/parser.ml" +# 18615 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19549,7 +18629,7 @@ module Tables = struct let _v : (Parsetree.module_declaration list) = # 211 "" ( [] ) -# 19553 "parsing/parser.ml" +# 18633 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19617,9 +18697,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 19623 "parsing/parser.ml" +# 18703 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -19629,24 +18709,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 19635 "parsing/parser.ml" +# 18715 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 19643 "parsing/parser.ml" +# 18723 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1877 "parsing/parser.mly" +# 1949 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let docs = symbol_docs _sloc in @@ -19654,13 +18734,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Md.mk name mty ~attrs ~loc ~text ~docs ) -# 19658 "parsing/parser.ml" +# 18738 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 19664 "parsing/parser.ml" +# 18744 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19678,7 +18758,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 211 "" ( [] ) -# 19682 "parsing/parser.ml" +# 18762 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19710,7 +18790,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 213 "" ( x :: xs ) -# 19714 "parsing/parser.ml" +# 18794 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19728,7 +18808,7 @@ module Tables = struct let _v : (Parsetree.type_declaration list) = # 211 "" ( [] ) -# 19732 "parsing/parser.ml" +# 18812 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19761,25 +18841,31 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_kind_priv_manifest_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; @@ -19792,10 +18878,11 @@ module Tables = struct let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs_inlined1 in let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in + let layout : (Parsetree.attribute option) = Obj.magic layout in let _1_inlined2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 19799 "parsing/parser.ml" +# 18886 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -19808,9 +18895,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 19814 "parsing/parser.ml" +# 18901 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -19819,18 +18906,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 19823 "parsing/parser.ml" +# 18910 "parsing/parser.ml" in -# 1059 "parsing/parser.mly" +# 1131 "parsing/parser.mly" ( xs ) -# 19828 "parsing/parser.ml" +# 18915 "parsing/parser.ml" in -# 3171 "parsing/parser.mly" +# 3265 "parsing/parser.mly" ( _1 ) -# 19834 "parsing/parser.ml" +# 18921 "parsing/parser.ml" in let id = @@ -19839,39 +18926,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 19845 "parsing/parser.ml" +# 18932 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 19853 "parsing/parser.ml" +# 18940 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3160 "parsing/parser.mly" +# 3254 "parsing/parser.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let text = symbol_text _symbolstartpos in - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text ) -# 19869 "parsing/parser.ml" +# 18956 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 19875 "parsing/parser.ml" +# 18962 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19889,7 +18976,7 @@ module Tables = struct let _v : (Parsetree.type_declaration list) = # 211 "" ( [] ) -# 19893 "parsing/parser.ml" +# 18980 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -19927,25 +19014,31 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = params; - MenhirLib.EngineTypes.startp = _startpos_params_; - MenhirLib.EngineTypes.endp = _endpos_params_; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = params; + MenhirLib.EngineTypes.startp = _startpos_params_; + MenhirLib.EngineTypes.endp = _endpos_params_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; }; }; }; @@ -19960,10 +19053,11 @@ module Tables = struct let xs_inlined1 : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = Obj.magic xs_inlined1 in let _2 : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic _2 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in + let layout : (Parsetree.attribute option) = Obj.magic layout in let _1_inlined2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 19967 "parsing/parser.ml" +# 19061 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -19976,9 +19070,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 19982 "parsing/parser.ml" +# 19076 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -19987,24 +19081,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 19991 "parsing/parser.ml" +# 19085 "parsing/parser.ml" in -# 1059 "parsing/parser.mly" +# 1131 "parsing/parser.mly" ( xs ) -# 19996 "parsing/parser.ml" +# 19090 "parsing/parser.ml" in -# 3171 "parsing/parser.mly" +# 3265 "parsing/parser.mly" ( _1 ) -# 20002 "parsing/parser.ml" +# 19096 "parsing/parser.ml" in let kind_priv_manifest = -# 3206 "parsing/parser.mly" +# 3300 "parsing/parser.mly" ( _2 ) -# 20008 "parsing/parser.ml" +# 19102 "parsing/parser.ml" in let id = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -20012,39 +19106,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 20018 "parsing/parser.ml" +# 19112 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 20026 "parsing/parser.ml" +# 19120 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3160 "parsing/parser.mly" +# 3254 "parsing/parser.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let text = symbol_text _symbolstartpos in - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text ) -# 20042 "parsing/parser.ml" +# 19136 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 20048 "parsing/parser.ml" +# 19142 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20062,7 +19156,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 211 "" ( [] ) -# 20066 "parsing/parser.ml" +# 19160 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20094,7 +19188,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 213 "" ( x :: xs ) -# 20098 "parsing/parser.ml" +# 19192 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20112,7 +19206,7 @@ module Tables = struct let _v : (Parsetree.signature_item list list) = # 211 "" ( [] ) -# 20116 "parsing/parser.ml" +# 19210 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20145,21 +19239,21 @@ module Tables = struct let _1 = let _startpos = _startpos__1_ in -# 985 "parsing/parser.mly" +# 1057 "parsing/parser.mly" ( text_sig _startpos ) -# 20151 "parsing/parser.ml" +# 19245 "parsing/parser.ml" in -# 1736 "parsing/parser.mly" +# 1808 "parsing/parser.mly" ( _1 ) -# 20157 "parsing/parser.ml" +# 19251 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 20163 "parsing/parser.ml" +# 19257 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20192,21 +19286,21 @@ module Tables = struct let _1 = let _startpos = _startpos__1_ in -# 983 "parsing/parser.mly" +# 1055 "parsing/parser.mly" ( text_sig _startpos @ [_1] ) -# 20198 "parsing/parser.ml" +# 19292 "parsing/parser.ml" in -# 1736 "parsing/parser.mly" +# 1808 "parsing/parser.mly" ( _1 ) -# 20204 "parsing/parser.ml" +# 19298 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 20210 "parsing/parser.ml" +# 19304 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20224,7 +19318,7 @@ module Tables = struct let _v : (Parsetree.structure_item list list) = # 211 "" ( [] ) -# 20228 "parsing/parser.ml" +# 19322 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20257,40 +19351,40 @@ module Tables = struct let _1 = let ys = let items = -# 1045 "parsing/parser.mly" +# 1117 "parsing/parser.mly" ( [] ) -# 20263 "parsing/parser.ml" +# 19357 "parsing/parser.ml" in -# 1474 "parsing/parser.mly" +# 1546 "parsing/parser.mly" ( items ) -# 20268 "parsing/parser.ml" +# 19362 "parsing/parser.ml" in let xs = let _startpos = _startpos__1_ in -# 981 "parsing/parser.mly" +# 1053 "parsing/parser.mly" ( text_str _startpos ) -# 20276 "parsing/parser.ml" +# 19370 "parsing/parser.ml" in # 267 "" ( xs @ ys ) -# 20282 "parsing/parser.ml" +# 19376 "parsing/parser.ml" in -# 1490 "parsing/parser.mly" +# 1562 "parsing/parser.mly" ( _1 ) -# 20288 "parsing/parser.ml" +# 19382 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 20294 "parsing/parser.ml" +# 19388 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20342,70 +19436,70 @@ module Tables = struct let _1 = let _1 = let attrs = -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 20348 "parsing/parser.ml" +# 19442 "parsing/parser.ml" in -# 1481 "parsing/parser.mly" +# 1553 "parsing/parser.mly" ( mkstrexp e attrs ) -# 20353 "parsing/parser.ml" +# 19447 "parsing/parser.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 979 "parsing/parser.mly" +# 1051 "parsing/parser.mly" ( text_str _startpos @ [_1] ) -# 20361 "parsing/parser.ml" +# 19455 "parsing/parser.ml" in let _startpos__1_ = _startpos_e_ in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 998 "parsing/parser.mly" +# 1070 "parsing/parser.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 20371 "parsing/parser.ml" +# 19465 "parsing/parser.ml" in -# 1047 "parsing/parser.mly" +# 1119 "parsing/parser.mly" ( x ) -# 20377 "parsing/parser.ml" +# 19471 "parsing/parser.ml" in -# 1474 "parsing/parser.mly" +# 1546 "parsing/parser.mly" ( items ) -# 20383 "parsing/parser.ml" +# 19477 "parsing/parser.ml" in let xs = let _startpos = _startpos__1_ in -# 981 "parsing/parser.mly" +# 1053 "parsing/parser.mly" ( text_str _startpos ) -# 20391 "parsing/parser.ml" +# 19485 "parsing/parser.ml" in # 267 "" ( xs @ ys ) -# 20397 "parsing/parser.ml" +# 19491 "parsing/parser.ml" in -# 1490 "parsing/parser.mly" +# 1562 "parsing/parser.mly" ( _1 ) -# 20403 "parsing/parser.ml" +# 19497 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 20409 "parsing/parser.ml" +# 19503 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20438,21 +19532,21 @@ module Tables = struct let _1 = let _startpos = _startpos__1_ in -# 979 "parsing/parser.mly" +# 1051 "parsing/parser.mly" ( text_str _startpos @ [_1] ) -# 20444 "parsing/parser.ml" +# 19538 "parsing/parser.ml" in -# 1490 "parsing/parser.mly" +# 1562 "parsing/parser.mly" ( _1 ) -# 20450 "parsing/parser.ml" +# 19544 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 20456 "parsing/parser.ml" +# 19550 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20470,7 +19564,7 @@ module Tables = struct let _v : (Parsetree.class_type_field list list) = # 211 "" ( [] ) -# 20474 "parsing/parser.ml" +# 19568 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20502,15 +19596,15 @@ module Tables = struct let _v : (Parsetree.class_type_field list list) = let x = let _startpos = _startpos__1_ in -# 993 "parsing/parser.mly" +# 1065 "parsing/parser.mly" ( text_csig _startpos @ [_1] ) -# 20508 "parsing/parser.ml" +# 19602 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 20514 "parsing/parser.ml" +# 19608 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20528,7 +19622,7 @@ module Tables = struct let _v : (Parsetree.class_field list list) = # 211 "" ( [] ) -# 20532 "parsing/parser.ml" +# 19626 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20560,15 +19654,15 @@ module Tables = struct let _v : (Parsetree.class_field list list) = let x = let _startpos = _startpos__1_ in -# 991 "parsing/parser.mly" +# 1063 "parsing/parser.mly" ( text_cstr _startpos @ [_1] ) -# 20566 "parsing/parser.ml" +# 19660 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 20572 "parsing/parser.ml" +# 19666 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20586,7 +19680,7 @@ module Tables = struct let _v : (Parsetree.structure_item list list) = # 211 "" ( [] ) -# 20590 "parsing/parser.ml" +# 19684 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20618,15 +19712,15 @@ module Tables = struct let _v : (Parsetree.structure_item list list) = let x = let _startpos = _startpos__1_ in -# 979 "parsing/parser.mly" +# 1051 "parsing/parser.mly" ( text_str _startpos @ [_1] ) -# 20624 "parsing/parser.ml" +# 19718 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 20630 "parsing/parser.ml" +# 19724 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20644,7 +19738,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase list list) = # 211 "" ( [] ) -# 20648 "parsing/parser.ml" +# 19742 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20677,32 +19771,32 @@ module Tables = struct let _1 = let x = let _1 = -# 1045 "parsing/parser.mly" +# 1117 "parsing/parser.mly" ( [] ) -# 20683 "parsing/parser.ml" +# 19777 "parsing/parser.ml" in -# 1277 "parsing/parser.mly" +# 1349 "parsing/parser.mly" ( _1 ) -# 20688 "parsing/parser.ml" +# 19782 "parsing/parser.ml" in # 183 "" ( x ) -# 20694 "parsing/parser.ml" +# 19788 "parsing/parser.ml" in -# 1289 "parsing/parser.mly" +# 1361 "parsing/parser.mly" ( _1 ) -# 20700 "parsing/parser.ml" +# 19794 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 20706 "parsing/parser.ml" +# 19800 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20754,58 +19848,58 @@ module Tables = struct let _1 = let _1 = let attrs = -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 20760 "parsing/parser.ml" +# 19854 "parsing/parser.ml" in -# 1481 "parsing/parser.mly" +# 1553 "parsing/parser.mly" ( mkstrexp e attrs ) -# 20765 "parsing/parser.ml" +# 19859 "parsing/parser.ml" in -# 989 "parsing/parser.mly" +# 1061 "parsing/parser.mly" ( Ptop_def [_1] ) -# 20771 "parsing/parser.ml" +# 19865 "parsing/parser.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 987 "parsing/parser.mly" +# 1059 "parsing/parser.mly" ( text_def _startpos @ [_1] ) -# 20779 "parsing/parser.ml" +# 19873 "parsing/parser.ml" in -# 1047 "parsing/parser.mly" +# 1119 "parsing/parser.mly" ( x ) -# 20785 "parsing/parser.ml" +# 19879 "parsing/parser.ml" in -# 1277 "parsing/parser.mly" +# 1349 "parsing/parser.mly" ( _1 ) -# 20791 "parsing/parser.ml" +# 19885 "parsing/parser.ml" in # 183 "" ( x ) -# 20797 "parsing/parser.ml" +# 19891 "parsing/parser.ml" in -# 1289 "parsing/parser.mly" +# 1361 "parsing/parser.mly" ( _1 ) -# 20803 "parsing/parser.ml" +# 19897 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 20809 "parsing/parser.ml" +# 19903 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20837,27 +19931,27 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase list list) = let x = let _1 = let _1 = -# 989 "parsing/parser.mly" +# 1061 "parsing/parser.mly" ( Ptop_def [_1] ) -# 20843 "parsing/parser.ml" +# 19937 "parsing/parser.ml" in let _startpos = _startpos__1_ in -# 987 "parsing/parser.mly" +# 1059 "parsing/parser.mly" ( text_def _startpos @ [_1] ) -# 20849 "parsing/parser.ml" +# 19943 "parsing/parser.ml" in -# 1289 "parsing/parser.mly" +# 1361 "parsing/parser.mly" ( _1 ) -# 20855 "parsing/parser.ml" +# 19949 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 20861 "parsing/parser.ml" +# 19955 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20892,29 +19986,29 @@ module Tables = struct let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 998 "parsing/parser.mly" +# 1070 "parsing/parser.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 20899 "parsing/parser.ml" +# 19993 "parsing/parser.ml" in let _startpos = _startpos__1_ in -# 987 "parsing/parser.mly" +# 1059 "parsing/parser.mly" ( text_def _startpos @ [_1] ) -# 20906 "parsing/parser.ml" +# 20000 "parsing/parser.ml" in -# 1289 "parsing/parser.mly" +# 1361 "parsing/parser.mly" ( _1 ) -# 20912 "parsing/parser.ml" +# 20006 "parsing/parser.ml" in # 213 "" ( x :: xs ) -# 20918 "parsing/parser.ml" +# 20012 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -20953,7 +20047,7 @@ module Tables = struct let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let _2 = # 124 "" ( None ) -# 20957 "parsing/parser.ml" +# 20051 "parsing/parser.ml" in let x = let label = @@ -20961,9 +20055,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 20967 "parsing/parser.ml" +# 20061 "parsing/parser.ml" in let _startpos_label_ = _startpos__1_ in @@ -20971,7 +20065,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3046 "parsing/parser.mly" +# 3138 "parsing/parser.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -20985,13 +20079,13 @@ module Tables = struct in label, mkpat_opt_constraint ~loc:constraint_loc pat octy ) -# 20989 "parsing/parser.ml" +# 20083 "parsing/parser.ml" in -# 1214 "parsing/parser.mly" +# 1286 "parsing/parser.mly" ( [x], None ) -# 20995 "parsing/parser.ml" +# 20089 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21037,7 +20131,7 @@ module Tables = struct let _v : ((Longident.t Asttypes.loc * Parsetree.pattern) list * unit option) = let _2 = # 126 "" ( Some x ) -# 21041 "parsing/parser.ml" +# 20135 "parsing/parser.ml" in let x = let label = @@ -21045,9 +20139,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 21051 "parsing/parser.ml" +# 20145 "parsing/parser.ml" in let _startpos_label_ = _startpos__1_ in @@ -21055,7 +20149,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3046 "parsing/parser.mly" +# 3138 "parsing/parser.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -21069,13 +20163,13 @@ module Tables = struct in label, mkpat_opt_constraint ~loc:constraint_loc pat octy ) -# 21073 "parsing/parser.ml" +# 20167 "parsing/parser.ml" in -# 1214 "parsing/parser.mly" +# 1286 "parsing/parser.mly" ( [x], None ) -# 21079 "parsing/parser.ml" +# 20173 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21138,9 +20232,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 21144 "parsing/parser.ml" +# 20238 "parsing/parser.ml" in let _startpos_label_ = _startpos__1_ in @@ -21148,7 +20242,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3046 "parsing/parser.mly" +# 3138 "parsing/parser.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -21162,13 +20256,13 @@ module Tables = struct in label, mkpat_opt_constraint ~loc:constraint_loc pat octy ) -# 21166 "parsing/parser.ml" +# 20260 "parsing/parser.ml" in -# 1216 "parsing/parser.mly" +# 1288 "parsing/parser.mly" ( [x], Some y ) -# 21172 "parsing/parser.ml" +# 20266 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21224,9 +20318,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 21230 "parsing/parser.ml" +# 20324 "parsing/parser.ml" in let _startpos_label_ = _startpos__1_ in @@ -21234,7 +20328,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3046 "parsing/parser.mly" +# 3138 "parsing/parser.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -21248,14 +20342,14 @@ module Tables = struct in label, mkpat_opt_constraint ~loc:constraint_loc pat octy ) -# 21252 "parsing/parser.ml" +# 20346 "parsing/parser.ml" in -# 1220 "parsing/parser.mly" +# 1292 "parsing/parser.mly" ( let xs, y = tail in x :: xs, y ) -# 21259 "parsing/parser.ml" +# 20353 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21278,9 +20372,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = -# 2783 "parsing/parser.mly" +# 2860 "parsing/parser.mly" ( _1 ) -# 21284 "parsing/parser.ml" +# 20378 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21320,9 +20414,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2785 "parsing/parser.mly" +# 2862 "parsing/parser.mly" ( wrap_exp_stack (mkexp_constraint ~loc:_sloc _3 _1) (make_loc _sloc) ) -# 21326 "parsing/parser.ml" +# 20420 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21352,9 +20446,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 2789 "parsing/parser.mly" +# 2866 "parsing/parser.mly" ( _2 ) -# 21358 "parsing/parser.ml" +# 20452 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21387,9 +20481,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2791 "parsing/parser.mly" +# 2868 "parsing/parser.mly" ( let (l, o, p) = _1 in ghexp ~loc:_sloc (Pexp_fun(l, o, p, _2)) ) -# 21393 "parsing/parser.ml" +# 20487 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21412,9 +20506,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -21433,24 +20527,104 @@ module Tables = struct } = _menhir_stack in let _5 : (Parsetree.expression) = Obj.magic _5 in let _4 : unit = Obj.magic _4 in - let xs : (string Asttypes.loc list) = Obj.magic xs in + let _3 : ((string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) list) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _3 = -# 2651 "parsing/parser.mly" - ( xs ) -# 21446 "parsing/parser.ml" - in - let _endpos = _endpos__5_ in + let _v : (Parsetree.expression) = let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2793 "parsing/parser.mly" +# 2870 "parsing/parser.mly" ( mk_newtypes ~loc:_sloc _3 _5 ) -# 21454 "parsing/parser.ml" +# 20543 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _7 : (Parsetree.expression) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _5 : (Asttypes.layout_annotation Asttypes.loc) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _1_inlined1 : ( +# 861 "parsing/parser.mly" + (string) +# 20604 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__7_ in + let _v : (Parsetree.expression) = let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 20619 "parsing/parser.ml" + + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2872 "parsing/parser.mly" + ( mk_newtypes ~loc:_sloc [_3, Some _5] _7 ) +# 20628 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21487,9 +20661,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.case) = -# 2801 "parsing/parser.mly" +# 2880 "parsing/parser.mly" ( Exp.case _1 _3 ) -# 21493 "parsing/parser.ml" +# 20667 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21540,9 +20714,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Parsetree.case) = -# 2803 "parsing/parser.mly" +# 2882 "parsing/parser.mly" ( Exp.case _1 ~guard:_3 _5 ) -# 21546 "parsing/parser.ml" +# 20720 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21580,9 +20754,9 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.case) = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2805 "parsing/parser.mly" +# 2884 "parsing/parser.mly" ( Exp.case _1 (Exp.unreachable ~loc:(make_loc _loc__3_) ()) ) -# 21586 "parsing/parser.ml" +# 20760 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21643,9 +20817,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 21649 "parsing/parser.ml" +# 20823 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -21654,49 +20828,49 @@ module Tables = struct let _6 = let _1 = _1_inlined3 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 21660 "parsing/parser.ml" +# 20834 "parsing/parser.ml" in let _endpos__6_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 21669 "parsing/parser.ml" +# 20843 "parsing/parser.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _3 = let _1 = _1_inlined1 in -# 3500 "parsing/parser.mly" +# 3610 "parsing/parser.mly" ( _1 ) -# 21678 "parsing/parser.ml" +# 20852 "parsing/parser.ml" in let _1 = let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 21685 "parsing/parser.ml" +# 20859 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 21693 "parsing/parser.ml" +# 20867 "parsing/parser.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3745 "parsing/parser.mly" +# 3880 "parsing/parser.mly" ( let info = match rhs_info _endpos__4_ with | Some _ as info_before_semi -> info_before_semi @@ -21704,13 +20878,13 @@ module Tables = struct in let attrs = add_info_attrs info (_4 @ _6) in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 21708 "parsing/parser.ml" +# 20882 "parsing/parser.ml" in -# 3726 "parsing/parser.mly" +# 3861 "parsing/parser.mly" ( let (f, c) = tail in (head :: f, c) ) -# 21714 "parsing/parser.ml" +# 20888 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21751,15 +20925,15 @@ module Tables = struct let _symbolstartpos = _startpos_ty_ in let _sloc = (_symbolstartpos, _endpos) in -# 3756 "parsing/parser.mly" +# 3891 "parsing/parser.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 21757 "parsing/parser.ml" +# 20931 "parsing/parser.ml" in -# 3726 "parsing/parser.mly" +# 3861 "parsing/parser.mly" ( let (f, c) = tail in (head :: f, c) ) -# 21763 "parsing/parser.ml" +# 20937 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21813,9 +20987,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 21819 "parsing/parser.ml" +# 20993 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -21824,49 +20998,49 @@ module Tables = struct let _6 = let _1 = _1_inlined3 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 21830 "parsing/parser.ml" +# 21004 "parsing/parser.ml" in let _endpos__6_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 21839 "parsing/parser.ml" +# 21013 "parsing/parser.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _3 = let _1 = _1_inlined1 in -# 3500 "parsing/parser.mly" +# 3610 "parsing/parser.mly" ( _1 ) -# 21848 "parsing/parser.ml" +# 21022 "parsing/parser.ml" in let _1 = let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 21855 "parsing/parser.ml" +# 21029 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 21863 "parsing/parser.ml" +# 21037 "parsing/parser.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3745 "parsing/parser.mly" +# 3880 "parsing/parser.mly" ( let info = match rhs_info _endpos__4_ with | Some _ as info_before_semi -> info_before_semi @@ -21874,13 +21048,13 @@ module Tables = struct in let attrs = add_info_attrs info (_4 @ _6) in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 21878 "parsing/parser.ml" +# 21052 "parsing/parser.ml" in -# 3729 "parsing/parser.mly" +# 3864 "parsing/parser.mly" ( [head], Closed ) -# 21884 "parsing/parser.ml" +# 21058 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21914,15 +21088,15 @@ module Tables = struct let _symbolstartpos = _startpos_ty_ in let _sloc = (_symbolstartpos, _endpos) in -# 3756 "parsing/parser.mly" +# 3891 "parsing/parser.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 21920 "parsing/parser.ml" +# 21094 "parsing/parser.ml" in -# 3729 "parsing/parser.mly" +# 3864 "parsing/parser.mly" ( [head], Closed ) -# 21926 "parsing/parser.ml" +# 21100 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -21962,9 +21136,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 21968 "parsing/parser.ml" +# 21142 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -21973,50 +21147,50 @@ module Tables = struct let _4 = let _1 = _1_inlined2 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 21979 "parsing/parser.ml" +# 21153 "parsing/parser.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _3 = let _1 = _1_inlined1 in -# 3500 "parsing/parser.mly" +# 3610 "parsing/parser.mly" ( _1 ) -# 21988 "parsing/parser.ml" +# 21162 "parsing/parser.ml" in let _1 = let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 21995 "parsing/parser.ml" +# 21169 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 22003 "parsing/parser.ml" +# 21177 "parsing/parser.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3738 "parsing/parser.mly" +# 3873 "parsing/parser.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _4 in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 22014 "parsing/parser.ml" +# 21188 "parsing/parser.ml" in -# 3732 "parsing/parser.mly" +# 3867 "parsing/parser.mly" ( [head], Closed ) -# 22020 "parsing/parser.ml" +# 21194 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22043,15 +21217,15 @@ module Tables = struct let _symbolstartpos = _startpos_ty_ in let _sloc = (_symbolstartpos, _endpos) in -# 3756 "parsing/parser.mly" +# 3891 "parsing/parser.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 22049 "parsing/parser.ml" +# 21223 "parsing/parser.ml" in -# 3732 "parsing/parser.mly" +# 3867 "parsing/parser.mly" ( [head], Closed ) -# 22055 "parsing/parser.ml" +# 21229 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22074,9 +21248,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.object_field list * Asttypes.closed_flag) = -# 3734 "parsing/parser.mly" +# 3869 "parsing/parser.mly" ( [], Open ) -# 22080 "parsing/parser.ml" +# 21254 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22121,9 +21295,9 @@ module Tables = struct let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 22127 "parsing/parser.ml" +# 21301 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let private_ : (Asttypes.private_flag) = Obj.magic private_ in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -22135,41 +21309,41 @@ module Tables = struct Parsetree.attributes) = let ty = let _1 = _1_inlined2 in -# 3496 "parsing/parser.mly" +# 3606 "parsing/parser.mly" ( _1 ) -# 22141 "parsing/parser.ml" +# 21315 "parsing/parser.ml" in let label = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 22149 "parsing/parser.ml" +# 21323 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 22157 "parsing/parser.ml" +# 21331 "parsing/parser.ml" in let attrs = -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 22163 "parsing/parser.ml" +# 21337 "parsing/parser.ml" in let _1 = -# 4012 "parsing/parser.mly" +# 4154 "parsing/parser.mly" ( Fresh ) -# 22168 "parsing/parser.ml" +# 21342 "parsing/parser.ml" in -# 2074 "parsing/parser.mly" +# 2146 "parsing/parser.mly" ( (label, private_, Cfk_virtual ty), attrs ) -# 22173 "parsing/parser.ml" +# 21347 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22207,9 +21381,9 @@ module Tables = struct } = _menhir_stack in let _5 : (Parsetree.expression) = Obj.magic _5 in let _1_inlined1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 22213 "parsing/parser.ml" +# 21387 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -22221,36 +21395,36 @@ module Tables = struct Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 22227 "parsing/parser.ml" +# 21401 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 22235 "parsing/parser.ml" +# 21409 "parsing/parser.ml" in let _2 = -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 22241 "parsing/parser.ml" +# 21415 "parsing/parser.ml" in let _1 = -# 4015 "parsing/parser.mly" +# 4157 "parsing/parser.mly" ( Fresh ) -# 22246 "parsing/parser.ml" +# 21420 "parsing/parser.ml" in -# 2076 "parsing/parser.mly" +# 2148 "parsing/parser.mly" ( let e = _5 in let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in (_4, _3, Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 ) -# 22254 "parsing/parser.ml" +# 21428 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22294,9 +21468,9 @@ module Tables = struct } = _menhir_stack in let _5 : (Parsetree.expression) = Obj.magic _5 in let _1_inlined2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 22300 "parsing/parser.ml" +# 21474 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -22309,39 +21483,39 @@ module Tables = struct Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 22315 "parsing/parser.ml" +# 21489 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 22323 "parsing/parser.ml" +# 21497 "parsing/parser.ml" in let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 22331 "parsing/parser.ml" +# 21505 "parsing/parser.ml" in let _1 = -# 4016 "parsing/parser.mly" +# 4158 "parsing/parser.mly" ( Override ) -# 22337 "parsing/parser.ml" +# 21511 "parsing/parser.ml" in -# 2076 "parsing/parser.mly" +# 2148 "parsing/parser.mly" ( let e = _5 in let loc = Location.(e.pexp_loc.loc_start, e.pexp_loc.loc_end) in (_4, _3, Cfk_concrete (_1, ghexp ~loc (Pexp_poly (e, None)))), _2 ) -# 22345 "parsing/parser.ml" +# 21519 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22400,9 +21574,9 @@ module Tables = struct let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 22406 "parsing/parser.ml" +# 21580 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -22414,45 +21588,45 @@ module Tables = struct Parsetree.attributes) = let _6 = let _1 = _1_inlined2 in -# 3496 "parsing/parser.mly" +# 3606 "parsing/parser.mly" ( _1 ) -# 22420 "parsing/parser.ml" +# 21594 "parsing/parser.ml" in let _startpos__6_ = _startpos__1_inlined2_ in let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 22429 "parsing/parser.ml" +# 21603 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 22437 "parsing/parser.ml" +# 21611 "parsing/parser.ml" in let _2 = -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 22443 "parsing/parser.ml" +# 21617 "parsing/parser.ml" in let _1 = -# 4015 "parsing/parser.mly" +# 4157 "parsing/parser.mly" ( Fresh ) -# 22448 "parsing/parser.ml" +# 21622 "parsing/parser.ml" in -# 2082 "parsing/parser.mly" +# 2154 "parsing/parser.mly" ( let poly_exp = let loc = (_startpos__6_, _endpos__8_) in ghexp ~loc (Pexp_poly(_8, Some _6)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 22456 "parsing/parser.ml" +# 21630 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22517,9 +21691,9 @@ module Tables = struct let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 22523 "parsing/parser.ml" +# 21697 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -22532,48 +21706,48 @@ module Tables = struct Parsetree.attributes) = let _6 = let _1 = _1_inlined3 in -# 3496 "parsing/parser.mly" +# 3606 "parsing/parser.mly" ( _1 ) -# 22538 "parsing/parser.ml" +# 21712 "parsing/parser.ml" in let _startpos__6_ = _startpos__1_inlined3_ in let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 22547 "parsing/parser.ml" +# 21721 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 22555 "parsing/parser.ml" +# 21729 "parsing/parser.ml" in let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 22563 "parsing/parser.ml" +# 21737 "parsing/parser.ml" in let _1 = -# 4016 "parsing/parser.mly" +# 4158 "parsing/parser.mly" ( Override ) -# 22569 "parsing/parser.ml" +# 21743 "parsing/parser.ml" in -# 2082 "parsing/parser.mly" +# 2154 "parsing/parser.mly" ( let poly_exp = let loc = (_startpos__6_, _endpos__8_) in ghexp ~loc (Pexp_poly(_8, Some _6)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 22577 "parsing/parser.ml" +# 21751 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22606,9 +21780,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__8_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _6; @@ -22649,13 +21823,13 @@ module Tables = struct let _10 : unit = Obj.magic _10 in let _9 : (Parsetree.core_type) = Obj.magic _9 in let _8 : unit = Obj.magic _8 in - let xs : (string Asttypes.loc list) = Obj.magic xs in + let _7 : ((string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) list) = Obj.magic _7 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 22659 "parsing/parser.ml" +# 21833 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -22664,39 +21838,33 @@ module Tables = struct let _endpos = _endpos__11_ in let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = let _7 = -# 2651 "parsing/parser.mly" - ( xs ) -# 22671 "parsing/parser.ml" - in - let _startpos__7_ = _startpos_xs_ in - let _4 = + Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 22679 "parsing/parser.ml" +# 21847 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 22687 "parsing/parser.ml" +# 21855 "parsing/parser.ml" in let _startpos__4_ = _startpos__1_inlined1_ in let _2 = -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 22694 "parsing/parser.ml" +# 21862 "parsing/parser.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in let _1 = -# 4015 "parsing/parser.mly" +# 4157 "parsing/parser.mly" ( Fresh ) -# 22700 "parsing/parser.ml" +# 21868 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos__11_ in @@ -22712,7 +21880,7 @@ module Tables = struct _startpos__4_ in let _sloc = (_symbolstartpos, _endpos) in -# 2088 "parsing/parser.mly" +# 2160 "parsing/parser.mly" ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in let poly_exp = let exp, poly = @@ -22723,7 +21891,7 @@ module Tables = struct ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 22727 "parsing/parser.ml" +# 21895 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22756,9 +21924,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__8_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _6; @@ -22805,13 +21973,13 @@ module Tables = struct let _10 : unit = Obj.magic _10 in let _9 : (Parsetree.core_type) = Obj.magic _9 in let _8 : unit = Obj.magic _8 in - let xs : (string Asttypes.loc list) = Obj.magic xs in + let _7 : ((string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) list) = Obj.magic _7 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 22815 "parsing/parser.ml" +# 21983 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -22821,42 +21989,36 @@ module Tables = struct let _endpos = _endpos__11_ in let _v : ((Asttypes.label Asttypes.loc * Asttypes.private_flag * Parsetree.class_field_kind) * - Parsetree.attributes) = let _7 = -# 2651 "parsing/parser.mly" - ( xs ) -# 22828 "parsing/parser.ml" - in - let _startpos__7_ = _startpos_xs_ in - let _4 = + Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 22836 "parsing/parser.ml" +# 21998 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 22844 "parsing/parser.ml" +# 22006 "parsing/parser.ml" in let _startpos__4_ = _startpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 22853 "parsing/parser.ml" +# 22015 "parsing/parser.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let _1 = -# 4016 "parsing/parser.mly" +# 4158 "parsing/parser.mly" ( Override ) -# 22860 "parsing/parser.ml" +# 22022 "parsing/parser.ml" in let _endpos = _endpos__11_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -22871,7 +22033,7 @@ module Tables = struct _startpos__4_ in let _sloc = (_symbolstartpos, _endpos) in -# 2088 "parsing/parser.mly" +# 2160 "parsing/parser.mly" ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in let poly_exp = let exp, poly = @@ -22882,7 +22044,7 @@ module Tables = struct ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 22886 "parsing/parser.ml" +# 22048 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22901,17 +22063,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 22907 "parsing/parser.ml" +# 22069 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3857 "parsing/parser.mly" +# 3992 "parsing/parser.mly" ( Lident _1 ) -# 22915 "parsing/parser.ml" +# 22077 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22942,9 +22104,9 @@ module Tables = struct }; } = _menhir_stack in let _3 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 22948 "parsing/parser.ml" +# 22110 "parsing/parser.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -22952,9 +22114,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 3858 "parsing/parser.mly" +# 3993 "parsing/parser.mly" ( Ldot(_1,_3) ) -# 22958 "parsing/parser.ml" +# 22120 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -22973,17 +22135,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 842 "parsing/parser.mly" +# 914 "parsing/parser.mly" (string) -# 22979 "parsing/parser.ml" +# 22141 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3857 "parsing/parser.mly" +# 3992 "parsing/parser.mly" ( Lident _1 ) -# 22987 "parsing/parser.ml" +# 22149 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23014,9 +22176,9 @@ module Tables = struct }; } = _menhir_stack in let _3 : ( -# 842 "parsing/parser.mly" +# 914 "parsing/parser.mly" (string) -# 23020 "parsing/parser.ml" +# 22182 "parsing/parser.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -23024,9 +22186,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 3858 "parsing/parser.mly" +# 3993 "parsing/parser.mly" ( Ldot(_1,_3) ) -# 23030 "parsing/parser.ml" +# 22192 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23049,14 +22211,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = let _1 = -# 3895 "parsing/parser.mly" +# 4037 "parsing/parser.mly" ( _1 ) -# 23055 "parsing/parser.ml" +# 22217 "parsing/parser.ml" in -# 3857 "parsing/parser.mly" +# 3992 "parsing/parser.mly" ( Lident _1 ) -# 23060 "parsing/parser.ml" +# 22222 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23094,20 +22256,20 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Longident.t) = let _1 = let _1 = -# 3837 "parsing/parser.mly" +# 3972 "parsing/parser.mly" ( "::" ) -# 23100 "parsing/parser.ml" +# 22262 "parsing/parser.ml" in -# 3895 "parsing/parser.mly" +# 4037 "parsing/parser.mly" ( _1 ) -# 23105 "parsing/parser.ml" +# 22267 "parsing/parser.ml" in -# 3857 "parsing/parser.mly" +# 3992 "parsing/parser.mly" ( Lident _1 ) -# 23111 "parsing/parser.ml" +# 22273 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23130,14 +22292,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = let _1 = -# 3895 "parsing/parser.mly" +# 4037 "parsing/parser.mly" ( _1 ) -# 23136 "parsing/parser.ml" +# 22298 "parsing/parser.ml" in -# 3857 "parsing/parser.mly" +# 3992 "parsing/parser.mly" ( Lident _1 ) -# 23141 "parsing/parser.ml" +# 22303 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23176,15 +22338,15 @@ module Tables = struct let _v : (Longident.t) = let _3 = let _1 = _1_inlined1 in -# 3895 "parsing/parser.mly" +# 4037 "parsing/parser.mly" ( _1 ) -# 23182 "parsing/parser.ml" +# 22344 "parsing/parser.ml" in -# 3858 "parsing/parser.mly" +# 3993 "parsing/parser.mly" ( Ldot(_1,_3) ) -# 23188 "parsing/parser.ml" +# 22350 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23236,20 +22398,20 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Longident.t) = let _3 = let _1 = -# 3837 "parsing/parser.mly" +# 3972 "parsing/parser.mly" ( "::" ) -# 23242 "parsing/parser.ml" +# 22404 "parsing/parser.ml" in -# 3895 "parsing/parser.mly" +# 4037 "parsing/parser.mly" ( _1 ) -# 23247 "parsing/parser.ml" +# 22409 "parsing/parser.ml" in -# 3858 "parsing/parser.mly" +# 3993 "parsing/parser.mly" ( Ldot(_1,_3) ) -# 23253 "parsing/parser.ml" +# 22415 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23288,15 +22450,15 @@ module Tables = struct let _v : (Longident.t) = let _3 = let _1 = _1_inlined1 in -# 3895 "parsing/parser.mly" +# 4037 "parsing/parser.mly" ( _1 ) -# 23294 "parsing/parser.ml" +# 22456 "parsing/parser.ml" in -# 3858 "parsing/parser.mly" +# 3993 "parsing/parser.mly" ( Ldot(_1,_3) ) -# 23300 "parsing/parser.ml" +# 22462 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23319,9 +22481,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3857 "parsing/parser.mly" +# 3992 "parsing/parser.mly" ( Lident _1 ) -# 23325 "parsing/parser.ml" +# 22487 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23358,9 +22520,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 3858 "parsing/parser.mly" +# 3993 "parsing/parser.mly" ( Ldot(_1,_3) ) -# 23364 "parsing/parser.ml" +# 22526 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23379,17 +22541,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 23385 "parsing/parser.ml" +# 22547 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3857 "parsing/parser.mly" +# 3992 "parsing/parser.mly" ( Lident _1 ) -# 23393 "parsing/parser.ml" +# 22555 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23420,9 +22582,9 @@ module Tables = struct }; } = _menhir_stack in let _3 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 23426 "parsing/parser.ml" +# 22588 "parsing/parser.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -23430,9 +22592,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 3858 "parsing/parser.mly" +# 3993 "parsing/parser.mly" ( Ldot(_1,_3) ) -# 23436 "parsing/parser.ml" +# 22598 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23451,17 +22613,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 842 "parsing/parser.mly" +# 914 "parsing/parser.mly" (string) -# 23457 "parsing/parser.ml" +# 22619 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3857 "parsing/parser.mly" +# 3992 "parsing/parser.mly" ( Lident _1 ) -# 23465 "parsing/parser.ml" +# 22627 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23492,9 +22654,9 @@ module Tables = struct }; } = _menhir_stack in let _3 : ( -# 842 "parsing/parser.mly" +# 914 "parsing/parser.mly" (string) -# 23498 "parsing/parser.ml" +# 22660 "parsing/parser.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -23502,9 +22664,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 3858 "parsing/parser.mly" +# 3993 "parsing/parser.mly" ( Ldot(_1,_3) ) -# 23508 "parsing/parser.ml" +# 22670 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23527,9 +22689,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3857 "parsing/parser.mly" +# 3992 "parsing/parser.mly" ( Lident _1 ) -# 23533 "parsing/parser.ml" +# 22695 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23566,9 +22728,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 3858 "parsing/parser.mly" +# 3993 "parsing/parser.mly" ( Ldot(_1,_3) ) -# 23572 "parsing/parser.ml" +# 22734 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23591,9 +22753,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3873 "parsing/parser.mly" +# 4015 "parsing/parser.mly" ( _1 ) -# 23597 "parsing/parser.ml" +# 22759 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23640,9 +22802,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3875 "parsing/parser.mly" +# 4017 "parsing/parser.mly" ( lapply ~loc:_sloc _1 _3 ) -# 23646 "parsing/parser.ml" +# 22808 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23680,9 +22842,9 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Longident.t) = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3877 "parsing/parser.mly" +# 4019 "parsing/parser.mly" ( expecting _loc__3_ "module path" ) -# 23686 "parsing/parser.ml" +# 22848 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23705,9 +22867,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3870 "parsing/parser.mly" +# 4012 "parsing/parser.mly" ( _1 ) -# 23711 "parsing/parser.ml" +# 22873 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23737,9 +22899,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_me_ in let _v : (Parsetree.module_expr) = -# 1550 "parsing/parser.mly" +# 1622 "parsing/parser.mly" ( me ) -# 23743 "parsing/parser.ml" +# 22905 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23784,24 +22946,24 @@ module Tables = struct let _endpos = _endpos_me_ in let _v : (Parsetree.module_expr) = let _1 = let _1 = -# 1553 "parsing/parser.mly" +# 1625 "parsing/parser.mly" ( Pmod_constraint(me, mty) ) -# 23790 "parsing/parser.ml" +# 22952 "parsing/parser.ml" in let _endpos__1_ = _endpos_me_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1018 "parsing/parser.mly" +# 1090 "parsing/parser.mly" ( mkmod ~loc:_sloc _1 ) -# 23799 "parsing/parser.ml" +# 22961 "parsing/parser.ml" in -# 1557 "parsing/parser.mly" +# 1629 "parsing/parser.mly" ( _1 ) -# 23805 "parsing/parser.ml" +# 22967 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23832,25 +22994,25 @@ module Tables = struct let _endpos = _endpos_body_ in let _v : (Parsetree.module_expr) = let _1 = let _1 = -# 1555 "parsing/parser.mly" +# 1627 "parsing/parser.mly" ( let (_, arg) = arg_and_pos in Pmod_functor(arg, body) ) -# 23839 "parsing/parser.ml" +# 23001 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1018 "parsing/parser.mly" +# 1090 "parsing/parser.mly" ( mkmod ~loc:_sloc _1 ) -# 23848 "parsing/parser.ml" +# 23010 "parsing/parser.ml" in -# 1557 "parsing/parser.mly" +# 1629 "parsing/parser.mly" ( _1 ) -# 23854 "parsing/parser.ml" +# 23016 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23880,9 +23042,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_mty_ in let _v : (Parsetree.module_type) = -# 1803 "parsing/parser.mly" +# 1875 "parsing/parser.mly" ( mty ) -# 23886 "parsing/parser.ml" +# 23048 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23913,25 +23075,25 @@ module Tables = struct let _endpos = _endpos_body_ in let _v : (Parsetree.module_type) = let _1 = let _1 = -# 1806 "parsing/parser.mly" +# 1878 "parsing/parser.mly" ( let (_, arg) = arg_and_pos in Pmty_functor(arg, body) ) -# 23920 "parsing/parser.ml" +# 23082 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_body_, _startpos_arg_and_pos_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1020 "parsing/parser.mly" +# 1092 "parsing/parser.mly" ( mkmty ~loc:_sloc _1 ) -# 23929 "parsing/parser.ml" +# 23091 "parsing/parser.ml" in -# 1809 "parsing/parser.mly" +# 1881 "parsing/parser.mly" ( _1 ) -# 23935 "parsing/parser.ml" +# 23097 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -23977,18 +23139,18 @@ module Tables = struct let _v : (Parsetree.module_expr) = let attrs = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 23983 "parsing/parser.ml" +# 23145 "parsing/parser.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1389 "parsing/parser.mly" +# 1461 "parsing/parser.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_structure s) ) -# 23992 "parsing/parser.ml" +# 23154 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24034,17 +23196,17 @@ module Tables = struct let _v : (Parsetree.module_expr) = let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 24040 "parsing/parser.ml" +# 23202 "parsing/parser.ml" in let _loc__4_ = (_startpos__4_, _endpos__4_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1391 "parsing/parser.mly" +# 1463 "parsing/parser.mly" ( unclosed "struct" _loc__1_ "end" _loc__4_ ) -# 24048 "parsing/parser.ml" +# 23210 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24097,30 +23259,30 @@ module Tables = struct let _v : (Parsetree.module_expr) = let args = let _1 = _1_inlined2 in -# 1355 "parsing/parser.mly" +# 1427 "parsing/parser.mly" ( _1 ) -# 24103 "parsing/parser.ml" +# 23265 "parsing/parser.ml" in let attrs = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 24111 "parsing/parser.ml" +# 23273 "parsing/parser.ml" in let _endpos = _endpos_me_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1393 "parsing/parser.mly" +# 1465 "parsing/parser.mly" ( wrap_mod_attrs ~loc:_sloc attrs ( List.fold_left (fun acc (startpos, arg) -> mkmod ~loc:(startpos, _endpos) (Pmod_functor (arg, acc)) ) me args ) ) -# 24124 "parsing/parser.ml" +# 23286 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24143,9 +23305,9 @@ module Tables = struct let _startpos = _startpos_me_ in let _endpos = _endpos_me_ in let _v : (Parsetree.module_expr) = -# 1399 "parsing/parser.mly" +# 1471 "parsing/parser.mly" ( me ) -# 24149 "parsing/parser.ml" +# 23311 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24175,9 +23337,9 @@ module Tables = struct let _startpos = _startpos_me_ in let _endpos = _endpos_attr_ in let _v : (Parsetree.module_expr) = -# 1401 "parsing/parser.mly" +# 1473 "parsing/parser.mly" ( Mod.attr me attr ) -# 24181 "parsing/parser.ml" +# 23343 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24206,30 +23368,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 24212 "parsing/parser.ml" +# 23374 "parsing/parser.ml" in -# 1405 "parsing/parser.mly" +# 1477 "parsing/parser.mly" ( Pmod_ident x ) -# 24218 "parsing/parser.ml" +# 23380 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1018 "parsing/parser.mly" +# 1090 "parsing/parser.mly" ( mkmod ~loc:_sloc _1 ) -# 24227 "parsing/parser.ml" +# 23389 "parsing/parser.ml" in -# 1417 "parsing/parser.mly" +# 1489 "parsing/parser.mly" ( _1 ) -# 24233 "parsing/parser.ml" +# 23395 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24260,24 +23422,24 @@ module Tables = struct let _endpos = _endpos_me2_ in let _v : (Parsetree.module_expr) = let _1 = let _1 = -# 1408 "parsing/parser.mly" +# 1480 "parsing/parser.mly" ( Pmod_apply(me1, me2) ) -# 24266 "parsing/parser.ml" +# 23428 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_me2_, _startpos_me1_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1018 "parsing/parser.mly" +# 1090 "parsing/parser.mly" ( mkmod ~loc:_sloc _1 ) -# 24275 "parsing/parser.ml" +# 23437 "parsing/parser.ml" in -# 1417 "parsing/parser.mly" +# 1489 "parsing/parser.mly" ( _1 ) -# 24281 "parsing/parser.ml" +# 23443 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24319,10 +23481,10 @@ module Tables = struct let _symbolstartpos = _startpos_me1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1411 "parsing/parser.mly" +# 1483 "parsing/parser.mly" ( (* TODO review mkmod location *) Pmod_apply(me1, mkmod ~loc:_sloc (Pmod_structure [])) ) -# 24326 "parsing/parser.ml" +# 23488 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_me1_) in @@ -24330,15 +23492,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1018 "parsing/parser.mly" +# 1090 "parsing/parser.mly" ( mkmod ~loc:_sloc _1 ) -# 24336 "parsing/parser.ml" +# 23498 "parsing/parser.ml" in -# 1417 "parsing/parser.mly" +# 1489 "parsing/parser.mly" ( _1 ) -# 24342 "parsing/parser.ml" +# 23504 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24362,24 +23524,24 @@ module Tables = struct let _endpos = _endpos_ex_ in let _v : (Parsetree.module_expr) = let _1 = let _1 = -# 1415 "parsing/parser.mly" +# 1487 "parsing/parser.mly" ( Pmod_extension ex ) -# 24368 "parsing/parser.ml" +# 23530 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ex_, _startpos_ex_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1018 "parsing/parser.mly" +# 1090 "parsing/parser.mly" ( mkmod ~loc:_sloc _1 ) -# 24377 "parsing/parser.ml" +# 23539 "parsing/parser.ml" in -# 1417 "parsing/parser.mly" +# 1489 "parsing/parser.mly" ( _1 ) -# 24383 "parsing/parser.ml" +# 23545 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24398,17 +23560,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 842 "parsing/parser.mly" +# 914 "parsing/parser.mly" (string) -# 24404 "parsing/parser.ml" +# 23566 "parsing/parser.ml" ) = Obj.magic x in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (string option) = -# 1372 "parsing/parser.mly" +# 1444 "parsing/parser.mly" ( Some x ) -# 24412 "parsing/parser.ml" +# 23574 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24431,9 +23593,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string option) = -# 1375 "parsing/parser.mly" +# 1447 "parsing/parser.mly" ( None ) -# 24437 "parsing/parser.ml" +# 23599 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24491,9 +23653,9 @@ module Tables = struct let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( -# 842 "parsing/parser.mly" +# 914 "parsing/parser.mly" (string) -# 24497 "parsing/parser.ml" +# 23659 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let ext : (string Asttypes.loc option) = Obj.magic ext in @@ -24504,9 +23666,9 @@ module Tables = struct let _v : (Parsetree.module_substitution * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined4 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 24510 "parsing/parser.ml" +# 23672 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -24516,9 +23678,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 24522 "parsing/parser.ml" +# 23684 "parsing/parser.ml" in let uid = @@ -24527,31 +23689,31 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 24533 "parsing/parser.ml" +# 23695 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 24541 "parsing/parser.ml" +# 23703 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1839 "parsing/parser.mly" +# 1911 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Ms.mk uid body ~attrs ~loc ~docs, ext ) -# 24555 "parsing/parser.ml" +# 23717 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24602,9 +23764,9 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( -# 842 "parsing/parser.mly" +# 914 "parsing/parser.mly" (string) -# 24608 "parsing/parser.ml" +# 23770 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _2 : (string Asttypes.loc option) = Obj.magic _2 in @@ -24618,24 +23780,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 24624 "parsing/parser.ml" +# 23786 "parsing/parser.ml" in let _3 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 24632 "parsing/parser.ml" +# 23794 "parsing/parser.ml" in let _loc__6_ = (_startpos__6_, _endpos__6_) in -# 1846 "parsing/parser.mly" +# 1918 "parsing/parser.mly" ( expecting _loc__6_ "module path" ) -# 24639 "parsing/parser.ml" +# 23801 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24681,18 +23843,18 @@ module Tables = struct let _v : (Parsetree.module_type) = let attrs = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 24687 "parsing/parser.ml" +# 23849 "parsing/parser.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1689 "parsing/parser.mly" +# 1761 "parsing/parser.mly" ( mkmty ~loc:_sloc ~attrs (Pmty_signature s) ) -# 24696 "parsing/parser.ml" +# 23858 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24738,17 +23900,17 @@ module Tables = struct let _v : (Parsetree.module_type) = let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 24744 "parsing/parser.ml" +# 23906 "parsing/parser.ml" in let _loc__4_ = (_startpos__4_, _endpos__4_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1691 "parsing/parser.mly" +# 1763 "parsing/parser.mly" ( unclosed "sig" _loc__1_ "end" _loc__4_ ) -# 24752 "parsing/parser.ml" +# 23914 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24801,30 +23963,30 @@ module Tables = struct let _v : (Parsetree.module_type) = let args = let _1 = _1_inlined2 in -# 1355 "parsing/parser.mly" +# 1427 "parsing/parser.mly" ( _1 ) -# 24807 "parsing/parser.ml" +# 23969 "parsing/parser.ml" in let attrs = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 24815 "parsing/parser.ml" +# 23977 "parsing/parser.ml" in let _endpos = _endpos_mty_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1695 "parsing/parser.mly" +# 1767 "parsing/parser.mly" ( wrap_mty_attrs ~loc:_sloc attrs ( List.fold_left (fun acc (startpos, arg) -> mkmty ~loc:(startpos, _endpos) (Pmty_functor (arg, acc)) ) mty args ) ) -# 24828 "parsing/parser.ml" +# 23990 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24877,18 +24039,18 @@ module Tables = struct let _v : (Parsetree.module_type) = let _4 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 24883 "parsing/parser.ml" +# 24045 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1701 "parsing/parser.mly" +# 1773 "parsing/parser.mly" ( mkmty ~loc:_sloc ~attrs:_4 (Pmty_typeof _5) ) -# 24892 "parsing/parser.ml" +# 24054 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24925,9 +24087,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.module_type) = -# 1703 "parsing/parser.mly" +# 1775 "parsing/parser.mly" ( _2 ) -# 24931 "parsing/parser.ml" +# 24093 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24966,9 +24128,9 @@ module Tables = struct let _v : (Parsetree.module_type) = let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1705 "parsing/parser.mly" +# 1777 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__3_ ) -# 24972 "parsing/parser.ml" +# 24134 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -24998,9 +24160,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.module_type) = -# 1707 "parsing/parser.mly" +# 1779 "parsing/parser.mly" ( Mty.attr _1 _2 ) -# 25004 "parsing/parser.ml" +# 24166 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25029,30 +24191,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 25035 "parsing/parser.ml" +# 24197 "parsing/parser.ml" in -# 1710 "parsing/parser.mly" +# 1782 "parsing/parser.mly" ( Pmty_ident _1 ) -# 25041 "parsing/parser.ml" +# 24203 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1020 "parsing/parser.mly" +# 1092 "parsing/parser.mly" ( mkmty ~loc:_sloc _1 ) -# 25050 "parsing/parser.ml" +# 24212 "parsing/parser.ml" in -# 1721 "parsing/parser.mly" +# 1793 "parsing/parser.mly" ( _1 ) -# 25056 "parsing/parser.ml" +# 24218 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25090,24 +24252,24 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.module_type) = let _1 = let _1 = -# 1713 "parsing/parser.mly" +# 1785 "parsing/parser.mly" ( Pmty_functor(Named (mknoloc None, _1), _3) ) -# 25096 "parsing/parser.ml" +# 24258 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1020 "parsing/parser.mly" +# 1092 "parsing/parser.mly" ( mkmty ~loc:_sloc _1 ) -# 25105 "parsing/parser.ml" +# 24267 "parsing/parser.ml" in -# 1721 "parsing/parser.mly" +# 1793 "parsing/parser.mly" ( _1 ) -# 25111 "parsing/parser.ml" +# 24273 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25149,18 +24311,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 25153 "parsing/parser.ml" +# 24315 "parsing/parser.ml" in -# 1109 "parsing/parser.mly" +# 1181 "parsing/parser.mly" ( xs ) -# 25158 "parsing/parser.ml" +# 24320 "parsing/parser.ml" in -# 1715 "parsing/parser.mly" +# 1787 "parsing/parser.mly" ( Pmty_with(_1, _3) ) -# 25164 "parsing/parser.ml" +# 24326 "parsing/parser.ml" in let _endpos__1_ = _endpos_xs_ in @@ -25168,15 +24330,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1020 "parsing/parser.mly" +# 1092 "parsing/parser.mly" ( mkmty ~loc:_sloc _1 ) -# 25174 "parsing/parser.ml" +# 24336 "parsing/parser.ml" in -# 1721 "parsing/parser.mly" +# 1793 "parsing/parser.mly" ( _1 ) -# 25180 "parsing/parser.ml" +# 24342 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25200,23 +24362,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.module_type) = let _1 = let _1 = -# 1719 "parsing/parser.mly" +# 1791 "parsing/parser.mly" ( Pmty_extension _1 ) -# 25206 "parsing/parser.ml" +# 24368 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1020 "parsing/parser.mly" +# 1092 "parsing/parser.mly" ( mkmty ~loc:_sloc _1 ) -# 25214 "parsing/parser.ml" +# 24376 "parsing/parser.ml" in -# 1721 "parsing/parser.mly" +# 1793 "parsing/parser.mly" ( _1 ) -# 25220 "parsing/parser.ml" +# 24382 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25283,9 +24445,9 @@ module Tables = struct let _v : (Parsetree.module_type_declaration * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 25289 "parsing/parser.ml" +# 24451 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -25295,31 +24457,31 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 25301 "parsing/parser.ml" +# 24463 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 25309 "parsing/parser.ml" +# 24471 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1635 "parsing/parser.mly" +# 1707 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Mtd.mk id ?typ ~attrs ~loc ~docs, ext ) -# 25323 "parsing/parser.ml" +# 24485 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25393,9 +24555,9 @@ module Tables = struct let _v : (Parsetree.module_type_declaration * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 25399 "parsing/parser.ml" +# 24561 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -25405,31 +24567,31 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 25411 "parsing/parser.ml" +# 24573 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 25419 "parsing/parser.ml" +# 24581 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1895 "parsing/parser.mly" +# 1967 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Mtd.mk id ~typ ~attrs ~loc ~docs, ext ) -# 25433 "parsing/parser.ml" +# 24595 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25452,9 +24614,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3880 "parsing/parser.mly" +# 4022 "parsing/parser.mly" ( _1 ) -# 25458 "parsing/parser.ml" +# 24620 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25470,9 +24632,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.mutable_flag) = -# 3961 "parsing/parser.mly" +# 4103 "parsing/parser.mly" ( Immutable ) -# 25476 "parsing/parser.ml" +# 24638 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25495,9 +24657,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag) = -# 3962 "parsing/parser.mly" +# 4104 "parsing/parser.mly" ( Mutable ) -# 25501 "parsing/parser.ml" +# 24663 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25513,9 +24675,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.mutable_flag * Asttypes.global_flag) = -# 3965 "parsing/parser.mly" +# 4107 "parsing/parser.mly" ( Immutable, Nothing ) -# 25519 "parsing/parser.ml" +# 24681 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25538,9 +24700,1368 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag * Asttypes.global_flag) = -# 3966 "parsing/parser.mly" +# 4108 "parsing/parser.mly" ( Mutable, Nothing ) -# 25544 "parsing/parser.ml" +# 24706 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Asttypes.mutable_flag * Asttypes.global_flag) = +# 4109 "parsing/parser.mly" + ( Immutable, Global ) +# 24731 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Asttypes.mutable_flag * Asttypes.global_flag) = +# 4110 "parsing/parser.mly" + ( Immutable, Nonlocal ) +# 24756 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = +# 4123 "parsing/parser.mly" + ( Immutable, Concrete ) +# 24774 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = +# 4125 "parsing/parser.mly" + ( Mutable, Concrete ) +# 24799 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = +# 4127 "parsing/parser.mly" + ( Immutable, Virtual ) +# 24824 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = +# 4130 "parsing/parser.mly" + ( Mutable, Virtual ) +# 24856 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = +# 4130 "parsing/parser.mly" + ( Mutable, Virtual ) +# 24888 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Asttypes.label) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Asttypes.label) = +# 4074 "parsing/parser.mly" + ( _2 ) +# 24920 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ( +# 861 "parsing/parser.mly" + (string) +# 24941 "parsing/parser.ml" + ) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) = let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 24953 "parsing/parser.ml" + + in + +# 2962 "parsing/parser.mly" + ( _1, None ) +# 24959 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = layout; + MenhirLib.EngineTypes.startp = _startpos_layout_; + MenhirLib.EngineTypes.endp = _endpos_layout_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : unit = Obj.magic _5 in + let layout : (Asttypes.layout_annotation Asttypes.loc) = Obj.magic layout in + let _3 : unit = Obj.magic _3 in + let _1_inlined1 : ( +# 861 "parsing/parser.mly" + (string) +# 25007 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : (string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) = let name = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 25021 "parsing/parser.ml" + + in + +# 2964 "parsing/parser.mly" + ( name, Some layout ) +# 25027 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : ((string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) list) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : ((string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) list) = +# 2959 "parsing/parser.mly" + ( _1 ) +# 25052 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.core_type) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.core_type) = +# 3750 "parsing/parser.mly" + ( _2 ) +# 25091 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : unit = Obj.magic _5 in + let _1_inlined3 : (Parsetree.module_type) = Obj.magic _1_inlined3 in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _1_inlined1 : (string Asttypes.loc option) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : (Parsetree.core_type) = let _4 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3821 "parsing/parser.mly" + ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in + let descr = Ptyp_package (lid, cstrs) in + mktyp ~loc:_sloc ~attrs descr ) +# 25158 "parsing/parser.ml" + + in + let _3 = + let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let _2 = + let _1 = _1_inlined1 in + +# 4257 "parsing/parser.mly" + ( _1 ) +# 25168 "parsing/parser.ml" + + in + +# 4270 "parsing/parser.mly" + ( _1, _2 ) +# 25174 "parsing/parser.ml" + + in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3752 "parsing/parser.mly" + ( wrap_typ_attrs ~loc:_sloc (reloc_typ ~loc:_sloc _4) _3 ) +# 25183 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : (Asttypes.label) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3755 "parsing/parser.mly" + ( Ptyp_var _2 ) +# 25216 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25225 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 25231 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3757 "parsing/parser.mly" + ( Ptyp_any ) +# 25257 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25265 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 25271 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let _1 : (Longident.t) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 25302 "parsing/parser.ml" + + in + +# 3759 "parsing/parser.mly" + ( Ptyp_constr(_1, []) ) +# 25308 "parsing/parser.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25317 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 25323 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _1 : (Longident.t) = Obj.magic _1 in + let ty : (Parsetree.core_type) = Obj.magic ty in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let tid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 25361 "parsing/parser.ml" + + in + let tys = +# 3816 "parsing/parser.mly" + ( [ty] ) +# 25367 "parsing/parser.ml" + in + +# 3762 "parsing/parser.mly" + ( Ptyp_constr(tid, tys) ) +# 25372 "parsing/parser.ml" + + in + let _startpos__1_ = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25382 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 25388 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in + let _3 : unit = Obj.magic _3 in + let xs : (Parsetree.core_type list) = Obj.magic xs in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined1_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let tid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 25441 "parsing/parser.ml" + + in + let tys = + let tys = + let xs = +# 253 "" + ( List.rev xs ) +# 25449 "parsing/parser.ml" + in + +# 1209 "parsing/parser.mly" + ( xs ) +# 25454 "parsing/parser.ml" + + in + +# 3818 "parsing/parser.mly" + ( tys ) +# 25460 "parsing/parser.ml" + + in + +# 3762 "parsing/parser.mly" + ( Ptyp_constr(tid, tys) ) +# 25466 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25476 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 25482 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.object_field list * Asttypes.closed_flag) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3764 "parsing/parser.mly" + ( let (f, c) = _2 in Ptyp_object (f, c) ) +# 25522 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25531 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 25537 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3766 "parsing/parser.mly" + ( Ptyp_object ([], Closed) ) +# 25570 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25579 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 25585 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let _1 : (Longident.t) = Obj.magic _1 in + let _2 : unit = Obj.magic _2 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__2_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 25623 "parsing/parser.ml" + + in + let tys = +# 3810 "parsing/parser.mly" + ( [] ) +# 25629 "parsing/parser.ml" + in + +# 3770 "parsing/parser.mly" + ( Ptyp_class(cid, tys) ) +# 25634 "parsing/parser.ml" + + in + let _startpos__1_ = _startpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25644 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 25650 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _1 : (Longident.t) = Obj.magic _1 in + let _2 : unit = Obj.magic _2 in + let ty : (Parsetree.core_type) = Obj.magic ty in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let cid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 25695 "parsing/parser.ml" + + in + let tys = + let _1 = +# 3816 "parsing/parser.mly" + ( [ty] ) +# 25702 "parsing/parser.ml" + in + +# 3812 "parsing/parser.mly" + ( _1 ) +# 25707 "parsing/parser.ml" + + in + +# 3770 "parsing/parser.mly" + ( Ptyp_class(cid, tys) ) +# 25713 "parsing/parser.ml" + + in + let _startpos__1_ = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25723 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 25729 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _1_inlined1 : (Longident.t) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _3 : unit = Obj.magic _3 in + let xs : (Parsetree.core_type list) = Obj.magic xs in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined1_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let cid = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 25789 "parsing/parser.ml" + + in + let tys = + let _1 = + let tys = + let xs = +# 253 "" + ( List.rev xs ) +# 25798 "parsing/parser.ml" + in + +# 1209 "parsing/parser.mly" + ( xs ) +# 25803 "parsing/parser.ml" + + in + +# 3818 "parsing/parser.mly" + ( tys ) +# 25809 "parsing/parser.ml" + + in + +# 3812 "parsing/parser.mly" + ( _1 ) +# 25815 "parsing/parser.ml" + + in + +# 3770 "parsing/parser.mly" + ( Ptyp_class(cid, tys) ) +# 25821 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25831 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 25837 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.row_field) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3773 "parsing/parser.mly" + ( Ptyp_variant([_2], Closed, None) ) +# 25877 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__3_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25886 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 25892 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _4 : unit = Obj.magic _4 in + let xs : (Parsetree.row_field list) = Obj.magic xs in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _3 = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 25942 "parsing/parser.ml" + in + +# 1181 "parsing/parser.mly" + ( xs ) +# 25947 "parsing/parser.ml" + + in + +# 3827 "parsing/parser.mly" + ( _1 ) +# 25953 "parsing/parser.ml" + + in + +# 3775 "parsing/parser.mly" + ( Ptyp_variant(_3, Closed, None) ) +# 25959 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 25969 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 25975 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : unit = Obj.magic _5 in + let xs : (Parsetree.row_field list) = Obj.magic xs in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.row_field) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _4 = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 26032 "parsing/parser.ml" + in + +# 1181 "parsing/parser.mly" + ( xs ) +# 26037 "parsing/parser.ml" + + in + +# 3827 "parsing/parser.mly" + ( _1 ) +# 26043 "parsing/parser.ml" + + in + +# 3777 "parsing/parser.mly" + ( Ptyp_variant(_2 :: _4, Closed, None) ) +# 26049 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 26059 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 26065 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25552,20 +26073,78 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; } = _menhir_stack in + let _4 : unit = Obj.magic _4 in + let xs : (Parsetree.row_field list) = Obj.magic xs in + let _2 : (unit option) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag * Asttypes.global_flag) = -# 3967 "parsing/parser.mly" - ( Immutable, Global ) -# 25569 "parsing/parser.ml" + let _endpos = _endpos__4_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _3 = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 26115 "parsing/parser.ml" + in + +# 1181 "parsing/parser.mly" + ( xs ) +# 26120 "parsing/parser.ml" + + in + +# 3827 "parsing/parser.mly" + ( _1 ) +# 26126 "parsing/parser.ml" + + in + +# 3779 "parsing/parser.mly" + ( Ptyp_variant(_3, Open, None) ) +# 26132 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 26142 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 26148 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25577,20 +26156,43 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; } = _menhir_stack in + let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag * Asttypes.global_flag) = -# 3968 "parsing/parser.mly" - ( Immutable, Nonlocal ) -# 25594 "parsing/parser.ml" + let _endpos = _endpos__2_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3781 "parsing/parser.mly" + ( Ptyp_variant([], Open, None) ) +# 26181 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__2_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 26190 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 26196 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25601,14 +26203,79 @@ module Tables = struct }); (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _4 : unit = Obj.magic _4 in + let xs : (Parsetree.row_field list) = Obj.magic xs in + let _2 : (unit option) = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in - let _endpos = _startpos in - let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 3981 "parsing/parser.mly" - ( Immutable, Concrete ) -# 25612 "parsing/parser.ml" + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _3 = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 26246 "parsing/parser.ml" + in + +# 1181 "parsing/parser.mly" + ( xs ) +# 26251 "parsing/parser.ml" + + in + +# 3827 "parsing/parser.mly" + ( _1 ) +# 26257 "parsing/parser.ml" + + in + +# 3783 "parsing/parser.mly" + ( Ptyp_variant(_3, Closed, Some []) ) +# 26263 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__4_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 26273 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 26279 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25620,20 +26287,112 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs_inlined1; + MenhirLib.EngineTypes.startp = _startpos_xs_inlined1_; + MenhirLib.EngineTypes.endp = _endpos_xs_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; } = _menhir_stack in + let _6 : unit = Obj.magic _6 in + let xs_inlined1 : (Asttypes.label list) = Obj.magic xs_inlined1 in + let _4 : unit = Obj.magic _4 in + let xs : (Parsetree.row_field list) = Obj.magic xs in + let _2 : (unit option) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 3983 "parsing/parser.mly" - ( Mutable, Concrete ) -# 25637 "parsing/parser.ml" + let _endpos = _endpos__6_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _5 = + let xs = xs_inlined1 in + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 26344 "parsing/parser.ml" + in + +# 1149 "parsing/parser.mly" + ( xs ) +# 26349 "parsing/parser.ml" + + in + +# 3855 "parsing/parser.mly" + ( _1 ) +# 26355 "parsing/parser.ml" + + in + let _3 = + let _1 = + let xs = +# 253 "" + ( List.rev xs ) +# 26363 "parsing/parser.ml" + in + +# 1181 "parsing/parser.mly" + ( xs ) +# 26368 "parsing/parser.ml" + + in + +# 3827 "parsing/parser.mly" + ( _1 ) +# 26374 "parsing/parser.ml" + + in + +# 3785 "parsing/parser.mly" + ( Ptyp_variant(_3, Closed, Some _5) ) +# 26380 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__6_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 26390 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 26396 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25651,46 +26410,29 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let _1 : unit = Obj.magic _1 in + let _1 : (Parsetree.extension) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in - let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 3985 "parsing/parser.mly" - ( Immutable, Virtual ) -# 25662 "parsing/parser.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; - MenhirLib.EngineTypes.next = _menhir_stack; - }); - (fun _menhir_env -> - let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in - let { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 3988 "parsing/parser.mly" - ( Mutable, Virtual ) -# 25694 "parsing/parser.ml" + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3787 "parsing/parser.mly" + ( Ptyp_extension _1 ) +# 26422 "parsing/parser.ml" + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 26430 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 26436 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25703,26 +26445,73 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = lay; + MenhirLib.EngineTypes.startp = _startpos_lay_; + MenhirLib.EngineTypes.endp = _endpos_lay_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = id; + MenhirLib.EngineTypes.startp = _startpos_id_; + MenhirLib.EngineTypes.endp = _endpos_id_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let _2 : unit = Obj.magic _2 in + let _5 : unit = Obj.magic _5 in + let lay : (Parsetree.core_type) = Obj.magic lay in + let _3 : unit = Obj.magic _3 in + let id : ( +# 861 "parsing/parser.mly" + (string) +# 26484 "parsing/parser.ml" + ) = Obj.magic id in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 3988 "parsing/parser.mly" - ( Mutable, Virtual ) -# 25726 "parsing/parser.ml" + let _endpos = _endpos__5_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = + let _loc_id_ = (_startpos_id_, _endpos_id_) in + +# 3789 "parsing/parser.mly" + ( let loc = _loc_id_ in + Ptyp_layout(mktyp ~loc + (Ptyp_constr(mkrhs (Lident id) loc, [])), + check_layout_from_type lay) ) +# 26499 "parsing/parser.ml" + + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 26509 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 26515 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25735,26 +26524,63 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = lay; + MenhirLib.EngineTypes.startp = _startpos_lay_; + MenhirLib.EngineTypes.endp = _endpos_lay_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; }; } = _menhir_stack in - let _2 : (Asttypes.label) = Obj.magic _2 in + let _5 : unit = Obj.magic _5 in + let lay : (Parsetree.core_type) = Obj.magic lay in + let _3 : unit = Obj.magic _3 in + let ty : (Parsetree.core_type) = Obj.magic ty in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Asttypes.label) = -# 3932 "parsing/parser.mly" - ( _2 ) -# 25758 "parsing/parser.ml" + let _endpos = _endpos__5_ in + let _v : (Parsetree.core_type) = let _1 = + let _1 = +# 3794 "parsing/parser.mly" + ( Ptyp_layout(ty, check_layout_from_type lay) ) +# 26569 "parsing/parser.ml" + in + let _endpos__1_ = _endpos__5_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1084 "parsing/parser.mly" + ( mktyp ~loc:_sloc _1 ) +# 26578 "parsing/parser.ml" + + in + +# 3796 "parsing/parser.mly" + ( _1 ) +# 26584 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25773,9 +26599,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 25779 "parsing/parser.ml" +# 26605 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -25785,15 +26611,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 25791 "parsing/parser.ml" +# 26617 "parsing/parser.ml" in # 221 "" ( [ x ] ) -# 25797 "parsing/parser.ml" +# 26623 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25819,9 +26645,9 @@ module Tables = struct } = _menhir_stack in let xs : (string Asttypes.loc list) = Obj.magic xs in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 25825 "parsing/parser.ml" +# 26651 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -25831,15 +26657,72 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 25837 "parsing/parser.ml" +# 26663 "parsing/parser.ml" in # 223 "" ( x :: xs ) -# 25843 "parsing/parser.ml" +# 26669 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let x : (string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) = Obj.magic x in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : ((string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) list) = +# 221 "" + ( [ x ] ) +# 26694 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let xs : ((string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) list) = Obj.magic xs in + let x : (string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) = Obj.magic x in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_x_ in + let _endpos = _endpos_xs_ in + let _v : ((string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) list) = +# 223 "" + ( x :: xs ) +# 26726 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25858,22 +26741,22 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 829 "parsing/parser.mly" +# 901 "parsing/parser.mly" (string * Location.t * string option) -# 25864 "parsing/parser.ml" +# 26747 "parsing/parser.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in let _endpos = _endpos_s_ in let _v : (string list) = let x = -# 3928 "parsing/parser.mly" +# 4070 "parsing/parser.mly" ( let body, _, _ = s in body ) -# 25872 "parsing/parser.ml" +# 26755 "parsing/parser.ml" in # 221 "" ( [ x ] ) -# 25877 "parsing/parser.ml" +# 26760 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25899,22 +26782,22 @@ module Tables = struct } = _menhir_stack in let xs : (string list) = Obj.magic xs in let s : ( -# 829 "parsing/parser.mly" +# 901 "parsing/parser.mly" (string * Location.t * string option) -# 25905 "parsing/parser.ml" +# 26788 "parsing/parser.ml" ) = Obj.magic s in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_s_ in let _endpos = _endpos_xs_ in let _v : (string list) = let x = -# 3928 "parsing/parser.mly" +# 4070 "parsing/parser.mly" ( let body, _, _ = s in body ) -# 25913 "parsing/parser.ml" +# 26796 "parsing/parser.ml" in # 223 "" ( x :: xs ) -# 25918 "parsing/parser.ml" +# 26801 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25937,14 +26820,14 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 3957 "parsing/parser.mly" +# 4099 "parsing/parser.mly" ( Public ) -# 25943 "parsing/parser.ml" +# 26826 "parsing/parser.ml" in -# 3180 "parsing/parser.mly" +# 3274 "parsing/parser.mly" ( (Ptype_abstract, priv, Some ty) ) -# 25948 "parsing/parser.ml" +# 26831 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -25974,14 +26857,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 3958 "parsing/parser.mly" +# 4100 "parsing/parser.mly" ( Private ) -# 25980 "parsing/parser.ml" +# 26863 "parsing/parser.ml" in -# 3180 "parsing/parser.mly" +# 3274 "parsing/parser.mly" ( (Ptype_abstract, priv, Some ty) ) -# 25985 "parsing/parser.ml" +# 26868 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26004,26 +26887,26 @@ module Tables = struct let _startpos = _startpos_cs_ in let _endpos = _endpos_cs_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 3957 "parsing/parser.mly" +# 4099 "parsing/parser.mly" ( Public ) -# 26010 "parsing/parser.ml" +# 26893 "parsing/parser.ml" in let oty = let _1 = # 124 "" ( None ) -# 26016 "parsing/parser.ml" +# 26899 "parsing/parser.ml" in -# 3196 "parsing/parser.mly" +# 3290 "parsing/parser.mly" ( _1 ) -# 26021 "parsing/parser.ml" +# 26904 "parsing/parser.ml" in -# 3184 "parsing/parser.mly" +# 3278 "parsing/parser.mly" ( (Ptype_variant cs, priv, oty) ) -# 26027 "parsing/parser.ml" +# 26910 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26053,26 +26936,26 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_cs_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 3958 "parsing/parser.mly" +# 4100 "parsing/parser.mly" ( Private ) -# 26059 "parsing/parser.ml" +# 26942 "parsing/parser.ml" in let oty = let _1 = # 124 "" ( None ) -# 26065 "parsing/parser.ml" +# 26948 "parsing/parser.ml" in -# 3196 "parsing/parser.mly" +# 3290 "parsing/parser.mly" ( _1 ) -# 26070 "parsing/parser.ml" +# 26953 "parsing/parser.ml" in -# 3184 "parsing/parser.mly" +# 3278 "parsing/parser.mly" ( (Ptype_variant cs, priv, oty) ) -# 26076 "parsing/parser.ml" +# 26959 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26109,33 +26992,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_cs_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 3957 "parsing/parser.mly" +# 4099 "parsing/parser.mly" ( Public ) -# 26115 "parsing/parser.ml" +# 26998 "parsing/parser.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 26122 "parsing/parser.ml" +# 27005 "parsing/parser.ml" in # 126 "" ( Some x ) -# 26127 "parsing/parser.ml" +# 27010 "parsing/parser.ml" in -# 3196 "parsing/parser.mly" +# 3290 "parsing/parser.mly" ( _1 ) -# 26133 "parsing/parser.ml" +# 27016 "parsing/parser.ml" in -# 3184 "parsing/parser.mly" +# 3278 "parsing/parser.mly" ( (Ptype_variant cs, priv, oty) ) -# 26139 "parsing/parser.ml" +# 27022 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26179,33 +27062,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_cs_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 3958 "parsing/parser.mly" +# 4100 "parsing/parser.mly" ( Private ) -# 26185 "parsing/parser.ml" +# 27068 "parsing/parser.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 26192 "parsing/parser.ml" +# 27075 "parsing/parser.ml" in # 126 "" ( Some x ) -# 26197 "parsing/parser.ml" +# 27080 "parsing/parser.ml" in -# 3196 "parsing/parser.mly" +# 3290 "parsing/parser.mly" ( _1 ) -# 26203 "parsing/parser.ml" +# 27086 "parsing/parser.ml" in -# 3184 "parsing/parser.mly" +# 3278 "parsing/parser.mly" ( (Ptype_variant cs, priv, oty) ) -# 26209 "parsing/parser.ml" +# 27092 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26228,26 +27111,26 @@ module Tables = struct let _startpos = _startpos__3_ in let _endpos = _endpos__3_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 3957 "parsing/parser.mly" +# 4099 "parsing/parser.mly" ( Public ) -# 26234 "parsing/parser.ml" +# 27117 "parsing/parser.ml" in let oty = let _1 = # 124 "" ( None ) -# 26240 "parsing/parser.ml" +# 27123 "parsing/parser.ml" in -# 3196 "parsing/parser.mly" +# 3290 "parsing/parser.mly" ( _1 ) -# 26245 "parsing/parser.ml" +# 27128 "parsing/parser.ml" in -# 3188 "parsing/parser.mly" +# 3282 "parsing/parser.mly" ( (Ptype_open, priv, oty) ) -# 26251 "parsing/parser.ml" +# 27134 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26277,26 +27160,26 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 3958 "parsing/parser.mly" +# 4100 "parsing/parser.mly" ( Private ) -# 26283 "parsing/parser.ml" +# 27166 "parsing/parser.ml" in let oty = let _1 = # 124 "" ( None ) -# 26289 "parsing/parser.ml" +# 27172 "parsing/parser.ml" in -# 3196 "parsing/parser.mly" +# 3290 "parsing/parser.mly" ( _1 ) -# 26294 "parsing/parser.ml" +# 27177 "parsing/parser.ml" in -# 3188 "parsing/parser.mly" +# 3282 "parsing/parser.mly" ( (Ptype_open, priv, oty) ) -# 26300 "parsing/parser.ml" +# 27183 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26333,33 +27216,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos__3_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 3957 "parsing/parser.mly" +# 4099 "parsing/parser.mly" ( Public ) -# 26339 "parsing/parser.ml" +# 27222 "parsing/parser.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 26346 "parsing/parser.ml" +# 27229 "parsing/parser.ml" in # 126 "" ( Some x ) -# 26351 "parsing/parser.ml" +# 27234 "parsing/parser.ml" in -# 3196 "parsing/parser.mly" +# 3290 "parsing/parser.mly" ( _1 ) -# 26357 "parsing/parser.ml" +# 27240 "parsing/parser.ml" in -# 3188 "parsing/parser.mly" +# 3282 "parsing/parser.mly" ( (Ptype_open, priv, oty) ) -# 26363 "parsing/parser.ml" +# 27246 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26403,33 +27286,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos__3_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 3958 "parsing/parser.mly" +# 4100 "parsing/parser.mly" ( Private ) -# 26409 "parsing/parser.ml" +# 27292 "parsing/parser.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 26416 "parsing/parser.ml" +# 27299 "parsing/parser.ml" in # 126 "" ( Some x ) -# 26421 "parsing/parser.ml" +# 27304 "parsing/parser.ml" in -# 3196 "parsing/parser.mly" +# 3290 "parsing/parser.mly" ( _1 ) -# 26427 "parsing/parser.ml" +# 27310 "parsing/parser.ml" in -# 3188 "parsing/parser.mly" +# 3282 "parsing/parser.mly" ( (Ptype_open, priv, oty) ) -# 26433 "parsing/parser.ml" +# 27316 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26466,26 +27349,26 @@ module Tables = struct let _startpos = _startpos__3_ in let _endpos = _endpos__5_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 3957 "parsing/parser.mly" +# 4099 "parsing/parser.mly" ( Public ) -# 26472 "parsing/parser.ml" +# 27355 "parsing/parser.ml" in let oty = let _1 = # 124 "" ( None ) -# 26478 "parsing/parser.ml" +# 27361 "parsing/parser.ml" in -# 3196 "parsing/parser.mly" +# 3290 "parsing/parser.mly" ( _1 ) -# 26483 "parsing/parser.ml" +# 27366 "parsing/parser.ml" in -# 3192 "parsing/parser.mly" +# 3286 "parsing/parser.mly" ( (Ptype_record ls, priv, oty) ) -# 26489 "parsing/parser.ml" +# 27372 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26529,26 +27412,26 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 3958 "parsing/parser.mly" +# 4100 "parsing/parser.mly" ( Private ) -# 26535 "parsing/parser.ml" +# 27418 "parsing/parser.ml" in let oty = let _1 = # 124 "" ( None ) -# 26541 "parsing/parser.ml" +# 27424 "parsing/parser.ml" in -# 3196 "parsing/parser.mly" +# 3290 "parsing/parser.mly" ( _1 ) -# 26546 "parsing/parser.ml" +# 27429 "parsing/parser.ml" in -# 3192 "parsing/parser.mly" +# 3286 "parsing/parser.mly" ( (Ptype_record ls, priv, oty) ) -# 26552 "parsing/parser.ml" +# 27435 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26599,33 +27482,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos__5_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 3957 "parsing/parser.mly" +# 4099 "parsing/parser.mly" ( Public ) -# 26605 "parsing/parser.ml" +# 27488 "parsing/parser.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 26612 "parsing/parser.ml" +# 27495 "parsing/parser.ml" in # 126 "" ( Some x ) -# 26617 "parsing/parser.ml" +# 27500 "parsing/parser.ml" in -# 3196 "parsing/parser.mly" +# 3290 "parsing/parser.mly" ( _1 ) -# 26623 "parsing/parser.ml" +# 27506 "parsing/parser.ml" in -# 3192 "parsing/parser.mly" +# 3286 "parsing/parser.mly" ( (Ptype_record ls, priv, oty) ) -# 26629 "parsing/parser.ml" +# 27512 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26683,33 +27566,33 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos__5_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = let priv = -# 3958 "parsing/parser.mly" +# 4100 "parsing/parser.mly" ( Private ) -# 26689 "parsing/parser.ml" +# 27572 "parsing/parser.ml" in let oty = let _1 = let x = # 191 "" ( x ) -# 26696 "parsing/parser.ml" +# 27579 "parsing/parser.ml" in # 126 "" ( Some x ) -# 26701 "parsing/parser.ml" +# 27584 "parsing/parser.ml" in -# 3196 "parsing/parser.mly" +# 3290 "parsing/parser.mly" ( _1 ) -# 26707 "parsing/parser.ml" +# 27590 "parsing/parser.ml" in -# 3192 "parsing/parser.mly" +# 3286 "parsing/parser.mly" ( (Ptype_record ls, priv, oty) ) -# 26713 "parsing/parser.ml" +# 27596 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26762,37 +27645,37 @@ module Tables = struct let _v : (Parsetree.open_declaration * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined2 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 26768 "parsing/parser.ml" +# 27651 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 26777 "parsing/parser.ml" +# 27660 "parsing/parser.ml" in let override = -# 4015 "parsing/parser.mly" +# 4157 "parsing/parser.mly" ( Fresh ) -# 26783 "parsing/parser.ml" +# 27666 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1654 "parsing/parser.mly" +# 1726 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Opn.mk me ~override ~attrs ~loc ~docs, ext ) -# 26796 "parsing/parser.ml" +# 27679 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26852,37 +27735,37 @@ module Tables = struct let _v : (Parsetree.open_declaration * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 26858 "parsing/parser.ml" +# 27741 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let attrs1 = let _1 = _1_inlined2 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 26867 "parsing/parser.ml" +# 27750 "parsing/parser.ml" in let override = -# 4016 "parsing/parser.mly" +# 4158 "parsing/parser.mly" ( Override ) -# 26873 "parsing/parser.ml" +# 27756 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1654 "parsing/parser.mly" +# 1726 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Opn.mk me ~override ~attrs ~loc ~docs, ext ) -# 26886 "parsing/parser.ml" +# 27769 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -26935,9 +27818,9 @@ module Tables = struct let _v : (Parsetree.open_description * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 26941 "parsing/parser.ml" +# 27824 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -26947,36 +27830,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 26953 "parsing/parser.ml" +# 27836 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 26961 "parsing/parser.ml" +# 27844 "parsing/parser.ml" in let override = -# 4015 "parsing/parser.mly" +# 4157 "parsing/parser.mly" ( Fresh ) -# 26967 "parsing/parser.ml" +# 27850 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1669 "parsing/parser.mly" +# 1741 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Opn.mk id ~override ~attrs ~loc ~docs, ext ) -# 26980 "parsing/parser.ml" +# 27863 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27036,9 +27919,9 @@ module Tables = struct let _v : (Parsetree.open_description * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined4 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 27042 "parsing/parser.ml" +# 27925 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -27048,36 +27931,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 27054 "parsing/parser.ml" +# 27937 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined2 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 27062 "parsing/parser.ml" +# 27945 "parsing/parser.ml" in let override = -# 4016 "parsing/parser.mly" +# 4158 "parsing/parser.mly" ( Override ) -# 27068 "parsing/parser.ml" +# 27951 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1669 "parsing/parser.mly" +# 1741 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Opn.mk id ~override ~attrs ~loc ~docs, ext ) -# 27081 "parsing/parser.ml" +# 27964 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27096,17 +27979,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 815 "parsing/parser.mly" +# 887 "parsing/parser.mly" (string) -# 27102 "parsing/parser.ml" +# 27985 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3796 "parsing/parser.mly" +# 3931 "parsing/parser.mly" ( _1 ) -# 27110 "parsing/parser.ml" +# 27993 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27125,17 +28008,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 771 "parsing/parser.mly" +# 843 "parsing/parser.mly" (string) -# 27131 "parsing/parser.ml" +# 28014 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3797 "parsing/parser.mly" +# 3932 "parsing/parser.mly" ( _1 ) -# 27139 "parsing/parser.ml" +# 28022 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27154,17 +28037,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 772 "parsing/parser.mly" +# 844 "parsing/parser.mly" (string) -# 27160 "parsing/parser.ml" +# 28043 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3798 "parsing/parser.mly" +# 3933 "parsing/parser.mly" ( _1 ) -# 27168 "parsing/parser.ml" +# 28051 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27204,17 +28087,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 27210 "parsing/parser.ml" +# 28093 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Asttypes.label) = -# 3799 "parsing/parser.mly" +# 3934 "parsing/parser.mly" ( "."^ _1 ^"(" ^ _3 ^ ")" ) -# 27218 "parsing/parser.ml" +# 28101 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27261,17 +28144,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 27267 "parsing/parser.ml" +# 28150 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Asttypes.label) = -# 3800 "parsing/parser.mly" +# 3935 "parsing/parser.mly" ( "."^ _1 ^ "(" ^ _3 ^ ")<-" ) -# 27275 "parsing/parser.ml" +# 28158 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27311,17 +28194,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 27317 "parsing/parser.ml" +# 28200 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Asttypes.label) = -# 3801 "parsing/parser.mly" +# 3936 "parsing/parser.mly" ( "."^ _1 ^"[" ^ _3 ^ "]" ) -# 27325 "parsing/parser.ml" +# 28208 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27368,17 +28251,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 27374 "parsing/parser.ml" +# 28257 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Asttypes.label) = -# 3802 "parsing/parser.mly" +# 3937 "parsing/parser.mly" ( "."^ _1 ^ "[" ^ _3 ^ "]<-" ) -# 27382 "parsing/parser.ml" +# 28265 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27418,17 +28301,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 27424 "parsing/parser.ml" +# 28307 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Asttypes.label) = -# 3803 "parsing/parser.mly" +# 3938 "parsing/parser.mly" ( "."^ _1 ^"{" ^ _3 ^ "}" ) -# 27432 "parsing/parser.ml" +# 28315 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27475,17 +28358,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 27481 "parsing/parser.ml" +# 28364 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Asttypes.label) = -# 3804 "parsing/parser.mly" +# 3939 "parsing/parser.mly" ( "."^ _1 ^ "{" ^ _3 ^ "}<-" ) -# 27489 "parsing/parser.ml" +# 28372 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27504,17 +28387,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 826 "parsing/parser.mly" +# 898 "parsing/parser.mly" (string) -# 27510 "parsing/parser.ml" +# 28393 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3805 "parsing/parser.mly" +# 3940 "parsing/parser.mly" ( _1 ) -# 27518 "parsing/parser.ml" +# 28401 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27537,9 +28420,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3806 "parsing/parser.mly" +# 3941 "parsing/parser.mly" ( "!" ) -# 27543 "parsing/parser.ml" +# 28426 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27558,22 +28441,22 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 765 "parsing/parser.mly" +# 837 "parsing/parser.mly" (string) -# 27564 "parsing/parser.ml" +# 28447 "parsing/parser.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in let _v : (Asttypes.label) = let _1 = -# 3810 "parsing/parser.mly" +# 3945 "parsing/parser.mly" ( op ) -# 27572 "parsing/parser.ml" +# 28455 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 27577 "parsing/parser.ml" +# 28460 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27592,22 +28475,22 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 766 "parsing/parser.mly" +# 838 "parsing/parser.mly" (string) -# 27598 "parsing/parser.ml" +# 28481 "parsing/parser.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in let _v : (Asttypes.label) = let _1 = -# 3811 "parsing/parser.mly" +# 3946 "parsing/parser.mly" ( op ) -# 27606 "parsing/parser.ml" +# 28489 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 27611 "parsing/parser.ml" +# 28494 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27626,22 +28509,22 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 767 "parsing/parser.mly" +# 839 "parsing/parser.mly" (string) -# 27632 "parsing/parser.ml" +# 28515 "parsing/parser.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in let _v : (Asttypes.label) = let _1 = -# 3812 "parsing/parser.mly" +# 3947 "parsing/parser.mly" ( op ) -# 27640 "parsing/parser.ml" +# 28523 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 27645 "parsing/parser.ml" +# 28528 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27660,22 +28543,22 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 768 "parsing/parser.mly" +# 840 "parsing/parser.mly" (string) -# 27666 "parsing/parser.ml" +# 28549 "parsing/parser.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in let _v : (Asttypes.label) = let _1 = -# 3813 "parsing/parser.mly" +# 3948 "parsing/parser.mly" ( op ) -# 27674 "parsing/parser.ml" +# 28557 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 27679 "parsing/parser.ml" +# 28562 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27694,22 +28577,22 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 769 "parsing/parser.mly" +# 841 "parsing/parser.mly" (string) -# 27700 "parsing/parser.ml" +# 28583 "parsing/parser.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in let _endpos = _endpos_op_ in let _v : (Asttypes.label) = let _1 = -# 3814 "parsing/parser.mly" +# 3949 "parsing/parser.mly" ( op ) -# 27708 "parsing/parser.ml" +# 28591 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 27713 "parsing/parser.ml" +# 28596 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27732,14 +28615,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3815 "parsing/parser.mly" +# 3950 "parsing/parser.mly" ("+") -# 27738 "parsing/parser.ml" +# 28621 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 27743 "parsing/parser.ml" +# 28626 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27762,14 +28645,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3816 "parsing/parser.mly" +# 3951 "parsing/parser.mly" ("+.") -# 27768 "parsing/parser.ml" +# 28651 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 27773 "parsing/parser.ml" +# 28656 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27792,14 +28675,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3817 "parsing/parser.mly" +# 3952 "parsing/parser.mly" ("+=") -# 27798 "parsing/parser.ml" +# 28681 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 27803 "parsing/parser.ml" +# 28686 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27822,14 +28705,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3818 "parsing/parser.mly" +# 3953 "parsing/parser.mly" ("-") -# 27828 "parsing/parser.ml" +# 28711 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 27833 "parsing/parser.ml" +# 28716 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27852,14 +28735,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3819 "parsing/parser.mly" +# 3954 "parsing/parser.mly" ("-.") -# 27858 "parsing/parser.ml" +# 28741 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 27863 "parsing/parser.ml" +# 28746 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27882,14 +28765,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3820 "parsing/parser.mly" +# 3955 "parsing/parser.mly" ("*") -# 27888 "parsing/parser.ml" +# 28771 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 27893 "parsing/parser.ml" +# 28776 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27912,14 +28795,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3821 "parsing/parser.mly" +# 3956 "parsing/parser.mly" ("%") -# 27918 "parsing/parser.ml" +# 28801 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 27923 "parsing/parser.ml" +# 28806 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27942,14 +28825,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3822 "parsing/parser.mly" +# 3957 "parsing/parser.mly" ("=") -# 27948 "parsing/parser.ml" +# 28831 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 27953 "parsing/parser.ml" +# 28836 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -27972,14 +28855,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3823 "parsing/parser.mly" +# 3958 "parsing/parser.mly" ("<") -# 27978 "parsing/parser.ml" +# 28861 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 27983 "parsing/parser.ml" +# 28866 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28002,14 +28885,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3824 "parsing/parser.mly" +# 3959 "parsing/parser.mly" (">") -# 28008 "parsing/parser.ml" +# 28891 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 28013 "parsing/parser.ml" +# 28896 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28032,14 +28915,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3825 "parsing/parser.mly" +# 3960 "parsing/parser.mly" ("or") -# 28038 "parsing/parser.ml" +# 28921 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 28043 "parsing/parser.ml" +# 28926 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28062,14 +28945,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3826 "parsing/parser.mly" +# 3961 "parsing/parser.mly" ("||") -# 28068 "parsing/parser.ml" +# 28951 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 28073 "parsing/parser.ml" +# 28956 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28092,14 +28975,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3827 "parsing/parser.mly" +# 3962 "parsing/parser.mly" ("&") -# 28098 "parsing/parser.ml" +# 28981 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 28103 "parsing/parser.ml" +# 28986 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28122,14 +29005,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3828 "parsing/parser.mly" +# 3963 "parsing/parser.mly" ("&&") -# 28128 "parsing/parser.ml" +# 29011 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 28133 "parsing/parser.ml" +# 29016 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28152,14 +29035,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = let _1 = -# 3829 "parsing/parser.mly" +# 3964 "parsing/parser.mly" (":=") -# 28158 "parsing/parser.ml" +# 29041 "parsing/parser.ml" in -# 3807 "parsing/parser.mly" +# 3942 "parsing/parser.mly" ( _1 ) -# 28163 "parsing/parser.ml" +# 29046 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28182,9 +29065,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (bool) = -# 3711 "parsing/parser.mly" +# 3846 "parsing/parser.mly" ( true ) -# 28188 "parsing/parser.ml" +# 29071 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28200,9 +29083,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (bool) = -# 3712 "parsing/parser.mly" +# 3847 "parsing/parser.mly" ( false ) -# 28206 "parsing/parser.ml" +# 29089 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28220,7 +29103,7 @@ module Tables = struct let _v : (unit option) = # 114 "" ( None ) -# 28224 "parsing/parser.ml" +# 29107 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28245,7 +29128,7 @@ module Tables = struct let _v : (unit option) = # 116 "" ( Some x ) -# 28249 "parsing/parser.ml" +# 29132 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28263,7 +29146,7 @@ module Tables = struct let _v : (unit option) = # 114 "" ( None ) -# 28267 "parsing/parser.ml" +# 29150 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28288,7 +29171,50 @@ module Tables = struct let _v : (unit option) = # 116 "" ( Some x ) -# 28292 "parsing/parser.ml" +# 29175 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let _menhir_s = _menhir_env.MenhirLib.EngineTypes.current in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in + let _endpos = _startpos in + let _v : (Parsetree.attribute option) = +# 114 "" + ( None ) +# 29193 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = x; + MenhirLib.EngineTypes.startp = _startpos_x_; + MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let x : (Parsetree.attribute) = Obj.magic x in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_x_ in + let _endpos = _endpos_x_ in + let _v : (Parsetree.attribute option) = +# 116 "" + ( Some x ) +# 29218 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28306,7 +29232,7 @@ module Tables = struct let _v : (string Asttypes.loc option) = # 114 "" ( None ) -# 28310 "parsing/parser.ml" +# 29236 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28331,9 +29257,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 28337 "parsing/parser.ml" +# 29263 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -28346,21 +29272,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 28352 "parsing/parser.ml" +# 29278 "parsing/parser.ml" in # 183 "" ( x ) -# 28358 "parsing/parser.ml" +# 29284 "parsing/parser.ml" in # 116 "" ( Some x ) -# 28364 "parsing/parser.ml" +# 29290 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28378,7 +29304,7 @@ module Tables = struct let _v : (Parsetree.core_type option) = # 114 "" ( None ) -# 28382 "parsing/parser.ml" +# 29308 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28410,12 +29336,12 @@ module Tables = struct let _v : (Parsetree.core_type option) = let x = # 183 "" ( x ) -# 28414 "parsing/parser.ml" +# 29340 "parsing/parser.ml" in # 116 "" ( Some x ) -# 28419 "parsing/parser.ml" +# 29345 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28433,7 +29359,7 @@ module Tables = struct let _v : (Parsetree.expression option) = # 114 "" ( None ) -# 28437 "parsing/parser.ml" +# 29363 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28465,12 +29391,12 @@ module Tables = struct let _v : (Parsetree.expression option) = let x = # 183 "" ( x ) -# 28469 "parsing/parser.ml" +# 29395 "parsing/parser.ml" in # 116 "" ( Some x ) -# 28474 "parsing/parser.ml" +# 29400 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28488,7 +29414,7 @@ module Tables = struct let _v : (Parsetree.module_type option) = # 114 "" ( None ) -# 28492 "parsing/parser.ml" +# 29418 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28520,12 +29446,12 @@ module Tables = struct let _v : (Parsetree.module_type option) = let x = # 183 "" ( x ) -# 28524 "parsing/parser.ml" +# 29450 "parsing/parser.ml" in # 116 "" ( Some x ) -# 28529 "parsing/parser.ml" +# 29455 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28543,7 +29469,7 @@ module Tables = struct let _v : (Parsetree.pattern option) = # 114 "" ( None ) -# 28547 "parsing/parser.ml" +# 29473 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28575,12 +29501,12 @@ module Tables = struct let _v : (Parsetree.pattern option) = let x = # 183 "" ( x ) -# 28579 "parsing/parser.ml" +# 29505 "parsing/parser.ml" in # 116 "" ( Some x ) -# 28584 "parsing/parser.ml" +# 29510 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28598,7 +29524,7 @@ module Tables = struct let _v : (Parsetree.expression option) = # 114 "" ( None ) -# 28602 "parsing/parser.ml" +# 29528 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28630,12 +29556,12 @@ module Tables = struct let _v : (Parsetree.expression option) = let x = # 183 "" ( x ) -# 28634 "parsing/parser.ml" +# 29560 "parsing/parser.ml" in # 116 "" ( Some x ) -# 28639 "parsing/parser.ml" +# 29565 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28653,7 +29579,7 @@ module Tables = struct let _v : ((Parsetree.core_type option * Parsetree.core_type option) option) = # 114 "" ( None ) -# 28657 "parsing/parser.ml" +# 29583 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28678,7 +29604,7 @@ module Tables = struct let _v : ((Parsetree.core_type option * Parsetree.core_type option) option) = # 116 "" ( Some x ) -# 28682 "parsing/parser.ml" +# 29608 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28697,17 +29623,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 808 "parsing/parser.mly" +# 880 "parsing/parser.mly" (string) -# 28703 "parsing/parser.ml" +# 29629 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4027 "parsing/parser.mly" +# 4169 "parsing/parser.mly" ( _1 ) -# 28711 "parsing/parser.ml" +# 29637 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28739,18 +29665,18 @@ module Tables = struct } = _menhir_stack in let _3 : unit = Obj.magic _3 in let _2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 28745 "parsing/parser.ml" +# 29671 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (string) = -# 4028 "parsing/parser.mly" +# 4170 "parsing/parser.mly" ( _2 ) -# 28754 "parsing/parser.ml" +# 29680 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28804,9 +29730,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1426 "parsing/parser.mly" +# 1498 "parsing/parser.mly" ( mkmod ~loc:_sloc (Pmod_constraint(me, mty)) ) -# 28810 "parsing/parser.ml" +# 29736 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28859,9 +29785,9 @@ module Tables = struct let _v : (Parsetree.module_expr) = let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1428 "parsing/parser.mly" +# 1500 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__5_ ) -# 28865 "parsing/parser.ml" +# 29791 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28898,9 +29824,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.module_expr) = -# 1431 "parsing/parser.mly" +# 1503 "parsing/parser.mly" ( me (* TODO consider reloc *) ) -# 28904 "parsing/parser.ml" +# 29830 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28939,9 +29865,9 @@ module Tables = struct let _v : (Parsetree.module_expr) = let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1433 "parsing/parser.mly" +# 1505 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__3_ ) -# 28945 "parsing/parser.ml" +# 29871 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -28992,25 +29918,25 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Parsetree.module_expr) = let e = -# 1450 "parsing/parser.mly" +# 1522 "parsing/parser.mly" ( e ) -# 28998 "parsing/parser.ml" +# 29924 "parsing/parser.ml" in let attrs = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 29005 "parsing/parser.ml" +# 29931 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1437 "parsing/parser.mly" +# 1509 "parsing/parser.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 29014 "parsing/parser.ml" +# 29940 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29081,11 +30007,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3686 "parsing/parser.mly" +# 3821 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 29089 "parsing/parser.ml" +# 30015 "parsing/parser.ml" in let _endpos_ty_ = _endpos__1_ in @@ -29093,26 +30019,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1452 "parsing/parser.mly" +# 1524 "parsing/parser.mly" ( ghexp ~loc:_loc (Pexp_constraint (e, ty)) ) -# 29099 "parsing/parser.ml" +# 30025 "parsing/parser.ml" in let attrs = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 29107 "parsing/parser.ml" +# 30033 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1437 "parsing/parser.mly" +# 1509 "parsing/parser.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 29116 "parsing/parser.ml" +# 30042 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29198,11 +30124,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3686 "parsing/parser.mly" +# 3821 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 29206 "parsing/parser.ml" +# 30132 "parsing/parser.ml" in let _endpos_ty2_ = _endpos__1_inlined1_ in @@ -29211,37 +30137,37 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3686 "parsing/parser.mly" +# 3821 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 29219 "parsing/parser.ml" +# 30145 "parsing/parser.ml" in let _endpos = _endpos_ty2_ in let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1454 "parsing/parser.mly" +# 1526 "parsing/parser.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) ) -# 29228 "parsing/parser.ml" +# 30154 "parsing/parser.ml" in let attrs = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 29236 "parsing/parser.ml" +# 30162 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1437 "parsing/parser.mly" +# 1509 "parsing/parser.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 29245 "parsing/parser.ml" +# 30171 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29312,11 +30238,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3686 "parsing/parser.mly" +# 3821 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 29320 "parsing/parser.ml" +# 30246 "parsing/parser.ml" in let _endpos_ty2_ = _endpos__1_ in @@ -29324,26 +30250,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1456 "parsing/parser.mly" +# 1528 "parsing/parser.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) ) -# 29330 "parsing/parser.ml" +# 30256 "parsing/parser.ml" in let attrs = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 29338 "parsing/parser.ml" +# 30264 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1437 "parsing/parser.mly" +# 1509 "parsing/parser.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 29347 "parsing/parser.ml" +# 30273 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29403,17 +30329,17 @@ module Tables = struct let _v : (Parsetree.module_expr) = let _3 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 29409 "parsing/parser.ml" +# 30335 "parsing/parser.ml" in let _loc__6_ = (_startpos__6_, _endpos__6_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1439 "parsing/parser.mly" +# 1511 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__6_ ) -# 29417 "parsing/parser.ml" +# 30343 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29473,17 +30399,17 @@ module Tables = struct let _v : (Parsetree.module_expr) = let _3 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 29479 "parsing/parser.ml" +# 30405 "parsing/parser.ml" in let _loc__6_ = (_startpos__6_, _endpos__6_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1441 "parsing/parser.mly" +# 1513 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__6_ ) -# 29487 "parsing/parser.ml" +# 30413 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29536,17 +30462,17 @@ module Tables = struct let _v : (Parsetree.module_expr) = let _3 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 29542 "parsing/parser.ml" +# 30468 "parsing/parser.ml" in let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1443 "parsing/parser.mly" +# 1515 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__5_ ) -# 29550 "parsing/parser.ml" +# 30476 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29569,9 +30495,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = -# 3224 "parsing/parser.mly" +# 3329 "parsing/parser.mly" ( _1 ) -# 29575 "parsing/parser.ml" +# 30501 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29584,40 +30510,33 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = layout_annot; + MenhirLib.EngineTypes.startp = _startpos_layout_annot_; + MenhirLib.EngineTypes.endp = _endpos_layout_annot_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _4 : (Parsetree.attribute) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in + let layout_annot : (Parsetree.attribute) = Obj.magic layout_annot in let _2 : (Parsetree.core_type) = Obj.magic _2 in let _1 : (Asttypes.variance * Asttypes.injectivity) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in + let _endpos = _endpos_layout_annot_ in let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = -# 3226 "parsing/parser.mly" - ( {_2 with ptyp_attributes = [_4]}, _1 ) -# 29621 "parsing/parser.ml" +# 3331 "parsing/parser.mly" + ( Typ.attr _2 layout_annot, _1 ) +# 30540 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29647,9 +30566,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1345 "parsing/parser.mly" +# 1417 "parsing/parser.mly" ( _1 ) -# 29653 "parsing/parser.ml" +# 30572 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29679,9 +30598,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1330 "parsing/parser.mly" +# 1402 "parsing/parser.mly" ( _1 ) -# 29685 "parsing/parser.ml" +# 30604 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29711,9 +30630,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type) = -# 1305 "parsing/parser.mly" +# 1377 "parsing/parser.mly" ( _1 ) -# 29717 "parsing/parser.ml" +# 30636 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29743,9 +30662,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 1310 "parsing/parser.mly" +# 1382 "parsing/parser.mly" ( _1 ) -# 29749 "parsing/parser.ml" +# 30668 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29775,9 +30694,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1335 "parsing/parser.mly" +# 1407 "parsing/parser.mly" ( _1 ) -# 29781 "parsing/parser.ml" +# 30700 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29807,9 +30726,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1340 "parsing/parser.mly" +# 1412 "parsing/parser.mly" ( _1 ) -# 29813 "parsing/parser.ml" +# 30732 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29839,9 +30758,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.module_expr) = -# 1300 "parsing/parser.mly" +# 1372 "parsing/parser.mly" ( _1 ) -# 29845 "parsing/parser.ml" +# 30764 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29871,9 +30790,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.module_type) = -# 1295 "parsing/parser.mly" +# 1367 "parsing/parser.mly" ( _1 ) -# 29877 "parsing/parser.ml" +# 30796 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29903,9 +30822,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1320 "parsing/parser.mly" +# 1392 "parsing/parser.mly" ( _1 ) -# 29909 "parsing/parser.ml" +# 30828 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29935,9 +30854,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = -# 1315 "parsing/parser.mly" +# 1387 "parsing/parser.mly" ( _1 ) -# 29941 "parsing/parser.ml" +# 30860 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -29967,9 +30886,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1325 "parsing/parser.mly" +# 1397 "parsing/parser.mly" ( _1 ) -# 29973 "parsing/parser.ml" +# 30892 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30011,15 +30930,15 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in -# 2909 "parsing/parser.mly" +# 3001 "parsing/parser.mly" ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple[_1;_3])) ) -# 30017 "parsing/parser.ml" +# 30936 "parsing/parser.ml" in -# 2897 "parsing/parser.mly" +# 2989 "parsing/parser.mly" ( _1 ) -# 30023 "parsing/parser.ml" +# 30942 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30049,14 +30968,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = let _1 = -# 2911 "parsing/parser.mly" +# 3003 "parsing/parser.mly" ( Pat.attr _1 _2 ) -# 30055 "parsing/parser.ml" +# 30974 "parsing/parser.ml" in -# 2897 "parsing/parser.mly" +# 2989 "parsing/parser.mly" ( _1 ) -# 30060 "parsing/parser.ml" +# 30979 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30079,14 +30998,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = -# 2913 "parsing/parser.mly" +# 3005 "parsing/parser.mly" ( _1 ) -# 30085 "parsing/parser.ml" +# 31004 "parsing/parser.ml" in -# 2897 "parsing/parser.mly" +# 2989 "parsing/parser.mly" ( _1 ) -# 30090 "parsing/parser.ml" +# 31009 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30131,15 +31050,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 30137 "parsing/parser.ml" +# 31056 "parsing/parser.ml" in -# 2916 "parsing/parser.mly" +# 3008 "parsing/parser.mly" ( Ppat_alias(_1, _3) ) -# 30143 "parsing/parser.ml" +# 31062 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -30147,21 +31066,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30153 "parsing/parser.ml" +# 31072 "parsing/parser.ml" in -# 2927 "parsing/parser.mly" +# 3019 "parsing/parser.mly" ( _1 ) -# 30159 "parsing/parser.ml" +# 31078 "parsing/parser.ml" in -# 2897 "parsing/parser.mly" +# 2989 "parsing/parser.mly" ( _1 ) -# 30165 "parsing/parser.ml" +# 31084 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30202,9 +31121,9 @@ module Tables = struct let _1 = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2918 "parsing/parser.mly" +# 3010 "parsing/parser.mly" ( expecting _loc__3_ "identifier" ) -# 30208 "parsing/parser.ml" +# 31127 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -30212,21 +31131,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30218 "parsing/parser.ml" +# 31137 "parsing/parser.ml" in -# 2927 "parsing/parser.mly" +# 3019 "parsing/parser.mly" ( _1 ) -# 30224 "parsing/parser.ml" +# 31143 "parsing/parser.ml" in -# 2897 "parsing/parser.mly" +# 2989 "parsing/parser.mly" ( _1 ) -# 30230 "parsing/parser.ml" +# 31149 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30251,29 +31170,29 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = -# 2920 "parsing/parser.mly" +# 3012 "parsing/parser.mly" ( Ppat_tuple(List.rev _1) ) -# 30257 "parsing/parser.ml" +# 31176 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30265 "parsing/parser.ml" +# 31184 "parsing/parser.ml" in -# 2927 "parsing/parser.mly" +# 3019 "parsing/parser.mly" ( _1 ) -# 30271 "parsing/parser.ml" +# 31190 "parsing/parser.ml" in -# 2897 "parsing/parser.mly" +# 2989 "parsing/parser.mly" ( _1 ) -# 30277 "parsing/parser.ml" +# 31196 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30314,9 +31233,9 @@ module Tables = struct let _1 = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2922 "parsing/parser.mly" +# 3014 "parsing/parser.mly" ( expecting _loc__3_ "pattern" ) -# 30320 "parsing/parser.ml" +# 31239 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -30324,21 +31243,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30330 "parsing/parser.ml" +# 31249 "parsing/parser.ml" in -# 2927 "parsing/parser.mly" +# 3019 "parsing/parser.mly" ( _1 ) -# 30336 "parsing/parser.ml" +# 31255 "parsing/parser.ml" in -# 2897 "parsing/parser.mly" +# 2989 "parsing/parser.mly" ( _1 ) -# 30342 "parsing/parser.ml" +# 31261 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30377,30 +31296,30 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = -# 2924 "parsing/parser.mly" +# 3016 "parsing/parser.mly" ( Ppat_or(_1, _3) ) -# 30383 "parsing/parser.ml" +# 31302 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30392 "parsing/parser.ml" +# 31311 "parsing/parser.ml" in -# 2927 "parsing/parser.mly" +# 3019 "parsing/parser.mly" ( _1 ) -# 30398 "parsing/parser.ml" +# 31317 "parsing/parser.ml" in -# 2897 "parsing/parser.mly" +# 2989 "parsing/parser.mly" ( _1 ) -# 30404 "parsing/parser.ml" +# 31323 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30441,9 +31360,9 @@ module Tables = struct let _1 = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2926 "parsing/parser.mly" +# 3018 "parsing/parser.mly" ( expecting _loc__3_ "pattern" ) -# 30447 "parsing/parser.ml" +# 31366 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -30451,21 +31370,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30457 "parsing/parser.ml" +# 31376 "parsing/parser.ml" in -# 2927 "parsing/parser.mly" +# 3019 "parsing/parser.mly" ( _1 ) -# 30463 "parsing/parser.ml" +# 31382 "parsing/parser.ml" in -# 2897 "parsing/parser.mly" +# 2989 "parsing/parser.mly" ( _1 ) -# 30469 "parsing/parser.ml" +# 31388 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30513,24 +31432,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 30519 "parsing/parser.ml" +# 31438 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 30525 "parsing/parser.ml" +# 31444 "parsing/parser.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2899 "parsing/parser.mly" +# 2991 "parsing/parser.mly" ( mkpat_attrs ~loc:_sloc (Ppat_exception _3) _2) -# 30534 "parsing/parser.ml" +# 31453 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30567,9 +31486,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.pattern list) = -# 3026 "parsing/parser.mly" +# 3118 "parsing/parser.mly" ( _3 :: _1 ) -# 30573 "parsing/parser.ml" +# 31492 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30606,9 +31525,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.pattern list) = -# 3027 "parsing/parser.mly" +# 3119 "parsing/parser.mly" ( [_3; _1] ) -# 30612 "parsing/parser.ml" +# 31531 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30646,9 +31565,9 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.pattern list) = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3028 "parsing/parser.mly" +# 3120 "parsing/parser.mly" ( expecting _loc__3_ "pattern" ) -# 30652 "parsing/parser.ml" +# 31571 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30685,9 +31604,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.pattern list) = -# 3026 "parsing/parser.mly" +# 3118 "parsing/parser.mly" ( _3 :: _1 ) -# 30691 "parsing/parser.ml" +# 31610 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30724,9 +31643,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.pattern list) = -# 3027 "parsing/parser.mly" +# 3119 "parsing/parser.mly" ( [_3; _1] ) -# 30730 "parsing/parser.ml" +# 31649 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30764,9 +31683,9 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.pattern list) = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3028 "parsing/parser.mly" +# 3120 "parsing/parser.mly" ( expecting _loc__3_ "pattern" ) -# 30770 "parsing/parser.ml" +# 31689 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30789,9 +31708,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 2932 "parsing/parser.mly" +# 3024 "parsing/parser.mly" ( _1 ) -# 30795 "parsing/parser.ml" +# 31714 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30827,15 +31746,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 30833 "parsing/parser.ml" +# 31752 "parsing/parser.ml" in -# 2935 "parsing/parser.mly" +# 3027 "parsing/parser.mly" ( Ppat_construct(_1, Some ([], _2)) ) -# 30839 "parsing/parser.ml" +# 31758 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -30843,15 +31762,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30849 "parsing/parser.ml" +# 31768 "parsing/parser.ml" in -# 2941 "parsing/parser.mly" +# 3033 "parsing/parser.mly" ( _1 ) -# 30855 "parsing/parser.ml" +# 31774 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30911,24 +31830,24 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let newtypes = -# 2651 "parsing/parser.mly" +# 2726 "parsing/parser.mly" ( xs ) -# 30917 "parsing/parser.ml" +# 31836 "parsing/parser.ml" in let constr = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 30926 "parsing/parser.ml" +# 31845 "parsing/parser.ml" in -# 2938 "parsing/parser.mly" +# 3030 "parsing/parser.mly" ( Ppat_construct(constr, Some (newtypes, pat)) ) -# 30932 "parsing/parser.ml" +# 31851 "parsing/parser.ml" in let _endpos__1_ = _endpos_pat_ in @@ -30936,15 +31855,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30942 "parsing/parser.ml" +# 31861 "parsing/parser.ml" in -# 2941 "parsing/parser.mly" +# 3033 "parsing/parser.mly" ( _1 ) -# 30948 "parsing/parser.ml" +# 31867 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -30975,24 +31894,24 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 2940 "parsing/parser.mly" +# 3032 "parsing/parser.mly" ( Ppat_variant(_1, Some _2) ) -# 30981 "parsing/parser.ml" +# 31900 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 30990 "parsing/parser.ml" +# 31909 "parsing/parser.ml" in -# 2941 "parsing/parser.mly" +# 3033 "parsing/parser.mly" ( _1 ) -# 30996 "parsing/parser.ml" +# 31915 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31040,24 +31959,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 31046 "parsing/parser.ml" +# 31965 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 31052 "parsing/parser.ml" +# 31971 "parsing/parser.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2943 "parsing/parser.mly" +# 3035 "parsing/parser.mly" ( mkpat_attrs ~loc:_sloc (Ppat_lazy _3) _2) -# 31061 "parsing/parser.ml" +# 31980 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31099,15 +32018,15 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in -# 2909 "parsing/parser.mly" +# 3001 "parsing/parser.mly" ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple[_1;_3])) ) -# 31105 "parsing/parser.ml" +# 32024 "parsing/parser.ml" in -# 2904 "parsing/parser.mly" +# 2996 "parsing/parser.mly" ( _1 ) -# 31111 "parsing/parser.ml" +# 32030 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31137,14 +32056,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = let _1 = -# 2911 "parsing/parser.mly" +# 3003 "parsing/parser.mly" ( Pat.attr _1 _2 ) -# 31143 "parsing/parser.ml" +# 32062 "parsing/parser.ml" in -# 2904 "parsing/parser.mly" +# 2996 "parsing/parser.mly" ( _1 ) -# 31148 "parsing/parser.ml" +# 32067 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31167,14 +32086,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = -# 2913 "parsing/parser.mly" +# 3005 "parsing/parser.mly" ( _1 ) -# 31173 "parsing/parser.ml" +# 32092 "parsing/parser.ml" in -# 2904 "parsing/parser.mly" +# 2996 "parsing/parser.mly" ( _1 ) -# 31178 "parsing/parser.ml" +# 32097 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31219,15 +32138,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 31225 "parsing/parser.ml" +# 32144 "parsing/parser.ml" in -# 2916 "parsing/parser.mly" +# 3008 "parsing/parser.mly" ( Ppat_alias(_1, _3) ) -# 31231 "parsing/parser.ml" +# 32150 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -31235,21 +32154,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31241 "parsing/parser.ml" +# 32160 "parsing/parser.ml" in -# 2927 "parsing/parser.mly" +# 3019 "parsing/parser.mly" ( _1 ) -# 31247 "parsing/parser.ml" +# 32166 "parsing/parser.ml" in -# 2904 "parsing/parser.mly" +# 2996 "parsing/parser.mly" ( _1 ) -# 31253 "parsing/parser.ml" +# 32172 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31290,9 +32209,9 @@ module Tables = struct let _1 = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2918 "parsing/parser.mly" +# 3010 "parsing/parser.mly" ( expecting _loc__3_ "identifier" ) -# 31296 "parsing/parser.ml" +# 32215 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -31300,21 +32219,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31306 "parsing/parser.ml" +# 32225 "parsing/parser.ml" in -# 2927 "parsing/parser.mly" +# 3019 "parsing/parser.mly" ( _1 ) -# 31312 "parsing/parser.ml" +# 32231 "parsing/parser.ml" in -# 2904 "parsing/parser.mly" +# 2996 "parsing/parser.mly" ( _1 ) -# 31318 "parsing/parser.ml" +# 32237 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31339,29 +32258,29 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = -# 2920 "parsing/parser.mly" +# 3012 "parsing/parser.mly" ( Ppat_tuple(List.rev _1) ) -# 31345 "parsing/parser.ml" +# 32264 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31353 "parsing/parser.ml" +# 32272 "parsing/parser.ml" in -# 2927 "parsing/parser.mly" +# 3019 "parsing/parser.mly" ( _1 ) -# 31359 "parsing/parser.ml" +# 32278 "parsing/parser.ml" in -# 2904 "parsing/parser.mly" +# 2996 "parsing/parser.mly" ( _1 ) -# 31365 "parsing/parser.ml" +# 32284 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31402,9 +32321,9 @@ module Tables = struct let _1 = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2922 "parsing/parser.mly" +# 3014 "parsing/parser.mly" ( expecting _loc__3_ "pattern" ) -# 31408 "parsing/parser.ml" +# 32327 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -31412,21 +32331,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31418 "parsing/parser.ml" +# 32337 "parsing/parser.ml" in -# 2927 "parsing/parser.mly" +# 3019 "parsing/parser.mly" ( _1 ) -# 31424 "parsing/parser.ml" +# 32343 "parsing/parser.ml" in -# 2904 "parsing/parser.mly" +# 2996 "parsing/parser.mly" ( _1 ) -# 31430 "parsing/parser.ml" +# 32349 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31465,30 +32384,30 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _1 = -# 2924 "parsing/parser.mly" +# 3016 "parsing/parser.mly" ( Ppat_or(_1, _3) ) -# 31471 "parsing/parser.ml" +# 32390 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31480 "parsing/parser.ml" +# 32399 "parsing/parser.ml" in -# 2927 "parsing/parser.mly" +# 3019 "parsing/parser.mly" ( _1 ) -# 31486 "parsing/parser.ml" +# 32405 "parsing/parser.ml" in -# 2904 "parsing/parser.mly" +# 2996 "parsing/parser.mly" ( _1 ) -# 31492 "parsing/parser.ml" +# 32411 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31529,9 +32448,9 @@ module Tables = struct let _1 = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2926 "parsing/parser.mly" +# 3018 "parsing/parser.mly" ( expecting _loc__3_ "pattern" ) -# 31535 "parsing/parser.ml" +# 32454 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -31539,21 +32458,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31545 "parsing/parser.ml" +# 32464 "parsing/parser.ml" in -# 2927 "parsing/parser.mly" +# 3019 "parsing/parser.mly" ( _1 ) -# 31551 "parsing/parser.ml" +# 32470 "parsing/parser.ml" in -# 2904 "parsing/parser.mly" +# 2996 "parsing/parser.mly" ( _1 ) -# 31557 "parsing/parser.ml" +# 32476 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31572,9 +32491,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 31578 "parsing/parser.ml" +# 32497 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -31586,30 +32505,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 31592 "parsing/parser.ml" +# 32511 "parsing/parser.ml" in -# 2320 "parsing/parser.mly" +# 2392 "parsing/parser.mly" ( Ppat_var _1 ) -# 31598 "parsing/parser.ml" +# 32517 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31607 "parsing/parser.ml" +# 32526 "parsing/parser.ml" in -# 2322 "parsing/parser.mly" +# 2394 "parsing/parser.mly" ( _1 ) -# 31613 "parsing/parser.ml" +# 32532 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31633,23 +32552,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 2321 "parsing/parser.mly" +# 2393 "parsing/parser.mly" ( Ppat_any ) -# 31639 "parsing/parser.ml" +# 32558 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 31647 "parsing/parser.ml" +# 32566 "parsing/parser.ml" in -# 2322 "parsing/parser.mly" +# 2394 "parsing/parser.mly" ( _1 ) -# 31653 "parsing/parser.ml" +# 32572 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31672,9 +32591,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.payload) = -# 4141 "parsing/parser.mly" +# 4283 "parsing/parser.mly" ( PStr _1 ) -# 31678 "parsing/parser.ml" +# 32597 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31704,9 +32623,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 4142 "parsing/parser.mly" +# 4284 "parsing/parser.mly" ( PSig _2 ) -# 31710 "parsing/parser.ml" +# 32629 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31736,9 +32655,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 4143 "parsing/parser.mly" +# 4285 "parsing/parser.mly" ( PTyp _2 ) -# 31742 "parsing/parser.ml" +# 32661 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31768,9 +32687,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 4144 "parsing/parser.mly" +# 4286 "parsing/parser.mly" ( PPat (_2, None) ) -# 31774 "parsing/parser.ml" +# 32693 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31814,9 +32733,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.payload) = -# 4145 "parsing/parser.mly" +# 4287 "parsing/parser.mly" ( PPat (_2, Some _4) ) -# 31820 "parsing/parser.ml" +# 32739 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31839,9 +32758,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 3490 "parsing/parser.mly" +# 3600 "parsing/parser.mly" ( _1 ) -# 31845 "parsing/parser.ml" +# 32764 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31873,7 +32792,9 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.core_type) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__3_ in @@ -31884,24 +32805,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 31888 "parsing/parser.ml" +# 32809 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 31893 "parsing/parser.ml" +# 32814 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 31899 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 32820 "parsing/parser.ml" in -# 3486 "parsing/parser.mly" - ( Ptyp_poly(_1, _3) ) -# 31905 "parsing/parser.ml" +# 3596 "parsing/parser.mly" + ( let vars, layouts = _1 in Ptyp_poly(vars, _3, layouts) ) +# 32826 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in @@ -31909,15 +32830,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 31915 "parsing/parser.ml" +# 32836 "parsing/parser.ml" in -# 3492 "parsing/parser.mly" +# 3602 "parsing/parser.mly" ( _1 ) -# 31921 "parsing/parser.ml" +# 32842 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31940,14 +32861,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = let _1 = -# 3521 "parsing/parser.mly" +# 3631 "parsing/parser.mly" ( _1 ) -# 31946 "parsing/parser.ml" +# 32867 "parsing/parser.ml" in -# 3490 "parsing/parser.mly" +# 3600 "parsing/parser.mly" ( _1 ) -# 31951 "parsing/parser.ml" +# 32872 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -31979,40 +32900,42 @@ module Tables = struct } = _menhir_stack in let _1 : (Parsetree.core_type) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = let _1 = let _1 = let _3 = -# 3521 "parsing/parser.mly" +# 3631 "parsing/parser.mly" ( _1 ) -# 31992 "parsing/parser.ml" +# 32915 "parsing/parser.ml" in let _1 = let _1 = let xs = # 253 "" ( List.rev xs ) -# 31999 "parsing/parser.ml" +# 32922 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 32004 "parsing/parser.ml" +# 32927 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 32010 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 32933 "parsing/parser.ml" in -# 3486 "parsing/parser.mly" - ( Ptyp_poly(_1, _3) ) -# 32016 "parsing/parser.ml" +# 3596 "parsing/parser.mly" + ( let vars, layouts = _1 in Ptyp_poly(vars, _3, layouts) ) +# 32939 "parsing/parser.ml" in let _startpos__1_ = _startpos_xs_ in @@ -32020,15 +32943,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 32026 "parsing/parser.ml" +# 32949 "parsing/parser.ml" in -# 3492 "parsing/parser.mly" +# 3602 "parsing/parser.mly" ( _1 ) -# 32032 "parsing/parser.ml" +# 32955 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32075,9 +32998,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4102 "parsing/parser.mly" +# 4244 "parsing/parser.mly" ( Builtin_attributes.mk_internal ~loc:(make_loc _sloc) _2 _3 ) -# 32081 "parsing/parser.ml" +# 33004 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32158,9 +33081,9 @@ module Tables = struct let _v : (Parsetree.value_description * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 32164 "parsing/parser.ml" +# 33087 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -32170,30 +33093,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 32176 "parsing/parser.ml" +# 33099 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 32184 "parsing/parser.ml" +# 33107 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3090 "parsing/parser.mly" +# 3182 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Val.mk id ty ~prim ~attrs ~loc ~docs, ext ) -# 32197 "parsing/parser.ml" +# 33120 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32209,14 +33132,14 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.private_flag) = let _1 = -# 3957 "parsing/parser.mly" +# 4099 "parsing/parser.mly" ( Public ) -# 32215 "parsing/parser.ml" +# 33138 "parsing/parser.ml" in -# 3954 "parsing/parser.mly" +# 4096 "parsing/parser.mly" ( _1 ) -# 32220 "parsing/parser.ml" +# 33143 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32239,14 +33162,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag) = let _1 = -# 3958 "parsing/parser.mly" +# 4100 "parsing/parser.mly" ( Private ) -# 32245 "parsing/parser.ml" +# 33168 "parsing/parser.ml" in -# 3954 "parsing/parser.mly" +# 4096 "parsing/parser.mly" ( _1 ) -# 32250 "parsing/parser.ml" +# 33173 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32262,9 +33185,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 3991 "parsing/parser.mly" +# 4133 "parsing/parser.mly" ( Public, Concrete ) -# 32268 "parsing/parser.ml" +# 33191 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32287,9 +33210,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 3992 "parsing/parser.mly" +# 4134 "parsing/parser.mly" ( Private, Concrete ) -# 32293 "parsing/parser.ml" +# 33216 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32312,9 +33235,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 3993 "parsing/parser.mly" +# 4135 "parsing/parser.mly" ( Public, Virtual ) -# 32318 "parsing/parser.ml" +# 33241 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32344,9 +33267,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 3994 "parsing/parser.mly" +# 4136 "parsing/parser.mly" ( Private, Virtual ) -# 32350 "parsing/parser.ml" +# 33273 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32376,9 +33299,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 3995 "parsing/parser.mly" +# 4137 "parsing/parser.mly" ( Private, Virtual ) -# 32382 "parsing/parser.ml" +# 33305 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32394,9 +33317,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.rec_flag) = -# 3935 "parsing/parser.mly" +# 4077 "parsing/parser.mly" ( Nonrecursive ) -# 32400 "parsing/parser.ml" +# 33323 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32419,9 +33342,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.rec_flag) = -# 3936 "parsing/parser.mly" +# 4078 "parsing/parser.mly" ( Recursive ) -# 32425 "parsing/parser.ml" +# 33348 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32447,12 +33370,12 @@ module Tables = struct (Longident.t Asttypes.loc * Parsetree.expression) list) = let eo = # 124 "" ( None ) -# 32451 "parsing/parser.ml" +# 33374 "parsing/parser.ml" in -# 2829 "parsing/parser.mly" +# 2910 "parsing/parser.mly" ( eo, fields ) -# 32456 "parsing/parser.ml" +# 33379 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32493,18 +33416,18 @@ module Tables = struct let x = # 191 "" ( x ) -# 32497 "parsing/parser.ml" +# 33420 "parsing/parser.ml" in # 126 "" ( Some x ) -# 32502 "parsing/parser.ml" +# 33425 "parsing/parser.ml" in -# 2829 "parsing/parser.mly" +# 2910 "parsing/parser.mly" ( eo, fields ) -# 32508 "parsing/parser.ml" +# 33431 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32522,24 +33445,24 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : (Parsetree.constructor_declaration list) = let x = -# 3290 "parsing/parser.mly" +# 3395 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32538 "parsing/parser.ml" +# 33461 "parsing/parser.ml" in -# 1187 "parsing/parser.mly" +# 1259 "parsing/parser.mly" ( [x] ) -# 32543 "parsing/parser.ml" +# 33466 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32557,24 +33480,24 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : (Parsetree.constructor_declaration list) = let x = -# 3290 "parsing/parser.mly" +# 3395 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32573 "parsing/parser.ml" +# 33496 "parsing/parser.ml" in -# 1190 "parsing/parser.mly" +# 1262 "parsing/parser.mly" ( [x] ) -# 32578 "parsing/parser.ml" +# 33501 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32598,7 +33521,7 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let xs : (Parsetree.constructor_declaration list) = Obj.magic xs in @@ -32606,17 +33529,17 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_d_ in let _v : (Parsetree.constructor_declaration list) = let x = -# 3290 "parsing/parser.mly" +# 3395 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32615 "parsing/parser.ml" +# 33538 "parsing/parser.ml" in -# 1194 "parsing/parser.mly" +# 1266 "parsing/parser.mly" ( x :: xs ) -# 32620 "parsing/parser.ml" +# 33543 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32634,7 +33557,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -32642,23 +33565,23 @@ module Tables = struct let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = let _1 = -# 3420 "parsing/parser.mly" +# 3525 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Te.decl cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32651 "parsing/parser.ml" +# 33574 "parsing/parser.ml" in -# 3414 "parsing/parser.mly" +# 3519 "parsing/parser.mly" ( _1 ) -# 32656 "parsing/parser.ml" +# 33579 "parsing/parser.ml" in -# 1187 "parsing/parser.mly" +# 1259 "parsing/parser.mly" ( [x] ) -# 32662 "parsing/parser.ml" +# 33585 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32681,14 +33604,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.extension_constructor list) = let x = -# 3416 "parsing/parser.mly" +# 3521 "parsing/parser.mly" ( _1 ) -# 32687 "parsing/parser.ml" +# 33610 "parsing/parser.ml" in -# 1187 "parsing/parser.mly" +# 1259 "parsing/parser.mly" ( [x] ) -# 32692 "parsing/parser.ml" +# 33615 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32706,7 +33629,7 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -32714,23 +33637,23 @@ module Tables = struct let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = let _1 = -# 3420 "parsing/parser.mly" +# 3525 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Te.decl cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32723 "parsing/parser.ml" +# 33646 "parsing/parser.ml" in -# 3414 "parsing/parser.mly" +# 3519 "parsing/parser.mly" ( _1 ) -# 32728 "parsing/parser.ml" +# 33651 "parsing/parser.ml" in -# 1190 "parsing/parser.mly" +# 1262 "parsing/parser.mly" ( [x] ) -# 32734 "parsing/parser.ml" +# 33657 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32753,14 +33676,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.extension_constructor list) = let x = -# 3416 "parsing/parser.mly" +# 3521 "parsing/parser.mly" ( _1 ) -# 32759 "parsing/parser.ml" +# 33682 "parsing/parser.ml" in -# 1190 "parsing/parser.mly" +# 1262 "parsing/parser.mly" ( [x] ) -# 32764 "parsing/parser.ml" +# 33687 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32784,7 +33707,7 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let xs : (Parsetree.extension_constructor list) = Obj.magic xs in @@ -32793,23 +33716,23 @@ module Tables = struct let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = let _1 = -# 3420 "parsing/parser.mly" +# 3525 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Te.decl cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32802 "parsing/parser.ml" +# 33725 "parsing/parser.ml" in -# 3414 "parsing/parser.mly" +# 3519 "parsing/parser.mly" ( _1 ) -# 32807 "parsing/parser.ml" +# 33730 "parsing/parser.ml" in -# 1194 "parsing/parser.mly" +# 1266 "parsing/parser.mly" ( x :: xs ) -# 32813 "parsing/parser.ml" +# 33736 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32839,14 +33762,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos__1_ in let _v : (Parsetree.extension_constructor list) = let x = -# 3416 "parsing/parser.mly" +# 3521 "parsing/parser.mly" ( _1 ) -# 32845 "parsing/parser.ml" +# 33768 "parsing/parser.ml" in -# 1194 "parsing/parser.mly" +# 1266 "parsing/parser.mly" ( x :: xs ) -# 32850 "parsing/parser.ml" +# 33773 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32864,24 +33787,24 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = -# 3420 "parsing/parser.mly" +# 3525 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Te.decl cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32880 "parsing/parser.ml" +# 33803 "parsing/parser.ml" in -# 1187 "parsing/parser.mly" +# 1259 "parsing/parser.mly" ( [x] ) -# 32885 "parsing/parser.ml" +# 33808 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32899,24 +33822,24 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_d_; MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_d_ in let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = -# 3420 "parsing/parser.mly" +# 3525 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Te.decl cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32915 "parsing/parser.ml" +# 33838 "parsing/parser.ml" in -# 1190 "parsing/parser.mly" +# 1262 "parsing/parser.mly" ( [x] ) -# 32920 "parsing/parser.ml" +# 33843 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32940,7 +33863,7 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let d : (Ast_helper.str * string Asttypes.loc list * + let d : (Ast_helper.str * (string Asttypes.loc list * Parsetree.type_vars_layouts) * Parsetree.constructor_arguments * Parsetree.core_type option * Parsetree.attributes * Location.t * Docstrings.info) = Obj.magic d in let xs : (Parsetree.extension_constructor list) = Obj.magic xs in @@ -32948,17 +33871,17 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_d_ in let _v : (Parsetree.extension_constructor list) = let x = -# 3420 "parsing/parser.mly" +# 3525 "parsing/parser.mly" ( let cid, vars, args, res, attrs, loc, info = d in Te.decl cid ~vars ~args ?res ~attrs ~loc ~info ) -# 32957 "parsing/parser.ml" +# 33880 "parsing/parser.ml" in -# 1194 "parsing/parser.mly" +# 1266 "parsing/parser.mly" ( x :: xs ) -# 32962 "parsing/parser.ml" +# 33885 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -32974,9 +33897,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ((Parsetree.core_type * Parsetree.core_type * Ast_helper.loc) list) = -# 1053 "parsing/parser.mly" +# 1125 "parsing/parser.mly" ( [] ) -# 32980 "parsing/parser.ml" +# 33903 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33033,21 +33956,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2189 "parsing/parser.mly" +# 2261 "parsing/parser.mly" ( _1, _3, make_loc _sloc ) -# 33039 "parsing/parser.ml" +# 33962 "parsing/parser.ml" in # 183 "" ( x ) -# 33045 "parsing/parser.ml" +# 33968 "parsing/parser.ml" in -# 1055 "parsing/parser.mly" +# 1127 "parsing/parser.mly" ( x :: xs ) -# 33051 "parsing/parser.ml" +# 33974 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33070,9 +33993,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((Lexing.position * Parsetree.functor_parameter) list) = -# 1067 "parsing/parser.mly" +# 1139 "parsing/parser.mly" ( [ x ] ) -# 33076 "parsing/parser.ml" +# 33999 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33102,9 +34025,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : ((Lexing.position * Parsetree.functor_parameter) list) = -# 1069 "parsing/parser.mly" +# 1141 "parsing/parser.mly" ( x :: xs ) -# 33108 "parsing/parser.ml" +# 34031 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33127,9 +34050,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((Asttypes.arg_label * Parsetree.expression) list) = -# 1067 "parsing/parser.mly" +# 1139 "parsing/parser.mly" ( [ x ] ) -# 33133 "parsing/parser.ml" +# 34056 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33159,9 +34082,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : ((Asttypes.arg_label * Parsetree.expression) list) = -# 1069 "parsing/parser.mly" +# 1141 "parsing/parser.mly" ( x :: xs ) -# 33165 "parsing/parser.ml" +# 34088 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33184,9 +34107,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Asttypes.label list) = -# 1067 "parsing/parser.mly" +# 1139 "parsing/parser.mly" ( [ x ] ) -# 33190 "parsing/parser.ml" +# 34113 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33216,9 +34139,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Asttypes.label list) = -# 1069 "parsing/parser.mly" +# 1141 "parsing/parser.mly" ( x :: xs ) -# 33222 "parsing/parser.ml" +# 34145 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33247,28 +34170,90 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Asttypes.label Asttypes.loc list) = let x = + let _v : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = let x = let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 33260 "parsing/parser.ml" +# 34185 "parsing/parser.ml" in -# 3478 "parsing/parser.mly" - ( _2 ) -# 33266 "parsing/parser.ml" +# 3583 "parsing/parser.mly" + ( (_2, None) ) +# 34191 "parsing/parser.ml" in -# 1067 "parsing/parser.mly" +# 1139 "parsing/parser.mly" ( [ x ] ) -# 33272 "parsing/parser.ml" +# 34197 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = lay; + MenhirLib.EngineTypes.startp = _startpos_lay_; + MenhirLib.EngineTypes.endp = _endpos_lay_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = tv; + MenhirLib.EngineTypes.startp = _startpos_tv_; + MenhirLib.EngineTypes.endp = _endpos_tv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : unit = Obj.magic _5 in + let lay : (Parsetree.core_type) = Obj.magic lay in + let _3 : unit = Obj.magic _3 in + let tv : (Parsetree.core_type) = Obj.magic tv in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in + let _v : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = let x = +# 3587 "parsing/parser.mly" + ( (check_type_var_from_type tv, Some (check_layout_from_type lay)) ) +# 34252 "parsing/parser.ml" + in + +# 1139 "parsing/parser.mly" + ( [ x ] ) +# 34257 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33300,32 +34285,105 @@ module Tables = struct } = _menhir_stack in let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_xs_ in let _endpos = _endpos__1_inlined1_ in - let _v : (Asttypes.label Asttypes.loc list) = let x = + let _v : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = let x = let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 33317 "parsing/parser.ml" +# 34306 "parsing/parser.ml" in -# 3478 "parsing/parser.mly" - ( _2 ) -# 33323 "parsing/parser.ml" +# 3583 "parsing/parser.mly" + ( (_2, None) ) +# 34312 "parsing/parser.ml" in -# 1069 "parsing/parser.mly" +# 1141 "parsing/parser.mly" ( x :: xs ) -# 33329 "parsing/parser.ml" +# 34318 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = lay; + MenhirLib.EngineTypes.startp = _startpos_lay_; + MenhirLib.EngineTypes.endp = _endpos_lay_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = tv; + MenhirLib.EngineTypes.startp = _startpos_tv_; + MenhirLib.EngineTypes.endp = _endpos_tv_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = xs; + MenhirLib.EngineTypes.startp = _startpos_xs_; + MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _5 : unit = Obj.magic _5 in + let lay : (Parsetree.core_type) = Obj.magic lay in + let _3 : unit = Obj.magic _3 in + let tv : (Parsetree.core_type) = Obj.magic tv in + let _1 : unit = Obj.magic _1 in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_xs_ in + let _endpos = _endpos__5_ in + let _v : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = let x = +# 3587 "parsing/parser.mly" + ( (check_type_var_from_type tv, Some (check_layout_from_type lay)) ) +# 34382 "parsing/parser.ml" + in + +# 1141 "parsing/parser.mly" + ( x :: xs ) +# 34387 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33350,12 +34408,12 @@ module Tables = struct let _v : (Parsetree.case list) = let _1 = # 124 "" ( None ) -# 33354 "parsing/parser.ml" +# 34412 "parsing/parser.ml" in -# 1158 "parsing/parser.mly" +# 1230 "parsing/parser.mly" ( [x] ) -# 33359 "parsing/parser.ml" +# 34417 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33389,13 +34447,13 @@ module Tables = struct # 126 "" ( Some x ) -# 33393 "parsing/parser.ml" +# 34451 "parsing/parser.ml" in -# 1158 "parsing/parser.mly" +# 1230 "parsing/parser.mly" ( [x] ) -# 33399 "parsing/parser.ml" +# 34457 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33432,9 +34490,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.case list) = -# 1162 "parsing/parser.mly" +# 1234 "parsing/parser.mly" ( x :: xs ) -# 33438 "parsing/parser.ml" +# 34496 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33458,20 +34516,20 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.core_type list) = let xs = let x = -# 3521 "parsing/parser.mly" +# 3631 "parsing/parser.mly" ( _1 ) -# 33464 "parsing/parser.ml" +# 34522 "parsing/parser.ml" in -# 1093 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [ x ] ) -# 33469 "parsing/parser.ml" +# 34527 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 33475 "parsing/parser.ml" +# 34533 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33509,20 +34567,20 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.core_type list) = let xs = let x = -# 3521 "parsing/parser.mly" +# 3631 "parsing/parser.mly" ( _1 ) -# 33515 "parsing/parser.ml" +# 34573 "parsing/parser.ml" in -# 1097 "parsing/parser.mly" +# 1169 "parsing/parser.mly" ( x :: xs ) -# 33520 "parsing/parser.ml" +# 34578 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 33526 "parsing/parser.ml" +# 34584 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33545,14 +34603,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Extensions.comprehension_clause list) = let xs = -# 1093 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [ x ] ) -# 33551 "parsing/parser.ml" +# 34609 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 33556 "parsing/parser.ml" +# 34614 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33589,14 +34647,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Extensions.comprehension_clause list) = let xs = -# 1097 "parsing/parser.mly" +# 1169 "parsing/parser.mly" ( x :: xs ) -# 33595 "parsing/parser.ml" +# 34653 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 33600 "parsing/parser.ml" +# 34658 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33619,14 +34677,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.with_constraint list) = let xs = -# 1093 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [ x ] ) -# 33625 "parsing/parser.ml" +# 34683 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 33630 "parsing/parser.ml" +# 34688 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33663,14 +34721,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.with_constraint list) = let xs = -# 1097 "parsing/parser.mly" +# 1169 "parsing/parser.mly" ( x :: xs ) -# 33669 "parsing/parser.ml" +# 34727 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 33674 "parsing/parser.ml" +# 34732 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33693,14 +34751,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.row_field list) = let xs = -# 1093 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [ x ] ) -# 33699 "parsing/parser.ml" +# 34757 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 33704 "parsing/parser.ml" +# 34762 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33737,14 +34795,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.row_field list) = let xs = -# 1097 "parsing/parser.mly" +# 1169 "parsing/parser.mly" ( x :: xs ) -# 33743 "parsing/parser.ml" +# 34801 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 33748 "parsing/parser.ml" +# 34806 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33767,14 +34825,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.core_type list) = let xs = -# 1093 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [ x ] ) -# 33773 "parsing/parser.ml" +# 34831 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 33778 "parsing/parser.ml" +# 34836 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33811,14 +34869,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.core_type list) = let xs = -# 1097 "parsing/parser.mly" +# 1169 "parsing/parser.mly" ( x :: xs ) -# 33817 "parsing/parser.ml" +# 34875 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 33822 "parsing/parser.ml" +# 34880 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33841,14 +34899,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = -# 1093 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [ x ] ) -# 33847 "parsing/parser.ml" +# 34905 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 33852 "parsing/parser.ml" +# 34910 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33885,14 +34943,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = -# 1097 "parsing/parser.mly" +# 1169 "parsing/parser.mly" ( x :: xs ) -# 33891 "parsing/parser.ml" +# 34949 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 33896 "parsing/parser.ml" +# 34954 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33915,14 +34973,14 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = -# 1093 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [ x ] ) -# 33921 "parsing/parser.ml" +# 34979 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 33926 "parsing/parser.ml" +# 34984 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33959,14 +35017,14 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = let xs = -# 1097 "parsing/parser.mly" +# 1169 "parsing/parser.mly" ( x :: xs ) -# 33965 "parsing/parser.ml" +# 35023 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 33970 "parsing/parser.ml" +# 35028 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -33991,30 +35049,30 @@ module Tables = struct let _v : (Parsetree.core_type list) = let xs = let x = let gbl = -# 3971 "parsing/parser.mly" +# 4113 "parsing/parser.mly" ( Nothing ) -# 33997 "parsing/parser.ml" +# 35055 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3347 "parsing/parser.mly" +# 3452 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 34006 "parsing/parser.ml" +# 35064 "parsing/parser.ml" in -# 1093 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [ x ] ) -# 34012 "parsing/parser.ml" +# 35070 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 34018 "parsing/parser.ml" +# 35076 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34046,30 +35104,30 @@ module Tables = struct let _v : (Parsetree.core_type list) = let xs = let x = let gbl = -# 3972 "parsing/parser.mly" +# 4114 "parsing/parser.mly" ( Global ) -# 34052 "parsing/parser.ml" +# 35110 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3347 "parsing/parser.mly" +# 3452 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 34061 "parsing/parser.ml" +# 35119 "parsing/parser.ml" in -# 1093 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [ x ] ) -# 34067 "parsing/parser.ml" +# 35125 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 34073 "parsing/parser.ml" +# 35131 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34101,30 +35159,30 @@ module Tables = struct let _v : (Parsetree.core_type list) = let xs = let x = let gbl = -# 3973 "parsing/parser.mly" +# 4115 "parsing/parser.mly" ( Nonlocal ) -# 34107 "parsing/parser.ml" +# 35165 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3347 "parsing/parser.mly" +# 3452 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 34116 "parsing/parser.ml" +# 35174 "parsing/parser.ml" in -# 1093 "parsing/parser.mly" +# 1165 "parsing/parser.mly" ( [ x ] ) -# 34122 "parsing/parser.ml" +# 35180 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 34128 "parsing/parser.ml" +# 35186 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34164,30 +35222,30 @@ module Tables = struct let x = let _endpos__0_ = _endpos__2_ in let gbl = -# 3971 "parsing/parser.mly" +# 4113 "parsing/parser.mly" ( Nothing ) -# 34170 "parsing/parser.ml" +# 35228 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3347 "parsing/parser.mly" +# 3452 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 34179 "parsing/parser.ml" +# 35237 "parsing/parser.ml" in -# 1097 "parsing/parser.mly" +# 1169 "parsing/parser.mly" ( x :: xs ) -# 34185 "parsing/parser.ml" +# 35243 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 34191 "parsing/parser.ml" +# 35249 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34233,30 +35291,30 @@ module Tables = struct let _v : (Parsetree.core_type list) = let xs = let x = let gbl = -# 3972 "parsing/parser.mly" +# 4114 "parsing/parser.mly" ( Global ) -# 34239 "parsing/parser.ml" +# 35297 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3347 "parsing/parser.mly" +# 3452 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 34248 "parsing/parser.ml" +# 35306 "parsing/parser.ml" in -# 1097 "parsing/parser.mly" +# 1169 "parsing/parser.mly" ( x :: xs ) -# 34254 "parsing/parser.ml" +# 35312 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 34260 "parsing/parser.ml" +# 35318 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34302,30 +35360,30 @@ module Tables = struct let _v : (Parsetree.core_type list) = let xs = let x = let gbl = -# 3973 "parsing/parser.mly" +# 4115 "parsing/parser.mly" ( Nonlocal ) -# 34308 "parsing/parser.ml" +# 35366 "parsing/parser.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in let _loc_gbl_ = (_startpos_gbl_, _endpos_gbl_) in -# 3347 "parsing/parser.mly" +# 3452 "parsing/parser.mly" ( mkcty_global_maybe gbl cty (make_loc _loc_gbl_) ) -# 34317 "parsing/parser.ml" +# 35375 "parsing/parser.ml" in -# 1097 "parsing/parser.mly" +# 1169 "parsing/parser.mly" ( x :: xs ) -# 34323 "parsing/parser.ml" +# 35381 "parsing/parser.ml" in -# 1101 "parsing/parser.mly" +# 1173 "parsing/parser.mly" ( xs ) -# 34329 "parsing/parser.ml" +# 35387 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34362,9 +35420,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.core_type list) = -# 1124 "parsing/parser.mly" +# 1196 "parsing/parser.mly" ( x :: xs ) -# 34368 "parsing/parser.ml" +# 35426 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34401,9 +35459,9 @@ module Tables = struct let _startpos = _startpos_x1_ in let _endpos = _endpos_x2_ in let _v : (Parsetree.core_type list) = -# 1128 "parsing/parser.mly" +# 1200 "parsing/parser.mly" ( [ x2; x1 ] ) -# 34407 "parsing/parser.ml" +# 35465 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34440,9 +35498,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.expression list) = -# 1124 "parsing/parser.mly" +# 1196 "parsing/parser.mly" ( x :: xs ) -# 34446 "parsing/parser.ml" +# 35504 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34479,9 +35537,9 @@ module Tables = struct let _startpos = _startpos_x1_ in let _endpos = _endpos_x2_ in let _v : (Parsetree.expression list) = -# 1128 "parsing/parser.mly" +# 1200 "parsing/parser.mly" ( [ x2; x1 ] ) -# 34485 "parsing/parser.ml" +# 35543 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34518,9 +35576,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.core_type list) = -# 1124 "parsing/parser.mly" +# 1196 "parsing/parser.mly" ( x :: xs ) -# 34524 "parsing/parser.ml" +# 35582 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34557,9 +35615,9 @@ module Tables = struct let _startpos = _startpos_x1_ in let _endpos = _endpos_x2_ in let _v : (Parsetree.core_type list) = -# 1128 "parsing/parser.mly" +# 1200 "parsing/parser.mly" ( [ x2; x1 ] ) -# 34563 "parsing/parser.ml" +# 35621 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34582,9 +35640,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.row_field) = -# 3696 "parsing/parser.mly" +# 3831 "parsing/parser.mly" ( _1 ) -# 34588 "parsing/parser.ml" +# 35646 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34610,9 +35668,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3698 "parsing/parser.mly" +# 3833 "parsing/parser.mly" ( Rf.inherit_ ~loc:(make_loc _sloc) _1 ) -# 34616 "parsing/parser.ml" +# 35674 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34637,12 +35695,12 @@ module Tables = struct let _v : (Parsetree.expression list) = let _2 = # 124 "" ( None ) -# 34641 "parsing/parser.ml" +# 35699 "parsing/parser.ml" in -# 1145 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( [x] ) -# 34646 "parsing/parser.ml" +# 35704 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34676,13 +35734,13 @@ module Tables = struct # 126 "" ( Some x ) -# 34680 "parsing/parser.ml" +# 35738 "parsing/parser.ml" in -# 1145 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( [x] ) -# 34686 "parsing/parser.ml" +# 35744 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34719,9 +35777,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : (Parsetree.expression list) = -# 1149 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( x :: xs ) -# 34725 "parsing/parser.ml" +# 35783 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34747,9 +35805,9 @@ module Tables = struct } = _menhir_stack in let oe : (Parsetree.expression option) = Obj.magic oe in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 34753 "parsing/parser.ml" +# 35811 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -34757,26 +35815,26 @@ module Tables = struct let _v : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = let _2 = # 124 "" ( None ) -# 34761 "parsing/parser.ml" +# 35819 "parsing/parser.ml" in let x = let label = let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 34768 "parsing/parser.ml" +# 35826 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 34776 "parsing/parser.ml" +# 35834 "parsing/parser.ml" in -# 2852 "parsing/parser.mly" +# 2933 "parsing/parser.mly" ( let label, e = match oe with | None -> @@ -34786,13 +35844,13 @@ module Tables = struct label, e in label, e ) -# 34790 "parsing/parser.ml" +# 35848 "parsing/parser.ml" in -# 1145 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( [x] ) -# 34796 "parsing/parser.ml" +# 35854 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34825,9 +35883,9 @@ module Tables = struct let x : unit = Obj.magic x in let oe : (Parsetree.expression option) = Obj.magic oe in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 34831 "parsing/parser.ml" +# 35889 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -34835,26 +35893,26 @@ module Tables = struct let _v : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = let _2 = # 126 "" ( Some x ) -# 34839 "parsing/parser.ml" +# 35897 "parsing/parser.ml" in let x = let label = let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 34846 "parsing/parser.ml" +# 35904 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 34854 "parsing/parser.ml" +# 35912 "parsing/parser.ml" in -# 2852 "parsing/parser.mly" +# 2933 "parsing/parser.mly" ( let label, e = match oe with | None -> @@ -34864,13 +35922,13 @@ module Tables = struct label, e in label, e ) -# 34868 "parsing/parser.ml" +# 35926 "parsing/parser.ml" in -# 1145 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( [x] ) -# 34874 "parsing/parser.ml" +# 35932 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34910,9 +35968,9 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let oe : (Parsetree.expression option) = Obj.magic oe in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 34916 "parsing/parser.ml" +# 35974 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -34920,21 +35978,21 @@ module Tables = struct let _v : ((Asttypes.label Asttypes.loc * Parsetree.expression) list) = let x = let label = let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 34926 "parsing/parser.ml" +# 35984 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 34934 "parsing/parser.ml" +# 35992 "parsing/parser.ml" in -# 2852 "parsing/parser.mly" +# 2933 "parsing/parser.mly" ( let label, e = match oe with | None -> @@ -34944,13 +36002,13 @@ module Tables = struct label, e in label, e ) -# 34948 "parsing/parser.ml" +# 36006 "parsing/parser.ml" in -# 1149 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( x :: xs ) -# 34954 "parsing/parser.ml" +# 36012 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -34975,12 +36033,12 @@ module Tables = struct let _v : (Parsetree.pattern list) = let _2 = # 124 "" ( None ) -# 34979 "parsing/parser.ml" +# 36037 "parsing/parser.ml" in -# 1145 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( [x] ) -# 34984 "parsing/parser.ml" +# 36042 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35014,13 +36072,13 @@ module Tables = struct # 126 "" ( Some x ) -# 35018 "parsing/parser.ml" +# 36076 "parsing/parser.ml" in -# 1145 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( [x] ) -# 35024 "parsing/parser.ml" +# 36082 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35057,9 +36115,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : (Parsetree.pattern list) = -# 1149 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( x :: xs ) -# 35063 "parsing/parser.ml" +# 36121 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35098,7 +36156,7 @@ module Tables = struct let _v : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let _2 = # 124 "" ( None ) -# 35102 "parsing/parser.ml" +# 36160 "parsing/parser.ml" in let x = let label = @@ -35106,9 +36164,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 35112 "parsing/parser.ml" +# 36170 "parsing/parser.ml" in let _startpos_label_ = _startpos__1_ in @@ -35116,7 +36174,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 2835 "parsing/parser.mly" +# 2916 "parsing/parser.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -35126,13 +36184,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_constraint ~loc:constraint_loc e c ) -# 35130 "parsing/parser.ml" +# 36188 "parsing/parser.ml" in -# 1145 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( [x] ) -# 35136 "parsing/parser.ml" +# 36194 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35178,7 +36236,7 @@ module Tables = struct let _v : ((Longident.t Asttypes.loc * Parsetree.expression) list) = let _2 = # 126 "" ( Some x ) -# 35182 "parsing/parser.ml" +# 36240 "parsing/parser.ml" in let x = let label = @@ -35186,9 +36244,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 35192 "parsing/parser.ml" +# 36250 "parsing/parser.ml" in let _startpos_label_ = _startpos__1_ in @@ -35196,7 +36254,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 2835 "parsing/parser.mly" +# 2916 "parsing/parser.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -35206,13 +36264,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_constraint ~loc:constraint_loc e c ) -# 35210 "parsing/parser.ml" +# 36268 "parsing/parser.ml" in -# 1145 "parsing/parser.mly" +# 1217 "parsing/parser.mly" ( [x] ) -# 35216 "parsing/parser.ml" +# 36274 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35268,9 +36326,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 35274 "parsing/parser.ml" +# 36332 "parsing/parser.ml" in let _startpos_label_ = _startpos__1_ in @@ -35278,7 +36336,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 2835 "parsing/parser.mly" +# 2916 "parsing/parser.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -35288,13 +36346,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_constraint ~loc:constraint_loc e c ) -# 35292 "parsing/parser.ml" +# 36350 "parsing/parser.ml" in -# 1149 "parsing/parser.mly" +# 1221 "parsing/parser.mly" ( x :: xs ) -# 35298 "parsing/parser.ml" +# 36356 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35317,9 +36375,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = -# 2278 "parsing/parser.mly" +# 2350 "parsing/parser.mly" ( _1 ) -# 35323 "parsing/parser.ml" +# 36381 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35349,9 +36407,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 2279 "parsing/parser.mly" +# 2351 "parsing/parser.mly" ( _1 ) -# 35355 "parsing/parser.ml" +# 36413 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35389,24 +36447,24 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2281 "parsing/parser.mly" +# 2353 "parsing/parser.mly" ( Pexp_sequence(_1, _3) ) -# 35395 "parsing/parser.ml" +# 36453 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 35404 "parsing/parser.ml" +# 36462 "parsing/parser.ml" in -# 2282 "parsing/parser.mly" +# 2354 "parsing/parser.mly" ( _1 ) -# 35410 "parsing/parser.ml" +# 36468 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35460,11 +36518,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2284 "parsing/parser.mly" +# 2356 "parsing/parser.mly" ( let seq = mkexp ~loc:_sloc (Pexp_sequence (_1, _5)) in let payload = PStr [mkstrexp seq []] in mkexp ~loc:_sloc (Pexp_extension (_4, payload)) ) -# 35468 "parsing/parser.ml" +# 36526 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35520,8 +36578,8 @@ module Tables = struct } = _menhir_stack in let _1_inlined4 : (Parsetree.attributes) = Obj.magic _1_inlined4 in let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let vars_args_res : (string Asttypes.loc list * Parsetree.constructor_arguments * - Parsetree.core_type option) = Obj.magic vars_args_res in + let vars_args_res : ((string Asttypes.loc list * Parsetree.type_vars_layouts) * + Parsetree.constructor_arguments * Parsetree.core_type option) = Obj.magic vars_args_res in let _1_inlined2 : (Asttypes.label) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let ext : (string Asttypes.loc option) = Obj.magic ext in @@ -35532,18 +36590,18 @@ module Tables = struct let _v : (Parsetree.type_exception * string Asttypes.loc option) = let attrs = let _1 = _1_inlined4 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 35538 "parsing/parser.ml" +# 36596 "parsing/parser.ml" in let _endpos_attrs_ = _endpos__1_inlined4_ in let attrs2 = let _1 = _1_inlined3 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 35547 "parsing/parser.ml" +# 36605 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -35553,17 +36611,17 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 35559 "parsing/parser.ml" +# 36617 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 35567 "parsing/parser.ml" +# 36625 "parsing/parser.ml" in let _endpos = _endpos_attrs_ in @@ -35571,14 +36629,14 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3320 "parsing/parser.mly" +# 3425 "parsing/parser.mly" ( let vars, args, res = vars_args_res in let loc = make_loc (_startpos, _endpos_attrs2_) in let docs = symbol_docs _sloc in Te.mk_exception ~attrs (Te.decl id ~vars ~args ?res ~attrs:(attrs1 @ attrs2) ~loc ~docs) , ext ) -# 35582 "parsing/parser.ml" +# 36640 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35604,21 +36662,21 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 35608 "parsing/parser.ml" +# 36666 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 968 "parsing/parser.mly" +# 1040 "parsing/parser.mly" ( extra_sig _startpos _endpos _1 ) -# 35616 "parsing/parser.ml" +# 36674 "parsing/parser.ml" in -# 1727 "parsing/parser.mly" +# 1799 "parsing/parser.mly" ( _1 ) -# 35622 "parsing/parser.ml" +# 36680 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35650,9 +36708,9 @@ module Tables = struct let _v : (Parsetree.signature_item) = let _2 = let _1 = _1_inlined1 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 35656 "parsing/parser.ml" +# 36714 "parsing/parser.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -35660,10 +36718,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1742 "parsing/parser.mly" +# 1814 "parsing/parser.mly" ( let docs = symbol_docs _sloc in mksig ~loc:_sloc (Psig_extension (_1, (add_docs_attrs docs _2))) ) -# 35667 "parsing/parser.ml" +# 36725 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35687,23 +36745,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1746 "parsing/parser.mly" +# 1818 "parsing/parser.mly" ( Psig_attribute _1 ) -# 35693 "parsing/parser.ml" +# 36751 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1016 "parsing/parser.mly" +# 1088 "parsing/parser.mly" ( mksig ~loc:_sloc _1 ) -# 35701 "parsing/parser.ml" +# 36759 "parsing/parser.ml" in -# 1748 "parsing/parser.mly" +# 1820 "parsing/parser.mly" ( _1 ) -# 35707 "parsing/parser.ml" +# 36765 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35727,23 +36785,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1751 "parsing/parser.mly" +# 1823 "parsing/parser.mly" ( psig_value _1 ) -# 35733 "parsing/parser.ml" +# 36791 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 35741 "parsing/parser.ml" +# 36799 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 35747 "parsing/parser.ml" +# 36805 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35767,23 +36825,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1753 "parsing/parser.mly" +# 1825 "parsing/parser.mly" ( psig_value _1 ) -# 35773 "parsing/parser.ml" +# 36831 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 35781 "parsing/parser.ml" +# 36839 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 35787 "parsing/parser.ml" +# 36845 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35818,26 +36876,26 @@ module Tables = struct let _1 = let _1 = let _1 = -# 1206 "parsing/parser.mly" +# 1278 "parsing/parser.mly" ( let (x, b) = a in x, b :: bs ) -# 35824 "parsing/parser.ml" +# 36882 "parsing/parser.ml" in -# 3126 "parsing/parser.mly" +# 3218 "parsing/parser.mly" ( _1 ) -# 35829 "parsing/parser.ml" +# 36887 "parsing/parser.ml" in -# 3109 "parsing/parser.mly" +# 3201 "parsing/parser.mly" ( _1 ) -# 35835 "parsing/parser.ml" +# 36893 "parsing/parser.ml" in -# 1755 "parsing/parser.mly" +# 1827 "parsing/parser.mly" ( psig_type _1 ) -# 35841 "parsing/parser.ml" +# 36899 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -35845,15 +36903,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 35851 "parsing/parser.ml" +# 36909 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 35857 "parsing/parser.ml" +# 36915 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35888,26 +36946,26 @@ module Tables = struct let _1 = let _1 = let _1 = -# 1206 "parsing/parser.mly" +# 1278 "parsing/parser.mly" ( let (x, b) = a in x, b :: bs ) -# 35894 "parsing/parser.ml" +# 36952 "parsing/parser.ml" in -# 3126 "parsing/parser.mly" +# 3218 "parsing/parser.mly" ( _1 ) -# 35899 "parsing/parser.ml" +# 36957 "parsing/parser.ml" in -# 3114 "parsing/parser.mly" +# 3206 "parsing/parser.mly" ( _1 ) -# 35905 "parsing/parser.ml" +# 36963 "parsing/parser.ml" in -# 1757 "parsing/parser.mly" +# 1829 "parsing/parser.mly" ( psig_typesubst _1 ) -# 35911 "parsing/parser.ml" +# 36969 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -35915,15 +36973,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 35921 "parsing/parser.ml" +# 36979 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 35927 "parsing/parser.ml" +# 36985 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36008,16 +37066,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 36014 "parsing/parser.ml" +# 37072 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let cs = -# 1198 "parsing/parser.mly" +# 1270 "parsing/parser.mly" ( List.rev xs ) -# 36021 "parsing/parser.ml" +# 37079 "parsing/parser.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -36025,46 +37083,46 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 36031 "parsing/parser.ml" +# 37089 "parsing/parser.ml" in let _4 = -# 3943 "parsing/parser.mly" +# 4085 "parsing/parser.mly" ( Recursive ) -# 36037 "parsing/parser.ml" +# 37095 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 36044 "parsing/parser.ml" +# 37102 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3407 "parsing/parser.mly" +# 3512 "parsing/parser.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 36056 "parsing/parser.ml" +# 37114 "parsing/parser.ml" in -# 3394 "parsing/parser.mly" +# 3499 "parsing/parser.mly" ( _1 ) -# 36062 "parsing/parser.ml" +# 37120 "parsing/parser.ml" in -# 1759 "parsing/parser.mly" +# 1831 "parsing/parser.mly" ( psig_typext _1 ) -# 36068 "parsing/parser.ml" +# 37126 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -36072,15 +37130,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36078 "parsing/parser.ml" +# 37136 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 36084 "parsing/parser.ml" +# 37142 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36172,16 +37230,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 36178 "parsing/parser.ml" +# 37236 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in let cs = -# 1198 "parsing/parser.mly" +# 1270 "parsing/parser.mly" ( List.rev xs ) -# 36185 "parsing/parser.ml" +# 37243 "parsing/parser.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in @@ -36189,9 +37247,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 36195 "parsing/parser.ml" +# 37253 "parsing/parser.ml" in let _4 = @@ -36200,41 +37258,41 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 3945 "parsing/parser.mly" +# 4087 "parsing/parser.mly" ( not_expecting _loc "nonrec flag" ) -# 36206 "parsing/parser.ml" +# 37264 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 36214 "parsing/parser.ml" +# 37272 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3407 "parsing/parser.mly" +# 3512 "parsing/parser.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 36226 "parsing/parser.ml" +# 37284 "parsing/parser.ml" in -# 3394 "parsing/parser.mly" +# 3499 "parsing/parser.mly" ( _1 ) -# 36232 "parsing/parser.ml" +# 37290 "parsing/parser.ml" in -# 1759 "parsing/parser.mly" +# 1831 "parsing/parser.mly" ( psig_typext _1 ) -# 36238 "parsing/parser.ml" +# 37296 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -36242,15 +37300,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36248 "parsing/parser.ml" +# 37306 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 36254 "parsing/parser.ml" +# 37312 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36274,23 +37332,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1761 "parsing/parser.mly" +# 1833 "parsing/parser.mly" ( psig_exception _1 ) -# 36280 "parsing/parser.ml" +# 37338 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36288 "parsing/parser.ml" +# 37346 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 36294 "parsing/parser.ml" +# 37352 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36353,9 +37411,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 36359 "parsing/parser.ml" +# 37417 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -36365,37 +37423,37 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 36371 "parsing/parser.ml" +# 37429 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 36379 "parsing/parser.ml" +# 37437 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1792 "parsing/parser.mly" +# 1864 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Md.mk name body ~attrs ~loc ~docs, ext ) -# 36393 "parsing/parser.ml" +# 37451 "parsing/parser.ml" in -# 1763 "parsing/parser.mly" +# 1835 "parsing/parser.mly" ( let (body, ext) = _1 in (Psig_module body, ext) ) -# 36399 "parsing/parser.ml" +# 37457 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -36403,15 +37461,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36409 "parsing/parser.ml" +# 37467 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 36415 "parsing/parser.ml" +# 37473 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36481,9 +37539,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 36487 "parsing/parser.ml" +# 37545 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -36494,9 +37552,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 36500 "parsing/parser.ml" +# 37558 "parsing/parser.ml" in let (_endpos_id_, _startpos_id_) = (_endpos__1_, _startpos__1_) in @@ -36504,9 +37562,9 @@ module Tables = struct let _symbolstartpos = _startpos_id_ in let _sloc = (_symbolstartpos, _endpos) in -# 1829 "parsing/parser.mly" +# 1901 "parsing/parser.mly" ( Mty.alias ~loc:(make_loc _sloc) id ) -# 36510 "parsing/parser.ml" +# 37568 "parsing/parser.ml" in let name = @@ -36515,37 +37573,37 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 36521 "parsing/parser.ml" +# 37579 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 36529 "parsing/parser.ml" +# 37587 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1820 "parsing/parser.mly" +# 1892 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Md.mk name body ~attrs ~loc ~docs, ext ) -# 36543 "parsing/parser.ml" +# 37601 "parsing/parser.ml" in -# 1765 "parsing/parser.mly" +# 1837 "parsing/parser.mly" ( let (body, ext) = _1 in (Psig_module body, ext) ) -# 36549 "parsing/parser.ml" +# 37607 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -36553,15 +37611,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36559 "parsing/parser.ml" +# 37617 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 36565 "parsing/parser.ml" +# 37623 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36585,23 +37643,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1767 "parsing/parser.mly" +# 1839 "parsing/parser.mly" ( let (body, ext) = _1 in (Psig_modsubst body, ext) ) -# 36591 "parsing/parser.ml" +# 37649 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36599 "parsing/parser.ml" +# 37657 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 36605 "parsing/parser.ml" +# 37663 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36687,9 +37745,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 36693 "parsing/parser.ml" +# 37751 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -36699,49 +37757,49 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 36705 "parsing/parser.ml" +# 37763 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 36713 "parsing/parser.ml" +# 37771 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1863 "parsing/parser.mly" +# 1935 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in ext, Md.mk name mty ~attrs ~loc ~docs ) -# 36727 "parsing/parser.ml" +# 37785 "parsing/parser.ml" in -# 1206 "parsing/parser.mly" +# 1278 "parsing/parser.mly" ( let (x, b) = a in x, b :: bs ) -# 36733 "parsing/parser.ml" +# 37791 "parsing/parser.ml" in -# 1852 "parsing/parser.mly" +# 1924 "parsing/parser.mly" ( _1 ) -# 36739 "parsing/parser.ml" +# 37797 "parsing/parser.ml" in -# 1769 "parsing/parser.mly" +# 1841 "parsing/parser.mly" ( let (ext, l) = _1 in (Psig_recmodule l, ext) ) -# 36745 "parsing/parser.ml" +# 37803 "parsing/parser.ml" in let _endpos__1_ = _endpos_bs_ in @@ -36749,15 +37807,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36755 "parsing/parser.ml" +# 37813 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 36761 "parsing/parser.ml" +# 37819 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36781,23 +37839,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1771 "parsing/parser.mly" +# 1843 "parsing/parser.mly" ( let (body, ext) = _1 in (Psig_modtype body, ext) ) -# 36787 "parsing/parser.ml" +# 37845 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36795 "parsing/parser.ml" +# 37853 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 36801 "parsing/parser.ml" +# 37859 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36821,23 +37879,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1773 "parsing/parser.mly" +# 1845 "parsing/parser.mly" ( let (body, ext) = _1 in (Psig_modtypesubst body, ext) ) -# 36827 "parsing/parser.ml" +# 37885 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36835 "parsing/parser.ml" +# 37893 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 36841 "parsing/parser.ml" +# 37899 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36861,23 +37919,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1775 "parsing/parser.mly" +# 1847 "parsing/parser.mly" ( let (body, ext) = _1 in (Psig_open body, ext) ) -# 36867 "parsing/parser.ml" +# 37925 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36875 "parsing/parser.ml" +# 37933 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 36881 "parsing/parser.ml" +# 37939 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36933,35 +37991,35 @@ module Tables = struct let attrs2 = let _1 = _1_inlined1 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 36939 "parsing/parser.ml" +# 37997 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined1_ in let attrs1 = -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 36946 "parsing/parser.ml" +# 38004 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos_attrs0_ in let _sloc = (_symbolstartpos, _endpos) in -# 1619 "parsing/parser.mly" +# 1691 "parsing/parser.mly" ( let attrs = attrs0 @ attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Incl.mk thing ~attrs ~loc ~docs, ext ) -# 36959 "parsing/parser.ml" +# 38017 "parsing/parser.ml" in -# 1777 "parsing/parser.mly" +# 1849 "parsing/parser.mly" ( psig_include _1 ) -# 36965 "parsing/parser.ml" +# 38023 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_attrs0_) in @@ -36969,15 +38027,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 36975 "parsing/parser.ml" +# 38033 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 36981 "parsing/parser.ml" +# 38039 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37054,9 +38112,9 @@ module Tables = struct let cty : (Parsetree.class_type) = Obj.magic cty in let _7 : unit = Obj.magic _7 in let _1_inlined2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 37060 "parsing/parser.ml" +# 38118 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -37074,9 +38132,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 37080 "parsing/parser.ml" +# 38138 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -37086,24 +38144,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 37092 "parsing/parser.ml" +# 38150 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 37100 "parsing/parser.ml" +# 38158 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2210 "parsing/parser.mly" +# 2282 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -37111,25 +38169,25 @@ module Tables = struct ext, Ci.mk id cty ~virt ~params ~attrs ~loc ~docs ) -# 37115 "parsing/parser.ml" +# 38173 "parsing/parser.ml" in -# 1206 "parsing/parser.mly" +# 1278 "parsing/parser.mly" ( let (x, b) = a in x, b :: bs ) -# 37121 "parsing/parser.ml" +# 38179 "parsing/parser.ml" in -# 2198 "parsing/parser.mly" +# 2270 "parsing/parser.mly" ( _1 ) -# 37127 "parsing/parser.ml" +# 38185 "parsing/parser.ml" in -# 1779 "parsing/parser.mly" +# 1851 "parsing/parser.mly" ( let (ext, l) = _1 in (Psig_class l, ext) ) -# 37133 "parsing/parser.ml" +# 38191 "parsing/parser.ml" in let _endpos__1_ = _endpos_bs_ in @@ -37137,15 +38195,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 37143 "parsing/parser.ml" +# 38201 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 37149 "parsing/parser.ml" +# 38207 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37169,23 +38227,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.signature_item) = let _1 = let _1 = -# 1781 "parsing/parser.mly" +# 1853 "parsing/parser.mly" ( let (ext, l) = _1 in (Psig_class_type l, ext) ) -# 37175 "parsing/parser.ml" +# 38233 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1033 "parsing/parser.mly" +# 1105 "parsing/parser.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 37183 "parsing/parser.ml" +# 38241 "parsing/parser.ml" in -# 1783 "parsing/parser.mly" +# 1855 "parsing/parser.mly" ( _1 ) -# 37189 "parsing/parser.ml" +# 38247 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37208,9 +38266,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 3772 "parsing/parser.mly" +# 3907 "parsing/parser.mly" ( _1 ) -# 37214 "parsing/parser.ml" +# 38272 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37235,18 +38293,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 775 "parsing/parser.mly" +# 847 "parsing/parser.mly" (string * char option) -# 37241 "parsing/parser.ml" +# 38299 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 3773 "parsing/parser.mly" +# 3908 "parsing/parser.mly" ( let (n, m) = _2 in Pconst_integer("-" ^ n, m) ) -# 37250 "parsing/parser.ml" +# 38308 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37271,18 +38329,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 753 "parsing/parser.mly" +# 825 "parsing/parser.mly" (string * char option) -# 37277 "parsing/parser.ml" +# 38335 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 3774 "parsing/parser.mly" +# 3909 "parsing/parser.mly" ( let (f, m) = _2 in Pconst_float("-" ^ f, m) ) -# 37286 "parsing/parser.ml" +# 38344 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37307,18 +38365,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 775 "parsing/parser.mly" +# 847 "parsing/parser.mly" (string * char option) -# 37313 "parsing/parser.ml" +# 38371 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 3775 "parsing/parser.mly" +# 3910 "parsing/parser.mly" ( let (n, m) = _2 in Pconst_integer (n, m) ) -# 37322 "parsing/parser.ml" +# 38380 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37343,18 +38401,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 753 "parsing/parser.mly" +# 825 "parsing/parser.mly" (string * char option) -# 37349 "parsing/parser.ml" +# 38407 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.constant) = -# 3776 "parsing/parser.mly" +# 3911 "parsing/parser.mly" ( let (f, m) = _2 in Pconst_float(f, m) ) -# 37358 "parsing/parser.ml" +# 38416 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37395,18 +38453,18 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 3038 "parsing/parser.mly" +# 3130 "parsing/parser.mly" ( let fields, closed = _1 in let closed = match closed with Some () -> Open | None -> Closed in fields, closed ) -# 37403 "parsing/parser.ml" +# 38461 "parsing/parser.ml" in -# 3009 "parsing/parser.mly" +# 3101 "parsing/parser.mly" ( let (fields, closed) = _2 in Ppat_record(fields, closed) ) -# 37410 "parsing/parser.ml" +# 38468 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37414,15 +38472,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37420 "parsing/parser.ml" +# 38478 "parsing/parser.ml" in -# 3023 "parsing/parser.mly" +# 3115 "parsing/parser.mly" ( _1 ) -# 37426 "parsing/parser.ml" +# 38484 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37463,19 +38521,19 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 3038 "parsing/parser.mly" +# 3130 "parsing/parser.mly" ( let fields, closed = _1 in let closed = match closed with Some () -> Open | None -> Closed in fields, closed ) -# 37471 "parsing/parser.ml" +# 38529 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3012 "parsing/parser.mly" +# 3104 "parsing/parser.mly" ( unclosed "{" _loc__1_ "}" _loc__3_ ) -# 37479 "parsing/parser.ml" +# 38537 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37483,15 +38541,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37489 "parsing/parser.ml" +# 38547 "parsing/parser.ml" in -# 3023 "parsing/parser.mly" +# 3115 "parsing/parser.mly" ( _1 ) -# 37495 "parsing/parser.ml" +# 38553 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37530,15 +38588,15 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _2 = -# 3032 "parsing/parser.mly" +# 3124 "parsing/parser.mly" ( ps ) -# 37536 "parsing/parser.ml" +# 38594 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3014 "parsing/parser.mly" +# 3106 "parsing/parser.mly" ( fst (mktailpat _loc__3_ _2) ) -# 37542 "parsing/parser.ml" +# 38600 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37546,15 +38604,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37552 "parsing/parser.ml" +# 38610 "parsing/parser.ml" in -# 3023 "parsing/parser.mly" +# 3115 "parsing/parser.mly" ( _1 ) -# 37558 "parsing/parser.ml" +# 38616 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37593,16 +38651,16 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _2 = -# 3032 "parsing/parser.mly" +# 3124 "parsing/parser.mly" ( ps ) -# 37599 "parsing/parser.ml" +# 38657 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3016 "parsing/parser.mly" +# 3108 "parsing/parser.mly" ( unclosed "[" _loc__1_ "]" _loc__3_ ) -# 37606 "parsing/parser.ml" +# 38664 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37610,15 +38668,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37616 "parsing/parser.ml" +# 38674 "parsing/parser.ml" in -# 3023 "parsing/parser.mly" +# 3115 "parsing/parser.mly" ( _1 ) -# 37622 "parsing/parser.ml" +# 38680 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37657,14 +38715,14 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _2 = -# 3032 "parsing/parser.mly" +# 3124 "parsing/parser.mly" ( ps ) -# 37663 "parsing/parser.ml" +# 38721 "parsing/parser.ml" in -# 3018 "parsing/parser.mly" +# 3110 "parsing/parser.mly" ( Ppat_array _2 ) -# 37668 "parsing/parser.ml" +# 38726 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37672,15 +38730,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37678 "parsing/parser.ml" +# 38736 "parsing/parser.ml" in -# 3023 "parsing/parser.mly" +# 3115 "parsing/parser.mly" ( _1 ) -# 37684 "parsing/parser.ml" +# 38742 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37711,24 +38769,24 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 3020 "parsing/parser.mly" +# 3112 "parsing/parser.mly" ( Ppat_array [] ) -# 37717 "parsing/parser.ml" +# 38775 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37726 "parsing/parser.ml" +# 38784 "parsing/parser.ml" in -# 3023 "parsing/parser.mly" +# 3115 "parsing/parser.mly" ( _1 ) -# 37732 "parsing/parser.ml" +# 38790 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37767,16 +38825,16 @@ module Tables = struct let _v : (Parsetree.pattern) = let _1 = let _1 = let _2 = -# 3032 "parsing/parser.mly" +# 3124 "parsing/parser.mly" ( ps ) -# 37773 "parsing/parser.ml" +# 38831 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3022 "parsing/parser.mly" +# 3114 "parsing/parser.mly" ( unclosed "[|" _loc__1_ "|]" _loc__3_ ) -# 37780 "parsing/parser.ml" +# 38838 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -37784,15 +38842,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 37790 "parsing/parser.ml" +# 38848 "parsing/parser.ml" in -# 3023 "parsing/parser.mly" +# 3115 "parsing/parser.mly" ( _1 ) -# 37796 "parsing/parser.ml" +# 38854 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37832,9 +38890,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2475 "parsing/parser.mly" +# 2550 "parsing/parser.mly" ( reloc_exp ~loc:_sloc _2 ) -# 37838 "parsing/parser.ml" +# 38896 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37873,9 +38931,9 @@ module Tables = struct let _v : (Parsetree.expression) = let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2477 "parsing/parser.mly" +# 2552 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__3_ ) -# 37879 "parsing/parser.ml" +# 38937 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37922,9 +38980,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2479 "parsing/parser.mly" +# 2554 "parsing/parser.mly" ( mkexp_constraint ~loc:_sloc _2 _3 ) -# 37928 "parsing/parser.ml" +# 38986 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37976,14 +39034,14 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2480 "parsing/parser.mly" +# 2555 "parsing/parser.mly" ( None ) -# 37982 "parsing/parser.ml" +# 39040 "parsing/parser.ml" in -# 2367 "parsing/parser.mly" +# 2440 "parsing/parser.mly" ( array, d, Paren, i, r ) -# 37987 "parsing/parser.ml" +# 39045 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -37991,9 +39049,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2481 "parsing/parser.mly" +# 2556 "parsing/parser.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 37997 "parsing/parser.ml" +# 39055 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38045,14 +39103,14 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2480 "parsing/parser.mly" +# 2555 "parsing/parser.mly" ( None ) -# 38051 "parsing/parser.ml" +# 39109 "parsing/parser.ml" in -# 2369 "parsing/parser.mly" +# 2442 "parsing/parser.mly" ( array, d, Brace, i, r ) -# 38056 "parsing/parser.ml" +# 39114 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38060,9 +39118,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2481 "parsing/parser.mly" +# 2556 "parsing/parser.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 38066 "parsing/parser.ml" +# 39124 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38114,14 +39172,14 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2480 "parsing/parser.mly" +# 2555 "parsing/parser.mly" ( None ) -# 38120 "parsing/parser.ml" +# 39178 "parsing/parser.ml" in -# 2371 "parsing/parser.mly" +# 2444 "parsing/parser.mly" ( array, d, Bracket, i, r ) -# 38125 "parsing/parser.ml" +# 39183 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38129,9 +39187,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2481 "parsing/parser.mly" +# 2556 "parsing/parser.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 38135 "parsing/parser.ml" +# 39193 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38177,9 +39235,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 38183 "parsing/parser.ml" +# 39241 "parsing/parser.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -38187,31 +39245,31 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2482 "parsing/parser.mly" +# 2557 "parsing/parser.mly" ( None ) -# 38193 "parsing/parser.ml" +# 39251 "parsing/parser.ml" in let i = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 38198 "parsing/parser.ml" +# 39256 "parsing/parser.ml" in let d = let _1 = # 124 "" ( None ) -# 38204 "parsing/parser.ml" +# 39262 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 38209 "parsing/parser.ml" +# 39267 "parsing/parser.ml" in -# 2367 "parsing/parser.mly" +# 2440 "parsing/parser.mly" ( array, d, Paren, i, r ) -# 38215 "parsing/parser.ml" +# 39273 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38219,9 +39277,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2483 "parsing/parser.mly" +# 2558 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 38225 "parsing/parser.ml" +# 39283 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38279,9 +39337,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 38285 "parsing/parser.ml" +# 39343 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -38291,39 +39349,39 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2482 "parsing/parser.mly" +# 2557 "parsing/parser.mly" ( None ) -# 38297 "parsing/parser.ml" +# 39355 "parsing/parser.ml" in let i = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 38302 "parsing/parser.ml" +# 39360 "parsing/parser.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" (_2) -# 38310 "parsing/parser.ml" +# 39368 "parsing/parser.ml" in # 126 "" ( Some x ) -# 38315 "parsing/parser.ml" +# 39373 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 38321 "parsing/parser.ml" +# 39379 "parsing/parser.ml" in -# 2367 "parsing/parser.mly" +# 2440 "parsing/parser.mly" ( array, d, Paren, i, r ) -# 38327 "parsing/parser.ml" +# 39385 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38331,9 +39389,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2483 "parsing/parser.mly" +# 2558 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 38337 "parsing/parser.ml" +# 39395 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38379,9 +39437,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 38385 "parsing/parser.ml" +# 39443 "parsing/parser.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -38389,31 +39447,31 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2482 "parsing/parser.mly" +# 2557 "parsing/parser.mly" ( None ) -# 38395 "parsing/parser.ml" +# 39453 "parsing/parser.ml" in let i = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 38400 "parsing/parser.ml" +# 39458 "parsing/parser.ml" in let d = let _1 = # 124 "" ( None ) -# 38406 "parsing/parser.ml" +# 39464 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 38411 "parsing/parser.ml" +# 39469 "parsing/parser.ml" in -# 2369 "parsing/parser.mly" +# 2442 "parsing/parser.mly" ( array, d, Brace, i, r ) -# 38417 "parsing/parser.ml" +# 39475 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38421,9 +39479,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2483 "parsing/parser.mly" +# 2558 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 38427 "parsing/parser.ml" +# 39485 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38481,9 +39539,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 38487 "parsing/parser.ml" +# 39545 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -38493,39 +39551,39 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2482 "parsing/parser.mly" +# 2557 "parsing/parser.mly" ( None ) -# 38499 "parsing/parser.ml" +# 39557 "parsing/parser.ml" in let i = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 38504 "parsing/parser.ml" +# 39562 "parsing/parser.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" (_2) -# 38512 "parsing/parser.ml" +# 39570 "parsing/parser.ml" in # 126 "" ( Some x ) -# 38517 "parsing/parser.ml" +# 39575 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 38523 "parsing/parser.ml" +# 39581 "parsing/parser.ml" in -# 2369 "parsing/parser.mly" +# 2442 "parsing/parser.mly" ( array, d, Brace, i, r ) -# 38529 "parsing/parser.ml" +# 39587 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38533,9 +39591,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2483 "parsing/parser.mly" +# 2558 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 38539 "parsing/parser.ml" +# 39597 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38581,9 +39639,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 38587 "parsing/parser.ml" +# 39645 "parsing/parser.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -38591,31 +39649,31 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2482 "parsing/parser.mly" +# 2557 "parsing/parser.mly" ( None ) -# 38597 "parsing/parser.ml" +# 39655 "parsing/parser.ml" in let i = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 38602 "parsing/parser.ml" +# 39660 "parsing/parser.ml" in let d = let _1 = # 124 "" ( None ) -# 38608 "parsing/parser.ml" +# 39666 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 38613 "parsing/parser.ml" +# 39671 "parsing/parser.ml" in -# 2371 "parsing/parser.mly" +# 2444 "parsing/parser.mly" ( array, d, Bracket, i, r ) -# 38619 "parsing/parser.ml" +# 39677 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38623,9 +39681,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2483 "parsing/parser.mly" +# 2558 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 38629 "parsing/parser.ml" +# 39687 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38683,9 +39741,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 38689 "parsing/parser.ml" +# 39747 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -38695,39 +39753,39 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.expression) = let _1 = let r = -# 2482 "parsing/parser.mly" +# 2557 "parsing/parser.mly" ( None ) -# 38701 "parsing/parser.ml" +# 39759 "parsing/parser.ml" in let i = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 38706 "parsing/parser.ml" +# 39764 "parsing/parser.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" (_2) -# 38714 "parsing/parser.ml" +# 39772 "parsing/parser.ml" in # 126 "" ( Some x ) -# 38719 "parsing/parser.ml" +# 39777 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 38725 "parsing/parser.ml" +# 39783 "parsing/parser.ml" in -# 2371 "parsing/parser.mly" +# 2444 "parsing/parser.mly" ( array, d, Bracket, i, r ) -# 38731 "parsing/parser.ml" +# 39789 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -38735,9 +39793,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2483 "parsing/parser.mly" +# 2558 "parsing/parser.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 38741 "parsing/parser.ml" +# 39799 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38791,15 +39849,15 @@ module Tables = struct let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2376 "parsing/parser.mly" +# 2449 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Paren _loc__e_ ) -# 38797 "parsing/parser.ml" +# 39855 "parsing/parser.ml" in -# 2484 "parsing/parser.mly" +# 2559 "parsing/parser.mly" ( _1 ) -# 38803 "parsing/parser.ml" +# 39861 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38853,15 +39911,15 @@ module Tables = struct let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2378 "parsing/parser.mly" +# 2451 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Brace _loc__e_ ) -# 38859 "parsing/parser.ml" +# 39917 "parsing/parser.ml" in -# 2484 "parsing/parser.mly" +# 2559 "parsing/parser.mly" ( _1 ) -# 38865 "parsing/parser.ml" +# 39923 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38915,15 +39973,15 @@ module Tables = struct let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2380 "parsing/parser.mly" +# 2453 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Bracket _loc__e_ ) -# 38921 "parsing/parser.ml" +# 39979 "parsing/parser.ml" in -# 2484 "parsing/parser.mly" +# 2559 "parsing/parser.mly" ( _1 ) -# 38927 "parsing/parser.ml" +# 39985 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38969,9 +40027,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _p : unit = Obj.magic _p in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 38975 "parsing/parser.ml" +# 40033 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -38979,34 +40037,34 @@ module Tables = struct let _endpos = _endpos__e_ in let _v : (Parsetree.expression) = let _1 = let _4 = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 38985 "parsing/parser.ml" +# 40043 "parsing/parser.ml" in let _2 = let _1 = # 124 "" ( None ) -# 38991 "parsing/parser.ml" +# 40049 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 38996 "parsing/parser.ml" +# 40054 "parsing/parser.ml" in let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2376 "parsing/parser.mly" +# 2449 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Paren _loc__e_ ) -# 39004 "parsing/parser.ml" +# 40062 "parsing/parser.ml" in -# 2485 "parsing/parser.mly" +# 2560 "parsing/parser.mly" ( _1 ) -# 39010 "parsing/parser.ml" +# 40068 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39064,9 +40122,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _p : unit = Obj.magic _p in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 39070 "parsing/parser.ml" +# 40128 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -39076,42 +40134,42 @@ module Tables = struct let _endpos = _endpos__e_ in let _v : (Parsetree.expression) = let _1 = let _4 = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 39082 "parsing/parser.ml" +# 40140 "parsing/parser.ml" in let _2 = let _1 = let _2 = _2_inlined1 in let x = -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" (_2) -# 39090 "parsing/parser.ml" +# 40148 "parsing/parser.ml" in # 126 "" ( Some x ) -# 39095 "parsing/parser.ml" +# 40153 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 39101 "parsing/parser.ml" +# 40159 "parsing/parser.ml" in let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2376 "parsing/parser.mly" +# 2449 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Paren _loc__e_ ) -# 39109 "parsing/parser.ml" +# 40167 "parsing/parser.ml" in -# 2485 "parsing/parser.mly" +# 2560 "parsing/parser.mly" ( _1 ) -# 39115 "parsing/parser.ml" +# 40173 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39157,9 +40215,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _p : unit = Obj.magic _p in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 39163 "parsing/parser.ml" +# 40221 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -39167,34 +40225,34 @@ module Tables = struct let _endpos = _endpos__e_ in let _v : (Parsetree.expression) = let _1 = let _4 = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 39173 "parsing/parser.ml" +# 40231 "parsing/parser.ml" in let _2 = let _1 = # 124 "" ( None ) -# 39179 "parsing/parser.ml" +# 40237 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 39184 "parsing/parser.ml" +# 40242 "parsing/parser.ml" in let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2378 "parsing/parser.mly" +# 2451 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Brace _loc__e_ ) -# 39192 "parsing/parser.ml" +# 40250 "parsing/parser.ml" in -# 2485 "parsing/parser.mly" +# 2560 "parsing/parser.mly" ( _1 ) -# 39198 "parsing/parser.ml" +# 40256 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39252,9 +40310,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _p : unit = Obj.magic _p in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 39258 "parsing/parser.ml" +# 40316 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -39264,42 +40322,42 @@ module Tables = struct let _endpos = _endpos__e_ in let _v : (Parsetree.expression) = let _1 = let _4 = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 39270 "parsing/parser.ml" +# 40328 "parsing/parser.ml" in let _2 = let _1 = let _2 = _2_inlined1 in let x = -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" (_2) -# 39278 "parsing/parser.ml" +# 40336 "parsing/parser.ml" in # 126 "" ( Some x ) -# 39283 "parsing/parser.ml" +# 40341 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 39289 "parsing/parser.ml" +# 40347 "parsing/parser.ml" in let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2378 "parsing/parser.mly" +# 2451 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Brace _loc__e_ ) -# 39297 "parsing/parser.ml" +# 40355 "parsing/parser.ml" in -# 2485 "parsing/parser.mly" +# 2560 "parsing/parser.mly" ( _1 ) -# 39303 "parsing/parser.ml" +# 40361 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39345,9 +40403,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _p : unit = Obj.magic _p in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 39351 "parsing/parser.ml" +# 40409 "parsing/parser.ml" ) = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -39355,34 +40413,34 @@ module Tables = struct let _endpos = _endpos__e_ in let _v : (Parsetree.expression) = let _1 = let _4 = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 39361 "parsing/parser.ml" +# 40419 "parsing/parser.ml" in let _2 = let _1 = # 124 "" ( None ) -# 39367 "parsing/parser.ml" +# 40425 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 39372 "parsing/parser.ml" +# 40430 "parsing/parser.ml" in let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2380 "parsing/parser.mly" +# 2453 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Bracket _loc__e_ ) -# 39380 "parsing/parser.ml" +# 40438 "parsing/parser.ml" in -# 2485 "parsing/parser.mly" +# 2560 "parsing/parser.mly" ( _1 ) -# 39386 "parsing/parser.ml" +# 40444 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39440,9 +40498,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _p : unit = Obj.magic _p in let _2 : ( -# 770 "parsing/parser.mly" +# 842 "parsing/parser.mly" (string) -# 39446 "parsing/parser.ml" +# 40504 "parsing/parser.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -39452,42 +40510,42 @@ module Tables = struct let _endpos = _endpos__e_ in let _v : (Parsetree.expression) = let _1 = let _4 = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 39458 "parsing/parser.ml" +# 40516 "parsing/parser.ml" in let _2 = let _1 = let _2 = _2_inlined1 in let x = -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" (_2) -# 39466 "parsing/parser.ml" +# 40524 "parsing/parser.ml" in # 126 "" ( Some x ) -# 39471 "parsing/parser.ml" +# 40529 "parsing/parser.ml" in -# 2383 "parsing/parser.mly" +# 2456 "parsing/parser.mly" ( _1, _2 ) -# 39477 "parsing/parser.ml" +# 40535 "parsing/parser.ml" in let _loc__p_ = (_startpos__p_, _endpos__p_) in let _loc__e_ = (_startpos__e_, _endpos__e_) in -# 2380 "parsing/parser.mly" +# 2453 "parsing/parser.mly" ( indexop_unclosed_error _loc__p_ Bracket _loc__e_ ) -# 39485 "parsing/parser.ml" +# 40543 "parsing/parser.ml" in -# 2485 "parsing/parser.mly" +# 2560 "parsing/parser.mly" ( _1 ) -# 39491 "parsing/parser.ml" +# 40549 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39541,15 +40599,15 @@ module Tables = struct let attrs = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 39547 "parsing/parser.ml" +# 40605 "parsing/parser.ml" in -# 2494 "parsing/parser.mly" +# 2569 "parsing/parser.mly" ( e.pexp_desc, (ext, attrs @ e.pexp_attributes) ) -# 39553 "parsing/parser.ml" +# 40611 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -39557,10 +40615,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2487 "parsing/parser.mly" +# 2562 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 39564 "parsing/parser.ml" +# 40622 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39609,24 +40667,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 39615 "parsing/parser.ml" +# 40673 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 39621 "parsing/parser.ml" +# 40679 "parsing/parser.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2496 "parsing/parser.mly" +# 2571 "parsing/parser.mly" ( Pexp_construct (mkloc (Lident "()") (make_loc _sloc), None), _2 ) -# 39630 "parsing/parser.ml" +# 40688 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -39634,10 +40692,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2487 "parsing/parser.mly" +# 2562 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 39641 "parsing/parser.ml" +# 40699 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39693,23 +40751,23 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 39699 "parsing/parser.ml" +# 40757 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 39705 "parsing/parser.ml" +# 40763 "parsing/parser.ml" in let _loc__4_ = (_startpos__4_, _endpos__4_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2498 "parsing/parser.mly" +# 2573 "parsing/parser.mly" ( unclosed "begin" _loc__1_ "end" _loc__4_ ) -# 39713 "parsing/parser.ml" +# 40771 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -39717,10 +40775,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2487 "parsing/parser.mly" +# 2562 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 39724 "parsing/parser.ml" +# 40782 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39770,9 +40828,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 39776 "parsing/parser.ml" +# 40834 "parsing/parser.ml" in let _2 = @@ -39780,21 +40838,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 39786 "parsing/parser.ml" +# 40844 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 39792 "parsing/parser.ml" +# 40850 "parsing/parser.ml" in -# 2500 "parsing/parser.mly" +# 2575 "parsing/parser.mly" ( Pexp_new(_3), _2 ) -# 39798 "parsing/parser.ml" +# 40856 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -39802,10 +40860,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2487 "parsing/parser.mly" +# 2562 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 39809 "parsing/parser.ml" +# 40867 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39868,21 +40926,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 39874 "parsing/parser.ml" +# 40932 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 39880 "parsing/parser.ml" +# 40938 "parsing/parser.ml" in -# 2502 "parsing/parser.mly" +# 2577 "parsing/parser.mly" ( Pexp_pack _4, _3 ) -# 39886 "parsing/parser.ml" +# 40944 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -39890,10 +40948,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2487 "parsing/parser.mly" +# 2562 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 39897 "parsing/parser.ml" +# 40955 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39971,11 +41029,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3686 "parsing/parser.mly" +# 3821 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 39979 "parsing/parser.ml" +# 41037 "parsing/parser.ml" in let _3 = @@ -39983,24 +41041,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 39989 "parsing/parser.ml" +# 41047 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 39995 "parsing/parser.ml" +# 41053 "parsing/parser.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2504 "parsing/parser.mly" +# 2579 "parsing/parser.mly" ( Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _4), _6), _3 ) -# 40004 "parsing/parser.ml" +# 41062 "parsing/parser.ml" in let _endpos__1_ = _endpos__7_ in @@ -40008,10 +41066,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2487 "parsing/parser.mly" +# 2562 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 40015 "parsing/parser.ml" +# 41073 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40081,23 +41139,23 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 40087 "parsing/parser.ml" +# 41145 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 40093 "parsing/parser.ml" +# 41151 "parsing/parser.ml" in let _loc__6_ = (_startpos__6_, _endpos__6_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2506 "parsing/parser.mly" +# 2581 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__6_ ) -# 40101 "parsing/parser.ml" +# 41159 "parsing/parser.ml" in let _endpos__1_ = _endpos__6_ in @@ -40105,10 +41163,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2487 "parsing/parser.mly" +# 2562 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 40112 "parsing/parser.ml" +# 41170 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40173,27 +41231,27 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 40177 "parsing/parser.ml" +# 41235 "parsing/parser.ml" in -# 2026 "parsing/parser.mly" +# 2098 "parsing/parser.mly" ( _1 ) -# 40182 "parsing/parser.ml" +# 41240 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 969 "parsing/parser.mly" +# 1041 "parsing/parser.mly" ( extra_cstr _startpos _endpos _1 ) -# 40191 "parsing/parser.ml" +# 41249 "parsing/parser.ml" in -# 2013 "parsing/parser.mly" +# 2085 "parsing/parser.mly" ( Cstr.mk _1 _2 ) -# 40197 "parsing/parser.ml" +# 41255 "parsing/parser.ml" in let _2 = @@ -40201,21 +41259,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 40207 "parsing/parser.ml" +# 41265 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 40213 "parsing/parser.ml" +# 41271 "parsing/parser.ml" in -# 2508 "parsing/parser.mly" +# 2583 "parsing/parser.mly" ( Pexp_object _3, _2 ) -# 40219 "parsing/parser.ml" +# 41277 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -40223,10 +41281,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2487 "parsing/parser.mly" +# 2562 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 40230 "parsing/parser.ml" +# 41288 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40291,27 +41349,27 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 40295 "parsing/parser.ml" +# 41353 "parsing/parser.ml" in -# 2026 "parsing/parser.mly" +# 2098 "parsing/parser.mly" ( _1 ) -# 40300 "parsing/parser.ml" +# 41358 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 969 "parsing/parser.mly" +# 1041 "parsing/parser.mly" ( extra_cstr _startpos _endpos _1 ) -# 40309 "parsing/parser.ml" +# 41367 "parsing/parser.ml" in -# 2013 "parsing/parser.mly" +# 2085 "parsing/parser.mly" ( Cstr.mk _1 _2 ) -# 40315 "parsing/parser.ml" +# 41373 "parsing/parser.ml" in let _2 = @@ -40319,23 +41377,23 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 40325 "parsing/parser.ml" +# 41383 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 40331 "parsing/parser.ml" +# 41389 "parsing/parser.ml" in let _loc__4_ = (_startpos__4_, _endpos__4_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2510 "parsing/parser.mly" +# 2585 "parsing/parser.mly" ( unclosed "object" _loc__1_ "end" _loc__4_ ) -# 40339 "parsing/parser.ml" +# 41397 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -40343,10 +41401,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2487 "parsing/parser.mly" +# 2562 "parsing/parser.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 40350 "parsing/parser.ml" +# 41408 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40375,30 +41433,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 40381 "parsing/parser.ml" +# 41439 "parsing/parser.ml" in -# 2543 "parsing/parser.mly" +# 2618 "parsing/parser.mly" ( Pexp_ident (_1) ) -# 40387 "parsing/parser.ml" +# 41445 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40396 "parsing/parser.ml" +# 41454 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 40402 "parsing/parser.ml" +# 41460 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40422,23 +41480,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2545 "parsing/parser.mly" +# 2620 "parsing/parser.mly" ( Pexp_constant _1 ) -# 40428 "parsing/parser.ml" +# 41486 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40436 "parsing/parser.ml" +# 41494 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 40442 "parsing/parser.ml" +# 41500 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40467,30 +41525,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 40473 "parsing/parser.ml" +# 41531 "parsing/parser.ml" in -# 2547 "parsing/parser.mly" +# 2622 "parsing/parser.mly" ( Pexp_construct(_1, None) ) -# 40479 "parsing/parser.ml" +# 41537 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40488 "parsing/parser.ml" +# 41546 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 40494 "parsing/parser.ml" +# 41552 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40514,23 +41572,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2549 "parsing/parser.mly" +# 2624 "parsing/parser.mly" ( Pexp_variant(_1, None) ) -# 40520 "parsing/parser.ml" +# 41578 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40528 "parsing/parser.ml" +# 41586 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 40534 "parsing/parser.ml" +# 41592 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40556,9 +41614,9 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : ( -# 815 "parsing/parser.mly" +# 887 "parsing/parser.mly" (string) -# 40562 "parsing/parser.ml" +# 41620 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -40570,15 +41628,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 40576 "parsing/parser.ml" +# 41634 "parsing/parser.ml" in -# 2551 "parsing/parser.mly" +# 2626 "parsing/parser.mly" ( Pexp_apply(_1, [Nolabel,_2]) ) -# 40582 "parsing/parser.ml" +# 41640 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -40586,15 +41644,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40592 "parsing/parser.ml" +# 41650 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 40598 "parsing/parser.ml" +# 41656 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40627,23 +41685,23 @@ module Tables = struct let _1 = let _1 = let _1 = -# 2552 "parsing/parser.mly" +# 2627 "parsing/parser.mly" ("!") -# 40633 "parsing/parser.ml" +# 41691 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 40641 "parsing/parser.ml" +# 41699 "parsing/parser.ml" in -# 2553 "parsing/parser.mly" +# 2628 "parsing/parser.mly" ( Pexp_apply(_1, [Nolabel,_2]) ) -# 40647 "parsing/parser.ml" +# 41705 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in @@ -40651,15 +41709,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40657 "parsing/parser.ml" +# 41715 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 40663 "parsing/parser.ml" +# 41721 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40698,14 +41756,14 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _2 = -# 2847 "parsing/parser.mly" +# 2928 "parsing/parser.mly" ( xs ) -# 40704 "parsing/parser.ml" +# 41762 "parsing/parser.ml" in -# 2555 "parsing/parser.mly" +# 2630 "parsing/parser.mly" ( Pexp_override _2 ) -# 40709 "parsing/parser.ml" +# 41767 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -40713,15 +41771,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40719 "parsing/parser.ml" +# 41777 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 40725 "parsing/parser.ml" +# 41783 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40760,16 +41818,16 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _2 = -# 2847 "parsing/parser.mly" +# 2928 "parsing/parser.mly" ( xs ) -# 40766 "parsing/parser.ml" +# 41824 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2557 "parsing/parser.mly" +# 2632 "parsing/parser.mly" ( unclosed "{<" _loc__1_ ">}" _loc__3_ ) -# 40773 "parsing/parser.ml" +# 41831 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -40777,15 +41835,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40783 "parsing/parser.ml" +# 41841 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 40789 "parsing/parser.ml" +# 41847 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40816,24 +41874,24 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2559 "parsing/parser.mly" +# 2634 "parsing/parser.mly" ( Pexp_override [] ) -# 40822 "parsing/parser.ml" +# 41880 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40831 "parsing/parser.ml" +# 41889 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 40837 "parsing/parser.ml" +# 41895 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40877,15 +41935,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 40883 "parsing/parser.ml" +# 41941 "parsing/parser.ml" in -# 2561 "parsing/parser.mly" +# 2636 "parsing/parser.mly" ( Pexp_field(_1, _3) ) -# 40889 "parsing/parser.ml" +# 41947 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -40893,15 +41951,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40899 "parsing/parser.ml" +# 41957 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 40905 "parsing/parser.ml" +# 41963 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40959,24 +42017,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 40965 "parsing/parser.ml" +# 42023 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1678 "parsing/parser.mly" +# 1750 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 40974 "parsing/parser.ml" +# 42032 "parsing/parser.ml" in -# 2563 "parsing/parser.mly" +# 2638 "parsing/parser.mly" ( Pexp_open(od, _4) ) -# 40980 "parsing/parser.ml" +# 42038 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -40984,15 +42042,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 40990 "parsing/parser.ml" +# 42048 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 40996 "parsing/parser.ml" +# 42054 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41045,9 +42103,9 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _4 = -# 2847 "parsing/parser.mly" +# 2928 "parsing/parser.mly" ( xs ) -# 41051 "parsing/parser.ml" +# 42109 "parsing/parser.ml" in let od = let _1 = @@ -41055,18 +42113,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 41061 "parsing/parser.ml" +# 42119 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1678 "parsing/parser.mly" +# 1750 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 41070 "parsing/parser.ml" +# 42128 "parsing/parser.ml" in let _startpos_od_ = _startpos__1_ in @@ -41074,10 +42132,10 @@ module Tables = struct let _symbolstartpos = _startpos_od_ in let _sloc = (_symbolstartpos, _endpos) in -# 2565 "parsing/parser.mly" +# 2640 "parsing/parser.mly" ( (* TODO: review the location of Pexp_override *) Pexp_open(od, mkexp ~loc:_sloc (Pexp_override _4)) ) -# 41081 "parsing/parser.ml" +# 42139 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -41085,15 +42143,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41091 "parsing/parser.ml" +# 42149 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 41097 "parsing/parser.ml" +# 42155 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41146,16 +42204,16 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _4 = -# 2847 "parsing/parser.mly" +# 2928 "parsing/parser.mly" ( xs ) -# 41152 "parsing/parser.ml" +# 42210 "parsing/parser.ml" in let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2568 "parsing/parser.mly" +# 2643 "parsing/parser.mly" ( unclosed "{<" _loc__3_ ">}" _loc__5_ ) -# 41159 "parsing/parser.ml" +# 42217 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -41163,15 +42221,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41169 "parsing/parser.ml" +# 42227 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 41175 "parsing/parser.ml" +# 42233 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41202,9 +42260,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 41208 "parsing/parser.ml" +# 42266 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -41216,23 +42274,23 @@ module Tables = struct let _3 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 41222 "parsing/parser.ml" +# 42280 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 41230 "parsing/parser.ml" +# 42288 "parsing/parser.ml" in -# 2570 "parsing/parser.mly" +# 2645 "parsing/parser.mly" ( Pexp_send(_1, _3) ) -# 41236 "parsing/parser.ml" +# 42294 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -41240,15 +42298,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41246 "parsing/parser.ml" +# 42304 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 41252 "parsing/parser.ml" +# 42310 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41280,9 +42338,9 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined1 : ( -# 826 "parsing/parser.mly" +# 898 "parsing/parser.mly" (string) -# 41286 "parsing/parser.ml" +# 42344 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -41296,15 +42354,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1002 "parsing/parser.mly" +# 1074 "parsing/parser.mly" ( mkoperator ~loc:_sloc _1 ) -# 41302 "parsing/parser.ml" +# 42360 "parsing/parser.ml" in -# 2572 "parsing/parser.mly" +# 2647 "parsing/parser.mly" ( mkinfix _1 _2 _3 ) -# 41308 "parsing/parser.ml" +# 42366 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -41312,15 +42370,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41318 "parsing/parser.ml" +# 42376 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 41324 "parsing/parser.ml" +# 42382 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41344,23 +42402,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2574 "parsing/parser.mly" +# 2649 "parsing/parser.mly" ( Pexp_extension _1 ) -# 41350 "parsing/parser.ml" +# 42408 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41358 "parsing/parser.ml" +# 42416 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 41364 "parsing/parser.ml" +# 42422 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41408,18 +42466,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 2575 "parsing/parser.mly" +# 2650 "parsing/parser.mly" (Lident "()") -# 41414 "parsing/parser.ml" +# 42472 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 41423 "parsing/parser.ml" +# 42481 "parsing/parser.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in @@ -41429,25 +42487,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 41435 "parsing/parser.ml" +# 42493 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1678 "parsing/parser.mly" +# 1750 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 41444 "parsing/parser.ml" +# 42502 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2576 "parsing/parser.mly" +# 2651 "parsing/parser.mly" ( Pexp_open(od, mkexp ~loc:(_loc__3_) (Pexp_construct(_3, None))) ) -# 41451 "parsing/parser.ml" +# 42509 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -41455,15 +42513,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41461 "parsing/parser.ml" +# 42519 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 41467 "parsing/parser.ml" +# 42525 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41518,9 +42576,9 @@ module Tables = struct let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2578 "parsing/parser.mly" +# 2653 "parsing/parser.mly" ( unclosed "(" _loc__3_ ")" _loc__5_ ) -# 41524 "parsing/parser.ml" +# 42582 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -41528,15 +42586,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41534 "parsing/parser.ml" +# 42592 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 41540 "parsing/parser.ml" +# 42598 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41575,25 +42633,25 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2580 "parsing/parser.mly" +# 2655 "parsing/parser.mly" ( let (exten, fields) = _2 in Pexp_record(fields, exten) ) -# 41582 "parsing/parser.ml" +# 42640 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41591 "parsing/parser.ml" +# 42649 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 41597 "parsing/parser.ml" +# 42655 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41635,9 +42693,9 @@ module Tables = struct let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2583 "parsing/parser.mly" +# 2658 "parsing/parser.mly" ( unclosed "{" _loc__1_ "}" _loc__3_ ) -# 41641 "parsing/parser.ml" +# 42699 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -41645,15 +42703,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41651 "parsing/parser.ml" +# 42709 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 41657 "parsing/parser.ml" +# 42715 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41712,27 +42770,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 41718 "parsing/parser.ml" +# 42776 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1678 "parsing/parser.mly" +# 1750 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 41727 "parsing/parser.ml" +# 42785 "parsing/parser.ml" in let _endpos = _endpos__5_ in -# 2585 "parsing/parser.mly" +# 2660 "parsing/parser.mly" ( let (exten, fields) = _4 in Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos) (Pexp_record(fields, exten))) ) -# 41736 "parsing/parser.ml" +# 42794 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -41740,15 +42798,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41746 "parsing/parser.ml" +# 42804 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 41752 "parsing/parser.ml" +# 42810 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41804,9 +42862,9 @@ module Tables = struct let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2589 "parsing/parser.mly" +# 2664 "parsing/parser.mly" ( unclosed "{" _loc__3_ "}" _loc__5_ ) -# 41810 "parsing/parser.ml" +# 42868 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -41814,15 +42872,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41820 "parsing/parser.ml" +# 42878 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 41826 "parsing/parser.ml" +# 42884 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41861,14 +42919,14 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _2 = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 41867 "parsing/parser.ml" +# 42925 "parsing/parser.ml" in -# 2591 "parsing/parser.mly" +# 2666 "parsing/parser.mly" ( Pexp_array(_2) ) -# 41872 "parsing/parser.ml" +# 42930 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -41876,15 +42934,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41882 "parsing/parser.ml" +# 42940 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 41888 "parsing/parser.ml" +# 42946 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41923,16 +42981,16 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _2 = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 41929 "parsing/parser.ml" +# 42987 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2593 "parsing/parser.mly" +# 2668 "parsing/parser.mly" ( unclosed "[|" _loc__1_ "|]" _loc__3_ ) -# 41936 "parsing/parser.ml" +# 42994 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -41940,15 +42998,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41946 "parsing/parser.ml" +# 43004 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 41952 "parsing/parser.ml" +# 43010 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -41979,24 +43037,24 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = let _1 = let _1 = -# 2595 "parsing/parser.mly" +# 2670 "parsing/parser.mly" ( Pexp_array [] ) -# 41985 "parsing/parser.ml" +# 43043 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 41994 "parsing/parser.ml" +# 43052 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 42000 "parsing/parser.ml" +# 43058 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42049,9 +43107,9 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _4 = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 42055 "parsing/parser.ml" +# 43113 "parsing/parser.ml" in let od = let _1 = @@ -42059,25 +43117,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 42065 "parsing/parser.ml" +# 43123 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1678 "parsing/parser.mly" +# 1750 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 42074 "parsing/parser.ml" +# 43132 "parsing/parser.ml" in let _endpos = _endpos__5_ in -# 2597 "parsing/parser.mly" +# 2672 "parsing/parser.mly" ( Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos) (Pexp_array(_4))) ) -# 42081 "parsing/parser.ml" +# 43139 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -42085,15 +43143,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42091 "parsing/parser.ml" +# 43149 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 42097 "parsing/parser.ml" +# 43155 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42144,26 +43202,26 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 42150 "parsing/parser.ml" +# 43208 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1678 "parsing/parser.mly" +# 1750 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 42159 "parsing/parser.ml" +# 43217 "parsing/parser.ml" in let _endpos = _endpos__4_ in -# 2599 "parsing/parser.mly" +# 2674 "parsing/parser.mly" ( (* TODO: review the location of Pexp_array *) Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos) (Pexp_array [])) ) -# 42167 "parsing/parser.ml" +# 43225 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -42171,15 +43229,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42177 "parsing/parser.ml" +# 43235 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 42183 "parsing/parser.ml" +# 43241 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42232,16 +43290,16 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _4 = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 42238 "parsing/parser.ml" +# 43296 "parsing/parser.ml" in let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2603 "parsing/parser.mly" +# 2678 "parsing/parser.mly" ( unclosed "[|" _loc__3_ "|]" _loc__5_ ) -# 42245 "parsing/parser.ml" +# 43303 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -42249,15 +43307,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42255 "parsing/parser.ml" +# 43313 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 42261 "parsing/parser.ml" +# 43319 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42296,15 +43354,15 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _2 = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 42302 "parsing/parser.ml" +# 43360 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2605 "parsing/parser.mly" +# 2680 "parsing/parser.mly" ( fst (mktailexp _loc__3_ _2) ) -# 42308 "parsing/parser.ml" +# 43366 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -42312,15 +43370,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42318 "parsing/parser.ml" +# 43376 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 42324 "parsing/parser.ml" +# 43382 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42359,16 +43417,16 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _2 = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 42365 "parsing/parser.ml" +# 43423 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2607 "parsing/parser.mly" +# 2682 "parsing/parser.mly" ( unclosed "[" _loc__1_ "]" _loc__3_ ) -# 42372 "parsing/parser.ml" +# 43430 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -42376,15 +43434,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42382 "parsing/parser.ml" +# 43440 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 42388 "parsing/parser.ml" +# 43446 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42427,17 +43485,17 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2532 "parsing/parser.mly" +# 2607 "parsing/parser.mly" ( Pexp_extension( Extensions.payload_of_extension_expr ~loc:(make_loc _sloc) (Eexp_list_comprehension(_2, _3))) ) -# 42435 "parsing/parser.ml" +# 43493 "parsing/parser.ml" in -# 2608 "parsing/parser.mly" +# 2683 "parsing/parser.mly" ( _1 ) -# 42441 "parsing/parser.ml" +# 43499 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -42445,15 +43503,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42451 "parsing/parser.ml" +# 43509 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 42457 "parsing/parser.ml" +# 43515 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42496,17 +43554,17 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2536 "parsing/parser.mly" +# 2611 "parsing/parser.mly" ( Pexp_extension( Extensions.payload_of_extension_expr ~loc:(make_loc _sloc) (Eexp_arr_comprehension(_2, _3))) ) -# 42504 "parsing/parser.ml" +# 43562 "parsing/parser.ml" in -# 2608 "parsing/parser.mly" +# 2683 "parsing/parser.mly" ( _1 ) -# 42510 "parsing/parser.ml" +# 43568 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -42514,15 +43572,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42520 "parsing/parser.ml" +# 43578 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 42526 "parsing/parser.ml" +# 43584 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42580,11 +43638,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2532 "parsing/parser.mly" +# 2607 "parsing/parser.mly" ( Pexp_extension( Extensions.payload_of_extension_expr ~loc:(make_loc _sloc) (Eexp_list_comprehension(_2, _3))) ) -# 42588 "parsing/parser.ml" +# 43646 "parsing/parser.ml" in let _startpos__3_ = _startpos__1_inlined1_ in @@ -42594,25 +43652,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 42600 "parsing/parser.ml" +# 43658 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1678 "parsing/parser.mly" +# 1750 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 42609 "parsing/parser.ml" +# 43667 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2610 "parsing/parser.mly" +# 2685 "parsing/parser.mly" ( Pexp_open(od, mkexp ~loc:(_loc__3_) _3) ) -# 42616 "parsing/parser.ml" +# 43674 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -42620,15 +43678,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42626 "parsing/parser.ml" +# 43684 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 42632 "parsing/parser.ml" +# 43690 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42686,11 +43744,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2536 "parsing/parser.mly" +# 2611 "parsing/parser.mly" ( Pexp_extension( Extensions.payload_of_extension_expr ~loc:(make_loc _sloc) (Eexp_arr_comprehension(_2, _3))) ) -# 42694 "parsing/parser.ml" +# 43752 "parsing/parser.ml" in let _startpos__3_ = _startpos__1_inlined1_ in @@ -42700,25 +43758,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 42706 "parsing/parser.ml" +# 43764 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1678 "parsing/parser.mly" +# 1750 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 42715 "parsing/parser.ml" +# 43773 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2610 "parsing/parser.mly" +# 2685 "parsing/parser.mly" ( Pexp_open(od, mkexp ~loc:(_loc__3_) _3) ) -# 42722 "parsing/parser.ml" +# 43780 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -42726,15 +43784,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42732 "parsing/parser.ml" +# 43790 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 42738 "parsing/parser.ml" +# 43796 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42787,9 +43845,9 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _4 = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 42793 "parsing/parser.ml" +# 43851 "parsing/parser.ml" in let od = let _1 = @@ -42797,30 +43855,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 42803 "parsing/parser.ml" +# 43861 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1678 "parsing/parser.mly" +# 1750 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 42812 "parsing/parser.ml" +# 43870 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _loc__5_ = (_startpos__5_, _endpos__5_) in -# 2612 "parsing/parser.mly" +# 2687 "parsing/parser.mly" ( let list_exp = (* TODO: review the location of list_exp *) let tail_exp, _tail_loc = mktailexp _loc__5_ _4 in mkexp ~loc:(_startpos__3_, _endpos) tail_exp in Pexp_open(od, list_exp) ) -# 42824 "parsing/parser.ml" +# 43882 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -42828,15 +43886,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42834 "parsing/parser.ml" +# 43892 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 42840 "parsing/parser.ml" +# 43898 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42884,18 +43942,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 2617 "parsing/parser.mly" +# 2692 "parsing/parser.mly" (Lident "[]") -# 42890 "parsing/parser.ml" +# 43948 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 42899 "parsing/parser.ml" +# 43957 "parsing/parser.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in @@ -42905,25 +43963,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 42911 "parsing/parser.ml" +# 43969 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1678 "parsing/parser.mly" +# 1750 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 42920 "parsing/parser.ml" +# 43978 "parsing/parser.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2618 "parsing/parser.mly" +# 2693 "parsing/parser.mly" ( Pexp_open(od, mkexp ~loc:_loc__3_ (Pexp_construct(_3, None))) ) -# 42927 "parsing/parser.ml" +# 43985 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -42931,15 +43989,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 42937 "parsing/parser.ml" +# 43995 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 42943 "parsing/parser.ml" +# 44001 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -42992,16 +44050,16 @@ module Tables = struct let _v : (Parsetree.expression) = let _1 = let _1 = let _4 = -# 2864 "parsing/parser.mly" +# 2945 "parsing/parser.mly" ( es ) -# 42998 "parsing/parser.ml" +# 44056 "parsing/parser.ml" in let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2621 "parsing/parser.mly" +# 2696 "parsing/parser.mly" ( unclosed "[" _loc__3_ "]" _loc__5_ ) -# 43005 "parsing/parser.ml" +# 44063 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -43009,15 +44067,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 43015 "parsing/parser.ml" +# 44073 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 43021 "parsing/parser.ml" +# 44079 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43110,11 +44168,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3686 "parsing/parser.mly" +# 3821 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 43118 "parsing/parser.ml" +# 44176 "parsing/parser.ml" in let _5 = @@ -43122,15 +44180,15 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 43128 "parsing/parser.ml" +# 44186 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 43134 "parsing/parser.ml" +# 44192 "parsing/parser.ml" in let od = @@ -43139,18 +44197,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 43145 "parsing/parser.ml" +# 44203 "parsing/parser.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 1678 "parsing/parser.mly" +# 1750 "parsing/parser.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 43154 "parsing/parser.ml" +# 44212 "parsing/parser.ml" in let _startpos_od_ = _startpos__1_ in @@ -43158,12 +44216,12 @@ module Tables = struct let _symbolstartpos = _startpos_od_ in let _sloc = (_symbolstartpos, _endpos) in -# 2624 "parsing/parser.mly" +# 2699 "parsing/parser.mly" ( let modexp = mkexp_attrs ~loc:(_startpos__3_, _endpos) (Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _6), _8)) _5 in Pexp_open(od, modexp) ) -# 43167 "parsing/parser.ml" +# 44225 "parsing/parser.ml" in let _endpos__1_ = _endpos__9_ in @@ -43171,15 +44229,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 43177 "parsing/parser.ml" +# 44235 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 43183 "parsing/parser.ml" +# 44241 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43264,23 +44322,23 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 43270 "parsing/parser.ml" +# 44328 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 43276 "parsing/parser.ml" +# 44334 "parsing/parser.ml" in let _loc__8_ = (_startpos__8_, _endpos__8_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2630 "parsing/parser.mly" +# 2705 "parsing/parser.mly" ( unclosed "(" _loc__3_ ")" _loc__8_ ) -# 43284 "parsing/parser.ml" +# 44342 "parsing/parser.ml" in let _endpos__1_ = _endpos__8_ in @@ -43288,15 +44346,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1008 "parsing/parser.mly" +# 1080 "parsing/parser.mly" ( mkexp ~loc:_sloc _1 ) -# 43294 "parsing/parser.ml" +# 44352 "parsing/parser.ml" in -# 2490 "parsing/parser.mly" +# 2565 "parsing/parser.mly" ( _1 ) -# 43300 "parsing/parser.ml" +# 44358 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43325,30 +44383,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 43331 "parsing/parser.ml" +# 44389 "parsing/parser.ml" in -# 2947 "parsing/parser.mly" +# 3039 "parsing/parser.mly" ( Ppat_var (_1) ) -# 43337 "parsing/parser.ml" +# 44395 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 43346 "parsing/parser.ml" +# 44404 "parsing/parser.ml" in -# 2948 "parsing/parser.mly" +# 3040 "parsing/parser.mly" ( _1 ) -# 43352 "parsing/parser.ml" +# 44410 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43371,9 +44429,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 2949 "parsing/parser.mly" +# 3041 "parsing/parser.mly" ( _1 ) -# 43377 "parsing/parser.ml" +# 44435 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43413,9 +44471,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2954 "parsing/parser.mly" +# 3046 "parsing/parser.mly" ( reloc_pat ~loc:_sloc _2 ) -# 43419 "parsing/parser.ml" +# 44477 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43438,9 +44496,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 2956 "parsing/parser.mly" +# 3048 "parsing/parser.mly" ( _1 ) -# 43444 "parsing/parser.ml" +# 44502 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43503,9 +44561,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 43509 "parsing/parser.ml" +# 44567 "parsing/parser.ml" in let _3 = @@ -43513,24 +44571,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 43519 "parsing/parser.ml" +# 44577 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 43525 "parsing/parser.ml" +# 44583 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2958 "parsing/parser.mly" +# 3050 "parsing/parser.mly" ( mkpat_attrs ~loc:_sloc (Ppat_unpack _4) _3 ) -# 43534 "parsing/parser.ml" +# 44592 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43607,11 +44665,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3686 "parsing/parser.mly" +# 3821 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 43615 "parsing/parser.ml" +# 44673 "parsing/parser.ml" in let _4 = @@ -43620,9 +44678,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 43626 "parsing/parser.ml" +# 44684 "parsing/parser.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__1_inlined3_, _startpos__1_inlined3_) in @@ -43631,15 +44689,15 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 43637 "parsing/parser.ml" +# 44695 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 43643 "parsing/parser.ml" +# 44701 "parsing/parser.ml" in let _endpos = _endpos__7_ in @@ -43647,11 +44705,11 @@ module Tables = struct let _loc__4_ = (_startpos__4_, _endpos__4_) in let _sloc = (_symbolstartpos, _endpos) in -# 2960 "parsing/parser.mly" +# 3052 "parsing/parser.mly" ( mkpat_attrs ~loc:_sloc (Ppat_constraint(mkpat ~loc:_loc__4_ (Ppat_unpack _4), _6)) _3 ) -# 43655 "parsing/parser.ml" +# 44713 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43675,23 +44733,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 2968 "parsing/parser.mly" +# 3060 "parsing/parser.mly" ( Ppat_any ) -# 43681 "parsing/parser.ml" +# 44739 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 43689 "parsing/parser.ml" +# 44747 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 43695 "parsing/parser.ml" +# 44753 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43715,23 +44773,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 2970 "parsing/parser.mly" +# 3062 "parsing/parser.mly" ( Ppat_constant _1 ) -# 43721 "parsing/parser.ml" +# 44779 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 43729 "parsing/parser.ml" +# 44787 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 43735 "parsing/parser.ml" +# 44793 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43769,24 +44827,24 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 2972 "parsing/parser.mly" +# 3064 "parsing/parser.mly" ( Ppat_interval (_1, _3) ) -# 43775 "parsing/parser.ml" +# 44833 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 43784 "parsing/parser.ml" +# 44842 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 43790 "parsing/parser.ml" +# 44848 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43815,30 +44873,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 43821 "parsing/parser.ml" +# 44879 "parsing/parser.ml" in -# 2974 "parsing/parser.mly" +# 3066 "parsing/parser.mly" ( Ppat_construct(_1, None) ) -# 43827 "parsing/parser.ml" +# 44885 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 43836 "parsing/parser.ml" +# 44894 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 43842 "parsing/parser.ml" +# 44900 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43862,23 +44920,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 2976 "parsing/parser.mly" +# 3068 "parsing/parser.mly" ( Ppat_variant(_1, None) ) -# 43868 "parsing/parser.ml" +# 44926 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 43876 "parsing/parser.ml" +# 44934 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 43882 "parsing/parser.ml" +# 44940 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43915,15 +44973,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 43921 "parsing/parser.ml" +# 44979 "parsing/parser.ml" in -# 2978 "parsing/parser.mly" +# 3070 "parsing/parser.mly" ( Ppat_type (_2) ) -# 43927 "parsing/parser.ml" +# 44985 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -43931,15 +44989,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 43937 "parsing/parser.ml" +# 44995 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 43943 "parsing/parser.ml" +# 45001 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -43982,15 +45040,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 43988 "parsing/parser.ml" +# 45046 "parsing/parser.ml" in -# 2980 "parsing/parser.mly" +# 3072 "parsing/parser.mly" ( Ppat_open(_1, _3) ) -# 43994 "parsing/parser.ml" +# 45052 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -43998,15 +45056,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44004 "parsing/parser.ml" +# 45062 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 44010 "parsing/parser.ml" +# 45068 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44054,18 +45112,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 2981 "parsing/parser.mly" +# 3073 "parsing/parser.mly" (Lident "[]") -# 44060 "parsing/parser.ml" +# 45118 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 44069 "parsing/parser.ml" +# 45127 "parsing/parser.ml" in let _endpos__3_ = _endpos__2_inlined1_ in @@ -44074,18 +45132,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 44080 "parsing/parser.ml" +# 45138 "parsing/parser.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2982 "parsing/parser.mly" +# 3074 "parsing/parser.mly" ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) -# 44089 "parsing/parser.ml" +# 45147 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -44093,15 +45151,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44099 "parsing/parser.ml" +# 45157 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 44105 "parsing/parser.ml" +# 45163 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44149,18 +45207,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 2983 "parsing/parser.mly" +# 3075 "parsing/parser.mly" (Lident "()") -# 44155 "parsing/parser.ml" +# 45213 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 44164 "parsing/parser.ml" +# 45222 "parsing/parser.ml" in let _endpos__3_ = _endpos__2_inlined1_ in @@ -44169,18 +45227,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 44175 "parsing/parser.ml" +# 45233 "parsing/parser.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2984 "parsing/parser.mly" +# 3076 "parsing/parser.mly" ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) -# 44184 "parsing/parser.ml" +# 45242 "parsing/parser.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -44188,15 +45246,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44194 "parsing/parser.ml" +# 45252 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 44200 "parsing/parser.ml" +# 45258 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44253,15 +45311,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 44259 "parsing/parser.ml" +# 45317 "parsing/parser.ml" in -# 2986 "parsing/parser.mly" +# 3078 "parsing/parser.mly" ( Ppat_open (_1, _4) ) -# 44265 "parsing/parser.ml" +# 45323 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -44269,15 +45327,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44275 "parsing/parser.ml" +# 45333 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 44281 "parsing/parser.ml" +# 45339 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44332,9 +45390,9 @@ module Tables = struct let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 2988 "parsing/parser.mly" +# 3080 "parsing/parser.mly" ( unclosed "(" _loc__3_ ")" _loc__5_ ) -# 44338 "parsing/parser.ml" +# 45396 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -44342,15 +45400,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44348 "parsing/parser.ml" +# 45406 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 44354 "parsing/parser.ml" +# 45412 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44397,9 +45455,9 @@ module Tables = struct let _1 = let _loc__4_ = (_startpos__4_, _endpos__4_) in -# 2990 "parsing/parser.mly" +# 3082 "parsing/parser.mly" ( expecting _loc__4_ "pattern" ) -# 44403 "parsing/parser.ml" +# 45461 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -44407,15 +45465,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44413 "parsing/parser.ml" +# 45471 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 44419 "parsing/parser.ml" +# 45477 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44456,9 +45514,9 @@ module Tables = struct let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2992 "parsing/parser.mly" +# 3084 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__3_ ) -# 44462 "parsing/parser.ml" +# 45520 "parsing/parser.ml" in let _endpos__1_ = _endpos__3_ in @@ -44466,15 +45524,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44472 "parsing/parser.ml" +# 45530 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 44478 "parsing/parser.ml" +# 45536 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44526,24 +45584,24 @@ module Tables = struct let _endpos = _endpos__5_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 2994 "parsing/parser.mly" +# 3086 "parsing/parser.mly" ( Ppat_constraint(_2, _4) ) -# 44532 "parsing/parser.ml" +# 45590 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44541 "parsing/parser.ml" +# 45599 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 44547 "parsing/parser.ml" +# 45605 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44598,9 +45656,9 @@ module Tables = struct let _loc__5_ = (_startpos__5_, _endpos__5_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2996 "parsing/parser.mly" +# 3088 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__5_ ) -# 44604 "parsing/parser.ml" +# 45662 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -44608,15 +45666,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44614 "parsing/parser.ml" +# 45672 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 44620 "parsing/parser.ml" +# 45678 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44663,9 +45721,9 @@ module Tables = struct let _1 = let _loc__4_ = (_startpos__4_, _endpos__4_) in -# 2998 "parsing/parser.mly" +# 3090 "parsing/parser.mly" ( expecting _loc__4_ "type" ) -# 44669 "parsing/parser.ml" +# 45727 "parsing/parser.ml" in let _endpos__1_ = _endpos__4_ in @@ -44673,15 +45731,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44679 "parsing/parser.ml" +# 45737 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 44685 "parsing/parser.ml" +# 45743 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44760,11 +45818,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3686 "parsing/parser.mly" +# 3821 "parsing/parser.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 44768 "parsing/parser.ml" +# 45826 "parsing/parser.ml" in let _3 = @@ -44772,23 +45830,23 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 44778 "parsing/parser.ml" +# 45836 "parsing/parser.ml" in -# 4128 "parsing/parser.mly" +# 4270 "parsing/parser.mly" ( _1, _2 ) -# 44784 "parsing/parser.ml" +# 45842 "parsing/parser.ml" in let _loc__7_ = (_startpos__7_, _endpos__7_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3001 "parsing/parser.mly" +# 3093 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__7_ ) -# 44792 "parsing/parser.ml" +# 45850 "parsing/parser.ml" in let _endpos__1_ = _endpos__7_ in @@ -44796,15 +45854,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44802 "parsing/parser.ml" +# 45860 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 44808 "parsing/parser.ml" +# 45866 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44828,23 +45886,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = let _1 = let _1 = -# 3003 "parsing/parser.mly" +# 3095 "parsing/parser.mly" ( Ppat_extension _1 ) -# 44834 "parsing/parser.ml" +# 45892 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1010 "parsing/parser.mly" +# 1082 "parsing/parser.mly" ( mkpat ~loc:_sloc _1 ) -# 44842 "parsing/parser.ml" +# 45900 "parsing/parser.ml" in -# 2964 "parsing/parser.mly" +# 3056 "parsing/parser.mly" ( _1 ) -# 44848 "parsing/parser.ml" +# 45906 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44863,17 +45921,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 44869 "parsing/parser.ml" +# 45927 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4034 "parsing/parser.mly" +# 4176 "parsing/parser.mly" ( _1 ) -# 44877 "parsing/parser.ml" +# 45935 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44892,17 +45950,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 842 "parsing/parser.mly" +# 914 "parsing/parser.mly" (string) -# 44898 "parsing/parser.ml" +# 45956 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4035 "parsing/parser.mly" +# 4177 "parsing/parser.mly" ( _1 ) -# 44906 "parsing/parser.ml" +# 45964 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44925,9 +45983,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4036 "parsing/parser.mly" +# 4178 "parsing/parser.mly" ( "and" ) -# 44931 "parsing/parser.ml" +# 45989 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44950,9 +46008,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4037 "parsing/parser.mly" +# 4179 "parsing/parser.mly" ( "as" ) -# 44956 "parsing/parser.ml" +# 46014 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44975,9 +46033,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4038 "parsing/parser.mly" +# 4180 "parsing/parser.mly" ( "assert" ) -# 44981 "parsing/parser.ml" +# 46039 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45000,9 +46058,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4039 "parsing/parser.mly" +# 4181 "parsing/parser.mly" ( "begin" ) -# 45006 "parsing/parser.ml" +# 46064 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45025,9 +46083,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4040 "parsing/parser.mly" +# 4182 "parsing/parser.mly" ( "class" ) -# 45031 "parsing/parser.ml" +# 46089 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45050,9 +46108,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4041 "parsing/parser.mly" +# 4183 "parsing/parser.mly" ( "constraint" ) -# 45056 "parsing/parser.ml" +# 46114 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45075,9 +46133,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4042 "parsing/parser.mly" +# 4184 "parsing/parser.mly" ( "do" ) -# 45081 "parsing/parser.ml" +# 46139 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45100,9 +46158,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4043 "parsing/parser.mly" +# 4185 "parsing/parser.mly" ( "done" ) -# 45106 "parsing/parser.ml" +# 46164 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45125,9 +46183,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4044 "parsing/parser.mly" +# 4186 "parsing/parser.mly" ( "downto" ) -# 45131 "parsing/parser.ml" +# 46189 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45150,9 +46208,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4045 "parsing/parser.mly" +# 4187 "parsing/parser.mly" ( "else" ) -# 45156 "parsing/parser.ml" +# 46214 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45175,9 +46233,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4046 "parsing/parser.mly" +# 4188 "parsing/parser.mly" ( "end" ) -# 45181 "parsing/parser.ml" +# 46239 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45200,9 +46258,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4047 "parsing/parser.mly" +# 4189 "parsing/parser.mly" ( "exception" ) -# 45206 "parsing/parser.ml" +# 46264 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45225,9 +46283,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4048 "parsing/parser.mly" +# 4190 "parsing/parser.mly" ( "external" ) -# 45231 "parsing/parser.ml" +# 46289 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45250,9 +46308,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4049 "parsing/parser.mly" +# 4191 "parsing/parser.mly" ( "false" ) -# 45256 "parsing/parser.ml" +# 46314 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45275,9 +46333,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4050 "parsing/parser.mly" +# 4192 "parsing/parser.mly" ( "for" ) -# 45281 "parsing/parser.ml" +# 46339 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45300,9 +46358,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4051 "parsing/parser.mly" +# 4193 "parsing/parser.mly" ( "fun" ) -# 45306 "parsing/parser.ml" +# 46364 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45325,9 +46383,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4052 "parsing/parser.mly" +# 4194 "parsing/parser.mly" ( "function" ) -# 45331 "parsing/parser.ml" +# 46389 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45350,9 +46408,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4053 "parsing/parser.mly" +# 4195 "parsing/parser.mly" ( "functor" ) -# 45356 "parsing/parser.ml" +# 46414 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45375,9 +46433,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4054 "parsing/parser.mly" +# 4196 "parsing/parser.mly" ( "nonlocal_" ) -# 45381 "parsing/parser.ml" +# 46439 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45400,9 +46458,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4055 "parsing/parser.mly" +# 4197 "parsing/parser.mly" ( "if" ) -# 45406 "parsing/parser.ml" +# 46464 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45425,9 +46483,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4056 "parsing/parser.mly" +# 4198 "parsing/parser.mly" ( "in" ) -# 45431 "parsing/parser.ml" +# 46489 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45450,9 +46508,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4057 "parsing/parser.mly" +# 4199 "parsing/parser.mly" ( "include" ) -# 45456 "parsing/parser.ml" +# 46514 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45475,9 +46533,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4058 "parsing/parser.mly" +# 4200 "parsing/parser.mly" ( "inherit" ) -# 45481 "parsing/parser.ml" +# 46539 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45500,9 +46558,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4059 "parsing/parser.mly" +# 4201 "parsing/parser.mly" ( "initializer" ) -# 45506 "parsing/parser.ml" +# 46564 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45525,9 +46583,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4060 "parsing/parser.mly" +# 4202 "parsing/parser.mly" ( "lazy" ) -# 45531 "parsing/parser.ml" +# 46589 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45550,9 +46608,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4061 "parsing/parser.mly" +# 4203 "parsing/parser.mly" ( "let" ) -# 45556 "parsing/parser.ml" +# 46614 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45575,9 +46633,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4062 "parsing/parser.mly" +# 4204 "parsing/parser.mly" ( "local_" ) -# 45581 "parsing/parser.ml" +# 46639 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45600,9 +46658,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4063 "parsing/parser.mly" +# 4205 "parsing/parser.mly" ( "match" ) -# 45606 "parsing/parser.ml" +# 46664 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45625,9 +46683,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4064 "parsing/parser.mly" +# 4206 "parsing/parser.mly" ( "method" ) -# 45631 "parsing/parser.ml" +# 46689 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45650,9 +46708,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4065 "parsing/parser.mly" +# 4207 "parsing/parser.mly" ( "module" ) -# 45656 "parsing/parser.ml" +# 46714 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45675,9 +46733,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4066 "parsing/parser.mly" +# 4208 "parsing/parser.mly" ( "mutable" ) -# 45681 "parsing/parser.ml" +# 46739 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45700,9 +46758,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4067 "parsing/parser.mly" +# 4209 "parsing/parser.mly" ( "new" ) -# 45706 "parsing/parser.ml" +# 46764 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45725,9 +46783,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4068 "parsing/parser.mly" +# 4210 "parsing/parser.mly" ( "nonrec" ) -# 45731 "parsing/parser.ml" +# 46789 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45750,9 +46808,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4069 "parsing/parser.mly" +# 4211 "parsing/parser.mly" ( "object" ) -# 45756 "parsing/parser.ml" +# 46814 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45775,9 +46833,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4070 "parsing/parser.mly" +# 4212 "parsing/parser.mly" ( "of" ) -# 45781 "parsing/parser.ml" +# 46839 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45800,9 +46858,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4071 "parsing/parser.mly" +# 4213 "parsing/parser.mly" ( "open" ) -# 45806 "parsing/parser.ml" +# 46864 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45825,9 +46883,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4072 "parsing/parser.mly" +# 4214 "parsing/parser.mly" ( "or" ) -# 45831 "parsing/parser.ml" +# 46889 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45850,9 +46908,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4073 "parsing/parser.mly" +# 4215 "parsing/parser.mly" ( "private" ) -# 45856 "parsing/parser.ml" +# 46914 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45875,9 +46933,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4074 "parsing/parser.mly" +# 4216 "parsing/parser.mly" ( "rec" ) -# 45881 "parsing/parser.ml" +# 46939 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45900,9 +46958,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4075 "parsing/parser.mly" +# 4217 "parsing/parser.mly" ( "sig" ) -# 45906 "parsing/parser.ml" +# 46964 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45925,9 +46983,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4076 "parsing/parser.mly" +# 4218 "parsing/parser.mly" ( "struct" ) -# 45931 "parsing/parser.ml" +# 46989 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45950,9 +47008,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4077 "parsing/parser.mly" +# 4219 "parsing/parser.mly" ( "then" ) -# 45956 "parsing/parser.ml" +# 47014 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -45975,9 +47033,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4078 "parsing/parser.mly" +# 4220 "parsing/parser.mly" ( "to" ) -# 45981 "parsing/parser.ml" +# 47039 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46000,9 +47058,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4079 "parsing/parser.mly" +# 4221 "parsing/parser.mly" ( "true" ) -# 46006 "parsing/parser.ml" +# 47064 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46025,9 +47083,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4080 "parsing/parser.mly" +# 4222 "parsing/parser.mly" ( "try" ) -# 46031 "parsing/parser.ml" +# 47089 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46050,9 +47108,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4081 "parsing/parser.mly" +# 4223 "parsing/parser.mly" ( "type" ) -# 46056 "parsing/parser.ml" +# 47114 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46075,9 +47133,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4082 "parsing/parser.mly" +# 4224 "parsing/parser.mly" ( "val" ) -# 46081 "parsing/parser.ml" +# 47139 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46100,9 +47158,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4083 "parsing/parser.mly" +# 4225 "parsing/parser.mly" ( "virtual" ) -# 46106 "parsing/parser.ml" +# 47164 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46125,9 +47183,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4084 "parsing/parser.mly" +# 4226 "parsing/parser.mly" ( "when" ) -# 46131 "parsing/parser.ml" +# 47189 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46150,9 +47208,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4085 "parsing/parser.mly" +# 4227 "parsing/parser.mly" ( "while" ) -# 46156 "parsing/parser.ml" +# 47214 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46175,9 +47233,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4086 "parsing/parser.mly" +# 4228 "parsing/parser.mly" ( "with" ) -# 46181 "parsing/parser.ml" +# 47239 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46200,9 +47258,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.type_exception * string Asttypes.loc option) = -# 3297 "parsing/parser.mly" +# 3402 "parsing/parser.mly" ( _1 ) -# 46206 "parsing/parser.ml" +# 47264 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46276,18 +47334,18 @@ module Tables = struct let _v : (Parsetree.type_exception * string Asttypes.loc option) = let attrs = let _1 = _1_inlined5 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 46282 "parsing/parser.ml" +# 47340 "parsing/parser.ml" in let _endpos_attrs_ = _endpos__1_inlined5_ in let attrs2 = let _1 = _1_inlined4 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 46291 "parsing/parser.ml" +# 47349 "parsing/parser.ml" in let lid = @@ -46296,9 +47354,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 46302 "parsing/parser.ml" +# 47360 "parsing/parser.ml" in let id = @@ -46307,30 +47365,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 46313 "parsing/parser.ml" +# 47371 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 46321 "parsing/parser.ml" +# 47379 "parsing/parser.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3306 "parsing/parser.mly" +# 3411 "parsing/parser.mly" ( let loc = make_loc _sloc in let docs = symbol_docs _sloc in Te.mk_exception ~attrs (Te.rebind id lid ~attrs:(attrs1 @ attrs2) ~loc ~docs) , ext ) -# 46334 "parsing/parser.ml" +# 47392 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46360,9 +47418,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 2775 "parsing/parser.mly" +# 2850 "parsing/parser.mly" ( _2 ) -# 46366 "parsing/parser.ml" +# 47424 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46395,9 +47453,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2777 "parsing/parser.mly" +# 2852 "parsing/parser.mly" ( let (l, o, p) = _1 in ghexp ~loc:_sloc (Pexp_fun(l, o, p, _2)) ) -# 46401 "parsing/parser.ml" +# 47459 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46420,9 +47478,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -46441,24 +47499,104 @@ module Tables = struct } = _menhir_stack in let _5 : (Parsetree.expression) = Obj.magic _5 in let _4 : unit = Obj.magic _4 in - let xs : (string Asttypes.loc list) = Obj.magic xs in + let _3 : ((string Asttypes.loc * Asttypes.layout_annotation Asttypes.loc option) list) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in - let _v : (Parsetree.expression) = let _3 = -# 2651 "parsing/parser.mly" - ( xs ) -# 46454 "parsing/parser.ml" - in - let _endpos = _endpos__5_ in + let _v : (Parsetree.expression) = let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2779 "parsing/parser.mly" +# 2854 "parsing/parser.mly" ( mk_newtypes ~loc:_sloc _3 _5 ) -# 46462 "parsing/parser.ml" +# 47515 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _7; + MenhirLib.EngineTypes.startp = _startpos__7_; + MenhirLib.EngineTypes.endp = _endpos__7_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _7 : (Parsetree.expression) = Obj.magic _7 in + let _6 : unit = Obj.magic _6 in + let _5 : (Asttypes.layout_annotation Asttypes.loc) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _1_inlined1 : ( +# 861 "parsing/parser.mly" + (string) +# 47576 "parsing/parser.ml" + ) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : unit = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__7_ in + let _v : (Parsetree.expression) = let _3 = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1047 "parsing/parser.mly" + ( mkrhs _1 _sloc ) +# 47591 "parsing/parser.ml" + + in + let _endpos = _endpos__7_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 2856 "parsing/parser.mly" + ( mk_newtypes ~loc:_sloc [_3, Some _5] _7 ) +# 47600 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46523,7 +47661,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -46540,24 +47680,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 46544 "parsing/parser.ml" +# 47684 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 46549 "parsing/parser.ml" +# 47689 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 46555 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 47695 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 46561 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 47701 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -46565,40 +47705,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 46571 "parsing/parser.ml" +# 47711 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 46577 "parsing/parser.ml" +# 47717 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 46584 "parsing/parser.ml" +# 47724 "parsing/parser.ml" in let local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 46590 "parsing/parser.ml" +# 47730 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos_label_, _endpos_label_) in let label = -# 3579 "parsing/parser.mly" +# 3689 "parsing/parser.mly" ( Optional label ) -# 46596 "parsing/parser.ml" +# 47736 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3559 "parsing/parser.mly" +# 3669 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 46602 "parsing/parser.ml" +# 47742 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -46606,15 +47746,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 46612 "parsing/parser.ml" +# 47752 "parsing/parser.ml" in -# 3561 "parsing/parser.mly" +# 3671 "parsing/parser.mly" ( _1 ) -# 46618 "parsing/parser.ml" +# 47758 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46661,33 +47801,33 @@ module Tables = struct let _1 = let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 46667 "parsing/parser.ml" +# 47807 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 46673 "parsing/parser.ml" +# 47813 "parsing/parser.ml" in let local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 46679 "parsing/parser.ml" +# 47819 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos_label_, _endpos_label_) in let label = -# 3579 "parsing/parser.mly" +# 3689 "parsing/parser.mly" ( Optional label ) -# 46685 "parsing/parser.ml" +# 47825 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3559 "parsing/parser.mly" +# 3669 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 46691 "parsing/parser.ml" +# 47831 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -46695,15 +47835,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 46701 "parsing/parser.ml" +# 47841 "parsing/parser.ml" in -# 3561 "parsing/parser.mly" +# 3671 "parsing/parser.mly" ( _1 ) -# 46707 "parsing/parser.ml" +# 47847 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46774,7 +47914,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -46793,24 +47935,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 46797 "parsing/parser.ml" +# 47939 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 46802 "parsing/parser.ml" +# 47944 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 46808 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 47950 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 46814 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 47956 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -46818,40 +47960,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 46824 "parsing/parser.ml" +# 47966 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 46830 "parsing/parser.ml" +# 47972 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 46837 "parsing/parser.ml" +# 47979 "parsing/parser.ml" in let local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 46843 "parsing/parser.ml" +# 47985 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3579 "parsing/parser.mly" +# 3689 "parsing/parser.mly" ( Optional label ) -# 46849 "parsing/parser.ml" +# 47991 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3559 "parsing/parser.mly" +# 3669 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 46855 "parsing/parser.ml" +# 47997 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -46859,15 +48001,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 46865 "parsing/parser.ml" +# 48007 "parsing/parser.ml" in -# 3561 "parsing/parser.mly" +# 3671 "parsing/parser.mly" ( _1 ) -# 46871 "parsing/parser.ml" +# 48013 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46921,33 +48063,33 @@ module Tables = struct let _1 = let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 46927 "parsing/parser.ml" +# 48069 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 46933 "parsing/parser.ml" +# 48075 "parsing/parser.ml" in let local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 46939 "parsing/parser.ml" +# 48081 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3579 "parsing/parser.mly" +# 3689 "parsing/parser.mly" ( Optional label ) -# 46945 "parsing/parser.ml" +# 48087 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3559 "parsing/parser.mly" +# 3669 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 46951 "parsing/parser.ml" +# 48093 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -46955,15 +48097,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 46961 "parsing/parser.ml" +# 48103 "parsing/parser.ml" in -# 3561 "parsing/parser.mly" +# 3671 "parsing/parser.mly" ( _1 ) -# 46967 "parsing/parser.ml" +# 48109 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47034,13 +48176,15 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 47044 "parsing/parser.ml" +# 48188 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -47056,24 +48200,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 47060 "parsing/parser.ml" +# 48204 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 47065 "parsing/parser.ml" +# 48209 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 47071 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 48215 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 47077 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 48221 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -47081,40 +48225,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47087 "parsing/parser.ml" +# 48231 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 47093 "parsing/parser.ml" +# 48237 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 47100 "parsing/parser.ml" +# 48244 "parsing/parser.ml" in let local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 47106 "parsing/parser.ml" +# 48250 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__2_, _endpos__2_) in let label = -# 3581 "parsing/parser.mly" +# 3691 "parsing/parser.mly" ( Labelled label ) -# 47112 "parsing/parser.ml" +# 48256 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3559 "parsing/parser.mly" +# 3669 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 47118 "parsing/parser.ml" +# 48262 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -47122,15 +48266,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47128 "parsing/parser.ml" +# 48272 "parsing/parser.ml" in -# 3561 "parsing/parser.mly" +# 3671 "parsing/parser.mly" ( _1 ) -# 47134 "parsing/parser.ml" +# 48278 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47177,9 +48321,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 47183 "parsing/parser.ml" +# 48327 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -47188,33 +48332,33 @@ module Tables = struct let _1 = let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 47194 "parsing/parser.ml" +# 48338 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 47200 "parsing/parser.ml" +# 48344 "parsing/parser.ml" in let local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 47206 "parsing/parser.ml" +# 48350 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__2_, _endpos__2_) in let label = -# 3581 "parsing/parser.mly" +# 3691 "parsing/parser.mly" ( Labelled label ) -# 47212 "parsing/parser.ml" +# 48356 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3559 "parsing/parser.mly" +# 3669 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 47218 "parsing/parser.ml" +# 48362 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -47222,15 +48366,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47228 "parsing/parser.ml" +# 48372 "parsing/parser.ml" in -# 3561 "parsing/parser.mly" +# 3671 "parsing/parser.mly" ( _1 ) -# 47234 "parsing/parser.ml" +# 48378 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47307,14 +48451,16 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 47318 "parsing/parser.ml" +# 48464 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -47331,24 +48477,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 47335 "parsing/parser.ml" +# 48481 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 47340 "parsing/parser.ml" +# 48486 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 47346 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 48492 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 47352 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 48498 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -47356,40 +48502,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47362 "parsing/parser.ml" +# 48508 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 47368 "parsing/parser.ml" +# 48514 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 47375 "parsing/parser.ml" +# 48521 "parsing/parser.ml" in let local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 47381 "parsing/parser.ml" +# 48527 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3581 "parsing/parser.mly" +# 3691 "parsing/parser.mly" ( Labelled label ) -# 47387 "parsing/parser.ml" +# 48533 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3559 "parsing/parser.mly" +# 3669 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 47393 "parsing/parser.ml" +# 48539 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -47397,15 +48543,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47403 "parsing/parser.ml" +# 48549 "parsing/parser.ml" in -# 3561 "parsing/parser.mly" +# 3671 "parsing/parser.mly" ( _1 ) -# 47409 "parsing/parser.ml" +# 48555 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47459,9 +48605,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 47465 "parsing/parser.ml" +# 48611 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -47470,33 +48616,33 @@ module Tables = struct let _1 = let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 47476 "parsing/parser.ml" +# 48622 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 47482 "parsing/parser.ml" +# 48628 "parsing/parser.ml" in let local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 47488 "parsing/parser.ml" +# 48634 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3581 "parsing/parser.mly" +# 3691 "parsing/parser.mly" ( Labelled label ) -# 47494 "parsing/parser.ml" +# 48640 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3559 "parsing/parser.mly" +# 3669 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 47500 "parsing/parser.ml" +# 48646 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -47504,15 +48650,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47510 "parsing/parser.ml" +# 48656 "parsing/parser.ml" in -# 3561 "parsing/parser.mly" +# 3671 "parsing/parser.mly" ( _1 ) -# 47516 "parsing/parser.ml" +# 48662 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47571,7 +48717,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -47587,24 +48735,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 47591 "parsing/parser.ml" +# 48739 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 47596 "parsing/parser.ml" +# 48744 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 47602 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 48750 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 47608 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 48756 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -47612,40 +48760,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47618 "parsing/parser.ml" +# 48766 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 47624 "parsing/parser.ml" +# 48772 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 47631 "parsing/parser.ml" +# 48779 "parsing/parser.ml" in let local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 47637 "parsing/parser.ml" +# 48785 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__0_, _endpos__0_) in let label = -# 3583 "parsing/parser.mly" +# 3693 "parsing/parser.mly" ( Nolabel ) -# 47643 "parsing/parser.ml" +# 48791 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3559 "parsing/parser.mly" +# 3669 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 47649 "parsing/parser.ml" +# 48797 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -47653,15 +48801,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47659 "parsing/parser.ml" +# 48807 "parsing/parser.ml" in -# 3561 "parsing/parser.mly" +# 3671 "parsing/parser.mly" ( _1 ) -# 47665 "parsing/parser.ml" +# 48813 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47701,33 +48849,33 @@ module Tables = struct let _1 = let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 47707 "parsing/parser.ml" +# 48855 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 47713 "parsing/parser.ml" +# 48861 "parsing/parser.ml" in let local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 47719 "parsing/parser.ml" +# 48867 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__0_, _endpos__0_) in let label = -# 3583 "parsing/parser.mly" +# 3693 "parsing/parser.mly" ( Nolabel ) -# 47725 "parsing/parser.ml" +# 48873 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3559 "parsing/parser.mly" +# 3669 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 47731 "parsing/parser.ml" +# 48879 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in @@ -47735,15 +48883,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47741 "parsing/parser.ml" +# 48889 "parsing/parser.ml" in -# 3561 "parsing/parser.mly" +# 3671 "parsing/parser.mly" ( _1 ) -# 47747 "parsing/parser.ml" +# 48895 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47808,7 +48956,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -47826,24 +48976,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 47830 "parsing/parser.ml" +# 48980 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 47835 "parsing/parser.ml" +# 48985 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 47841 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 48991 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 47847 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 48997 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -47851,40 +49001,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47857 "parsing/parser.ml" +# 49007 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 47863 "parsing/parser.ml" +# 49013 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 47870 "parsing/parser.ml" +# 49020 "parsing/parser.ml" in let local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 47876 "parsing/parser.ml" +# 49026 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3583 "parsing/parser.mly" +# 3693 "parsing/parser.mly" ( Nolabel ) -# 47882 "parsing/parser.ml" +# 49032 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3559 "parsing/parser.mly" +# 3669 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 47888 "parsing/parser.ml" +# 49038 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -47892,15 +49042,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47898 "parsing/parser.ml" +# 49048 "parsing/parser.ml" in -# 3561 "parsing/parser.mly" +# 3671 "parsing/parser.mly" ( _1 ) -# 47904 "parsing/parser.ml" +# 49054 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47947,33 +49097,33 @@ module Tables = struct let _1 = let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 47953 "parsing/parser.ml" +# 49103 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 47959 "parsing/parser.ml" +# 49109 "parsing/parser.ml" in let local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 47965 "parsing/parser.ml" +# 49115 "parsing/parser.ml" in let (_endpos_local_, _startpos_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3583 "parsing/parser.mly" +# 3693 "parsing/parser.mly" ( Nolabel ) -# 47971 "parsing/parser.ml" +# 49121 "parsing/parser.ml" in let _loc_local_ = (_startpos_local_, _endpos_local_) in -# 3559 "parsing/parser.mly" +# 3669 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if local domain _loc_local_, codomain) ) -# 47977 "parsing/parser.ml" +# 49127 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -47981,15 +49131,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 47987 "parsing/parser.ml" +# 49137 "parsing/parser.ml" in -# 3561 "parsing/parser.mly" +# 3671 "parsing/parser.mly" ( _1 ) -# 47993 "parsing/parser.ml" +# 49143 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48054,7 +49204,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -48063,9 +49215,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 48069 "parsing/parser.ml" +# 49221 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = @@ -48077,24 +49229,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 48081 "parsing/parser.ml" +# 49233 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 48086 "parsing/parser.ml" +# 49238 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 48092 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 49244 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 48098 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 49250 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -48102,45 +49254,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48108 "parsing/parser.ml" +# 49260 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 48114 "parsing/parser.ml" +# 49266 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48121 "parsing/parser.ml" +# 49273 "parsing/parser.ml" in let arg_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 48127 "parsing/parser.ml" +# 49279 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos_label_, _endpos_label_) in let label = -# 3579 "parsing/parser.mly" +# 3689 "parsing/parser.mly" ( Optional label ) -# 48133 "parsing/parser.ml" +# 49285 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 48144 "parsing/parser.ml" +# 49296 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -48148,15 +49300,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48154 "parsing/parser.ml" +# 49306 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 48160 "parsing/parser.ml" +# 49312 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48228,7 +49380,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -48237,9 +49391,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 48243 "parsing/parser.ml" +# 49397 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let domain = @@ -48251,24 +49405,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 48255 "parsing/parser.ml" +# 49409 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 48260 "parsing/parser.ml" +# 49414 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 48266 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 49420 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 48272 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 49426 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -48276,45 +49430,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48282 "parsing/parser.ml" +# 49436 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 48288 "parsing/parser.ml" +# 49442 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48295 "parsing/parser.ml" +# 49449 "parsing/parser.ml" in let arg_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 48301 "parsing/parser.ml" +# 49455 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos_label_, _endpos_label_) in let label = -# 3579 "parsing/parser.mly" +# 3689 "parsing/parser.mly" ( Optional label ) -# 48307 "parsing/parser.ml" +# 49461 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 48318 "parsing/parser.ml" +# 49472 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -48322,15 +49476,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48328 "parsing/parser.ml" +# 49482 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 48334 "parsing/parser.ml" +# 49488 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48376,45 +49530,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 48382 "parsing/parser.ml" +# 49536 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 48389 "parsing/parser.ml" +# 49543 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48395 "parsing/parser.ml" +# 49549 "parsing/parser.ml" in let arg_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 48401 "parsing/parser.ml" +# 49555 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos_label_, _endpos_label_) in let label = -# 3579 "parsing/parser.mly" +# 3689 "parsing/parser.mly" ( Optional label ) -# 48407 "parsing/parser.ml" +# 49561 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 48418 "parsing/parser.ml" +# 49572 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -48422,15 +49576,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48428 "parsing/parser.ml" +# 49582 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 48434 "parsing/parser.ml" +# 49588 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48483,45 +49637,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 48489 "parsing/parser.ml" +# 49643 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_, _startpos__1_) in let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 48496 "parsing/parser.ml" +# 49650 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48502 "parsing/parser.ml" +# 49656 "parsing/parser.ml" in let arg_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 48508 "parsing/parser.ml" +# 49662 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos_label_, _endpos_label_) in let label = -# 3579 "parsing/parser.mly" +# 3689 "parsing/parser.mly" ( Optional label ) -# 48514 "parsing/parser.ml" +# 49668 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 48525 "parsing/parser.ml" +# 49679 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -48529,15 +49683,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48535 "parsing/parser.ml" +# 49689 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 48541 "parsing/parser.ml" +# 49695 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48608,7 +49762,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -48618,9 +49774,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 48624 "parsing/parser.ml" +# 49780 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = @@ -48633,24 +49789,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 48637 "parsing/parser.ml" +# 49793 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 48642 "parsing/parser.ml" +# 49798 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 48648 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 49804 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 48654 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 49810 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -48658,45 +49814,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48664 "parsing/parser.ml" +# 49820 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 48670 "parsing/parser.ml" +# 49826 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48677 "parsing/parser.ml" +# 49833 "parsing/parser.ml" in let arg_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 48683 "parsing/parser.ml" +# 49839 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3579 "parsing/parser.mly" +# 3689 "parsing/parser.mly" ( Optional label ) -# 48689 "parsing/parser.ml" +# 49845 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 48700 "parsing/parser.ml" +# 49856 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -48704,15 +49860,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48710 "parsing/parser.ml" +# 49866 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 48716 "parsing/parser.ml" +# 49872 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48790,7 +49946,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let label : (string) = Obj.magic label in @@ -48800,9 +49958,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 48806 "parsing/parser.ml" +# 49964 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let domain = @@ -48815,24 +49973,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 48819 "parsing/parser.ml" +# 49977 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 48824 "parsing/parser.ml" +# 49982 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 48830 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 49988 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 48836 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 49994 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -48840,45 +49998,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48846 "parsing/parser.ml" +# 50004 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 48852 "parsing/parser.ml" +# 50010 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48859 "parsing/parser.ml" +# 50017 "parsing/parser.ml" in let arg_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 48865 "parsing/parser.ml" +# 50023 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3579 "parsing/parser.mly" +# 3689 "parsing/parser.mly" ( Optional label ) -# 48871 "parsing/parser.ml" +# 50029 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 48882 "parsing/parser.ml" +# 50040 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -48886,15 +50044,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48892 "parsing/parser.ml" +# 50050 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 48898 "parsing/parser.ml" +# 50056 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48947,45 +50105,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 48953 "parsing/parser.ml" +# 50111 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 48960 "parsing/parser.ml" +# 50118 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 48966 "parsing/parser.ml" +# 50124 "parsing/parser.ml" in let arg_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 48972 "parsing/parser.ml" +# 50130 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3579 "parsing/parser.mly" +# 3689 "parsing/parser.mly" ( Optional label ) -# 48978 "parsing/parser.ml" +# 50136 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 48989 "parsing/parser.ml" +# 50147 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -48993,15 +50151,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 48999 "parsing/parser.ml" +# 50157 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 49005 "parsing/parser.ml" +# 50163 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49061,45 +50219,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 49067 "parsing/parser.ml" +# 50225 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 49074 "parsing/parser.ml" +# 50232 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 49080 "parsing/parser.ml" +# 50238 "parsing/parser.ml" in let arg_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 49086 "parsing/parser.ml" +# 50244 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3579 "parsing/parser.mly" +# 3689 "parsing/parser.mly" ( Optional label ) -# 49092 "parsing/parser.ml" +# 50250 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 49103 "parsing/parser.ml" +# 50261 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -49107,15 +50265,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49113 "parsing/parser.ml" +# 50271 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 49119 "parsing/parser.ml" +# 50277 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49186,13 +50344,15 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 49196 "parsing/parser.ml" +# 50356 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -49200,9 +50360,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 49206 "parsing/parser.ml" +# 50366 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = @@ -49214,24 +50374,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 49218 "parsing/parser.ml" +# 50378 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 49223 "parsing/parser.ml" +# 50383 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 49229 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 50389 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 49235 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 50395 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -49239,45 +50399,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49245 "parsing/parser.ml" +# 50405 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 49251 "parsing/parser.ml" +# 50411 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 49258 "parsing/parser.ml" +# 50418 "parsing/parser.ml" in let arg_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 49264 "parsing/parser.ml" +# 50424 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__2_, _endpos__2_) in let label = -# 3581 "parsing/parser.mly" +# 3691 "parsing/parser.mly" ( Labelled label ) -# 49270 "parsing/parser.ml" +# 50430 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 49281 "parsing/parser.ml" +# 50441 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -49285,15 +50445,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49291 "parsing/parser.ml" +# 50451 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 49297 "parsing/parser.ml" +# 50457 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49371,13 +50531,15 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 49381 "parsing/parser.ml" +# 50543 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -49385,9 +50547,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 49391 "parsing/parser.ml" +# 50553 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let domain = @@ -49399,24 +50561,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 49403 "parsing/parser.ml" +# 50565 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 49408 "parsing/parser.ml" +# 50570 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 49414 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 50576 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 49420 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 50582 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -49424,45 +50586,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49430 "parsing/parser.ml" +# 50592 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 49436 "parsing/parser.ml" +# 50598 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 49443 "parsing/parser.ml" +# 50605 "parsing/parser.ml" in let arg_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 49449 "parsing/parser.ml" +# 50611 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__2_, _endpos__2_) in let label = -# 3581 "parsing/parser.mly" +# 3691 "parsing/parser.mly" ( Labelled label ) -# 49455 "parsing/parser.ml" +# 50617 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 49466 "parsing/parser.ml" +# 50628 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -49470,15 +50632,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49476 "parsing/parser.ml" +# 50638 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 49482 "parsing/parser.ml" +# 50644 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49525,9 +50687,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 49531 "parsing/parser.ml" +# 50693 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -49535,45 +50697,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 49541 "parsing/parser.ml" +# 50703 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 49548 "parsing/parser.ml" +# 50710 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 49554 "parsing/parser.ml" +# 50716 "parsing/parser.ml" in let arg_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 49560 "parsing/parser.ml" +# 50722 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__2_, _endpos__2_) in let label = -# 3581 "parsing/parser.mly" +# 3691 "parsing/parser.mly" ( Labelled label ) -# 49566 "parsing/parser.ml" +# 50728 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 49577 "parsing/parser.ml" +# 50739 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -49581,15 +50743,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49587 "parsing/parser.ml" +# 50749 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 49593 "parsing/parser.ml" +# 50755 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49643,9 +50805,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 49649 "parsing/parser.ml" +# 50811 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -49653,45 +50815,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 49659 "parsing/parser.ml" +# 50821 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_, _startpos__1_) in let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 49666 "parsing/parser.ml" +# 50828 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 49672 "parsing/parser.ml" +# 50834 "parsing/parser.ml" in let arg_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 49678 "parsing/parser.ml" +# 50840 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__2_, _endpos__2_) in let label = -# 3581 "parsing/parser.mly" +# 3691 "parsing/parser.mly" ( Labelled label ) -# 49684 "parsing/parser.ml" +# 50846 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 49695 "parsing/parser.ml" +# 50857 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -49699,15 +50861,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49705 "parsing/parser.ml" +# 50867 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 49711 "parsing/parser.ml" +# 50873 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49784,14 +50946,16 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 49795 "parsing/parser.ml" +# 50959 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -49799,9 +50963,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 49805 "parsing/parser.ml" +# 50969 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = @@ -49814,24 +50978,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 49818 "parsing/parser.ml" +# 50982 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 49823 "parsing/parser.ml" +# 50987 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 49829 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 50993 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 49835 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 50999 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -49839,45 +51003,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49845 "parsing/parser.ml" +# 51009 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 49851 "parsing/parser.ml" +# 51015 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 49858 "parsing/parser.ml" +# 51022 "parsing/parser.ml" in let arg_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 49864 "parsing/parser.ml" +# 51028 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3581 "parsing/parser.mly" +# 3691 "parsing/parser.mly" ( Labelled label ) -# 49870 "parsing/parser.ml" +# 51034 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 49881 "parsing/parser.ml" +# 51045 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -49885,15 +51049,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 49891 "parsing/parser.ml" +# 51055 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 49897 "parsing/parser.ml" +# 51061 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49977,14 +51141,16 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 49988 "parsing/parser.ml" +# 51154 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -49992,9 +51158,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 49998 "parsing/parser.ml" +# 51164 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let domain = @@ -50007,24 +51173,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 50011 "parsing/parser.ml" +# 51177 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 50016 "parsing/parser.ml" +# 51182 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 50022 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 51188 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 50028 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 51194 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -50032,45 +51198,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50038 "parsing/parser.ml" +# 51204 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 50044 "parsing/parser.ml" +# 51210 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50051 "parsing/parser.ml" +# 51217 "parsing/parser.ml" in let arg_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 50057 "parsing/parser.ml" +# 51223 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3581 "parsing/parser.mly" +# 3691 "parsing/parser.mly" ( Labelled label ) -# 50063 "parsing/parser.ml" +# 51229 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 50074 "parsing/parser.ml" +# 51240 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -50078,15 +51244,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50084 "parsing/parser.ml" +# 51250 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 50090 "parsing/parser.ml" +# 51256 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50140,9 +51306,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 50146 "parsing/parser.ml" +# 51312 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -50150,45 +51316,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 50156 "parsing/parser.ml" +# 51322 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 50163 "parsing/parser.ml" +# 51329 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50169 "parsing/parser.ml" +# 51335 "parsing/parser.ml" in let arg_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 50175 "parsing/parser.ml" +# 51341 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3581 "parsing/parser.mly" +# 3691 "parsing/parser.mly" ( Labelled label ) -# 50181 "parsing/parser.ml" +# 51347 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 50192 "parsing/parser.ml" +# 51358 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -50196,15 +51362,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50202 "parsing/parser.ml" +# 51368 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 50208 "parsing/parser.ml" +# 51374 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50265,9 +51431,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 50271 "parsing/parser.ml" +# 51437 "parsing/parser.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -50275,45 +51441,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 50281 "parsing/parser.ml" +# 51447 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 50288 "parsing/parser.ml" +# 51454 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50294 "parsing/parser.ml" +# 51460 "parsing/parser.ml" in let arg_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 50300 "parsing/parser.ml" +# 51466 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3581 "parsing/parser.mly" +# 3691 "parsing/parser.mly" ( Labelled label ) -# 50306 "parsing/parser.ml" +# 51472 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 50317 "parsing/parser.ml" +# 51483 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -50321,15 +51487,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50327 "parsing/parser.ml" +# 51493 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 50333 "parsing/parser.ml" +# 51499 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50388,7 +51554,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50396,9 +51564,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 50402 "parsing/parser.ml" +# 51570 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = @@ -50410,24 +51578,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 50414 "parsing/parser.ml" +# 51582 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 50419 "parsing/parser.ml" +# 51587 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 50425 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 51593 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 50431 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 51599 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -50435,45 +51603,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50441 "parsing/parser.ml" +# 51609 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 50447 "parsing/parser.ml" +# 51615 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50454 "parsing/parser.ml" +# 51622 "parsing/parser.ml" in let arg_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 50460 "parsing/parser.ml" +# 51628 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__0_, _endpos__0_) in let label = -# 3583 "parsing/parser.mly" +# 3693 "parsing/parser.mly" ( Nolabel ) -# 50466 "parsing/parser.ml" +# 51634 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 50477 "parsing/parser.ml" +# 51645 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -50481,15 +51649,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50487 "parsing/parser.ml" +# 51655 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 50493 "parsing/parser.ml" +# 51661 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50555,7 +51723,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50563,9 +51733,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 50569 "parsing/parser.ml" +# 51739 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let domain = @@ -50577,24 +51747,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 50581 "parsing/parser.ml" +# 51751 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 50586 "parsing/parser.ml" +# 51756 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 50592 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 51762 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 50598 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 51768 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -50602,45 +51772,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50608 "parsing/parser.ml" +# 51778 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 50614 "parsing/parser.ml" +# 51784 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50621 "parsing/parser.ml" +# 51791 "parsing/parser.ml" in let arg_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 50627 "parsing/parser.ml" +# 51797 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__0_, _endpos__0_) in let label = -# 3583 "parsing/parser.mly" +# 3693 "parsing/parser.mly" ( Nolabel ) -# 50633 "parsing/parser.ml" +# 51803 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 50644 "parsing/parser.ml" +# 51814 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -50648,15 +51818,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50654 "parsing/parser.ml" +# 51824 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 50660 "parsing/parser.ml" +# 51830 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50695,45 +51865,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 50701 "parsing/parser.ml" +# 51871 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 50708 "parsing/parser.ml" +# 51878 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50714 "parsing/parser.ml" +# 51884 "parsing/parser.ml" in let arg_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 50720 "parsing/parser.ml" +# 51890 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__0_, _endpos__0_) in let label = -# 3583 "parsing/parser.mly" +# 3693 "parsing/parser.mly" ( Nolabel ) -# 50726 "parsing/parser.ml" +# 51896 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 50737 "parsing/parser.ml" +# 51907 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in @@ -50741,15 +51911,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50747 "parsing/parser.ml" +# 51917 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 50753 "parsing/parser.ml" +# 51923 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50795,45 +51965,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 50801 "parsing/parser.ml" +# 51971 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_, _startpos__1_) in let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 50808 "parsing/parser.ml" +# 51978 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50814 "parsing/parser.ml" +# 51984 "parsing/parser.ml" in let arg_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 50820 "parsing/parser.ml" +# 51990 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__0_, _endpos__0_) in let label = -# 3583 "parsing/parser.mly" +# 3693 "parsing/parser.mly" ( Nolabel ) -# 50826 "parsing/parser.ml" +# 51996 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 50837 "parsing/parser.ml" +# 52007 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in @@ -50841,15 +52011,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50847 "parsing/parser.ml" +# 52017 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 50853 "parsing/parser.ml" +# 52023 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50914,7 +52084,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -50923,9 +52095,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 50929 "parsing/parser.ml" +# 52101 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = @@ -50938,24 +52110,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 50942 "parsing/parser.ml" +# 52114 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 50947 "parsing/parser.ml" +# 52119 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 50953 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 52125 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 50959 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 52131 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -50963,45 +52135,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 50969 "parsing/parser.ml" +# 52141 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 50975 "parsing/parser.ml" +# 52147 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 50982 "parsing/parser.ml" +# 52154 "parsing/parser.ml" in let arg_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 50988 "parsing/parser.ml" +# 52160 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3583 "parsing/parser.mly" +# 3693 "parsing/parser.mly" ( Nolabel ) -# 50994 "parsing/parser.ml" +# 52166 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 51005 "parsing/parser.ml" +# 52177 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -51009,15 +52181,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51015 "parsing/parser.ml" +# 52187 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 51021 "parsing/parser.ml" +# 52193 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51089,7 +52261,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in - let xs : (Asttypes.label Asttypes.loc list) = Obj.magic xs in + let xs : ((Asttypes.label Asttypes.loc * + Asttypes.layout_annotation Asttypes.loc option) + list) = Obj.magic xs in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -51098,9 +52272,9 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 51104 "parsing/parser.ml" +# 52278 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let domain = @@ -51113,24 +52287,24 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 51117 "parsing/parser.ml" +# 52291 "parsing/parser.ml" in -# 1077 "parsing/parser.mly" +# 1149 "parsing/parser.mly" ( xs ) -# 51122 "parsing/parser.ml" +# 52296 "parsing/parser.ml" in -# 3482 "parsing/parser.mly" - ( _1 ) -# 51128 "parsing/parser.ml" +# 3592 "parsing/parser.mly" + ( List.split _1 ) +# 52302 "parsing/parser.ml" in -# 3594 "parsing/parser.mly" - ( Ptyp_poly(vars, ty) ) -# 51134 "parsing/parser.ml" +# 3704 "parsing/parser.mly" + ( Ptyp_poly(fst vars, ty, snd vars) ) +# 52308 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in @@ -51138,45 +52312,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51144 "parsing/parser.ml" +# 52318 "parsing/parser.ml" in -# 3596 "parsing/parser.mly" +# 3706 "parsing/parser.mly" ( _1 ) -# 51150 "parsing/parser.ml" +# 52324 "parsing/parser.ml" in let _endpos__1_ = _endpos__5_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 51157 "parsing/parser.ml" +# 52331 "parsing/parser.ml" in let arg_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 51163 "parsing/parser.ml" +# 52337 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3583 "parsing/parser.mly" +# 3693 "parsing/parser.mly" ( Nolabel ) -# 51169 "parsing/parser.ml" +# 52343 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 51180 "parsing/parser.ml" +# 52354 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -51184,15 +52358,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51190 "parsing/parser.ml" +# 52364 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 51196 "parsing/parser.ml" +# 52370 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51238,45 +52412,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3587 "parsing/parser.mly" +# 3697 "parsing/parser.mly" ( false ) -# 51244 "parsing/parser.ml" +# 52418 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__4_, _endpos__4_) in let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 51251 "parsing/parser.ml" +# 52425 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 51257 "parsing/parser.ml" +# 52431 "parsing/parser.ml" in let arg_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 51263 "parsing/parser.ml" +# 52437 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3583 "parsing/parser.mly" +# 3693 "parsing/parser.mly" ( Nolabel ) -# 51269 "parsing/parser.ml" +# 52443 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 51280 "parsing/parser.ml" +# 52454 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -51284,15 +52458,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51290 "parsing/parser.ml" +# 52464 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 51296 "parsing/parser.ml" +# 52470 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51345,45 +52519,45 @@ module Tables = struct let _v : (Parsetree.core_type) = let _1 = let _1 = let ret_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 51351 "parsing/parser.ml" +# 52525 "parsing/parser.ml" in let (_endpos_ret_local_, _startpos_ret_local_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let domain = let _1 = -# 3598 "parsing/parser.mly" +# 3708 "parsing/parser.mly" ( ty ) -# 51358 "parsing/parser.ml" +# 52532 "parsing/parser.ml" in let _endpos__1_ = _endpos_ty_ in -# 973 "parsing/parser.mly" +# 1045 "parsing/parser.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 51364 "parsing/parser.ml" +# 52538 "parsing/parser.ml" in let arg_local = -# 3589 "parsing/parser.mly" +# 3699 "parsing/parser.mly" ( true ) -# 51370 "parsing/parser.ml" +# 52544 "parsing/parser.ml" in let (_endpos_arg_local_, _startpos_arg_local_) = (_endpos__1_, _startpos__1_) in let label = -# 3583 "parsing/parser.mly" +# 3693 "parsing/parser.mly" ( Nolabel ) -# 51376 "parsing/parser.ml" +# 52550 "parsing/parser.ml" in let _loc_ret_local_ = (_startpos_ret_local_, _endpos_ret_local_) in let _loc_codomain_ = (_startpos_codomain_, _endpos_codomain_) in let _loc_arg_local_ = (_startpos_arg_local_, _endpos_arg_local_) in -# 3570 "parsing/parser.mly" +# 3680 "parsing/parser.mly" ( Ptyp_arrow(label, mktyp_local_if arg_local domain _loc_arg_local_, mktyp_local_if ret_local (maybe_curry_typ codomain _loc_codomain_) _loc_ret_local_) ) -# 51387 "parsing/parser.ml" +# 52561 "parsing/parser.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -51391,15 +52565,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 51397 "parsing/parser.ml" +# 52571 "parsing/parser.ml" in -# 3575 "parsing/parser.mly" +# 3685 "parsing/parser.mly" ( _1 ) -# 51403 "parsing/parser.ml" +# 52577 "parsing/parser.ml" + in + { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = Obj.repr _v; + MenhirLib.EngineTypes.startp = _startpos; + MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.next = _menhir_stack; + }); + (fun _menhir_env -> + let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in + let { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + } = _menhir_stack in + let _3 : ( +# 861 "parsing/parser.mly" + (string) +# 52610 "parsing/parser.ml" + ) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Longident.t) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos__3_ in + let _v : (Longident.t) = +# 4008 "parsing/parser.mly" + ( Ldot(_1, _3) ) +# 52620 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51426,39 +52643,39 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 51430 "parsing/parser.ml" +# 52647 "parsing/parser.ml" in let xs = let items = -# 1045 "parsing/parser.mly" +# 1117 "parsing/parser.mly" ( [] ) -# 51436 "parsing/parser.ml" +# 52653 "parsing/parser.ml" in -# 1474 "parsing/parser.mly" +# 1546 "parsing/parser.mly" ( items ) -# 51441 "parsing/parser.ml" +# 52658 "parsing/parser.ml" in # 267 "" ( xs @ ys ) -# 51447 "parsing/parser.ml" +# 52664 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 967 "parsing/parser.mly" +# 1039 "parsing/parser.mly" ( extra_str _startpos _endpos _1 ) -# 51456 "parsing/parser.ml" +# 52673 "parsing/parser.ml" in -# 1467 "parsing/parser.mly" +# 1539 "parsing/parser.mly" ( _1 ) -# 51462 "parsing/parser.ml" +# 52679 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51499,7 +52716,7 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 51503 "parsing/parser.ml" +# 52720 "parsing/parser.ml" in let xs = let items = @@ -51507,65 +52724,65 @@ module Tables = struct let _1 = let _1 = let attrs = -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 51513 "parsing/parser.ml" +# 52730 "parsing/parser.ml" in -# 1481 "parsing/parser.mly" +# 1553 "parsing/parser.mly" ( mkstrexp e attrs ) -# 51518 "parsing/parser.ml" +# 52735 "parsing/parser.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 979 "parsing/parser.mly" +# 1051 "parsing/parser.mly" ( text_str _startpos @ [_1] ) -# 51526 "parsing/parser.ml" +# 52743 "parsing/parser.ml" in let _startpos__1_ = _startpos_e_ in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 998 "parsing/parser.mly" +# 1070 "parsing/parser.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 51536 "parsing/parser.ml" +# 52753 "parsing/parser.ml" in -# 1047 "parsing/parser.mly" +# 1119 "parsing/parser.mly" ( x ) -# 51542 "parsing/parser.ml" +# 52759 "parsing/parser.ml" in -# 1474 "parsing/parser.mly" +# 1546 "parsing/parser.mly" ( items ) -# 51548 "parsing/parser.ml" +# 52765 "parsing/parser.ml" in # 267 "" ( xs @ ys ) -# 51554 "parsing/parser.ml" +# 52771 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 967 "parsing/parser.mly" +# 1039 "parsing/parser.mly" ( extra_str _startpos _endpos _1 ) -# 51563 "parsing/parser.ml" +# 52780 "parsing/parser.ml" in -# 1467 "parsing/parser.mly" +# 1539 "parsing/parser.mly" ( _1 ) -# 51569 "parsing/parser.ml" +# 52786 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51591,9 +52808,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1496 "parsing/parser.mly" +# 1568 "parsing/parser.mly" ( val_of_let_bindings ~loc:_sloc _1 ) -# 51597 "parsing/parser.ml" +# 52814 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51627,9 +52844,9 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 51633 "parsing/parser.ml" +# 52850 "parsing/parser.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -51637,10 +52854,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1499 "parsing/parser.mly" +# 1571 "parsing/parser.mly" ( let docs = symbol_docs _sloc in Pstr_extension (_1, add_docs_attrs docs _2) ) -# 51644 "parsing/parser.ml" +# 52861 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -51648,15 +52865,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1014 "parsing/parser.mly" +# 1086 "parsing/parser.mly" ( mkstr ~loc:_sloc _1 ) -# 51654 "parsing/parser.ml" +# 52871 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 51660 "parsing/parser.ml" +# 52877 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51680,23 +52897,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1502 "parsing/parser.mly" +# 1574 "parsing/parser.mly" ( Pstr_attribute _1 ) -# 51686 "parsing/parser.ml" +# 52903 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1014 "parsing/parser.mly" +# 1086 "parsing/parser.mly" ( mkstr ~loc:_sloc _1 ) -# 51694 "parsing/parser.ml" +# 52911 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 51700 "parsing/parser.ml" +# 52917 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51720,23 +52937,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1506 "parsing/parser.mly" +# 1578 "parsing/parser.mly" ( pstr_primitive _1 ) -# 51726 "parsing/parser.ml" +# 52943 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1031 "parsing/parser.mly" +# 1103 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 51734 "parsing/parser.ml" +# 52951 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 51740 "parsing/parser.ml" +# 52957 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51760,23 +52977,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1508 "parsing/parser.mly" +# 1580 "parsing/parser.mly" ( pstr_primitive _1 ) -# 51766 "parsing/parser.ml" +# 52983 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1031 "parsing/parser.mly" +# 1103 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 51774 "parsing/parser.ml" +# 52991 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 51780 "parsing/parser.ml" +# 52997 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51811,26 +53028,26 @@ module Tables = struct let _1 = let _1 = let _1 = -# 1206 "parsing/parser.mly" +# 1278 "parsing/parser.mly" ( let (x, b) = a in x, b :: bs ) -# 51817 "parsing/parser.ml" +# 53034 "parsing/parser.ml" in -# 3126 "parsing/parser.mly" +# 3218 "parsing/parser.mly" ( _1 ) -# 51822 "parsing/parser.ml" +# 53039 "parsing/parser.ml" in -# 3109 "parsing/parser.mly" +# 3201 "parsing/parser.mly" ( _1 ) -# 51828 "parsing/parser.ml" +# 53045 "parsing/parser.ml" in -# 1510 "parsing/parser.mly" +# 1582 "parsing/parser.mly" ( pstr_type _1 ) -# 51834 "parsing/parser.ml" +# 53051 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -51838,15 +53055,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1031 "parsing/parser.mly" +# 1103 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 51844 "parsing/parser.ml" +# 53061 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 51850 "parsing/parser.ml" +# 53067 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51931,16 +53148,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 51937 "parsing/parser.ml" +# 53154 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let cs = -# 1198 "parsing/parser.mly" +# 1270 "parsing/parser.mly" ( List.rev xs ) -# 51944 "parsing/parser.ml" +# 53161 "parsing/parser.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -51948,46 +53165,46 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 51954 "parsing/parser.ml" +# 53171 "parsing/parser.ml" in let _4 = -# 3943 "parsing/parser.mly" +# 4085 "parsing/parser.mly" ( Recursive ) -# 51960 "parsing/parser.ml" +# 53177 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 51967 "parsing/parser.ml" +# 53184 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3407 "parsing/parser.mly" +# 3512 "parsing/parser.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 51979 "parsing/parser.ml" +# 53196 "parsing/parser.ml" in -# 3390 "parsing/parser.mly" +# 3495 "parsing/parser.mly" ( _1 ) -# 51985 "parsing/parser.ml" +# 53202 "parsing/parser.ml" in -# 1512 "parsing/parser.mly" +# 1584 "parsing/parser.mly" ( pstr_typext _1 ) -# 51991 "parsing/parser.ml" +# 53208 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -51995,15 +53212,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1031 "parsing/parser.mly" +# 1103 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 52001 "parsing/parser.ml" +# 53218 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 52007 "parsing/parser.ml" +# 53224 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52095,16 +53312,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 52101 "parsing/parser.ml" +# 53318 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in let cs = -# 1198 "parsing/parser.mly" +# 1270 "parsing/parser.mly" ( List.rev xs ) -# 52108 "parsing/parser.ml" +# 53325 "parsing/parser.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in @@ -52112,9 +53329,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 52118 "parsing/parser.ml" +# 53335 "parsing/parser.ml" in let _4 = @@ -52123,41 +53340,41 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 3945 "parsing/parser.mly" +# 4087 "parsing/parser.mly" ( not_expecting _loc "nonrec flag" ) -# 52129 "parsing/parser.ml" +# 53346 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 52137 "parsing/parser.ml" +# 53354 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3407 "parsing/parser.mly" +# 3512 "parsing/parser.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 52149 "parsing/parser.ml" +# 53366 "parsing/parser.ml" in -# 3390 "parsing/parser.mly" +# 3495 "parsing/parser.mly" ( _1 ) -# 52155 "parsing/parser.ml" +# 53372 "parsing/parser.ml" in -# 1512 "parsing/parser.mly" +# 1584 "parsing/parser.mly" ( pstr_typext _1 ) -# 52161 "parsing/parser.ml" +# 53378 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -52165,15 +53382,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1031 "parsing/parser.mly" +# 1103 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 52171 "parsing/parser.ml" +# 53388 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 52177 "parsing/parser.ml" +# 53394 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52197,23 +53414,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1514 "parsing/parser.mly" +# 1586 "parsing/parser.mly" ( pstr_exception _1 ) -# 52203 "parsing/parser.ml" +# 53420 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1031 "parsing/parser.mly" +# 1103 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 52211 "parsing/parser.ml" +# 53428 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 52217 "parsing/parser.ml" +# 53434 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52276,9 +53493,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 52282 "parsing/parser.ml" +# 53499 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -52288,36 +53505,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 52294 "parsing/parser.ml" +# 53511 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 52302 "parsing/parser.ml" +# 53519 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1540 "parsing/parser.mly" +# 1612 "parsing/parser.mly" ( let docs = symbol_docs _sloc in let loc = make_loc _sloc in let attrs = attrs1 @ attrs2 in let body = Mb.mk name body ~attrs ~loc ~docs in Pstr_module body, ext ) -# 52315 "parsing/parser.ml" +# 53532 "parsing/parser.ml" in -# 1516 "parsing/parser.mly" +# 1588 "parsing/parser.mly" ( _1 ) -# 52321 "parsing/parser.ml" +# 53538 "parsing/parser.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -52325,15 +53542,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1031 "parsing/parser.mly" +# 1103 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 52331 "parsing/parser.ml" +# 53548 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 52337 "parsing/parser.ml" +# 53554 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52412,9 +53629,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 52418 "parsing/parser.ml" +# 53635 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -52424,24 +53641,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 52430 "parsing/parser.ml" +# 53647 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 52438 "parsing/parser.ml" +# 53655 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1575 "parsing/parser.mly" +# 1647 "parsing/parser.mly" ( let loc = make_loc _sloc in let attrs = attrs1 @ attrs2 in @@ -52449,25 +53666,25 @@ module Tables = struct ext, Mb.mk name body ~attrs ~loc ~docs ) -# 52453 "parsing/parser.ml" +# 53670 "parsing/parser.ml" in -# 1206 "parsing/parser.mly" +# 1278 "parsing/parser.mly" ( let (x, b) = a in x, b :: bs ) -# 52459 "parsing/parser.ml" +# 53676 "parsing/parser.ml" in -# 1563 "parsing/parser.mly" +# 1635 "parsing/parser.mly" ( _1 ) -# 52465 "parsing/parser.ml" +# 53682 "parsing/parser.ml" in -# 1518 "parsing/parser.mly" +# 1590 "parsing/parser.mly" ( pstr_recmodule _1 ) -# 52471 "parsing/parser.ml" +# 53688 "parsing/parser.ml" in let _endpos__1_ = _endpos_bs_ in @@ -52475,15 +53692,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1031 "parsing/parser.mly" +# 1103 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 52481 "parsing/parser.ml" +# 53698 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 52487 "parsing/parser.ml" +# 53704 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52507,23 +53724,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1520 "parsing/parser.mly" +# 1592 "parsing/parser.mly" ( let (body, ext) = _1 in (Pstr_modtype body, ext) ) -# 52513 "parsing/parser.ml" +# 53730 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1031 "parsing/parser.mly" +# 1103 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 52521 "parsing/parser.ml" +# 53738 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 52527 "parsing/parser.ml" +# 53744 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52547,23 +53764,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1522 "parsing/parser.mly" +# 1594 "parsing/parser.mly" ( let (body, ext) = _1 in (Pstr_open body, ext) ) -# 52553 "parsing/parser.ml" +# 53770 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1031 "parsing/parser.mly" +# 1103 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 52561 "parsing/parser.ml" +# 53778 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 52567 "parsing/parser.ml" +# 53784 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52633,9 +53850,9 @@ module Tables = struct let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in let body : (Parsetree.class_expr) = Obj.magic body in let _1_inlined2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 52639 "parsing/parser.ml" +# 53856 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let params : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = Obj.magic params in let virt : (Asttypes.virtual_flag) = Obj.magic virt in @@ -52653,9 +53870,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 52659 "parsing/parser.ml" +# 53876 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -52665,24 +53882,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 52671 "parsing/parser.ml" +# 53888 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 52679 "parsing/parser.ml" +# 53896 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1920 "parsing/parser.mly" +# 1992 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -52690,25 +53907,25 @@ module Tables = struct ext, Ci.mk id body ~virt ~params ~attrs ~loc ~docs ) -# 52694 "parsing/parser.ml" +# 53911 "parsing/parser.ml" in -# 1206 "parsing/parser.mly" +# 1278 "parsing/parser.mly" ( let (x, b) = a in x, b :: bs ) -# 52700 "parsing/parser.ml" +# 53917 "parsing/parser.ml" in -# 1909 "parsing/parser.mly" +# 1981 "parsing/parser.mly" ( _1 ) -# 52706 "parsing/parser.ml" +# 53923 "parsing/parser.ml" in -# 1524 "parsing/parser.mly" +# 1596 "parsing/parser.mly" ( let (ext, l) = _1 in (Pstr_class l, ext) ) -# 52712 "parsing/parser.ml" +# 53929 "parsing/parser.ml" in let _endpos__1_ = _endpos_bs_ in @@ -52716,15 +53933,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1031 "parsing/parser.mly" +# 1103 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 52722 "parsing/parser.ml" +# 53939 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 52728 "parsing/parser.ml" +# 53945 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52748,23 +53965,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.structure_item) = let _1 = let _1 = -# 1526 "parsing/parser.mly" +# 1598 "parsing/parser.mly" ( let (ext, l) = _1 in (Pstr_class_type l, ext) ) -# 52754 "parsing/parser.ml" +# 53971 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1031 "parsing/parser.mly" +# 1103 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 52762 "parsing/parser.ml" +# 53979 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 52768 "parsing/parser.ml" +# 53985 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52820,35 +54037,35 @@ module Tables = struct let attrs2 = let _1 = _1_inlined1 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 52826 "parsing/parser.ml" +# 54043 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined1_ in let attrs1 = -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 52833 "parsing/parser.ml" +# 54050 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos_attrs0_ in let _sloc = (_symbolstartpos, _endpos) in -# 1619 "parsing/parser.mly" +# 1691 "parsing/parser.mly" ( let attrs = attrs0 @ attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Incl.mk thing ~attrs ~loc ~docs, ext ) -# 52846 "parsing/parser.ml" +# 54063 "parsing/parser.ml" in -# 1528 "parsing/parser.mly" +# 1600 "parsing/parser.mly" ( pstr_include _1 ) -# 52852 "parsing/parser.ml" +# 54069 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_attrs0_) in @@ -52856,15 +54073,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1031 "parsing/parser.mly" +# 1103 "parsing/parser.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 52862 "parsing/parser.ml" +# 54079 "parsing/parser.ml" in -# 1530 "parsing/parser.mly" +# 1602 "parsing/parser.mly" ( _1 ) -# 52868 "parsing/parser.ml" +# 54085 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52887,9 +54104,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4019 "parsing/parser.mly" +# 4161 "parsing/parser.mly" ( "-" ) -# 52893 "parsing/parser.ml" +# 54110 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52912,9 +54129,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 4020 "parsing/parser.mly" +# 4162 "parsing/parser.mly" ( "-." ) -# 52918 "parsing/parser.ml" +# 54135 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52967,9 +54184,9 @@ module Tables = struct let _v : (Parsetree.row_field) = let _5 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 52973 "parsing/parser.ml" +# 54190 "parsing/parser.ml" in let _endpos__5_ = _endpos__1_inlined1_ in @@ -52978,18 +54195,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 52982 "parsing/parser.ml" +# 54199 "parsing/parser.ml" in -# 1109 "parsing/parser.mly" +# 1181 "parsing/parser.mly" ( xs ) -# 52987 "parsing/parser.ml" +# 54204 "parsing/parser.ml" in -# 3716 "parsing/parser.mly" +# 3851 "parsing/parser.mly" ( _1 ) -# 52993 "parsing/parser.ml" +# 54210 "parsing/parser.ml" in let _1 = @@ -52997,20 +54214,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 53003 "parsing/parser.ml" +# 54220 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3702 "parsing/parser.mly" +# 3837 "parsing/parser.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _5 in Rf.tag ~loc:(make_loc _sloc) ~attrs _1 _3 _4 ) -# 53014 "parsing/parser.ml" +# 54231 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53042,9 +54259,9 @@ module Tables = struct let _v : (Parsetree.row_field) = let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 53048 "parsing/parser.ml" +# 54265 "parsing/parser.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -53053,20 +54270,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 53059 "parsing/parser.ml" +# 54276 "parsing/parser.ml" in let _endpos = _endpos__2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3706 "parsing/parser.mly" +# 3841 "parsing/parser.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _2 in Rf.tag ~loc:(make_loc _sloc) ~attrs _1 true [] ) -# 53070 "parsing/parser.ml" +# 54287 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53098,7 +54315,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase) = let arg = # 124 "" ( None ) -# 53102 "parsing/parser.ml" +# 54319 "parsing/parser.ml" in let _endpos_arg_ = _endpos__1_inlined1_ in let dir = @@ -53107,18 +54324,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 53113 "parsing/parser.ml" +# 54330 "parsing/parser.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3906 "parsing/parser.mly" +# 4048 "parsing/parser.mly" ( mk_directive ~loc:_sloc dir arg ) -# 53122 "parsing/parser.ml" +# 54339 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53149,9 +54366,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 829 "parsing/parser.mly" +# 901 "parsing/parser.mly" (string * Location.t * string option) -# 53155 "parsing/parser.ml" +# 54372 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -53162,23 +54379,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 3910 "parsing/parser.mly" +# 4052 "parsing/parser.mly" ( let (s, _, _) = _1 in Pdir_string s ) -# 53168 "parsing/parser.ml" +# 54385 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1036 "parsing/parser.mly" +# 1108 "parsing/parser.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 53176 "parsing/parser.ml" +# 54393 "parsing/parser.ml" in # 126 "" ( Some x ) -# 53182 "parsing/parser.ml" +# 54399 "parsing/parser.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -53188,18 +54405,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 53194 "parsing/parser.ml" +# 54411 "parsing/parser.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3906 "parsing/parser.mly" +# 4048 "parsing/parser.mly" ( mk_directive ~loc:_sloc dir arg ) -# 53203 "parsing/parser.ml" +# 54420 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53230,9 +54447,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 775 "parsing/parser.mly" +# 847 "parsing/parser.mly" (string * char option) -# 53236 "parsing/parser.ml" +# 54453 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (Asttypes.label) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -53243,23 +54460,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 3911 "parsing/parser.mly" +# 4053 "parsing/parser.mly" ( let (n, m) = _1 in Pdir_int (n ,m) ) -# 53249 "parsing/parser.ml" +# 54466 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1036 "parsing/parser.mly" +# 1108 "parsing/parser.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 53257 "parsing/parser.ml" +# 54474 "parsing/parser.ml" in # 126 "" ( Some x ) -# 53263 "parsing/parser.ml" +# 54480 "parsing/parser.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -53269,18 +54486,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 53275 "parsing/parser.ml" +# 54492 "parsing/parser.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3906 "parsing/parser.mly" +# 4048 "parsing/parser.mly" ( mk_directive ~loc:_sloc dir arg ) -# 53284 "parsing/parser.ml" +# 54501 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53320,23 +54537,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 3912 "parsing/parser.mly" +# 4054 "parsing/parser.mly" ( Pdir_ident _1 ) -# 53326 "parsing/parser.ml" +# 54543 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1036 "parsing/parser.mly" +# 1108 "parsing/parser.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 53334 "parsing/parser.ml" +# 54551 "parsing/parser.ml" in # 126 "" ( Some x ) -# 53340 "parsing/parser.ml" +# 54557 "parsing/parser.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -53346,18 +54563,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 53352 "parsing/parser.ml" +# 54569 "parsing/parser.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3906 "parsing/parser.mly" +# 4048 "parsing/parser.mly" ( mk_directive ~loc:_sloc dir arg ) -# 53361 "parsing/parser.ml" +# 54578 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53397,23 +54614,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 3913 "parsing/parser.mly" +# 4055 "parsing/parser.mly" ( Pdir_ident _1 ) -# 53403 "parsing/parser.ml" +# 54620 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1036 "parsing/parser.mly" +# 1108 "parsing/parser.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 53411 "parsing/parser.ml" +# 54628 "parsing/parser.ml" in # 126 "" ( Some x ) -# 53417 "parsing/parser.ml" +# 54634 "parsing/parser.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -53423,18 +54640,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 53429 "parsing/parser.ml" +# 54646 "parsing/parser.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3906 "parsing/parser.mly" +# 4048 "parsing/parser.mly" ( mk_directive ~loc:_sloc dir arg ) -# 53438 "parsing/parser.ml" +# 54655 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53474,23 +54691,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let x = let _1 = -# 3914 "parsing/parser.mly" +# 4056 "parsing/parser.mly" ( Pdir_bool false ) -# 53480 "parsing/parser.ml" +# 54697 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1036 "parsing/parser.mly" +# 1108 "parsing/parser.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 53488 "parsing/parser.ml" +# 54705 "parsing/parser.ml" in # 126 "" ( Some x ) -# 53494 "parsing/parser.ml" +# 54711 "parsing/parser.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -53500,18 +54717,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 53506 "parsing/parser.ml" +# 54723 "parsing/parser.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3906 "parsing/parser.mly" +# 4048 "parsing/parser.mly" ( mk_directive ~loc:_sloc dir arg ) -# 53515 "parsing/parser.ml" +# 54732 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53551,23 +54768,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let x = let _1 = -# 3915 "parsing/parser.mly" +# 4057 "parsing/parser.mly" ( Pdir_bool true ) -# 53557 "parsing/parser.ml" +# 54774 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1036 "parsing/parser.mly" +# 1108 "parsing/parser.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 53565 "parsing/parser.ml" +# 54782 "parsing/parser.ml" in # 126 "" ( Some x ) -# 53571 "parsing/parser.ml" +# 54788 "parsing/parser.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -53577,18 +54794,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 53583 "parsing/parser.ml" +# 54800 "parsing/parser.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3906 "parsing/parser.mly" +# 4048 "parsing/parser.mly" ( mk_directive ~loc:_sloc dir arg ) -# 53592 "parsing/parser.ml" +# 54809 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53628,37 +54845,37 @@ module Tables = struct let _1 = let _1 = let attrs = -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 53634 "parsing/parser.ml" +# 54851 "parsing/parser.ml" in -# 1481 "parsing/parser.mly" +# 1553 "parsing/parser.mly" ( mkstrexp e attrs ) -# 53639 "parsing/parser.ml" +# 54856 "parsing/parser.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 979 "parsing/parser.mly" +# 1051 "parsing/parser.mly" ( text_str _startpos @ [_1] ) -# 53647 "parsing/parser.ml" +# 54864 "parsing/parser.ml" in let _startpos__1_ = _startpos_e_ in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 967 "parsing/parser.mly" +# 1039 "parsing/parser.mly" ( extra_str _startpos _endpos _1 ) -# 53656 "parsing/parser.ml" +# 54873 "parsing/parser.ml" in -# 1246 "parsing/parser.mly" +# 1318 "parsing/parser.mly" ( Ptop_def _1 ) -# 53662 "parsing/parser.ml" +# 54879 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53691,21 +54908,21 @@ module Tables = struct let _1 = # 260 "" ( List.flatten xss ) -# 53695 "parsing/parser.ml" +# 54912 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 967 "parsing/parser.mly" +# 1039 "parsing/parser.mly" ( extra_str _startpos _endpos _1 ) -# 53703 "parsing/parser.ml" +# 54920 "parsing/parser.ml" in -# 1250 "parsing/parser.mly" +# 1322 "parsing/parser.mly" ( Ptop_def _1 ) -# 53709 "parsing/parser.ml" +# 54926 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53735,9 +54952,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.toplevel_phrase) = -# 1254 "parsing/parser.mly" +# 1326 "parsing/parser.mly" ( _1 ) -# 53741 "parsing/parser.ml" +# 54958 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53760,9 +54977,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.toplevel_phrase) = -# 1257 "parsing/parser.mly" +# 1329 "parsing/parser.mly" ( raise End_of_file ) -# 53766 "parsing/parser.ml" +# 54983 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53785,9 +55002,9 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.core_type) = -# 3608 "parsing/parser.mly" +# 3718 "parsing/parser.mly" ( ty ) -# 53791 "parsing/parser.ml" +# 55008 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53815,18 +55032,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 53819 "parsing/parser.ml" +# 55036 "parsing/parser.ml" in -# 1137 "parsing/parser.mly" +# 1209 "parsing/parser.mly" ( xs ) -# 53824 "parsing/parser.ml" +# 55041 "parsing/parser.ml" in -# 3611 "parsing/parser.mly" +# 3721 "parsing/parser.mly" ( Ptyp_tuple tys ) -# 53830 "parsing/parser.ml" +# 55047 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in @@ -53834,15 +55051,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 53840 "parsing/parser.ml" +# 55057 "parsing/parser.ml" in -# 3613 "parsing/parser.mly" +# 3723 "parsing/parser.mly" ( _1 ) -# 53846 "parsing/parser.ml" +# 55063 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53872,9 +55089,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type option * Parsetree.core_type option) = -# 2867 "parsing/parser.mly" +# 2948 "parsing/parser.mly" ( (Some _2, None) ) -# 53878 "parsing/parser.ml" +# 55095 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53918,9 +55135,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.core_type option * Parsetree.core_type option) = -# 2868 "parsing/parser.mly" +# 2949 "parsing/parser.mly" ( (Some _2, Some _4) ) -# 53924 "parsing/parser.ml" +# 55141 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53950,9 +55167,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type option * Parsetree.core_type option) = -# 2869 "parsing/parser.mly" +# 2950 "parsing/parser.mly" ( (None, Some _2) ) -# 53956 "parsing/parser.ml" +# 55173 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53982,9 +55199,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type option * Parsetree.core_type option) = -# 2870 "parsing/parser.mly" +# 2951 "parsing/parser.mly" ( syntax_error() ) -# 53988 "parsing/parser.ml" +# 55205 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54014,9 +55231,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type option * Parsetree.core_type option) = -# 2871 "parsing/parser.mly" +# 2952 "parsing/parser.mly" ( syntax_error() ) -# 54020 "parsing/parser.ml" +# 55237 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54032,9 +55249,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = -# 3200 "parsing/parser.mly" +# 3294 "parsing/parser.mly" ( (Ptype_abstract, Public, None) ) -# 54038 "parsing/parser.ml" +# 55255 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54064,9 +55281,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = -# 3202 "parsing/parser.mly" +# 3296 "parsing/parser.mly" ( _2 ) -# 54070 "parsing/parser.ml" +# 55287 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54089,9 +55306,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3867 "parsing/parser.mly" +# 4002 "parsing/parser.mly" ( _1 ) -# 54095 "parsing/parser.ml" +# 55312 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54130,15 +55347,15 @@ module Tables = struct let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = let _3 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 54136 "parsing/parser.ml" +# 55353 "parsing/parser.ml" in -# 3231 "parsing/parser.mly" +# 3336 "parsing/parser.mly" ( {_2 with ptyp_attributes = _3}, _1 ) -# 54142 "parsing/parser.ml" +# 55359 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54154,9 +55371,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = -# 3210 "parsing/parser.mly" +# 3304 "parsing/parser.mly" ( [] ) -# 54160 "parsing/parser.ml" +# 55377 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54179,9 +55396,9 @@ module Tables = struct let _startpos = _startpos_p_ in let _endpos = _endpos_p_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = -# 3212 "parsing/parser.mly" +# 3306 "parsing/parser.mly" ( [p] ) -# 54185 "parsing/parser.ml" +# 55402 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54221,18 +55438,18 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 54225 "parsing/parser.ml" +# 55442 "parsing/parser.ml" in -# 1109 "parsing/parser.mly" +# 1181 "parsing/parser.mly" ( xs ) -# 54230 "parsing/parser.ml" +# 55447 "parsing/parser.ml" in -# 3216 "parsing/parser.mly" +# 3310 "parsing/parser.mly" ( ps ) -# 54236 "parsing/parser.ml" +# 55453 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54263,24 +55480,24 @@ module Tables = struct let _endpos = _endpos_tyvar_ in let _v : (Parsetree.core_type) = let _1 = let _1 = -# 3237 "parsing/parser.mly" +# 3342 "parsing/parser.mly" ( Ptyp_var tyvar ) -# 54269 "parsing/parser.ml" +# 55486 "parsing/parser.ml" in let _endpos__1_ = _endpos_tyvar_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 54278 "parsing/parser.ml" +# 55495 "parsing/parser.ml" in -# 3240 "parsing/parser.mly" +# 3345 "parsing/parser.mly" ( _1 ) -# 54284 "parsing/parser.ml" +# 55501 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54304,23 +55521,23 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = let _1 = let _1 = -# 3239 "parsing/parser.mly" +# 3344 "parsing/parser.mly" ( Ptyp_any ) -# 54310 "parsing/parser.ml" +# 55527 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1012 "parsing/parser.mly" +# 1084 "parsing/parser.mly" ( mktyp ~loc:_sloc _1 ) -# 54318 "parsing/parser.ml" +# 55535 "parsing/parser.ml" in -# 3240 "parsing/parser.mly" +# 3345 "parsing/parser.mly" ( _1 ) -# 54324 "parsing/parser.ml" +# 55541 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54336,9 +55553,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3244 "parsing/parser.mly" +# 3349 "parsing/parser.mly" ( NoVariance, NoInjectivity ) -# 54342 "parsing/parser.ml" +# 55559 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54361,9 +55578,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3245 "parsing/parser.mly" +# 3350 "parsing/parser.mly" ( Covariant, NoInjectivity ) -# 54367 "parsing/parser.ml" +# 55584 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54386,9 +55603,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3246 "parsing/parser.mly" +# 3351 "parsing/parser.mly" ( Contravariant, NoInjectivity ) -# 54392 "parsing/parser.ml" +# 55609 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54411,9 +55628,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3247 "parsing/parser.mly" +# 3352 "parsing/parser.mly" ( NoVariance, Injective ) -# 54417 "parsing/parser.ml" +# 55634 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54443,9 +55660,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3248 "parsing/parser.mly" +# 3353 "parsing/parser.mly" ( Covariant, Injective ) -# 54449 "parsing/parser.ml" +# 55666 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54475,9 +55692,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3248 "parsing/parser.mly" +# 3353 "parsing/parser.mly" ( Covariant, Injective ) -# 54481 "parsing/parser.ml" +# 55698 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54507,9 +55724,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3249 "parsing/parser.mly" +# 3354 "parsing/parser.mly" ( Contravariant, Injective ) -# 54513 "parsing/parser.ml" +# 55730 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54539,9 +55756,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 3249 "parsing/parser.mly" +# 3354 "parsing/parser.mly" ( Contravariant, Injective ) -# 54545 "parsing/parser.ml" +# 55762 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54560,20 +55777,20 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 767 "parsing/parser.mly" +# 839 "parsing/parser.mly" (string) -# 54566 "parsing/parser.ml" +# 55783 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3251 "parsing/parser.mly" +# 3356 "parsing/parser.mly" ( if _1 = "+!" then Covariant, Injective else if _1 = "-!" then Contravariant, Injective else expecting _loc__1_ "type_variance" ) -# 54577 "parsing/parser.ml" +# 55794 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54592,20 +55809,20 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 815 "parsing/parser.mly" +# 887 "parsing/parser.mly" (string) -# 54598 "parsing/parser.ml" +# 55815 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3255 "parsing/parser.mly" +# 3360 "parsing/parser.mly" ( if _1 = "!+" then Covariant, Injective else if _1 = "!-" then Contravariant, Injective else expecting _loc__1_ "type_variance" ) -# 54609 "parsing/parser.ml" +# 55826 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54639,39 +55856,39 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 54643 "parsing/parser.ml" +# 55860 "parsing/parser.ml" in let xs = let _1 = -# 1045 "parsing/parser.mly" +# 1117 "parsing/parser.mly" ( [] ) -# 54649 "parsing/parser.ml" +# 55866 "parsing/parser.ml" in -# 1277 "parsing/parser.mly" +# 1349 "parsing/parser.mly" ( _1 ) -# 54654 "parsing/parser.ml" +# 55871 "parsing/parser.ml" in # 267 "" ( xs @ ys ) -# 54660 "parsing/parser.ml" +# 55877 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 971 "parsing/parser.mly" +# 1043 "parsing/parser.mly" ( extra_def _startpos _endpos _1 ) -# 54669 "parsing/parser.ml" +# 55886 "parsing/parser.ml" in -# 1270 "parsing/parser.mly" +# 1342 "parsing/parser.mly" ( _1 ) -# 54675 "parsing/parser.ml" +# 55892 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54719,7 +55936,7 @@ module Tables = struct let ys = # 260 "" ( List.flatten xss ) -# 54723 "parsing/parser.ml" +# 55940 "parsing/parser.ml" in let xs = let _1 = @@ -54727,61 +55944,61 @@ module Tables = struct let _1 = let _1 = let attrs = -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 54733 "parsing/parser.ml" +# 55950 "parsing/parser.ml" in -# 1481 "parsing/parser.mly" +# 1553 "parsing/parser.mly" ( mkstrexp e attrs ) -# 54738 "parsing/parser.ml" +# 55955 "parsing/parser.ml" in -# 989 "parsing/parser.mly" +# 1061 "parsing/parser.mly" ( Ptop_def [_1] ) -# 54744 "parsing/parser.ml" +# 55961 "parsing/parser.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 987 "parsing/parser.mly" +# 1059 "parsing/parser.mly" ( text_def _startpos @ [_1] ) -# 54752 "parsing/parser.ml" +# 55969 "parsing/parser.ml" in -# 1047 "parsing/parser.mly" +# 1119 "parsing/parser.mly" ( x ) -# 54758 "parsing/parser.ml" +# 55975 "parsing/parser.ml" in -# 1277 "parsing/parser.mly" +# 1349 "parsing/parser.mly" ( _1 ) -# 54764 "parsing/parser.ml" +# 55981 "parsing/parser.ml" in # 267 "" ( xs @ ys ) -# 54770 "parsing/parser.ml" +# 55987 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 971 "parsing/parser.mly" +# 1043 "parsing/parser.mly" ( extra_def _startpos _endpos _1 ) -# 54779 "parsing/parser.ml" +# 55996 "parsing/parser.ml" in -# 1270 "parsing/parser.mly" +# 1342 "parsing/parser.mly" ( _1 ) -# 54785 "parsing/parser.ml" +# 56002 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54818,9 +56035,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Asttypes.label) = -# 3786 "parsing/parser.mly" +# 3921 "parsing/parser.mly" ( _2 ) -# 54824 "parsing/parser.ml" +# 56041 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54859,9 +56076,9 @@ module Tables = struct let _v : (Asttypes.label) = let _loc__3_ = (_startpos__3_, _endpos__3_) in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3787 "parsing/parser.mly" +# 3922 "parsing/parser.mly" ( unclosed "(" _loc__1_ ")" _loc__3_ ) -# 54865 "parsing/parser.ml" +# 56082 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54892,9 +56109,9 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : (Asttypes.label) = let _loc__2_ = (_startpos__2_, _endpos__2_) in -# 3788 "parsing/parser.mly" +# 3923 "parsing/parser.mly" ( expecting _loc__2_ "operator" ) -# 54898 "parsing/parser.ml" +# 56115 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54932,9 +56149,9 @@ module Tables = struct let _endpos = _endpos__3_ in let _v : (Asttypes.label) = let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3789 "parsing/parser.mly" +# 3924 "parsing/parser.mly" ( expecting _loc__3_ "module-expr" ) -# 54938 "parsing/parser.ml" +# 56155 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54953,17 +56170,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 54959 "parsing/parser.ml" +# 56176 "parsing/parser.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3792 "parsing/parser.mly" +# 3927 "parsing/parser.mly" ( _1 ) -# 54967 "parsing/parser.ml" +# 56184 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -54986,9 +56203,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.label) = -# 3793 "parsing/parser.mly" +# 3928 "parsing/parser.mly" ( _1 ) -# 54992 "parsing/parser.ml" +# 56209 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55011,9 +56228,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 3861 "parsing/parser.mly" +# 3996 "parsing/parser.mly" ( _1 ) -# 55017 "parsing/parser.ml" +# 56234 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55058,9 +56275,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 55064 "parsing/parser.ml" +# 56281 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let mutable_ : (Asttypes.mutable_flag) = Obj.magic mutable_ in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -55072,33 +56289,33 @@ module Tables = struct Parsetree.attributes) = let label = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 55078 "parsing/parser.ml" +# 56295 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 55086 "parsing/parser.ml" +# 56303 "parsing/parser.ml" in let attrs = -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 55092 "parsing/parser.ml" +# 56309 "parsing/parser.ml" in let _1 = -# 4012 "parsing/parser.mly" +# 4154 "parsing/parser.mly" ( Fresh ) -# 55097 "parsing/parser.ml" +# 56314 "parsing/parser.ml" in -# 2060 "parsing/parser.mly" +# 2132 "parsing/parser.mly" ( (label, mutable_, Cfk_virtual ty), attrs ) -# 55102 "parsing/parser.ml" +# 56319 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55143,9 +56360,9 @@ module Tables = struct let _6 : (Parsetree.expression) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 55149 "parsing/parser.ml" +# 56366 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -55157,33 +56374,33 @@ module Tables = struct Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 55163 "parsing/parser.ml" +# 56380 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 55171 "parsing/parser.ml" +# 56388 "parsing/parser.ml" in let _2 = -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 55177 "parsing/parser.ml" +# 56394 "parsing/parser.ml" in let _1 = -# 4015 "parsing/parser.mly" +# 4157 "parsing/parser.mly" ( Fresh ) -# 55182 "parsing/parser.ml" +# 56399 "parsing/parser.ml" in -# 2062 "parsing/parser.mly" +# 2134 "parsing/parser.mly" ( (_4, _3, Cfk_concrete (_1, _6)), _2 ) -# 55187 "parsing/parser.ml" +# 56404 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55234,9 +56451,9 @@ module Tables = struct let _6 : (Parsetree.expression) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 55240 "parsing/parser.ml" +# 56457 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -55249,36 +56466,36 @@ module Tables = struct Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 55255 "parsing/parser.ml" +# 56472 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 55263 "parsing/parser.ml" +# 56480 "parsing/parser.ml" in let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 55271 "parsing/parser.ml" +# 56488 "parsing/parser.ml" in let _1 = -# 4016 "parsing/parser.mly" +# 4158 "parsing/parser.mly" ( Override ) -# 55277 "parsing/parser.ml" +# 56494 "parsing/parser.ml" in -# 2062 "parsing/parser.mly" +# 2134 "parsing/parser.mly" ( (_4, _3, Cfk_concrete (_1, _6)), _2 ) -# 55282 "parsing/parser.ml" +# 56499 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55330,9 +56547,9 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic _5 in let _1_inlined1 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 55336 "parsing/parser.ml" +# 56553 "parsing/parser.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -55344,30 +56561,30 @@ module Tables = struct Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 55350 "parsing/parser.ml" +# 56567 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 55358 "parsing/parser.ml" +# 56575 "parsing/parser.ml" in let _startpos__4_ = _startpos__1_inlined1_ in let _2 = -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 55365 "parsing/parser.ml" +# 56582 "parsing/parser.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in let _1 = -# 4015 "parsing/parser.mly" +# 4157 "parsing/parser.mly" ( Fresh ) -# 55371 "parsing/parser.ml" +# 56588 "parsing/parser.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos__7_ in @@ -55383,11 +56600,11 @@ module Tables = struct _startpos__4_ in let _sloc = (_symbolstartpos, _endpos) in -# 2065 "parsing/parser.mly" +# 2137 "parsing/parser.mly" ( let e = mkexp_constraint ~loc:_sloc _7 _5 in (_4, _3, Cfk_concrete (_1, e)), _2 ) -# 55391 "parsing/parser.ml" +# 56608 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55445,9 +56662,9 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : (Parsetree.core_type option * Parsetree.core_type option) = Obj.magic _5 in let _1_inlined2 : ( -# 789 "parsing/parser.mly" +# 861 "parsing/parser.mly" (string) -# 55451 "parsing/parser.ml" +# 56668 "parsing/parser.ml" ) = Obj.magic _1_inlined2 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in @@ -55460,33 +56677,33 @@ module Tables = struct Parsetree.attributes) = let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 3760 "parsing/parser.mly" +# 3895 "parsing/parser.mly" ( _1 ) -# 55466 "parsing/parser.ml" +# 56683 "parsing/parser.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 55474 "parsing/parser.ml" +# 56691 "parsing/parser.ml" in let _startpos__4_ = _startpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 55483 "parsing/parser.ml" +# 56700 "parsing/parser.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let _1 = -# 4016 "parsing/parser.mly" +# 4158 "parsing/parser.mly" ( Override ) -# 55490 "parsing/parser.ml" +# 56707 "parsing/parser.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -55501,11 +56718,11 @@ module Tables = struct _startpos__4_ in let _sloc = (_symbolstartpos, _endpos) in -# 2065 "parsing/parser.mly" +# 2137 "parsing/parser.mly" ( let e = mkexp_constraint ~loc:_sloc _7 _5 in (_4, _3, Cfk_concrete (_1, e)), _2 ) -# 55509 "parsing/parser.ml" +# 56726 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55572,9 +56789,9 @@ module Tables = struct let _v : (Parsetree.value_description * string Asttypes.loc option) = let attrs2 = let _1 = _1_inlined3 in -# 4111 "parsing/parser.mly" +# 4253 "parsing/parser.mly" ( _1 ) -# 55578 "parsing/parser.ml" +# 56795 "parsing/parser.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -55584,30 +56801,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 55590 "parsing/parser.ml" +# 56807 "parsing/parser.ml" in let attrs1 = let _1 = _1_inlined1 in -# 4115 "parsing/parser.mly" +# 4257 "parsing/parser.mly" ( _1 ) -# 55598 "parsing/parser.ml" +# 56815 "parsing/parser.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3071 "parsing/parser.mly" +# 3163 "parsing/parser.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Val.mk id ty ~attrs ~loc ~docs, ext ) -# 55611 "parsing/parser.ml" +# 56828 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55623,9 +56840,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.virtual_flag) = -# 3976 "parsing/parser.mly" +# 4118 "parsing/parser.mly" ( Concrete ) -# 55629 "parsing/parser.ml" +# 56846 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55648,9 +56865,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.virtual_flag) = -# 3977 "parsing/parser.mly" +# 4119 "parsing/parser.mly" ( Virtual ) -# 55654 "parsing/parser.ml" +# 56871 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55673,9 +56890,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag) = -# 4000 "parsing/parser.mly" +# 4142 "parsing/parser.mly" ( Immutable ) -# 55679 "parsing/parser.ml" +# 56896 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55705,9 +56922,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag) = -# 4001 "parsing/parser.mly" +# 4143 "parsing/parser.mly" ( Mutable ) -# 55711 "parsing/parser.ml" +# 56928 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55737,9 +56954,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag) = -# 4002 "parsing/parser.mly" +# 4144 "parsing/parser.mly" ( Mutable ) -# 55743 "parsing/parser.ml" +# 56960 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55762,9 +56979,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag) = -# 4007 "parsing/parser.mly" +# 4149 "parsing/parser.mly" ( Public ) -# 55768 "parsing/parser.ml" +# 56985 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55794,9 +57011,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 4008 "parsing/parser.mly" +# 4150 "parsing/parser.mly" ( Private ) -# 55800 "parsing/parser.ml" +# 57017 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55826,9 +57043,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 4009 "parsing/parser.mly" +# 4151 "parsing/parser.mly" ( Private ) -# 55832 "parsing/parser.ml" +# 57049 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55890,27 +57107,27 @@ module Tables = struct let xs = # 253 "" ( List.rev xs ) -# 55894 "parsing/parser.ml" +# 57111 "parsing/parser.ml" in -# 1059 "parsing/parser.mly" +# 1131 "parsing/parser.mly" ( xs ) -# 55899 "parsing/parser.ml" +# 57116 "parsing/parser.ml" in -# 3171 "parsing/parser.mly" +# 3265 "parsing/parser.mly" ( _1 ) -# 55905 "parsing/parser.ml" +# 57122 "parsing/parser.ml" in let _endpos__6_ = _endpos_xs_ in let _5 = let _1 = _1_inlined2 in -# 3521 "parsing/parser.mly" +# 3631 "parsing/parser.mly" ( _1 ) -# 55914 "parsing/parser.ml" +# 57131 "parsing/parser.ml" in let _3 = @@ -55919,16 +57136,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 55925 "parsing/parser.ml" +# 57142 "parsing/parser.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3440 "parsing/parser.mly" +# 3545 "parsing/parser.mly" ( let lident = loc_last _3 in Pwith_type (_3, @@ -55938,7 +57155,7 @@ module Tables = struct ~manifest:_5 ~priv:_4 ~loc:(make_loc _sloc))) ) -# 55942 "parsing/parser.ml" +# 57159 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55991,9 +57208,9 @@ module Tables = struct let _v : (Parsetree.with_constraint) = let _5 = let _1 = _1_inlined2 in -# 3521 "parsing/parser.mly" +# 3631 "parsing/parser.mly" ( _1 ) -# 55997 "parsing/parser.ml" +# 57214 "parsing/parser.ml" in let _endpos__5_ = _endpos__1_inlined2_ in @@ -56003,16 +57220,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 56009 "parsing/parser.ml" +# 57226 "parsing/parser.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3453 "parsing/parser.mly" +# 3558 "parsing/parser.mly" ( let lident = loc_last _3 in Pwith_typesubst (_3, @@ -56020,7 +57237,7 @@ module Tables = struct ~params:_2 ~manifest:_5 ~loc:(make_loc _sloc))) ) -# 56024 "parsing/parser.ml" +# 57241 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56069,9 +57286,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 56075 "parsing/parser.ml" +# 57292 "parsing/parser.ml" in let _2 = @@ -56080,15 +57297,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 56086 "parsing/parser.ml" +# 57303 "parsing/parser.ml" in -# 3461 "parsing/parser.mly" +# 3566 "parsing/parser.mly" ( Pwith_module (_2, _4) ) -# 56092 "parsing/parser.ml" +# 57309 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56137,9 +57354,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 56143 "parsing/parser.ml" +# 57360 "parsing/parser.ml" in let _2 = @@ -56148,15 +57365,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 56154 "parsing/parser.ml" +# 57371 "parsing/parser.ml" in -# 3463 "parsing/parser.mly" +# 3568 "parsing/parser.mly" ( Pwith_modsubst (_2, _4) ) -# 56160 "parsing/parser.ml" +# 57377 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56212,15 +57429,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 56218 "parsing/parser.ml" +# 57435 "parsing/parser.ml" in -# 3465 "parsing/parser.mly" +# 3570 "parsing/parser.mly" ( Pwith_modtype (l, rhs) ) -# 56224 "parsing/parser.ml" +# 57441 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56276,15 +57493,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 975 "parsing/parser.mly" +# 1047 "parsing/parser.mly" ( mkrhs _1 _sloc ) -# 56282 "parsing/parser.ml" +# 57499 "parsing/parser.ml" in -# 3467 "parsing/parser.mly" +# 3572 "parsing/parser.mly" ( Pwith_modtypesubst (l, rhs) ) -# 56288 "parsing/parser.ml" +# 57505 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56307,9 +57524,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag) = -# 3470 "parsing/parser.mly" +# 3575 "parsing/parser.mly" ( Public ) -# 56313 "parsing/parser.ml" +# 57530 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56339,9 +57556,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 3471 "parsing/parser.mly" +# 3576 "parsing/parser.mly" ( Private ) -# 56345 "parsing/parser.ml" +# 57562 "parsing/parser.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56369,59 +57586,59 @@ end let use_file = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2069 lexer lexbuf) : (Parsetree.toplevel_phrase list)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2139 lexer lexbuf) : (Parsetree.toplevel_phrase list)) and toplevel_phrase = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2049 lexer lexbuf) : (Parsetree.toplevel_phrase)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2119 lexer lexbuf) : (Parsetree.toplevel_phrase)) and parse_val_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2043 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2113 lexer lexbuf) : (Longident.t)) and parse_pattern = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2039 lexer lexbuf) : (Parsetree.pattern)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2109 lexer lexbuf) : (Parsetree.pattern)) and parse_mty_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2035 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2105 lexer lexbuf) : (Longident.t)) and parse_module_type = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2031 lexer lexbuf) : (Parsetree.module_type)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2101 lexer lexbuf) : (Parsetree.module_type)) and parse_module_expr = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2027 lexer lexbuf) : (Parsetree.module_expr)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2097 lexer lexbuf) : (Parsetree.module_expr)) and parse_mod_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2023 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2093 lexer lexbuf) : (Longident.t)) and parse_mod_ext_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2019 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2089 lexer lexbuf) : (Longident.t)) and parse_expression = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2015 lexer lexbuf) : (Parsetree.expression)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2085 lexer lexbuf) : (Parsetree.expression)) and parse_core_type = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2011 lexer lexbuf) : (Parsetree.core_type)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2081 lexer lexbuf) : (Parsetree.core_type)) and parse_constr_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 2007 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2077 lexer lexbuf) : (Longident.t)) and parse_any_longident = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 1989 lexer lexbuf) : (Longident.t)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2059 lexer lexbuf) : (Longident.t)) and interface = fun lexer lexbuf -> - (Obj.magic (MenhirInterpreter.entry `Simplified 1985 lexer lexbuf) : (Parsetree.signature)) + (Obj.magic (MenhirInterpreter.entry `Simplified 2055 lexer lexbuf) : (Parsetree.signature)) and implementation = fun lexer lexbuf -> @@ -56431,59 +57648,59 @@ module Incremental = struct let use_file = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2069 initial_position) : (Parsetree.toplevel_phrase list) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2139 initial_position) : (Parsetree.toplevel_phrase list) MenhirInterpreter.checkpoint) and toplevel_phrase = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2049 initial_position) : (Parsetree.toplevel_phrase) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2119 initial_position) : (Parsetree.toplevel_phrase) MenhirInterpreter.checkpoint) and parse_val_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2043 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2113 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_pattern = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2039 initial_position) : (Parsetree.pattern) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2109 initial_position) : (Parsetree.pattern) MenhirInterpreter.checkpoint) and parse_mty_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2035 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2105 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_module_type = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2031 initial_position) : (Parsetree.module_type) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2101 initial_position) : (Parsetree.module_type) MenhirInterpreter.checkpoint) and parse_module_expr = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2027 initial_position) : (Parsetree.module_expr) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2097 initial_position) : (Parsetree.module_expr) MenhirInterpreter.checkpoint) and parse_mod_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2023 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2093 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_mod_ext_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2019 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2089 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_expression = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2015 initial_position) : (Parsetree.expression) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2085 initial_position) : (Parsetree.expression) MenhirInterpreter.checkpoint) and parse_core_type = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2011 initial_position) : (Parsetree.core_type) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2081 initial_position) : (Parsetree.core_type) MenhirInterpreter.checkpoint) and parse_constr_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 2007 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2077 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and parse_any_longident = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 1989 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2059 initial_position) : (Longident.t) MenhirInterpreter.checkpoint) and interface = fun initial_position -> - (Obj.magic (MenhirInterpreter.start 1985 initial_position) : (Parsetree.signature) MenhirInterpreter.checkpoint) + (Obj.magic (MenhirInterpreter.start 2055 initial_position) : (Parsetree.signature) MenhirInterpreter.checkpoint) and implementation = fun initial_position -> @@ -56491,12 +57708,12 @@ module Incremental = struct end -# 4147 "parsing/parser.mly" +# 4289 "parsing/parser.mly" -# 56498 "parsing/parser.ml" +# 57715 "parsing/parser.ml" # 269 "" -# 56503 "parsing/parser.ml" +# 57720 "parsing/parser.ml" diff --git a/parsing/ast_helper.ml b/parsing/ast_helper.ml index a1da7df974..ac6a5a0f36 100644 --- a/parsing/ast_helper.ml +++ b/parsing/ast_helper.ml @@ -69,14 +69,15 @@ module Typ = struct let class_ ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_class (a, b)) let alias ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_alias (a, b)) let variant ?loc ?attrs a b c = mk ?loc ?attrs (Ptyp_variant (a, b, c)) - let poly ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_poly (a, b)) + let poly ?loc ?attrs a b c = mk ?loc ?attrs (Ptyp_poly (a, b, c)) let package ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_package (a, b)) let extension ?loc ?attrs a = mk ?loc ?attrs (Ptyp_extension a) + let layout ?loc ?attrs a b = mk ?loc ?attrs (Ptyp_layout (a, b)) let force_poly t = match t.ptyp_desc with | Ptyp_poly _ -> t - | _ -> poly ~loc:t.ptyp_loc [] t (* -> ghost? *) + | _ -> poly ~loc:t.ptyp_loc [] t [] (* -> ghost? *) let varify_constructors var_names t = let check_variable vl loc v = @@ -108,14 +109,16 @@ module Typ = struct | Ptyp_variant(row_field_list, flag, lbl_lst_option) -> Ptyp_variant(List.map loop_row_field row_field_list, flag, lbl_lst_option) - | Ptyp_poly(string_lst, core_type) -> + | Ptyp_poly(string_lst, core_type, layouts) -> List.iter (fun v -> check_variable var_names t.ptyp_loc v.txt) string_lst; - Ptyp_poly(string_lst, loop core_type) + Ptyp_poly(string_lst, loop core_type, layouts) | Ptyp_package(longident,lst) -> Ptyp_package(longident,List.map (fun (n,typ) -> (n,loop typ) ) lst) | Ptyp_extension (s, arg) -> Ptyp_extension (s, arg) + | Ptyp_layout (t, layout) -> + Ptyp_layout (loop t, layout) in {t with ptyp_desc = desc} and loop_row_field field = @@ -206,7 +209,7 @@ module Exp = struct let lazy_ ?loc ?attrs a = mk ?loc ?attrs (Pexp_lazy a) let poly ?loc ?attrs a b = mk ?loc ?attrs (Pexp_poly (a, b)) let object_ ?loc ?attrs a = mk ?loc ?attrs (Pexp_object a) - let newtype ?loc ?attrs a b = mk ?loc ?attrs (Pexp_newtype (a, b)) + let newtype ?loc ?attrs a b c = mk ?loc ?attrs (Pexp_newtype (a, b, c)) let pack ?loc ?attrs a = mk ?loc ?attrs (Pexp_pack a) let open_ ?loc ?attrs a b = mk ?loc ?attrs (Pexp_open (a, b)) let letop ?loc ?attrs let_ ands body = @@ -511,11 +514,13 @@ module Type = struct let mk ?(loc = !default_loc) ?(attrs = []) ?(docs = empty_docs) ?(text = []) ?(params = []) + ?layout ?(cstrs = []) ?(kind = Ptype_abstract) ?(priv = Public) ?manifest name = + let layout_attrs = Option.to_list layout in { ptype_name = name; ptype_params = params; @@ -524,15 +529,17 @@ module Type = struct ptype_private = priv; ptype_manifest = manifest; ptype_attributes = - add_text_attrs text (add_docs_attrs docs attrs); + layout_attrs @ add_text_attrs text (add_docs_attrs docs attrs); ptype_loc = loc; } let constructor ?(loc = !default_loc) ?(attrs = []) ?(info = empty_info) - ?(vars = []) ?(args = Pcstr_tuple []) ?res name = + ?(vars = [],[]) ?(args = Pcstr_tuple []) ?res name = + let vars, layouts = vars in { pcd_name = name; pcd_vars = vars; + pcd_layouts = layouts; pcd_args = args; pcd_res = res; pcd_loc = loc; @@ -582,10 +589,11 @@ module Te = struct } let decl ?(loc = !default_loc) ?(attrs = []) ?(docs = empty_docs) - ?(info = empty_info) ?(vars = []) ?(args = Pcstr_tuple []) ?res name = + ?(info = empty_info) ?(vars = [],[]) ?(args = Pcstr_tuple []) ?res name = + let vars, layouts = vars in { pext_name = name; - pext_kind = Pext_decl(vars, args, res); + pext_kind = Pext_decl(vars, args, res, layouts); pext_loc = loc; pext_attributes = add_docs_attrs docs (add_info_attrs info attrs); } diff --git a/parsing/ast_helper.mli b/parsing/ast_helper.mli index fb726f4513..01742740c2 100644 --- a/parsing/ast_helper.mli +++ b/parsing/ast_helper.mli @@ -84,10 +84,13 @@ module Typ : val alias: ?loc:loc -> ?attrs:attrs -> core_type -> string -> core_type val variant: ?loc:loc -> ?attrs:attrs -> row_field list -> closed_flag -> label list option -> core_type - val poly: ?loc:loc -> ?attrs:attrs -> str list -> core_type -> core_type + val poly: ?loc:loc -> ?attrs:attrs -> str list -> core_type + -> layout_annotation with_loc option list -> core_type val package: ?loc:loc -> ?attrs:attrs -> lid -> (lid * core_type) list -> core_type val extension: ?loc:loc -> ?attrs:attrs -> extension -> core_type + val layout: ?loc:loc -> ?attrs:attrs -> core_type + -> layout_annotation with_loc -> core_type val force_poly: core_type -> core_type @@ -185,7 +188,8 @@ module Exp: val poly: ?loc:loc -> ?attrs:attrs -> expression -> core_type option -> expression val object_: ?loc:loc -> ?attrs:attrs -> class_structure -> expression - val newtype: ?loc:loc -> ?attrs:attrs -> str -> expression -> expression + val newtype: ?loc:loc -> ?attrs:attrs -> str -> expression + -> layout_annotation with_loc option -> expression val pack: ?loc:loc -> ?attrs:attrs -> module_expr -> expression val open_: ?loc:loc -> ?attrs:attrs -> open_declaration -> expression -> expression @@ -210,12 +214,14 @@ module Type: sig val mk: ?loc:loc -> ?attrs:attrs -> ?docs:docs -> ?text:text -> ?params:(core_type * (variance * injectivity)) list -> + ?layout:attribute -> ?cstrs:(core_type * core_type * loc) list -> ?kind:type_kind -> ?priv:private_flag -> ?manifest:core_type -> str -> type_declaration val constructor: ?loc:loc -> ?attrs:attrs -> ?info:info -> - ?vars:str list -> ?args:constructor_arguments -> ?res:core_type -> + ?vars:(str list * layout_annotation with_loc option list) -> + ?args:constructor_arguments -> ?res:core_type -> str -> constructor_declaration val field: ?loc:loc -> ?attrs:attrs -> ?info:info -> @@ -236,7 +242,8 @@ module Te: str -> extension_constructor_kind -> extension_constructor val decl: ?loc:loc -> ?attrs:attrs -> ?docs:docs -> ?info:info -> - ?vars:str list -> ?args:constructor_arguments -> ?res:core_type -> + ?vars:(str list * layout_annotation with_loc option list) -> + ?args:constructor_arguments -> ?res:core_type -> str -> extension_constructor val rebind: ?loc:loc -> ?attrs:attrs -> ?docs:docs -> ?info:info -> diff --git a/parsing/ast_iterator.ml b/parsing/ast_iterator.ml index 468baedce0..8f3e9fbd22 100644 --- a/parsing/ast_iterator.ml +++ b/parsing/ast_iterator.ml @@ -46,6 +46,7 @@ type iterator = { include_declaration: iterator -> include_declaration -> unit; include_description: iterator -> include_description -> unit; label_declaration: iterator -> label_declaration -> unit; + layout_annotation:iterator -> Asttypes.layout_annotation -> unit; location: iterator -> Location.t -> unit; module_binding: iterator -> module_binding -> unit; module_declaration: iterator -> module_declaration -> unit; @@ -84,6 +85,9 @@ let iter_tuple3 f1 f2 f3 (x, y, z) = f1 x; f2 y; f3 z let iter_opt f = function None -> () | Some x -> f x let iter_loc sub {loc; txt = _} = sub.location sub loc +let iter_loc2 sub f { loc; txt } = + sub.location sub loc; + f sub txt module T = struct (* Type expressions for the core language *) @@ -110,6 +114,9 @@ module T = struct | Otag (_, t) -> sub.typ sub t | Oinherit t -> sub.typ sub t + let type_vars_layouts sub (tvls : type_vars_layouts) = + List.iter (iter_opt (iter_loc2 sub sub.layout_annotation)) tvls + let iter sub {ptyp_desc = desc; ptyp_loc = loc; ptyp_attributes = attrs} = sub.location sub loc; sub.attributes sub attrs; @@ -128,11 +135,17 @@ module T = struct | Ptyp_alias (t, _) -> sub.typ sub t | Ptyp_variant (rl, _b, _ll) -> List.iter (row_field sub) rl - | Ptyp_poly (_, t) -> sub.typ sub t + | Ptyp_poly (_, t, lays) -> + sub.typ sub t; + type_vars_layouts sub lays | Ptyp_package (lid, l) -> iter_loc sub lid; List.iter (iter_tuple (iter_loc sub) (sub.typ sub)) l | Ptyp_extension x -> sub.extension sub x + | Ptyp_layout (t, layout) -> + sub.typ sub t; + iter_loc sub layout; + sub.layout_annotation sub layout.txt let iter_type_declaration sub {ptype_name; ptype_params; ptype_cstrs; @@ -182,10 +195,11 @@ module T = struct sub.attributes sub ptyexn_attributes let iter_extension_constructor_kind sub = function - Pext_decl(vars, ctl, cto) -> + Pext_decl(vars, ctl, cto, layouts) -> List.iter (iter_loc sub) vars; iter_constructor_arguments sub ctl; - iter_opt (sub.typ sub) cto + iter_opt (sub.typ sub) cto; + type_vars_layouts sub layouts | Pext_rebind li -> iter_loc sub li @@ -410,7 +424,9 @@ module E = struct | Pexp_poly (e, t) -> sub.expr sub e; iter_opt (sub.typ sub) t | Pexp_object cls -> sub.class_structure sub cls - | Pexp_newtype (_s, e) -> sub.expr sub e + | Pexp_newtype (_s, e, l) -> + iter_opt (iter_loc2 sub sub.layout_annotation) l; + sub.expr sub e | Pexp_pack me -> sub.module_expr sub me | Pexp_open (o, e) -> sub.open_declaration sub o; sub.expr sub e @@ -641,10 +657,11 @@ let default_iterator = constructor_declaration = - (fun this {pcd_name; pcd_vars; pcd_args; + (fun this {pcd_name; pcd_vars; pcd_layouts; pcd_args; pcd_res; pcd_loc; pcd_attributes} -> iter_loc this pcd_name; List.iter (iter_loc this) pcd_vars; + T.type_vars_layouts this pcd_layouts; T.iter_constructor_arguments this pcd_args; iter_opt (this.typ this) pcd_res; this.location this pcd_loc; @@ -683,4 +700,6 @@ let default_iterator = | PTyp x -> this.typ this x | PPat (x, g) -> this.pat this x; iter_opt (this.expr this) g ); + + layout_annotation = (fun _this _l -> ()); } diff --git a/parsing/ast_iterator.mli b/parsing/ast_iterator.mli index 638ac5e8b6..ac792adef2 100644 --- a/parsing/ast_iterator.mli +++ b/parsing/ast_iterator.mli @@ -49,6 +49,7 @@ type iterator = { include_declaration: iterator -> include_declaration -> unit; include_description: iterator -> include_description -> unit; label_declaration: iterator -> label_declaration -> unit; + layout_annotation: iterator -> Asttypes.layout_annotation -> unit; location: iterator -> Location.t -> unit; module_binding: iterator -> module_binding -> unit; module_declaration: iterator -> module_declaration -> unit; diff --git a/parsing/ast_mapper.ml b/parsing/ast_mapper.ml index 724f72fdfb..261cdc90df 100644 --- a/parsing/ast_mapper.ml +++ b/parsing/ast_mapper.ml @@ -52,6 +52,7 @@ type mapper = { include_declaration: mapper -> include_declaration -> include_declaration; include_description: mapper -> include_description -> include_description; label_declaration: mapper -> label_declaration -> label_declaration; + layout_annotation: mapper -> Asttypes.layout_annotation -> Asttypes.layout_annotation; location: mapper -> Location.t -> Location.t; module_binding: mapper -> module_binding -> module_binding; module_declaration: mapper -> module_declaration -> module_declaration; @@ -85,6 +86,8 @@ let map_tuple3 f1 f2 f3 (x, y, z) = (f1 x, f2 y, f3 z) let map_opt f = function None -> None | Some x -> Some (f x) let map_loc sub {loc; txt} = {loc = sub.location sub loc; txt} +let map_loc_txt sub f {loc; txt} = + {loc = sub.location sub loc; txt = f sub txt} module C = struct (* Constants *) @@ -128,6 +131,9 @@ module T = struct in Of.mk ~loc ~attrs desc + let type_vars_layouts sub (tvls : type_vars_layouts) = + List.map (map_opt (map_loc_txt sub sub.layout_annotation)) tvls + let map sub {ptyp_desc = desc; ptyp_loc = loc; ptyp_attributes = attrs} = let open Typ in let loc = sub.location sub loc in @@ -147,12 +153,17 @@ module T = struct | Ptyp_alias (t, s) -> alias ~loc ~attrs (sub.typ sub t) s | Ptyp_variant (rl, b, ll) -> variant ~loc ~attrs (List.map (row_field sub) rl) b ll - | Ptyp_poly (sl, t) -> poly ~loc ~attrs - (List.map (map_loc sub) sl) (sub.typ sub t) + | Ptyp_poly (sl, t, lays) -> + poly ~loc ~attrs (List.map (map_loc sub) sl) + (sub.typ sub t) + (type_vars_layouts sub lays) | Ptyp_package (lid, l) -> package ~loc ~attrs (map_loc sub lid) (List.map (map_tuple (map_loc sub) (sub.typ sub)) l) | Ptyp_extension x -> extension ~loc ~attrs (sub.extension sub x) + | Ptyp_layout (t, lay) -> layout ~loc ~attrs + (sub.typ sub t) + (map_loc_txt sub sub.layout_annotation lay) let map_type_declaration sub {ptype_name; ptype_params; ptype_cstrs; @@ -206,10 +217,11 @@ module T = struct (sub.extension_constructor sub ptyexn_constructor) let map_extension_constructor_kind sub = function - Pext_decl(vars, ctl, cto) -> + Pext_decl(vars, ctl, cto, layouts) -> Pext_decl(List.map (map_loc sub) vars, map_constructor_arguments sub ctl, - map_opt (sub.typ sub) cto) + map_opt (sub.typ sub) cto, + type_vars_layouts sub layouts) | Pext_rebind li -> Pext_rebind (map_loc sub li) @@ -453,8 +465,9 @@ module E = struct | Pexp_poly (e, t) -> poly ~loc ~attrs (sub.expr sub e) (map_opt (sub.typ sub) t) | Pexp_object cls -> object_ ~loc ~attrs (sub.class_structure sub cls) - | Pexp_newtype (s, e) -> + | Pexp_newtype (s, e, l) -> newtype ~loc ~attrs (map_loc sub s) (sub.expr sub e) + (map_opt (map_loc_txt sub sub.layout_annotation) l) | Pexp_pack me -> pack ~loc ~attrs (sub.module_expr sub me) | Pexp_open (o, e) -> open_ ~loc ~attrs (sub.open_declaration sub o) (sub.expr sub e) @@ -701,11 +714,12 @@ let default_mapper = constructor_declaration = - (fun this {pcd_name; pcd_vars; pcd_args; + (fun this {pcd_name; pcd_vars; pcd_layouts; pcd_args; pcd_res; pcd_loc; pcd_attributes} -> Type.constructor (map_loc this pcd_name) - ~vars:(List.map (map_loc this) pcd_vars) + ~vars:(List.map (map_loc this) pcd_vars, + List.map (Option.map (map_loc this)) pcd_layouts) ~args:(T.map_constructor_arguments this pcd_args) ?res:(map_opt (this.typ this) pcd_res) ~loc:(this.location this pcd_loc) @@ -752,6 +766,8 @@ let default_mapper = | PTyp x -> PTyp (this.typ this x) | PPat (x, g) -> PPat (this.pat this x, map_opt (this.expr this) g) ); + + layout_annotation = (fun _this l -> l); } let extension_of_error {kind; main; sub} = diff --git a/parsing/ast_mapper.mli b/parsing/ast_mapper.mli index 69f6b017ab..81a6c15d89 100644 --- a/parsing/ast_mapper.mli +++ b/parsing/ast_mapper.mli @@ -81,6 +81,7 @@ type mapper = { include_declaration: mapper -> include_declaration -> include_declaration; include_description: mapper -> include_description -> include_description; label_declaration: mapper -> label_declaration -> label_declaration; + layout_annotation: mapper -> Asttypes.layout_annotation -> Asttypes.layout_annotation; location: mapper -> Location.t -> Location.t; module_binding: mapper -> module_binding -> module_binding; module_declaration: mapper -> module_declaration -> module_declaration; diff --git a/parsing/asttypes.mli b/parsing/asttypes.mli index 5a007eba31..ed213ef691 100644 --- a/parsing/asttypes.mli +++ b/parsing/asttypes.mli @@ -70,3 +70,10 @@ type variance = type injectivity = | Injective | NoInjectivity + +type layout_annotation = + | Any + | Value + | Void + | Immediate64 + | Immediate diff --git a/parsing/builtin_attributes.ml b/parsing/builtin_attributes.ml index ac51bad154..6e74e3df48 100644 --- a/parsing/builtin_attributes.ml +++ b/parsing/builtin_attributes.ml @@ -388,26 +388,19 @@ let warn_on_literal_pattern attrs = let explicit_arity attrs = has_attribute ["ocaml.explicit_arity"; "explicit_arity"] attrs -type layout_annotation = - | Any - | Value - | Void - | Immediate64 - | Immediate - let layout attrs = List.find_map - (fun a -> match a.attr_name.txt with + (fun {attr_name = { loc; txt } as name} -> match txt with | "ocaml.immediate"|"immediate" -> - (mark_used a.attr_name; Some Immediate) + (mark_used name; Some { loc; txt = Immediate }) | "ocaml.immediate64"|"immediate64" -> - (mark_used a.attr_name; Some Immediate64) + (mark_used name; Some { loc; txt = Immediate64 }) | "ocaml.void"|"void" -> - (mark_used a.attr_name; Some Void) + (mark_used name; Some { loc; txt = Void }) | "ocaml.value"|"value" -> - (mark_used a.attr_name; Some Value) + (mark_used name; Some { loc; txt = Value }) | "ocaml.any"|"any" -> - (mark_used a.attr_name; Some Any) + (mark_used name; Some { loc; txt = Any }) | _ -> None ) attrs diff --git a/parsing/builtin_attributes.mli b/parsing/builtin_attributes.mli index 0e1de9a9ac..db2c50d38f 100644 --- a/parsing/builtin_attributes.mli +++ b/parsing/builtin_attributes.mli @@ -127,14 +127,7 @@ val filter_attributes : val warn_on_literal_pattern: Parsetree.attributes -> bool val explicit_arity: Parsetree.attributes -> bool -type layout_annotation = - | Any - | Value - | Void - | Immediate64 - | Immediate - -val layout: Parsetree.attributes -> layout_annotation option +val layout: Parsetree.attributes -> Asttypes.layout_annotation Location.loc option val has_unboxed: Parsetree.attributes -> bool val has_boxed: Parsetree.attributes -> bool diff --git a/parsing/depend.ml b/parsing/depend.ml index 55b4f410cd..9abaf914f5 100644 --- a/parsing/depend.ml +++ b/parsing/depend.ml @@ -115,9 +115,10 @@ let rec add_type bv ty = | Rtag(_, _, stl) -> List.iter (add_type bv) stl | Rinherit sty -> add_type bv sty) fl - | Ptyp_poly(_, t) -> add_type bv t + | Ptyp_poly(_, t, _) -> add_type bv t | Ptyp_package pt -> add_package_type bv pt | Ptyp_extension e -> handle_extension e + | Ptyp_layout(t, _) -> add_type bv t and add_package_type bv (lid, l) = add bv lid; @@ -151,7 +152,7 @@ let add_type_declaration bv td = let add_extension_constructor bv ext = match ext.pext_kind with - Pext_decl(_, args, rty) -> + Pext_decl(_, args, rty, _) -> add_constructor_arguments bv args; Option.iter (add_type bv) rty | Pext_rebind lid -> add bv lid @@ -252,7 +253,7 @@ let rec add_expr bv exp = | Pexp_poly (e, t) -> add_expr bv e; add_opt add_type bv t | Pexp_object { pcstr_self = pat; pcstr_fields = fieldl } -> let bv = add_pattern bv pat in List.iter (add_class_field bv) fieldl - | Pexp_newtype (_, e) -> add_expr bv e + | Pexp_newtype (_, e, _) -> add_expr bv e | Pexp_pack m -> add_module_expr bv m | Pexp_open (o, e) -> let bv = open_declaration bv o in diff --git a/parsing/location.ml b/parsing/location.ml index f981e51acd..755f308b87 100644 --- a/parsing/location.ml +++ b/parsing/location.ml @@ -77,6 +77,8 @@ type 'a loc = { let mkloc txt loc = { txt ; loc } let mknoloc txt = mkloc txt none +let map f { txt; loc} = {txt = f txt; loc} +let txt { txt; _ } = txt (******************************************************************************) (* Input info *) diff --git a/parsing/location.mli b/parsing/location.mli index faad4a5de8..c9223ffece 100644 --- a/parsing/location.mli +++ b/parsing/location.mli @@ -87,7 +87,8 @@ type 'a loc = { val mknoloc : 'a -> 'a loc val mkloc : 'a -> t -> 'a loc - +val map : ('a -> 'b) -> 'a loc -> 'b loc +val txt : 'a loc -> 'a (** {1 Input info} *) diff --git a/parsing/parser.mly b/parsing/parser.mly index 4ead809837..cbf1a85573 100644 --- a/parsing/parser.mly +++ b/parsing/parser.mly @@ -302,8 +302,10 @@ let unclosed opening_name opening_loc closing_name closing_loc = raise(Syntaxerr.Error(Syntaxerr.Unclosed(make_loc opening_loc, opening_name, make_loc closing_loc, closing_name))) -let expecting loc nonterm = - raise Syntaxerr.(Error(Expecting(make_loc loc, nonterm))) +let expecting_loc (loc : Location.t) (nonterm : string) = + raise Syntaxerr.(Error(Expecting(loc, nonterm))) +let expecting (loc : Lexing.position * Lexing.position) nonterm = + expecting_loc (make_loc loc) nonterm (* Using the function [not_expecting] in a semantic action means that this syntactic form is recognized by the parser but is in fact incorrect. This @@ -452,20 +454,16 @@ let lapply ~loc p1 p2 = else raise (Syntaxerr.Error( Syntaxerr.Applicative_path (make_loc loc))) -(* [loc_map] could be [Location.map]. *) -let loc_map (f : 'a -> 'b) (x : 'a Location.loc) : 'b Location.loc = - { x with txt = f x.txt } - let make_ghost x = { x with loc = { x.loc with loc_ghost = true }} let loc_last (id : Longident.t Location.loc) : string Location.loc = - loc_map Longident.last id + Location.map Longident.last id let loc_lident (id : string Location.loc) : Longident.t Location.loc = - loc_map (fun x -> Lident x) id + Location.map (fun x -> Lident x) id let exp_of_longident lid = - let lid = loc_map (fun id -> Lident (Longident.last id)) lid in + let lid = Location.map (fun id -> Lident (Longident.last id)) lid in Exp.mk ~loc:lid.loc (Pexp_ident lid) let exp_of_label lbl = @@ -476,7 +474,8 @@ let pat_of_label lbl = let mk_newtypes ~loc newtypes exp = let mkexp = mkexp ~loc in - List.fold_right (fun newtype exp -> mkexp (Pexp_newtype (newtype, exp))) + List.fold_right (fun (name, layout) exp -> + mkexp (Pexp_newtype (name, exp, layout))) newtypes exp let wrap_type_annotation ~loc newtypes core_type body = @@ -484,7 +483,8 @@ let wrap_type_annotation ~loc newtypes core_type body = let mk_newtypes = mk_newtypes ~loc in let exp = mkexp(Pexp_constraint(body,core_type)) in let exp = mk_newtypes newtypes exp in - (exp, ghtyp(Ptyp_poly(newtypes, Typ.varify_constructors newtypes core_type))) + let vars, layouts = List.split newtypes in + (exp, ghtyp(Ptyp_poly(vars, Typ.varify_constructors vars core_type, layouts))) let wrap_exp_attrs ~loc body (ext, attrs) = let ghexp = ghexp ~loc in @@ -698,13 +698,85 @@ let mk_directive ~loc name arg = pdir_loc = make_loc loc; } -let check_layout loc id = - begin - match id with - | ("any" | "value" | "void" | "immediate64" | "immediate") -> () - | _ -> expecting loc "layout" - end; - Attr.mk ~loc:Location.none (mknoloc id) (PStr []) +(* returns both the translated layout and the string, because + the string is useful for building an Attribute *) +let check_layout loc id : (layout_annotation * string) with_loc = + let layout_annotation = match id with + | "any" -> Any + | "value" -> Value + | "void" -> Void + | "immediate64" -> Immediate64 + | "immediate" -> Immediate + | _ -> expecting_loc loc "layout" + in + mkloc (layout_annotation, id) loc + +(* See Note [Parsing layout annotations in types] *) +let check_layout_from_type layout_type : layout_annotation with_loc = + match layout_type.ptyp_desc with + | Ptyp_constr({ txt = Lident lay_string }, []) -> + Location.map fst (check_layout layout_type.ptyp_loc lay_string) + | _ -> expecting_loc layout_type.ptyp_loc "layout" + +(* See Note [Parsing layout annotations in types], the [Similar story] *) +let check_type_var_from_type tv_type : string with_loc = + match tv_type.ptyp_desc with + | Ptyp_var name -> mkloc name tv_type.ptyp_loc + | _ -> expecting_loc tv_type.ptyp_loc "type variable" + +(* Note [Parsing layout annotations in types] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + We wish to be able to parse [(int list : value)] as a layout annotation + in a type. This is slightly fraught, though: if we see [(int : value ...] + as we're parsing, have we seen the beginning a layout annotation, or have we + seen the beginning of a function type whose argument is labeled [int]? + + In order to build a non-conflicting parser with support for these layout + annotations, we must keep the productions for layout annotations in line + with those for labeled functions. The key action happens in the definition + of nonterminal [non_ident_atomic_type]. We have two problems to solve: + + 1. Before the COLON + + There are two different productions for layout annotations, one beginning with + [LPAREN LIDENT COLON] and the other wish [LPAREN non_ident_atomic_type COLON]. The + former nicely overlaps with the production for labeled functions (in + [strict_function_type]); this overlap allows menhir to avoid conflicts. + We similarly must be careful to avoid conflicts between these two productions, + which is why we define non_ident_atomic_type, which parses types that are + anything other than a single identifier. + + 2. After the COLON + + Because we need to keep the labeled-function parser and the layout-annotations + parser lined up until the disambiguator (either an [->] or a [)]), we still + must be careful after the colon. Here, we use [tuple_type], which again + dovetails with the productions in [strict_function_type]. + + Of course, a layout annotation is not quite a [tuple_type], and so + [check_layout_from_type] converts, reporting an error if the conversion + is impossible. + + The current design works well, but it is not as powerful as it could be. + In particular, the "before the colon" part accepts only non_ident_atomic_type, + meaning that e.g. [(int * bool * string : value)] cannot be parsed. If we + want to, we can extend this treatment to tuples or even function types, + but doing so seems under-motivated. + + [Similar story]: There is a similar overlap around [let f : ('a : value) ...]. + Is that the beginning of, say, a function type where ['a] is the argument? + Or is it the beginning of a list of universal variables. To avoid conflicts + in this case (the non-terminal of interest is [possibly_poly], which can't + know which side to take), we have layout-annotation case of [typevar] parse + liberally, lining up with the layout-annotation case of [non_ident_atomic_type], + checking that the variable is really a variable and the layout annotation + is really a layout annotation in [check_type_var_from_type] and + [check_layout_from_type]. +*) + + + + %} @@ -2083,7 +2155,7 @@ method_: let loc = ($startpos($6), $endpos($8)) in ghexp ~loc (Pexp_poly($8, Some $6)) in ($4, $3, Cfk_concrete ($1, poly_exp)), $2 } - | override_flag attributes private_flag mkrhs(label) COLON TYPE lident_list + | override_flag attributes private_flag mkrhs(label) COLON TYPE newtypes DOT core_type EQUAL seq_expr { let poly_exp_loc = ($startpos($7), $endpos($11)) in let poly_exp = @@ -2334,7 +2406,8 @@ label_let_pattern: lab, mkpat ~loc:$sloc (Ppat_constraint (pat, cty)) } | x = label_var COLON - cty = mktyp (vars = typevar_list DOT ty = core_type { Ptyp_poly(vars, ty) }) + cty = mktyp (vars = typevar_list DOT ty = core_type + { Ptyp_poly(fst vars, ty, snd vars) }) { let lab, pat = x in lab, mkpat ~loc:$sloc (Ppat_constraint (pat, cty)) } @@ -2357,7 +2430,7 @@ let_pattern: pat = pattern COLON cty = mktyp(vars = typevar_list DOT ty = core_type - { Ptyp_poly(vars, ty) }) + { Ptyp_poly(fst vars, ty, snd vars) }) { Ppat_constraint(pat, cty) }) { $1 } ; @@ -2431,8 +2504,10 @@ expr: | FUN ext_attributes labeled_simple_pattern fun_def { let (l,o,p) = $3 in Pexp_fun(l, o, p, $4), $2 } - | FUN ext_attributes LPAREN TYPE lident_list RPAREN fun_def + | FUN ext_attributes LPAREN TYPE newtypes RPAREN fun_def { (mk_newtypes ~loc:$sloc $5 $7).pexp_desc, $2 } + | FUN ext_attributes LPAREN TYPE mkrhs(LIDENT) COLON layout_annotation RPAREN fun_def + { (mk_newtypes ~loc:$sloc [$5, Some $7] $9).pexp_desc, $2 } | MATCH ext_attributes seq_expr WITH match_cases { Pexp_match($3, $5), $2 } | TRY ext_attributes seq_expr WITH match_cases @@ -2666,7 +2741,7 @@ let_binding_body_no_punning: in let loc = Location.(t.ptyp_loc.loc_start, t.ptyp_loc.loc_end) in let local_loc = $loc($1) in - let typ = ghtyp ~loc (Ptyp_poly([],t)) in + let typ = ghtyp ~loc (Ptyp_poly([],t,[])) in let patloc = ($startpos($2), $endpos($3)) in let pat = mkpat_local_if $1 (ghpat ~loc:patloc (Ppat_constraint(v, typ))) @@ -2688,7 +2763,7 @@ let_binding_body_no_punning: in let exp = mkexp_local_if $1 ~loc:$sloc ~kwd_loc:($loc($1)) $6 in (pat, exp) } - | let_ident COLON TYPE lident_list DOT core_type EQUAL seq_expr + | let_ident COLON TYPE newtypes DOT core_type EQUAL seq_expr { let exp, poly = wrap_type_annotation ~loc:$sloc $4 $6 $8 in let loc = ($startpos($1), $endpos($6)) in @@ -2775,8 +2850,10 @@ strict_binding: { $2 } | labeled_simple_pattern fun_binding { let (l, o, p) = $1 in ghexp ~loc:$sloc (Pexp_fun(l, o, p, $2)) } - | LPAREN TYPE lident_list RPAREN fun_binding + | LPAREN TYPE newtypes RPAREN fun_binding { mk_newtypes ~loc:$sloc $3 $5 } + | LPAREN TYPE mkrhs(LIDENT) COLON layout_annotation RPAREN fun_binding + { mk_newtypes ~loc:$sloc [$3, Some $5] $7 } ; local_fun_binding: local_strict_binding @@ -2789,8 +2866,10 @@ local_strict_binding: { $2 } | labeled_simple_pattern local_fun_binding { let (l, o, p) = $1 in ghexp ~loc:$sloc (Pexp_fun(l, o, p, $2)) } - | LPAREN TYPE lident_list RPAREN local_fun_binding + | LPAREN TYPE newtypes RPAREN local_fun_binding { mk_newtypes ~loc:$sloc $3 $5 } + | LPAREN TYPE mkrhs(LIDENT) COLON layout_annotation RPAREN fun_binding + { mk_newtypes ~loc:$sloc [$3, Some $5] $7 } ; %inline match_cases: xs = preceded_or_separated_nonempty_llist(BAR, match_case) @@ -2816,8 +2895,10 @@ fun_def: let (l,o,p) = $1 in ghexp ~loc:$sloc (Pexp_fun(l, o, p, $2)) } - | LPAREN TYPE lident_list RPAREN fun_def + | LPAREN TYPE newtypes RPAREN fun_def { mk_newtypes ~loc:$sloc $3 $5 } + | LPAREN TYPE mkrhs(LIDENT) COLON layout_annotation RPAREN fun_def + { mk_newtypes ~loc:$sloc [$3, Some $5] $7 } ; %inline expr_comma_list: es = separated_nontrivial_llist(COMMA, expr) @@ -2871,6 +2952,17 @@ type_constraint: | COLONGREATER error { syntax_error() } ; +(* the thing between the [type] and the [.] in + [let : type <>. 'a -> 'a = ...] *) +newtypes: (* : (string with_loc * layout_annotation with_loc option) list *) + newtype+ + { $1 } + +newtype: (* : string with_loc * layout_annotation with_loc option *) + mkrhs(LIDENT) { $1, None } + | LPAREN name=mkrhs(LIDENT) COLON layout=layout_annotation RPAREN + { name, Some layout } + /* Patterns */ (* Whereas [pattern] is an arbitrary pattern, [pattern_no_exn] is a pattern @@ -3137,6 +3229,7 @@ generic_type_declaration(flag, kind): flag = flag params = type_parameters id = mkrhs(LIDENT) + layout = layout_attr? kind_priv_manifest = kind cstrs = constraints attrs2 = post_item_attributes @@ -3146,7 +3239,7 @@ generic_type_declaration(flag, kind): let attrs = attrs1 @ attrs2 in let loc = make_loc $sloc in (flag, ext), - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs } ; %inline generic_and_type_declaration(kind): @@ -3154,6 +3247,7 @@ generic_type_declaration(flag, kind): attrs1 = attributes params = type_parameters id = mkrhs(LIDENT) + layout = layout_attr? kind_priv_manifest = kind cstrs = constraints attrs2 = post_item_attributes @@ -3163,7 +3257,7 @@ generic_type_declaration(flag, kind): let attrs = attrs1 @ attrs2 in let loc = make_loc $sloc in let text = symbol_text $symbolstartpos in - Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text + Type.mk id ~params ?layout ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text } ; %inline constraints: @@ -3216,14 +3310,25 @@ type_parameters: { ps } ; -layout: - ident { check_layout $loc($1) $1 } +layout_annotation: (* : layout_annotation with_loc *) + layout { Location.map fst $1 } + +layout: (* : (layout_annotation * string) with_loc *) + (* this includes the string form of the layout annotation; useful for + some clients *) + ident { check_layout (make_loc $sloc) $1 } +; + +layout_attr: + COLON + layout=layout + { Attr.mk ~loc:layout.loc (Location.map snd layout) (PStr []) } ; parenthesized_type_parameter: type_parameter { $1 } - | type_variance type_variable COLON layout - { {$2 with ptyp_attributes = [$4]}, $1 } + | type_variance type_variable layout_annot=layout_attr + { Typ.attr $2 layout_annot, $1 } ; type_parameter: @@ -3330,15 +3435,15 @@ sig_exception_declaration: Te.decl $1 ~vars ~args ?res ~attrs:$3 ~loc:(make_loc $sloc) } ; generalized_constructor_arguments: - /*empty*/ { ([],Pcstr_tuple [],None) } - | OF constructor_arguments { ([],$2,None) } + /*empty*/ { (([],[]),Pcstr_tuple [],None) } + | OF constructor_arguments { (([],[]),$2,None) } | COLON constructor_arguments MINUSGREATER atomic_type %prec below_HASH - { ([],$2,Some $4) } + { (([],[]),$2,Some $4) } | COLON typevar_list DOT constructor_arguments MINUSGREATER atomic_type %prec below_HASH { ($2,$4,Some $6) } | COLON atomic_type %prec below_HASH - { ([],Pcstr_tuple [],Some $2) } + { (([],[]),Pcstr_tuple [],Some $2) } | COLON typevar_list DOT atomic_type %prec below_HASH { ($2,Pcstr_tuple [],Some $4) } ; @@ -3473,17 +3578,22 @@ with_type_binder: /* Polymorphic types */ -%inline typevar: - QUOTE mkrhs(ident) - { $2 } +%inline typevar: (* : string with_loc * layout_annotation with_loc option *) + QUOTE mkrhs(ident) + { ($2, None) } + (* See Note [Parsing layout annotations in types], the [Similar story], + for why this is different than you might expect *) + | LPAREN tv=non_ident_atomic_type COLON lay=tuple_type RPAREN + { (check_type_var_from_type tv, Some (check_layout_from_type lay)) } ; %inline typevar_list: + (* : string with_loc list * layout_annotation with_loc option list *) nonempty_llist(typevar) - { $1 } + { List.split $1 } ; %inline poly(X): typevar_list DOT X - { Ptyp_poly($1, $3) } + { let vars, layouts = $1 in Ptyp_poly(vars, $3, layouts) } ; possibly_poly(X): X @@ -3591,7 +3701,7 @@ strict_function_type: %inline param_type: | mktyp( LPAREN vars = typevar_list DOT ty = core_type RPAREN - { Ptyp_poly(vars, ty) } + { Ptyp_poly(fst vars, ty, snd vars) } ) { $1 } | ty = tuple_type @@ -3622,6 +3732,20 @@ tuple_type: - variant types: [`A] *) atomic_type: + | mktyp( + LIDENT + { Ptyp_constr(mkrhs (Lident $1) $sloc, []) } + ) + { $1 } + | non_ident_atomic_type + { $1 } +; + +(* This accepts types that are anything but a single identifier. Note some + care in the Ptyp_constr case to accept both [M.t] and [t1 t2] but not + [t]. Why is this separate from [atomic_type]? + See Note [Parsing layout annotations in types]. *) +non_ident_atomic_type: | LPAREN core_type RPAREN { $2 } | LPAREN MODULE ext_attributes package_type RPAREN @@ -3631,7 +3755,9 @@ atomic_type: { Ptyp_var $2 } | UNDERSCORE { Ptyp_any } - | tys = actual_type_parameters + | mkrhs(strict_type_longident) + { Ptyp_constr($1, []) } + | tys = nonempty_actual_type_parameters tid = mkrhs(type_longident) { Ptyp_constr(tid, tys) } | LESS meth_list GREATER @@ -3659,9 +3785,15 @@ atomic_type: { Ptyp_variant($3, Closed, Some $5) } | extension { Ptyp_extension $1 } + | LPAREN id=LIDENT COLON lay=tuple_type RPAREN + { let loc = $loc(id) in + Ptyp_layout(mktyp ~loc + (Ptyp_constr(mkrhs (Lident id) loc, [])), + check_layout_from_type lay) } + | LPAREN ty=non_ident_atomic_type COLON lay=tuple_type RPAREN + { Ptyp_layout(ty, check_layout_from_type lay) } ) - { $1 } /* end mktyp group */ -; + { $1 } (* This is the syntax of the actual type parameters in an application of a type constructor, such as int, int list, or (int, bool) Hashtbl.t. @@ -3676,11 +3808,14 @@ atomic_type: %inline actual_type_parameters: | /* empty */ { [] } + | nonempty_actual_type_parameters + { $1 } + +%inline nonempty_actual_type_parameters: | ty = atomic_type { [ty] } | LPAREN tys = separated_nontrivial_llist(COMMA, core_type) RPAREN { tys } -; %inline package_type: module_type { let (lid, cstrs, attrs) = package_type_of_module_type $1 in @@ -3866,6 +4001,13 @@ label_longident: type_longident: mk_longident(mod_ext_longident, LIDENT) { $1 } ; + +(* guaranteed to have at least one module prefix *) +strict_type_longident: + | mod_ext_longident DOT LIDENT + { Ldot($1, $3) } +; + mod_longident: mk_longident(mod_longident, UIDENT) { $1 } ; diff --git a/parsing/parsetree.mli b/parsing/parsetree.mli index d0e64bd4fd..f31b3c35a8 100644 --- a/parsing/parsetree.mli +++ b/parsing/parsetree.mli @@ -137,7 +137,9 @@ and core_type_desc = when [flag] is {{!Asttypes.closed_flag.Closed}[Closed]}, and [labels] is [Some ["X";"Y"]]. *) - | Ptyp_poly of string loc list * core_type + | Ptyp_poly of string loc list * core_type * type_vars_layouts + (* XXX layouts RAE: move the layout annotations to use the extensions + mechanism *) (** ['a1 ... 'an. T] Can only appear in the following context: @@ -168,6 +170,14 @@ and core_type_desc = | Ptyp_package of package_type (** [(module S)]. *) | Ptyp_extension of extension (** [[%id]]. *) + (* XXX layouts RAE: use extension instead *) + | Ptyp_layout of core_type * layout_annotation loc + +and type_vars_layouts = layout_annotation loc option list + (* the layout annotations associated with a type-variable list, + typically a nearby [string loc list]; this list will always + be the same length as that one *) + and package_type = Longident.t loc * (Longident.t loc * core_type) list (** As {!package_type} typed values: - [(S, [])] represents [(module S)], @@ -401,7 +411,10 @@ and expression_desc = {{!class_field_kind.Cfk_concrete}[Cfk_concrete]} for methods (not values). *) | Pexp_object of class_structure (** [object ... end] *) - | Pexp_newtype of string loc * expression (** [fun (type t) -> E] *) + + (* XXX layouts RAE: move the layout_annotation to an extension *) + | Pexp_newtype of string loc * expression * layout_annotation loc option + (** [fun (type t : immediate) -> E] *) | Pexp_pack of module_expr (** [(module ME)]. @@ -527,6 +540,7 @@ and constructor_declaration = { pcd_name: string loc; pcd_vars: string loc list; + pcd_layouts: type_vars_layouts; pcd_args: constructor_arguments; pcd_res: core_type option; pcd_loc: Location.t; @@ -581,7 +595,9 @@ and type_exception = (** Definition of a new exception ([exception E]). *) and extension_constructor_kind = + (* XXX layouts RAE: use extensions for the type_vars_layouts *) | Pext_decl of string loc list * constructor_arguments * core_type option + * type_vars_layouts (** [Pext_decl(existentials, c_args, t_opt)] describes a new extension constructor. It can be: - [C of T1 * ... * Tn] when: diff --git a/parsing/pprintast.ml b/parsing/pprintast.ml index eae3d18198..b7d7bcc612 100644 --- a/parsing/pprintast.ml +++ b/parsing/pprintast.ml @@ -28,6 +28,13 @@ open Longident open Parsetree open Ast_helper +let layout_annotation_to_string = function + | Any -> "any" + | Value -> "value" + | Immediate -> "immediate" + | Immediate64 -> "immediate64" + | Void -> "void" + let prefix_symbols = [ '!'; '?'; '~' ] ;; let infix_symbols = [ '='; '<'; '>'; '@'; '^'; '|'; '&'; '+'; '-'; '*'; '/'; '$'; '%'; '#' ] @@ -303,7 +310,18 @@ let tyvar ppf s = else Format.fprintf ppf "'%s" s -let tyvar_loc f str = tyvar f str.txt +let layout_annotation ppf lay = + Format.fprintf ppf "%s" (layout_annotation_to_string lay) + +let tyvar_layout_loc ~print_quote f (str,layout) = + let pptv = + if print_quote + then tyvar + else fun ppf s -> Format.fprintf ppf "%s" s + in + match layout with + | None -> pptv f str.txt + | Some lay -> Format.fprintf f "(%a : %a)" pptv str.txt layout_annotation lay.txt let string_quot f x = pp f "`%s" x let maybe_local_type pty ctxt f c = @@ -342,16 +360,17 @@ and core_type ctxt f x = (type_with_label ctxt) (l,ct1) (return_type ctxt) ct2 | Ptyp_alias (ct, s) -> pp f "@[<2>%a@;as@;%a@]" (core_type1 ctxt) ct tyvar s - | Ptyp_poly ([], ct) -> + | Ptyp_poly ([], ct, []) -> core_type ctxt f ct - | Ptyp_poly (sl, ct) -> + | Ptyp_poly (sl, ct, lays) -> pp f "@[<2>%a%a@]" - (fun f l -> match l with + (fun f (v,l) -> match v with | [] -> () | _ -> pp f "%a@;.@;" - (list tyvar_loc ~sep:"@;") l) - sl (core_type ctxt) ct + (list (tyvar_layout_loc ~print_quote:true) ~sep:"@;") + (List.combine v l)) + (sl,lays) (core_type ctxt) ct | _ -> pp f "@[<2>%a@]" (core_type1 ctxt) x and core_type1 ctxt f x = @@ -680,8 +699,9 @@ and expression ctxt f x = pp f "@[<2>fun@;%a@;%a@]" (label_exp ctxt) (l, e0, p) (pp_print_pexp_function ctxt "->") e - | Pexp_newtype (lid, e) -> - pp f "@[<2>fun@;(type@;%s)@;%a@]" lid.txt + | Pexp_newtype (lid, e, lay) -> + pp f "@[<2>fun@;(type@;%a)@;%a@]" + (tyvar_layout_loc ~print_quote:false) (lid, lay) (pp_print_pexp_function ctxt "->") e | Pexp_function l -> pp f "@[function%a@]" (case_list ctxt) l @@ -1316,8 +1336,10 @@ and pp_print_pexp_function ctxt sep f x = | Pexp_fun (label, eo, p, e) -> pp f "%a@ %a" (label_exp ctxt) (label,eo,p) (pp_print_pexp_function ctxt sep) e - | Pexp_newtype (str,e) -> - pp f "(type@ %s)@ %a" str.txt (pp_print_pexp_function ctxt sep) e + | Pexp_newtype (str,e,lay) -> + pp f "(type@ %a)@ %a" + (tyvar_layout_loc ~print_quote:false) (str,lay) + (pp_print_pexp_function ctxt sep) e | _ -> pp f "%s@;%a" sep (expression ctxt) x @@ -1329,13 +1351,15 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; _} = let gadt_pattern = match p with | {ppat_desc=Ppat_constraint({ppat_desc=Ppat_var _} as pat, - {ptyp_desc=Ptyp_poly (args_tyvars, rt)}); + {ptyp_desc=Ptyp_poly (args_tyvars, rt, _)}); ppat_attributes=[]}-> Some (pat, args_tyvars, rt) | _ -> None in let rec gadt_exp tyvars e = match e with - | {pexp_desc=Pexp_newtype (tyvar, e); pexp_attributes=[]} -> + (* no need to handle layout annotations here; the extracted variables + don't get printed -- they're just used to decide how to print *) + | {pexp_desc=Pexp_newtype (tyvar, e, _); pexp_attributes=[]} -> gadt_exp (tyvar :: tyvars) e | {pexp_desc=Pexp_constraint (e, ct); pexp_attributes=[]} -> Some (List.rev tyvars, e, ct) @@ -1637,7 +1661,7 @@ and type_declaration ctxt f x = let constructor_declaration f pcd = pp f "|@;"; constructor_declaration ctxt f - (pcd.pcd_name.txt, pcd.pcd_vars, + (pcd.pcd_name.txt, pcd.pcd_vars, pcd.pcd_layouts, pcd.pcd_args, pcd.pcd_res, pcd.pcd_attributes) in let repr f = @@ -1681,15 +1705,17 @@ and type_extension ctxt f x = x.ptyext_constructors (item_attributes ctxt) x.ptyext_attributes -and constructor_declaration ctxt f (name, vars, args, res, attrs) = +and constructor_declaration ctxt f (name, vars, layouts, args, res, attrs) = let name = match name with | "::" -> "(::)" | s -> s in - let pp_vars f vs = + let pp_vars f (vs,ls) = match vs with | [] -> () - | vs -> pp f "%a@;.@;" (list tyvar_loc ~sep:"@;") vs in + | vs -> pp f "%a@;.@;" (list (tyvar_layout_loc ~print_quote:true) ~sep:"@;") + (List.combine vs ls) + in match res with | None -> pp f "%s%a@;%a" name @@ -1702,7 +1728,7 @@ and constructor_declaration ctxt f (name, vars, args, res, attrs) = (attributes ctxt) attrs | Some r -> pp f "%s:@;%a%a@;%a" name - pp_vars vars + pp_vars (vars, layouts) (fun f -> function | Pcstr_tuple [] -> core_type1 ctxt f r | Pcstr_tuple l -> pp f "%a@;->@;%a" @@ -1717,9 +1743,9 @@ and constructor_declaration ctxt f (name, vars, args, res, attrs) = and extension_constructor ctxt f x = (* Cf: #7200 *) match x.pext_kind with - | Pext_decl(v, l, r) -> + | Pext_decl(v, l, r, layouts) -> constructor_declaration ctxt f - (x.pext_name.txt, v, l, r, x.pext_attributes) + (x.pext_name.txt, v, layouts, l, r, x.pext_attributes) | Pext_rebind li -> pp f "%s@;=@;%a%a" x.pext_name.txt longident_loc li diff --git a/parsing/pprintast.mli b/parsing/pprintast.mli index 42acd5f15c..80618efcf2 100644 --- a/parsing/pprintast.mli +++ b/parsing/pprintast.mli @@ -53,3 +53,8 @@ val payload: Format.formatter -> Parsetree.payload -> unit val tyvar: Format.formatter -> string -> unit (** Print a type variable name, taking care of the special treatment required for the single quote character in second position. *) + +val layout_annotation: Format.formatter -> Asttypes.layout_annotation -> unit + +(* CR layouts RAE: where should this go? *) +val layout_annotation_to_string : Asttypes.layout_annotation -> string diff --git a/parsing/printast.ml b/parsing/printast.ml index 83f1cd98ba..b8b5e7c6fb 100644 --- a/parsing/printast.ml +++ b/parsing/printast.ml @@ -147,8 +147,20 @@ let arg_label i ppf = function | Labelled s -> line i ppf "Labelled \"%s\"\n" s ;; -let typevars ppf vs = - List.iter (fun x -> fprintf ppf " %a" Pprintast.tyvar x.txt) vs +let var_layout ~print_quote ppf (v, l) = + let pptv ppf = + if print_quote + then Pprintast.tyvar ppf + else fun s -> fprintf ppf "\"%s\"" s + in + match l with + | None -> fprintf ppf " %a" pptv v.txt + | Some lay -> fprintf ppf " (%a : %a)" + pptv v.txt + Pprintast.layout_annotation lay.txt + +let typevars ppf (vs, ls) = + List.iter2 (fun v l -> var_layout ~print_quote:true ppf (v, l)) vs ls let rec core_type i ppf x = line i ppf "core_type %a\n" fmt_location x.ptyp_loc; @@ -191,8 +203,8 @@ let rec core_type i ppf x = | Ptyp_alias (ct, s) -> line i ppf "Ptyp_alias \"%s\"\n" s; core_type i ppf ct; - | Ptyp_poly (sl, ct) -> - line i ppf "Ptyp_poly%a\n" typevars sl; + | Ptyp_poly (sl, ct, lays) -> + line i ppf "Ptyp_poly%a\n" typevars (sl, lays); core_type i ppf ct; | Ptyp_package (s, l) -> line i ppf "Ptyp_package %a\n" fmt_longident_loc s; @@ -200,6 +212,10 @@ let rec core_type i ppf x = | Ptyp_extension (s, arg) -> line i ppf "Ptyp_extension \"%s\"\n" s.txt; payload i ppf arg + | Ptyp_layout (t, layout) -> + line i ppf "Ptyp_layout %a" + Pprintast.layout_annotation layout.txt; + core_type i ppf t and package_with i ppf (s, t) = line i ppf "with type %a\n" fmt_longident_loc s; @@ -379,8 +395,8 @@ and expression i ppf x = | Pexp_object s -> line i ppf "Pexp_object\n"; class_structure i ppf s - | Pexp_newtype (s, e) -> - line i ppf "Pexp_newtype \"%s\"\n" s.txt; + | Pexp_newtype (s, e, l) -> + line i ppf "Pexp_newtype %a\n" (var_layout ~print_quote:false) (s, l); expression i ppf e | Pexp_pack me -> line i ppf "Pexp_pack\n"; @@ -488,9 +504,9 @@ and extension_constructor i ppf x = and extension_constructor_kind i ppf x = match x with - Pext_decl(v, a, r) -> + Pext_decl(v, a, r, l) -> line i ppf "Pext_decl\n"; - if v <> [] then line (i+1) ppf "vars%a\n" typevars v; + if v <> [] then line (i+1) ppf "vars%a\n" typevars (v,l); constructor_arguments (i+1) ppf a; option (i+1) core_type ppf r; | Pext_rebind li -> @@ -887,10 +903,11 @@ and core_type_x_core_type_x_location i ppf (ct1, ct2, l) = core_type (i+1) ppf ct2; and constructor_decl i ppf - {pcd_name; pcd_vars; pcd_args; pcd_res; pcd_loc; pcd_attributes} = + {pcd_name; pcd_vars; pcd_layouts; pcd_args; pcd_res; pcd_loc; pcd_attributes} = line i ppf "%a\n" fmt_location pcd_loc; line (i+1) ppf "%a\n" fmt_string_loc pcd_name; - if pcd_vars <> [] then line (i+1) ppf "pcd_vars =%a\n" typevars pcd_vars; + if pcd_vars <> [] then line (i+1) ppf "pcd_vars =%a\n" + typevars (pcd_vars, pcd_layouts); attributes i ppf pcd_attributes; constructor_arguments (i+1) ppf pcd_args; option (i+1) core_type ppf pcd_res diff --git a/testsuite/tests/letrec-check/unboxed.ml b/testsuite/tests/letrec-check/unboxed.ml index d98f9f87f4..4164ef0668 100644 --- a/testsuite/tests/letrec-check/unboxed.ml +++ b/testsuite/tests/letrec-check/unboxed.ml @@ -23,7 +23,7 @@ Error: This kind of expression is not allowed as right-hand side of `let rec' type r = A of r [@@unboxed] [@@value] let rec y = A y;; [%%expect{| -type r = A of r [@@value] [@@unboxed] +type r = A of r [@@unboxed] Line 2, characters 12-15: 2 | let rec y = A y;; ^^^ diff --git a/testsuite/tests/parsetree/locations_test.compilers.reference b/testsuite/tests/parsetree/locations_test.compilers.reference index 054a7db232..14ed53562a 100644 --- a/testsuite/tests/parsetree/locations_test.compilers.reference +++ b/testsuite/tests/parsetree/locations_test.compilers.reference @@ -262,7 +262,7 @@ Ptop_def core_type (//toplevel//[2,1+21]..[2,1+22]) Ptyp_var a expression (//toplevel//[2,1+4]..[2,1+35]) - Pexp_newtype "a" + Pexp_newtype "a" expression (//toplevel//[2,1+4]..[2,1+35]) Pexp_constraint expression (//toplevel//[2,1+25]..[2,1+35]) @@ -307,7 +307,7 @@ Ptop_def expression (//toplevel//[3,16+18]..[4,46+14]) ghost Pexp_poly expression (//toplevel//[3,16+9]..[4,46+14]) - Pexp_newtype "a" + Pexp_newtype "a" expression (//toplevel//[3,16+9]..[4,46+14]) Pexp_constraint expression (//toplevel//[4,46+4]..[4,46+14]) diff --git a/testsuite/tests/typing-immediate/immediate.ml b/testsuite/tests/typing-immediate/immediate.ml index 58cde0dd77..a71191c104 100644 --- a/testsuite/tests/typing-immediate/immediate.ml +++ b/testsuite/tests/typing-immediate/immediate.ml @@ -5,7 +5,7 @@ module type S = sig type t [@@immediate] end;; module F (M : S) : S = M;; [%%expect{| -module type S = sig type t [@@immediate] end +module type S = sig type t : immediate end module F : functor (M : S) -> S |}];; @@ -37,14 +37,14 @@ end;; [%%expect{| module A : sig - type t [@@immediate] - type s = t [@@immediate] + type t : immediate + type s = t type r = s - type p = q [@@immediate] + type p = q and q = int - type o = Foo | Bar | Baz [@@immediate] - type m = int [@@immediate64] - type n = m [@@immediate] + type o = Foo | Bar | Baz + type m = int + type n = m end |}];; @@ -55,7 +55,7 @@ module Z = ((Y : X with type t = int) : sig type t [@@immediate] end);; [%%expect{| module type X = sig type t end module Y : sig type t = int end -module Z : sig type t [@@immediate] end +module Z : sig type t : immediate end |}];; (* Valid using an explicit signature *) @@ -86,7 +86,7 @@ module Bar : sig type t [@@immediate] val x : t ref end = struct let x = ref 0 end;; [%%expect{| -module Bar : sig type t [@@immediate] val x : t ref end +module Bar : sig type t : immediate val x : t ref end |}];; let test f = @@ -179,11 +179,11 @@ Error: Signature mismatch: Modules do not match: sig type t = string end is not included in - sig type t [@@immediate] end + sig type t : immediate end Type declarations do not match: type t = string is not included in - type t [@@immediate] + type t : immediate the first has layout value, which is not a sublayout of immediate. |}];; @@ -199,7 +199,7 @@ Error: Signature mismatch: Type declarations do not match: type t = string is not included in - type t [@@immediate] + type t : immediate the first has layout value, which is not a sublayout of immediate. |}];; @@ -221,7 +221,7 @@ type 'a id = 'a type s = int id [@@immediate] [%%expect{| type 'a id = 'a -type s = int id [@@immediate] +type s = int id |}];; module F (X : sig type t end) = X module I = struct type t = int end @@ -229,7 +229,7 @@ type t = F(I).t [@@immediate] [%%expect{| module F : functor (X : sig type t end) -> sig type t = X.t end module I : sig type t = int end -type t = F(I).t [@@immediate] +type t = F(I).t |}];; module F (X : sig type t end) = X module I : sig type t = private int end = struct type t = int end @@ -237,7 +237,7 @@ type t = F(I).t [@@immediate] [%%expect{| module F : functor (X : sig type t end) -> sig type t = X.t end module I : sig type t = private int end -type t = F(I).t [@@immediate] +type t = F(I).t |}];; module type T = sig type t type s = t end module F (X : T with type t = int) = struct @@ -246,8 +246,7 @@ end [%%expect{| module type T = sig type t type s = t end module F : - functor (X : sig type t = int type s = t end) -> - sig type t = X.s [@@immediate] end + functor (X : sig type t = int type s = t end) -> sig type t = X.s end |}];; module type T = sig type t type s = t end module F (X : T with type t = private int) = struct @@ -257,10 +256,10 @@ end module type T = sig type t type s = t end module F : functor (X : sig type t = private int type s = t end) -> - sig type t = X.s [@@immediate] end + sig type t = X.s end |}];; type t = int s [@@immediate] and 'a s = 'a [%%expect{| -type t = int s [@@immediate] +type t = int s and 'a s = 'a |}];; diff --git a/testsuite/tests/typing-layouts-missing-cmi/c.ml b/testsuite/tests/typing-layouts-missing-cmi/c.ml index fb610e6712..77c0489225 100644 --- a/testsuite/tests/typing-layouts-missing-cmi/c.ml +++ b/testsuite/tests/typing-layouts-missing-cmi/c.ml @@ -25,9 +25,9 @@ type bar = b_value value_arg type baz = b_void void_arg type boz = b_imm value_arg;; [%%expect {| -type 'a imm_arg +type ('a : immediate) imm_arg type 'b value_arg -type 'c void_arg +type ('c : void) void_arg type foo = B.b_imm imm_arg type bar = B.b_value value_arg type baz = B.b_void void_arg diff --git a/testsuite/tests/typing-layouts/annots.ml b/testsuite/tests/typing-layouts/annots.ml new file mode 100644 index 0000000000..45066e844b --- /dev/null +++ b/testsuite/tests/typing-layouts/annots.ml @@ -0,0 +1,378 @@ +(* TEST + * expect +*) + + +type t_any : any +type t_value : value +type t_imm : immediate +type t_imm64 : immediate64 +type t_void : void +;; +[%%expect{| +type t_any : any +type t_value +type t_imm : immediate +type t_imm64 : immediate64 +type t_void : void +|}];; + +let x : (int : value) = 5 +let x : (int : immediate) = 5 +let x : (int : any) = 5 +;; +[%%expect {| +val x : int = 5 +val x : int = 5 +val x : int = 5 +|}] + +let x : ((int : immediate) list : value) = [3;4;5] +;; +[%%expect {| +val x : int list = [3; 4; 5] +|}] + +let x : (int list : immediate) = [3;4;5] +;; +[%%expect {| +Line 1, characters 8-30: +1 | let x : (int list : immediate) = [3;4;5] + ^^^^^^^^^^^^^^^^^^^^^^ +Error: Bad layout annotation: + int list has layout value, which is not a sublayout of immediate. +|}] + +type ('a : immediate) t2_imm +type t = int t2_imm +type t = bool t2_imm +;; +[%%expect {| +type ('a : immediate) t2_imm +type t = int t2_imm +type t = bool t2_imm +|}] + +type t = string t2_imm +;; +[%%expect {| +Line 1, characters 9-15: +1 | type t = string t2_imm + ^^^^^^ +Error: This type string should be an instance of type 'a + string has layout value, which is not a sublayout of immediate. +|}] + +let f : 'a t2_imm -> 'a t2_imm = fun x -> x +;; +[%%expect {| +val f : ('a : immediate). 'a t2_imm -> 'a t2_imm = +|}] + +let f : ('a : immediate) t2_imm -> ('a : value) t2_imm = fun x -> x +;; +[%%expect {| +val f : ('a : immediate). 'a t2_imm -> 'a t2_imm = +|}] + +let f : ('a : value) t2_imm -> ('a : value) t2_imm = fun x -> x +;; +[%%expect {| +val f : ('a : immediate). 'a t2_imm -> 'a t2_imm = +|}] + +let f : ('a : immediate). 'a t2_imm -> 'a t2_imm = fun x -> x +;; +[%%expect {| +val f : ('a : immediate). 'a t2_imm -> 'a t2_imm = +|}] + +let f : ('a : value). 'a t2_imm -> 'a t2_imm = fun x -> x +;; +[%%expect {| +Line 1, characters 8-44: +1 | let f : ('a : value). 'a t2_imm -> 'a t2_imm = fun x -> x + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: The universal type variable 'a was declared to have + layout value, but was inferred to have layout immediate. +|}] + +type 'a t = 'a t2_imm +;; +[%%expect {| +type ('a : immediate) t = 'a t2_imm +|}] + +type ('a : value) t = 'a t2_imm +;; +[%%expect {| +type ('a : immediate) t = 'a t2_imm +|}] + +type ('a : immediate) t = 'a t2_imm +;; +[%%expect {| +type ('a : immediate) t = 'a t2_imm +|}] + +let f : ('a : any) -> 'a = fun x -> x +;; +[%%expect {| +val f : 'a -> 'a = +|}] + +let f : ('a : any). 'a -> 'a = fun x -> x +;; +[%%expect {| +Line 1, characters 8-28: +1 | let f : ('a : any). 'a -> 'a = fun x -> x + ^^^^^^^^^^^^^^^^^^^^ +Error: The universal type variable 'a was declared to have + layout any, but was inferred to have layout value. +|}] +(* CR layouts (v2): This error message should change to complain + about the [fun x], not the arrow type. *) + +type r = { field : ('a : immediate). 'a -> 'a } +let f { field } = field 5 +;; +[%%expect {| +type r = { field : ('a : immediate). 'a -> 'a; } +val f : r -> int = +|}] + +let f { field } = field "hello" +;; +[%%expect {| +Line 1, characters 24-31: +1 | let f { field } = field "hello" + ^^^^^^^ +Error: This expression has type string but an expression was expected of type + 'a + string has layout value, which is not a sublayout of immediate. +|}] + +let r = { field = fun x -> x } +let r = { field = Fun.id } +;; +[%%expect {| +val r : r = {field = } +val r : r = {field = } +|}] + +let r = { field = fun (type (a : immediate)) (x : a) -> x } +;; +[%%expect {| +val r : r = {field = } +|}] + +let r = { field = fun (type (a : value)) (x : a) -> x } +;; +[%%expect {| +val r : r = {field = } +|}] + +let f = fun (type (a : value)) (x : a) -> x +;; +[%%expect {| +val f : 'a -> 'a = +|}] + +let f = fun (type (a : immediate)) (x : a) -> x +;; +[%%expect {| +val f : ('a : immediate). 'a -> 'a = +|}] + +let f = fun (type (a : any)) (x : a) -> x +;; +[%%expect {| +Line 1, characters 29-36: +1 | let f = fun (type (a : any)) (x : a) -> x + ^^^^^^^ +Error: This pattern matches values of type a + but a pattern was expected which matches values of type 'a + a has layout any, which is not a sublayout of value. +|}] + +let f : type (a : value). a -> a = fun x -> x +;; +[%%expect {| +val f : 'a -> 'a = +|}] + +let f : type (a : immediate). a -> a = fun x -> x +;; +[%%expect {| +val f : ('a : immediate). 'a -> 'a = +|}] + +let f : type (a : any). a -> a = fun x -> x +;; +[%%expect {| +Line 1, characters 4-43: +1 | let f : type (a : any). a -> a = fun x -> x + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: The universal type variable 'a was declared to have + layout any, but was inferred to have layout value. +|}] +(* CR layouts (v2): This error message will change to complain + about the fun x, not the arrow type. *) + +module type S = sig + val f : 'a. 'a t2_imm -> 'a t2_imm +end +;; +[%%expect {| +Line 2, characters 10-36: +2 | val f : 'a. 'a t2_imm -> 'a t2_imm + ^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: The universal type variable 'a was defaulted to have + layout value, but was inferred to have layout immediate. +|}] + +module type S = sig + val f : ('a : value). 'a t2_imm -> 'a t2_imm +end +;; +[%%expect {| +Line 2, characters 10-46: +2 | val f : ('a : value). 'a t2_imm -> 'a t2_imm + ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ +Error: The universal type variable 'a was declared to have + layout value, but was inferred to have layout immediate. +|}] + +module type S = sig + val f : 'a t2_imm -> 'a t2_imm + val g : ('a : immediate). 'a t2_imm -> 'a t2_imm +end +;; +[%%expect {| +module type S = + sig + val f : ('a : immediate). 'a t2_imm -> 'a t2_imm + val g : ('a : immediate). 'a t2_imm -> 'a t2_imm + end +|}] + +let f (x : ('a : immediate). 'a -> 'a) = x "string" + +[%%expect {| +Line 1, characters 43-51: +1 | let f (x : ('a : immediate). 'a -> 'a) = x "string" + ^^^^^^^^ +Error: This expression has type string but an expression was expected of type + 'a + string has layout value, which is not a sublayout of immediate. +|}] + +class c : object + val f : 'a -> 'a +end = object + val f = fun (x : ('a : immediate)) -> x +end +;; +[%%expect {| +fail +|}] + +type s = { f : ('a : value) . 'a -> 'a u } +and 'a u = 'a t2_imm + +[%%expect {| +fail +|}] + +(* and now, some parsing & printing tests. *) + +let f (type a : immediate) (x : a) = x +let f = fun (type a : immediate) (x : a) -> x +let f = fun (type a : value) (x : a) -> x + +class c : object + method m : ('a : immediate). 'a -> 'a + val f : ('a : immediate) -> 'a +end = object + method m : type (a : immediate). a -> a = fun x -> x + val f = fun (x : ('a : immediate)) -> x +end + +let o = object + method m : type (a : immediate). a -> a = fun x -> x +end + +let f : type (a : immediate). a -> a = fun x -> x +let f x = + let local_ g (type a : immediate) (x : a) = x in + g x [@nontail] +let f = fun x y (type (a : immediate)) (z : a) -> z +let f = fun x y (type a : immediate) (z : a) -> z + +external f : ('a : immediate). 'a -> 'a = "%identity" + +type (_ : void) t2_void +exception E : ('a : immediate) ('b : void). 'b t2_void * 'a list -> exn + +let f (x : ('a : immediate). 'a -> 'a) = x 3, x true + +[%%expect {| +val f : ('a : immediate). 'a -> 'a = +val f : ('a : immediate). 'a -> 'a = +val f : 'a -> 'a = +class c : object method m : 'a -> 'a end BAD +val o : < m : ('a : immediate). 'a -> 'a > = +val f : ('a : immediate). 'a -> 'a = +val f : ('a : immediate). 'a -> 'a = +val f : ('a : immediate) 'c 'b. 'b -> 'c -> 'a -> 'a = +val f : ('a : immediate) 'c 'b. 'b -> 'c -> 'a -> 'a = +external f : ('a : immediate). 'a -> 'a = "%identity" +type (_ : void) t2_void +exception E : ('a : immediate) ('b : void). 'b t2_void * 'a list -> exn +val f : (('a : immediate). 'a -> 'a) -> int * bool = +|}] + +type _ a = Mk : [> ] * ('a : immediate) -> int a + +[%%expect {| +type _ a = Mk : ('a : immediate). [> ] * 'a -> int a +|}] + +type _ g = | MkG : ('a : immediate) ('b : void). 'a -> 'b g + +type ('a : void) t3 = .. +type _ t3 += MkG : ('a : immediate) 'b. 'a -> 'b t3 + +[%%expect {| +success (I think) +|}] + +let f_imm : ('a : immediate). 'a -> 'a = fun x -> x + +[%%expect {| +val f_imm : ('a : immediate). 'a -> 'a = +|}] + +let f_val : ('a : value). 'a -> 'a = fun x -> f_imm x + +[%%expect {| +Line 1, characters 37-53: +1 | let f_val : ('a : value). 'a -> 'a = fun x -> f_imm x + ^^^^^^^^^^^^^^^^ +Error: This definition has type 'b -> 'b which is less general than + 'a. 'a -> 'a + 'a has layout value, which is not a sublayout of immediate. +|}] + +type (_ : value) g = + | MkG : ('a : immediate). 'a g + +[%%expect {| +type _ g = MkG : ('a : immediate). 'a g +|}] + +let f_gadt : ('a : value). 'a -> 'a g -> 'a = fun x MkG -> f_imm x + +[%%expect {| +success +|}] diff --git a/testsuite/tests/typing-layouts/basics.ml b/testsuite/tests/typing-layouts/basics.ml index 7ee91c38e6..082f433c6e 100644 --- a/testsuite/tests/typing-layouts/basics.ml +++ b/testsuite/tests/typing-layouts/basics.ml @@ -13,11 +13,11 @@ type void_unboxed_record = { vur_void : t_void } [@@unboxed] [%%expect{| -type t_any [@@any] -type t_value [@@value] -type t_imm [@@immediate] -type t_imm64 [@@immediate64] -type t_void [@@void] +type t_any : any +type t_value +type t_imm : immediate +type t_imm64 : immediate64 +type t_void : void type void_variant = VV of t_void type void_record = { vr_void : t_void; vr_int : int; } type void_unboxed_record = { vur_void : t_void; } [@@unboxed] @@ -139,7 +139,7 @@ module type S = sig val f1 : t_value -> t_value val f2 : t_imm -> t_imm64 end type 'a [@immediate] imm_id = 'a [%%expect{| -type 'a imm_id = 'a +type ('a : immediate) imm_id = 'a |}];; type my_int = int imm_id @@ -166,7 +166,7 @@ let id_for_imms (x : 'a imm_id) = x let three = id_for_imms 3 let true_ = id_for_imms true;; [%%expect{| -val id_for_imms : 'a imm_id -> 'a imm_id = +val id_for_imms : ('a : immediate). 'a imm_id -> 'a imm_id = val three : int imm_id = 3 val true_ : bool imm_id = true |}] @@ -210,7 +210,7 @@ and 'a [@immediate] t4;; [%%expect{| type s4 = int t4 -and 'a t4 +and ('a : immediate) t4 |}] type s4 = s5 t4 @@ -219,7 +219,7 @@ and s5 = int;; [%%expect{| type s4 = s5 t4 -and 'a t4 +and ('a : immediate) t4 and s5 = int |}] @@ -239,7 +239,7 @@ Error: type 'a [@any] t4 = 'a and s4 = string t4;; [%%expect{| -type 'a t4 = 'a +type ('a : any) t4 = 'a and s4 = string t4 |}];; @@ -247,7 +247,7 @@ type s4 = string t4 and 'a [@any] t4;; [%%expect{| type s4 = string t4 -and 'a t4 +and ('a : any) t4 |}];; (************************************************************) @@ -274,9 +274,9 @@ let id4 : 'a void4 -> 'a void4 = function * ;; *) [%%expect{| -type 'a void4 = Void4 of 'a +type ('a : void) void4 = Void4 of 'a type 'a any4 = Any4 of 'a -val id4 : 'a void4 -> 'a void4 = +val id4 : ('a : void). 'a void4 -> 'a void4 = |}];; @@ -326,7 +326,7 @@ Error: This expression has type 'a but an expression was expected of type 'b type ('a : immediate) t5_imm = T5imm of 'a type ('a : value) t5_val = T5val of 'a;; [%%expect{| -type 'a t5_imm = T5imm of 'a +type ('a : immediate) t5_imm = T5imm of 'a type 'a t5_val = T5val of 'a |}];; @@ -368,7 +368,7 @@ type 'a [@immediate] t6 = Foo6 of 'a type t6' = (int * int) t6;; [%%expect{| -type 'a t6 = Foo6 of 'a +type ('a : immediate) t6 = Foo6 of 'a Line 3, characters 12-21: 3 | type t6' = (int * int) t6;; ^^^^^^^^^ @@ -582,10 +582,17 @@ Lines 3-9, characters 6-3: 9 | end.. Error: Signature mismatch: Modules do not match: - sig type 'a t = 'a val f : 'a t -> 'a val x : 'a end + sig + type ('a : immediate) t = 'a + val f : ('a : immediate). 'a t -> 'a + val x : ('a : immediate). 'a + end is not included in sig val x : string end - Values do not match: val x : 'a is not included in val x : string + Values do not match: + val x : ('a : immediate). 'a + is not included in + val x : string The type string is not compatible with the type string string has layout value, which is not a sublayout of immediate. |}];; @@ -612,10 +619,17 @@ Lines 3-9, characters 6-3: 9 | end.. Error: Signature mismatch: Modules do not match: - sig type 'a t = 'a val f : 'a t -> 'a t val x : 'a t end + sig + type ('a : immediate) t = 'a + val f : ('a : immediate). 'a t -> 'a t + val x : ('a : immediate). 'a t + end is not included in sig val x : string end - Values do not match: val x : 'a t is not included in val x : string + Values do not match: + val x : ('a : immediate). 'a t + is not included in + val x : string The type string t = string is not compatible with the type string string has layout value, which is not a sublayout of immediate. |}] @@ -968,8 +982,8 @@ Error: type ('a : void) t14 type ('a, 'b) foo14 = ('a as 'b) t14 -> 'b t14;; [%%expect{| -type 'a t14 -type ('a, 'b) foo14 = 'a t14 -> 'a t14 constraint 'b = 'a +type ('a : void) t14 +type ('a : void, 'b) foo14 = 'a t14 -> 'a t14 constraint 'b = 'a |}] (* Test 15: seperability: [msig_of_external_type] logic *) @@ -977,7 +991,7 @@ type 'a t_void_15 [@@void] type t_15 = T_15 : 'a t_void_15 -> t_15 [@@unboxed];; [%%expect{| -type 'a t_void_15 [@@void] +type 'a t_void_15 : void type t_15 = T_15 : 'a t_void_15 -> t_15 [@@unboxed] |}];; diff --git a/testsuite/tests/typing-layouts/datatypes.ml b/testsuite/tests/typing-layouts/datatypes.ml index a8f4a486c1..a2b28dbbcc 100644 --- a/testsuite/tests/typing-layouts/datatypes.ml +++ b/testsuite/tests/typing-layouts/datatypes.ml @@ -19,10 +19,10 @@ type t1_mixed1 = T1_mixed1 of t_void * t_immediate type t1_mixed2 = T1_mixed2 of t_immediate * t_value * t_void type t1_mixed3 = T1_mixed3 of t_value * t_immediate [%%expect {| -type t_void [@@void] -type t_any [@@any] -type t_value [@@value] -type t_immediate [@@immediate] +type t_void : void +type t_any : any +type t_value +type t_immediate : immediate type t1_void = T1_void of t_void type t1_value = T1_value of t_value type t1_immediate = T1_value of t_immediate @@ -266,7 +266,7 @@ let f6' x = let { fld6 = fld6 } = x in S6 fld6;; [%%expect {| type t6 = { fld6 : float; } -type 'a s6 = S6 of 'a +type ('a : immediate) s6 = S6 of 'a val f6 : t6 -> float = Line 8, characters 32-36: 8 | let { fld6 = fld6 } = x in S6 fld6;; diff --git a/testsuite/tests/typing-layouts/modules.ml b/testsuite/tests/typing-layouts/modules.ml index 6f8ba72c84..37643fc1d3 100644 --- a/testsuite/tests/typing-layouts/modules.ml +++ b/testsuite/tests/typing-layouts/modules.ml @@ -19,14 +19,14 @@ type 'a [@void] t1;; module type S1' = S1 with type 'a t = t_void t1 and type s = t_void t1;; [%%expect {| -type t_any [@@any] -type t_value [@@value] -type t_imm [@@immediate] -type t_imm64 [@@immediate64] -type t_void [@@void] -module type S1 = sig type 'a t type s end -type 'a t1 -module type S1' = sig type 'a t = t_void t1 type s = t_void t1 end +type t_any : any +type t_value +type t_imm : immediate +type t_imm64 : immediate64 +type t_void : void +module type S1 = sig type ('a : void) t type s end +type ('a : void) t1 +module type S1' = sig type ('a : void) t = t_void t1 type s = t_void t1 end |}];; module type S1'' = S1 with type 'a t = 'a list;; @@ -58,8 +58,8 @@ module M1_2' : S1_2' = struct type ('a : immediate) t = 'a list end;; [%%expect{| -module type S1_2 = sig type 'a t end -module type S1_2' = sig type 'a t = 'a list end +module type S1_2 = sig type ('a : immediate) t end +module type S1_2' = sig type ('a : immediate) t = 'a list end module M1_2' : S1_2' |}] @@ -83,7 +83,7 @@ Error: Signature mismatch: Type declarations do not match: type 'a t = 'a list is not included in - type 'a t = 'a list + type ('a : immediate) t = 'a list The type 'a is not equal to the type 'a0 |}] (* CJC XXX errors: error message *) @@ -103,11 +103,12 @@ module F2 (X : T2) = struct let f () : 'a X.t = `A R end;; [%%expect{| -module type S2 = sig type 'a t end -type 'a r2 = R -type !'a s2 = private [> `A of 'a r2 ] -module type T2 = sig type 'a t = 'a s2 end -module F2 : functor (X : T2) -> sig val f : unit -> 'a X.t end +module type S2 = sig type ('a : immediate) t end +type ('a : immediate) r2 = R +type (!'a : immediate) s2 = private [> `A of 'a r2 ] +module type T2 = sig type ('a : immediate) t = 'a s2 end +module F2 : + functor (X : T2) -> sig val f : ('a : immediate). unit -> 'a X.t end |}] type 'a [@immediate] s2' = private [> `B of 'a] @@ -117,8 +118,8 @@ module F2' (X : T2') = struct let f () : 'a X.t = `B "bad" end [%%expect{| -type !'a s2' = private [> `B of 'a ] -module type T2' = sig type 'a t = 'a s2' end +type (!'a : immediate) s2' = private [> `B of 'a ] +module type T2' = sig type ('a : immediate) t = 'a s2' end Line 5, characters 25-30: 5 | let f () : 'a X.t = `B "bad" ^^^^^ @@ -193,8 +194,8 @@ end = struct type t = A end;; [%%expect {| -module rec Foo3 : sig type t = Bar3.t [@@immediate] end -and Bar3 : sig type t [@@immediate] end +module rec Foo3 : sig type t = Bar3.t end +and Bar3 : sig type t : immediate end |}];; module rec Foo3 : sig @@ -237,7 +238,7 @@ end = struct type s = Foo3.t t end;; [%%expect {| -type t3 [@@void] +type t3 : void Line 12, characters 11-17: 12 | type s = Foo3.t t ^^^^^^ @@ -261,8 +262,8 @@ end = struct type s = Foo3.t t end;; [%%expect {| -module rec Foo3 : sig type t = t3 [@@void] end -and Bar3 : sig type 'a t type s = Foo3.t t end +module rec Foo3 : sig type t = t3 end +and Bar3 : sig type ('a : void) t type s = Foo3.t t end |}];; (* Test 4: Nondep typedecl layout approximation in the Nondep_cannot_erase @@ -281,7 +282,7 @@ type t4 = M4.s t4_val;; module F4 : functor (X : sig type t end) -> sig type s = Foo of X.t end module M4 : sig type s end type 'a t4_val -type 'a t4_void +type ('a : void) t4_void type t4 = M4.s t4_val |}] @@ -305,10 +306,10 @@ type 'a [@immediate] t4_imm type t4 = M4'.s t4_imm;; [%%expect{| module F4' : - functor (X : sig type t [@@immediate] end) -> - sig type s = Foo of X.t [@@immediate] [@@unboxed] end -module M4' : sig type s [@@immediate] end -type 'a t4_imm + functor (X : sig type t : immediate end) -> + sig type s : immediate = Foo of X.t [@@unboxed] end +module M4' : sig type s : immediate end +type ('a : immediate) t4_imm type t4 = M4'.s t4_imm |}];; @@ -337,8 +338,9 @@ let x3 = M3_1.f 42 let x3' = M3_1.f "test";; [%%expect{| -module type S3_1 = sig type 'a t val f : 'a -> 'a t end -module type S3_1' = sig val f : 'a -> 'a list end +module type S3_1 = + sig type ('a : immediate) t val f : ('a : immediate). 'a -> 'a t end +module type S3_1' = sig val f : ('a : immediate). 'a -> 'a list end module M3_1 : S3_1' val x3 : int list = [42] Line 14, characters 17-23: @@ -355,7 +357,7 @@ end module type S3_2' = S3_2 with type t := string;; [%%expect{| -module type S3_2 = sig type t [@@immediate] end +module type S3_2 = sig type t : immediate end Line 5, characters 30-46: 5 | module type S3_2' = S3_2 with type t := string;; ^^^^^^^^^^^^^^^^ @@ -372,7 +374,7 @@ module type S6_2 = sig val m : (module S6_1 with type t = int) end;; [%%expect{| -module type S6_1 = sig type t [@@void] end +module type S6_1 = sig type t : void end Line 6, characters 10-41: 6 | val m : (module S6_1 with type t = int) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -381,7 +383,7 @@ Error: In this `with' constraint, the new definition of t Type declarations do not match: type t is not included in - type t [@@void] + type t : void the first has layout value, which is not a sublayout of void. |}];; @@ -393,7 +395,7 @@ module type S6_4 = sig val m : (module S6_3 with type t = t_void) end;; [%%expect{| -module type S6_3 = sig type t [@@value] end +module type S6_3 = sig type t end Line 6, characters 33-34: 6 | val m : (module S6_3 with type t = t_void) ^ diff --git a/testsuite/tests/typing-layouts/void.ml b/testsuite/tests/typing-layouts/void.ml index eb2e71a13d..75a04b7d7d 100644 --- a/testsuite/tests/typing-layouts/void.ml +++ b/testsuite/tests/typing-layouts/void.ml @@ -8,7 +8,7 @@ type t_void [@@void] type void_rec = { v : t_void } [@@unboxed];; [%%expect{| -type t_void [@@void] +type t_void : void type void_rec = { v : t_void; } [@@unboxed] |}] diff --git a/testsuite/tests/typing-local/crossing.ml b/testsuite/tests/typing-local/crossing.ml index 5fe6d7e022..b519b3a930 100644 --- a/testsuite/tests/typing-local/crossing.ml +++ b/testsuite/tests/typing-local/crossing.ml @@ -339,7 +339,7 @@ let f : local_ _ -> M.t = let f : local_ _ -> t2 = fun x -> x [%%expect{| -module M : sig type t [@@immediate] end +module M : sig type t : immediate end type t2 = { x : int; } [@@unboxed] val f : local_ M.t -> M.t = val f : local_ t2 -> t2 = diff --git a/testsuite/tests/typing-unboxed-types/test.ml b/testsuite/tests/typing-unboxed-types/test.ml index 9c7b23abc9..c1dc4b1ff4 100644 --- a/testsuite/tests/typing-unboxed-types/test.ml +++ b/testsuite/tests/typing-unboxed-types/test.ml @@ -94,7 +94,7 @@ Error: This type cannot be unboxed because (* let rec must be rejected *) type t10 = A of t10 [@@ocaml.unboxed] [@@value];; [%%expect{| -type t10 = A of t10 [@@value] [@@unboxed] +type t10 = A of t10 [@@unboxed] |}];; let rec x = A x;; [%%expect{| @@ -259,7 +259,7 @@ in assert (f x = L 3.14);; (* Check for a potential infinite loop in the typing algorithm. *) type 'a t12 = M of 'a t12 [@@ocaml.unboxed] [@@value];; [%%expect{| -type 'a t12 = M of 'a t12 [@@value] [@@unboxed] +type 'a t12 = M of 'a t12 [@@unboxed] |}];; let f (a : int t12 array) = a.(0);; [%%expect{| @@ -318,7 +318,7 @@ end = struct type t = A of int [@@ocaml.unboxed] end;; [%%expect{| -module T : sig type t [@@immediate] end +module T : sig type t : immediate end |}];; (* Another corner case *) @@ -348,7 +348,7 @@ val h : f = {field = []} type 'a t [@@immediate];; type u = U : 'a t -> u [@@unboxed];; [%%expect{| -type 'a t [@@immediate] +type 'a t : immediate type u = U : 'a t -> u [@@unboxed] |}];; diff --git a/testsuite/tests/typing-unboxed/test.ml b/testsuite/tests/typing-unboxed/test.ml index 6841b4957d..adc6e8aaa8 100644 --- a/testsuite/tests/typing-unboxed/test.ml +++ b/testsuite/tests/typing-unboxed/test.ml @@ -744,7 +744,7 @@ Error: [@The native code version of the primitive is mandatory (* PR#7424 *) type 'a b = B of 'a b b [@@unboxed] [@@value];; [%%expect{| -type 'a b = B of 'a b b [@@value] [@@unboxed] +type 'a b = B of 'a b b [@@unboxed] |}] diff --git a/tools/eqparsetree.ml b/tools/eqparsetree.ml index 9630fcd827..4594f58cb5 100644 --- a/tools/eqparsetree.ml +++ b/tools/eqparsetree.ml @@ -124,6 +124,14 @@ module Asttypes = struct fun mf_a ({ txt = a0; loc = a1 }, { txt = b0; loc = b1 }) -> (mf_a (a0, b0)) && (Location.eq_t (a1, b1)) + let eq_layout_annotation : (layout_annotation * layout_annotation) -> 'result = + function + | (Any, Any) -> true + | (Value, Value) -> true + | (Void, Void) -> true + | (Immediate64, Immediate64) -> true + | (Immediate, Immediate) -> true + | (Any | Value | Void | Immediate64 | Immediate, _) -> false end let rec eq_row_field : (row_field * row_field) -> 'result = @@ -179,9 +187,12 @@ and eq_core_type_desc : | (Ptyp_variant (a0, a1, a2), Ptyp_variant (b0, b1, b2)) -> ((eq_list eq_row_field (a0, b0)) && (eq_bool (a1, b1))) && (eq_option (eq_list Asttypes.eq_label) (a2, b2)) - | (Ptyp_poly (a0, a1), Ptyp_poly (b0, b1)) -> - (eq_list eq_string (a0, b0)) && (eq_core_type (a1, b1)) + | (Ptyp_poly (a0, a1, a2), Ptyp_poly (b0, b1, b2)) -> + (eq_list eq_string (a0, b0)) && (eq_core_type (a1, b1)) && + (eq_list (eq_option (Asttypes.eq_loc Asttypes.eq_layout_annotation)) (a2, b2)) | (Ptyp_package a0, Ptyp_package b0) -> eq_package_type (a0, b0) + | (Ptyp_layout (a0, a1), Ptyp_layout (b0, b1)) -> + (eq_core_type (a0, b0)) && (Asttypes.eq_layout_annotation (a1, b1)) | (_, _) -> false and eq_core_type : (core_type * core_type) -> 'result = fun @@ -753,8 +764,9 @@ and eq_expression_desc : | (Pexp_poly (a0, a1), Pexp_poly (b0, b1)) -> (eq_expression (a0, b0)) && (eq_option eq_core_type (a1, b1)) | (Pexp_object a0, Pexp_object b0) -> eq_class_structure (a0, b0) - | (Pexp_newtype (a0, a1), Pexp_newtype (b0, b1)) -> - (eq_string (a0, b0)) && (eq_expression (a1, b1)) + | (Pexp_newtype (a0, a1, a2), Pexp_newtype (b0, b1, b2)) -> + (eq_string (a0, b0)) && (eq_expression (a1, b1)) && + (eq_option eq_layout_annotation (a2, b2)) | (Pexp_pack a0, Pexp_pack b0) -> eq_module_expr (a0, b0) | (Pexp_open (a0, a1), Pexp_open (b0, b1)) -> (Asttypes.eq_loc Longident.eq_t (a0, b0)) && diff --git a/tools/ocamlprof.ml b/tools/ocamlprof.ml index 08026a738a..f3a4322753 100644 --- a/tools/ocamlprof.ml +++ b/tools/ocamlprof.ml @@ -296,7 +296,7 @@ and rw_exp iflag sexp = | Pexp_object cl -> List.iter (rewrite_class_field iflag) cl.pcstr_fields - | Pexp_newtype (_, sexp) -> rewrite_exp iflag sexp + | Pexp_newtype (_, sexp, _) -> rewrite_exp iflag sexp | Pexp_open (_, e) -> rewrite_exp iflag e | Pexp_pack (smod) -> rewrite_mod iflag smod | Pexp_letop {let_; ands; body; _} -> diff --git a/typing/ctype.ml b/typing/ctype.ml index 2ec2102fb7..1a42186651 100644 --- a/typing/ctype.ml +++ b/typing/ctype.ml @@ -152,8 +152,11 @@ let global_level = s_ref 1 let saved_level = s_ref [] type levels = - { current_level: int; nongen_level: int; global_level: int; - saved_level: (int * int) list; } + { current_level: int; + nongen_level: int; + global_level: int; (* level assigned to a fresh 'a in user code *) + saved_level: (int * int) list; + } let save_levels () = { current_level = !current_level; nongen_level = !nongen_level; @@ -540,7 +543,7 @@ let really_closed = ref None are expanded to check whether the apparently-free variable would vanish during expansion. - We collect both type variables and row variables, paired with a boolean - that is [true] if we have a row variable. + that is [false] if we have a row variable. - We do not count "virtual" free variables -- free variables stored in the abbreviation of an object type that has been expanded (we store the abbreviations for use when displaying the type). @@ -579,23 +582,30 @@ let rec free_vars_rec real ty = | _ -> iter_type_expr (free_vars_rec true) ty -let free_vars ?env ty = +let free_vars ?env tyl = free_variables := []; really_closed := env; - free_vars_rec true ty; + List.iter (free_vars_rec true) tyl; let res = !free_variables in free_variables := []; really_closed := None; res let free_variables ?env ty = - let tl = List.map fst (free_vars ?env ty) in + let tl = List.map fst (free_vars ?env [ty]) in unmark_type ty; tl +let free_non_row_variables_of_list tyl = + let tl = List.filter_map (fun (v, not_row) -> if not_row then Some v else None) + (free_vars tyl) + in + List.iter unmark_type tyl; + tl + let closed_type ty = remove_mode_and_layout_variables ty; - match free_vars ty with + match free_vars [ty] with [] -> () | (v, real) :: _ -> raise (Non_closed (v, real)) @@ -618,10 +628,7 @@ let closed_type_decl decl = (fun {cd_args; cd_res; _} -> match cd_res with | Some _ -> () - | None -> - match cd_args with - | Cstr_tuple l -> List.iter (fun (ty, _) -> closed_type ty) l - | Cstr_record l -> List.iter (fun l -> closed_type l.ld_type) l + | None -> List.iter closed_type (tys_of_constr_args cd_args) ) v | Type_record(r, _rep) -> @@ -4485,8 +4492,8 @@ let is_moregeneral env inst_nongen pat_sch subj_sch = let rec rigidify_rec vars ty = if try_mark_node ty then begin match get_desc ty with - | Tvar _ -> - if not (TypeSet.mem ty !vars) then vars := TypeSet.add ty !vars + | Tvar { layout } -> + vars := TypeMap.add ty layout !vars | Tvariant row -> let Row {more; name; closed} = row_repr row in if is_Tvar more && not (has_fixed_explanation row) then begin @@ -4504,28 +4511,47 @@ let rec rigidify_rec vars ty = iter_type_expr (rigidify_rec vars) ty end +(* remember free variables in a type so we can make sure they aren't unified; + should be paired with a call to [all_distinct_vars_and_layouts] later. *) let rigidify ty = - let vars = ref TypeSet.empty in + let vars = ref TypeMap.empty in rigidify_rec vars ty; unmark_type ty; - TypeSet.elements !vars + List.map (fun (trans_expr, lay) -> Transient_expr.type_expr trans_expr, lay) + (TypeMap.bindings !vars) let all_distinct_vars env vars = let tys = ref TypeSet.empty in List.for_all (fun ty -> let ty = expand_head env ty in - if TypeSet.mem ty !tys then false else - (tys := TypeSet.add ty !tys; is_Tvar ty)) + if TypeSet.mem ty !tys then false else begin + tys := TypeSet.add ty !tys; + is_Tvar ty + end) vars +let all_distinct_vars_and_layouts env vars_layouts = + let tys = ref TypeSet.empty in + List.for_all + (fun (ty, old_layout) -> + let ty = expand_head env ty in + let old_layout = Type_layout.repr old_layout in + if TypeSet.mem ty !tys then false else begin + tys := TypeSet.add ty !tys; + match get_desc ty with + | Tvar { layout } -> Type_layout.equal layout old_layout + | _ -> false + end) + vars_layouts + let matches ~expand_error_trace env ty ty' = let snap = snapshot () in - let vars = rigidify ty in + let vars_layouts = rigidify ty in cleanup_abbrev (); match unify env ty ty' with | () -> - if not (all_distinct_vars env vars) then begin + if not (all_distinct_vars_and_layouts env vars_layouts) then begin backtrack snap; let diff = if expand_error_trace diff --git a/typing/ctype.mli b/typing/ctype.mli index 465cd9265a..6f945e2356 100644 --- a/typing/ctype.mli +++ b/typing/ctype.mli @@ -267,8 +267,6 @@ val deep_occur: type_expr -> type_expr -> bool val moregeneral: Env.t -> bool -> type_expr -> type_expr -> unit (* Check if the first type scheme is more general than the second. *) val is_moregeneral: Env.t -> bool -> type_expr -> type_expr -> bool -val rigidify: type_expr -> type_expr list - (* "Rigidify" a type and return its type variable *) val all_distinct_vars: Env.t -> type_expr list -> bool (* Check those types are all distinct type variables *) val matches: expand_error_trace:bool -> Env.t -> type_expr -> type_expr -> unit @@ -429,7 +427,11 @@ val nongen_class_declaration: class_declaration -> bool Uses the empty environment. *) val free_variables: ?env:Env.t -> type_expr -> type_expr list - (* If env present, then check for incomplete definitions too *) + (* If env present, then check for incomplete definitions too; + returns both normal variables and row variables*) +val free_non_row_variables_of_list: type_expr list -> type_expr list + (* gets only non-row variables *) + val closed_type_decl: type_declaration -> type_expr option val closed_extension_constructor: extension_constructor -> type_expr option val closed_class: @@ -469,6 +471,9 @@ val get_unboxed_type_representation : Env.t -> type_expr -> type_expr (* Cheap upper bound on layout. Will not expand unboxed types - call [type_layout] if that's needed. *) val estimate_type_layout : Env.t -> type_expr -> Type_layout.t + +(* Get the layout of a type, expanding it and looking through [[@@unboxed]] + types. *) val type_layout : Env.t -> type_expr -> Type_layout.t (* Find a type's sort (constraining it to be an arbitrary sort variable, if diff --git a/typing/datarepr.ml b/typing/datarepr.ml index f6f6581921..99d32ce3f2 100644 --- a/typing/datarepr.ml +++ b/typing/datarepr.ml @@ -46,11 +46,7 @@ let free_vars ?(param=false) ty = let newgenconstr path tyl = newgenty (Tconstr (path, tyl, ref Mnil)) let constructor_existentials cd_args cd_res = - let tyl = - match cd_args with - | Cstr_tuple l -> List.map (fun (ty, _) -> ty) l - | Cstr_record l -> List.map (fun l -> l.ld_type) l - in + let tyl = tys_of_constr_args cd_args in let existentials = match cd_res with | None -> [] diff --git a/typing/oprint.ml b/typing/oprint.ml index 78f748a64b..7f42d28631 100644 --- a/typing/oprint.ml +++ b/typing/oprint.ml @@ -65,6 +65,13 @@ let value_ident ppf name = else pp_print_string ppf name +(* Layouts *) + +let print_layout_option ppf : Asttypes.layout_annotation option -> _ = function + | None -> () + | Some lay -> fprintf ppf "@ : %s" + (Pprintast.layout_annotation_to_string lay) + (* Values *) let valid_float_lexeme s = @@ -266,8 +273,14 @@ let pr_present = let pr_var = Pprintast.tyvar -let pr_vars = - print_list pr_var (fun ppf -> fprintf ppf "@ ") +let pr_var_layout ppf (v, l) = match l with + | None -> pr_var ppf v + | Some lay -> fprintf ppf "(%a : %a)" + pr_var v + Pprintast.layout_annotation lay + +let pr_var_layouts = + print_list pr_var_layout (fun ppf -> fprintf ppf "@ ") let join_modes rm1 am2 = match rm1, am2 with @@ -281,9 +294,11 @@ let rec print_out_type_0 mode ppf = function | Otyp_alias (ty, s) -> fprintf ppf "@[%a@ as %a@]" (print_out_type_0 mode) ty pr_var s + | Otyp_poly ([], ty) -> + print_out_type_0 mode ppf ty (* no "." if there are no vars *) | Otyp_poly (sl, ty) -> fprintf ppf "@[%a.@ %a@]" - pr_vars sl + pr_var_layouts sl (print_out_type_0 mode) ty | ty -> print_out_type_1 mode ppf ty @@ -463,19 +478,27 @@ let out_type = ref print_out_type let print_type_parameter ppf s = if s = "_" then fprintf ppf "_" else pr_var ppf s -let type_parameter ppf (ty, (var, inj)) = +let type_parameter ~in_parens ppf + { oparam_name = ty; oparam_variance = var; + oparam_injectivity = inj; oparam_layout = lay } = let open Asttypes in - fprintf ppf "%s%s%a" + let format_string : _ format = "%s%s%a%a" in + let format_string : _ format = match lay with + | Some _ when not in_parens -> "(" ^^ format_string ^^ ")" + | _ -> format_string + in + fprintf ppf format_string (match var with Covariant -> "+" | Contravariant -> "-" | NoVariance -> "") (match inj with Injective -> "!" | NoInjectivity -> "") print_type_parameter ty + print_layout_option lay let print_out_class_params ppf = function [] -> () | tyl -> fprintf ppf "@[<1>[%a]@]@ " - (print_list type_parameter (fun ppf -> fprintf ppf ", ")) + (print_list (type_parameter ~in_parens:true) (fun ppf -> fprintf ppf ", ")) tyl let rec print_out_class_type ppf = @@ -686,8 +709,9 @@ and print_out_sig_item ppf = | Orec_first -> "type" | Orec_next -> "and") ppf td - | Osig_value vd -> - let kwd = if vd.oval_prims = [] then "val" else "external" in + | Osig_value { oval_name; oval_type; + oval_prims; oval_attributes } -> + let kwd = if oval_prims = [] then "val" else "external" in let pr_prims ppf = function [] -> () @@ -695,10 +719,11 @@ and print_out_sig_item ppf = fprintf ppf "@ = \"%s\"" s; List.iter (fun s -> fprintf ppf "@ \"%s\"" s) sl in - fprintf ppf "@[<2>%s %a :@ %a%a%a@]" kwd value_ident vd.oval_name - !out_type vd.oval_type pr_prims vd.oval_prims + fprintf ppf "@[<2>%s %a :@ %a%a%a@]" kwd value_ident oval_name + !out_type oval_type + pr_prims oval_prims (fun ppf -> List.iter (fun a -> fprintf ppf "@ [@@@@%s]" a.oattr_name)) - vd.oval_attributes + oval_attributes | Osig_ellipsis -> fprintf ppf "..." @@ -713,10 +738,12 @@ and print_out_type_decl kwd ppf td = let type_defined ppf = match td.otype_params with [] -> pp_print_string ppf td.otype_name - | [param] -> fprintf ppf "@[%a@ %s@]" type_parameter param td.otype_name + | [param] -> fprintf ppf "@[%a@ %s@]" + (type_parameter ~in_parens:false) param td.otype_name | _ -> fprintf ppf "@[(@[%a)@]@ %s@]" - (print_list type_parameter (fun ppf -> fprintf ppf ",@ ")) + (print_list (type_parameter ~in_parens:true) + (fun ppf -> fprintf ppf ",@ ")) td.otype_params td.otype_name in @@ -737,15 +764,6 @@ and print_out_type_decl kwd ppf td = Asttypes.Private -> fprintf ppf " private" | Asttypes.Public -> () in - let print_layout ppf = - match td.otype_layout with - | None -> () - | Some Olay_any -> fprintf ppf " [%@%@any]" - | Some Olay_value -> fprintf ppf " [%@%@value]" - | Some Olay_void -> fprintf ppf " [%@%@void]" - | Some Olay_immediate64 -> fprintf ppf " [%@%@immediate64]" - | Some Olay_immediate -> fprintf ppf " [%@%@immediate]" - in let print_unboxed ppf = if td.otype_unboxed then fprintf ppf " [%@%@unboxed]" else () in @@ -770,11 +788,11 @@ and print_out_type_decl kwd ppf td = print_private td.otype_private !out_type ty in - fprintf ppf "@[<2>@[%t%a@]%t%t%t@]" + fprintf ppf "@[<2>@[%t%a%a@]%t%t@]" print_name_params + print_layout_option td.otype_layout print_out_tkind ty print_constraints - print_layout print_unboxed and print_simple_out_gf_type ppf (ty, gf) = @@ -822,12 +840,17 @@ and print_out_constr ppf constr = fprintf ppf "@[<2>%s of@ %a@]" name print_out_constr_args tyl end - | Some ret_type -> + | Some (vars_layouts, ret_type) -> + fprintf ppf "@[<2>%s :@ " name; + begin match vars_layouts with + | [] -> () + | _ -> fprintf ppf "@[%a.@]@ " pr_var_layouts vars_layouts + end; begin match tyl with | [] -> - fprintf ppf "@[<2>%s :@ %a@]" name print_simple_out_type ret_type + fprintf ppf "%a@]" print_simple_out_type ret_type | _ -> - fprintf ppf "@[<2>%s :@ %a -> %a@]" name + fprintf ppf "%a -> %a@]" print_out_constr_args tyl print_simple_out_type ret_type end diff --git a/typing/outcometree.mli b/typing/outcometree.mli index 699fc79056..860a0fc98a 100644 --- a/typing/outcometree.mli +++ b/typing/outcometree.mli @@ -56,7 +56,11 @@ type out_value = | Oval_tuple of out_value list | Oval_variant of string * out_value option -type out_type_param = string * (Asttypes.variance * Asttypes.injectivity) +type out_type_param = + { oparam_name : string; + oparam_variance : Asttypes.variance; + oparam_injectivity : Asttypes.injectivity; + oparam_layout : Asttypes.layout_annotation option } type out_mutable_or_global = | Ogom_mutable @@ -69,6 +73,9 @@ type out_global = | Ogf_nonlocal | Ogf_unrestricted +(* should be empty if all the layout annotations are missing *) +type out_vars_layouts = (string * Asttypes.layout_annotation option) list + type out_type = | Otyp_abstract | Otyp_open @@ -85,14 +92,14 @@ type out_type = | Otyp_var of bool * string | Otyp_variant of bool * out_variant * bool * (string list) option - | Otyp_poly of string list * out_type + | Otyp_poly of out_vars_layouts * out_type | Otyp_module of out_ident * (string * out_type) list | Otyp_attribute of out_type * out_attribute and out_constructor = { ocstr_name: string; ocstr_args: (out_type * out_global) list; - ocstr_return_type: out_type option; + ocstr_return_type: (out_vars_layouts * out_type) option; } and out_variant = @@ -104,13 +111,6 @@ and out_alloc_mode = | Oam_global | Oam_unknown -and out_layout_annot = - | Olay_any - | Olay_value - | Olay_void - | Olay_immediate64 - | Olay_immediate - type out_class_type = | Octy_constr of out_ident * out_type list | Octy_arrow of string * out_type * out_class_type @@ -144,7 +144,11 @@ and out_type_decl = otype_params: out_type_param list; otype_type: out_type; otype_private: Asttypes.private_flag; - otype_layout: out_layout_annot option; + + (* Some <=> we should print this annotation; + see Note [When to print layout annotations] in Printtyp, Case (C1) *) + otype_layout: Asttypes.layout_annotation option; + otype_unboxed: bool; otype_cstrs: (out_type * out_type) list } and out_extension_constructor = @@ -152,7 +156,7 @@ and out_extension_constructor = oext_type_name: string; oext_type_params: string list; oext_args: (out_type * out_global) list; - oext_ret_type: out_type option; + oext_ret_type: (out_vars_layouts * out_type) option; oext_private: Asttypes.private_flag } and out_type_extension = { otyext_name: string; diff --git a/typing/primitive.ml b/typing/primitive.ml index d6de7b654d..e9c1ad96d1 100644 --- a/typing/primitive.ml +++ b/typing/primitive.ml @@ -199,6 +199,8 @@ let add_attribute_list ty attrs = let rec add_native_repr_attributes ty attrs = match ty, attrs with + (* Otyp_poly case might have been added in e.g. tree_of_value_description *) + | Otyp_poly (vars, ty), _ -> Otyp_poly (vars, add_native_repr_attributes ty attrs) | Otyp_arrow (label, am, a, rm, r), attr_l :: rest -> let r = add_native_repr_attributes r rest in let a = add_attribute_list a attr_l in diff --git a/typing/printtyp.ml b/typing/printtyp.ml index 95a3b4b2e1..3c3131fdc5 100644 --- a/typing/printtyp.ml +++ b/typing/printtyp.ml @@ -28,6 +28,63 @@ open Outcometree module String = Misc.Stdlib.String module Int = Misc.Stdlib.Int +(* Note [When to print layout annotations] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Layout annotations are only occasionally necessary to write + (compilation can often infer layouts), so when should we print + them? This Note addresses all the cases. + + Case (C1). The layout on a type declaration, like + [type 'a t : <> = ...]. + + We print the layout when it cannot be inferred from the rest of what + is printed. Specifically, we print the layout when either of these + is the case: + + (C1.1) The type declaration is abstract and has no manifest (i.e., + it's written without any [=]-signs), and the layout is not the default + [value]. (* CR layouts reisenberg: update when the default changes *) + + In this case, there is no way to know the layout without the annotation. + + (C1.2) The type is [@@unboxed] and the user wrote a layout annotation. If an + [@@unboxed] type is recursive, it can be impossible to deduce the layout. + We thus defer to the user in determining whether to print the layout annotation. + + Case (C2). The layout on a type parameter to a type, like + [type ('a : <>) t = ...]. + + This layout is printed if both of the following are true: + + (C2.1) The layout is something other than the default [value]. + (* CR layouts reisenberg: update when the default changes *) + + (C2.2) The variable has no constraints on it. (If there is a constraint, + the constraint determines the layout, so printing the layout is + redundant.) + + We *could*, in theory, print this only when it cannot be inferred. + But this amounts to repeating inference. The heuristic also runs into + trouble when considering the possibility of a recursive type. So, in + order to keep the pretty-printer simple, we just always print the + (non-default) annotation. + + Another design possibility is to pass in verbosity level as some kind + of flag. + + Case (C3). The layout on a universal type variable, like + [val f : ('a : <>). 'a -> 'a]. + + We should print this layout annotation whenever it is not the + default [value]. (* CR layouts reisenberg: update when the default changes *) + This is a challenge, though, because the type in a [val] does not + explicitly quantify its free variables. So we must collect the free + variables, look to see whether any have interesting layouts, and + print the whole set of variables if any of them do. This is all + implemented in [extract_qtvs], used also in a number of other places + we do quantification (e.g. gadt-syntax constructors). +*) + (* Print a long identifier *) let rec longident ppf = function @@ -1096,6 +1153,25 @@ let add_type_to_preparation = prepare_type (* Disabled in classic mode when printing an unification error *) let print_labels = ref true +(* Returns a layout annotation if we should print one, according to + Note [When to print layout annotations] *) +let layout_annotation_of_layout layout : Asttypes.layout_annotation option = + match Type_layout.repr layout with + | Any -> Some Any + | Immediate64 -> Some Immediate64 + | Immediate -> Some Immediate + | Sort Value -> None (* this is (C2.1) from the Note *) + | Sort Void -> Some Void + | Sort (Var _) -> assert false + (* by the time we're printing, these should be defaulted *) + +let layout_annotation_of_param tv : Asttypes.layout_annotation option = + (* This adds a layout annotation according to Case (C2) in + Note [When to print layout annotations] *) + match get_desc tv with + | Tvar { layout } -> layout_annotation_of_layout layout + | _ -> None (* this is (C2.2) from the Note *) + let rec tree_of_typexp mode ty = let px = proxy ty in if List.memq px !printed_aliases && not (List.memq px !delayed) then @@ -1202,18 +1278,16 @@ let rec tree_of_typexp mode ty = (*let print_names () = List.iter (fun (_, name) -> prerr_string (name ^ " ")) !names; prerr_string "; " in *) - if tyl = [] then tree_of_typexp mode ty else begin - let tyl = List.map Transient_expr.repr tyl in - let old_delayed = !delayed in - (* Make the names delayed, so that the real type is - printed once when used as proxy *) - List.iter add_delayed tyl; - let tl = List.map (Names.name_of_type Names.new_name) tyl in - let tr = Otyp_poly (tl, tree_of_typexp mode ty) in - (* Forget names when we leave scope *) - Names.remove_names tyl; - delayed := old_delayed; tr - end + let tyl = List.map Transient_expr.repr tyl in + let old_delayed = !delayed in + (* Make the names delayed, so that the real type is + printed once when used as proxy *) + List.iter add_delayed tyl; + let tl = tree_of_qtvs tyl in + let tr = Otyp_poly (tl, tree_of_typexp mode ty) in + (* Forget names when we leave scope *) + Names.remove_names tyl; + delayed := old_delayed; tr | Tunivar _ -> Otyp_var (false, Names.name_of_type Names.new_name tty) | Tpackage (p, fl) -> @@ -1231,6 +1305,20 @@ let rec tree_of_typexp mode ty = Otyp_alias (pr_typ (), Names.name_of_type Names.new_name px) end else pr_typ () +(* qtvs = quantified type variables *) +(* this silently drops any arguments that are not generic Tvar or Tunivar *) +and tree_of_qtvs qtvs = + let tree_of_qtv v : (string * Asttypes.layout_annotation option) option = + let tree layout = Some (Names.name_of_type Names.new_name v, + layout_annotation_of_layout layout) + in + match v.desc with + | Tvar { layout } when v.level = generic_level -> tree layout + | Tunivar { layout } -> tree layout + | _ -> None + in + List.filter_map tree_of_qtv qtvs + and tree_of_row_field mode (l, f) = match row_field_repr f with | Rpresent None | Reither(true, [], _) -> (l, false, []) @@ -1358,9 +1446,23 @@ let filter_params tyl = [] tyl in List.rev params -let prepare_type_constructor_arguments = function - | Cstr_tuple l -> List.iter (fun (ty, _) -> prepare_type ty) l - | Cstr_record l -> List.iter (fun l -> prepare_type l.ld_type) l +let prepare_type_constructor_arguments args = + List.iter prepare_type (tys_of_constr_args args) + +(* returns an empty list if no variables in the list have a layout annotation *) +let zap_qtvs_if_boring qtvs = + if List.exists (fun (_v, l) -> Option.is_some l) qtvs + then qtvs + else [] + +(* get the free variables with their layouts; do this *after* converting the + type itself, so that the type names are available. + This implements Case (C3) from Note [When to print layout annotations]. *) +let extract_qtvs tyl = + let fvs = Ctype.free_non_row_variables_of_list tyl in + let tfvs = List.map Transient_expr.repr fvs in + let vars_layouts = tree_of_qtvs tfvs in + zap_qtvs_if_boring vars_layouts let rec tree_of_type_decl id decl = @@ -1453,9 +1555,14 @@ let rec tree_of_type_decl id decl = else (NoVariance, NoInjectivity)) decl.type_params decl.type_variance in + let mk_param ty (variance, injectivity) = + { oparam_name = type_param (tree_of_typexp Type ty); + oparam_variance = variance; + oparam_injectivity = injectivity; + oparam_layout = layout_annotation_of_param ty } + in (Ident.name id, - List.map2 (fun ty cocn -> type_param (tree_of_typexp Type ty), cocn) - params vari) + List.map2 mk_param params vari) in let tree_of_manifest ty1 = match ty_manifest with @@ -1464,17 +1571,6 @@ let rec tree_of_type_decl id decl = in let (name, args) = type_defined decl in let constraints = tree_of_constraints params in - let olayout_of_layout = function - | Builtin_attributes.Any -> Olay_any - | Builtin_attributes.Value -> Olay_value - | Builtin_attributes.Void -> Olay_void - | Builtin_attributes.Immediate64 -> Olay_immediate64 - | Builtin_attributes.Immediate -> Olay_immediate - in - let lay = - Option.map olayout_of_layout - (Builtin_attributes.layout decl.type_attributes) - in let ty, priv, unboxed = match decl.type_kind with | Type_abstract _ -> @@ -1500,12 +1596,26 @@ let rec tree_of_type_decl id decl = tree_of_manifest Otyp_open, decl.type_private, false + in + (* The algorithm for setting [lay] here is described as Case (C1) in + Note [When to print layout annotations] *) + let lay = match ty, unboxed with + | (Otyp_abstract, _) | (_, true) -> + (* (C1.1) from the Note corresponds to Otyp_abstract. Anything + but the default must be user-written, so we just look in the + attributes. Similarly, look in the attributes for (C1.2), the + unboxed case. *) + begin match Builtin_attributes.layout decl.type_attributes with + | Some {txt = Value} -> None + | other -> other + end + | _ -> None (* other cases have no layout annotation *) in { otype_name = name; otype_params = args; otype_type = ty; otype_private = priv; - otype_layout = lay; + otype_layout = Option.map Location.txt lay; otype_unboxed = unboxed; otype_cstrs = constraints } @@ -1513,24 +1623,23 @@ and tree_of_constructor_arguments = function | Cstr_tuple l -> List.map tree_of_typ_gf l | Cstr_record l -> [ Otyp_record (List.map tree_of_label l), Ogf_unrestricted ] -and tree_of_constructor cd = - let name = Ident.name cd.cd_id in - let arg () = tree_of_constructor_arguments cd.cd_args in - match cd.cd_res with - | None -> { - ocstr_name = name; - ocstr_args = arg (); - ocstr_return_type = None; - } +and tree_of_constructor_args_and_ret_type args ret_type = + match ret_type with + | None -> (tree_of_constructor_arguments args, None) | Some res -> Names.with_local_names (fun () -> - let ret = tree_of_typexp Type res in - let args = arg () in - { - ocstr_name = name; - ocstr_args = args; - ocstr_return_type = Some ret; - }) + let out_ret = tree_of_typexp Type res in + let out_args = tree_of_constructor_arguments args in + let qtvs = extract_qtvs (res :: tys_of_constr_args args) in + (out_args, Some (qtvs, out_ret))) + +and tree_of_constructor cd = + let name = Ident.name cd.cd_id in + let args, ret = tree_of_constructor_args_and_ret_type cd.cd_args cd.cd_res in + { ocstr_name = name; + ocstr_args = args; + ocstr_return_type = ret + } and tree_of_label l = let gom = @@ -1565,15 +1674,6 @@ let constructor_arguments ppf a = (* Print an extension declaration *) -let extension_constructor_args_and_ret_type_subtree ext_args ext_ret_type = - match ext_ret_type with - | None -> (tree_of_constructor_arguments ext_args, None) - | Some res -> - Names.with_local_names (fun () -> - let ret = tree_of_typexp Type res in - let args = tree_of_constructor_arguments ext_args in - (args, Some ret)) - let tree_of_extension_constructor id ext es = reset_except_context (); let ty_name = Path.name ext.ext_type_path in @@ -1593,7 +1693,7 @@ let tree_of_extension_constructor id ext es = in let name = Ident.name id in let args, ret = - extension_constructor_args_and_ret_type_subtree + tree_of_constructor_args_and_ret_type ext.ext_args ext.ext_ret_type in @@ -1622,7 +1722,7 @@ let extension_only_constructor id ppf ext = Option.iter prepare_type ext.ext_ret_type; let name = Ident.name id in let args, ret = - extension_constructor_args_and_ret_type_subtree + tree_of_constructor_args_and_ret_type ext.ext_args ext.ext_ret_type in @@ -1639,9 +1739,12 @@ let tree_of_value_description id decl = (* Format.eprintf "@[%a@]@." raw_type_expr decl.val_type; *) let id = Ident.name id in let ty = tree_of_type_scheme decl.val_type in + (* Important: process the fvs *after* the type; tree_of_type_scheme + resets the naming context *) + let qtvs = extract_qtvs [decl.val_type] in let vd = { oval_name = id; - oval_type = ty; + oval_type = Otyp_poly(qtvs, ty); oval_prims = []; oval_attributes = [] } in @@ -1669,10 +1772,13 @@ let prepare_method _lab (priv, _virt, ty) = let tree_of_method mode (lab, priv, virt, ty) = let (ty, tyl) = method_type priv ty in let tty = tree_of_typexp mode ty in - Names.remove_names (List.map Transient_expr.repr tyl); + let tyl = List.map Transient_expr.repr tyl in + let qtvs = tree_of_qtvs tyl in + let qtvs = zap_qtvs_if_boring qtvs in + Names.remove_names tyl; let priv = priv <> Mpublic in let virt = virt = Virtual in - Ocsg_method (lab, priv, virt, tty) + Ocsg_method (lab, priv, virt, Otyp_poly(qtvs, tty)) let rec prepare_class_type params = function | Cty_constr (_p, tyl, cty) -> @@ -1760,12 +1866,21 @@ let class_type ppf cty = prepare_class_type [] cty; !Oprint.out_class_type ppf (tree_of_class_type Type [] cty) -let tree_of_class_param param variance = - (match tree_of_typexp Type_scheme param with - Otyp_var (_, s) -> s - | _ -> "?"), - if is_Tvar param then Asttypes.(NoVariance, NoInjectivity) - else variance +let tree_of_class_param param var_inj = + let variance, injectivity = + if is_Tvar param + then Asttypes.(NoVariance, NoInjectivity) + else var_inj + in + { oparam_name = begin match tree_of_typexp Type_scheme param with + | Otyp_var (_, s) -> s + | _ -> "?" + end; + oparam_variance = variance; + oparam_injectivity = injectivity; + (* CR-soon reisenberg: fix next line when adding support for layout + annotations on class type parameters *) + oparam_layout = layout_annotation_of_param param } let class_variance = let open Variance in let open Asttypes in diff --git a/typing/printtyped.ml b/typing/printtyped.ml index cb565b6785..a9cc271fdf 100644 --- a/typing/printtyped.ml +++ b/typing/printtyped.ml @@ -155,8 +155,20 @@ let arg_label i ppf = function | Labelled s -> line i ppf "Labelled \"%s\"\n" s ;; +let typevar_layout ~print_quote ppf (v, l) = + let pptv = + if print_quote + then Pprintast.tyvar + else fun ppf s -> fprintf ppf "%s" s + in + match l with + | None -> fprintf ppf " %a" pptv v + | Some lay -> fprintf ppf " (%a : %a)" + pptv v + Pprintast.layout_annotation lay + let typevars ppf vs = - List.iter (fun x -> fprintf ppf " %a" Pprintast.tyvar x.txt) vs + List.iter (typevar_layout ~print_quote:true ppf) vs ;; let layout_array i ppf layouts = @@ -239,11 +251,14 @@ let rec core_type i ppf x = core_type i ppf ct; | Ttyp_poly (sl, ct) -> line i ppf "Ttyp_poly%a\n" - (fun ppf -> List.iter (fun x -> fprintf ppf " '%s" x)) sl; + (fun ppf -> List.iter (typevar_layout ~print_quote:true ppf)) sl; core_type i ppf ct; | Ttyp_package { pack_path = s; pack_fields = l } -> line i ppf "Ttyp_package %a\n" fmt_path s; list i package_with ppf l; + | Ttyp_layout (inner_ty, layout) -> + line i ppf "Ttyp_layout %s\n" (Pprintast.layout_annotation_to_string layout); + core_type i ppf inner_ty; and package_with i ppf (s, t) = line i ppf "with type %a\n" fmt_longident s; @@ -332,8 +347,8 @@ and expression_extra i ppf (x,_,attrs) = line i ppf "Texp_poly\n"; attributes i ppf attrs; option i core_type ppf cto; - | Texp_newtype s -> - line i ppf "Texp_newtype \"%s\"\n" s; + | Texp_newtype (s, lay) -> + line i ppf "Texp_newtype %a\n" (typevar_layout ~print_quote:false) (s, lay); attributes i ppf attrs; and comprehension i ppf comp_types= diff --git a/typing/tast_iterator.ml b/typing/tast_iterator.ml index c5bc8a4de9..1a6416d421 100644 --- a/typing/tast_iterator.ml +++ b/typing/tast_iterator.ml @@ -32,6 +32,7 @@ type iterator = env: iterator -> Env.t -> unit; expr: iterator -> expression -> unit; extension_constructor: iterator -> extension_constructor -> unit; + layout_annotation: iterator -> layout_annotation -> unit; module_binding: iterator -> module_binding -> unit; module_coercion: iterator -> module_coercion -> unit; module_declaration: iterator -> module_declaration -> unit; @@ -459,8 +460,11 @@ let typ sub {ctyp_desc; ctyp_env; _} = | Ttyp_class (_, _, list) -> List.iter (sub.typ sub) list | Ttyp_alias (ct, _) -> sub.typ sub ct | Ttyp_variant (list, _, _) -> List.iter (sub.row_field sub) list - | Ttyp_poly (_, ct) -> sub.typ sub ct + | Ttyp_poly (vars, ct) -> + List.iter (fun (_, l) -> Option.iter (sub.layout_annotation sub) l) vars; + sub.typ sub ct | Ttyp_package pack -> sub.package_type sub pack + | Ttyp_layout (ct, l) -> sub.typ sub ct; sub.layout_annotation sub l let class_structure sub {cstr_self; cstr_fields; _} = sub.pat sub cstr_self; @@ -503,6 +507,8 @@ let value_binding sub {vb_pat; vb_expr; _} = let env _sub _ = () +let layout_annotation _sub _ = () + let default_iterator = { binding_op; @@ -519,6 +525,7 @@ let default_iterator = env; expr; extension_constructor; + layout_annotation; module_binding; module_coercion; module_declaration; diff --git a/typing/tast_iterator.mli b/typing/tast_iterator.mli index e126128edf..cc31d542db 100644 --- a/typing/tast_iterator.mli +++ b/typing/tast_iterator.mli @@ -36,6 +36,7 @@ type iterator = env: iterator -> Env.t -> unit; expr: iterator -> expression -> unit; extension_constructor: iterator -> extension_constructor -> unit; + layout_annotation: iterator -> layout_annotation -> unit; module_binding: iterator -> module_binding -> unit; module_coercion: iterator -> module_coercion -> unit; module_declaration: iterator -> module_declaration -> unit; diff --git a/typing/tast_mapper.ml b/typing/tast_mapper.ml index cccb2827f1..92907a2c31 100644 --- a/typing/tast_mapper.ml +++ b/typing/tast_mapper.ml @@ -37,6 +37,7 @@ type mapper = expr: mapper -> expression -> expression; extension_constructor: mapper -> extension_constructor -> extension_constructor; + layout_annotation: mapper -> layout_annotation -> layout_annotation; module_binding: mapper -> module_binding -> module_binding; module_coercion: mapper -> module_coercion -> module_coercion; module_declaration: mapper -> module_declaration -> module_declaration; @@ -201,11 +202,14 @@ let type_exception sub x = in {x with tyexn_constructor} +let var_layout sub (v, l) = v, Option.map (sub.layout_annotation sub) l + let extension_constructor sub x = let ext_kind = match x.ext_kind with Text_decl(v, ctl, cto) -> - Text_decl(v, constructor_args sub ctl, Option.map (sub.typ sub) cto) + Text_decl(List.map (var_layout sub) v, + constructor_args sub ctl, Option.map (sub.typ sub) cto) | Text_rebind _ as d -> d in {x with ext_kind} @@ -684,10 +688,12 @@ let typ sub x = Ttyp_alias (sub.typ sub ct, s) | Ttyp_variant (list, closed, labels) -> Ttyp_variant (List.map (sub.row_field sub) list, closed, labels) - | Ttyp_poly (sl, ct) -> - Ttyp_poly (sl, sub.typ sub ct) + | Ttyp_poly (vars, ct) -> + Ttyp_poly (List.map (var_layout sub) vars, sub.typ sub ct) | Ttyp_package pack -> Ttyp_package (sub.package_type sub pack) + | Ttyp_layout (ct, l) -> + Ttyp_layout (sub.typ sub ct, sub.layout_annotation sub l) in {x with ctyp_desc; ctyp_env} @@ -755,6 +761,8 @@ let value_binding sub x = let env _sub x = x +let layout_annotation _sub l = l + let default = { binding_op; @@ -771,6 +779,7 @@ let default = env; expr; extension_constructor; + layout_annotation; module_binding; module_coercion; module_declaration; diff --git a/typing/tast_mapper.mli b/typing/tast_mapper.mli index ea6543d04f..e236ceb490 100644 --- a/typing/tast_mapper.mli +++ b/typing/tast_mapper.mli @@ -36,6 +36,7 @@ type mapper = expr: mapper -> expression -> expression; extension_constructor: mapper -> extension_constructor -> extension_constructor; + layout_annotation: mapper -> layout_annotation -> layout_annotation; module_binding: mapper -> module_binding -> module_binding; module_coercion: mapper -> module_coercion -> module_coercion; module_declaration: mapper -> module_declaration -> module_declaration; diff --git a/typing/type_layout.ml b/typing/type_layout.ml index f7a8abee26..58936265e6 100644 --- a/typing/type_layout.ml +++ b/typing/type_layout.ml @@ -42,17 +42,20 @@ module Const = struct end -let of_layout_annotation annot ~default = - match annot with +let of_layout_annotation = function + | Asttypes.Any -> Any + | Asttypes.Value -> Sort Value + | Asttypes.Void -> Sort Void + | Asttypes.Immediate64 -> Immediate64 + | Asttypes.Immediate -> Immediate + +let of_layout_annotation_opt annot_opt ~default = + match annot_opt with | None -> default - | Some Builtin_attributes.Any -> Any - | Some Builtin_attributes.Value -> Sort Value - | Some Builtin_attributes.Void -> Sort Void - | Some Builtin_attributes.Immediate64 -> Immediate64 - | Some Builtin_attributes.Immediate -> Immediate + | Some {Location.txt = annot} -> of_layout_annotation annot let of_attributes ~default attrs = - of_layout_annotation ~default (Builtin_attributes.layout attrs) + of_layout_annotation_opt ~default (Builtin_attributes.layout attrs) let rec sort_to_string = function | Var r -> begin diff --git a/typing/type_layout.mli b/typing/type_layout.mli index 47a40e1c50..b249b42c72 100644 --- a/typing/type_layout.mli +++ b/typing/type_layout.mli @@ -76,8 +76,11 @@ val intersection : t -> t -> (t, Violation.t) Result.t val sublayout : t -> t -> (t, Violation.t) result (** Translate a user layout annotation to a layout *) -val of_layout_annotation : - Builtin_attributes.layout_annotation option -> default:t -> t +val of_layout_annotation : Asttypes.layout_annotation -> t + +(** Translate an optional user layout annotation to a layout, with a default *) +val of_layout_annotation_opt : + Asttypes.layout_annotation Location.loc option -> default:t -> t (** Find a layout in attributes, defaulting to ~default *) val of_attributes : default:t -> Parsetree.attributes -> t diff --git a/typing/typeclass.ml b/typing/typeclass.ml index af55ef43c7..3ac6a112ae 100644 --- a/typing/typeclass.ml +++ b/typing/typeclass.ml @@ -317,7 +317,7 @@ let rec class_type_field env sign self_scope ctf = (fun () -> let sty = Ast_helper.Typ.force_poly sty in match sty.ptyp_desc, priv with - | Ptyp_poly ([],sty'), Public -> + | Ptyp_poly ([],sty',[]), Public -> let expected_ty = Ctype.newvar Type_layout.value in add_method loc env lab priv virt expected_ty sign; let returned_cty = ctyp Ttyp_any (Ctype.newty Tnil) env loc in @@ -1581,6 +1581,8 @@ let class_infos define_class kind let ci_params = let make_param (sty, v) = try + (* CR-soon reisenberg: That should probably allow [any], not just + [value] *) (transl_type_param env sty Type_layout.value, v) with Already_bound -> raise(Error(sty.ptyp_loc, env, Repeated_parameter)) diff --git a/typing/typecore.ml b/typing/typecore.ml index 08c005a907..f7147d6f1a 100644 --- a/typing/typecore.ml +++ b/typing/typecore.ml @@ -3084,7 +3084,7 @@ let is_local_returning_expr e = false, e.pexp_loc | Pexp_let(_, _, e) | Pexp_sequence(_, e) | Pexp_constraint(e, _) | Pexp_coerce(e, _, _) | Pexp_letmodule(_, _, e) | Pexp_letexception(_, e) - | Pexp_poly(e, _) | Pexp_newtype(_, e) | Pexp_open(_, e) + | Pexp_poly(e, _) | Pexp_newtype(_, e, _) | Pexp_open(_, e) | Pexp_ifthenelse(_, e, None)-> loop e | Pexp_ifthenelse(_, e1, Some e2)-> combine (loop e1) (loop e2) @@ -3110,7 +3110,7 @@ let rec is_an_uncurried_function e = match e.pexp_desc, e.pexp_attributes with | (Pexp_fun _ | Pexp_function _), _ -> true | Pexp_poly (e, _), _ - | Pexp_newtype (_, e), _ + | Pexp_newtype (_, e, _), _ | Pexp_coerce (e, _, _), _ | Pexp_constraint (e, _), _ -> is_an_uncurried_function e | Pexp_let (Nonrecursive, _, e), @@ -4860,10 +4860,9 @@ and type_expect_ in re { exp with exp_extra = (Texp_poly cty, loc, sexp.pexp_attributes) :: exp.exp_extra } - | Pexp_newtype({txt=name}, sbody) -> + | Pexp_newtype({txt=name}, sbody, lay) -> let layout = - Type_layout.of_layout_annotation ~default:Type_layout.value - (Builtin_attributes.layout sexp.pexp_attributes) + Type_layout.of_layout_annotation_opt ~default:Type_layout.value lay in let ty = if Typetexp.valid_tyvar_name name then @@ -4902,7 +4901,8 @@ and type_expect_ any new extra node in the typed AST. *) rue { body with exp_loc = loc; exp_type = ety; exp_extra = - (Texp_newtype name, loc, sexp.pexp_attributes) :: body.exp_extra } + (Texp_newtype (name, Option.map Location.txt lay), + loc, sexp.pexp_attributes) :: body.exp_extra } | Pexp_pack m -> let (p, fl) = match get_desc (Ctype.expand_head env (instance ty_expected)) with @@ -6409,7 +6409,7 @@ and type_let match e.pexp_desc with | Pexp_fun _ | Pexp_function _ -> true | Pexp_constraint (e, _) - | Pexp_newtype (_, e) + | Pexp_newtype (_, e, _) | Pexp_apply ({ pexp_desc = Pexp_extension( {txt = "extension.local"|"ocaml.local"|"local"}, PStr []) }, diff --git a/typing/typedecl.ml b/typing/typedecl.ml index 0c74b5b017..94079a29a6 100644 --- a/typing/typedecl.ml +++ b/typing/typedecl.ml @@ -371,7 +371,7 @@ let transl_constructor_arguments env univars closed = function type declaration to compute accurate layouts in the presence of recursively defined types. It is updated later by [update_constructor_arguments_layouts] *) -let make_constructor env loc type_path type_params svars sargs sret_type = +let make_constructor env loc type_path type_params svars slays sargs sret_type = match sret_type with | None -> let args, targs = @@ -388,7 +388,7 @@ let make_constructor env loc type_path type_params svars sargs sret_type = | [] -> None, false | vs -> Ctype.begin_def(); - Some (make_poly_univars (List.map (fun v -> v.txt) vs)), true + Some (make_poly_univars vs slays), true in let args, targs = transl_constructor_arguments env univars closed sargs @@ -500,7 +500,7 @@ let transl_declaration env sdecl (id, uid) = then Type_layout.any else Type_layout.value in - Type_layout.of_layout_annotation ~default layout_annotation + Type_layout.of_layout_annotation_opt ~default layout_annotation in Ttype_abstract, Type_abstract {layout} | Ptype_variant scstrs -> @@ -525,12 +525,14 @@ let transl_declaration env sdecl (id, uid) = let name = Ident.create_local scstr.pcd_name.txt in let targs, tret_type, args, ret_type = make_constructor env scstr.pcd_loc (Path.Pident id) params - scstr.pcd_vars scstr.pcd_args scstr.pcd_res + scstr.pcd_vars scstr.pcd_layouts + scstr.pcd_args scstr.pcd_res in + let mk_var_layout sv sl = sv.txt, Option.map Location.txt sl in let tcstr = { cd_id = name; cd_name = scstr.pcd_name; - cd_vars = scstr.pcd_vars; + cd_vars = List.map2 mk_var_layout scstr.pcd_vars scstr.pcd_layouts; cd_args = targs; cd_res = tret_type; cd_loc = scstr.pcd_loc; @@ -554,7 +556,7 @@ let transl_declaration env sdecl (id, uid) = let rep = if unbox then let layout = - Type_layout.of_layout_annotation ~default:Type_layout.any + Type_layout.of_layout_annotation_opt ~default:Type_layout.any layout_annotation in Variant_unboxed layout @@ -576,7 +578,7 @@ let transl_declaration env sdecl (id, uid) = let rep = if unbox then let layout = - Type_layout.of_layout_annotation ~default:Type_layout.any + Type_layout.of_layout_annotation_opt ~default:Type_layout.any layout_annotation in Record_unboxed layout @@ -1366,7 +1368,7 @@ let transl_type_decl env rec_flag sdecl_list = (* Check layout annotations *) List.iter (fun tdecl -> let layout = - Type_layout.of_layout_annotation ~default:Type_layout.any + Type_layout.of_layout_annotation_opt ~default:Type_layout.any tdecl.typ_layout_annotation in match Ctype.check_decl_layout final_env tdecl.typ_type layout with @@ -1383,10 +1385,10 @@ let transl_extension_constructor ~scope env type_path type_params let id = Ident.create_scoped ~scope sext.pext_name.txt in let args, arg_layouts, constant, ret_type, kind = match sext.pext_kind with - Pext_decl(svars, sargs, sret_type) -> + Pext_decl(svars, sargs, sret_type, slays) -> let targs, tret_type, args, ret_type = make_constructor env sext.pext_loc type_path typext_params - svars sargs sret_type + svars slays sargs sret_type in let num_args = match targs with @@ -1397,8 +1399,11 @@ let transl_extension_constructor ~scope env type_path type_params let args = update_constructor_arguments_layouts env sext.pext_loc args layouts in + let strip_locs sv sl = sv.txt, Option.map Location.txt sl in + let vars = List.map2 strip_locs svars slays in let constant = Array.for_all Type_layout.(equal void) layouts in - args, layouts, constant, ret_type, Text_decl(svars, targs, tret_type) + args, layouts, constant, ret_type, + Text_decl(vars, targs, tret_type) | Pext_rebind lid -> let usage : Env.constructor_usage = if priv = Public then Env.Exported else Env.Exported_private @@ -1752,7 +1757,7 @@ let rec parse_native_repr_attributes env core_type ty rmode ~global_repr = parse_native_repr_attributes env ct2 t2 (prim_const_mode mret) ~global_repr in ((mode,repr_arg) :: repr_args, repr_res) - | (Ptyp_poly (_, t) | Ptyp_alias (t, _)), _, _ -> + | (Ptyp_poly (_, t, _) | Ptyp_alias (t, _)), _, _ -> parse_native_repr_attributes env t ty rmode ~global_repr | _ -> let rmode = @@ -2097,11 +2102,6 @@ let explain_unbound_single ppf tv ty = "case" (fun (lab,_) -> "`" ^ lab ^ " of ") | _ -> trivial ty - -let tys_of_constr_args = function - | Types.Cstr_tuple tl -> List.map fst tl - | Types.Cstr_record lbls -> List.map (fun l -> l.Types.ld_type) lbls - let report_error ppf = function | Repeated_parameter -> fprintf ppf "A type parameter occurs several times" diff --git a/typing/typedtree.ml b/typing/typedtree.ml index 50f03f2a94..96818cc4b0 100644 --- a/typing/typedtree.ml +++ b/typing/typedtree.ml @@ -96,7 +96,7 @@ and exp_extra = | Texp_constraint of core_type | Texp_coerce of core_type option * core_type | Texp_poly of core_type option - | Texp_newtype of string + | Texp_newtype of string * layout_annotation option and fun_curry_state = @@ -514,8 +514,9 @@ and core_type_desc = | Ttyp_class of Path.t * Longident.t loc * core_type list | Ttyp_alias of core_type * string | Ttyp_variant of row_field list * closed_flag * label list option - | Ttyp_poly of string list * core_type + | Ttyp_poly of (string * layout_annotation option) list * core_type | Ttyp_package of package_type + | Ttyp_layout of core_type * layout_annotation and package_type = { pack_path : Path.t; @@ -565,7 +566,7 @@ and type_declaration = typ_manifest: core_type option; typ_loc: Location.t; typ_attributes: attribute list; - typ_layout_annotation: Builtin_attributes.layout_annotation option; + typ_layout_annotation: Asttypes.layout_annotation loc option; } and type_kind = @@ -589,7 +590,7 @@ and constructor_declaration = { cd_id: Ident.t; cd_name: string loc; - cd_vars: string loc list; + cd_vars: (string * layout_annotation option) list; cd_args: constructor_arguments; cd_res: core_type option; cd_loc: Location.t; @@ -629,7 +630,9 @@ and extension_constructor = } and extension_constructor_kind = - Text_decl of string loc list * constructor_arguments * core_type option + Text_decl of (string * layout_annotation option) list * + constructor_arguments * + core_type option | Text_rebind of Path.t * Longident.t loc and class_type = diff --git a/typing/typedtree.mli b/typing/typedtree.mli index 304b3f7a15..fd08e5ecfc 100644 --- a/typing/typedtree.mli +++ b/typing/typedtree.mli @@ -169,8 +169,8 @@ and exp_extra = *) | Texp_poly of core_type option (** Used for method bodies. *) - | Texp_newtype of string - (** fun (type t) -> *) + | Texp_newtype of string * layout_annotation option + (** fun (type t : immediate) -> *) and fun_curry_state = | More_args of { partial_mode : Types.alloc_mode } @@ -679,8 +679,15 @@ and core_type_desc = | Ttyp_class of Path.t * Longident.t loc * core_type list | Ttyp_alias of core_type * string | Ttyp_variant of row_field list * closed_flag * label list option - | Ttyp_poly of string list * core_type + | Ttyp_poly of (string * Asttypes.layout_annotation option) list * core_type | Ttyp_package of package_type + | Ttyp_layout of core_type * Asttypes.layout_annotation + (* The expression level equivalent of Ttyp_layout is Pexp_constraint, + which appears only as an exp_extra. In types, though, we store + it right in the core_type_desc. This is because, post-type-checking, + we don't analyze types in the same way we do expressions, for which + keeping inessential information (like the user-written type constraint) + off to the side is beneficial. *) and package_type = { pack_path : Path.t; @@ -731,7 +738,7 @@ and type_declaration = typ_manifest: core_type option; typ_loc: Location.t; typ_attributes: attributes; - typ_layout_annotation: Builtin_attributes.layout_annotation option; + typ_layout_annotation: Asttypes.layout_annotation loc option; } and type_kind = @@ -755,7 +762,7 @@ and constructor_declaration = { cd_id: Ident.t; cd_name: string loc; - cd_vars: string loc list; + cd_vars: (string * layout_annotation option) list; cd_args: constructor_arguments; cd_res: core_type option; cd_loc: Location.t; @@ -795,7 +802,9 @@ and extension_constructor = } and extension_constructor_kind = - Text_decl of string loc list * constructor_arguments * core_type option + Text_decl of (string * layout_annotation option) list * + constructor_arguments * + core_type option | Text_rebind of Path.t * Longident.t loc and class_type = diff --git a/typing/types.ml b/typing/types.ml index 481b4e97be..58a4e5b3ad 100644 --- a/typing/types.ml +++ b/typing/types.ml @@ -312,6 +312,10 @@ and type_transparence = | Type_new (* "new" type *) | Type_private (* private type *) +let tys_of_constr_args = function + | Cstr_tuple tl -> List.map fst tl + | Cstr_record lbls -> List.map (fun l -> l.ld_type) lbls + (* Type expressions for the class language *) type class_type = diff --git a/typing/types.mli b/typing/types.mli index a8a1c76b85..911b0e4c47 100644 --- a/typing/types.mli +++ b/typing/types.mli @@ -162,10 +162,11 @@ and layout = | Any | Sort of sort | Immediate64 - (** We know for sure that values of this type are always immediate on 64 bit - platforms. For other platforms, we know nothing about immediacy. *) + (** We know for sure that values of types of this layout are always immediate + on 64 bit platforms. For other platforms, we know nothing about immediacy. + *) | Immediate - (** We know for sure that values of this type are always immediate *) + (** We know for sure that values of types of this layout are always immediate *) and fixed_explanation = | Univar of type_expr (** The row type was bound to an univar *) @@ -577,6 +578,8 @@ and constructor_arguments = | Cstr_tuple of (type_expr * global_flag) list | Cstr_record of label_declaration list +val tys_of_constr_args : constructor_arguments -> type_expr list + val kind_abstract : layout:layout -> ('a,'b) type_kind val kind_abstract_value : ('a,'b) type_kind val kind_abstract_immediate : ('a,'b) type_kind diff --git a/typing/typetexp.ml b/typing/typetexp.ml index a4d3393a22..0243284416 100644 --- a/typing/typetexp.ml +++ b/typing/typetexp.ml @@ -29,6 +29,19 @@ exception Already_bound type value_loc = Fun_arg | Fun_ret | Tuple | Poly_variant | Package_constraint | Object_field +type cannot_quantify_reason = + | Unified of type_expr + | Univar + | Scope_escape + +(* a description of the layout on an explicitly quantified universal + variable, containing whether the layout was a default + (e.g. [let f : 'a. 'a -> 'a = ...]) or explicit + (e.g. [let f : ('a : immediate). ...]) and what the layout was; + it is original as compared to the inferred layout after processing + the body of the type *) +type layout_info = { original_layout : layout; defaulted : bool } + type error = Unbound_type_variable of string | Undefined_type_constructor of Path.t @@ -44,7 +57,9 @@ type error = | Not_a_variant of type_expr | Variant_tags of string * string | Invalid_variable_name of string - | Cannot_quantify of string * type_expr + | Cannot_quantify of string * cannot_quantify_reason + | Bad_univar_layout of + { name : string; layout_info : layout_info; inferred_layout : layout } | Multiple_constraints_on_type of Longident.t | Method_mismatch of string * type_expr * type_expr | Opened_object of Path.t option @@ -53,10 +68,20 @@ type error = | Polymorphic_optional_param | Non_value of {vloc : value_loc; typ : type_expr; err : Type_layout.Violation.t} + | Bad_layout_annot of type_expr * Type_layout.Violation.t exception Error of Location.t * Env.t * error exception Error_forward of Location.error +type poly_univars = (string * type_expr * layout_info) list + +let rec find_poly_univars name = function + | [] -> raise Not_found + | (n, t, _) :: rest -> + if String.equal name n + then t + else find_poly_univars name rest + (** Map indexed by type variable names. *) module TyVarMap = Misc.Stdlib.String.Map @@ -98,7 +123,7 @@ let create_package_mty fake loc env (p, l) = (* type_variables: all current type variable. Narrow and widen create scopes for these *) let type_variables = ref (TyVarMap.empty : type_expr TyVarMap.t) -let univars = ref ([] : (string * type_expr) list) +let univars = ref ([] : poly_univars) let pre_univars = ref ([] : type_expr list) let used_variables = ref (TyVarMap.empty : (type_expr * Location.t) TyVarMap.t) @@ -192,19 +217,42 @@ let rec extract_params styp = let new_pre_univar ?name layout = let v = newvar ?name layout in pre_univars := v :: !pre_univars; v -type poly_univars = (string * type_expr) list -let make_poly_univars vars = - List.map (fun name -> name, newvar ~name Type_layout.value) vars +let make_typed_univars vars layouts : (string * layout_annotation option) list = + List.map2 (fun v l -> v.txt, Option.map Location.txt l) vars layouts + +let make_poly_univars vars layouts = + let mk_pair v l = + let name = v.txt in + let original_layout = Type_layout.of_layout_annotation_opt l + ~default:Type_layout.value + in + let layout_info = { original_layout; defaulted = Option.is_none l } in + name, newvar ~name original_layout, layout_info + in + List.map2 mk_pair vars layouts let check_poly_univars env loc vars = - vars |> List.iter (fun (_, v) -> generalize v); - vars |> List.map (fun (name, ty1) -> + vars |> List.iter (fun (_, v, _) -> generalize v); + vars |> List.map (fun (name, ty1, + ({ original_layout; _ } as layout_info)) -> let v = Btype.proxy ty1 in + let cant_quantify reason = + raise (Error (loc, env, Cannot_quantify(name, reason))) + in begin match get_desc v with - | Tvar { name; layout } when get_level v = Btype.generic_level -> + | Tvar { layout } when not (Type_layout.equal layout original_layout) -> + let reason = Bad_univar_layout { name; layout_info; + inferred_layout = layout } + in + raise (Error (loc, env, reason)) + | Tvar _ when get_level v <> Btype.generic_level -> + cant_quantify Scope_escape + | Tvar { name; layout } -> set_type_desc v (Tunivar { name; layout }) + | Tunivar _ -> + cant_quantify Univar | _ -> - raise (Error (loc, env, Cannot_quantify(name, v))) + cant_quantify (Unified v) end; v) @@ -267,7 +315,7 @@ and transl_type_aux env policy mode styp = if not (valid_tyvar_name name) then raise (Error (styp.ptyp_loc, env, Invalid_variable_name ("'" ^ name))); begin try - instance (List.assoc name !univars) + instance (find_poly_univars name !univars) with Not_found -> try instance (fst (TyVarMap.find name !used_variables)) with Not_found -> @@ -454,7 +502,7 @@ and transl_type_aux env policy mode styp = let cty = try let t = - try List.assoc alias !univars + try find_poly_univars alias !univars with Not_found -> instance (fst(TyVarMap.find alias !used_variables)) in @@ -597,12 +645,10 @@ and transl_type_aux env policy mode styp = in let ty = newty (Tvariant (make_row more)) in ctyp (Ttyp_variant (tfields, closed, present)) ty - | Ptyp_poly(vars, st) -> - (* CJC XXX probably some work to do here when we add layout annotations on - type parameters *) - let vars = List.map (fun v -> v.txt) vars in + | Ptyp_poly(vars, st, layouts) -> + let typed_vars = make_typed_univars vars layouts in begin_def(); - let new_univars = make_poly_univars vars in + let new_univars = make_poly_univars vars layouts in let old_univars = !univars in univars := new_univars @ !univars; let cty = transl_type env policy mode st in @@ -614,7 +660,7 @@ and transl_type_aux env policy mode styp = let ty_list = List.filter (fun v -> deep_occur v ty) ty_list in let ty' = Btype.newgenty (Tpoly(ty, ty_list)) in unify_var env (newvar Type_layout.any) ty'; - ctyp (Ttyp_poly (vars, cty)) ty' + ctyp (Ttyp_poly (typed_vars, cty)) ty' | Ptyp_package (p, l) -> (* CJC XXX @@ -666,6 +712,17 @@ and transl_type_aux env policy mode styp = }) ty | Ptyp_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) + | Ptyp_layout (inner_type, layout_annot) -> + let cty = transl_type env policy mode inner_type in + let cty_expr = cty.ctyp_type in + let layout = Type_layout.of_layout_annotation layout_annot.txt in + begin match constrain_type_layout env cty_expr layout with + | Ok _ -> () + | Error err -> + raise (Error(styp.ptyp_loc, env, + Bad_layout_annot(cty_expr, err))) + end; + ctyp (Ttyp_layout (cty, layout_annot.txt)) cty.ctyp_type and transl_fields env policy o fields = let hfields = Hashtbl.create 17 in @@ -846,15 +903,15 @@ let transl_simple_type_delayed env mode styp = let transl_type_scheme env styp = reset_type_variables(); match styp.ptyp_desc with - | Ptyp_poly (vars, st) -> + | Ptyp_poly (vars, st, layouts) -> + let typed_vars = make_typed_univars vars layouts in begin_def(); - let vars = List.map (fun v -> v.txt) vars in - let univars = make_poly_univars vars in + let univars = make_poly_univars vars layouts in let typ = transl_simple_type env ~univars true Alloc_mode.Global st in end_def(); generalize typ.ctyp_type; let _ = instance_poly_univars env styp.ptyp_loc univars in - { ctyp_desc = Ttyp_poly (vars, typ); + { ctyp_desc = Ttyp_poly (typed_vars, typ); ctyp_type = typ.ctyp_type; ctyp_env = env; ctyp_loc = styp.ptyp_loc; @@ -941,17 +998,27 @@ let report_error env ppf = function lab1 lab2 "Change one of them." | Invalid_variable_name name -> fprintf ppf "The type variable name %s is not allowed in programs" name - | Cannot_quantify (name, v) -> + | Cannot_quantify (name, reason) -> fprintf ppf "@[The universal type variable %a cannot be generalized:@ " Pprintast.tyvar name; - if Btype.is_Tvar v then - fprintf ppf "it escapes its scope" - else if Btype.is_Tunivar v then + begin match reason with + | Unified v -> + fprintf ppf "it is bound to@ %a" Printtyp.type_expr v + | Univar -> fprintf ppf "it is already bound to another variable" - else - fprintf ppf "it is bound to@ %a" Printtyp.type_expr v; + | Scope_escape -> + fprintf ppf "it escapes its scope" + end; fprintf ppf ".@]"; + | Bad_univar_layout { name; layout_info; inferred_layout } -> + fprintf ppf + "@[The universal type variable %a was %s to have@ \ + layout %a, but was inferred to have layout %a.@]" + Pprintast.tyvar name + (if layout_info.defaulted then "defaulted" else "declared") + Type_layout.format layout_info.original_layout + Type_layout.format inferred_layout | Multiple_constraints_on_type s -> fprintf ppf "Multiple constraints for type %a" longident s | Method_mismatch (l, ty, ty') -> @@ -986,6 +1053,10 @@ let report_error env ppf = function fprintf ppf "@[%s types must have layout value.@ \ %a@]" s (Type_layout.Violation.report_with_offender ~offender:(fun ppf -> Printtyp.type_expr ppf typ)) err + | Bad_layout_annot(ty, violation) -> + fprintf ppf "@[Bad layout annotation:@ %a@]" + (Type_layout.Violation.report_with_offender + ~offender:(fun ppf -> Printtyp.type_expr ppf ty)) violation let () = Location.register_error_of_exn diff --git a/typing/typetexp.mli b/typing/typetexp.mli index 7ece7d7761..e4cb5e1099 100644 --- a/typing/typetexp.mli +++ b/typing/typetexp.mli @@ -20,8 +20,12 @@ open Types val valid_tyvar_name : string -> bool type poly_univars -val make_poly_univars : string list -> poly_univars - (* Create a set of univars with given names *) +val make_poly_univars : string Location.loc list -> + Asttypes.layout_annotation Location.loc option list -> + poly_univars + (* Create a set of univars with given names and layouts. Any call + of this function *must* call [check_poly_univars] when done + e.g. translating the type in which the univars are in scope. *) val check_poly_univars : Env.t -> Location.t -> poly_univars -> type_expr list (* Verify that the given univars are universally quantified, @@ -62,6 +66,8 @@ exception Already_bound type value_loc = Fun_arg | Fun_ret | Tuple | Poly_variant | Package_constraint | Object_field +type cannot_quantify_reason +type layout_info type error = Unbound_type_variable of string | Undefined_type_constructor of Path.t @@ -77,7 +83,9 @@ type error = | Not_a_variant of type_expr | Variant_tags of string * string | Invalid_variable_name of string - | Cannot_quantify of string * type_expr + | Cannot_quantify of string * cannot_quantify_reason + | Bad_univar_layout of + { name : string; layout_info : layout_info; inferred_layout : layout } | Multiple_constraints_on_type of Longident.t | Method_mismatch of string * type_expr * type_expr | Opened_object of Path.t option @@ -86,6 +94,7 @@ type error = | Polymorphic_optional_param | Non_value of {vloc : value_loc; typ : type_expr; err : Type_layout.Violation.t} + | Bad_layout_annot of type_expr * Type_layout.Violation.t exception Error of Location.t * Env.t * error diff --git a/typing/untypeast.ml b/typing/untypeast.ml index dac7b2e7da..31c2b71547 100644 --- a/typing/untypeast.ml +++ b/typing/untypeast.ml @@ -251,8 +251,10 @@ let constructor_arguments sub = function let constructor_declaration sub cd = let loc = sub.location sub cd.cd_loc in let attrs = sub.attributes sub cd.cd_attributes in + let vars, layouts = List.split cd.cd_vars in + let add_loc x = mkloc x loc in Type.constructor ~loc ~attrs - ~vars:cd.cd_vars + ~vars:(List.map add_loc vars, List.map (Option.map add_loc) layouts) ~args:(constructor_arguments sub cd.cd_args) ?res:(Option.map (sub.typ sub) cd.cd_res) (map_loc sub cd.cd_name) @@ -280,13 +282,15 @@ let type_exception sub tyexn = let extension_constructor sub ext = let loc = sub.location sub ext.ext_loc in + let add_loc x = mkloc x loc in let attrs = sub.attributes sub ext.ext_attributes in Te.constructor ~loc ~attrs (map_loc sub ext.ext_name) (match ext.ext_kind with | Text_decl (vs, args, ret) -> - Pext_decl (vs, constructor_arguments sub args, - Option.map (sub.typ sub) ret) + let vs, ls = List.split vs in + Pext_decl (List.map add_loc vs, constructor_arguments sub args, + Option.map (sub.typ sub) ret, List.map (Option.map add_loc) ls) | Text_rebind (_p, lid) -> Pext_rebind (map_loc sub lid) ) @@ -369,6 +373,7 @@ let pattern : type k . _ -> k T.general_pattern -> _ = fun sub pat -> let exp_extra sub (extra, loc, attrs) sexp = let loc = sub.location sub loc in let attrs = sub.attributes sub attrs in + let add_loc x = mkloc x loc in let desc = match extra with Texp_coerce (cty1, cty2) -> @@ -378,7 +383,8 @@ let exp_extra sub (extra, loc, attrs) sexp = | Texp_constraint cty -> Pexp_constraint (sexp, sub.typ sub cty) | Texp_poly cto -> Pexp_poly (sexp, Option.map (sub.typ sub) cto) - | Texp_newtype s -> Pexp_newtype (mkloc s loc, sexp) + | Texp_newtype (s, lay) -> + Pexp_newtype (add_loc s, sexp, Option.map add_loc lay) in Exp.mk ~loc ~attrs desc @@ -833,9 +839,14 @@ let core_type sub ct = | Ttyp_variant (list, bool, labels) -> Ptyp_variant (List.map (sub.row_field sub) list, bool, labels) | Ttyp_poly (list, ct) -> - let list = List.map (fun v -> mkloc v loc) list in - Ptyp_poly (list, sub.typ sub ct) + let vars, layouts = List.split list in + let add_loc x = mkloc x loc in + let vars = List.map add_loc vars in + let layouts = List.map (fun lay -> Option.map add_loc lay) layouts in + Ptyp_poly (vars, sub.typ sub ct, layouts) | Ttyp_package pack -> Ptyp_package (sub.package_type sub pack) + | Ttyp_layout (ct, l) -> + Ptyp_layout (sub.typ sub ct, mkloc l loc) in Typ.mk ~loc ~attrs desc