diff --git a/import-ocaml-source.sh b/import-ocaml-source.sh index 13157e1d6..4f5a44a12 100755 --- a/import-ocaml-source.sh +++ b/import-ocaml-source.sh @@ -125,6 +125,11 @@ for file in $(git diff --no-ext-diff --name-only HEAD^ HEAD); do utils/compilation_unit.ml*|utils/import_info.ml*) tgt=${base/#utils/typing};; + # We can't have this module in `parsing/`, it breaks Merlin's dependency + # structure + parsing/unit_info.ml*) + tgt=${base/#parsing/typing};; + # We have to inspect these files by hand, we only care about a subset of the # changes utils/clflags.ml*|utils/config.ml*) diff --git a/src/analysis/construct.ml b/src/analysis/construct.ml index e346f1e12..56a434c78 100644 --- a/src/analysis/construct.ml +++ b/src/analysis/construct.ml @@ -492,7 +492,7 @@ module Gen = struct | Tpoly (texp, _) -> (* We are not going "deeper" so we don't call [exp_or_hole] here *) expression ~idents_table values_scope ~depth env texp - | Tunivar _ | Tvar _ -> [] + | Tunivar _ | Tvar _ | Tof_kind _ -> [] | Tconstr (path, [ texp ], _) when path = Predef.path_lazy_t -> (* Special case for lazy *) let exps = exp_or_hole env texp in diff --git a/src/analysis/destruct.ml b/src/analysis/destruct.ml index 5d75493f9..baf4f1ee0 100644 --- a/src/analysis/destruct.ml +++ b/src/analysis/destruct.ml @@ -649,7 +649,7 @@ module Conv = struct match mut with | Mutable mode -> assert ( - Mode.Alloc.Comonadic.Const.eq mode + Mode.Alloc.Comonadic.Const.equal mode Mode.Alloc.Comonadic.Const.legacy); Mutable | Immutable -> Immutable diff --git a/src/analysis/misc_utils.ml b/src/analysis/misc_utils.ml index 064ceec86..4f1197450 100644 --- a/src/analysis/misc_utils.ml +++ b/src/analysis/misc_utils.ml @@ -63,5 +63,7 @@ let parse_identifier (config, source) pos = let is_current_unit comp_unit = match Env.get_unit_name () with | Some current_unit -> - String.equal (Compilation_unit.name_as_string current_unit) comp_unit + String.equal + (current_unit |> Unit_info.modname |> Compilation_unit.name_as_string) + comp_unit | None -> false diff --git a/src/analysis/ptyp_of_type.ml b/src/analysis/ptyp_of_type.ml index 46de3ab62..968ef6590 100644 --- a/src/analysis/ptyp_of_type.ml +++ b/src/analysis/ptyp_of_type.ml @@ -57,11 +57,11 @@ and core_type type_expr = in let snap = Btype.snapshot () in let arg_modes = - Typemode.untransl_mode_annots ~loc:Location.none + Typemode.untransl_mode_annots @@ Mode.Alloc.(Const.diff (zap_to_legacy arg_alloc_mode) Const.legacy) in let ret_modes = - Typemode.untransl_mode_annots ~loc:Location.none + Typemode.untransl_mode_annots @@ Mode.Alloc.(Const.diff (zap_to_legacy ret_alloc_mode) Const.legacy) in Btype.backtrack snap; @@ -133,6 +133,7 @@ and core_type type_expr = type_exprs in Typ.poly names @@ core_type type_expr + | Tof_kind _jkind -> (* CR modes: this is terrible *) Typ.any None | Tpackage (path, lids_type_exprs) -> let loc = mknoloc (Untypeast.lident_of_path path) in let args = @@ -155,8 +156,8 @@ and extension_constructor id { ext_args; ext_ret_type; ext_attributes; _ } = ?res:(Option.map ~f:core_type ext_ret_type) (var_of_id id) -and const_modalities ~attrs modalities = - Typemode.untransl_modalities Immutable attrs modalities +and const_modalities modalities = + Typemode.untransl_modalities Immutable modalities and value_description id { val_type; val_kind = _; val_loc; val_attributes; val_modalities; _ } = @@ -168,14 +169,14 @@ and value_description id pval_type = type_; pval_prim = []; pval_attributes = val_attributes; - pval_modalities = const_modalities ~attrs:val_attributes modalities; + pval_modalities = const_modalities modalities; pval_loc = val_loc } and constructor_argument { ca_type; ca_loc; ca_modalities; ca_sort = _ } = { Parsetree.pca_type = core_type ca_type; pca_loc = ca_loc; - pca_modalities = const_modalities ~attrs:[] ca_modalities + pca_modalities = const_modalities ca_modalities } and label_declaration @@ -185,8 +186,7 @@ and label_declaration (match ld_mutable with | Mutable _ -> Mutable | Immutable -> Immutable) - ~modalities: - (Typemode.untransl_modalities ld_mutable ld_attributes ld_modalities) + ~modalities:(Typemode.untransl_modalities ld_mutable ld_modalities) (var_of_id ld_id) (core_type ld_type) and constructor_arguments = function diff --git a/src/analysis/stack_or_heap_enclosing.ml b/src/analysis/stack_or_heap_enclosing.ml index 7fa7e1f71..4d6f2271c 100644 --- a/src/analysis/stack_or_heap_enclosing.ml +++ b/src/analysis/stack_or_heap_enclosing.ml @@ -106,7 +106,7 @@ let from_nodes ~lsp_compat ~pos ~path = | None, Record_unboxed -> ret_no_alloc "unboxed record" | None, (Record_boxed _ | Record_float | Record_ufloat | Record_mixed _) -> ret Unexpected_no_alloc) - | Texp_field (_, _, _, boxed_or_unboxed, _) -> ( + | Texp_field (_, _, _, _, boxed_or_unboxed, _) -> ( match boxed_or_unboxed with | Boxing (alloc_mode, _) -> ret_alloc alloc_mode.mode | Non_boxing _ -> None) diff --git a/src/kernel/mconfig.ml b/src/kernel/mconfig.ml index 25a4fc9d1..a36500ccb 100644 --- a/src/kernel/mconfig.ml +++ b/src/kernel/mconfig.ml @@ -443,6 +443,7 @@ let ocaml_ignored_flags = "-dflambda-verbose"; "-dinstr"; "-dlambda"; + "-dblambda"; "-dlinear"; "-dparsetree"; "-dshape"; @@ -610,7 +611,10 @@ let ocaml_ignored_flags = "-dsimplify"; "-dreaper"; "-instantiate"; - "-dflambda-heavy-invariants" + "-dflambda-heavy-invariants"; + "-cfg-eliminate-dead-trap-handlers"; + "-no-cfg-eliminate-dead-trap-handlers"; + "-module-entry-functions-section" ] let ocaml_ignored_parametrized_flags = @@ -647,7 +651,8 @@ let ocaml_ignored_parametrized_flags = "-use-runtime"; "-error-style"; "-dump-dir"; - "-libloc"; + "-I-paths"; + "-H-paths"; (* flambda-backend specific *) "-extension"; "-extension-universe"; @@ -671,7 +676,10 @@ let ocaml_ignored_parametrized_flags = "-flambda2-inline-prim-cost"; "-flambda2-inline-small-function-size"; "-flambda2-inline-threshold"; + "-flambda2-join-algorithm"; + "-flambda2-expert-cont-specialization-budget"; "-regalloc"; + "-regalloc-linscan-threshold"; "-regalloc-param"; "-cached-generic-functions-path"; "-gdwarf-max-function-complexity"; @@ -681,7 +689,8 @@ let ocaml_ignored_parametrized_flags = "-zero-alloc-checker-join"; "-dgranularity"; "-flambda2-expert-cont-lifting-budget"; - "-vectorize-max-block-size" + "-vectorize-max-block-size"; + "-save-ir-before" ] let ocaml_warnings_spec ~error = diff --git a/src/kernel/mocaml.ml b/src/kernel/mocaml.ml index 8c9a51d1c..c6072dc4e 100644 --- a/src/kernel/mocaml.ml +++ b/src/kernel/mocaml.ml @@ -35,8 +35,25 @@ let setup_reader_config config = let open Mconfig in let open Clflags in let ocaml = config.ocaml in - let to_compilation_unit name = Some (Compilation_unit.of_string name) in - Env.set_unit_name (Mconfig.unitname config |> to_compilation_unit); + let guessed_file_type : Unit_info.intf_or_impl = + (* We guess the file type based on the suffix of the file. This isn't very important + because we'll override the value that we use here later in Mpipeline, where we set + it based on the contents of the file. + + At the moment, Merlin doesnt' actually use this value for anything, so it doesn't + matter what we set here. This is just a guard against future changes that might + start depending on this. *) + match String.split_on_char config.query.filename ~sep:'.' |> List.last with + | Some "ml" -> Impl + | Some "mli" -> Intf + | _ -> Impl + in + let compilation_unit = Compilation_unit.of_string (Mconfig.unitname config) in + let unit_info = + Unit_info.make_with_known_compilation_unit + ~source_file:config.query.filename guessed_file_type "" compilation_unit + in + Env.set_unit_name (Some unit_info); Location.input_name := config.query.filename; fast := ocaml.unsafe; classic := ocaml.classic; @@ -54,7 +71,7 @@ let setup_reader_config config = let init_params params = List.iter params ~f:(fun s -> - Env.register_parameter (s |> Global_module.Name.create_no_args)) + Env.register_parameter (s |> Global_module.Parameter_name.of_string)) let setup_typer_config config = setup_reader_config config; diff --git a/src/kernel/mpipeline.ml b/src/kernel/mpipeline.ml index d0b4f6619..cb01f9fdd 100644 --- a/src/kernel/mpipeline.ml +++ b/src/kernel/mpipeline.ml @@ -270,6 +270,17 @@ let process ?state ?(pp_time = ref 0.0) ?(reader_time = ref 0.0) let cache_version = if Option.is_some cache_disabling then None else Some cache_version in + (* When we loaded the configuration in Mocaml, we guessed whether we're working + with an intf or impl file based on the suffix of the filename. But now we know + based on the contents of the file, so we update the value we wrote before. *) + Env.get_unit_name () + |> Option.map + ~f: + (Unit_info.modify_kind ~f:(fun _ -> + match result.parsetree with + | `Interface _ -> Intf + | `Implementation _ -> Impl)) + |> Env.set_unit_name; { Reader.result; config; cache_version })) in let ppx = diff --git a/src/ocaml/merlin_specific/browse_raw.ml b/src/ocaml/merlin_specific/browse_raw.ml index 8fade047b..9f944d2b6 100644 --- a/src/ocaml/merlin_specific/browse_raw.ml +++ b/src/ocaml/merlin_specific/browse_raw.ml @@ -397,7 +397,7 @@ let rec of_expression_desc loc = function | Texp_lazy e | Texp_setinstvar (_, _, _, e) -> of_expression e | Texp_record { fields; extended_expression } -> - option_fold (fun (e, _) -> of_expression e) extended_expression + option_fold (fun (e, _, _) -> of_expression e) extended_expression ** let fold_field = function | _, Typedtree.Kept _ -> id_fold @@ -414,7 +414,7 @@ let rec of_expression_desc loc = function of_exp_record_field e lid_loc desc Unboxed_product ** of_expression e in array_fold fold_field fields - | Texp_field (e, lid_loc, lbl, _, _) -> + | Texp_field (e, _, lid_loc, lbl, _, _) -> of_expression e ** of_exp_record_field e lid_loc lbl Legacy | Texp_unboxed_field (e, _, lid_loc, lbl, _) -> of_expression e ** of_exp_record_field e lid_loc lbl Unboxed_product @@ -586,7 +586,7 @@ and of_signature_item_desc = function id_fold and of_core_type_desc = function - | Ttyp_var _ | Ttyp_call_pos -> id_fold + | Ttyp_var _ | Ttyp_call_pos | Ttyp_of_kind _ -> id_fold | Ttyp_open (_, _, ct) -> of_core_type ct | Ttyp_arrow (_, ct1, ct2) -> of_core_type ct1 ** of_core_type ct2 | Ttyp_tuple cts -> list_fold (fun (_, ty) -> of_core_type ty) cts diff --git a/src/ocaml/parsing/ast_helper.ml b/src/ocaml/parsing/ast_helper.ml index f046cc358..a65b3b7f2 100644 --- a/src/ocaml/parsing/ast_helper.ml +++ b/src/ocaml/parsing/ast_helper.ml @@ -79,6 +79,7 @@ module Typ = struct 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 open_ ?loc ?attrs mod_ident t = mk ?loc ?attrs (Ptyp_open (mod_ident, t)) + let of_kind ?loc ?attrs a = mk ?loc ?attrs (Ptyp_of_kind a) let force_poly t = match t.ptyp_desc with @@ -137,6 +138,8 @@ module Typ = struct Ptyp_package(longident,List.map (fun (n,typ) -> (n,loop typ) ) lst) | Ptyp_open (mod_ident, core_type) -> Ptyp_open (mod_ident, loop core_type) + | Ptyp_of_kind jkind -> + Ptyp_of_kind (loop_jkind jkind) | Ptyp_extension (s, arg) -> Ptyp_extension (s, arg) in diff --git a/src/ocaml/parsing/ast_helper.mli b/src/ocaml/parsing/ast_helper.mli index 8a323d4b8..e1b136815 100644 --- a/src/ocaml/parsing/ast_helper.mli +++ b/src/ocaml/parsing/ast_helper.mli @@ -94,6 +94,7 @@ module Typ : val package: ?loc:loc -> ?attrs:attrs -> lid -> (lid * core_type) list -> core_type val open_ : ?loc:loc -> ?attrs:attrs -> lid -> core_type -> core_type + val of_kind : ?loc:loc -> ?attrs:attrs -> jkind_annotation -> core_type val extension: ?loc:loc -> ?attrs:attrs -> extension -> core_type val force_poly: core_type -> core_type diff --git a/src/ocaml/parsing/ast_iterator.ml b/src/ocaml/parsing/ast_iterator.ml index 6c4b3fb5f..f38dae2f0 100644 --- a/src/ocaml/parsing/ast_iterator.ml +++ b/src/ocaml/parsing/ast_iterator.ml @@ -155,6 +155,8 @@ module T = struct | Ptyp_open (mod_ident, t) -> iter_loc sub mod_ident; sub.typ sub t + | Ptyp_of_kind jkind -> + sub.jkind_annotation sub jkind | Ptyp_extension x -> sub.extension sub x let iter_type_declaration sub diff --git a/src/ocaml/parsing/ast_mapper.ml b/src/ocaml/parsing/ast_mapper.ml index 4941ec4df..5860001d4 100644 --- a/src/ocaml/parsing/ast_mapper.ml +++ b/src/ocaml/parsing/ast_mapper.ml @@ -192,6 +192,8 @@ module T = struct (List.map (map_tuple (map_loc sub) (sub.typ sub)) l) | Ptyp_open (mod_ident, t) -> open_ ~loc ~attrs (map_loc sub mod_ident) (sub.typ sub t) + | Ptyp_of_kind jkind -> + of_kind ~loc ~attrs (sub.jkind_annotation sub jkind) | Ptyp_extension x -> extension ~loc ~attrs (sub.extension sub x) let map_type_declaration sub diff --git a/src/ocaml/parsing/builtin_attributes.ml b/src/ocaml/parsing/builtin_attributes.ml index cd77467c7..8d92e06d0 100644 --- a/src/ocaml/parsing/builtin_attributes.ml +++ b/src/ocaml/parsing/builtin_attributes.ml @@ -118,7 +118,6 @@ let builtin_attrs = ; "only_generative_effects" ; "error_message" ; "layout_poly" - ; "no_mutable_implied_modalities" ; "or_null_reexport" ; "no_recursive_modalities" ; "jane.non_erasable.instances" @@ -672,9 +671,6 @@ let parse_standard_implementation_attributes attr = *) unsafe_allow_any_mode_crossing_attribute attr -let has_no_mutable_implied_modalities attrs = - has_attribute "no_mutable_implied_modalities" attrs - let has_local_opt attrs = has_attribute "local_opt" attrs diff --git a/src/ocaml/parsing/builtin_attributes.mli b/src/ocaml/parsing/builtin_attributes.mli index fb207d53f..3827851da 100644 --- a/src/ocaml/parsing/builtin_attributes.mli +++ b/src/ocaml/parsing/builtin_attributes.mli @@ -212,7 +212,6 @@ val parse_standard_implementation_attributes : Parsetree.attribute -> unit val curry_attr_name : string val curry_attr : Location.t -> Parsetree.attribute -val has_no_mutable_implied_modalities: Parsetree.attributes -> bool val has_local_opt: Parsetree.attributes -> bool val has_layout_poly: Parsetree.attributes -> bool val has_curry: Parsetree.attributes -> bool diff --git a/src/ocaml/parsing/language_extension.ml b/src/ocaml/parsing/language_extension.ml index 5b89b6404..69473df6c 100644 --- a/src/ocaml/parsing/language_extension.ml +++ b/src/ocaml/parsing/language_extension.ml @@ -73,6 +73,7 @@ let get_level_ops : type a. a t -> (module Extension_level with type t = a) = | Labeled_tuples -> (module Unit) | Small_numbers -> (module Maturity) | Instances -> (module Unit) + | Separability -> (module Unit) (* We'll do this in a more principled way later. *) (* CR layouts: Note that layouts is only "mostly" erasable, because of annoying @@ -85,7 +86,8 @@ let get_level_ops : type a. a t -> (module Extension_level with type t = a) = let is_erasable : type a. a t -> bool = function | Mode | Unique | Overwriting | Layouts -> true | Comprehensions | Include_functor | Polymorphic_parameters | Immutable_arrays - | Module_strengthening | SIMD | Labeled_tuples | Small_numbers | Instances -> + | Module_strengthening | SIMD | Labeled_tuples | Small_numbers | Instances + | Separability -> false let maturity_of_unique_for_drf = Stable @@ -109,6 +111,7 @@ module Exist_pair = struct | Pair (Labeled_tuples, ()) -> Stable | Pair (Small_numbers, m) -> m | Pair (Instances, ()) -> Stable + | Pair (Separability, ()) -> Stable let is_erasable : t -> bool = function Pair (ext, _) -> is_erasable ext @@ -122,7 +125,7 @@ module Exist_pair = struct | Pair ( (( Comprehensions | Include_functor | Polymorphic_parameters | Immutable_arrays | Module_strengthening | Labeled_tuples - | Instances | Overwriting ) as ext), + | Instances | Overwriting | Separability ) as ext), _ ) -> to_string ext @@ -153,6 +156,7 @@ module Exist_pair = struct | "small_numbers" -> Some (Pair (Small_numbers, Stable)) | "small_numbers_beta" -> Some (Pair (Small_numbers, Beta)) | "instances" -> Some (Pair (Instances, ())) + | "separability" -> Some (Pair (Separability, ())) | _ -> None end @@ -173,7 +177,8 @@ let all_extensions = Pack SIMD; Pack Labeled_tuples; Pack Small_numbers; - Pack Instances ] + Pack Instances; + Pack Separability ] (**********************************) (* string conversions *) @@ -212,9 +217,11 @@ let equal_t (type a b) (a : a t) (b : b t) : (a, b) Misc_stdlib.eq option = | Labeled_tuples, Labeled_tuples -> Some Refl | Small_numbers, Small_numbers -> Some Refl | Instances, Instances -> Some Refl + | Separability, Separability -> Some Refl | ( ( Comprehensions | Mode | Unique | Overwriting | Include_functor | Polymorphic_parameters | Immutable_arrays | Module_strengthening - | Layouts | SIMD | Labeled_tuples | Small_numbers | Instances ), + | Layouts | SIMD | Labeled_tuples | Small_numbers | Instances + | Separability ), _ ) -> None diff --git a/src/ocaml/parsing/language_extension.mli b/src/ocaml/parsing/language_extension.mli index 5ce88e276..005829fb8 100644 --- a/src/ocaml/parsing/language_extension.mli +++ b/src/ocaml/parsing/language_extension.mli @@ -31,6 +31,7 @@ type 'a t = 'a Language_extension_kernel.t = | Labeled_tuples : unit t | Small_numbers : maturity t | Instances : unit t + | Separability : unit t (** Require that an extension is enabled for at least the provided level, or else throw an exception at the provided location saying otherwise. *) diff --git a/src/ocaml/parsing/parsetree.mli b/src/ocaml/parsing/parsetree.mli index 9b2832c70..90036514e 100644 --- a/src/ocaml/parsing/parsetree.mli +++ b/src/ocaml/parsing/parsetree.mli @@ -202,6 +202,7 @@ and core_type_desc = *) | Ptyp_package of package_type (** [(module S)]. *) | Ptyp_open of Longident.t loc * core_type (** [M.(T)] *) + | Ptyp_of_kind of jkind_annotation (** [(type : k)] *) | Ptyp_extension of extension (** [[%id]]. *) and arg_label = Asttypes.arg_label = diff --git a/src/ocaml/parsing/pprintast.ml b/src/ocaml/parsing/pprintast.ml index 7b7d5c812..f70e7cd4b 100644 --- a/src/ocaml/parsing/pprintast.ml +++ b/src/ocaml/parsing/pprintast.ml @@ -116,11 +116,14 @@ let protect_longident ppf print_longident longprefix txt = let is_curry_attr attr = attr.attr_name.txt = Builtin_attributes.curry_attr_name -let filter_curry_attrs attrs = - List.filter (fun attr -> not (is_curry_attr attr)) attrs - -let has_non_curry_attr attrs = - List.exists (fun attr -> not (is_curry_attr attr)) attrs +let split_out_curry_attr attrs = + let curry, non_curry = List.partition is_curry_attr attrs in + let is_curry = + match curry with + | [] -> false + | _ :: _ -> true + in + is_curry, non_curry type space_formatter = (unit, Format.formatter, unit) format @@ -315,8 +318,6 @@ let legacy_mode f { txt = Mode s; _ } = let s = match s with | "local" -> "local_" - | "unique" -> "unique_" - | "once" -> "once_" | s -> Misc.fatal_errorf "Unrecognized mode %s - should not parse" s in pp_print_string f s @@ -362,14 +363,6 @@ let optional_at_modes f m = | [] -> () | m -> pp f " %@ %a" modes m -let optional_atat_modes f m = - match m with - | [] -> () - | m -> pp f " %@%@ %a" modes m - -let maybe_type_atat_modes pty ctxt f (c, m) = - pp f "%a%a" (pty ctxt) c optional_atat_modes m - let modality f m = let {txt = Modality txt; _} = m in pp_print_string f txt @@ -389,29 +382,24 @@ let optional_space_atat_modalities f m = let pre f () = Format.fprintf f "@ %@%@@ " in optional_modalities ~pre f m -let optional_space_at_modalities f m = - let pre f () = Format.fprintf f "@ %@@ " in - optional_modalities ~pre f m - let optional_atat_modalities_newline f m = let pre f () = Format.fprintf f "%@%@@ " in optional_modalities ~pre ~post:pp_print_newline f m -(* helpers for printing both legacy/new mode syntax *) -let split_out_legacy_modes = - List.partition (fun m -> +(** For a list of modes, we either print everything in old syntax (if they + are purely old modes), or everything in new syntax. *) +let print_modes_in_old_syntax = + List.for_all (fun m -> let Mode txt = m.txt in match txt with - | "local" | "unique" | "once" -> true + | "local" -> true | _ -> false ) -let maybe_legacy_modes_type_at_modes pty ctxt f (c, m) = - let legacy, m = split_out_legacy_modes m in - pp f "%a%a%a" optional_legacy_modes legacy (pty ctxt) c optional_at_modes m - -let split_out_legacy_modalities = - List.partition (fun m -> +(** For a list of modalities, we either print all in old syntax (if they are + purely old modalities), or all in new syntax. *) +let print_modality_in_old_syntax = + List.for_all (fun m -> let Modality txt = m.txt in match txt with | "global" -> true @@ -419,11 +407,15 @@ let split_out_legacy_modalities = ) let modalities_type pty ctxt f pca = - let legacy, m = split_out_legacy_modalities pca.pca_modalities in - pp f "%a%a%a" - optional_legacy_modalities legacy - (pty ctxt) pca.pca_type - optional_space_atat_modalities m + let m = pca.pca_modalities in + if print_modality_in_old_syntax m then + pp f "%a%a" + optional_legacy_modalities m + (pty ctxt) pca.pca_type + else + pp f "%a%a" + (pty ctxt) pca.pca_type + optional_space_atat_modalities m let include_kind f = function | Functor -> pp f "@ functor" @@ -436,17 +428,26 @@ let rec class_params_def f = function pp f "[%a] " (* space *) (list type_param ~sep:",") l +and core_type_with_optional_legacy_modes pty ctxt f (c, m) = + match m with + | [] -> pty ctxt f c + | _ :: _ -> + if print_modes_in_old_syntax m then + pp f "%a%a" optional_legacy_modes m (core_type1 ctxt) c + else + pp f "%a%a" (core_type1 ctxt) c optional_at_modes m + and type_with_label ctxt f (label, c, mode) = match label with | Nolabel -> - maybe_legacy_modes_type_at_modes core_type1 ctxt f (c, mode) + core_type_with_optional_legacy_modes core_type1 ctxt f (c, mode) (* otherwise parenthesize *) | Labelled s -> pp f "%a:%a" ident_of_name s - (maybe_legacy_modes_type_at_modes core_type1 ctxt) (c, mode) + (core_type_with_optional_legacy_modes core_type1 ctxt) (c, mode) | Optional s -> pp f "?%a:%a" ident_of_name s - (maybe_legacy_modes_type_at_modes core_type1 ctxt) (c, mode) + (core_type_with_optional_legacy_modes core_type1 ctxt) (c, mode) and jkind_annotation ?(nested = false) ctxt f k = match k.pjkind_desc with | Default -> pp f "_" @@ -474,12 +475,12 @@ and jkind_annotation ?(nested = false) ctxt f k = match k.pjkind_desc with pp f "@[%a@]" (list (jkind_annotation ~nested:true ctxt) ~sep:"@ & ") ts ) f ts -and tyvar_jkind f (str, jkind) = +and tyvar_jkind tyvar f (str, jkind) = match jkind with | None -> tyvar f str | Some lay -> pp f "(%a : %a)" tyvar str (jkind_annotation reset_ctxt) lay -and tyvar_loc_jkind f (str, jkind) = tyvar_jkind f (str.txt,jkind) +and tyvar_loc_jkind tyvar f (str, jkind) = tyvar_jkind tyvar f (str.txt,jkind) and tyvar_loc_option_jkind f (str, jkind) = match jkind with @@ -500,10 +501,9 @@ and name_jkind f (name, jkind) = and name_loc_jkind f (str, jkind) = name_jkind f (str.txt,jkind) and core_type ctxt f x = - let filtered_attrs = filter_curry_attrs x.ptyp_attributes in - if filtered_attrs <> [] then begin + if x.ptyp_attributes <> [] then begin pp f "((%a)%a)" (core_type ctxt) {x with ptyp_attributes=[]} - (attributes ctxt) filtered_attrs + (attributes ctxt) x.ptyp_attributes end else match x.ptyp_desc with | Ptyp_arrow (l, ct1, ct2, m1, m2) -> @@ -521,17 +521,19 @@ and core_type ctxt f x = | _ -> pp f "%a@;.@;" (list - tyvar_loc_jkind ~sep:"@;") + (tyvar_loc_jkind tyvar) ~sep:"@;") l) sl (core_type ctxt) ct + | Ptyp_of_kind jkind -> + pp f "@[(type@ :@ %a)@]" (jkind_annotation reset_ctxt) jkind | _ -> pp f "@[<2>%a@]" (core_type1 ctxt) x and core_type1 ctxt f x = - if has_non_curry_attr x.ptyp_attributes then core_type ctxt f x + if x.ptyp_attributes <> [] then core_type ctxt f x else match x.ptyp_desc with | Ptyp_any jkind -> tyvar_loc_option_jkind f (None, jkind) - | Ptyp_var (s, jkind) -> tyvar_jkind f (s, jkind) + | Ptyp_var (s, jkind) -> (tyvar_jkind tyvar) f (s, jkind) | Ptyp_tuple tl -> pp f "(%a)" (list (labeled_core_type1 ctxt) ~sep:"@;*@;") tl | Ptyp_unboxed_tuple l -> @@ -608,9 +610,25 @@ and core_type1 ctxt f x = | Ptyp_open(li, ct) -> pp f "@[%a.(%a)@]" longident_loc li (core_type ctxt) ct | Ptyp_extension e -> extension ctxt f e - | (Ptyp_arrow _ | Ptyp_alias _ | Ptyp_poly _) -> + | (Ptyp_arrow _ | Ptyp_alias _ | Ptyp_poly _ | Ptyp_of_kind _) -> paren true (core_type ctxt) f x +and core_type2 ctxt f x = + if x.ptyp_attributes <> [] then core_type ctxt f x + else + match x.ptyp_desc with + | Ptyp_poly (sl, ct) -> + pp f "@[<2>%a%a@]" + (fun f l -> match l with + | [] -> () + | _ -> + pp f "%a@;.@;" + (list + (tyvar_loc_jkind tyvar) ~sep:"@;") + l) + sl (core_type1 ctxt) ct + | _ -> core_type1 ctxt f x + and tyvar_option f = function | None -> pp f "_" | Some name -> tyvar f name @@ -629,8 +647,15 @@ and labeled_core_type1 ctxt f (label, ty) = core_type1 ctxt f ty and return_type ctxt f (x, m) = - if x.ptyp_attributes <> [] then maybe_legacy_modes_type_at_modes core_type1 ctxt f (x, m) - else maybe_legacy_modes_type_at_modes core_type ctxt f (x, m) + let is_curry, ptyp_attributes = split_out_curry_attr x.ptyp_attributes in + let x = {x with ptyp_attributes} in + if is_curry then core_type_with_optional_legacy_modes core_type1 ctxt f (x, m) + else core_type_with_optional_legacy_modes core_type ctxt f (x, m) + +and core_type_with_optional_modes ctxt f (ty, modes) = + match modes with + | [] -> core_type ctxt f ty + | _ :: _ -> pp f "%a%a" (core_type2 ctxt) ty optional_at_modes modes (********************pattern********************) (* be cautious when use [pattern], [pattern1] is preferred *) @@ -739,27 +764,8 @@ and simple_pattern ctxt (f:Format.formatter) (x:pattern) : unit = | Ppat_constant (c) -> pp f "%a" constant c | Ppat_interval (c1, c2) -> pp f "%a..%a" constant c1 constant c2 | Ppat_variant (l,None) -> pp f "`%a" ident_of_name l - | Ppat_constraint (p, ct, m) -> - let legacy, m = split_out_legacy_modes m in - begin match ct, legacy with - | Some ct, [] | Some ({ ptyp_desc = Ptyp_poly _ } as ct), _ -> - pp f "@[<2>(%a%a@;:@;%a%a)@]" - optional_legacy_modes legacy - (pattern1 ctxt) p - (core_type ctxt) ct - optional_atat_modes m - | Some ct, _ :: _ -> - pp f "@[<2>(%a(%a@;:@;%a%a))@]" - optional_legacy_modes legacy - (pattern1 ctxt) p - (core_type ctxt) ct - optional_atat_modes m - | None, _ -> - pp f "@[<2>(%a%a%a)@]" - optional_legacy_modes legacy - (pattern1 ctxt) p - optional_at_modes m - end + | Ppat_constraint (p, ct, _) -> + pp f "@[<2>(%a@;:@;%a)@]" (pattern1 ctxt) p (core_type ctxt) (Option.get ct) | Ppat_lazy p -> pp f "@[<2>(lazy@;%a)@]" (simple_pattern ctxt) p | Ppat_exception p -> @@ -804,11 +810,43 @@ and labeled_tuple_pattern ctxt f ~unboxed l closed = (list ~sep:",@;" (labeled_pattern1 ctxt)) l closed_flag closed +(** for special treatment of modes in labeled expressions *) +and pattern2 ctxt f p = + match p.ppat_desc with + | Ppat_constraint(p, ct, m) -> + begin match ct, print_modes_in_old_syntax m with + | Some ct, true -> + pp f "@[<2>%a%a@;:@;%a@]" + optional_legacy_modes m + (simple_pattern ctxt) p + (core_type ctxt) ct + | Some ct, false -> + pp f "@[<2>%a@;:@;%a@]" + (simple_pattern ctxt) p + (core_type_with_optional_modes ctxt) (ct, m) + | None, true -> + pp f "@[<2>%a%a@]" + optional_legacy_modes m + (simple_pattern ctxt) p + | None, false -> + pp f "@[<2>%a%a@]" + (simple_pattern ctxt) p + optional_at_modes m + end + | _ -> pattern1 ctxt f p + +(** for special treatment of modes in labeled expressions *) +and simple_pattern1 ctxt f p = + match p.ppat_desc with + | Ppat_constraint _ -> + pp f "(%a)" (pattern2 ctxt) p + | _ -> simple_pattern ctxt f p + and label_exp ctxt f (l,opt,p) = match l with | Nolabel -> (* single case pattern parens needed here *) - pp f "%a" (simple_pattern ctxt) p + pp f "%a" (simple_pattern1 ctxt) p | Optional rest -> begin match p with | {ppat_desc = Ppat_var {txt;_}; ppat_attributes = []} @@ -819,32 +857,16 @@ and label_exp ctxt f (l,opt,p) = | None -> pp f "?%a" ident_of_name rest) | _ -> (match opt with - | Some o -> - (* Remove the legacy modes from the pattern here *) - let legacy, p = - match p.ppat_desc with - | Ppat_constraint (p', cty', m') -> - let legacy, m' = split_out_legacy_modes m' in - let p = - match cty', m' with - | None, [] -> p' - | _ -> { p with ppat_desc = Ppat_constraint (p', cty', m') } - in - legacy, p - | _ -> [], p - in - pp f "?%a:(%a%a=@;%a)" - ident_of_name rest - optional_legacy_modes legacy - (pattern1 ctxt) p - (expression ctxt) o - | None -> pp f "?%a:%a" ident_of_name rest (simple_pattern ctxt) p) + | Some o -> + pp f "?%a:(%a=@;%a)@;" + ident_of_name rest (pattern2 ctxt) p (expression ctxt) o + | None -> pp f "?%a:%a@;" ident_of_name rest (simple_pattern1 ctxt) p) end | Labelled l -> match p with | {ppat_desc = Ppat_var {txt;_}; ppat_attributes = []} when txt = l -> pp f "~%a" ident_of_name l - | _ -> pp f "~%a:%a" ident_of_name l (simple_pattern ctxt) p + | _ -> pp f "~%a:%a" ident_of_name l (simple_pattern1 ctxt) p and sugar_expr ctxt f e = if e.pexp_attributes <> [] then false @@ -1151,15 +1173,15 @@ and simple_expr ctxt f x = | Pexp_unboxed_tuple l -> labeled_tuple_expr ctxt f ~unboxed:true l | Pexp_constraint (e, ct, m) -> - begin match ct with - | None -> + begin match ct, print_modes_in_old_syntax m with + | None, true -> pp f "(%a %a)" legacy_modes m (expression ctxt) e - | Some ct -> - let legacy, m = split_out_legacy_modes m in - pp f "(%a%a : %a)" - optional_legacy_modes legacy + | None, false -> + pp f "(%a : _%a)" (expression ctxt) e optional_at_modes m + | Some ct, _ -> + pp f "(%a : %a)" (expression ctxt) e - (maybe_type_atat_modes core_type ctxt) (ct, m) + (core_type_with_optional_modes ctxt) (ct, m) end | Pexp_coerce (e, cto1, ct) -> pp f "(%a%a :> %a)" (expression ctxt) e @@ -1432,6 +1454,16 @@ and kind_abbrev ctxt f name jkind = string_loc name (jkind_annotation ctxt) jkind +and module_type_with_optional_modes ctxt f (mty, mm) = + match mm with + | [] -> module_type ctxt f mty + | _ :: _ -> pp f "%a%a" (module_type1 ctxt) mty optional_at_modes mm + +and module_type1_with_optional_modes ctxt f (mty, mm) = + match mm with + | [] -> module_type1 ctxt f mty + | _ :: _ -> pp f "%a%a" (module_type1 ctxt) mty optional_at_modes mm + and module_type ctxt f x = if x.pmty_attributes <> [] then begin pp f "((%a)%a)" (module_type ctxt) {x with pmty_attributes=[]} @@ -1439,17 +1471,17 @@ and module_type ctxt f x = end else match x.pmty_desc with | Pmty_functor (Unit, mt2, mm2) -> - pp f "@[() ->@ %a%a@]" (module_type ctxt) mt2 optional_at_modes mm2 + pp f "@[() ->@ %a@]" (module_type_with_optional_modes ctxt) (mt2, mm2) | Pmty_functor (Named (s, mt1, mm1), mt2, mm2) -> begin match s.txt with | None -> - pp f "@[%a%a@ ->@ %a%a@]" - (module_type1 ctxt) mt1 optional_at_modes mm1 - (module_type ctxt) mt2 optional_at_modes mm2 + pp f "@[%a@ ->@ %a@]" + (module_type1_with_optional_modes ctxt) (mt1, mm1) + (module_type_with_optional_modes ctxt) (mt2, mm2) | Some name -> - pp f "@[functor@ (%s@ :@ %a%a)@ ->@ %a%a@]" name - (module_type ctxt) mt1 optional_atat_modes mm1 - (module_type ctxt) mt2 optional_at_modes mm2 + pp f "@[functor@ (%s@ :@ %a)@ ->@ %a@]" name + (module_type_with_optional_modes ctxt) (mt1, mm1) + (module_type_with_optional_modes ctxt) (mt2, mm2) end | Pmty_with (mt, []) -> module_type ctxt f mt | Pmty_with (mt, l) -> @@ -1546,7 +1578,7 @@ and signature_item ctxt f x : unit = pp f "@[module@ %s@ =@ %a%a@]%a" (Option.value pmd.pmd_name.txt ~default:"_") longident_loc alias - optional_space_at_modalities pmd.pmd_modalities + optional_space_atat_modalities pmd.pmd_modalities (item_attributes ctxt) pmd.pmd_attributes | Psig_module pmd -> pp f "@[module@ %s@ :@ %a%a@]%a" @@ -1625,19 +1657,18 @@ and module_expr ctxt f x = (module_expr ctxt) me optional_at_modes mm | Some mt -> - pp f "@[(%a@ :@ %a%a)@]" + pp f "@[(%a@ :@ %a)@]" (module_expr ctxt) me - (module_type ctxt) mt - optional_atat_modes mm + (module_type_with_optional_modes ctxt) (mt, mm) end | Pmod_ident (li) -> pp f "%a" longident_loc li; | Pmod_functor (Unit, me) -> pp f "functor ()@;->@;%a" (module_expr ctxt) me | Pmod_functor (Named (s, mt, mm), me) -> - pp f "functor@ (%s@ :@ %a%a)@;->@;%a" + pp f "functor@ (%s@ :@ %a)@;->@;%a" (Option.value s.txt ~default:"_") - (module_type ctxt) mt optional_atat_modes mm (module_expr ctxt) me + (module_type_with_optional_modes ctxt) (mt, mm) (module_expr ctxt) me | Pmod_apply (me1, me2) -> pp f "(%a)(%a)" (module_expr ctxt) me1 (module_expr ctxt) me2 (* Cf: #7200 *) @@ -1689,36 +1720,42 @@ and pp_print_params_then_equals ctxt f x = ~delimiter:"=" | _ -> pp_print_pexp_newtype ctxt "=" f x +and poly_type ctxt core_type f (vars, typ) = + pp f "type@;%a.@;%a" + (list ~sep:"@;" (tyvar_loc_jkind pp_print_string)) vars + (core_type ctxt) typ + +and poly_type_with_optional_modes ctxt f (vars, typ, modes) = + match modes with + | [] -> poly_type ctxt core_type f (vars, typ) + | _ :: _ -> pp f "%a%a" (poly_type ctxt core_type1) (vars, typ) + optional_at_modes modes + (* transform [f = fun g h -> ..] to [f g h = ... ] could be improved *) and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; pvb_modes = modes; _} = (* .pvb_attributes have already been printed by the caller, #bindings *) - let _, modes = split_out_legacy_modes modes in match ct with | Some (Pvc_constraint { locally_abstract_univars = []; typ }) -> - pp f "%a@;:@;%a%a@;=@;%a" + pp f "%a@;:@;%a@;=@;%a" (simple_pattern ctxt) p - (core_type ctxt) typ - optional_atat_modes modes + (core_type_with_optional_modes ctxt) (typ, modes) (expression ctxt) x | Some (Pvc_constraint { locally_abstract_univars = vars; typ }) -> - pp f "%a@;: type@;%a.@;%a%a@;=@;%a" - (simple_pattern ctxt) p (list pp_print_string ~sep:"@;") - (List.map (fun x -> x.txt) vars) - (core_type ctxt) typ - optional_atat_modes modes + pp f "%a@;: %a@;=@;%a" + (simple_pattern ctxt) p + (poly_type_with_optional_modes ctxt) + (List.map (fun x -> (x, None)) vars, typ, modes) (expression ctxt) x | Some (Pvc_coercion {ground=None; coercion }) -> - pp f "%a@;:>@;%a%a@;=@;%a" + pp f "%a@;:>@;%a@;=@;%a" (simple_pattern ctxt) p (core_type ctxt) coercion - optional_at_modes modes (expression ctxt) x | Some (Pvc_coercion {ground=Some ground; coercion }) -> - pp f "%a@;:%a@;:>@;%a%a@;=@;%a" + pp f "%a@;:%a@;:>@;%a@;=@;%a" (simple_pattern ctxt) p (core_type ctxt) ground (core_type ctxt) coercion - optional_atat_modes modes (expression ctxt) x | None -> (* CR layouts 1.5: We just need to check for [is_desugared_gadt] because @@ -1756,12 +1793,10 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; pvb_modes = mode in begin match is_desugared_gadt p x with | Some (p, (_ :: _ as tyvars), ct, e) -> - pp f "%a@;: type@;%a.@;%a%a@;=@;%a" + pp f "%a@;: %a@;=@;%a" (simple_pattern ctxt) p - (list pp_print_string ~sep:"@;") - (tyvars_jkind_str tyvars) - (core_type ctxt) ct - optional_atat_modes modes + (poly_type_with_optional_modes ctxt) + (tyvars, ct, modes) (expression ctxt) e | _ -> begin match p with @@ -1790,7 +1825,12 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; pvb_modes = mode and bindings ctxt f (rf,l) = let binding kwd rf f x = (* The other modes are printed inside [binding] *) - let legacy, _ = split_out_legacy_modes x.pvb_modes in + let legacy, x = + if print_modes_in_old_syntax x.pvb_modes then + x.pvb_modes, {x with pvb_modes = []} + else + [], x + in pp f "@[<2>%s %a%a%a@]%a" kwd rec_flag rf optional_legacy_modes legacy (binding ctxt) x @@ -1833,9 +1873,8 @@ and structure_item ctxt f x = begin match arg_opt with | Unit -> pp f "()" | Named (s, mt, mm) -> - pp f "(%s:%a%a)" (Option.value s.txt ~default:"_") - (module_type ctxt) mt - optional_atat_modes mm + pp f "(%s:%a)" (Option.value s.txt ~default:"_") + (module_type_with_optional_modes ctxt) (mt, mm) end; module_helper me' | me -> me @@ -1851,8 +1890,8 @@ and structure_item ctxt f x = Some ({pmty_desc=(Pmty_ident (_) | Pmty_signature (_));_} as mt), mm); pmod_attributes = []} -> - pp f " :@;%a%a@;=@;%a@;" - (module_type ctxt) mt optional_atat_modes mm (module_expr ctxt) me' + pp f " :@;%a@;=@;%a@;" + (module_type_with_optional_modes ctxt) (mt, mm) (module_expr ctxt) me' | _ -> pp f " =@ %a" (module_expr ctxt) me ) x.pmb_expr (item_attributes ctxt) x.pmb_attributes @@ -1919,10 +1958,9 @@ and structure_item ctxt f x = | Pstr_recmodule decls -> (* 3.07 *) let aux f = function | ({pmb_expr={pmod_desc=Pmod_constraint (expr, Some typ, mm)}} as pmb) -> - pp f "@[@ and@ %s:%a%a@ =@ %a@]%a" + pp f "@[@ and@ %s:%a@ =@ %a@]%a" (Option.value pmb.pmb_name.txt ~default:"_") - (module_type ctxt) typ - optional_atat_modes mm + (module_type_with_optional_modes ctxt) (typ, mm) (module_expr ctxt) expr (item_attributes ctxt) pmb.pmb_attributes | ({pmb_expr={pmod_desc=Pmod_constraint (expr, None, mm)}} as pmb) -> @@ -1939,10 +1977,9 @@ and structure_item ctxt f x = in begin match decls with | ({pmb_expr={pmod_desc=Pmod_constraint (expr, Some typ, mm)}} as pmb) :: l2 -> - pp f "@[@[module@ rec@ %s:%a%a@ =@ %a@]%a@ %a@]" + pp f "@[@[module@ rec@ %s:%a@ =@ %a@]%a@ %a@]" (Option.value pmb.pmb_name.txt ~default:"_") - (module_type ctxt) typ - optional_atat_modes mm + (module_type_with_optional_modes ctxt) (typ, mm) (module_expr ctxt) expr (item_attributes ctxt) pmb.pmb_attributes (fun f l2 -> List.iter (aux f) l2) l2 @@ -2020,7 +2057,12 @@ and type_def_list ctxt f (rf, exported, l) = and record_declaration ctxt f ~unboxed lbls = let type_record_field f pld = - let legacy, m = split_out_legacy_modalities pld.pld_modalities in + let legacy, m = + if print_modality_in_old_syntax pld.pld_modalities then + pld.pld_modalities, [] + else + [], pld.pld_modalities + in pp f "@[<2>%a%a%a:@;%a%a@;%a@]" mutable_flag pld.pld_mutable optional_legacy_modalities legacy @@ -2103,7 +2145,7 @@ and constructor_declaration ctxt f (name, vars_jkinds, args, res, attrs) = let pp_vars f vls = match vls with | [] -> () - | _ -> pp f "%a@;.@;" (list tyvar_loc_jkind ~sep:"@;") + | _ -> pp f "%a@;.@;" (list (tyvar_loc_jkind tyvar) ~sep:"@;") vls in match res with @@ -2260,12 +2302,11 @@ and function_constraint ctxt f x = match[@ocaml.warning "+9"] x with | { ret_type_constraint = Some (Pconstraint ty); ret_mode_annotations; _ } -> - pp f "@;:@;%a%a" (core_type ctxt) ty optional_atat_modes ret_mode_annotations - | { ret_type_constraint = Some (Pcoerce (ty1, ty2)); ret_mode_annotations; _ } -> - pp f "@;%a:>@;%a%a" + pp f "@;:@;%a" (core_type_with_optional_modes ctxt) (ty, ret_mode_annotations) + | { ret_type_constraint = Some (Pcoerce (ty1, ty2)); _ } -> + pp f "@;%a:>@;%a" (option ~first:":@;" (core_type ctxt)) ty1 (core_type ctxt) ty2 - optional_atat_modes ret_mode_annotations | { ret_type_constraint = None; ret_mode_annotations; _} -> pp f "%a" optional_at_modes ret_mode_annotations diff --git a/src/ocaml/parsing/printast.ml b/src/ocaml/parsing/printast.ml index b983dd083..5835549fe 100644 --- a/src/ocaml/parsing/printast.ml +++ b/src/ocaml/parsing/printast.ml @@ -223,6 +223,8 @@ let rec core_type i ppf x = | Ptyp_open (mod_ident, t) -> line i ppf "Ptyp_open \"%a\"\n" fmt_longident_loc mod_ident; core_type i ppf t + | Ptyp_of_kind jkind -> + line i ppf "Ptyp_of_kind %a\n" (jkind_annotation (i + 1)) jkind | Ptyp_extension (s, arg) -> line i ppf "Ptyp_extension \"%s\"\n" s.txt; payload i ppf arg diff --git a/src/ocaml/preprocess/parser_explain.ml b/src/ocaml/preprocess/parser_explain.ml index 411e918a4..0fbfe2099 100644 --- a/src/ocaml/preprocess/parser_explain.ml +++ b/src/ocaml/preprocess/parser_explain.ml @@ -15,9 +15,9 @@ let nullable (type a) : a MenhirInterpreter.nonterminal -> bool = | N_private_virtual_flags -> true | N_private_flag -> true | N_payload -> true + | N_optional_poly_type_and_modes -> true | N_optional_atomic_constraint_ -> true | N_optional_atat_modalities_expr -> true - | N_optional_at_modalities_expr -> true | N_option_type_constraint_ -> true | N_option_preceded_EQUAL_seq_expr__ -> true | N_option_preceded_EQUAL_pattern__ -> true diff --git a/src/ocaml/preprocess/parser_printer.ml b/src/ocaml/preprocess/parser_printer.ml index b5cc194e4..45b5ceb24 100644 --- a/src/ocaml/preprocess/parser_printer.ml +++ b/src/ocaml/preprocess/parser_printer.ml @@ -199,6 +199,7 @@ let print_symbol = function | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_str_exception_declaration) -> "str_exception_declaration" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_single_attr_id) -> "single_attr_id" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_simple_pattern_not_ident) -> "simple_pattern_not_ident" + | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_simple_pattern_extend_modes_or_poly) -> "simple_pattern_extend_modes_or_poly" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_simple_pattern) -> "simple_pattern" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_simple_expr) -> "simple_expr" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_simple_delimited_pattern) -> "simple_delimited_pattern" @@ -247,6 +248,7 @@ let print_symbol = function | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_possibly_poly_core_type_no_attr_) -> "possibly_poly_core_type_no_attr_" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_possibly_poly_core_type_) -> "possibly_poly_core_type_" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_payload) -> "payload" + | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_pattern_with_modes_or_poly) -> "pattern_with_modes_or_poly" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_pattern_var) -> "pattern_var" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_pattern_no_exn) -> "pattern_no_exn" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_pattern_gen) -> "pattern_gen" @@ -265,9 +267,9 @@ let print_symbol = function | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_parenthesized_type_parameter) -> "parenthesized_type_parameter" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_paren_module_expr) -> "paren_module_expr" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_optlabel) -> "optlabel" + | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_optional_poly_type_and_modes) -> "optional_poly_type_and_modes" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_optional_atomic_constraint_) -> "optional_atomic_constraint_" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_optional_atat_modalities_expr) -> "optional_atat_modalities_expr" - | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_optional_at_modalities_expr) -> "optional_at_modalities_expr" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_option_type_constraint_) -> "option_type_constraint_" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_option_preceded_EQUAL_seq_expr__) -> "option_preceded_EQUAL_seq_expr__" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_option_preceded_EQUAL_pattern__) -> "option_preceded_EQUAL_pattern__" @@ -300,14 +302,15 @@ let print_symbol = function | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_mty_longident) -> "mty_longident" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_type_subst) -> "module_type_subst" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_type_declaration) -> "module_type_declaration" + | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_type_atomic) -> "module_type_atomic" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_type) -> "module_type" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_subst) -> "module_subst" + | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_name_modal_atat_modalities_expr_) -> "module_name_modal_atat_modalities_expr_" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_name_modal_at_mode_expr_) -> "module_name_modal_at_mode_expr_" - | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_name_modal_at_modalities_expr_) -> "module_name_modal_at_modalities_expr_" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_name) -> "module_name" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_expr) -> "module_expr" - | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_declaration_body_optional_atat_mode_expr_) -> "module_declaration_body_optional_atat_mode_expr_" - | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_declaration_body_optional_atat_modalities_expr_) -> "module_declaration_body_optional_atat_modalities_expr_" + | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_declaration_body_module_type_with_optional_modes_) -> "module_declaration_body_module_type_with_optional_modes_" + | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_declaration_body___anonymous_8_) -> "module_declaration_body___anonymous_8_" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_module_binding_body) -> "module_binding_body" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_mod_longident) -> "mod_longident" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_mod_ext_longident) -> "mod_ext_longident" @@ -341,8 +344,6 @@ let print_symbol = function | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_list_and_class_declaration_) -> "list_and_class_declaration_" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_letop_bindings) -> "letop_bindings" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_letop_binding_body) -> "letop_binding_body" - | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_let_pattern_required_modes) -> "let_pattern_required_modes" - | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_let_pattern_no_modes) -> "let_pattern_no_modes" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_let_pattern) -> "let_pattern" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_let_bindings_no_ext_) -> "let_bindings_no_ext_" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_let_bindings_ext_) -> "let_bindings_ext_" @@ -419,9 +420,8 @@ let print_symbol = function | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_attr_payload) -> "attr_payload" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_attr_id) -> "attr_id" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_atomic_type) -> "atomic_type" - | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_atat_mode_expr) -> "atat_mode_expr" + | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_atat_modalities_expr) -> "atat_modalities_expr" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_at_mode_expr) -> "at_mode_expr" - | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_at_modalities_expr) -> "at_modalities_expr" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_any_longident) -> "any_longident" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_and_let_binding) -> "and_let_binding" | MenhirInterpreter.X (MenhirInterpreter.N MenhirInterpreter.N_alias_type) -> "alias_type" @@ -609,6 +609,7 @@ let print_value (type a) : a MenhirInterpreter.symbol -> a -> string = function | MenhirInterpreter.N MenhirInterpreter.N_str_exception_declaration -> (fun _ -> "str_exception_declaration") | MenhirInterpreter.N MenhirInterpreter.N_single_attr_id -> (fun _ -> "single_attr_id") | MenhirInterpreter.N MenhirInterpreter.N_simple_pattern_not_ident -> (fun _ -> "simple_pattern_not_ident") + | MenhirInterpreter.N MenhirInterpreter.N_simple_pattern_extend_modes_or_poly -> (fun _ -> "simple_pattern_extend_modes_or_poly") | MenhirInterpreter.N MenhirInterpreter.N_simple_pattern -> (fun _ -> "simple_pattern") | MenhirInterpreter.N MenhirInterpreter.N_simple_expr -> (fun _ -> "simple_expr") | MenhirInterpreter.N MenhirInterpreter.N_simple_delimited_pattern -> (fun _ -> "simple_delimited_pattern") @@ -657,6 +658,7 @@ let print_value (type a) : a MenhirInterpreter.symbol -> a -> string = function | MenhirInterpreter.N MenhirInterpreter.N_possibly_poly_core_type_no_attr_ -> (fun _ -> "possibly_poly_core_type_no_attr_") | MenhirInterpreter.N MenhirInterpreter.N_possibly_poly_core_type_ -> (fun _ -> "possibly_poly_core_type_") | MenhirInterpreter.N MenhirInterpreter.N_payload -> (fun _ -> "payload") + | MenhirInterpreter.N MenhirInterpreter.N_pattern_with_modes_or_poly -> (fun _ -> "pattern_with_modes_or_poly") | MenhirInterpreter.N MenhirInterpreter.N_pattern_var -> (fun _ -> "pattern_var") | MenhirInterpreter.N MenhirInterpreter.N_pattern_no_exn -> (fun _ -> "pattern_no_exn") | MenhirInterpreter.N MenhirInterpreter.N_pattern_gen -> (fun _ -> "pattern_gen") @@ -675,9 +677,9 @@ let print_value (type a) : a MenhirInterpreter.symbol -> a -> string = function | MenhirInterpreter.N MenhirInterpreter.N_parenthesized_type_parameter -> (fun _ -> "parenthesized_type_parameter") | MenhirInterpreter.N MenhirInterpreter.N_paren_module_expr -> (fun _ -> "paren_module_expr") | MenhirInterpreter.N MenhirInterpreter.N_optlabel -> (fun _ -> "optlabel") + | MenhirInterpreter.N MenhirInterpreter.N_optional_poly_type_and_modes -> (fun _ -> "optional_poly_type_and_modes") | MenhirInterpreter.N MenhirInterpreter.N_optional_atomic_constraint_ -> (fun _ -> "optional_atomic_constraint_") | MenhirInterpreter.N MenhirInterpreter.N_optional_atat_modalities_expr -> (fun _ -> "optional_atat_modalities_expr") - | MenhirInterpreter.N MenhirInterpreter.N_optional_at_modalities_expr -> (fun _ -> "optional_at_modalities_expr") | MenhirInterpreter.N MenhirInterpreter.N_option_type_constraint_ -> (fun _ -> "option_type_constraint_") | MenhirInterpreter.N MenhirInterpreter.N_option_preceded_EQUAL_seq_expr__ -> (fun _ -> "option_preceded_EQUAL_seq_expr__") | MenhirInterpreter.N MenhirInterpreter.N_option_preceded_EQUAL_pattern__ -> (fun _ -> "option_preceded_EQUAL_pattern__") @@ -710,14 +712,15 @@ let print_value (type a) : a MenhirInterpreter.symbol -> a -> string = function | MenhirInterpreter.N MenhirInterpreter.N_mty_longident -> (fun _ -> "mty_longident") | MenhirInterpreter.N MenhirInterpreter.N_module_type_subst -> (fun _ -> "module_type_subst") | MenhirInterpreter.N MenhirInterpreter.N_module_type_declaration -> (fun _ -> "module_type_declaration") + | MenhirInterpreter.N MenhirInterpreter.N_module_type_atomic -> (fun _ -> "module_type_atomic") | MenhirInterpreter.N MenhirInterpreter.N_module_type -> (fun _ -> "module_type") | MenhirInterpreter.N MenhirInterpreter.N_module_subst -> (fun _ -> "module_subst") + | MenhirInterpreter.N MenhirInterpreter.N_module_name_modal_atat_modalities_expr_ -> (fun _ -> "module_name_modal_atat_modalities_expr_") | MenhirInterpreter.N MenhirInterpreter.N_module_name_modal_at_mode_expr_ -> (fun _ -> "module_name_modal_at_mode_expr_") - | MenhirInterpreter.N MenhirInterpreter.N_module_name_modal_at_modalities_expr_ -> (fun _ -> "module_name_modal_at_modalities_expr_") | MenhirInterpreter.N MenhirInterpreter.N_module_name -> (fun _ -> "module_name") | MenhirInterpreter.N MenhirInterpreter.N_module_expr -> (fun _ -> "module_expr") - | MenhirInterpreter.N MenhirInterpreter.N_module_declaration_body_optional_atat_mode_expr_ -> (fun _ -> "module_declaration_body_optional_atat_mode_expr_") - | MenhirInterpreter.N MenhirInterpreter.N_module_declaration_body_optional_atat_modalities_expr_ -> (fun _ -> "module_declaration_body_optional_atat_modalities_expr_") + | MenhirInterpreter.N MenhirInterpreter.N_module_declaration_body_module_type_with_optional_modes_ -> (fun _ -> "module_declaration_body_module_type_with_optional_modes_") + | MenhirInterpreter.N MenhirInterpreter.N_module_declaration_body___anonymous_8_ -> (fun _ -> "module_declaration_body___anonymous_8_") | MenhirInterpreter.N MenhirInterpreter.N_module_binding_body -> (fun _ -> "module_binding_body") | MenhirInterpreter.N MenhirInterpreter.N_mod_longident -> (fun _ -> "mod_longident") | MenhirInterpreter.N MenhirInterpreter.N_mod_ext_longident -> (fun _ -> "mod_ext_longident") @@ -751,8 +754,6 @@ let print_value (type a) : a MenhirInterpreter.symbol -> a -> string = function | MenhirInterpreter.N MenhirInterpreter.N_list_and_class_declaration_ -> (fun _ -> "list_and_class_declaration_") | MenhirInterpreter.N MenhirInterpreter.N_letop_bindings -> (fun _ -> "letop_bindings") | MenhirInterpreter.N MenhirInterpreter.N_letop_binding_body -> (fun _ -> "letop_binding_body") - | MenhirInterpreter.N MenhirInterpreter.N_let_pattern_required_modes -> (fun _ -> "let_pattern_required_modes") - | MenhirInterpreter.N MenhirInterpreter.N_let_pattern_no_modes -> (fun _ -> "let_pattern_no_modes") | MenhirInterpreter.N MenhirInterpreter.N_let_pattern -> (fun _ -> "let_pattern") | MenhirInterpreter.N MenhirInterpreter.N_let_bindings_no_ext_ -> (fun _ -> "let_bindings_no_ext_") | MenhirInterpreter.N MenhirInterpreter.N_let_bindings_ext_ -> (fun _ -> "let_bindings_ext_") @@ -829,9 +830,8 @@ let print_value (type a) : a MenhirInterpreter.symbol -> a -> string = function | MenhirInterpreter.N MenhirInterpreter.N_attr_payload -> (fun _ -> "attr_payload") | MenhirInterpreter.N MenhirInterpreter.N_attr_id -> (fun _ -> "attr_id") | MenhirInterpreter.N MenhirInterpreter.N_atomic_type -> (fun _ -> "atomic_type") - | MenhirInterpreter.N MenhirInterpreter.N_atat_mode_expr -> (fun _ -> "atat_mode_expr") + | MenhirInterpreter.N MenhirInterpreter.N_atat_modalities_expr -> (fun _ -> "atat_modalities_expr") | MenhirInterpreter.N MenhirInterpreter.N_at_mode_expr -> (fun _ -> "at_mode_expr") - | MenhirInterpreter.N MenhirInterpreter.N_at_modalities_expr -> (fun _ -> "at_modalities_expr") | MenhirInterpreter.N MenhirInterpreter.N_any_longident -> (fun _ -> "any_longident") | MenhirInterpreter.N MenhirInterpreter.N_and_let_binding -> (fun _ -> "and_let_binding") | MenhirInterpreter.N MenhirInterpreter.N_alias_type -> (fun _ -> "alias_type") diff --git a/src/ocaml/preprocess/parser_raw.ml b/src/ocaml/preprocess/parser_raw.ml index f59a5c397..bf7aa4093 100644 --- a/src/ocaml/preprocess/parser_raw.ml +++ b/src/ocaml/preprocess/parser_raw.ml @@ -21,7 +21,7 @@ module MenhirBasics = struct | UNIQUE | UNDERSCORE | UIDENT of ( -# 1155 "src/ocaml/preprocess/parser_raw.mly" +# 1167 "src/ocaml/preprocess/parser_raw.mly" (string) # 27 "src/ocaml/preprocess/parser_raw.ml" ) @@ -33,7 +33,7 @@ module MenhirBasics = struct | THEN | STRUCT | STRING of ( -# 1141 "src/ocaml/preprocess/parser_raw.mly" +# 1153 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) # 39 "src/ocaml/preprocess/parser_raw.ml" ) @@ -47,12 +47,12 @@ module MenhirBasics = struct | RBRACKET | RBRACE | QUOTED_STRING_ITEM of ( -# 1146 "src/ocaml/preprocess/parser_raw.mly" +# 1158 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) # 53 "src/ocaml/preprocess/parser_raw.ml" ) | QUOTED_STRING_EXPR of ( -# 1143 "src/ocaml/preprocess/parser_raw.mly" +# 1155 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) # 58 "src/ocaml/preprocess/parser_raw.ml" ) @@ -60,7 +60,7 @@ module MenhirBasics = struct | QUESTION | PRIVATE | PREFIXOP of ( -# 1124 "src/ocaml/preprocess/parser_raw.mly" +# 1136 "src/ocaml/preprocess/parser_raw.mly" (string) # 66 "src/ocaml/preprocess/parser_raw.ml" ) @@ -71,7 +71,7 @@ module MenhirBasics = struct | OVERWRITE | OR | OPTLABEL of ( -# 1116 "src/ocaml/preprocess/parser_raw.mly" +# 1128 "src/ocaml/preprocess/parser_raw.mly" (string) # 77 "src/ocaml/preprocess/parser_raw.ml" ) @@ -92,12 +92,12 @@ module MenhirBasics = struct | LPAREN | LOCAL | LIDENT of ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) # 98 "src/ocaml/preprocess/parser_raw.ml" ) | LETOP of ( -# 1074 "src/ocaml/preprocess/parser_raw.mly" +# 1086 "src/ocaml/preprocess/parser_raw.mly" (string) # 103 "src/ocaml/preprocess/parser_raw.ml" ) @@ -118,41 +118,41 @@ module MenhirBasics = struct | LBRACE | LAZY | LABEL of ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) # 124 "src/ocaml/preprocess/parser_raw.ml" ) | KIND_OF | KIND_ABBREV | INT of ( -# 1078 "src/ocaml/preprocess/parser_raw.mly" +# 1090 "src/ocaml/preprocess/parser_raw.mly" (string * char option) # 131 "src/ocaml/preprocess/parser_raw.ml" ) | INITIALIZER | INHERIT | INFIXOP4 of ( -# 1072 "src/ocaml/preprocess/parser_raw.mly" +# 1084 "src/ocaml/preprocess/parser_raw.mly" (string) # 138 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP3 of ( -# 1071 "src/ocaml/preprocess/parser_raw.mly" +# 1083 "src/ocaml/preprocess/parser_raw.mly" (string) # 143 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP2 of ( -# 1070 "src/ocaml/preprocess/parser_raw.mly" +# 1082 "src/ocaml/preprocess/parser_raw.mly" (string) # 148 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP1 of ( -# 1069 "src/ocaml/preprocess/parser_raw.mly" +# 1081 "src/ocaml/preprocess/parser_raw.mly" (string) # 153 "src/ocaml/preprocess/parser_raw.ml" ) | INFIXOP0 of ( -# 1066 "src/ocaml/preprocess/parser_raw.mly" +# 1078 "src/ocaml/preprocess/parser_raw.mly" (string) # 158 "src/ocaml/preprocess/parser_raw.ml" ) @@ -161,17 +161,17 @@ module MenhirBasics = struct | IF | HASH_SUFFIX | HASH_INT of ( -# 1079 "src/ocaml/preprocess/parser_raw.mly" +# 1091 "src/ocaml/preprocess/parser_raw.mly" (string * char option) # 167 "src/ocaml/preprocess/parser_raw.ml" ) | HASH_FLOAT of ( -# 1052 "src/ocaml/preprocess/parser_raw.mly" +# 1064 "src/ocaml/preprocess/parser_raw.mly" (string * char option) # 172 "src/ocaml/preprocess/parser_raw.ml" ) | HASHOP of ( -# 1137 "src/ocaml/preprocess/parser_raw.mly" +# 1149 "src/ocaml/preprocess/parser_raw.mly" (string) # 177 "src/ocaml/preprocess/parser_raw.ml" ) @@ -188,7 +188,7 @@ module MenhirBasics = struct | FUN | FOR | FLOAT of ( -# 1051 "src/ocaml/preprocess/parser_raw.mly" +# 1063 "src/ocaml/preprocess/parser_raw.mly" (string * char option) # 194 "src/ocaml/preprocess/parser_raw.ml" ) @@ -204,7 +204,7 @@ module MenhirBasics = struct | DOWNTO | DOTTILDE | DOTOP of ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) # 210 "src/ocaml/preprocess/parser_raw.ml" ) @@ -214,14 +214,14 @@ module MenhirBasics = struct | DOT | DONE | DOCSTRING of ( -# 1163 "src/ocaml/preprocess/parser_raw.mly" +# 1175 "src/ocaml/preprocess/parser_raw.mly" (Docstrings.docstring) # 220 "src/ocaml/preprocess/parser_raw.ml" ) | DO | CONSTRAINT | COMMENT of ( -# 1162 "src/ocaml/preprocess/parser_raw.mly" +# 1174 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t) # 227 "src/ocaml/preprocess/parser_raw.ml" ) @@ -233,7 +233,7 @@ module MenhirBasics = struct | COLON | CLASS | CHAR of ( -# 1028 "src/ocaml/preprocess/parser_raw.mly" +# 1040 "src/ocaml/preprocess/parser_raw.mly" (char) # 239 "src/ocaml/preprocess/parser_raw.ml" ) @@ -248,7 +248,7 @@ module MenhirBasics = struct | ASSERT | AS | ANDOP of ( -# 1075 "src/ocaml/preprocess/parser_raw.mly" +# 1087 "src/ocaml/preprocess/parser_raw.mly" (string) # 254 "src/ocaml/preprocess/parser_raw.ml" ) @@ -1056,6 +1056,18 @@ let mkfunction ~loc ~attrs params body_constraint body = attrs end +let mk_functor_typ args mty_mm = + let mty, _ = + List.fold_left (fun (mty, mm) (startpos, arg) -> + let mty = + mkmty ~loc:(startpos, mty.pmty_loc.loc_end) (Pmty_functor (arg, mty, mm)) + in + let mm = [] in + mty, mm) + mty_mm args + in + mty + (* Alternatively, we could keep the generic module type in the Parsetree and extract the package type during type-checking. In that case, the assertions below should be turned into explicit checks. *) @@ -1198,7 +1210,7 @@ let merloc startpos ?endpos x = { x with pexp_attributes = attr :: x.pexp_attributes } -# 1202 "src/ocaml/preprocess/parser_raw.ml" +# 1214 "src/ocaml/preprocess/parser_raw.ml" module Tables = struct @@ -1800,22 +1812,22 @@ module Tables = struct Obj.repr () and default_reduction = - (16, "\000\000\000\000\000\000\004\129\004\128\004\127\004~\004}\004O\004|\004{\004z\004y\004x\004w\004v\004u\004t\004s\004r\004q\004p\004o\004n\004m\004l\004k\004j\004i\004N\004h\004g\004f\004e\004d\004c\004b\004a\004`\004_\004^\004]\004\\\004[\004Z\004Y\004X\004W\004V\004U\004T\004S\004R\004Q\004P\000\000\000\000\000,\000\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\002\167\002\188\002\187\002\186\002\192\002\196\002\184\002\190\002\189\002\168\002\194\002\185\002\183\002\182\002\181\002\178\002\176\002\195\002\193\000\000\000\000\000\000\001h\000\000\000\000\002\171\000\000\000\000\000\000\002\173\000\000\000\000\000\000\002\175\002\200\002\197\002\177\002\180\002\179\002\169\002\198\002\199\000\000\005Z\005[\000\000\000\000\000\000\000\000\000\000\002\136\002\138\002\137\000(\002-\000\166\000\000\001b\001c\000\000\000\000\000\000\002\238\002\237\000\000\000\000\000\000\001r\000\000\000\000\000\000\000'\000\000\000\000\000\000\000\000\000\000\000\000\001l\0039\001p\000\000\000\000\000\000\005I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\130\002\232\000\000\002^\000\000\000\000\000\000\000\000\005U\000\000\005P\000\000\000\000\005R\000\000\005T\000\000\005Q\005S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128\001n\000\000\0038\000\000\001\253\000\000\000\000\000\000\000\000\000\000\002\255\000\000\005H\000\000\003\154\003\153\000\000\000\000\005E\000\000\000\000\005D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\022\002=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002+\000\000\000\000\000\000\002B\000\000\002.\002A\000\000\002,\000a\000#\000 \0029\0027\000\029\000\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\132\000\026\000\000\000\000\000\000\000\000\004\153\000\000\000\000\001Q\000\000\000\000\000\000\000%\000\"\000\031\000\000\000\000\002:\0028\005C\005K\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\138\000\000\000\000\000\000\000\000\000\000\003\139\000\000\000\018\000\148\000\169\000\149\000\028\000\000\000\000\000\000\000\000\000\000\004\154\000\000\000\000\000\000\000\000\000\000\004\156\000\000\000\000\000\000\000\000\000\000\000\000\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\000!\000\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\004\155\000\000\000\000\000\000\000\146\000\000\000\000\000\000\000\019\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\000\000\000\020\000\000\000\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\004\135\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\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\004\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\139\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\141\000\000\000\000\000\000\000\000\000\000\000\000\004\152\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\159\000\000\000\000\002{\003\177\003\149\000\000\000\153\000\000\003\150\000\000\000\000\002\201\000\000\000\000\000\000\000\000\005(\000\000\005)\000\000\000\000\000\152\000\000\000\000\000\000\000\154\000\000\000\155\000\000\000\157\000\000\000\000\000\158\003\135\003\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\003o\003n\005e\000\000\000\000\000\000\000\000\000\000\000\000\004A\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\175\001\174\000\000\003\231\003\226\003\227\003\232\000\000\003\229\003\224\003\225\003\230\000\000\000\000\000\000\000\000\000\000\002X\002W\000\000\004?\000\000\000\000\000\000\000\000\000\000\002V\000\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\002;\000\000\000\000\002>\002<\002C\000D\004\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\005c\005V\005W\000\000\000\000\000\000\005f\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000~\000\000\001\129\000\000\003\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005J\004F\000\000\000\000\000\000\000\000\000\000\000\000\003\234\000\000\004E\005d\003\228\004;\005\\\003\223\004<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\167\001\166\000\000\001\165\004>\000\000\000\000\000\000\000\000\004B\004M\004D\000\000\000\000\000\000\004I\000\000\000\000\000\000\003\020\003\018\003\015\003\019\003\014\000\000\003\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\159\001\158\000\000\001\157\004K\004C\000\136\003q\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\003\023\002~\000\000\000\000\003\022\000\000\002|\002\140\000\000\000\000\000\135\000\000\004=\000\000\000\000\000\000\000\000\000\000\000\000\001\163\001\162\000\000\001\161\003r\000\000\000\000\000\000\004L\000\000\000\000\000\000\003\016\003\021\000\000\000\134\000\000\004J\000\000\004H\000\000\003\235\000\000\000\000\003\193\004G\003s\000\000\000\000\003\240\000\000\003\025\000\000\000\000\000\000\000\000\002\206\002\024\002\025\003\237\000\000\003\236\003\239\000\000\003\238\000\000\000\000\000\000\000\017\000\016\000\000\000\000\000\000\000\000\005'\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\003]\003\\\000\000\000\000\000\000\000\000\000\000\000\000\003\142\003\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\001\128\000\000\001~\001|\000\000\000\000\001\143\000\000\001\142\001\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\000\000\000\000\001\195\001\194\000\000\001\193\003{\003\031\000\000\000\000\000\000\003\027\003\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\179\001\178\000\000\001\177\003w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\191\001\190\000\000\001\189\003z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\187\001\186\000\000\001\185\003y\000\000\000\000\000\000\003!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\001\233\001\232\000\000\001\235\000\000\001\228\000\000\000\000\000\000\000\000\000\000\001\227\000\000\001\225\001\223\000\000\000\000\000\000\001\140\000\000\000\000\001\139\003 \001\141\000\000\000\000\000\000\000\000\000\000\001I\000\000\001H\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\001\152\000\000\001\150\000\000\001\151\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\153\000\000\000\000\001\148\000\000\000\000\000\000\000\000\001\154\000\000\000\000\001\147\000\000\001\146\001\145\000\000\000\000\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\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001R\000\000\000\000\002d\000\000\000\000\000\000\000\000\000\000\000\000\005w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005G\000\000\000\000\000\000\000\000\000\000\002c\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0026\002p\0025\002l\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\147\000\000\000\000\003\148\000\000\001S\000\000\001T\000\000\003\131\000\000\000\000\000\000\000\000\003\130\000\000\000\000\000\000\002b\000\000\002\254\000\000\000\000\002\248\000\000\000\000\002\251\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000|\004\007\002?\000}\004\011\004\t\000\000\000\000\000\000\004\023\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002P\000\000\000\000\002T\000\000\002\242\000\000\000\000\002\239\000\000\002\240\002S\002Q\000\000\002\241\000\000\002U\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\004\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003W\003V\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\018\000\000\004\015\000\000\000\000\000\000\000\000\000\000\001\149\000\000\001J\003\127\000\000\000\000\000\000\002\234\000\000\000\000\000\000\000\000\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]\004\021\004\b\0041\000\000\000\000\000\000\000\000\000\000\000\205\000\000\000\000\000\000\000\000\000\000\000\204\000\000\000\000\000\000\000\000\000\000\001\133\001\132\000\000\001\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\186\000\000\000\000\000\000\000\000\000\000\000\000\003K\003J\000\000\000\000\000\000\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\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001C\000\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\208\000\000\000\000\000\000\000\207\000\206\000\000\000\000\000\000\001O\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003Q\003P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\216\000\000\000\000\002\209\000\000\000\000\000\176\004\133\002\210\003~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\209\000\000\000\000\001\210\000\000\000\000\000\000\000\000\001\205\000\000\000\000\001\206\000\000\000\000\001\199\000\000\000\000\001\200\001\198\000\000\000\000\001\201\000\000\000\000\000\000\000\000\001\213\000\000\000\000\001\214\000\000\000\000\001\212\000\000\000\000\001\211\000\000\000\000\000\000\000\000\000\000\000\000\001\183\001\182\000\000\001\181\003x\000\000\000\000\000\000\000\000\003\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\207\000\000\000\000\001\208\000\000\000\000\001\202\000\000\000\000\001\203\001\215\000\000\000\000\001\204\001\196\000\000\000\000\002\003\000\022\001\218\000\000\000\000\000\000\003\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\133\003\132\000\203\001G\000\000\000\161\000\162\000\000\000\000\000\000\000\000\000\200\000\173\002\235\000\000\003\248\000\000\000\000\003\250\000\000\000\000\003\249\000\000\000\000\000\000\000\000\003\252\000\000\000\000\004\000\000\000\000\000\003\254\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\187\000\000\003\251\000\000\000\000\003\255\000\000\000\000\003\253\000\000\000\000\000\000\000\000\000\000\003c\003b\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\238\000\000\000\000\001\239\000\000\000\000\001\030\000\000\001\241\001\240\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003\146\003\145\000\000\004(\003\129\003\128\000\000\000\000\000\000\000\000\000\000\004'\0040\000\000\004/\000\000\000\000\004&\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$\004\030\000\000\004\029\000\000\000\000\004#\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\"\004*\000\000\000\000\000\000\000\000\000\000\004!\000\000\004)\000\000\000\000\004 \000\000\000\000\004\017\000\000\000\000\000\000\0037\000\000\002\228\000\000\000\000\000\000\003\196\0036\000\000\004\026\000\000\000\000\000\000\002@\000\000\004\002\000\000\004\001\000\000\000\000\000\000\000\000\002\244\000\000\000\000\002\253\000\000\000\000\002\247\000\000\000\000\002\250\000\000\002\243\000\000\000\000\002\252\000\000\000\000\002\246\000\000\000\000\002\249\000\000\000\000\000\181\000\000\000\000\000\000\000\000\000\180\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\178\000\000\002H\000\000\000\000\000\000\002[\000\000\000\000\000\000\000\130\000\000\000\000\000\131\000\000\000\000\000\000\000\000\002t\002u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001w\000\000\000\000\000\142\000\000\001z\001x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\179\000\132\000\000\000\000\0035\000\000\000\000\001\217\004\132\001\236\002\226\000\000\001\137\000\000\000\000\001\136\001\138\000\000\000\000\000\000\000\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001D\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\002\027\000\000\002\028\002\026\003\141\000\000\003\243\000\000\000\000\000\000\000\000\003\242\000\000\003\241\000\000\000\000\004\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004,\000\000\000\000\004\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\190\004\r\000\000\004\012\000\000\000\000\000\000\000\000\000\000\0044\000\000\000\000\000\000\000\000\000\000\0043\000\000\004\031\000\000\000\000\0042\000\000\000\000\000\000\000\000\000\000\0047\000\000\000\000\000\000\000\000\000\000\0046\004\028\000\000\004\027\000\000\000\000\0045\000\000\000\000\000\000\000\000\000\000\004:\000\000\000\000\000\000\000\000\000\000\0049\004.\000\000\004-\000\000\000\000\0048\004\n\000\000\000\000\000\000\000\000\004\004\000\000\000\000\004\005\000\000\003\245\000\000\003\246\000\000\003\247\000\000\000\000\000\000\000\000\000\000\001k\000\000\000\000\000\000\000\000\000\000\002\164\000\000\000\000\000\000\002\163\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\249\005 \000\000\000\000\005\031\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\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\002\142\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\004\131\000\000\000\000\003\200\000\000\003#\000\000\000\000\000\000\000\000\000\000\005i\000\000\000\000\003\155\000\000\000\172\000\000\003\156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\000\002z\000\000\002y\000\000\000\000\000\000\000\000\000K\000\000\000\000\000\000\0033\000\000\0032\000\000\000\000\000\000\000\000\000L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Q\000\000\000\000\000\000\000R\000P\000\000\000T\000\000\000\000\000\000\000\000\000\000\000J\000\000\000\000\000\000\000\000\000\000\000\000\000M\000\000\000S\000\000\000N\000O\000\000\002\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\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\002r\000\000\000\000\000\000\005`\000\000\000\000\005b\000\000\0009\000\000\000\000\005l\000\000\005k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005_\000\000\000\000\005a\000\000\000\000\000\000\003.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002*\000\000\000\000\002(\002&\000\000\000:\000\000\000\000\005o\000\000\005n\000\000\000\000\000\000\002$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002)\000\000\000\000\002'\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\001\220\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\000\0006\000\000\000\000\000X\000\000\0004\001\221\000\000\000C\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\219\000\000\000W\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\000_\000^\000\000\000Z\000\000\000\000\002\214\000\000\0008\000\000\000\000\000\000\0007\000\000\000\000\000\000\000;\000\000\000[\000\000\000=\000>\000\000\002\014\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\001\243\005#\005\026\000\000\000\000\005\030\004\130\005\025\005\"\005!\002\n\000\000\005\024\000\000\005\022\000\000\000\000\000\000\000\000\005%\000\000\000\000\000\000\000\000\000\000\000\000\003|\000\000\000\000\001\255\002\212\005\027\005\023\005$\003\"\000\000\000\000\005\020\000-\005\019\000\000\000\000\000\170\000\000\001j\000\000\000\000\002\t\002\b\000\000\003+\001a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\167\000\000\001\\\000\000\005\029\003A\003B\003=\003?\003>\003@\000\000\000\000\000\000\000\168\000\000\001]\000\000\000\000\000\000\003|\000\000\001`\000\000\000\000\000\000\000\000\005\028\000\000\002N\000\000\000\000\004@\000\000\001\173\003u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\171\001\170\000\000\001\169\003t\000\000\000\000\000E\000\000\000\000\000F\000\000\000\000\004\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\000\003i\003h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001E\000\000\000\165\000\000\000\000\000\000\000\000\000\000\000\000\002#\002\029\000\000\000\000\002\030\002\162\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\151\000\000\000\000\000\000\000\000\000\000\000\000\002\154\000\000\000\000\002\158\002\150\000\000\000\000\000\000\000\000\003<\003:\003;\000\000\002\146\000\000\000\000\000\000\002\153\000\000\000\000\002\157\002\149\005B\000\000\000\000\000\000\000\000\000\000\002\156\000\000\000\000\002\160\002\152\002\148\000\000\000\000\002\155\000\000\000\000\002\159\002\151\002\147\002\145\000\000\003|\000\000\001_\000\000\000\000\000\000\000\000\003\210\003E\003C\003D\000\000\000\000\000\000\000\000\003|\000\000\001^\000\000\000\000\000\000\000\000\003\209\000\000\000\000\000\000\000\000\000\000\000\000\002\166\000\000\000\000\000\000\002\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002o\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\001\251\003\215\000\000\000\000\000\000\000\025\000\000\002Z\000\000\000\000\000\000\000\000\002\230\000\000\003\213\000\000\000\000\002I\000\000\003\212\000\000\000\000\000\000\002L\002J\000\000\002M\002Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\245\003\219\003\205\000\000\003\211\003\206\003\218\003\217\003\216\003\214\002\006\003\204\000\000\003\202\000\000\000\000\000\000\000\000\000\000\003\221\000\000\003\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003|\000\000\000\000\002\001\003\208\003\203\003\220\002\005\003\201\000\000\000\151\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\143\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\145\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\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\255\000\000\000\000\000\000\000\000\001o\000)\000\000\000\000\001t\000\000\000\000\000*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005g\000\000\000.\000\000\000\000\000\000\000\000\000\199\000\000\001d\000\001\000\000\000\000\001i\000\002\000\000\000\000\000\000\0020\0021\000\003\000\000\000\000\000\000\000\000\0023\0024\0022\000\023\002/\000\024\000\000\003\002\000\000\000\004\000\000\003\003\000\000\000\005\000\000\003\004\000\000\000\000\003\005\000\006\000\000\000\007\000\000\003\006\000\000\000\b\000\000\003\007\000\000\000\t\000\000\003\b\000\000\000\n\000\000\003\t\000\000\000\011\000\000\003\n\000\000\000\000\003\011\000\012\000\000\000\000\003\012\000\r\000\000\000\000\000\000\000\000\000\000\0057\0052\0053\0056\0054\000\000\000\000\000\000\0050\005+\005,\005/\005-\000\000\005;\000\014\000\000\005:\000\000\002\016\000\000\000\000\0058\000\000\0059\000\000\000\000\000\000\000\000\002\020\002\021\000\000\000\000\002\019\002\018\000\015\000\000\000\000\000\000\005Y\000\000\005X") + (16, "\000\000\000\000\000\000\004\140\004\139\004\138\004\137\004\136\004Z\004\135\004\134\004\133\004\132\004\131\004\130\004\129\004\128\004\127\004~\004}\004|\004{\004z\004y\004x\004w\004v\004u\004t\004Y\004s\004r\004q\004p\004o\004n\004m\004l\004k\004j\004i\004h\004g\004f\004e\004d\004c\004b\004a\004`\004_\004^\004]\004\\\004[\000\000\000\000\000,\000\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\185\002\161\002\182\002\181\002\180\002\186\002\190\002\178\002\184\002\183\002\162\002\188\002\179\002\177\002\176\002\175\002\172\002\170\002\189\002\187\000\000\000\000\000\000\001h\000\000\000\000\002\165\000\000\000\000\000\000\002\167\000\000\000\000\000\000\002\169\002\194\002\191\002\171\002\174\002\173\002\163\002\192\002\193\000\000\005e\005f\000\000\000\000\000\000\000\000\000\000\002\130\002\132\002\131\000'\002&\000\166\000\000\001b\001c\000\000\000\000\000\000\002\238\002\237\000\000\000\000\000\000\001r\000\000\000\000\000\000\000&\000\000\000\000\000\000\000\000\000\000\001l\003>\001p\000\000\000\000\000\000\005T\000\000\000\000\000\000\000\000\000\000\000\000\000(\000\000\000\000\002z\001n\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\000\000\000\000\002|\000\026\000\000\002e\000\000\000\000\000\000\000\000\005`\000\000\005[\000\000\000\000\005]\000\000\005_\000\000\005\\\005^\000\000\000\000\000\000\000\000\000\000\000\000\001\246\000\000\000\000\000\000\000\000\000\000\002\255\000\000\005S\000\000\003\159\003\158\000\000\000\000\005P\000\000\000\000\005O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\129\000\000\000\000\000\127\000\000\000\000\000\000\004\031\0026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\198\000\000\000\000\000\156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002$\000\000\000\000\000\000\002;\000\000\002'\002:\000\000\002%\000a\000\"\000\031\0022\0020\000\028\000\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002~\000\025\000\000\000\000\000\000\000\000\004\164\000\000\000\000\001Q\000\000\000\000\000\000\000$\000!\000\030\000\000\000\000\0023\0021\005N\005V\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\143\000\000\000\000\000\000\000\000\000\000\003\144\000\000\000\018\000\148\000\169\000\149\000\027\000\000\000\000\000\000\000\000\000\000\004\165\000\000\000\000\000\000\000\000\000\000\004\167\000\000\000\000\000\000\000\000\000\000\000\000\004\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\000 \000\029\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\166\000\000\000\000\000\000\000\146\000\000\000\000\000\000\000\019\000\000\000\000\000\000\000\000\000\021\000\000\000\000\000\000\000\000\000\020\000\000\000\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\146\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\147\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\148\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\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\151\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\152\000\000\000\000\000\000\000\000\000\000\000\000\004\163\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\159\000\000\000\000\002u\003\182\003\154\000\000\000\153\000\000\003\155\000\000\000\000\002\195\000\000\000\000\000\000\000\000\0053\000\000\0054\000\000\000\000\000\152\000\000\000\000\000\000\000\154\000\000\000\155\000\000\000\157\000\000\000\000\000\158\003\140\003\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\003t\003s\005p\000\000\000\000\000\000\000\000\000\000\000\000\004L\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\001\158\000\000\003\236\003\231\003\232\003\237\000\000\003\234\003\229\003\230\003\235\000\000\000\000\000\000\000\000\000\000\002Q\002P\000\000\004J\000\000\000\000\000\000\000\000\000\000\002O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0024\000\000\000\000\0027\0025\002<\000D\004\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\005n\005a\005b\000\000\000\000\000\000\005q\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000~\000\000\001}\000\000\003\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005U\004Q\000\000\000\000\000\000\000\000\000\000\000\000\003\239\000\000\004P\005o\003\233\004D\005g\003\228\004E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\151\001\150\000\000\001\149\004I\000\000\000\000\000\000\000\000\004M\004X\004O\000\000\000\000\000\000\004T\000\000\000\000\000\000\003\020\003\018\003\015\003\019\003\014\000\000\003\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\143\001\142\000\000\001\141\004V\004N\000\136\003v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002w\000\000\000\000\000\000\000\000\003\023\002x\000\000\000\000\003\022\000\000\002v\002\134\000\000\000\000\000\135\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\001\147\001\146\000\000\001\145\003w\000\000\000\000\000\000\004W\000\000\000\000\000\000\003\016\003\021\000\000\000\134\000\000\004U\000\000\004S\000\000\003\240\000\000\000\000\003\198\004R\003x\000\000\000\000\003\245\000\000\003\025\000\000\000\000\000\000\000\000\002\200\002\017\002\018\003\242\000\000\003\241\003\244\000\000\003\243\000\000\000\000\000\000\000\017\000\016\000\000\000\000\000\000\000\000\0052\0051\000\000\000\000\000\000\000\000\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\003a\000\000\000\000\000\000\000\000\000\000\000\000\003\147\003\145\000\000\000\000\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\236\000\000\001{\002\233\000\000\000\000\001|\000\000\001\136\001\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\000\000\000\000\001\179\001\178\000\000\001\177\003\128\003\031\000\000\000\000\000\000\003\027\003\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\163\001\162\000\000\001\161\003|\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\175\001\174\000\000\001\173\003\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\171\001\170\000\000\001\169\003~\000\000\000\000\000\000\003!\000\000\000\000\001\227\000\000\000\000\001\228\000\000\000\000\001\134\003 \001\135\000\000\000\000\000\000\000\000\000\000\001I\000\000\001H\000\000\004G\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003%\000\000\000\000\003\"\000\000\000\000\001\138\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\002\245\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\003\136\002g\000\000\000\000\001T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002]\000\000\000\000\000\000\002/\002j\002.\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\135\002c\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\152\000\000\000\000\003\153\000\000\000\000\001S\000\000\000\000\000\000\000\000\000\000\000\000\002f\000\000\002\254\000\000\000\000\002\248\000\000\000\000\002\251\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000|\004\016\0028\000}\004\020\004\018\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\002I\000\000\000\000\002M\000\000\002\242\000\000\000\000\000\000\002\240\000\000\002\239\002L\002J\000\000\002\241\000\000\002N\000\000\000\000\000\000\0044\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\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\003\\\003[\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\027\000\000\004\024\000\000\000\000\000\000\000\000\000\000\001\139\000\000\001J\003\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\005h\004\030\004\017\004:\000\000\000\000\000\000\000\000\000\000\000\205\000\000\000\000\000\000\000\000\000\000\000\204\000\000\000\000\000\000\000\000\000\000\001\129\001\128\000\000\001\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\191\000\000\000\000\000\000\000\000\000\000\000\000\003P\003O\000\000\000\000\000\000\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\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001C\000\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\208\000\000\000\000\000\000\000\207\000\206\000\000\000\000\000\000\001O\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\204\000\000\000\000\001\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\217\000\000\000\000\001\214\000\000\000\000\000\000\001\200\000\000\000\000\000\000\000\000\000\000\001\211\000\000\000\000\001\210\000\000\000\000\001\199\000\000\000\000\000\000\000\000\001\202\000\000\000\000\001\201\001\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\000\000\000\000\000\000\000\176\004\144\002\208\003\131\000\000\000\000\001\205\000\000\000\000\000\000\000\000\000\000\001\190\000\000\000\000\001\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\215\000\000\000\000\001\212\000\000\000\000\000\000\001\186\000\000\000\000\000\000\000\000\000\000\001\207\000\000\000\000\001\206\000\000\000\000\001\185\000\000\000\000\000\000\000\000\001\188\000\000\000\000\001\187\001\182\000\000\000\000\001\191\000\000\000\000\000\000\000\000\000\000\001\221\000\000\000\000\001\220\000\000\000\000\001\219\000\000\000\000\001\218\000\000\000\000\000\000\000\000\000\000\000\000\001\167\001\166\000\000\001\165\003}\000\000\000\000\000\000\000\000\003\029\000\000\000\000\000\000\000\000\000\000\000\000\001\197\000\000\000\000\001\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\216\000\000\000\000\001\213\000\000\000\000\000\000\001\193\000\000\000\000\000\000\000\000\000\000\001\209\000\000\000\000\001\208\000\000\000\000\001\192\000\000\000\000\000\000\000\000\001\195\000\000\000\000\001\194\001\183\000\000\000\000\001\198\001\180\000\000\000\000\001\252\000\022\001\223\000\000\000\000\000\000\003\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\138\003\137\000\203\001G\000\000\000\161\000\162\000\000\000\000\000\000\000\000\000\200\000\173\002\230\000\000\004\001\000\000\000\000\004\003\000\000\000\000\004\002\000\000\000\000\000\000\000\000\004\005\000\000\000\000\004\t\000\000\000\000\004\007\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\192\000\000\004\004\000\000\000\000\004\b\000\000\000\000\004\006\000\000\000\000\000\000\000\000\000\000\003h\003g\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\231\000\000\000\000\001\232\000\000\000\000\001\030\000\000\001\234\001\233\000\000\000\000\004\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\003\151\003\150\000\000\0041\003\134\003\133\000\000\000\000\000\000\000\000\000\000\0040\0049\000\000\0048\000\000\000\000\004/\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-\004'\000\000\004&\000\000\000\000\004,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004+\0043\000\000\000\000\000\000\000\000\000\000\004*\000\000\0042\000\000\000\000\004)\000\000\000\000\004\026\000\000\000\000\000\000\003<\000\000\002\226\000\000\000\000\000\000\003\201\003;\000\000\004#\000\000\000\000\000\000\0029\000\000\004\011\000\000\004\n\000\000\000\000\000\000\000\000\002\244\000\000\000\000\002\253\000\000\000\000\002\247\000\000\000\000\002\250\000\000\002\243\000\000\000\000\002\252\000\000\000\000\002\246\000\000\000\000\002\249\000\000\000\000\000\181\000\000\000\000\000\000\000\000\000\180\000\000\000\000\000\000\000\000\000\000\000\000\002S\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\178\000\000\002A\000\000\000\000\000\000\002R\000\000\000\000\000\000\000\130\000\000\000\000\000\131\000\000\000\000\000\000\000\000\002n\002o\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001w\002\228\000\000\000\000\000\142\000\000\001z\001x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\179\000\132\000\000\000\000\003:\000\000\000\000\001\222\004\143\001\229\002\224\000\000\001\132\001\133\000\000\000\000\000\000\000\174\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001D\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\002\020\000\000\002\021\002\019\003\146\000\000\003\248\000\000\000\000\000\000\000\000\003\247\000\000\003\246\000\000\000\000\004\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0045\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\003\195\004\022\000\000\004\021\000\000\000\000\000\000\000\000\000\000\004=\000\000\000\000\000\000\000\000\000\000\004<\000\000\004(\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\004?\004%\000\000\004$\000\000\000\000\004>\000\000\000\000\000\000\000\000\000\000\004C\000\000\000\000\000\000\000\000\000\000\004B\0047\000\000\0046\000\000\000\000\004A\004\019\000\000\000\000\000\000\000\000\004\r\000\000\000\000\004\014\000\000\003\250\000\000\000\000\000\000\004\000\000\000\003\255\000\000\000\000\000\000\003\252\000\000\003\251\000\000\000\000\000\000\003\254\000\000\003\253\000\000\000\000\000\000\000\000\000\000\001k\000\000\000\000\000\000\000\000\000\000\002\158\000\000\000\000\000\000\002\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\242\005+\000\000\000\000\005*\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\001f\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\136\000\000\0031\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\142\000\000\000\000\003\205\000\000\003(\000\000\000\000\000\000\000\000\000\000\005t\000\000\000\000\003\160\000\000\000\172\000\000\003\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\000\000\000\000\002t\000\000\002s\000\000\000\000\000\000\000\000\000K\000\000\000\000\000\000\0038\000\000\0037\000\000\000\000\000\000\000\000\000L\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Q\000\000\000\000\000\000\000R\000P\000\000\000T\000\000\000\000\000\000\000\000\000\000\000J\000\000\000\000\000\000\000\000\000\000\000\000\000M\000\000\000S\000\000\000N\000O\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\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\002l\000\000\000\000\000\000\005k\000\000\000\000\005m\000\000\0009\000\000\000\000\005w\000\000\005v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005j\000\000\000\000\005l\000\000\000\000\000\000\0033\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002#\000\000\000\000\002!\002\031\000\000\000:\000\000\000\000\005z\000\000\005y\000\000\000\000\000\000\002\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000\000\000\000\002 \002\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\000\001\225\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\000\0006\000\000\000\000\000X\000\000\0004\001\226\000\000\000C\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\224\000\000\000W\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]\000\000\000_\000^\000\000\000Z\000\000\000\000\002\212\000\000\0008\000\000\000\000\000\000\0007\000\000\000\000\000\000\000;\000\000\000[\000\000\000=\000>\000\000\002\007\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\001\236\005.\005%\000\000\000\000\005)\004\141\005$\005-\005,\002\003\000\000\005#\000\000\005!\000\000\000\000\000\000\000\000\0050\000\000\000\000\000\000\000\000\000\000\000\000\003\129\000\000\000\000\001\248\002\210\005&\005\"\005/\003'\000\000\000\000\005\031\000-\005\030\000\000\000\000\000\170\000\000\001j\000\000\000\000\002\002\002\001\000\000\0030\001a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\167\000\000\001\\\000\000\005(\003F\003G\003B\003D\003C\003E\000\000\000\000\000\000\000\168\000\000\001]\000\000\000\000\000\000\003\129\000\000\001`\000\000\000\000\000\000\000\000\005'\000\000\002G\000\000\000\000\004K\000\000\001\157\003z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\155\001\154\000\000\001\153\003y\000\000\000\000\000E\000\000\000\000\000F\000\000\000\000\004\015\000\000\000\000\000\000\000\000\000\000\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\003m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001E\000\000\000\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\162\000\000\000\000\000\000\000\000\000\000\000\000\002\148\000\000\000\000\002\152\002\144\000\000\000\000\000\000\000\000\003A\003?\003@\000\000\002\140\000\000\000\000\000\000\002\147\000\000\000\000\002\151\002\143\005M\000\000\000\000\000\000\000\000\000\000\002\150\000\000\000\000\002\154\002\146\002\142\000\000\000\000\002\149\000\000\000\000\002\153\002\145\002\141\002\139\000\000\003\129\000\000\001_\000\000\000\000\000\000\000\000\003\215\003J\003H\003I\000\000\000\000\000\000\000\000\003\129\000\000\001^\000\000\000\000\000\000\000\000\003\214\000\000\000\000\000\000\000\000\000\000\000\000\002\160\000\000\000\000\000\000\002\159\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002i\000\000\000\000\000\000\000\000\000\000\002V\000\000\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\244\003\220\000\000\000\000\000\000\002U\000\000\000\000\000\000\000\000\003\218\000\000\000\000\002B\000\000\003\217\000\000\000\000\000\000\000\000\000\000\002C\000\000\002F\002T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\238\003\224\003\210\000\000\003\216\003\211\003\223\003\222\003\221\003\219\001\255\003\209\000\000\003\207\000\000\000\000\000\000\000\000\000\000\003\226\000\000\003\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\129\000\000\000\000\001\250\003\213\003\208\003\225\001\254\003\206\000\000\000\151\000\000\000\000\000\000\000\000\000\000\000\000\002\028\002\022\000\000\000\000\002\023\002\156\000\000\002\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\155\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\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\004\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\159\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\000\000\000\000\000\000\000\000\001o\000*\000\000\000\000\001t\000\000\000\000\000)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005r\000\000\000.\000\000\000\000\000\000\000\000\000\199\000\000\001d\000\001\000\000\000\000\001i\000\002\000\000\000\000\000\000\002)\002*\000\003\000\000\000\000\000\000\000\000\002,\002-\002+\000\023\002(\000\024\000\000\003\002\000\000\000\004\000\000\003\003\000\000\000\005\000\000\003\004\000\000\000\000\003\005\000\006\000\000\000\007\000\000\003\006\000\000\000\b\000\000\003\007\000\000\000\t\000\000\003\b\000\000\000\n\000\000\003\t\000\000\000\011\000\000\003\n\000\000\000\000\003\011\000\012\000\000\000\000\003\012\000\r\000\000\000\000\000\000\000\000\000\000\005B\005=\005>\005A\005?\000\000\000\000\000\000\005;\0056\0057\005:\0058\000\000\005F\000\014\000\000\005E\000\000\002\t\000\000\000\000\005C\000\000\005D\000\000\000\000\000\000\000\000\002\r\002\014\000\000\000\000\002\012\002\011\000\015\000\000\000\000\000\000\005d\000\000\005c") and error = - (147, "'\244\1681i\170o\204\231\216\n\216\015\242(\000\028d\004v\148\002/\021\r\248\153\249\000[\001\244\005\000\001\140\129\243\236D\b\021\248m\000\002\0248\000{G\002\192P\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\127\173\205\235]\211\254g~\242^\224\255\137H\129\231 |\251\017\002\005~\027@\000\134\014\000\030\209\192\176\020\006\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\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\007\207\177\016 W\225\180\000\b`\224\001\237\028\011\001@hO\233Qj\211T\223\153\207\176\021\176\031\224P\000x\200\000\000\000\000\004\000\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\005\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000>\128,\018\000\000>\004\b\001\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001@\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\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\000\000\000\000\000\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\t\000\000\000\000\000\000\000\000\000\000\000\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\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\136\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\014R\000`\130\000\156_\023 \007p\006@\000\000 \128\001\202@\012\016@\019\139\226\228\000\238\000\200\000\000\004\016\0009H\001\130\b\002q|\\\128\029\192\025\000\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\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\000\000\000\000\0010\019\186\000@\165R\014\005\131A\016\022\192DD&\160\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\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\b\004 \000\000\b\016\000\128\000\000@\000\000\000B\000\160\003\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\000\000\000\000\000\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\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\192\000\014\001A\003\139\130\000\000\n\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\001\000\132\016\000\001\n\000\016\000\000\b\000\000\002\b@\020\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\"\000U\000\b\024\002A\128\128H \002\216\000\164\128\006\001\128\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\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\0170\019\184\000@\228R\014\005\130A\016\022\192\005l&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\024\000\128\007\023\004\000\000\020\000\000\000\000\000\000\000p\000\003\128P@\226\224\128\000\002\128\000\000\000\000\000\000\002\000@@@\b\020\016 \000\000\000@\000\000\000\000\000\000@\b\b\000\001\002\130\004\000\000\000\b\000\000\000\000\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\136\128\021@\002\005\b\144p \018\b\000\182\002\003 1\001\016\002\b\000@\128\002\n\004\002\000\000\020@\000\004\004\000\"\000A\000\b\016\000A\000\128@\000\002\136\000\000\128\128\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\b\136\t\220\000 p)\007\002\001\160\128\011`\002\146\016\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000\000\012\000\000I\128\129(\000@\002\000\000\000\000\000\000\002\000\001\128\000\t \016%\000\b\000@\000\000\000\000\000\000@\0000\000\001$\002\004\160\000\000\b\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\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\003\000\000\018@\000J\000\000\000\128\000\000\000\000\000\000\128\000@\000\002\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\000\000\t \000 \000\000\000@\000\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\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\002\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\001\b\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000!\000\000\001\128\000\000\000\000\005\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\b\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\" \005P\000\129\128\164\024\b\004\130\000-\128\nH\000`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000/\245\191\255k\190\127\223\255\222O\220\127\243*\020<\244\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\004\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\002\016\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000B\000\000\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\016\000\000\128\000\000@\000\000\000\000\000\000\000\000\001\000\000\016\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\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$\128\000\128\000\000\001\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\002\000\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\001\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\016\000\016\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\128\000\000\000\000\000\000\000\000\000\000\000D\000\138\b\016 \000\131\001\000\128\000\005\176\001\011\000\b\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\017\016\002(\000@\192\018\012\004\002A\000\022\192\004$\0000\"\000E\000\b\016\000A\128\128@\000\002\216\000\132\128\004\003\144\000\030\002\128\007\023\005\000\000\028\000\128\002\000\000\128\000\136\001\020\000(@\137\007\002\001 \128\n`\"\006\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\200\000\014\001@\003\139\130\128\000\014\000@\001\000\000@\0008\000!\192( qp@\000\001@\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\006\000\000\001E\193\000\000\005\016\000\000\128\000\000\000\028\000\000\224\020\0168\184 \000\000\160\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\016\b@\000\000\016 \001\000\000\000\128\000\000\000\132\001A\243\236D\b\021\248m\000\002\0248\000{G\002\192P\026\019\250TZ\180\2137\230s\236\005l\007\248\020\000\0302\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\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\165\000\139\197C~&~@\022\192}\001@\000c #\180\160\017h\168o\196\207\200\002\216\015\160(\000\012d\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\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\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\018\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\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\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000 \000p\000\019\128P\000\226\224\128\000\002\128\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\016\0008\000\001\192(\000qp@\000\001@\000\000\000\000\n\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000 \016\000\000\000\000@\000\000\000A\000\000\000\000\b\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D\192N\224\001\003\145H8\022\r\004@[\000\021\144\154\192\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\002\000\000\000\000\000\000\000\000\128\000\000\000\b\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\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\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\000\000\000\b\000\000\000\000\000P0@\000\001\000\000\000\000\000\000\000\007\000\0008\005\004\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\001\017\000;\128\004\014E \224X$\017\001l\000VBk\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000`\002\000\028\\\016\000\000P\000\000\000\000\000\000\001\192\000\014\001A\003\139\130\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\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\b\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\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\002\000\000\000\000\000\000\000\000\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\002\001\b\000\000\002\004\000 \000\000\016\000\000\000\016\128(\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000 \016\128\000\000 @\002\000\000\001\000\000\000\001\b\002\128\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\000\000\000\000\000\000\000\004\000\000@0\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\014\000\000p\n\b\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\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\002\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\0000\000\000\000\000\000\160\000\004\000\000\000\000\000\000\000\000\001\000\000\b\000\000\004\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\0008\000\001\192(\000qp@\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\000\000\000\000\000\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\004\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200M`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D\192N\224\001\003\145H8\022\t\004@[\000\021\144\154\1920\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\019\001;\128\004\014E \224X$\017\001l\000V\194k\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004L\004\238\000\0169\020\131\129`\144D\005\176\001Y\t\172\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\000\000\000\000\000\000\000\000\000\000\000\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\136\t\220\000 r\t\007\002\193 \136\011`\002\178\019X\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\"`'p\000\129\200\164\028\011\004\130 -\128\n\216M`\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\137\128\157\192\002\007\"\144p,\018\b\128\182\000+!5\1450\019\184\000@\228R\014\005\130A\016\022\192\005d&\178&\002w\000\b\028\138A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\004\000\000\002\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\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\001\000\000\001\128\000\000\000\000\005\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\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\000\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\003\000\000\000\000\000\n\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\016\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000@!\000\000\000@\128\004\000\000\002\000\000\000\002\016\005\000\024\000\000\000\000\000P\000\002\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\000\000\000\000\000\000\000\000\000\b\000\000\128 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\004\002\016\000\000\004\b\000@\000\000 \000\000\000!\000P\001\128\000\000\000\000\005\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\b\000\000\b\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\004\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\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\016\000\000\000\000\000\000\000\000\000\000\001\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\001\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\1920\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\014\000\000p\n\b\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\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\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\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\128@\000\000\000\001\000\000\000\000\004\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\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\b\004\000\000\000\000\016\000\000\000\000@\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000\000\016\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\003\128\000\028\002\128\007\023\004\000\000\020\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\001\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\028\000\000\224\020\0008\184 \000\000\160\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\016\000\b\000\000\001\000\000\000\b\000\000\000\000\016\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\001\000\000\000\000\000\016\000\000\000\128\000\000\000\001\000\128\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000@\000\000\002\000\000\000\000\004\018\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\b\000\000\000\000\016H\000\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\b\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\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\001\000\000\000\000\128\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\002\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\b\000\000\000\000\000\000\000\000\004\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\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\000\000\000\000\000\000\000\000\000\000\000\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\004\000\000\000\000\004\000\000\000\b\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\012\128\000\000\000\000\016\000\000\000\000\016\000\002\000 \000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\0002\000\000\000\000\000@\000\000\000\000@\000\000\000\128\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\128\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\002\128\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\002@\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\200@\b\128\020\002\130c\132\000l\000\192\020\000\0060\000@\000\002\001\000\001@\130\128`\000\000\000\016\001\000\000\000\b\000\000@\000\000(\016P\012\000\000\000\002\000 \000\000\001\000\000\b\000\000\005\002\b\001\128\000\000\000@\004\000\000\000\012\164\000\129\000\001(&.@\014\224\012\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\160\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\016\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\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\001\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\016\000A\000\000\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\128\000\001\192\000\014\001@\003\139\130\000\000\n\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\000\000\000\000\000\000\000\000\000\000@\006\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\128\012\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\0002\152B>\128l\178\152\185>?\1363\002\000\025/,\000\000\b\000\000\000\000\000\000 \003\000\004\000\000\000\000\000\000\192\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000\000\000\128\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\000\000\000\000\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\002\000@@\000\b\020\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\003\002\000 \000\000\b\b\016\000\000\000 \000\000\000\000\000\000`@\004\000\000\001\001\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'\244\1681i\170o\204\239\216\n\216\015\241(\000\028d\004\254\149\006-5M\249\156\251\001[\001\254%\000\003\140\128\006\000\000$\192@\148\000 \001\000\000\000\000\000\000\001\000\000\192\000\004\144\b\018\128\004\000 \000\000\000\000\000\000 \000\024\000\000\146\001\002P\000\000\004\000\000\000\000\000\000\004\000\003\000\000\018@\000J\000\000\000\128\000\000\000\000\000\000\128\000 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\"\000E\004\b\016\002A\128\128H \002\216\000\129\128\004\004@\b\160\001\002\000H0\016\t\004\000[\000\016\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\001 \192@$\016\001L\000@@\002>}\136\129\002\191\r\160\000C\007\000\015h\224X\n\003B\127J\139V\154\166\252\206}\128\173\128\255\002\128\003\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000 \000\000\004\000\000@\002\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\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\156B?\149m\250\152\249>_\t\245\007\000\025\175\172\006B\bD\000\160\020\019\028 \003`\006\000\160\0001\128\017\218P\b\180T7\226c\228\001l\007\208\020\001\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\028\200\000d \004@\n\001A1\194\0006\003`\n\000\003\024\001\029\165\004\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\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\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003!\000\"\000P\n\t\142\016\001\176\003\000P\000\024\192\016\000\001\016\000\000\000\000\000\000\000I\000\002\005@H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\136\001@(&8@\006\192\012\001@\000c\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\004\016@\000e \004\b\000\tA1r\000w\000d\000\000\002\136\000\012\164\004\129\000\001(&.@\014\224\012\128\000\000A\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\000\000\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\000\000\000\000\000\016\000\000@\000\000\224\000\007\000\160\001\197\193\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\004@\000\000\000\000\000\000\000\000\000\b\000\000\000\000\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\004\000\006B\000@\192\000\148\0194 \007p\006\000\000\000 \128\000\200@\b\016\000\018\130f\132\000\238\000\192\000\000\004\016\000\025\b\001\002\000\002PLP\128\029\192\024\000\000\000\130\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\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\001\000\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\200@\b\016\000\018\130b\132\000\238\000\192\000\000\004\016\000\b\000\000\000\000\000\016\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\148\128\016 \000%\004\197\200\001\220\001\144\002\000\b \000\000\000\000\000\000\000\160\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\016\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\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\001\144\128\016 \000%\004\197\b\001\220\001\128\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\b\202Cj\017\000R\130f\164\002\238\000\197\001\003\181U\000\000\b\000\002\000\002\000\000\000\128\000\000\016\000\000\000\128\000\000\000\000\000\000\000\000\000\000\016\000\000\002\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\000\000\000FR\027P\136\002\148\0197 \023p\006h\004\029\170\168\000@\000\000\000\000\002\000b\128\000\012\000\000\000\000\000\000\000\025H!\002\000\002PL\\\128\029\192\025\000\000\004\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \004\012\000\tA3r\000w\000d\000\000\002\b\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000A\000\001\148\128\016 \000%\004\197\200\001\220\001\144\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\004e!\180\b\000)A3r\001w\000f\128\001\154\170\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\006\192\000\000\128\000\b\000\004\000\000\n\000\006b\138\0002\144\002\004\000\004\160\152\185\000;\1282\000@\001\004\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\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\002\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\128\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\0002\016\002\004\000\004\160\152\161\000;\1280\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\0006\000\000\004\000\000@\000 \000\000P\0003\020P\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b \002\000\000\216\000\000\016\000\001\000\000\128\000\001@\000\204Q@FR\027@\128\002\148\0197 \023p\006h\000\025\170\168\000\234a\b\250\001\178\202b\228\248\254 \204\b\000d\188\176\000\000\000\000\000\000P\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\b\000\000\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000@\000\002\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\b\000\000\000\020\000\000\000\000\000\000\000\000\000\128\000\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\004\003!\000 @\000J\t\138\016\003\184\003\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\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\016\002\004\000\004\160\152\161\000;\1280\000\000\001\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\002\128\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\128\000\000\000\000\000\002\0000\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\001\000\000\000\000\000\000\000\140\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\016\000\018\130b\228\000\238\000\200\001\000\004\016\000\000\000\000\000\000\000P\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\b\000\000\028\000\000\224\020\0008\184 \000\000\160\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\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@\b\016\000\018\130b\132\000\238\000\192\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\004\000\001\176\000\000 \000\002\000\001\000\000\002\128\001\152\162\128\028\000\000\224\020\0008\184 \000\000\160\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\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\b\000\003`\000\000@\000\004\000\002\000\000\005\000\0031E\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\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\001\000\000\000\000\000\000\000\136\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@H\016\000\018\130b\228\000\238\000\200\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\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\0002\020\016\001\148\128\144 \000%\004\197\200\001\220\001\144\000\002\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\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\000l\000\000\b\000\000\128\000@\000\000\160\000f(\160\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\129\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\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\000\000\000\000\001\000\000\000\000\000\000\000\136\016@\000\000\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000 \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\128\000\000\000\000\004\000\000@\000\000\000\000\000\000\"\004\016#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\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\218P\b\188T7\226g\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L\252\128-\128\250\002\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148\002/\021\r\248\153\249\000[\001\244\005\000\001\140\128\142\210\128E\162\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\171\189\157\235\238W\234\249\254\191\251\251\135\183\251o\255\243\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\132\000\136\001@(&8@\006\192l\001@\000c\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\148\128\016 \000%\004\197\200\001\220\001\144\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\202@\n\025\000\018\130f\164\000\238\000\192\000\000\004\016\000\025H\001B \002PL\212\128\029\192\024\000\000\000\130\000\003)\000(D\000J\t\138\144\003\184\003\000\000\000\016@\000\000\000\000\000\000\001@\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\004\000\024\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\b\000\000 \b\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\004\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\000\000\000\000\128\000\000\001\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\002\000\000\000\000\000\b\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\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\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\160\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\002\000\012\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\128\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\b\000\tA1r\000w\000`\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\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\004\000\000\014\000\000p\n\000\028\\\016\000\000P\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\000\000@\000\000\003)\000 @\000J\t\139\144\003\184\003\000\004\000\016@\000\000\000\000\000\000\001@\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\000p\000\003\128P\000\226\224\128\000\002\128\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\000\000\000\000\003!\000 @\000J\t\138\016\003\184\003\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\001\000\000\000\000\001\000\000\136\016@\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\002 A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\000\001\016 \128\012\164\000\129\000\001(&.@\014\224\012\000\016\000A\000\000\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\128\000\001\192\000\014\001@\003\139\130\000\000\n\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\000\012\132\000\129\000\001(&(@\014\224\012\000\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\017\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\025H\001\002\000\002PL\\\128\029\192\024\000 \000\130\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\002\128\007\023\004\000\000\020\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\025\b\001\002\000\002PLP\128\029\192\024\000\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\"\004\016\001\144\128\016 \000%\004\197\b\001\220\001\128\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\006R\000@\128\000\148\019\023 \007p\006\000\b\000 \128\000\000\000\000\000\000\002\128\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\224\000\007\000\160\001\197\193\000\000\005\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\006B\000@\128\000\148\019\020 \007p\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\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\b\129\004\000e \005\b\128\tA3R\001w\000b\000\001\026(\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\000r\144\002\004\016\004\224\152\185\000;\1282\000\000\001\004\000\006S\bG\208\r\150S\023'\199\241\006`@\003%\229\128\202a\b\250\001\178\202b\228\248\254 \204\b\000d\188\176\000\000 \000\000\000\000\000\128\000\000\000\000\000\000F\b\160\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\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\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\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\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\001\000\000\000\000\001\000\000\140\017@\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\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\016\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\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\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\000\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\002\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\001\234a\b\250A\179\202b\228\248\254 \204\b\000d\188\176\000\000\000\000\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\n\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\002\000\000\016\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\000\000\000\000\000\001\000\000\000\000\000\004\000\000\000\000\000\000\0020E\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\016\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\016\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\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\004\000\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\017\130(\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\128\000\000@\000\000\000\000\000\000\000\016\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\000\000\004\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000\000\000\128\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\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\000d \004\b\000\tA1B\000w\000`\000\000\002\b\000\028\166\016\143\164\027<\166.O\143\226\012\192\128\006K\203\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\004`\138\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\004\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\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\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\000\000\016\000\000\000\000\000@\000\000\000\000\000\000#\004P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\004\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\128\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\002\000\000\000\000\000\000\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\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\007)\002 c\004N\t\155\144\003\184\003 \000\000\016@\000`@\004\004\000\001\001\002\000\000\000\004\000\000\000\000\016\000\012\b\000\128\128\000 @\000\000\000\128\000\000\000\000\000\001\129\000\016\000\000\004\004\b\000\000\000\016\000\000\000\000\000\0000 \002\000\000\000\128\128\000\000\000\002\000\000\000\000\000\000\022\004\000@\000\000\016\016\000\000\000\000@\000\000\000\000\000\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\164\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\000\b\001!\000\000 P@\000\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 \004\004\000\000\129A\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\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\b\001\001\000\000 P@\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\128\000\000 \000\002\000\000\000\000\000\000\000\000\006\000\006\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\t \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\002\000\000\001\192\000\015\001@\003\139\130\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\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\002\168\000@\160\018\014\004\002A\000\022\192\000D\006\160\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000D@\n\160\001\002\128H8\016\t\004\000[\000\017\016\026\136\136\001T\000 P\t\007\002\001 \128\011`\002\"\003\016\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\021@\002\005\000\144p \018\b\000\182\000\" 1\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\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\001\000\000\016\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\" \005P\000\129@$\028\b\004\130\000-\128\000\136\012@\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 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\"\000U\000\b\020\002A\192\128H \002\216\000\b\128\196\000\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\136\001T\000 P\t\007\002\001 \128\011`\000\"\003\017\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\128\000\000\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\136\128\021@\002\005\b\144p \018\b\000\182\002\003 1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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*\128\004\n\001 \224@$\016\001l\000\004@b\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004D\000\170\000\016(\004\131\129\000\144@\005\176\000\017\001\136\000\000\000\000\000\000\000\000\000\000\000\000\000\016\002\001\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\"\000U\000\b\020\"A\192\128H \002\216\b\b\128\196\000\128\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\001\017\000*\128\004\n\017 \224@$\016\001l\004\004@b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004D\000\170\000\016(\004\131\129\000\144@\005\176\000\017\001\136\000\128\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\002\"\000U\000\b\020\"A\192\128H \002\216\b\b\128\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\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 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\"\000U\000\b\020\002A\192\128H \002\216\000\b\128\196D@\n\160\001\002\128H8\016\t\004\000[\000\001\016\024\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\" \005P\000\129@$\028\b\004\130\000-\128\000\136\012D\000\000 \000\000\b\000\000\128\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\016\000\000\128\000\000 \000\002\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\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\000\000@\000\000\016\000\001\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@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004\000\000 \000\000\b\000\000\128\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\b\237(\004^*\027\2413\242\000\182\003\232J\000\003\025\001\029\165\000\139EC~&~@\022\192}\t@\000c #\180\160\017h\168o\196\199\200\002\216\015\161(\000\012d\0002\016\002\"\005\000\160\153\225\000\027\0000\005\000\001\140\000\006B\000D\000\160\020\019< \003`\006\000\160\0001\128\000\200@\b\128\020\002\130c\132\000l\000\192\020\000\0060\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\174\127\175\254\254\225\237\254\219\255\253\240\b\000\000\000\000\000P\012p\000\000\000\000\000\000\000\000\000Gi\196#\249V\223\169\143\147\229\240\159Pp\001\154\250\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\165\016\139EC~&>@\022\192}\001@\000c #\180\162\017h\168o\196\199\200\002\216\015\160(\000\012d\0000 \002\002\000\000\128\129\000\000\000\002\000\000\000\000\000\000\006\004\000@\000\000\016\016 \000\000\000@\000\000\000\000\000\000\192\128\b\000\000\002\002\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\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\012\b\000\128\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\b\136\001T\000 P\137\007\002\001\160\128\011`\000&\003\016\022\004\b@\000\000\016\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\128\000\000\000\000\000\000\002\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\000\000\016\000\000\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\"\000U\000\b\020\"A\192\128h \002\216\b\t\128\196\000\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\001\000\000\000\000\000\000\000\004\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000 \000\001\000\000\000@\000\004\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\000GiD\"\209P\223\137\143\144\005\176\031@P\000\024\200\b\237(\132Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\016\129\000\001(&.@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\004`\130\000p\000\003\128P\000\226\224\128\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\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\000\000\000\000\000\000\000\000\000\000\002H\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\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\n\187\217\222\190\229~\171\159\235\255\191\184{\127\182\255\255|\000\000\000\000\000\000\016\000\020\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\000\000\006\192\000\000\000\000\000\000\000\000\000\000\000\006\002\128\004v\148Z-\021\r\248\152\249\000[\001\244\005\000A\204\128\142\210\128E\226\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\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\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\018\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\001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250K\132\183\171o\2313\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\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\002\000\000\000\000\000\020\000\020\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001C \002PL\212\128\029\192\024\000\000\000\130\000\003)\000(D\000J\t\154\144\003\184\003\000\000\000\016@\000e \005\b\128\tA1R\000w\000`\000\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020\"\000\165\004\197H\001\220\001\136\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\016\004\000\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\001\000\000\000\000\001\002\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\004\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\003)\000 `\000J\t\155\144\003\184\003 \000\000\016@\000e \004\b\000\tA3r\000w\000d\000\000\002\b\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\004@\130\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\136\020\002\130g\132\000l\000\192\020\000\0060\000\025\b\001\016\002\128PL\240\128\r\128\024\002\128\000\198\000\003!\000\"\000P\n\t\142\016\001\176\003\000P\000\024\192\021\018\147\184=@\252\022\014\005\255Ip\150\245m\252\230x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\187Y\222>\165~\171\159\227\255\191\184{\127\182\255\255=Q);\131\212\015\193`\224_\244\151\toV\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\174\246w\175\185_\170\231\250\255\239\238\030\223\237\191\255\207\000\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\004\128\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\000\000\000\000\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\017\000(\005\004\199\b\000\216\001\128(\000\012`\n\187\217\222\190\229~\171\159\235\255\191\184{\127\182\255\255|\006B\000D\000\160\020\019\028 \003`\006\000\160\0001\128*\239gz\251\149\250\174\127\175\254\254\225\237\254\219\255\253\240\000\000\000\000\000\000@\000P\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\000\000\000\216\000\000\000\000\000\000\000\000\000\000\000\000\192P\000\142\210\139E\162\161\191\019\031 \011`>\128\160\b9\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\001@\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\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\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\2242\016\002 \005\000\160\152\225\000\027\0000\005\000\001\140\001Q);\131\212\015\193`\224_\244\151\toV\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\174\246w\175\185_\170\231\250\255\239\238\030\223\237\191\255\207TJN\224\245\003\240X8\023\253%\194[\213\183\243\153\224\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\016\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\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\000\000\000\000\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\132\000\136\001@(&8@\006\192l\001@\000c\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021w\179\189}\202\253W?\215\255\127p\246\255m\255\254z\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\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;\255wx\254\213\255\238\127\239\255\238\231\253\244[\255\254\247\207\177\016 W\225\180\000\b`\224\001\237\028\011\001@hGi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\132\000\136\001@(&8@\006\192l\001@\000c\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004@\n\001A1\194\0006\003`\n\000\003\024\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\132\000\136\001@(&8@\006\192l\001@\000c\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004@\n\001A1\194\0006\003`\n\000\003\024\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\132\000\136\001@(&8@\006\192l\001@\000c\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \000\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\004\128\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\000d \004@\n\001A1\194\0006\003`\n\000\003\024\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\200@\b\128\020\002\130c\132\000l\000\192\020\000\0060\005D\164\238\015P?\005\131\129\127\210\\%\189[\1279\158\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\007)\000 A\000N\t\155\144\003\184\003\000\000\000\016@\000\229 \004\b \t\1931r\000w\000`\000\000\002\b\000\012\166\016\143\160\027,\166.O\143\226\012\192\128\006K\203\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\004`\138\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000P\136\000\148\019\021 \007p\006 \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\128\000\018\000\128\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#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\169\017hF\004J\153\250\176\027\184\003\182\000\n\241U\000\240\000\007\000\160\001\197\193\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\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\000\000@\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\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\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\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\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000 \000\000\000@\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\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\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\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\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\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\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\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\130(\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\128\000\000\001\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\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\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\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\016\000\b\129\004\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000%\004\197\200\001\220\001\128\002\000\b \000\000\000\000\000\000\000\160\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\016\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\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\001\144\128\016 \000%\004\197\b\001\220\001\128\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\004\000\000\000\000\004\000\002 A\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\130\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\b\129\004\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\005\000\000\000\000\000\000\000\000\000\000\000\0002\144\002\132@\004\160\152\169\000;\1281\000\000%\005\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\004\000\000\002\000\000\000\000\000\000\000\000\128\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\016\000\000\000 \b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\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\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\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\000\b\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\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\001\029\165\000\139EC~&>@\022\192}\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\000\000\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\002(\000@\128\018\012\004\003A\000\020\192\000\004\000 \"\000E\000\b\016\130A\128\176h \002\152\000\128\128\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*%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\000\004l\015@\022\001\000\128\031\000\004\000\128\000l1\134GiE\162\209P\223\137\143\144\005\176\031@P\004\028\200\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\000U\222\206\245\247+\245|\255_\253\253\195\219\253\183\255\249\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021w\179\189}\202\253_?\215\255\127p\246\255m\255\254y\029\165\000\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\005]\236\239_r\191W\207\245\255\223\220=\191\219\127\255\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004@\n\001A1\194\0006\003`\n\000\003\024\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\000\128\000\000\000\000\005\000\005\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\190\127\175\254\254\225\237\254\219\255\252\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\187\217\222\190\229~\175\159\235\255\191\184{\127\182\255\255<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\174\246w\175\185_\171\231\250\255\239\238\030\223\237\191\255\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\000\000\000\000\000\000\000\000\000@\000P\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\174\246w\175\185_\171\231\250\255\239\238\030\223\237\191\255\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\189\157\235\238W\234\249\254\191\251\251\135\183\251o\255\243\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\132\000\136\001@(&8@\006\192l\001@\000c\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\190\127\175\254\254\225\237\254\219\255\252\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\174\246w\175\185_\171\231\250\255\239\238\030\223\237\191\255\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170\239gz\251\149\250\174\127\175\254\254\225\237\254\219\255\253\245]\236\239_r\191U\207\245\255\221\220=\190\139\127\255\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\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\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\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\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\b\128\000\000\000\000\000\000\000\000\000@\000P\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\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#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\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\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\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\012\132\000\136\001@(&8@\006\192\012\001@\000c\000TJN\224\245\003\240X8\023\253%\194[\213\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004@\n\001A1\194\0006\003`\n\000\003\024\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\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\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\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\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\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\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\n\137I\220\030\160~\011\007\002\255\164\184Kz\182\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\000\000\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\b\000\004@\130\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\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\002\000\000\000\000\000\000\000\130;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \004\b\000\tA1r\000w\000`\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\000\000\000\000\000\0002\016B \005\000\160\152\225\000\027\0000\005\000\001\140\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\002;J\001\022\138\134\252L|\128-\128\250\002\128 \198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\002\000\000\128\000\000\000\000\000\000\000\000\000@\000\000\192\016\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\128\000\004\000\000\000\000\000\000\000\000\000\016\000\0000\020\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\000@\000\000\000\000\000\000\000\000\001\000\000\003\001@\001\000\004\b\015@\022\001\000\128\031\000\004 \128\000l1\134\007)\000 A\000N\t\155\144\003\184\003 \000\000\016@\004\000\000 \000\000\000\000\000\000\000\000\000\128\000\000\128\128 \028\164\000\129\004\0018&n@\014\224\012\128\000\000A\000\003\148\128\016 \128'\004\197\200\001\220\001\144\000\000\b \0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\004\000\000\000\000\000\000\000\000\000 \000\016\000\000\000\000\017\002\b\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\002\000\000\006\002\128\1282\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\001\000\000\b\000\000\000\000\000\000\000\000\000 \000\000`(\b \000\129\001\232\002\192 \016\003\224\000\132\016\000\r\1341\192e \004\b\000\tA1r\000w\000d\000\000\002\b\000\000\000\000\000\000\000\000\000@\000 \000\000\000\000\"\004\016#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000 \000\001\000\000\000\000\000\000\000\000\000\004\000\000\012\005\001\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\002\000\000\016\000\000\000\000\000\000\000\000\000@\000\000\192P\016@\001\002\003\208\005\128@ \007\192\001\b \000\027\012c\128\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004\016\000\000\000\000\000\000\000\000\000\128\000@\000\000\000\000D\b Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004@\n\001A1\194\0006\003`\n\000\003\024\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\024\n\002\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\004\000\000 \000\000\000\000\000\000\000\000\000\128\000\001\128\160 \128\002\004\007\160\011\000\128@\015\128\002\016@\0006\024\199\000\000\000\000\000\000\000\000\b\000\004\000\000\b\000\004@\130\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\004\000\000 \000\000\000\000\000\000\000\000\000\128\000\001\128\160 \012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\024\n\002\b\000 @z\000\176\b\004\000\248\000!\004\000\003a\140r;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\000\001\000\000\000\000\000\000\000\000\000\000\000\000\b\000\128\016\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\128\000\004\000\000\000\000\000\000\000\000\000\016\000\0000\020\004\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\000@\000\000\000\000\000\000\000\000\001\000\000\003\001@A\000\004\b\015@\022\001\000\128\031\000\004 \128\000l1\142\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\128\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\004\000\000 \000\000\000\000\000\000\000\000\000\128\000\001\128\160 \012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\024\n\002\b\000 @z\000\176\b\004\000\248\000!\004\000\003a\140p\000\132\000\015@\022\001\000\128\031\000\004\000\132\000L\017\134Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004@\n\001A1\194\0006\003`\n\000\003\024\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\024\n\002\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\004\000\000 \000\000\000\000\000\000\000\000\000\128\000\001\128\160 \128\002\004\007\160\011\000\128@\015\128\002\016@\0006\024\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\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\016\000\000\000\000\000\000\000\000\000\b\000\000\024\002\000\b\000\000\000\000\000\000\000\000\000\000\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\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\016\000D\000\244\001`\016\b\001\240\000B\b\000\006\193\024b\000\000\000\000\000\000\000\000\000\000\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\218P\b\180T7\226c\228\001l\007\208\020\000\0072\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\002\000\000\004\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\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\004\000\001\000\000\000\000\000\000\000\000\000\000\128\000\001\000\160\000\128\000\000\000\000\000\000\000\000\000\000\000\016\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\004@\015@\022\001\000\128\031\000\004 \128\000L1\134 \000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\029\165\004\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\001\000\000H\000\000\000\000\000\000\000\000\000 \000\000@\b\000 \000\001\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\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\002@\000\000\000\000\000\000\000\000\001\000\000\002\000@\001\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\016\000D\128\244\001`\016\b\001\240\000B\b\000\004\193\024b\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\128\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\000d \004@\n\001A1\194\0006\000`\n\000\003\024\002\000\000\000\000\000\000\000\000\000\000\t \000\000\168\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\000\017\000\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\000D\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\b\128\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\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\146\000\000\n\128\000\000\000\b\000\000\000\000\000P\012p\000\000\000\000\000\000\000\000\000\128\000\b\128\000\000\000\000\000\000\002H\000\016*\002@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\001H \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\000\000@\000\000\016\000\001\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@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004\000\000 \000\000\b\000\000\128\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 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\000\000\016\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@\030\128,\002\001\000>\000\b\001\000\000\188#\012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004\000\000 \000\000\b\000\000\128\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 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\000\000\016\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\016\002\002\000\000@\160\128\000\000\000\002\000\000\000\000\000\001\000\000\b\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\128\000@\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\b\000\128\000\000 @\000\000\000\128\000\000\000\000\000\001\129\000\016\000\000\004\004\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\128\001\000\000\128\000\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\000\001\000\000@\000\128\000\000\000\000\000\000\000\000\000\003\000\000\000\000\000\b\000\016\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\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\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\002\000\000\000\000\000\000\004\000\000\016\004\000\024\016\001\000\000\000@@\000\000\000\001\000\000\000\000\000\000\b\128\017@\002\004\b\144p \026\b\000\166\000\000 \001\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\000\000\000\000\000\004\000\000@\000\000\000\000@\000\000\000\192\001\129\000\016\000\000\004\004\000\000\000\000\016\000\000\000\000\000\000\136\001\020\000 @\137\007\002\001\160\128\n`\000\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\192\128\b\000\000\002\002\000\000\000\000\b\000\000\000\000\000\000D\000\138\000\016 D\131\129\000\208@\0050\000\001\000\b\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\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 \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\192\128\b\000\000\002\002\000\000\000\000\b\000\000\000\000\000\000D\000\138\000\016 D\131\129\000\208@\0050\000\001\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\001\000\003\000\000\000\000 \000\000\000\000\000\004\128\000\000\000\000 \000`\000\000\000\004\000\000\000\000\000\000\144\000\000\000\000\004\000\004\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\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\000\000\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\016\000\000\002\000\001\000\000\000\000\000\b\000\000\012\000\000\192\000\000(\184(\000\000\161\000\000\000\000\000\000\000\000\000\000\000\004\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\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\002\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\004@\000\000\000\000\b\000\000\000@\000\000\000\000\018\000\000\000\136\000\000\000\000\001\000\000\000\000\000\000\000\000\002\000\000\000\017\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\004\000\000@\016\000\128\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\001\016\000\000\000\000\002\000\000\000\016\000\000\000\000\004\128\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\b\000\000\128 \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\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\t\128\145@\002\005\002\144p \026\b\000\166\000 !!\001\016\018(\000@\160\018\014\004\003A\000\020\192\004\004 \000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020 \000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\019\001\"\128\004\n\005 \224@4\016\001L\000@BB\002 $P\000\129@$\028\b\006\130\000)\128\b\b@@L\004\138\000\016(\020\131\129\000\208@\0050\001\001\t\b\b\128\145@\002\005\000\144p \026\b\000\166\000 !\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\002E\000\b\016\nA\192\128h \002\152\000\128\132\132\004@H\160\001\002\128H8\016\r\004\000S\000\016\016\128\1280\000\003\000\000\000\162\224\160\000\002\132\000\000\000\000\000\000\014\000\000p\n\b\028\\\016\000\000P\000\000\000\000\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\b\004 \000\000\b\016\000\128\000\000@\000\000\000B\000\160\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\016\000\000\128\000\000@\000\000\000\000\000\000\000\000\001\000\000\016&\002w@\b\020\170A\192\176h\"\002\216\b\168\132\212\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\016\b@\000\000\016 \001\000\000\000\128\000\000\000\132\001@\006\000\000\000\000\000\020\000\000\128\000\000\000\000\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\002\000\000 \b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000\132\000\000\001\002\000\016\000\000\b\000\000\000\b@\020\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000 \000\002\000\000\002\000\000\000\000\000\b\000\000\000\000\000\000\004\000\000\000\000\000\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\006\000\000`\000\000\020\\\020\000\000P\128\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\128\000\000Qp@\000\001@\000\000\000\000\000\000\t\128\017@\002\004\002\144p \026\b\000\166\000 !\001\0010\018(\000@\160R\014\004\003A\000\020\192\004\004$ \000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\000\152\001\020\000 @)\007\002\001\160\128\n`\002\002\016\016\019\001\"\128\004\n\005 \224@4\016\001L\000@BB\000\000\000\000\000\000\000\000\004\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\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\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\148\129\016 \128'\004\205\200\001\220\001\128\000\000\b \000r\144\"\004\016\004\224\152\185\000;\1280\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202@\b\016@\019\130b\228\000\238\000\192\000\000\004\016\000D\000\138\000\016 \004\131\001\000\208@\0050\000\001\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000@\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\200@\b\128\020\002\130c\132\000l\000\192\020\000\0060\005D\164\238\015P?\005\131\129\127\210\\%\189[\1279\158\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\000\000\000\000\000\000\000\000\000\000\000\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\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\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\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004@\n\001A1\194\0006\003`\n\000\003\024\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\128\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\000\000\000\000\000\000\000\000\000\000\000\000\b\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\016\000=\000X\004\002\000|\0000\002\000\0010F\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\247+\245\\\255_\253\253\195\219\253\183\255\251\224\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\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000 \000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\002\000\000\000!\000z\000\176\b\004\000\248\000 \004\000\002`\1400\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\001\232\002\192 \016\003\224\000\128\016\000\t\1300\192\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\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\000\000\002 \000\000\000\000\000\000\000\000\128\000\000\002\000@\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\000\000\"\000\000\000\000\000\000\000\000\b\000\000\000 \004\000\000\000D@\244\001`\016\b\001\240\001@\b\000\004\193\024`\000\000\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\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\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\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\018\000\000\000\000\000\000\000\000\000\b\000\000\016\002\000\b\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\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\016\000\004\128\000\000\000\000\000\000\000\000\002\000\000\004\000\128\002\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\137\001\232\002\192 \016\003\224\000\132\016\000\t\1300\196\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\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\002\000\000\000\000\000\000\000\000\000\001\000\000\002\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\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\002\000\000\128\000\000\000\000\000\000\000\000\000@\000\000\128P\000@\000\000\000\000\000\000\000\000\000\000\000\b\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\002 \007\160\011\000\128@\015\128\002\016@\000&\024\195\016\000\000\000\000\000\000\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\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000 \000\b\000\000\000\000\000\000\000\000\000\004\000\000\012\001\000\004\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\002\000\000\000\000\000\000\000\000\000\001\000\000\003\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\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\b\128\030\128,\002\001\000>\000\bA\000\000\216#\012@\000\000\000\000\000\000\000\000\000\000\000\b\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\003\002\000 \000\b\b\016\000\000\000 \000\000\000\000\000\000`@\004\000\000\001\001\002\000\000\000\004\000\000\000\000\000\000\012\b\000\128\000\000 \000\000\000\000\128\000\000\000\000\000\000\000\002\000\000\000\004\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\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000 \000\001\000\000\000@\000\004\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\004\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\016\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\000\000\000\000\000\000\000\000\000\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y?\165E\139MS~g>\192V\192\127\153@\000\227 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000 \002\002\000\000\128\129\000\000\000\002\000\000\000\000\b\000\006\004\000@@\000\016\016 \000\000\000@\000\000\000\000\000\000\192\128\b\000\000\002\002\004\000\000\000\b\000\000\000\000\000\000\024\016\001\000\000\000@@\000\000\000\001\000\000\000\000\000\000\b\128\017@\002\004\b\144p \018\b\000\166\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\b\000\128\000\000 @\000\000\000\128\000\000\000\000\000\001\129\000\016\000\000\004\004\000\000\000\000\016\000\000\000\000\000\000\136\001\020\000 @\137\007\002\001 \128\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\128\b\000\002\000\004\000\000\000\000\000\000\000\000\000\000\b\000\000\001\000\000\016\000\128\000\000\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\000\000@\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016\002A\128\128H \002\216\000\000\128\000\000\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\136\001\020\000 P\t\007\002\001 \128\n`\000\002\001\000\017\000\"\128\004\b\001 \192@$\016\001L\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\016\000\000\000@\000\128\000\000\000\000\000\000\000\000\000\003\000\002\000\000\000\b\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\001\000@\004@\b\160\001\002\000H0\016\t\004\000S\000\000\016\000\128\136\001\020\000 @\t\004\002\001 \128\n`\000\002\000\016\006\000\000\000\000\000\016\000 \000\000\000\000\000\000\000\000\000\000\192\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\128\000\002\000\128\b\128\017@\002\004\000\144` \018\b\000\166\000\000 \001\001\016\002(\000@\128\018\b\004\002A\000\020\192\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\128\000\000\000\000\000\001\000\000\004\001\000\017\000\"\128\004\b\001 \192@$\016\001L\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\207\177\016 W\225\180\000\b`\224\001\237\028\011\001@hO\233Qj\211T\223\153\207\176\021\176\031\224P\000x\200\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\128\000\004\000\000\000\000\000@\000\000\000\000\000\000\"\004\016#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\243\236D\b\021\248m\000\002\0248\000{G\002\192P\026\019\250TZ\180\2137\230s\236\005l\007\248\020\000\0302\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\016\000\000\000\000\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\"\000E\000\b\024\002A\000\128H \002\152\000\000\128\002\001\129\016\016\016\002\005\004\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\020\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\128\004\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\000@\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\000\000\000@\000\000 \000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\136\001\020\000 B\t\007\002\193 \128\011`\002\002\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\004\000\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\129\017@\002\004\000\144` \018\b\000\166\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016\002A\128\128H \002\152\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 B\t\007\002\193 \128\011`\002\002\002\000\002@\000\000@\000\016\0000\000\000\000\002\000\000\000\000\000\000H\000\000\000\000\002\000\006\000\000\000\000@\000\000\000\000\000\t\000\000\000\000\000@\000@\000\000\000\b\000\000\000\000\000\b\128\017@\002\132\000\144p \018\b\000\182\000\000`\000\000$\000\000\000\000\001\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\002\000\000\004@\b\160\001\002\000H8\016\t\004\000S\001\000\016\128\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\001\000\000\002 \004P\000\129\000$\028\b\004\130\000)\128\000\b\000\000D\000\138\000\016 \004\131\001\000\144@\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\018\014\004\002A\000\020\192\000\004\000\000\"\000E\000\b\016\002A\128\128H \002\152\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\248\001\023\128p@\227\228\130\001\002\128\n\000\000\002\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\004\000\000\000\000\000\000\000\000\000\000\132\000\000\001\000\000\016\000\192\000\000\000\000\000\000\000\000\000\016\000\000\000 \000\002\000\024\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000@\003\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\128\000\000\000\000\000\000\000\000\000\004\000\000$\128\000\128\000\000\001\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\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\002H\000\b\000\000\000\016\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\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\001\000\000\000\000\000\002\000\000@\000\128\005\016\016\000\000\000\000\000\000\000\000\000\002\000\000\016\000\000\n\004\020\001\000\000\000\000\128\b\000\000\000@\000\002\000\000\001@\130\000 \000\000\000\016\001\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\128\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\004\000\000 \000\000\016\b \002\000\000\000\001\000\016\000\000\001\000\000\000\000\000\128 \001\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\016\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\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\016\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\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\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\016\000\000\128\000\000@ \224\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\000\000\128\000\000 \000\000\016\000\128\000\000\000\000\000\000\000\000\000\016\000\000\004\000\000\002\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\b\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\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\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\b\000\000@\000\000 \016`\004\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\004\000\000\128\001\000\n `\000\000\000\000\000\000\000\000\000\000\128\000\016\000 \001D\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\002\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\001\000\000@\000\000\000\000\000\000\004\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\b\000\000\000\002\000\000\000\000 \000\004\000\b\000Q\001\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\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\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\192\000\014\001@\003\139\130\000\000\n\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\001\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\004@\n\160\001\002\016H8\018\t\004\000[\000\016\016\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\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\128\000\000\000\b\000\001\000\002\000\020@@\000\000\000\000\000\000\000\000\000\b\128\021@\002\004 \144p$\018\b\000\182\000 \001\001\000\000\b\000\000\004\002\014\000\128\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\003\128\000\028\002\128\007\023\012\000\000\020\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\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\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000@\000\002\000\000\001\000\131\128`\000\000\000\016\001\000\000\000\b\000\000@\000\000 \016`\004\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\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\004\000\000\002\001\006\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\002\000\000\001\000\130\000 \000\000\000\016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\018\014\004\002A\000\020\192\000\004\000 \"\000E\000\b\016\002A\000\128H \002\152\000\000\128\004\b\000\000\000\000\000\001\000\012\000\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\004\000\016\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\128\000\000\000\000\001\000\000 \000@\002\136\b\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\018\014\004\002A\000\020\192\000\004\000 \"\000E\000\b\016\002A\000\128H \002\152\000\000\128\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\004\0000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\128\002\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\002\000\000\000\000\000\000\000\000\000\000\000\000e \005\b\128\tA1R\000w\000b\000\000\n\b\000\028\166\016\143\164\027<\166.O\143\226\012\192\128\006K\203\000\128\000\016\000 \005D\004\000\000\000\004\000\000\000\000\000\000\128\000\004\000\000\002\129\005\000\192\000\000\000 \002\000\000\000\016\000\000\128\000\000P \128\024\000\000\000\004\000@\000\000\002\000\000\016\000\000\b\004\016\003\000\000\000\000\128\b\000\000\000\128\000\000\000\000@\016\000\128\000\000\000\000\000\000\000\004\000\000\000\000\000\000\b\002\000\016\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\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\001\000\000$\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\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\128\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\000\000\000\128A\1280\000\000\000\b\000\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\128 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\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\128\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\001\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\128\000\004\000\000\002\001\007\000\192\000\000\000 \002\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\004\000\000\144\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\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\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000@\000\000 \001\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\000\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\001\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\002\000\000\000\000\000\000\000\000\000\000\000\000e \005\b\128\tA1R\000w\000b\000\000\n\b\000\030\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\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\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\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\001\029\165\000\139EC~&>@\022\192}\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\016\000\000\128\000\000@ \192\024\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\128\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\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\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\128\000\001\192\000\014\001@\003\139\130\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\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000e \005\b\128\tA1R\000w\000b\000\000\n\b\000\030\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\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\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\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\001\029\165\000\139EC~&>@\022\192}\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\142\210\128E\162\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000@\000\002\000\000\001\000\131\000`\000\000\000\016\001\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\b\001Q\003\000\000\000\001\000\000\000\000\016\000\004\000\000\128\001\000* `\000\000\000 \000\000\000\000\000\000\128\000\016\000 \005D\004\000\000\000\004\000\000\000\000\000\000\016\000\002\000\004\000\168\128\128\000\000\000\128\000\000\000\000\000\014R\004@\198\000\156\0197 \007p\006\000\000\000 \128>}\136\129\002\191\r\160\000C\007\000\015h\224X\n\003@9H\017\002\b\002pL\220\128\029\192\024\000\000\000\130\000\007)\002 A\000N\t\139\144\003\184\003\000\000\000\016@\000\229 \004\b \t\1931r\000w\000`\000\000\002\b\000\000\000\000\000\000\000\000\000\128\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\016\000\000\000\000\000\000\001\000\000\000\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\000\000\000\000\000\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\001\000\000 \000@\n\136\b\000\000\000\b\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\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\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\006R\000P\136\000\148\0195 \007p\006\000\000\000 \128\000\202@\n\017\000\018\130b\164\000\238\000\192\000\000\004\016\000\025H\001B \nPLT\128\029\192\024\000\000\000\130\000\001\000\000 \000@\n\136\b\000\000\000\b\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\128\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\186\145V\160eB\169\159\235\193;\128:e\002\007\140P\023R*\212\012\168U3\253x'p\007L\160@\241\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\170\000\016!\004\131\129`\144@\0050\001\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\"\000U\000\b\016\130A\192\176H \002\152\000\129\128\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\017\000*\128\004\bA \224X$\016\001L\000@\192\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\016\000\000\000\001\000\000 \000@\n\136\b\000\000\000\b\000\000\000\000\000\001\016\002\168\000@\132\018\014\005\130A\000\020\192\004\012\000\160\028\164\b\129\004\0018&.@\014\224\012\000\000\000A\000\003\148\128\016 \128'\004\197\200\001\220\001\128\000\000\b \000\000\000\000\000\000\000\000\002\000\000\128\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\001\000\000\000\000\000\004\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\003\000\0008\004@\n\174\b\000\000(\000\000\000\000\000\000\0010\018\168\000@\160B\014\004\002A\000\022\192\000\012\000 \012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\128D\000\170\224\128\000\002\128\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\002\128\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\000\000\000\000\000\003\000\0008\004@\n\174\b\000\000(\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\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\001\128\000\028\002 \005W\004\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\002\000\000\000\000\000\020\012\016\000\000@\000\000\000\000\000\000\002`%P\000\129@\132\028\b\004\130\000-\128\000\b\000@L\004\170\000\016(\016\131\129\000\128@\005\176\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002\168\000@\128\002\014\004\002\000\000\022\192\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\002\000\000\016\000\000\b\004\028\003\000\000\000\000\128\b\000\001\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\001\000\000\b\000\000\004\002\012\001\128\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\128\000\016\000 \005D\004\000\000\000\004\000\000\000\000\000\000\128\000\004\000\000\002\001\007\000\192\000\000\000 \002\000\000@\016\000\000\128\000\000@ \192\024\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\0008\000\001\192(\000qp\192\000\001@\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\001\000\000\b\000\000\004\002\012\001\128\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\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\128\000\000@ \192\024\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\b\000\000@\000\000 \016@\012\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\"\000E\000\b\016\002A\192\128H \002\152\000\000\128\004\001\128\000\028\002 \005W\004\000\000\020\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\128\021\016\016\000\000\000\016\000\000\000\000\000\002 \004P\000\129\000$\028\b\004\130\000)\128\000\b\000@\025H\001B \002PLT\128\029\192\024\128\000\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\018\012\004\002A\000\020\192\000\004\000 \"\000E\000\b\016\002A\000\128H \002\152\000\000\128\004\b\000\000\000\000\000\001\000\012\000\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\004\000\016\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\025H\001B \002PLT\128\029\192\024\128\000\002\130\000\b\128\017@\002\004\000\144` \018\b\000\166\000\000 \001\001\016\002(\000@\128\018\b\004\002A\000\020\192\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\017\000\"\128\004\b\001 \128@ \000\001L\000\000@\000\001\202@\136\024@\019\130f\228\000\238\000\192\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\"\128\004\b\001 \128@$\016\001L\000\000@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\131\001\000\144@\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`@\004\004\000\001\001\002\000\000\000\004\000\000\000\000\000\000\012\b\000\128\000\000 @\000\000\000\128\000\000\000\000\000\001\129\000\016\000\000\004\004\000\000\000\000\016\000\000\000\000\000\000\136\001\020\000 @\137\007\002\001 \128\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000$\016\b\004\130\000)\128\000\b\000@\016\000\000\146\000\002P\000\128\004\000\000\000\000\000\000\004\000\002\000\000\018@\000J\000\000\000\128\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\"\000E\000\b\016\002A\128\128H \002\216\000\129\128\004\004@\b\160\001\002\000H0\016\t\004\000[\000\016\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\001 \192@$\016\001L\000@@\002\002 \004P\000\129\000$\016\b\004\130\000)\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\"\128\004\b\001 \192@ \000\001L\000\000@\000\002 \004P\000\129\000$\016\b\004\000\000)\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\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016\002A\000\128h \002\152\000\000\128\004\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\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\000D\000\138\000\016 \004\131\001\000\128\000\0050\000\001\000\000\b\128\017@\002\004\000\144@ \016\000\000\166\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\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@\000\000\000\b\000\000\000\b\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\001\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\"\000E\000\n\016\002A\192\128H \002\216\000\001\132\000\000\144\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\000\000\136\001\020\000 @\t\007\002\001 \128\n`\000\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000$\028\b\004\130\000)\128\b\b@@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\144` \018\b\000\166\000\000!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\017@\002\132\000\144p \018\b\000\182\000\000a\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\"\000E\000\b\016\002A\192\128H \002\152\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\007\002\001 \128\n`\002\002\016\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\000\000\000\000\000\000\000\000\000D\000\138\b\016 \004\131\001\000\144@\005\176\001\003\000\b\b\128\017@\002\004\000\144` \018\b\000\182\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016\002A\128\128H \002\152\000\128\128\004\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\002@\000\b\000\000\016\000\016\000\000\000\002\000\000\000\002\000\000H\000\000\000\000\002\000\002\000\000\000\000@\000\000\000@\000D\000\138\000\016 \004\131\001\000\144@\0050\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\000D@\n\160\001\002\132H8\016\t\004\000[\000\001\016\024\136\000\000@\000\000\016\000\001\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\200@\b\016\000\018\130b\132\000\238\000\192\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\004\000\001\176\000\000 \000\002\000\001\000\000\002\128\001\152\162\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\148\128\016 \000%\004\197\200\001\220\001\144\002\000\b \000\000\000\000\000\000\000\160\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\016\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\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\001\144\128\016 \000%\004\197\b\001\220\001\128\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\b\000\003`\000\000@\000\004\000\002\000\000\005\000\0031E\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000F\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\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\004\000\000\002\001\004\000\192\000\000\000 \002\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\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\n\137I\220\030\160~\011\007\002\255\164\184Kz\182\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\160\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\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\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\000\136\001@(&8@\006\192l\001@\000c\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\168\148\157\193\234\007\224\176p/\250K\132\183\171o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192\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\016\000\128\000\000\000 \000\000\000 \136\000\000\000\004\000\000\014\000\000p\n\000\028\\\016\000\000P\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\004\000\000\000\000\000\000\003\000\0000\000\000\n.\024\000\000(\128\000\004\000\000\000\000`\000\006\000\000\001E\193\000\000\005\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\016\000\128\000\000\000 \000\000\000\000\136\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000Q\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\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\003\128\000\028\002\128\007\023\004\000\000\020\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\002\000\000\000\000\000\000\000\000\000\000\000 \001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\014\000\002p\n\000\028\\\016\000\000P\000\000\000\000\002\128\000\000\000\000\000\002\000\128\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\001\000@\000\000\000\000\b\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\019@\"\128\004\b\017 \208@$\016\003L\000@@\002\002 \004P\000\161\000$\028\b\004\130\000)\128\b\024@@D\000\138\000\016 \004\131\001\000\144@\0050\001\001\b\b\001 \000\000\000\000\b\000\b\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\000\136\001\020\000 @\t\007\002\001 \128\n`\002\002\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\161\000$\028\b\004\130\000)\128\b\024@@\000\000\000\000\000@\016\000\000\000\000\002\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 \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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\138\000\016 \004\131\129\000\144@\005\176\001\001\000\b\001 \000\004\000\000\b\000\n\000\000\016\001\000\004\000\001\000\000$\000\000\000\000\001\000\001@\000\002\000 \000\128\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\000\000\000\000\000\000\000\000\016\004\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\000\000\000\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\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\016\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\144\000\030\002\128\007\023\005\000\000\028\000\128\002\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\000 \192@ \000\001L\000@@\002\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\001 \000\004\000\000\b\000\b\000\000\000\001\000\000\000\001\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000 \000\"\000E\000\b\016\000A\128\128@\000\002\152\000\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\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\b\128\017A\002\004\000\016` \016\000\000\182\000!`\001\001\016\002(\000@\128\002\012\004\002\000\000\022\192\004$\000 \028\128\000\240\020\0008\184(\000\000\224\004\000\016\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\001\006\002\001\000\000\n`\002\002\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\t\000\000 \000\000@\000@\000\000\000\b\000\000\000\b\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\001\000\001\016\002(\000@\128\002\012\004\002\000\000\020\192\000\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000\b \016\b\000\000S\000\000\016\000\000\016\000\000\002\000\000\000\001\000\000\000\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\000\000\000\000\004\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\b\128\017@\002\004\b\016` \016\000\000\166\002\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\129\006\002\001\000\000\n` \002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\128\b\000\002\000\004\000\000\000\000\000\000\000\000\000\000\b\000\000\001\000\000\016\000\128\000\000\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\000\000@\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016\000A\128\128@\000\002\216\000\004\128\000\000\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\136\001\020\000 P\001\007\002\001\000\000\n`\000\002\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\128\000\000\002\000\004\000\000\000\000\000\000\000\000\000\000\024\000\016\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\001@\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016 A\128\128@\000\002\152\b\000\128\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\128\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004D\000\138\000\016(\000\131\129\000\128\000\0050\000\001\001\136\b\128\017@\002\004\000\016` \016\000\000\166\000\000 \001\001\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000 \012\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\" \004P\000\129@\004\028\b\004\000\000)\128\000\b\012@D\000\138\000\016 \000\131\001\000\128\000\0050\000\001\000\b\b\128\017@\002\004\000\016@ \016\000\000\166\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\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\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\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\000\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000\b0\016\b\000\000S\001\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\002 \004P\000\129\000\004\024\b\004\000\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000 \000\004\n\b\000\000\000\000 \000\000\000\000\000\017\016\002(\000@\160\002\014\004\002\000\000\020\192\000\004\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000\b0\016\b\000\000S\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\016\000\000\000\000\000\000\000\000\000\128\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004D\000\138\000\016(\000\131\129\000\128\000\0050\000\001\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\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\002@\000\000@\000\016\0000\000\000\000\002\000\000\000\000\000\000H\000\000\000\000\002\000\006\000\000\000\000@\000\000\000\000\000\t\000\000\000\000\000@\000@\000\000\000\b\000\000\000\000\000\b\128\017@\002\132\000\016p \016\000\000\166\000\000`\000\002\016\000\000\004\000\000@\003\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\b\000\000\000\000\000\001\000\004\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\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\024\000\001\192\"\000Up@\000\001@\000\000\000\000\000\000\b\128\017@\002\004\000\016` \016\000\000\166\000\000 \001\001\016\002(\000@\128\002\b\004\002\000\000\020\192\000\004\000 @\000\000\000\000\000\b\000`\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\001\000\004\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\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\024\000\001\192\"\000Up@\000\001@\000\000\000\000\000\000\b\128\017@\002\004\000\016` \016\000\000\166\000\000 \001\001\016\002(\000@\128\002\b\004\002\000\000\020\192\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\017\000\"\128\004\b\000 \128@ \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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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 \004P\000\129\000\004\024\b\004\000\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000 \004\n\b\016\000\000\000 \000\000\000\000\000\000 \004\004\000\000\129A\002\000\000\000\004\000\000\000\000\000\000\004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000D@\b\160\001\002\128\b8\016\b\000\000S\000\000\016\024\000\136\001\020\000 @\001\004\002\001\000\000\n`\000\002\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000\004\016\b\004\000\000)\128\000\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\016@ \016\000\000\166\000\000 \001\000@\000\002H\000\t@\002\000\016\000\000\000\000\000\000\016\000\b\000\000I\000\001(\000\000\002\000\000\000\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\020\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\001\200\000\015\001@\003\139\130\128\000\014\000@\001\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\016` \016\000\000\166\000 \001\001\016\002(\000@\128\002\b\004\002\000\000\020\192\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\128\000\004\000\000\001\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\000\000@\000\000 \000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\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\002\000\000\000\000\000\000\000\000\000\000\000 \001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000 \001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019X\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\001\192\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\128\000\000@\000\000\000\000\000\000\000\016\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\128\000\000\000\000\002\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@\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\004\002\000\000\000\004\b\000\000\000\000 \000\000\000\000\000@\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\000\000\b\000\000\000\016\000\000\000\000\000\000\000\000\000\000\001\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\192\016\b\000\000\000\016 \000\000\000\000\128\000\000\000\000\001\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" 'p\000\129\200$\028\011\004\130 -\128\n\200M`8\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBk\" \005P\000\129\128$\028\b\004\130\000-\128\nH\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\017\016\002\168\000@\192\018\014\004\002A\000\022\192\005$\0002\000\000\016\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\b\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\t\000\000\b\000\000\004\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\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\001\000\132\000\000\001\002\000\016\000\000\b\000\000\000\b@\020\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000 \000\002\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\b@\000\000\016 \001\000\000\000\128\000\000\000\132\001@\006\000\000\000\000\000\020\000\000\128\000\000\000\000\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\002\000\000 \000\000 \000\000\000\000\000\128\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 \016\130\000\000!@\002\000\000\001\000\000\000A\b\002\128\"\000E\000\b\016\002A\128\128H \002\152\000\000\128\128\004@\b\160\001\002\000H0\016\t\004\000S\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\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\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\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\000D\000\130\000\016 \000\130\001\000\128\000\005 \000\001\001\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\144\000\000\000\000\005\000\004\000\000\000\000\128\000\000\000\000\000\000\b@>\128,\018\000\000>\004\b\001\002\000\024+,\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\001\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@\001\244\001`\144\000\001\240 @\b\016\000\193Y`\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002@\000\000\000\000\016\000\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\000\000\000\224\000\007\000\160\001\197\193\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\b\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\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\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\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\002\001\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 \016\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\001\001\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\004\000\b\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\002\000@@\000\b\020\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\004\000\000\000\000\000\b\000\000\128\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\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\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\000\000\000\000\000\000\004\000\000\000\000\001\000\002 A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\128\000\000\000\000\000\000\000\000\000\000\002\127J\131\022\154\166\252\206}\128\189\192\255\"\128\001\198@\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\0014\"\b\000@\129R\b\006\002A\0004\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\000\000\000\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\000\130\000\016 \004\130\001\000\144@\005 \016\001\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\0014\"\b\000@\129R\b\006\002A\0004\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\000\000\000\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\000\130\000\016 \004\130\001\000\144@\005 \016\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\004\000 @\t\004\002\001\000\000\n\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\004\000\000\000\000\000\b\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\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'\244\1681i\170o\204\231\216\011\220\015\242(\000\028d\004\254\149\006-5M\249\156\251\001{\129\254E\000\003\140\128\017\000 \128\004\b\001 \128@$\016\001H\000\000@\000\002 \004\016\000\129\000$\016\b\004\130\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\001\016\002\b\000@\128\018\012\004\002A\000\020\128\000\004\000\000\"\000A\000\b\016\002A\000\128H \002\144\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\002 \004\016\000\129\000$\024\b\004\130\000)\000\000\b\000\000D\000\130\000\016 \004\130\001\000\144@\005 \000\001\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\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") + (147, "'\244\1681i\170o\204\231\216\n\216\015\242(\000\028d\004v\148\002/\021\r\248\153\249\000[\001\244\005\000\001\140\129\243\236D\b\021\248m\000\002\0248\000{G\002\192P\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\127\173\205\235]\211\254g~\242^\224\255\137H\129\231 |\251\017\002\005~\027@\000\134\014\000\030\209\192\176\020\006\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\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\007\207\177\016 W\225\180\000\b`\224\001\237\028\011\001@hO\233Qj\211T\223\153\207\176\021\176\031\224P\000x\200\000\000\000\000\004\000\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\005\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000>\128,\018\000\000>\004\b\001\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001@\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\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\000\000\000\000\000\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\t\000\000\000\000\000\000\000\000\000\000\000\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\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\136\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\014R\000`\130\000\156_\023 \007p\006@\000\000 \128\001\202@\012\016@\019\139\226\228\000\238\000\200\000\000\004\016\0009H\001\130\b\002q|\\\128\029\192\025\000\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\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\000\000\000\000\0010\019\186\000@\165R\014\005\131A\016\022\192DD&\160\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\001\224\000\014\001A\003\139\130\000\000\n\000\000\000\000\000\000\000\b\004 \000\000\b\016\000\128\000\000@\000\000\000B\000\160\003\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\000\000\000\000\000\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\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\224\000\014\001A\003\139\130\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\002\000\000\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\017\016\002\168\000@\192\018\012\004\002A\000\022\192\005$\0000\012\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\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 8\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\137\128\157\192\002\007\"\144p,\018\b\128\182\000+a5\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\000\000\192\004\0008\184 \000\000\160\000\000\000\000\000\000\003\192\000\028\002\130\007\023\004\000\000\020\000\000\000\000\000\000\000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\002\001\b \000\002\020\000 \000\000\016\000\000\004\016\128(\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\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\002\"\000U\000\b\024\nA\128\128H \002\216\000\164\128\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\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000@!\000\000\000@\128\004\000\000\002\000\000\000\002\016\005\000\024\000\000\000\000\000P\000\002\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\000\000\000\000\000\000\000\000\000\b\000\000\128`\000\000\000\000\001@\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\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\b@\000\000\016 \001\000\000\000\128\000\000\000\132\001@\006\000\000\000\000\000\020\000\000\128\000\000\000\000\000\000\000\000 \000\001\000\000\000\128\000\000\000\000\000\000\000\000\002\000\000 \024\000\001\128\000\000Qp@\000\001D\000\000 \000\000\000\007\128\0008\005\004\014.\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\004\002\016\000\000\004\b\000@\000\000 \000\000\000!\000P\000\128\016\016\016\002\005\004\b\000\000\000\016\000\000\000\000\000\000\016\002\002\000\000@\160\129\000\000\000\002\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\" \005P\000\129B$\028\b\004\130\000-\128\128\200\012@D\000\130\000\016 \000\130\129\000\128\000\005\016\000\001\001\000\b\128\016@\002\004\000\016@ \016\000\000\162\000\000 \000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\002\"\002w\000\b\028\nA\192\128h \002\216\000\164\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\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\000D\000\138\000\016 \000\130\001\000\128\000\0050\000\001\000\000\003\000\000\018` J\000\016\000\128\000\000\000\000\000\000\128\000`\000\002H\004\t@\002\000\016\000\000\000\000\000\000\016\000\012\000\000I\000\129(\000\000\002\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\001\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\192\000\004\144\000\018\128\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\002H\000\b\000\000\000\016\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\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\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\128\000\000\000\000\000\000B\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\b@\000\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000 \000\002/\245\191\255k\190\127\223\255\222O\220\127\243*\020<\244\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\004\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\002\016\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000B\000\000\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\016\000\000\128\000\000@\000\000\000\000\000\000\000\000\001\000\000\016\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\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$\128\000\128\000\000\001\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\002\000\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\001\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\016\000\016\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\128\000\000\000\000\000\000\000\000\000\000\000D\000\138\b\016 \000\131\001\000\128\000\005\176\001\011\000\b\003\000\000\000\000\000\n\000\000@\000\000\000\000\000\000\000\000\017\016\002(\000@\192\018\012\004\002A\000\022\192\004$\0000\"\000E\000\b\016\000A\128\128@\000\002\216\000\132\128\004\003\144\000\030\002\128\007\023\005\000\000\028\000\128\002\000\000\128\000\136\001\020\000(@\137\007\002\001 \128\n`\"\006\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\200\000\014\001@\003\139\130\128\000\014\000@\001\000\000@\000<\000!\192( qp@\000\001@\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031>\196@\129_\134\208\000!\131\128\007\180p,\005\001\161?\165E\171MS~g>\192V\192\127\129@\001\227 #\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\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\218P\b\188T7\226g\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L\252\128-\128\250\002\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\001@\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\001 \000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\002\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\002\000\007\000\0018\005\000\014.\b\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\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\001\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\160\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\002\001\000\000\000\000\004\000\000\000\004\016\000\000\000\000\128\000\000\192\000\012\000\000\002\139\130\000\000\n\000\000\000\000\000\000\004L\004\238\000\0169\020\131\129`\208D\005\176\001Y\t\172\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\000\000\000\000\000 \000\000\000\000\000\000\000\b\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\000\000\000\000\005\003\004\000\000\016\000\000\000\000\000\000\000p\000\003\128P@\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\017\016\003\184\000@\228R\014\005\130A\016\022\192\005d$\176\000\000\000\000\000\000\000\000\000\000\000\000\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\136\001\220\000 r\t\007\002\193 \136\011`\002\178\018X\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\006\000 \001\197\193\000\000\005\000\000\000\000\000\000\000\030\000\000\224\020\0168\184 \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\000\128\000\000\002\000\000\000\000\000\004\000\000\000\000\016\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\000\000\000\000\000\000\000\000\000\000\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000 \016\128\000\000 @\002\000\000\001\000\000\000\001\b\002\128\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\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\002\001\b\000\000\002\004\000 \000\000\016\000\000\000\016\128(\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\004\000\000 \000\000\016\000\000\000\000\000\000\000\000\000@\000\004\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000\240\000\007\000\160\129\197\193\000\000\005\000\000\000\000\000\000\000\000\000\000@\000\000 \000\000\000\000\000\000\000\b\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\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\002\000\000\003\000\000\000\000\000\n\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\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\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\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\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@\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBK\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\128\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\146\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200IdL\004\238\000\0169\020\131\129`\144D\005\176\001Y\t\172\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\0170\019\184\000@\228R\014\005\130A\016\022\192\005l&\176\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D\192N\224\001\003\145H8\022\t\004@[\000\021\144\154\192\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\136\128\157\192\002\007 \144p,\018\b\128\182\000+!5\128`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002&\002w\000\b\028\138A\192\176H\"\002\216\000\173\132\214\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\152\t\220\000 r)\007\002\193 \136\011`\002\178\019Y\019\001;\128\004\014E \224X$\017\001l\000VBk\"`'p\000\129\200\164\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\146\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d$\176\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\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\016\000\000\024\000\000\000\000\000P\000\002\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\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\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\0000\000\000\000\000\000\160\000\004\000\000\000\000\000\000\000\000\001\000\000\b\000\000\004\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\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\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\004\002\016\000\000\004\b\000@\000\000 \000\000\000!\000P\001\128\000\000\000\000\005\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\b\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000@!\000\000\000@\128\004\000\000\002\000\000\000\002\016\005\000\024\000\000\000\000\000P\000\002\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\000\000\000\000\000\000\000\000\000\b\000\000\128\000\000\128\000\000\000\000\002\000\000\000\000\000\000\001\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\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\128\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\004\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\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\001\000\000\000\000\000\000\000\000\000\000\000\016\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\146\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\146\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\016\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\146\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\146\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000\240\000\007\000\160\129\197\193\000\000\005\000\000\000\000\000\000\000\000\000\000@\000\000 \000\000\000\000\000\000\000\b\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\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\002\000\000\000\000\000\000\000\000\000\000\000 \001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!%\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\018X\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!%\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\018X\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000 \001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!%\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\018X\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\238\000\0169\004\131\129`\144D\005\176\001Y\t\172\136\128\029\192\002\007 \144p,\018\b\128\182\000+!%\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000D@\014\224\001\003\144H8\022\t\004@[\000\021\144\154\200\136\001\220\000 r\t\007\002\193 \136\011`\002\178\018X\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\146\192\000\000\000\000\000\016\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\b\004\000\000\000\000\016\000\000\000\000@\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\000\000\016\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\128@\000\000\000\001\000\000\000\000\004\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\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\0008\000\001\192(\000qp@\000\001@\000\000\000\000\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\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\001\000\000\128\000\000\016\000\000\000\128\000\000\000\001\000\000\224\000\007\000\160\001\197\193\000\000\005\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\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\016\000\000\000\000\001\000\000\000\b\000\000\000\000\016\b\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000@\000\000\000\000\004\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\000\001\000\000\000\000\000\016\000\000\000\128\000\000\000\001\004\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\002\000\000\000\000\004\000\000\000\000\128\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\002\000\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\016\000\000\000\b\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\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\000\000\000\000\000\000\000\000\000\000\000\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\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\0002\000\000\000\000\000@\000\000\000\000@\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\200\000\000\000\000\001\000\000\000\000\001\000\000 \000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\003 \000\000\000\000\004\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\b\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\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\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\000d \004@\n\001A1\194\0006\003`\n\000\003\024\000\012\132\000\136\001@(&8@\006\192\012\001@\000c\000\004\000\000 \016\000\020\b(\006\000\000\000\001\000\016\000\000\000\128\000\004\000\000\002\129\005\000\192\000\000\000 \002\000\000\000\016\000\000\128\000\000P \128\024\000\000\000\004\000@\000\000\000\202@\b\016\000\018\130b\228\000\238\000\200\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\002\128\007\023\004\000\000\020\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\016\000\000\000\202@\b\016\000\018\130b\228\000\238\000\200\001\000\004\016\000\000\000\000\000\000\000P\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\b\000\000\028\000\000\224\020\0008\184 \000\000\160\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\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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)\132#\232\006\203)\139\147\227\248\1310 \001\146\242\192\000\000\128\000\000\000\000\000\002\0000\000@\000\000\000\000\000\012\000\000\000\128\000\000\000@\000\000\000\000\000\000\000\000\000\001\128\000\000\000\000\000\000\b\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\000\000\000\000\000\000\000\000\000\000\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 \004\004\000\000\129A\000\000\000\000\004\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\0000 \002\000\000\000\128\129\000\000\000\002\000\000\000\000\000\000\006\004\000@\000\000\016\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\002\127J\131\022\154\166\252\206\253\128\173\128\255\018\128\001\198@O\233Pb\211T\223\153\207\176\021\176\031\226P\0008\200\000`\000\002L\004\t@\002\000\016\000\000\000\000\000\000\016\000\012\000\000I\000\129(\000@\002\000\000\000\000\000\000\002\000\001\128\000\t \016%\000\000\000@\000\000\000\000\000\000@\0000\000\001$\000\004\160\000\000\b\000\000\000\000\000\000\b\000\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\002 \004P@\129\000$\024\b\004\130\000-\128\b\024\000@D\000\138\000\016 \004\131\001\000\144@\005\176\001\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\018\012\004\002A\000\020\192\004\004\000#\231\216\136\016+\240\218\000\0040p\000\246\142\005\128\1604'\244\168\181i\170o\204\231\216\n\216\015\240(\000@\022\192}\001@\016c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\204\128\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\017\218PH\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\000\000\000\000\000\000\002\000\000\000\000\002\000\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000@\002\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\016\002 \005\000\160\152\225\000\027\0000\005\000\001\140\001\000\000\017\000\000\000\000\000\000\000\004\144\000 T\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\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\132\000\136\001@(&8@\006\192l\001@\000c\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\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\200@\b\128\020\002\130c\132\000l\000\192\020\000\0060\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000A\004\000\006R\000@\128\000\148\019\023 \007p\006@\000\000(\128\000\202@H\016\000\018\130b\228\000\238\000\200\000\000\004\016\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\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\136\000\000\000\000\000\000\000\000\000\001\000\000\004\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\002 \000\000\000\000\004\000\000\000\000\004\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000d \004\012\000\tA3B\000w\000`\000\000\002\b\000\012\132\000\129\000\001(&h@\014\224\012\000\000\000A\000\001\144\128\016 \000%\004\197\b\001\220\001\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\012\132\000\129\000\001(&(@\014\224\012\000\000\000A\000\000\128\000\000\000\000\001\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\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\000\000\000\000\000\000\000\000\000\000\000\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\025H\001\002\000\002PL\\\128\029\192\025\000 \000\130\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\002\128\007\023\004\000\000\020\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\025\b\001\002\000\002PLP\128\029\192\024\000\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\140\1646\161\016\005(&j@.\224\012P\016;UP\000\000\128\000 \000 \000\000\b\000\000\001\000\000\000\b\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\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\004e!\181\b\128)A3r\001w\000f\128A\218\170\128\004\000\000\000\000\000 \006(\000\000\192\000\000\000\000\000\000\001\148\130\016 \000%\004\197\200\001\220\001\144\000\000H \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\192\000\148\0197 \007p\006@\000\000 \128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004\016\000\025H\001\002\000\002PL\\\128\029\192\025\000\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\000FR\027@\128\002\148\0197 \023p\006h\000\025\170\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000l\000\000\b\000\000\128\000@\000\000\160\000f(\160\003)\000 @\000J\t\139\144\003\184\003 \004\000\016@\000\000\000\000\000\000\001@\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\000p\000\003\128P\000\226\224\128\000\002\128\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\000\000\000\000\003!\000 @\000J\t\138\016\003\184\003\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\b\000\003`\000\000@\000\004\000\002\000\000\005\000\0031E\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\130\000 \000\r\128\000\001\000\000\016\000\b\000\000\020\000\012\197\020\004e!\180\b\000)A3r\001w\000f\128\001\154\170\128\014\166\016\143\160\027,\166.O\143\226\012\192\128\006K\203\000\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\128\000\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\004\000\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\128\000\000\001@\000\000\000\000\000\000\000\000\b\000\000\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000@\000\002\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000@2\016\002\004\000\004\160\152\161\000;\1280\000\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\000\000\000\000\000\000\003!\000 @\000J\t\138\016\003\184\003\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\016\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\b\000\000\000\000\000\000 \003\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\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\016\000\000\000\000\000\000\b\193\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\016\000A\000\000\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\128\000\001\192\000\014\001@\003\139\130\000\000\n\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\000\012\132\000\129\000\001(&(@\014\224\012\000\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\027\000\000\002\000\000 \000\016\000\000(\000\025\138(\001\192\000\014\001@\003\139\130\000\000\n\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\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\128\0006\000\000\004\000\000@\000 \000\000P\0003\020P\000\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\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\004\000\000\000\000\000\016\000\000\000\000\000\000\b\129\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\004\129\000\001(&.@\014\224\012\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\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\002@\000\000\000\000\004\000\000\000\000\000\000\003!A\000\025H\t\002\000\002PL\\\128\029\192\025\000\000 \162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\006\192\000\000\128\000\b\000\004\000\000\n\000\006b\138\000\000\000@\000\000\000\000\001\000\000\000\000\000\000\000\136\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\004\000\000\000\000\000\000\002 A\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\016\000\000\000\000\000\000\b\129\004\000\000\001\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\002\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\b\000\000\000\000\000@\000\004\000\000\000\000\000\000\002 A\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\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\165\000\139\197C~&~@\022\192}\001@\000c #\180\160\017h\168o\196\207\200\002\216\015\160(\000\012d\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\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\000\000\000\000\000Gi@\"\241P\223\137\159\144\005\176\031@P\000\024\200\b\237(\004Z*\027\2413\242\000\182\003\232\n\000\003\025\001\029\165\000\139EC~&>@\022\192}\001@\000c #\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\n\187\217\222\190\229~\175\159\235\255\191\184{\127\182\255\255<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\160\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\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\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\000\136\001@(&8@\006\192l\001@\000c\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\025H\001\002\000\002PL\\\128\029\192\025\000\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\012\164\000\161\144\001(&j@\014\224\012\000\000\000A\000\001\148\128\020\"\000%\004\205H\001\220\001\128\000\000\b \0002\144\002\132@\004\160\152\169\000;\1280\000\000\001\004\000\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\001\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\128\000\002\000\128\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\128\000\000 \000\002\000\000\000\000\002\000\000\000\002\128\000\000\016\000\000\004\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\b\000\000\004\000\000\000\000\000\000\000\001\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\000\000\b\000\000\002\000\000 \000\000\000\000 \000\000\000(\000\000\001\000\000\000@\000\000\000\000\000\000\004\000\000\000\000\000D\000\170\000\016!\004\131\129`\144@\005\176\001\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002\168\000@\132\018\014\005\130A\000\022\192\004\004\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\b\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\128\003\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\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\b\016\000\018\130b\228\000\238\000\192\000\000\004\016\000\000\000\000\000\000\000P\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\b\000\000\028\000\000\224\020\0008\184 \000\000\160\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\000\000\128\000\000\006R\000@\128\000\148\019\023 \007p\006\000\b\000 \128\000\000\000\000\000\000\002\128\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\224\000\007\000\160\001\197\193\000\000\005\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\006B\000@\128\000\148\019\020 \007p\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\000\000\000\000\000\000\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\002\000\001\016 \128\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\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\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\002 A\000\025H\001\002\000\002PL\\\128\029\192\024\000 \000\130\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\003\128\000\028\002\128\007\023\004\000\000\020\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\025\b\001\002\000\002PLP\128\029\192\024\000\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\"\004\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\0002\144\002\004\000\004\160\152\185\000;\1280\000@\001\004\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\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\002\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\128\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\0002\016\002\004\000\004\160\152\161\000;\1280\000\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\128\000\000\000\000\128\000D\b \003!\000 @\000J\t\138\016\003\184\003\000\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\012\164\000\129\000\001(&.@\014\224\012\000\016\000A\000\000\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\128\000\001\192\000\014\001@\003\139\130\000\000\n\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\000\012\132\000\129\000\001(&(@\014\224\012\000\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\017\002\b\000\202@\n\017\000\018\130f\164\002\238\000\196\000\0024Q\128\016\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\229 \004\b \t\1931r\000w\000d\000\000\002\b\000\000\000\016\000\000\000\000\000@\000\000\000\000@\000#\004P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\004\000\000\000\b\000\000\000\000\000 \000\000\000\000 \000\017\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\128\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\000z\152B>\144l\242\152\185>?\1363\002\000\025/,\000\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000\002\128\000\000\000\000\000\000\000\000\016\000\000\024\000\000\000\000\000P\000\002\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\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\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\001\000\000\000\000\000\004\000\000\000\000\000\000\0020E\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\000\000\001\000\000\016\000\000\000\000\000\000\000\000\020\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\b\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000@\000\000\016\000\001\000\000\000\000\000\000\000\000\001@\000\000\b\000\000\002\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\000\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\128\000\000\000\000\002\000\000\000\000\000\000\001\024\"\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\016 \000%\004\197\b\001\220\001\128\000\000\b \000r\152B>\144l\242\152\185>?\1363\002\000\025/,\000\000\000\000\000\000\000\000\000\000\000\000\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;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\007)\002 c\004N\t\155\144\003\184\003 \000\000\016@\000`@\004\004\000\001\001\002\000\000\000\004\000\000\000\000\016\000\012\b\000\128\128\000 @\000\000\000\128\000\000\000\000\000\001\129\000\016\000\000\004\004\b\000\000\000\016\000\000\000\000\000\0000 \002\000\000\000\128\128\000\000\000\002\000\000\000\000\000\000\022\004\000@\000\000\016\016\000\000\000\000@\000\000\000\000\000\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\164\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\000\024\001!\000\000 P@\000\000\000\001\000\000\000\000\000\000\128\000\004\000\000\001\b\000\016\000\000\000\000\000\002\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\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\128\000\000@\b\b\000\001\002\130\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\016\000\000\004\000\000@\000\000\000\000\000\000\000\000@\000\000\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\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\" \005P\000\129@$\028\b\004\130\000-\128\000\136\012DD\000\170\000\016(\004\131\129\000\144@\005\176\000\017\001\b\136\128\021@\002\005\000\144p \018\b\000\182\000\002 !\0000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\012\000\000I\000\001(\000\000\002\000\000\000\000\000\000\002\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\001\000\000\016\000\000\014\000\000x\n\000\028\\\016\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\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\136\128\021@\002\005\000\144p \018\b\000\182\000\002 %\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000U\000\b\020\002A\192\128H \002\216\000\136\128\148D@\n\160\001\002\128H8\016\t\004\000[\000\017\016\016\128p\000\003\128P\000\226\224\128\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\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\004D\000\170\000\016(\004\131\129\000\144@\005\176\001\017\001\b\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\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\b\000\000\128\000\000\016\002\002\000\000@\160\128\000\000\000\002\000\000\000\000\000\001\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\004D\000\170\000\016(\004\131\129\000\144@\005\176\000\017\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\001\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\000D@\n\160\001\002\132H8\016\t\004\000[\001\001\144\024\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\b\000\000\000\000\000\000\000\000\000\000\000\000\001\000 \000\004\n\b\000\000\000\000 \000\000\000\000\000\017\016\002\168\000@\160\018\014\004\002A\000\022\192\000D\006\"\"\000U\000\b\020\002A\192\128H \002\216\000\b\128\132D@\n\160\001\002\128H8\016\t\004\000[\000\001\016\016\128\016\002\002\000\000@\160\128\000\000\000\002\000\000\000\000\000\001\017\000*\128\004\n\001 \224@$\016\001l\000\004@b\" \005P\000\129@$\028\b\004\130\000-\128\000\136\bDD\000\170\000\016(\004\131\129\000\144@\005\176\000\017\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\004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000D@\n\160\001\002\128H8\016\t\004\000[\000\001\016\016\128\000\000\000\000\000\000\000\000\000\000\000\000\001\000 \016\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\" \005P\000\129B$\028\b\004\130\000-\128\128\136\b@\b\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\017\016\002\168\000@\161\018\014\004\002A\000\022\192@D\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D@\n\160\001\002\128H8\016\t\004\000[\000\001\016\016\128\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\" \005P\000\129B$\028\b\004\130\000-\128\128\136\bD\000\000 \000\000\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\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000D@\n\160\001\002\128H8\016\t\004\000[\000\001\016\024\136\136\001T\000 P\t\007\002\001 \128\011`\000\"\002\017\017\000*\128\004\n\001 \224@$\016\001l\000\004@B \000\001\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\128\000\004\000\000\001\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\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\002\000\000\000\128\000\b\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\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000 \000\001\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\000Gi@\"\241P\223\137\159\144\005\176\031BP\000\024\200\b\237(\004Z*\027\2413\242\000\182\003\232J\000\003\025\001\029\165\000\139EC~&>@\022\192}\t@\000c \001\144\128\017\016(\005\004\207\b\000\216\001\128(\000\012`\0002\016\002 \005\000\160\153\225\000\027\0000\005\000\001\140\000\006B\000D\000\160\020\019\028 \003`\006\000\160\0001\128\000\200@\b\128\020\002\130c\132\000l\000\192\020\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213s\253\127\247\247\015o\246\223\255\239\128@\000\000\000\000\002\128c\128\000\000\000\000\000\000\000\000\002;N!\031\202\182\253L|\159/\132\250\131\128\012\215\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\237(\132Z*\027\2411\242\000\182\003\232\n\000\003\025\001\029\165\016\139EC~&>@\022\192}\001@\000c \001\129\000\016\016\000\004\004\b\000\000\000\016\000\000\000\000\000\0000 \002\000\000\000\128\129\000\000\000\002\000\000\000\000\000\000\006\004\000@\000\000\016\016\000\000\000\000@\000\000\000\000\000\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\000\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000`@\004\000\000\001\001\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\000D@\n\160\001\002\132H8\016\r\004\000[\000\0010\024\128\176 B\000\000\000\128\128\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\001\000\000\000\002\000\004\000\000\000\000\000\000\000\016\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000 \000\004\n\b\000\000\000\000 \000\000\000\000\000\016\000\000\128\000\000 \000\002\000\000\000\000\000\000\000\000\002\000\000\000\016\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\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\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\002\"\000U\000\b\020\"A\192\128h \002\216\b\t\128\196\000\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\001\000\000\000\000\000\000\000\004\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000 \000\001\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\000GiD\"\209P\223\137\143\144\005\176\031@P\000\024\200\b\237(\132Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\164\016\129\000\001(&.@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\004`\130\000p\000\003\128P\000\226\224\128\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\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\000\000\000\000\000\000\000\000\000\000\002H\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\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\n\187\217\222\190\229~\171\159\235\255\191\184{\127\182\255\255|\000\000\000\000\000\000\016\000\020\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\000\000\006\192\000\000\000\000\000\000\000\000\000\000\000\006\002\128\004v\148Z-\021\r\248\152\249\000[\001\244\005\000A\204\128\142\210\128E\226\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226g\228\001l\007\208\020\000\0062\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\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\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\018\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\001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250K\132\183\171o\2313\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\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\002\000\000\000\000\000\020\000\020\000\000\000\000\000\000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025H\001C \002PL\212\128\029\192\024\000\000\000\130\000\003)\000(D\000J\t\154\144\003\184\003\000\000\000\016@\000e \005\b\128\tA1R\000w\000`\000\000\002\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\020\"\000\165\004\197H\001\220\001\136\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\016\004\000\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\001\000\000\000\000\001\002\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\001\029\165\000\139EC~&>@\022\192}\001@\000c \001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\130\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\016@\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\000\000\000\000\000\000\000\000@\000\000\000\000@\000\"\004\016#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D@\160\020\019< \003`\006\000\160\0001\128\000\200@\b\128\020\002\130g\132\000l\000\192\020\000\0060\000\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\168\148\157\193\234\007\224\176p/\250K\132\183\171o\2313\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\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\218\206\241\245+\245\\\255\031\253\253\195\219\253\183\255\249\234\137I\220\030\160~\011\007\002\255\164\184Kz\182\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021w\179\189}\202\253W?\215\255\127p\246\255m\255\254x\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\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\000\000\000\000\000\000\012\132\000\136\001@(&8@\006\192\012\001@\000c\000U\222\206\245\247+\245\\\255_\253\253\195\219\253\183\255\251\2242\016\002 \005\000\160\152\225\000\027\0000\005\000\001\140\001W{;\215\220\175\213s\253\127\247\247\015o\246\223\255\239\128\000\000\000\000\000\002\000\002\128\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\000\000\006\192\000\000\000\000\000\000\000\000\000\000\000\006\002\128\004v\148Z-\021\r\248\152\249\000[\001\244\005\000A\204\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\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\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\n\137I\220\030\160~\011\007\002\255\164\184Kz\182\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213w\179\189}\202\253W?\215\255\127p\246\255m\255\254z\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\132v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\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\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004@\n\001A1\194\0006\003`\n\000\003\024\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\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\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\243\213\018\147\184=@\252\022\014\005\255Ip\150\245m\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\000\000\000\000\000\000\000\000\000\000\000\000\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\223\251\187\199\246\175\255s\255\127\255w?\239\162\223\255\247\190}\136\129\002\191\r\160\000C\007\000\015h\224X\n\003B;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\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\165\000\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004@\n\001A1\194\0006\003`\n\000\003\024\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\132\000\136\001@(&8@\006\192l\001@\000c\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004@\n\001A1\194\0006\003`\n\000\003\024\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\132\000\136\001@(&8@\006\192l\001@\000c\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004@\n\001A1\194\0006\003`\n\000\003\024\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\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\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\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\006B\000D\000\160\020\019\028 \003`\006\000\160\0001\128*%'pz\129\248,\028\011\254\146\225-\234\219\249\204\240\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\2409H\001\002\b\002pL\220\128\029\192\024\000\000\000\130\000\007)\000 A\000N\t\139\144\003\184\003\000\000\000\016@\000e0\132}\000\217e1r|\127\016f\004\0002^X\000\000\016\000\000\000\000\000@\000\000\000\000\000\000#\004P\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\144\002\132@\004\160\152\169\000;\1281\000\000%\005\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000@\000\004\000\000\000\000\004\000\000\000\005\000\000\000\000\000\000\b\000\000\000\000\000\000\000\128\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\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\000\016\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\002\000\000\000\002\128\000\000\000\000\000\004\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\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\218P\b\180T7\226c\228\001l\007\208\020\000\0062\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\016\000\000\000\000\016\000\002\000\020\000\000\000\000\000\000 \000\000\000\000\000\000\002\000\000\000\000\001\029\165\000\139EC~&>@\022\192}\001@\000c \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\128\000\000\000\000\000\000\000 \000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000@\000\004\000\000\000\000\004\000\000\000\005\000\000\000\000\000\000\b\000\000\000\000\000\000\000\128\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\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\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\002\000\000\000\002\128\000\000\000\000\000\004\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\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\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000H\002\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\b\000\000\000\n\000\000\000\000\000\000\016\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\001\192\000\014\001@\003\139\130\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\b\000\000\128\000\000\000\000\128\000\016\000\160\000\000\000\000\000\001\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\002\000\000@\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\128\000\b\000\000\000\000\b\000\000\000\n\000\000\000\000\000\000\016\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\004\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000]H\139B0\"T\207\213\128\221\192\029\176\000W\138\168\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\002\000\000\000\002\128\000\000\000\000\000\004\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\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\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\128\0008\005\000\014.\b\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\b\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\001\000\000\000\001@\000\000\000\000\000\002\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\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\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\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\b\000\001\000\n\000\000\000\000\000\000\016\000\000\000\000\000\000\001\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\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\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\002\000\000\000\002\128\000\000\000\000\000\004\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\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\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\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\016\000\002\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\001\000\000\000\001@\000\000\000\000\000\002\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\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\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\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\128\000\000\000\000\128\000F\b\160\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\002\000\000\000\002\128\000\000\000\000\000\004\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\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\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\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\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\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\b\000\004@\130\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\016\000\018\130b\228\000\238\000\192\001\000\004\016\000\000\000\000\000\000\000P\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\b\000\000\028\000\000\224\020\0008\184 \000\000\160\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\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@\b\016\000\018\130b\132\000\238\000\192\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\002\000\000\000\000\002\000\001\016 \128\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\004@\130\000\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\002\128\000\000\000\000\000\000\000\000\000\000\000\025H\001B \002PLT\128\029\192\024\128\000\018\130\128\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\002\000\000\000\002\128\000\000\000\000\000\004\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\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\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\128\0008\005\000\014.\b\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\b\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\001\000\000\000\001@\000\000\000\000\000\002\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\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\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\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\b\000\001\000\n\000\000\000\000\000\000\016\000\000\000\000\000\000\001\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\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\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\000\000\000 \000\002\000\000\000\000\002\000\000\000\002\128\000\000\000\000\000\004\000\000\000\000\000\000\000@\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\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\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\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\016\000\002\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\016\000\001\000\000\000\000\001\000\000\000\001@\000\000\000\000\000\002\000\000\000\000\000\000\000 \000\000\000\000\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\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\016\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\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\000\000\000\000\000\b\128\017@\002\004\000\144` \026\b\000\166\000\000 \001\001\016\002(\000@\132\018\012\005\131A\000\020\192\004\004\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\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\000#`z\000\176\b\004\000\248\000 \004\000\003a\1402;J-\022\138\134\252L|\128-\128\250\002\128 \230@\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\002\174\246w\175\185_\171\231\250\255\239\238\030\223\237\191\255\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\189\157\235\238W\234\249\254\191\251\251\135\183\251o\255\243\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\132\000\136\001@(&8@\006\192l\001@\000c\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\239gz\251\149\250\190\127\175\254\254\225\237\254\219\255\252\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\004\000\000\000\000\000(\000(\000\000\000\000\000\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213\243\253\127\247\247\015o\246\223\255\231\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\200\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000U\222\206\245\247+\245|\255_\253\253\195\219\253\183\255\249\228v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021w\179\189}\202\253_?\215\255\127p\246\255m\255\254y\029\165\000\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\002\000\002\128\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021w\179\189}\202\253_?\215\255\127p\246\255m\255\254y\029\165\000\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005]\236\239_r\191W\207\245\255\223\220=\191\219\127\255\158Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000d \004@\n\001A1\194\0006\003`\n\000\003\024\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\128\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230z\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001W{;\215\220\175\213\243\253\127\247\247\015o\246\223\255\231\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213w\179\189}\202\253_?\215\255\127p\246\255m\255\254y\029\165\000\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=W{;\215\220\175\213s\253\127\247\247\015o\246\223\255\239\170\239gz\251\149\250\174\127\175\254\238\225\237\244[\255\252\240\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\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\001\029\165\000\139EC~&>@\022\192}\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\000\000\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\002\000\002\128\000\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\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\001\029\165\000\139EC~&>@\022\192}\001@\000c \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\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000d \004@\n\001A1\194\0006\000`\n\000\003\024\002\162Rw\007\168\031\130\193\192\191\233.\018\222\173\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\132\000\136\001@(&8@\006\192l\001@\000c\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\242;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230y\029\165\000\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000TJN\224\245\003\240X8\023\253\005\194[\192\183\243\153\234\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\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\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\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\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000P\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\000H\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\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\021\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\012\132\000\136\001@(&8@\006\192\012\001@\000c\000TJN\224\245\003\240X8\023\253%\194[\213\183\243\153\2242\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\005D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\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\"\004\016#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\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\004\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003)\000 @\000J\t\139\144\003\184\003\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\001\144\130\017\000(\005\004\199\b\000\216\001\128(\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\017\218P\b\180T7\226c\228\001l\007\208\020\001\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\002\000\000\006\000\128\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\004\000\000 \000\000\000\000\000\000\000\000\000\128\000\001\128\160\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\024\n\000\b\000 @z\000\176\b\004\000\248\000!\004\000\003a\14009H\001\002\b\002pL\220\128\029\192\025\000\000\000\130\000 \000\001\000\000\000\000\000\000\000\000\000\004\000\000\004\004\001\000\229 \004\b \t\1933r\000w\000d\000\000\002\b\000\028\164\000\129\004\0018&.@\014\224\012\128\000\000A\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b \000\000\000\000\000\000\000\000\001\000\000\128\000\000\000\000\136\016@\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\128\000\004\000\000\000\000\000\000\000\000\000\016\000\0000\020\004\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\000@\000\000\000\000\000\000\000\000\001\000\000\003\001@A\000\004\b\015@\022\001\000\128\031\000\004 \128\000l1\142\003)\000 @\000J\t\139\144\003\184\003 \000\000\016@\000\000\000\000\000\000\000\000\002\000\001\000\000\000\000\001\016 \129\029\165\000\139EC~&>@\022\192}\001@\000c \001\144\128\017\000(\005\004\199\b\000\216\r\128(\000\012`\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\001\000\000\b\000\000\000\000\000\000\000\000\000 \000\000`(\b\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\016\000\000\128\000\000\000\000\000\000\000\000\002\000\000\006\002\128\130\000\b\016\030\128,\002\001\000>\000\bA\000\000\216c\028\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\000\000\000\000\000\000\000\000\004\000\002\000\000\000\000\002 A\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\002\000\000\016\000\000\000\000\000\000\000\000\000@\000\000\192P\016\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000 \000\001\000\000\000\000\000\000\000\000\000\004\000\000\012\005\001\004\000\016 =\000X\004\002\000|\000\016\130\000\001\176\1988\000\000\000\000\000\000\000\000@\000 \000\000@\000\"\004\016#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000 \000\001\000\000\000\000\000\000\000\000\000\004\000\000\012\005\001\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\002\000\000\016\000\000\000\000\000\000\000\000\000@\000\000\192P\016@\001\002\003\208\005\128@ \007\192\001\b \000\027\012c\145\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\025\b\001\016\002\128PLp\128\r\128\216\002\128\000\198\000\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000@\004\000\128\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006B\000D\000\160\020\019\028 \003`6\000\160\0001\128\000\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\004\000\000 \000\000\000\000\000\000\000\000\000\128\000\001\128\160 \012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\002\000\000\000\000\000\000\000\000\000\b\000\000\024\n\002\b\000 @z\000\176\b\004\000\248\000!\004\000\003a\140p\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\000@\000\000\000\000\000\000\000\000\000\000\000\002\000 \004\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\0002\016\002 \005\000\160\152\225\000\027\001\176\005\000\001\140\000\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000 \000\001\000\000\000\000\000\000\000\000\000\004\000\000\012\005\001\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\002\000\000\016\000\000\000\000\000\000\000\000\000@\000\000\192P\016@\001\002\003\208\005\128@ \007\192\001\b \000\027\012c\128\004 \000z\000\176\b\004\000\248\000 \004 \002`\1402;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\003!\000\"\000P\n\t\142\016\001\176\027\000P\000\024\192\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\002\000\000\016\000\000\000\000\000\000\000\000\000@\000\000\192P\016\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000 \000\001\000\000\000\000\000\000\000\000\000\004\000\000\012\005\001\004\000\016 =\000X\004\002\000|\000\016\130\000\001\176\1988\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\002\000\000\128\000\000\000\000\000\000\000\000\000@\000\000\192\016\000@\000\000\000\000\000\000\000\000\000\000\000\b\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\128\002 \007\160\011\000\128@\015\128\002\016@\0006\b\195\016\000\000\000\000\000\000\000\000\000\000\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\142\210\128E\162\161\191\019\031 \011`>\128\160\0009\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\128\000 \000\000\000\000\000\000\000\000\000\016\000\000 \020\000\016\000\000\000\000\000\000\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\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000 \000\b\000\000\000\000\000\000\000\000\000\004\000\000\b\005\000\004\000\000\000\000\000\000\000\000\000\000\000\000\128\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\000\"\000z\000\176\b\004\000\248\000!\004\000\002a\1401\000\000\000\000\000\000\000\000\000\000\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\237($Z*\027\2411\242\000\182\003\232\n\000\003\025\000\012\132\000\136\001@(&8@\006\192l\001@\000c\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\b\000\002@\000\000\000\000\000\000\000\000\001\000\000\002\000@\001\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\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\018\000\000\000\000\000\000\000\000\000\b\000\000\016\002\000\b\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\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\128\002$\007\160\011\000\128@\015\128\002\016@\000&\b\195\016\000\000\128\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\004\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\003!\000\"\000P\n\t\142\016\001\176\003\000P\000\024\192\016\000\000\000\000\000\000\000\000\000\000I\000\000\005@\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\136\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\002 \000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\128\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\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\144\000\000T\000\000\000\000@\000\000\000\000\002\128c\128\000\000\000\000\000\000\000\000\004\000\000D\000\000\000\000\000\000\000\018@\000\129P\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\018\147\184=@\252\022\014\005\255Ip\150\245m\252\230x\000\000\000\000\000\000\000\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\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\nA\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\002\000\000\000\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\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000 \000\001\000\000\000@\000\004\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\001\000 \000\004\n\b\000\000\000\000 \000\000\000\000\000\016\000\000\128\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\000B\000\244\001`\016\b\001\240\000@\b\000\005\225\024`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000 \000\001\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\001\000 \000\004\n\b\000\000\000\000 \000\000\000\000\000\016\000\000\128\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\128\016\016\000\002\005\004\000\000\000\000\016\000\000\000\000\000\b\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\002\000\004\000\002\000\000\000\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`@\004\000\000\001\001\002\000\000\000\004\000\000\000\000\000\000\012\b\000\128\000\000 \000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\004\000\b\000\004\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\192\000\000\b\000\002\000\004\000\000\000\000\000\000\000\000\000\000\024\000\000\000\000\000@\000\128\000\000\000\000\000\000\000\000\000\003\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\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\016\000\000\000\000\000\000 \000\000\128 \000\192\128\b\000\000\002\002\000\000\000\000\b\000\000\000\000\000\000D\000\138\000\016 D\131\129\000\208@\0050\000\001\000\b\001\000 \000\004\n\b\000\000\000\000 \000\000\000\000\000\016\000\000\000\000\000 \000\002\000\000\000\000\002\000\000\000\002\000\000\000\000\000\000\004\000\000\000\000\000\000\000@\000\000\000\000\001\129\000\016\000\000\004\004\000\000\000\000\016\000\000\000\000\000\000\136\001\020\000 @\137\007\002\001\160\128\n`\000\002\000\017\000\000\000\000\000\002\000\000 \000\000\000\000 \000\000\000\000\000\192\128\b\000\000\002\002\000\000\000\000\b\000\000\000\000\000\000D\000\138\000\016 D\131\129\000\208@\0050\000\001\000\b\000\000\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\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 \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\192\128\b\000\000\002\002\000\000\000\000\b\000\000\000\000\000\000D\000\138\000\016 D\131\129\000\208@\0050\000\001\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\001\000\003\000\000\000\000 \000\000\000\000\000\004\128\000\000\000\000 \000`\000\000\000\004\000\000\000\000\000\000\144\000\000\000\000\004\000\004\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\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\000\000\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\016\000\000\002\000\001\000\000\000\000\000\b\000\000\012\000\000\192\000\000(\184(\000\000\161\000\000\000\000\000\000\000\000\000\000\000\004\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\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\002\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\000\000\002\000\000\001\000\000\000\000\000\000\000\000@\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\000\004@\000\000\000\000\b\000\000\000@\000\000\000\000\018\000\000\000\136\000\000\000\000\001\000\000\000\000\000\000\000\000\002\000\000\000\017\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\004\000\000@\016\000\128\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\002\000\000\000\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\000\000\000\000\000\000\001\000\000\016\004\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\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\0010\018(\000@\160R\014\004\003A\000\020\192\004\004$ \"\002E\000\b\020\002A\192\128h \002\152\000\128\132\004\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\132\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\002`$P\000\129@\164\028\b\006\130\000)\128\b\bH@D\004\138\000\016(\004\131\129\000\208@\0050\001\001\b\b\t\128\145@\002\005\002\144p \026\b\000\166\000 !!\001\016\018(\000@\160\018\014\004\003A\000\020\192\004\004 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\192H\160\001\002\001H8\016\r\004\000S\000\016\016\144\128\136\t\020\000 P\t\007\002\001\160\128\n`\002\002\016\016\006\000\000`\000\000\020\\\020\000\000P\128\000\000\000\000\000\001\224\000\014\001A\003\139\130\000\000\n\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\001\000\132\000\000\001\002\000\016\000\000\b\000\000\000\b@\020\000`\000\000\000\000\001@\000\b\000\000\000\000\000\000\000\000\002\000\000\016\000\000\b\000\000\000\000\000\000\000\000\000 \000\002\004\192N\232\001\002\149H8\022\r\004@[\001\021\016\154\128\000\000\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\006\000\000`\000\000\020\\\020\000\000P\128\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\128\000\000Qp@\000\001@\000\000\000\000\000\000\t\128\017@\002\004\002\144p \026\b\000\166\000 !\001\0010\018(\000@\160R\014\004\003A\000\020\192\004\004$ \000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\000\152\001\020\000 @)\007\002\001\160\128\n`\002\002\016\016\019\001\"\128\004\n\005 \224@4\016\001L\000@BB\000\000\000\000\000\000\000\000\004\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\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\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\148\129\016 \128'\004\205\200\001\220\001\128\000\000\b \000r\144\"\004\016\004\224\152\185\000;\1280\000\000\001\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202@\b\016@\019\130b\228\000\238\000\192\000\000\004\016\000D\000\138\000\016 \004\131\001\000\208@\0050\000\001\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\b\000\000\000\000\000\000\000\000\000\002\000\128\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\n\137I\220\030\160~\011\007\002\255\164\184Kz\182\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\001Q);\131\212\015\193`\224_\244\023\to\002\223\206g\170%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\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\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\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\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\200@\b\128\020\002\130c\132\000l\006\192\020\000\0060\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\245D\164\238\015P?\005\131\129\127\208\\%\188\011\1279\158\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\180\160\017h\168o\196\199\200\002\216\015\160)\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\128\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000z\000\176\b\004\000\248\000`\004\000\002`\1400\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\171\189\157\235\238W\234\185\254\191\251\251\135\183\251o\255\247\192\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\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000@\000\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \004\000\000\000B\000\244\001`\016\b\001\240\000@\b\000\004\193\024`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\003\208\005\128@ \007\192\001\000 \000\019\004a\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\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\000\000\004@\000\000\000\000\000\000\000\001\000\000\000\004\000\128\0002\144\002\006\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004P\000\000\000D\000\000\000\000\000\000\000\000\016\000\000\000@\b\000\000\000\136\129\232\002\192 \016\003\224\002\128\016\000\t\1300\192\000\001\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\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\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\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\000\128\000$\000\000\000\000\000\000\000\000\000\016\000\000 \004\000\016\000\000\128\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\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000 \000\t\000\000\000\000\000\000\000\000\000\004\000\000\b\001\000\004\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\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@\001\018\003\208\005\128@ \007\192\001\b \000\019\004a\136\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\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\002\000\000\004\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\202@\b\024\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\139\144\003\184\003 \000\000\017@\004\000\001\000\000\000\000\000\000\000\000\000\000\128\000\001\000\160\000\128\000\000\000\000\000\000\000\000\000\000\000\016\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\004@\015@\022\001\000\128\031\000\004 \128\000L1\134 \000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\164\000\129\128\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\000@\000\016\000\000\000\000\000\000\000\000\000\b\000\000\024\002\000\b\000\000\000\000\000\000\000\000\000\000\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\003)\000 `\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000E\000\016\000\004\000\000\000\000\000\000\000\000\000\002\000\000\006\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\017\000=\000X\004\002\000|\000\016\130\000\001\176F\024\128\000\000\000\000\000\000\000\000\000\000\000\016\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\006\004\000@@\000\016\016 \000\000\000@\000\000\000\000\000\000\192\128\b\000\000\002\002\004\000\000\000\b\000\000\000\000\000\000\024\016\001\000\000\000@@\000\000\000\001\000\000\000\000\000\000\000\000\004\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\000\000\000\000\000\000\000\004\000\128\128\000\016( \000\000\000\000\128\000\000\000\000\000@\000\002\000\000\000\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\b\000\000\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\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\000\000\001\000\000\016\000\000\000\000\000\000\000\000\020\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\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\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\001\000\000\000@\000\004\000\000\000\000\000\000\000\128\005\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\128\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\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\000\000@\000\000\016\000\001\000\000\000\000\000\000\000\000\001@\000\000\b\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\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\000e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s<\159\210\162\197\166\169\1913\159`+`?\204\160\000q\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\016\001\001\000\000@@\128\000\000\001\000\000\000\000\004\000\003\002\000 \000\b\b\016\000\000\000 \000\000\000\000\000\000`@\004\000\000\001\001\002\000\000\000\004\000\000\000\000\000\000\012\b\000\128\000\000 \000\000\000\000\128\000\000\000\000\000\004@\b\160\001\002\004H8\016\t\004\000S\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\004\000@\000\000\016\016 \000\000\000@\000\000\000\000\000\000\192\128\b\000\000\002\002\000\000\000\000\b\000\000\000\000\000\000D\000\138\000\016 D\131\129\000\144@\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000p\000@\004\000\001\000\002\000\000\000\000\000\000\000\000\000\000\004\000\000\000\128\000\b\000@\000\000\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\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\001 \192@$\016\001l\000\000@\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004D\000\138\000\016(\004\131\129\000\144@\0050\000\001\000\000\b\128\017@\002\004\000\144` \018\b\000\166\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\000\b\000\000\000 \000@\000\000\000\000\000\000\000\000\000\001\128\001\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\128\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\128 \002 \004P\000\129\000$\024\b\004\130\000)\128\000\b\000@D\000\138\000\016 \004\130\001\000\144@\0050\000\001\000\b\003\000\000\000\000\000\b\000\016\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\001\000@\004@\b\160\001\002\000H0\016\t\004\000S\000\000\016\000\128\136\001\020\000 @\t\004\002\001 \128\n`\000\002\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\128\000\002\000\128\b\128\017@\002\004\000\144` \018\b\000\166\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\231\216\136\016+\240\218\000\0040p\000\246\142\005\128\1604'\244\168\181i\170o\204\231\216\n\216\015\240(\000\128\160\0001\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\128\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\001\000\000\000\128A\1280\000\000\000\b\000\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\128 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\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\128\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\001\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\000\128\000\004\000\000\002\001\007\000\192\000\000\000 \002\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\004\000\000\144\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\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\001\029\165\000\139EC~&>@\022\192}\001@\000c \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\000\000\000@\000\000 \001\000\000\000\000\000\000\000\000\b\000\000\000\000\b\000\000\004\000 \000\000\000\000\000\000\000\000\000\000\000\000\001\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\002\000\000\000\000\000\000\000\000\000\000\000\000e \005\b\128\tA1R\000w\000b\000\000\n\b\000\030\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\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\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\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\001\029\165\000\139EC~&>@\022\192}\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\016\000\000\128\000\000@ \192\024\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\128\000\000 \000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\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\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\128\000\001\192\000\014\001@\003\139\130\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\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000e \005\b\128\tA1R\000w\000b\000\000\n\b\000\030\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\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\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\004\000\000\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\000\000\000\000\000\000\000\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\001\029\165\000\139EC~&>@\022\192}\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\142\210\128E\162\161\191\019? \011`>\128\160\0001\144\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000@\000\002\000\000\001\000\131\000`\000\000\000\016\001\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\b\001Q\003\000\000\000\001\000\000\000\000\016\000\004\000\000\128\001\000* `\000\000\000 \000\000\000\000\000\000\128\000\016\000 \005D\004\000\000\000\004\000\000\000\000\000\000\016\000\002\000\004\000\168\128\128\000\000\000\128\000\000\000\000\000\014R\004@\198\000\156\0197 \007p\006\000\000\000 \128>}\136\129\002\191\r\160\000C\007\000\015h\224X\n\003@9H\017\002\b\002pL\220\128\029\192\024\000\000\000\130\000\007)\002 A\000N\t\139\144\003\184\003\000\000\000\016@\000\229 \004\b \t\1931r\000w\000`\000\000\002\b\000\000\000\000\000\000\000\000\000\128\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\016\000\000\000\000\000\000\001\000\000\000\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\000\000\000\000\000\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\001\000\000 \000@\n\136\b\000\000\000\b\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\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\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\006R\000P\136\000\148\0195 \007p\006\000\000\000 \128\000\202@\n\017\000\018\130b\164\000\238\000\192\000\000\004\016\000\025H\001B \nPLT\128\029\192\024\000\000\000\130\000\001\000\000 \000@\n\136\b\000\000\000\b\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\128\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\186\145V\160eB\169\159\235\193;\128:e\002\007\140P\023R*\212\012\168U3\253x'p\007L\160@\241\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\170\000\016!\004\131\129`\144@\0050\001\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\"\000U\000\b\016\130A\192\176H \002\152\000\129\128\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\017\000*\128\004\bA \224X$\016\001L\000@\192\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\016\000\000\000\001\000\000 \000@\n\136\b\000\000\000\b\000\000\000\000\000\001\016\002\168\000@\132\018\014\005\130A\000\020\192\004\012\000\160\028\164\b\129\004\0018&.@\014\224\012\000\000\000A\000\003\148\128\016 \128'\004\197\200\001\220\001\128\000\000\b \000\000\000\000\000\000\000\000\002\000\000\128\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\001\000\000\000\000\000\004\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\003\000\0008\004@\n\174\b\000\000(\000\000\000\000\000\000\0010\018\168\000@\160B\014\004\002A\000\022\192\000\012\000 \012\000\000\192\000\000(\184 \000\000\160\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\128D\000\170\224\128\000\002\128\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\002\128\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\000\000\000\000\000\003\000\0008\004@\n\174\b\000\000(\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\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\001\128\000\028\002 \005W\004\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\002\000\000\000\000\000\020\012\016\000\000@\000\000\000\000\000\000\002`%P\000\129@\132\028\b\004\130\000-\128\000\b\000@L\004\170\000\016(\016\131\129\000\128@\005\176\000\001\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002\168\000@\128\002\014\004\002\000\000\022\192\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\002\000\000\016\000\000\b\004\028\003\000\000\000\000\128\b\000\001\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\001\000\000\b\000\000\004\002\012\001\128\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\128\000\016\000 \005D\004\000\000\000\004\000\000\000\000\000\000\128\000\004\000\000\002\001\007\000\192\000\000\000 \002\000\000@\016\000\000\128\000\000@ \192\024\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\0008\000\001\192(\000qp\192\000\001@\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\001\000\000\b\000\000\004\002\012\001\128\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\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\128\000\000@ \192\024\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\b\000\000@\000\000 \016@\012\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\"\000E\000\b\016\002A\192\128H \002\152\000\000\128\004\001\128\000\028\002 \005W\004\000\000\020\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\128\021\016\016\000\000\000\016\000\000\000\000\000\002 \004P\000\129\000$\028\b\004\130\000)\128\000\b\000@\025H\001B \002PLT\128\029\192\024\128\000\002\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\018\012\004\002A\000\020\192\000\004\000 \"\000E\000\b\016\002A\000\128H \002\152\000\000\128\004\b\000\000\000\000\000\001\000\012\000\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\004\000\016\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\025H\001B \002PLT\128\029\192\024\128\000\002\130\000\b\128\017@\002\004\000\144` \018\b\000\166\000\000 \001\001\016\002(\000@\128\018\b\004\002A\000\020\192\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\017\000\"\128\004\b\001 \128@ \000\001L\000\000@\000\001\202@\136\024@\019\130f\228\000\238\000\192\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\"\128\004\b\001 \128@$\016\001L\000\000@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \004\131\001\000\144@\0050\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`@\004\004\000\001\001\002\000\000\000\004\000\000\000\000\000\000\012\b\000\128\000\000 @\000\000\000\128\000\000\000\000\000\001\129\000\016\000\000\004\004\000\000\000\000\016\000\000\000\000\000\000\136\001\020\000 @\137\007\002\001 \128\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000$\016\b\004\130\000)\128\000\b\000@\016\000\000\146\000\002P\000\128\004\000\000\000\000\000\000\004\000\002\000\000\018@\000J\000\000\000\128\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\"\000E\000\b\016\002A\128\128H \002\216\000\129\128\004\004@\b\160\001\002\000H0\016\t\004\000[\000\016\016\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\001 \192@$\016\001L\000@@\002\002 \004P\000\129\000$\016\b\004\130\000)\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\"\128\004\b\001 \192@ \000\001L\000\000@\000\002 \004P\000\129\000$\016\b\004\000\000)\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\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016\002A\000\128h \002\152\000\000\128\004\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\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\000D\000\138\000\016 \004\131\001\000\128\000\0050\000\001\000\000\b\128\017@\002\004\000\144@ \016\000\000\166\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\000\000\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@\000\000\000\b\000\000\000\b\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\001\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\"\000E\000\n\016\002A\192\128H \002\216\000\001\132\000\000\144\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\000\000\136\001\020\000 @\t\007\002\001 \128\n`\000\002\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000$\028\b\004\130\000)\128\b\b@@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\004\000\144` \018\b\000\166\000\000!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\017@\002\132\000\144p \018\b\000\182\000\000a\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\"\000E\000\b\016\002A\192\128H \002\152\000\000\132\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\t\007\002\001 \128\n`\002\002\016\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\000\000\000\000\000\000\000\000\000D\000\138\b\016 \004\131\001\000\144@\005\176\001\003\000\b\b\128\017@\002\004\000\144` \018\b\000\182\000 \001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\000E\000\b\016\002A\128\128H \002\152\000\128\128\004\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\002@\000\b\000\000\016\000\016\000\000\000\002\000\000\000\002\000\000H\000\000\000\000\002\000\002\000\000\000\000@\000\000\000@\000D\000\138\000\016 \004\131\001\000\144@\0050\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\000D@\n\160\001\002\132H8\016\t\004\000[\000\001\016\016\136\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\200@\b\016\000\018\130b\132\000\238\000\192\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\004\000\001\176\000\000 \000\002\000\001\000\000\002\128\001\152\162\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000\001\148\128\016 \000%\004\197\200\001\220\001\144\002\000\b \000\000\000\000\000\000\000\160\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\016\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\000\000\004\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\001\144\128\016 \000%\004\197\b\001\220\001\128\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\b\000\003`\000\000@\000\004\000\002\000\000\005\000\0031E\000\000\000 \000\000\000\000\000\128\000\000\000\000\000\000F\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\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\004\000\000\002\001\004\000\192\000\000\000 \002\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\025H\001\003\000\002PL\220\128\029\192\025\000\000\000\138\000\003)\000 @\000J\t\155\144\003\184\003 \000\000\017@\000e \004\b\000\tA1r\000w\000d\000\000\002(\002\162Rw\007\168\031\130\193\192\191\232.\018\222\005\191\156\207\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\n\137I\220\030\160~\011\007\002\255\164\184Kz\182\254s<\006R\000@\192\000\148\0197 \007p\006@\000\000\"\128\000\202@\b\016\000\018\130f\228\000\238\000\200\000\000\004P\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\213\018\147\184=@\252\022\014\005\255Ap\150\240-\252\230x\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\000#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\160\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\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\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\000\136\001@(&8@\006\192l\001@\000c\000\001\148\128\0160\000%\004\205\200\001\220\001\144\000\000\b\160\0002\144\002\004\000\004\160\153\185\000;\1282\000\000\001\020\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128*%'pz\129\248,\028\011\254\130\225-\224[\249\204\240\025\b\001\016\002\128PLp\128\r\128\024\002\128\000\198\000\168\148\157\193\234\007\224\176p/\250K\132\183\171o\2313\192e \004\012\000\tA3r\000w\000d\000\000\002(\000\012\164\000\129\000\001(&n@\014\224\012\128\000\000E\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b\160\n\137I\220\030\160~\011\007\002\255\160\184Kx\022\254s=Q);\131\212\015\193`\224_\244\023\to\002\223\206g\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\138\000\168\148\157\193\234\007\224\176p/\250\011\132\183\129o\2313\192\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\001\000\000\000\128\000\000\000\000\000\000\000 \000\000\000\014\000\000p\n\000\028\\\016\000\000P\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\b\000\000\000\000\000\000\000\000\000\000\000\128\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200I`\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200I`8\000\t\192(\000qp@\000\001@\000\000\000\000\n\000\000\000\000\000\000\b\002\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\004\001\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\000\000\000\000\000M\000\138\000\016 D\131A\000\144@\r0\001\001\000\b\b\128\017@\002\132\000\144p \018\b\000\166\000 a\001\001\016\002(\000@\128\018\012\004\002A\000\020\192\004\004 \004\128\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\002 \004P\000\129\000$\028\b\004\130\000)\128\b\b\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\128\017@\002\132\000\144p \018\b\000\166\000 a\001\000\000\000\000\000\001\000@\000\000\000\000\b\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\128 \000\000\000\000\004\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\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\018\014\004\002A\000\022\192\004\004\000 \004\128\000\016\000\000 \000(\000\000@\004\000\016\000\004\000\000\144\000\000\000\000\004\000\005\000\000\b\000\128\002\000\000\128\000\000\000\000\000\000\128 \000\000\000\000\004\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@\016\000\000\000\000\002\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\000\000\000\000\000\000\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\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@\016\000\000\000\000\002\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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@\000x\n\000\028\\\020\000\000p\002\000\b\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\131\001\000\128\000\0050\001\001\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\004\128\000\016\000\000 \000 \000\000\000\004\000\000\000\004\000\000\144\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\128\000\136\001\020\000 @\001\006\002\001\000\000\n`\000\002\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\"\000E\004\b\016\000A\128\128@\000\002\216\000\133\128\004\004@\b\160\001\002\000\b0\016\b\000\000[\000\016\144\000\128r\000\003\192P\000\226\224\160\000\003\128\016\000@\000\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002 \004P\000\129\000\004\024\b\004\000\000)\128\b\b\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\128\000\001\000\001\000\000\000\000 \000\000\000 \000\004\128\000\000\000\000 \000 \000\000\000\004\000\000\000\004\000\004@\b\160\001\002\000\b0\016\b\000\000S\000\000\016\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\000 \128@ \000\001L\000\000@\000\000@\000\000\b\000\000\000\004\000\000\000\000\000\000\000\000 \000\b\000\000\001\000\000\000\000\128\000\000\000\000\000\000\000\000\000\001\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\"\000E\000\b\016 A\128\128@\000\002\152\b\000\128\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\001\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\002 \004P\000\129\002\004\024\b\004\000\000)\128\128\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\002\000 \000\b\000\016\000\000\000\000\000\000\000\000\000\000 \000\000\004\000\000@\002\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\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\001\006\002\001\000\000\011`\000\018\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\" \004P\000\129@\004\028\b\004\000\000)\128\000\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\002\000\000\000\b\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\005\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\020\000 @\129\006\002\001\000\000\n` \002\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\001\000 \000\004\n\b\000\000\000\000 \000\000\000\000\000\017\016\002(\000@\160\002\014\004\002\000\000\020\192\000\004\004 \"\000E\000\b\016\000A\128\128@\000\002\152\000\000\128\004\004@\b\160\001\002\000\b \016\b\000\000S\000\000\016\000\1280\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\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\016\000\000\b\001\001\000\000 P@\000\000\000\001\000\000\000\000\000\000\136\128\017@\002\005\000\016p \016\000\000\166\000\000 !\001\016\002(\000@\128\002\012\004\002\000\000\020\192\000\004\000 \"\000E\000\b\016\000A\000\128@\000\002\152\000\000\128\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\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\000\000\000\000\000\000\001\000\000\000\000\000\000\002\000\000\b\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004@\b\160\001\002\000\b0\016\b\000\000S\001\000\016\016\000\136\001\020\000 @\001\006\002\001\000\000\n`\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\b\b\000\001\002\130\000\000\000\000\b\000\000\000\000\000\004D\000\138\000\016(\000\131\129\000\128\000\0050\000\001\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\016\002(\000@\128\002\012\004\002\000\000\020\192\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\004\000\000\000\000\000\000\000\000\000 \000\000\016\002\002\000\000@\160\128\000\000\000\002\000\000\000\000\000\001\017\000\"\128\004\n\000 \224@ \000\001L\000\000@ \002 \004P\000\129@\004\024\b\004\000\000)\128\000\b\000\004D\000\138\000\016(\000\131\129\000\128\000\0050\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\001\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\018\000\000\002\000\000\128\001\128\000\000\000\016\000\000\000\000\000\002@\000\000\000\000\016\0000\000\000\000\002\000\000\000\000\000\000H\000\000\000\000\002\000\002\000\000\000\000@\000\000\000\000\000D\000\138\000\020 \000\131\129\000\128\000\0050\000\003\000\000\016\128\000\000 \000\002\000\024\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\000@\003\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\001\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\128\000\000\192\000\014\001\016\002\171\130\000\000\n\000\000\000\000\000\000\000D\000\138\000\016 \000\131\001\000\128\000\0050\000\001\000\b\b\128\017@\002\004\000\016@ \016\000\000\166\000\000 \001\002\000\000\000\000\000\000@\003\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\001\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\128\000\000\192\000\014\001\016\002\171\130\000\000\n\000\000\000\000\000\000\000D\000\138\000\016 \000\131\001\000\128\000\0050\000\001\000\b\b\128\017@\002\004\000\016@ \016\000\000\166\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\136\001\020\000 @\001\004\002\001\000\000\n`\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\000\000\000\000\000\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\000\"\128\004\b\000 \192@ \000\001L\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\001\001\001\000 P@\128\000\000\001\000\000\000\000\000\000\001\000 \000\004\n\b\016\000\000\000 \000\000\000\000\000\000 \004\004\000\000\129A\000\000\000\000\004\000\000\000\000\000\002\"\000E\000\b\020\000A\192\128@\000\002\152\000\000\128\128\004@\b\160\001\002\000\b \016\b\000\000S\000\000\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000\"\128\004\b\000 \128@ \000\001L\000\000@\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\130\001\000\128\000\0050\000\001\000\b\002\000\000\018@\000J\000\016\000\128\000\000\000\000\000\000\128\000@\000\002H\000\t@\000\000\016\000\000\000\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\160\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\014@\000x\n\000\028\\\020\000\000p\002\000\b\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000D\000\138\000\016 \000\131\001\000\128\000\0050\001\001\000\b\b\128\017@\002\004\000\016@ \016\000\000\166\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\000 \001\000\000\000\000@\000\000\000A\016\000\000\000\b\000\000\028\000\000\224\020\0008\184 \000\000\160\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\128\000\000\000\000\000\000\000\000\b\000\000\000\000\000\000\006\000\000`\000\000\020\\0\000\000Q\000\000\b\000\000\000\000\192\000\012\000\000\002\139\130\000\000\n \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\000\000\000\000@\000\000\000\001\016\000\000\000\000\000\000\012\000\000\192\000\000(\184 \000\000\162\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\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\128\000\000\000\000\000\000@\000\000\000\000\000\016\000\000\b\000\000\000\000\000\000\000\002\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\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\128\000\000\000\000\000\000\000\000\000\000\b\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200I`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\150\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200I`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\150\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200I`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\150\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\001\017\000;\128\004\014A \224X$\017\001l\000VBk\" \007p\000\129\200$\028\011\004\130 -\128\n\200I`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\017\016\003\184\000@\228\018\014\005\130A\016\022\192\005d&\178\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\150\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\000x\000\003\128P@\226\224\128\000\002\128\000\000\000\000\000\000\000\000\000 \000\000\016\000\000\000\000\000\000\000\004\000\000\000\001\192\000\014\001@\003\139\130\000\000\n\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\001\000\000\000\000\000\000\000\000\000\000\000\016\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\146\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\146\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\016\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\146\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\146\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\001\000\128\000\000\001\002\000\000\000\000\b\000\000\000\000\000\016\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\000\000\002\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000@\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBK\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d$\176\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\b\136\001\220\000 r\t\007\002\193 \136\011`\002\178\019Y\017\000;\128\004\014A \224X$\017\001l\000VBK\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\000\001\128\000\000Qp@\000\001@\000\000\000\000\000\000\136\128\029\192\002\007 \144p,\018\b\128\182\000+!5\145\016\003\184\000@\228\018\014\005\130A\016\022\192\005d$\176\004\002\000\000\000\004\b\000\000\000\000 \000\000\000\000\000@\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\b\136\t\220\000 r\t\007\002\193 \136\011`\002\178\019X\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\146\192\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\" \007p\000\129\200$\028\011\004\130 -\128\n\200MdD\000\238\000\0169\004\131\129`\144D\005\176\001Y\t,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`\000\006\000\000\001E\193\000\000\005\000\000\000\000\000\000\002\"\000w\000\b\028\130A\192\176H\"\002\216\000\172\132\214D@\014\224\001\003\144H8\022\t\004@[\000\021\144\146\200\136\001T\000 `\t\007\002\001 \128\011`\002\146\002\024\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004D\000\170\000\0160\004\131\129\000\144@\005\176\001I\000\012\128\000\004\000\000\002\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\002\000\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\002@\000\002\000\000\001\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\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000@!\000\000\000@\128\004\000\000\002\000\000\000\002\016\005\000\024\000\000\000\000\000P\000\002\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\000\000\000\000\000\000\000\000\000\b\000\000\128 \000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\004\002\016\000\000\004\b\000@\000\000 \000\000\000!\000P\001\128\000\000\000\000\005\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\b\000\000\b\000\000\000\000\000 \000\000\000\000\000\000\016\000\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\b\004 \128\000\bP\000\128\000\000@\000\000\016B\000\160\b\128\017@\002\004\000\144` \018\b\000\166\000\000 \001\016\002(\000@\128\018\012\004\002A\000\020\192\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\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\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\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\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\017\000 \128\004\b\000 \128@ \000\001H\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\001@\001\000\000\000\000 \000\000\000\000\000\000\002\016\015\160\011\004\128\000\015\129\002\000@\128\006\n\203\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\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\001\000\000\000\000\000\n\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000}\000X$\000\000|\b\016\002\004\0000VX\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\128\000\000\000\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\004\000\004\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\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\000\001\192(\000qp@\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\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#\180\160\017h\168o\196\199\200\002\216\015\160(\000\012d\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\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\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\b\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\016\001\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\001\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\000\128\016\016\000\002\005\004\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\001\000\000\000\000\000\002\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\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b \000\000\000\000\000\000\000\000\001\000\000\000\000\000@\000\136\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\b\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\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\001\000\000\000\000\016\000\000\000\000\000\160\000\000\000\000\000\000\000\000\000\000\000\159\210\160\197\166\169\1913\159`/p?\200\160\000q\144\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000M\b\130\000\016 T\130\001\128\144@\r \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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000 \128\004\b\001 \128@$\016\001H\004\000@\000\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000M\b\130\000\016 T\130\001\128\144@\r \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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\000 \128\004\b\001 \128@$\016\001H\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\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\"\000A\000\b\016\002A\000\128@\000\002\128\000\000\128\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\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\t\253*\012Zj\155\2439\246\002\247\003\252\138\000\007\025\001?\165A\139MS~g>\192^\224\127\145@\000\227 \004@\b \001\002\000H \016\t\004\000R\000\000\016\000\000\136\001\004\000 @\t\004\002\001 \128\n@\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\000D\000\130\000\016 \004\131\001\000\144@\005 \000\001\000\000\b\128\016@\002\004\000\144@ \018\b\000\164\000\000 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\136\001\004\000 @\t\006\002\001 \128\n@\000\002\000\000\017\000 \128\004\b\001 \128@$\016\001H\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\004\000\000\000\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 = - ((32, "\000\000\213\"\000\000\224\198\000\000\235B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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.\000\000\235B\000\000\000\000\000\000\000\000\000\000\025\020\000\000\235B\000\000\213\"\000\000\000\240\000\000\0005\000\000\003\004\000\001\188`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Z\000\000\002\018\000\000\000\231\000\000\000\000\000\000\001P\000\000\000\030\000\000\000\000\000\000\001\234\000\000\001p\000\000\000\254\000\000\000\000\000\000\000&\000\000\002\\\000\000\003b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\152\000\000\000\000\000\000\000\000\000\000\003\018\000\001\249\000\000\001\165j\000\001\166\028\000\001\166\206\000\000\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\001. \000\000\004(\000\000\004R\000\000\000\000\000\000\000\000\000\001\244\206\000\001+z\000\000\n*\000\000\000\000\000\000\n*\000\001\170`\000\000\001~\000\000\000\000\000\001\242\172\000\000\001~\000\001)v\000\000\n*\000\001\201\016\000\000\n*\000\000\000\000\000\000\000\000\000\000\000\000\000\000ub\000\001\170`\000\001&\232\000\000\000\000\000\001/\012\000\001\242\172\000\000\219\030\000\000\025\020\000\000\027\196\000\001\170\248\000\000\025\020\000\001\169\202\000\000\005\024\000\001\164\176\000\000\000\000\000\000\000\000\000\000\004\232\000\000\000\000\000\001((\000\000\224\146\000\000\025\020\000\000\216\172\000\000\000\000\000\000\024\254\000\000\000\000\000\000\216\172\000\000\025\222\000\000\000\000\000\000\212\174\000\000\000\000\000\000\000\226\000\000\000\000\000\000\000\000\000\000\003z\000\000\024.\000\000\002\228\000\000\n*\000\000v\134\000\000\006\000\000\001\188\230\000\000\000\000\000\000\000\000\000\000\n*\000\000\000\000\000\000\025\020\000\000\000\000\000\000\001~\000\000\024.\000\000\017\184\000\000\n*\000\000w\170\000\000\000\000\000\000\006\182\000\000\000\000\000\000\212\174\000\000\000\000\000\000\000\000\000\000\005\194\000\000\025\020\000\000\000\000\000\000\001~\000\000\025\020\000\000\000\000\000\000\012\246\000\001\237F\000\000\n*\000\001\218\162\000\001\237\204\000\001\229z\000\001\217v\000\000\000\000\000\001\231Z\000\001\242\172\000\000\000\000\000\001\173\168\000\001\247\240\000\000\001~\000\001)v\000\000\235B\000\000\213\"\000\000\000\003\000\000\000\000\000\000\000\000\000\000\224\198\000\000\025\020\000\000\000\003\000\000\0038\000\000\006\024\000\000\003\174\000\001\170`\000\001\243>\000\000\000\000\000\001\170`\000\001\243>\000\000\000\000\000\001\170`\000\001\245\160\000\00100\000\000jF\000\001-h\000\001&\232\000\000\r\188\000\000\000\000\000\000\000\b\000\000\0010\000\000\005T\000\000\000\000\000\000\006\254\000\000\000\000\000\000\000\000\000\000\014h\000\000\000\000\000\000\000\000\000\000\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\026\156\000\001\245\160\000\0011\252\000\001\170`\000\0012\252\000\000\007,\000\001.\248\000\000\000\000\000\000\000\000\000\0013\252\000\001\170`\000\0014\252\000\0015\252\000\000\000\000\000\001\183\006\000\001\242\172\000\000\000\000\000\000\007p\000\000\0010\000\000\r\188\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\232\000\000\015\140\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\250\134\000\0016&\000\000\n*\000\000x\206\000\000\001~\000\001-\220\000\000\n*\000\000y\242\000\00112\000\001\242\172\000\000\001~\000\000\001~\000\000\000\000\000\000\007\144\000\000\001~\000\000\006\202\000\000\n*\000\000iX\000\000\000\000\000\001\170`\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\tN\000\001\170`\000\0016\252\000\0017\252\000\000\000\000\000\00112\000\0018\252\000\001\170`\000\0019\252\000\001:\252\000\000\000\000\000\00112\000\001;\252\000\001<\252\000\001\170`\000\001=\252\000\001>\252\000\000\000\000\000\00112\000\001?\252\000\001@\252\000\001(\020\000\00122\000\001&\240\000\001-h\000\001)\022\000\000\r\188\000\000\000\000\000\000\000\000\000\000\000\000\000\001/\250\000\00132\000\001&\248\000\001-h\000\001*\024\000\001+\026\000\001,\028\000\001A\252\000\000\007\174\000\001\170`\000\001B\252\000\001C\252\000\000\000\000\000\00112\000\001D\252\000\001E\252\000\000\000\000\000\001F\252\000\000\r\024\000\000\001~\000\000\000\000\000\000\b\n\000\000\007\232\000\000\n*\000\000i\246\000\000\000\000\000\000\001~\000\000\bt\000\000\n*\000\000m\170\000\000\000\000\000\000\001\002\000\000\000\000\000\001\250\254\000\0016N\000\000\n*\000\000{\022\000\000\001~\000\001.V\000\000\n*\000\000|:\000\000\003J\000\000\nr\000\000\t<\000\000\004\018\000\000\002\162\000\001\170`\000\000\011\166\000\000\012.\000\001\170`\000\001G\252\000\001H\252\000\000\000\000\000\00112\000\001I\252\000\001J\252\000\000\t\176\000\001\170`\000\001K\252\000\001L\252\000\000\000\000\000\00112\000\001M\252\000\001N\252\000\000\014\020\000\001\170`\000\001O\252\000\001P\252\000\000\000\000\000\00112\000\001Q\252\000\001R\252\000\000\t\182\000\001\170`\000\001S\252\000\001T\252\000\000\000\000\000\00112\000\001U\252\000\001V\252\000\00142\000\001\242\172\000\000\003\198\000\001\170`\000\000\014\222\000\000\014~\000\001\170`\000\001W\252\000\001X\252\000\000\000\000\000\00112\000\001Y\252\000\001Z\252\000\000\n\030\000\001\170`\000\001[\252\000\001\\\252\000\000\000\000\000\00112\000\001]\252\000\001^\252\000\000\015F\000\001\170`\000\001_\252\000\001`\252\000\000\000\000\000\00112\000\001a\252\000\001b\252\000\000\n<\000\001\170`\000\001c\252\000\001d\252\000\000\000\000\000\00112\000\001e\252\000\001f\252\000\00112\000\001g\252\000\001h\252\000\000\000\000\000\00112\000\001i\252\000\001j\252\000\000\n\142\000\000\001\002\000\000\000\000\000\000kh\000\00122\000\000\005\190\000\000\000\000\000\000n\220\000\00122\000\000\t\016\000\000\000\000\000\001\170`\000\000\001~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\"\000\000\000\000\000\001\170`\000\000\000\000\000\000\024\222\000\001\248F\000\000\000\000\000\001\170`\000\000\024\234\000\001\170`\000\000n\164\000\000\000\000\000\000o\200\000\000\000\000\000\000\026\222\000\000\007z\000\000\000\000\000\000\n*\000\001\170`\000\000\012\162\000\000\000\000\000\000\015\030\000\000\000\000\000\000\004\166\000\000\000\000\000\000\000\003\000\000\001:\000\000\000\000\000\000\000\000\000\000\000\000\000\000l\190\000\001\170`\000\000j\166\000\001\170`\000\000n\018\000\000\011N\000\000\n\234\000\000\2360\000\000\003\196\000\000\012$\000\000\003\174\000\000\012\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\134\000\000\020\134\000\000\224l\000\000\025\020\000\000\235(\000\001$\200\000\000\000\000\000\000\006\194\000\000\012v\000\000\012N\000\001\170`\000\000\015\222\000\000\012\200\000\001\189\148\000\000\007\230\000\000\r\154\000\000\r:\000\001\170`\000\000\017\002\000\000\000\000\000\000\000\000\000\000\026:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\219^\000\000oB\000\000\011N\000\000\000*\000\000\t`\000\000\000\000\000\000\000\000\000\000\003\250\000\000\000\000\000\000\027\196\000\000\014d\000\000\014T\000\000\025\020\000\000mX\000\000\000\000\000\000\025\020\000\000\213\"\000\000\224\146\000\000\025\020\000\001+t\000\000\216\172\000\000\016\176\000\001\229\202\000\001\237\204\000\000\000\000\000\001\240\006\000\000\235B\000\000\213\"\000\000\021\170\000\000\011N\000\000\006|\000\000\t\216\000\000\000\000\000\000\014 \000\000\018\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027@\000\001\190F\000\000\225\168\000\000\022\206\000\000\226\186\000\000\023\242\000\000\227\204\000\000\029\128\000\000\006\212\000\000\006\028\000\000\237\018\000\000\030\164\000\000h\200\000\000\217T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\237\244\000\000\031\200\000\000h\200\000\000\000\000\000\000\000\000\000\000\020\134\000\000\238\214\000\000 \236\000\001\171z\000\000\025\020\000\001\172,\000\001\180\200\000\001\190\242\000\001\180\200\000\000\000\000\000\000\t\216\000\000\000\000\000\000\015\152\000\000\000\000\000\000\028\002\000\001\170`\000\000\004\208\000\000\001\030\000\001$\200\000\000\224\188\000\000\025\020\000\001$\200\000\000\019p\000\000\000\000\000\000\000\000\000\000\n\016\000\000\019\190\000\001$\200\000\001$\200\000\000\t\216\000\000\015\186\000\000\000\000\000\000\019p\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0158\000\001\191\164\000\000\b\236\000\000\015\208\000\000\015L\000\001\170`\000\000\017Z\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\001#\184\000\000\026\138\000\000\001\210\000\000\004P\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002D\000\000k\016\000\001\180\200\000\000\000\000\000\000\224\188\000\000\025\020\000\001$\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\001\2326\000\001\192V\000\000\n\156\000\000\016\004\000\000\016^\000\001\170`\000\000\017\194\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\233B\000\001$\200\000\001\250\248\000\001%\216\000\000\219^\000\000\011\004\000\000\017X\000\000\017\014\000\000\n*\000\000s\156\000\000\000\000\000\000\003R\000\000\n*\000\000t\132\000\001$\200\000\000\000\000\000\000\000\000\000\000\018\026\000\001$\200\000\000\000\000\000\000\028\172\000\000\000\000\000\000\000\000\000\000r\174\000\000\0180\000\000\000\000\000\000j\026\000\000\000\000\000\001\193\b\000\000\0114\000\000\018\024\000\000\017\148\000\001\170`\000\000\018\b\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\001\251`\000\001\170`\000\000\001\134\000\000\000\000\000\001$\200\000\001\251\172\000\000\003\004\000\000\000\000\000\000\000\000\000\000\019\n\000\000\000\000\000\000\028\216\000\000\000\000\000\001\190\242\000\000\000\000\000\000\019X\000\000\000\000\000\000jL\000\001\172,\000\000\000\000\000\000\000\000\000\000\000\000\000\001\251\242\000\000p\242\000\000\000\000\000\000\028\216\000\000\000\000\000\000p2\000\000\002\216\000\000\t\216\000\000\019<\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\142\000\000\000\000\000\000\000\000\000\000\018\174\000\000\000\000\000\001$\200\000\000p2\000\000\000\003\000\000\000\000\000\000\000\000\000\000\224\198\000\000\025\020\000\000\000\003\000\000\000\003\000\000\000\000\000\000\000\000\000\000\224\198\000\000\025\020\000\000\000\003\000\000\000\003\000\000\001\"\000\000\239\184\000\000\"\016\000\001\171z\000\000\025\020\000\001\172,\000\000,T\000\000\240\154\000\000\r|\000\000\019N\000\000\003\174\000\000\019\180\000\000\000\000\000\000\000\000\000\000#4\000\001\171z\000\000\025\020\000\001\172,\000\000-x\000\001$\200\000\000\000\000\000\000\000\000\000\000\224\188\000\000\025\020\000\000\220z\000\000\016\232\000\000\0072\000\000\002\226\000\001\249\000\000\000\004\234\000\001\170`\000\000o\006\000\000\007,\000\000\000\000\000\000\000\000\000\000p`\000\000\000\000\000\000\000\000\000\000\0072\000\000\019\226\000\000\000\000\000\000\020.\000\000\000\000\000\000\000\000\000\000\017\006\000\000\0072\000\000\0072\000\000\020\214\000\000\000\003\000\001\213\\\000\000\018\012\000\000\020\028\000\000\019\150\000\001\170`\000\000\018z\000\000\019\230\000\001\201\190\000\000\019J\000\000\020\150\000\000\020.\000\001\170`\000\000\018~\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000q$\000\001$\200\000\000rH\000\000\000\000\000\000\000\000\000\000sl\000\001\202p\000\000\020T\000\000\020\220\000\000\020t\000\001\170`\000\000\019J\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\000t\144\000\000\020\196\000\001\203\"\000\000\020n\000\000\021x\000\000\020\238\000\001\170`\000\000\019\198\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\000u\180\000\001$\200\000\000\021\n\000\001\203\212\000\000\020\132\000\000\022\000\000\000\021\146\000\001\170`\000\000\020\n\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\000v\216\000\001\163\172\000\000\006\012\000\000\000\000\000\001\172\222\000\000\216&\000\000\216&\000\000\2196\000\001\249\000\000\000\bV\000\001\170`\000\000\000]\000\000\000\000\000\000\001\134\000\000\000\000\000\000\000\000\000\000\022\152\000\000\000\000\000\000\022\192\000\000\000\000\000\000\227p\000\001\249\000\000\000\t\n\000\001\170`\000\000q&\000\000\000\000\000\000q\132\000\000\000\000\000\000\000\000\000\001\172\222\000\000\020\214\000\000\022\252\000\000\000\000\000\000\020\214\000\000\023N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\216&\000\000\020\172\000\000\004v\000\000\n*\000\000t\156\000\000\000\000\000\000\023f\000\000\000\000\000\000\225\134\000\001\249\000\000\000\tz\000\001\170`\000\000\b6\000\000\000\000\000\001\204\134\000\000\232\020\000\001\249\000\000\000\n(\000\001\170`\000\000\tZ\000\000\011\162\000\000\023v\000\000\000\000\000\000\023\142\000\000\000\000\000\000\023\148\000\000\000\000\000\001\230H\000\000\216&\000\000\233H\000\001\249\000\000\000\n\158\000\001\170`\000\000\011\202\000\000\000\000\000\001\204\134\000\000\233\254\000\000\000\000\000\001\249\000\000\000\011L\000\001\170`\000\000\012\198\000\000\000\000\000\000\000]\000\000\023\154\000\000\000\000\000\000\023\188\000\000\000\000\000\000\000\000\000\000\000\003\000\000\224\198\000\000\216\250\000\000\216\250\000\000\025\020\000\000mX\000\000\218\236\000\000\025\020\000\000\241|\000\000$X\000\001\171z\000\000\025\020\000\001\172,\000\000\027\136\000\000\000\000\000\000\027\196\000\001#\186\000\000\023\206\000\000\027\196\000\000\0005\000\000\003\242\000\000\014\186\000\000\000\000\000\000\0236\000\000\027\196\000\000\000\000\000\000rt\000\000\bf\000\000\216\172\000\000\t\216\000\000\007\206\000\001\248\170\000\000\000\000\000\001\170`\000\001\193\156\000\001\170`\000\001\181\\\000\001\194Z\000\001\170`\000\000\007\222\000\001\170`\000\001\195\024\000\000\000\000\000\000\020\154\000\000\020\014\000\000\019\246\000\000\027\196\000\001\205\026\000\000\000\000\000\000\024\016\000\000\027\196\000\001\205\216\000\000\027\196\000\001\206\150\000\001\207T\000\000\0168\000\000\0212\000\001\173r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\208\018\000\000\027\196\000\001\208\208\000\000\000\023\000\000\0010\000\001\182\026\000\000\018\234\000\000\0010\000\001\182\242\000\000\000\000\000\001\209\142\000\000\bf\000\000\000\000\000\001\183\202\000\000\000\000\000\000\024r\000\000\000\000\000\000\021x\000\000\000\000\000\000\024x\000\000\027\196\000\001\210L\000\001\211\n\000\000\000\000\000\001\211\200\000\001\212\134\000\000,\186\000\000\000\000\000\000-\222\000\000\000\000\000\000\027\196\000\000\2152\000\000\000\000\000\000\027\196\000\000/\002\000\000\000\000\000\000\224\198\000\000\025\020\000\000\2144\000\000\224\198\000\000\025\020\000\000\020\134\000\000\020\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\002F\000\000l4\000\000\028\\\000\000\000\000\000\000\228\174\000\000\229\144\000\000\216\250\000\000\025\020\000\000mX\000\000\0005\000\000\003\242\000\000\024\138\000\000mX\000\000\000\000\000\001\174R\000\000\218\236\000\000\000\000\000\000ud\000\000\000\000\000\000\027\196\000\000s\150\000\000\000\000\000\000\025H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\166\000\000\000\000\000\001\168\202\000\000\000\000\000\000\011\214\000\000\027\196\000\0000&\000\000\000\000\000\000\230r\000\000\231T\000\001\213\\\000\000\217\156\000\001\170`\000\000\021\142\000\000\000\003\000\000\020\134\000\000l2\000\000\025\226\000\000\000\000\000\000\020\134\000\000\003j\000\000\006\220\000\000\221\144\000\000%|\000\001\171z\000\000\025\020\000\001\172,\000\000m\184\000\000\221\144\000\000\224\198\000\000\025\020\000\000\000\003\000\001\171z\000\000\025\020\000\001\172,\000\000.\156\000\000\242^\000\000\021H\000\000\026F\000\000\003\174\000\000\027\016\000\000\000\000\000\000\000\000\000\000&\160\000\001\171z\000\000\025\020\000\001\172,\000\000/\192\000\000\029\128\000\000\026\250\000\000\000\000\000\000\t\216\000\000\000\000\000\000i$\000\000\000\003\000\000\224\188\000\000\025\020\000\000\220z\000\000\000\000\000\001\1682\000\000\000\000\000\000\000\000\000\000\001~\000\001-h\000\000\004$\000\000\000\000\000\000\027:\000\000\243@\000\001\171z\000\000\025\020\000\001\172,\000\0000\228\000\000\224\188\000\000\025\020\000\001$\200\000\000jL\000\000\000\003\000\000\000\003\000\000\224\198\000\000\025\020\000\000\020\134\000\000\030\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\244\"\000\000'\196\000\001\171z\000\000\025\020\000\001\172,\000\000\000\000\000\000\022\206\000\000\031\200\000\001\171z\000\000\025\020\000\001\172,\000\000\000\000\000\000\020\134\000\000\021\146\000\000\027P\000\000\003\174\000\000\027\240\000\000\000\000\000\000\000\000\000\000\027\180\000\000\000\000\000\000\020\134\000\000\004\142\000\000\020\134\000\000\005\178\000\000\n \000\000\221\144\000\001\171z\000\000\025\020\000\001\172,\000\000n\220\000\000\222\162\000\000\000\000\000\0002\b\000\000\245\004\000\000\021\176\000\000\027\194\000\000\003\174\000\000\028\016\000\000\000\000\000\000\000\000\000\000(\232\000\001\171z\000\000\025\020\000\001\172,\000\0003,\000\000\020\134\000\000 \236\000\001\171z\000\000\025\020\000\001\172,\000\0004P\000\000\021\170\000\000\"\016\000\000\r\012\000\000\000\003\000\000\000\000\000\000\000\000\000\0005t\000\000\245\230\000\000*\012\000\001\171z\000\000\025\020\000\001\172,\000\0006\152\000\001\171z\000\000\025\020\000\001\172,\000\0007\188\000\0008\224\000\000\246\200\000\000+0\000\001\171z\000\000\025\020\000\001\172,\000\000:\004\000\001\171z\000\000\025\020\000\001\172,\000\000;(\000\000\148\000\000?\184\000\000\249n\000\000.\156\000\001\171z\000\000\025\020\000\001\172,\000\000@\220\000\001\171z\000\000\025\020\000\001\172,\000\000B\000\000\000C$\000\000\250P\000\000/\192\000\001\171z\000\000\025\020\000\001\172,\000\000DH\000\001\171z\000\000\025\020\000\001\172,\000\000El\000\000F\144\000\000\2512\000\0000\228\000\001\171z\000\000\025\020\000\001\172,\000\000G\180\000\001\171z\000\000\025\020\000\001\172,\000\000H\216\000\000I\252\000\000\252\020\000\0002\b\000\001\171z\000\000\025\020\000\001\172,\000\000K \000\001\171z\000\000\025\020\000\001\172,\000\000LD\000\000Mh\000\000\252\246\000\0003,\000\001\171z\000\000\025\020\000\001\172,\000\000N\140\000\001\171z\000\000\025\020\000\001\172,\000\000O\176\000\000P\212\000\000\253\216\000\0004P\000\001\171z\000\000\025\020\000\001\172,\000\000Q\248\000\001\171z\000\000\025\020\000\001\172,\000\000S\028\000\000T@\000\000\254\186\000\0005t\000\001\171z\000\000\025\020\000\001\172,\000\000Ud\000\001\171z\000\000\025\020\000\001\172,\000\000V\136\000\000W\172\000\000\255\156\000\0006\152\000\001\171z\000\000\025\020\000\001\172,\000\000X\208\000\001\171z\000\000\025\020\000\001\172,\000\000Y\244\000\000[\024\000\001\000~\000\0007\188\000\001\171z\000\000\025\020\000\001\172,\000\000\\<\000\001\171z\000\000\025\020\000\001\172,\000\000]`\000\000^\132\000\001\001`\000\0008\224\000\001\171z\000\000\025\020\000\001\172,\000\000_\168\000\001\171z\000\000\025\020\000\001\172,\000\000`\204\000\000a\240\000\001\002B\000\000:\004\000\001\171z\000\000\025\020\000\001\172,\000\000c\020\000\001\171z\000\000\025\020\000\001\172,\000\000d8\000\000e\\\000\001\003$\000\000;(\000\001\171z\000\000\025\020\000\001\172,\000\000f\128\000\001\171z\000\000\025\020\000\001\172,\000\000g\164\000\000h\200\000\001\004\006\000\000\148\000\001\171z\000\000\025\020\000\001\172,\000\000p\196\000\001\171z\000\000\025\020\000\001\172,\000\000q\232\000\000s\012\000\001\006\172\000\000?\184\000\001\171z\000\000\025\020\000\001\172,\000\000t0\000\001\171z\000\000\025\020\000\001\172,\000\000uT\000\000vx\000\001\007\142\000\000@\220\000\001\171z\000\000\025\020\000\001\172,\000\000w\156\000\001\171z\000\000\025\020\000\001\172,\000\000x\192\000\000y\228\000\001\bp\000\000B\000\000\001\171z\000\000\025\020\000\001\172,\000\000{\b\000\001\171z\000\000\025\020\000\001\172,\000\000|,\000\000}P\000\001\tR\000\000C$\000\001\171z\000\000\025\020\000\001\172,\000\000~t\000\001\171z\000\000\025\020\000\001\172,\000\000\127\152\000\000\128\188\000\001\n4\000\000DH\000\001\171z\000\000\025\020\000\001\172,\000\000\129\224\000\001\171z\000\000\025\020\000\001\172,\000\000\131\004\000\000\132(\000\001\011\022\000\000\022h\000\000\028\000\000\000\003\174\000\000\028N\000\000\000\000\000\000\000\000\000\000El\000\001\171z\000\000\025\020\000\001\172,\000\000\133L\000\000\020\134\000\000$X\000\001\171z\000\000\025\020\000\001\172,\000\000\134p\000\000\135\148\000\001\011\248\000\000F\144\000\001\171z\000\000\025\020\000\001\172,\000\000\136\184\000\001\171z\000\000\025\020\000\001\172,\000\000\137\220\000\000\139\000\000\000\025\020\000\001\184z\000\000\219^\000\001#z\000\000\028X\000\000\220z\000\000\000\000\000\000\011\170\000\000\014L\000\000\000\000\000\000\027\210\000\000\243@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\220z\000\001\249\000\000\000\022\156\000\000\027\200\000\001\170`\000\000\000]\000\000\000\003\000\000\000\000\000\000\027\228\000\000\000\003\000\000\000\000\000\000\011\194\000\001\170`\000\000\014x\000\000\000\003\000\000\000\000\000\000\028@\000\000\000\003\000\000\000\000\000\000\021\196\000\000\000\003\000\000\000\000\000\000\028D\000\000\000\003\000\000\000\000\000\000\000\000\000\000\028`\000\000\000\003\000\000\000\000\000\000\216\026\000\001\170`\000\000\015\156\000\000\000\003\000\000\000\000\000\000\028r\000\000\000\003\000\000\000\000\000\000\028|\000\000\000\003\000\000\000\000\000\000w\252\000\000\000\003\000\000\000\000\000\001\214\014\000\000\022\204\000\000\028\232\000\000\028T\000\001\170`\000\000\021\206\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\000y \000\001$\200\000\000zD\000\000\003\004\000\000\000\000\000\000\003\004\000\001\169z\000\001\249\000\000\000\r\154\000\001\170`\000\000\016\192\000\000\000\003\000\000\000\000\000\000\028\130\000\000\000\003\000\000\000\000\000\000\022t\000\000\000\003\000\000\000\000\000\000\028\160\000\000\000\003\000\000\000\000\000\000\000\000\000\000\028\164\000\000\000\003\000\000\000\000\000\000\000\000\000\001\219:\000\001\219:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\140$\000\001\175\026\000\000\223\180\000\000\000\000\000\000\029`\000\000\006\214\000\001\012\218\000\000G\180\000\001\171z\000\000\025\020\000\001\172,\000\000\141H\000\001\171z\000\000\025\020\000\001\172,\000\000\142l\000\000\143\144\000\000\221\144\000\000\029d\000\000\007\250\000\001\r\188\000\000H\216\000\001\171z\000\000\025\020\000\001\172,\000\000\144\180\000\001\171z\000\000\025\020\000\001\172,\000\000\145\216\000\000\146\252\000\000\221\144\000\000\029l\000\000\t\030\000\001\014\158\000\000I\252\000\001\171z\000\000\025\020\000\001\172,\000\000\148 \000\001\171z\000\000\025\020\000\001\172,\000\000\149D\000\000\150h\000\000j\246\000\000\000\003\000\000\029x\000\000\nB\000\001\015\128\000\000K \000\001\171z\000\000\025\020\000\001\172,\000\000\151\140\000\001\171z\000\000\025\020\000\001\172,\000\000\152\176\000\000\153\212\000\000\000\003\000\000\029~\000\000\011f\000\001\016b\000\000LD\000\001\171z\000\000\025\020\000\001\172,\000\000\154\248\000\001\171z\000\000\025\020\000\001\172,\000\000\156\028\000\000\157@\000\000\000\003\000\000\029\134\000\000\012\138\000\001\017D\000\000Mh\000\001\171z\000\000\025\020\000\001\172,\000\000\158d\000\001\171z\000\000\025\020\000\001\172,\000\000\159\136\000\000\160\172\000\000\0220\000\000\r\140\000\000\221\144\000\000\029\144\000\000\r\174\000\001\018&\000\000N\140\000\001\171z\000\000\025\020\000\001\172,\000\000\161\208\000\001\171z\000\000\025\020\000\001\172,\000\000\162\244\000\000\164\024\000\000\221\144\000\000\029\152\000\000\014\210\000\001\019\b\000\000O\176\000\001\171z\000\000\025\020\000\001\172,\000\000\165<\000\001\171z\000\000\025\020\000\001\172,\000\000\166`\000\000\167\132\000\000\221\144\000\000\029\154\000\000\015\246\000\001\019\234\000\000P\212\000\001\171z\000\000\025\020\000\001\172,\000\000\168\168\000\001\171z\000\000\025\020\000\001\172,\000\000\169\204\000\000\170\240\000\000\017\026\000\001\020\204\000\000Q\248\000\001\171z\000\000\025\020\000\001\172,\000\000\172\020\000\001\171z\000\000\025\020\000\001\172,\000\000\1738\000\000\174\\\000\000\018>\000\000\023\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\128\000\000\000\000\000\000\000\000\000\000\000\003\000\000\028\226\000\000\000\003\000\000\028\252\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\208\000\000\000\000\000\000\000\003\000\000\029\252\000\000\000\000\000\000\000\003\000\000\030\018\000\000\000\000\000\000\022\\\000\000\014\176\000\000\221\144\000\000\030\026\000\000\000\000\000\000\221\144\000\000\030$\000\000\000\000\000\000\221\144\000\000\030(\000\000\000\000\000\000\000\000\000\000\020\134\000\000%|\000\001\171z\000\000\025\020\000\001\172,\000\000\175\128\000\000\176\164\000\000\030V\000\001\021\174\000\000S\028\000\001\171z\000\000\025\020\000\001\172,\000\000\177\200\000\001\022\144\000\000T@\000\001\171z\000\000\025\020\000\001\172,\000\000\178\236\000\001\171z\000\000\025\020\000\001\172,\000\000\180\016\000\000\1814\000\001\171z\000\000\025\020\000\001\172,\000\000\182X\000\001\023r\000\000Ud\000\001\171z\000\000\025\020\000\001\172,\000\000\183|\000\001\171z\000\000\025\020\000\001\172,\000\000\184\160\000\000\185\196\000\000\186\232\000\001\024T\000\000V\136\000\001\171z\000\000\025\020\000\001\172,\000\000\188\012\000\001\171z\000\000\025\020\000\001\172,\000\000\1890\000\000\190T\000\000\000\000\000\000\030L\000\000\000\000\000\000\221\144\000\000\030j\000\000\000\000\000\000\221\144\000\000\030j\000\000\000\000\000\001\0256\000\000\022\244\000\000\030:\000\000\003\174\000\000\030\128\000\000\000\000\000\000\000\000\000\000W\172\000\001\171z\000\000\025\020\000\001\172,\000\000\191x\000\000\020\134\000\000&\160\000\001\171z\000\000\025\020\000\001\172,\000\000\192\156\000\000\193\192\000\000\000\000\000\000{h\000\000\000\003\000\000\000\000\000\000\006\000\000\000\000\003\000\000\000\000\000\001\213\\\000\000\000\000\000\000\000\000\000\001\195\204\000\000\030\132\000\000\000\000\000\000\2326\000\000X\208\000\001\171z\000\000\025\020\000\001\172,\000\000m\234\000\001\026\024\000\000Y\244\000\001\171z\000\000\025\020\000\001\172,\000\000\006\246\000\001\171z\000\000\025\020\000\001\172,\000\000\b\026\000\001\185\020\000\000\025\020\000\000nD\000\000\025\020\000\001\172,\000\001$\200\000\000p\000\000\001\026\250\000\000[\024\000\001\171z\000\000\025\020\000\001\172,\000\000\027\n\000\001\171z\000\000\025\020\000\001\172,\000\000\235\202\000\001\175h\000\001$\200\000\000|\140\000\001\027\220\000\000\\<\000\001\171z\000\000\025\020\000\001\172,\000\001$\014\000\001\171z\000\000\025\020\000\001\172,\000\001%\022\000\001\176V\000\001$\200\000\000}\176\000\001\028\190\000\000]`\000\001\171z\000\000\025\020\000\001\172,\000\001'\252\000\001\171z\000\000\025\020\000\001\172,\000\001(\132\000\001\176\164\000\000kp\000\001\029\160\000\000^\132\000\001\171z\000\000\025\020\000\001\172,\000\001(\172\000\001\171z\000\000\025\020\000\001\172,\000\001)\192\000\001\177\146\000\001\030\130\000\000_\168\000\001\171z\000\000\025\020\000\001\172,\000\000\006\024\000\001\031d\000\000`\204\000\001\171z\000\000\025\020\000\001\172,\000\001+\204\000\001\171z\000\000\025\020\000\001\172,\000\001,\180\000\001\177\224\000\001\171z\000\000\025\020\000\001\172,\000\000\007<\000\001 F\000\000a\240\000\001\171z\000\000\025\020\000\001\172,\000\0010@\000\001\171z\000\000\025\020\000\001\172,\000\0010\146\000\001\178\206\000\001\175\026\000\001!(\000\000c\020\000\001\171z\000\000\025\020\000\001\172,\000\0010\232\000\001\171z\000\000\025\020\000\001\172,\000\0011j\000\001\179\028\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\022\000\000\000\000\000\000\000\000\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000sp\000\000\rv\000\000\000\000\000\000\000\000\000\000\029\188\000\000\000\000\000\001\175\026\000\000\r\158\000\000\000\000\000\000\233H\000\000d8\000\001\171z\000\000\025\020\000\001\172,\000\000\029\004\000\000\b\206\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000k\162\000\000\011\022\000\000\000\000\000\000\000\000\000\000\029\182\000\000\000\000\000\001\175\026\000\000\012*\000\000\000\000\000\000\234Z\000\000e\\\000\001\171z\000\000\025\020\000\001\172,\000\000r8\000\000\007\248\000\000\000\000\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000sp\000\000\014\242\000\000\000\000\000\000\030\152\000\000\000\000\000\001\175\026\000\000\015\190\000\000\000\000\000\000\006\212\000\000\030\012\000\000\000\000\000\000h\200\000\000k\160\000\000\t\216\000\000\000\000\000\000\028d\000\000\000\000\000\000\005\244\000\000\023\204\000\000\n\252\000\000\000\000\000\000\000\000\000\000\030\160\000\000\000\000\000\000\001\204\000\000o\160\000\000\219\242\000\000\000\000\000\000'\196\000\000\000\000\000\000\029\254\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000k\254\000\000\000\000\000\000\027\196\000\0001J\000\000\000\000\000\000\027\196\000\000\215\128\000\000\000\000\000\000\027\196\000\0002n\000\000\000\000\000\001\175h\000\000\000\000\000\000\027\196\000\0003\146\000\000\000\000\000\000\027\196\000\000\216r\000\000\000\000\000\000\027\196\000\0004\182\000\000\000\000\000\000\005\132\000\000\000\003\000\000\000\000\000\000\025\020\000\000mX\000\000\011\214\000\000\000\003\000\000\000\000\000\000\011N\000\000\005\244\000\000\t`\000\000\t`\000\000\001~\000\000\030\178\000\000\000\000\000\000\003\242\000\000mX\000\001\231\200\000\000\027\196\000\000~\218\000\000mX\000\001\232z\000\000\030\b\000\000mX\000\001\233,\000\000\030B\000\000\000\003\000\000\000\000\000\000\003\242\000\000\000\000\000\000\030\024\000\000mX\000\001\233\222\000\000\000\000\000\000i\246\000\000\025\020\000\000m\\\000\000\000\000\000\000\005\220\000\000\030\202\000\000\000\000\000\000\030\202\000\000\029h\000\001\183(\000\000\015>\000\000\000\000\000\000\000\000\000\000\030\144\000\000\030\b\000\001\249\000\000\000\015\220\000\001\170`\000\000m\218\000\000jv\000\000\000\015\000\000\023\230\000\000\024\234\000\000\000\000\000\000r\016\000\000\030\222\000\000\000\000\000\000lV\000\000\000\000\000\000\000\000\000\001-h\000\001\196\148\000\001\219\236\000\000\030\242\000\001-h\000\001-h\000\001\196\148\000\001\220\158\000\001\196\148\000\001\221P\000\000\000\000\000\001\196v\000\001\222\002\000\001\212\204\000\001\249d\000\000\001~\000\001*x\000\000\n*\000\000}^\000\001-\030\000\001\252\206\000\0017N\000\000\n*\000\000~\130\000\000\001~\000\001.\168\000\000\n*\000\000\127\230\000\000\t\198\000\000\015\226\000\001\183(\000\000\030\184\000\001-h\000\001\222\188\000\001\197P\000\000\030\192\000\001-h\000\001\223v\000\001\198\014\000\000\004\018\000\000\030x\000\000\000\003\000\000\000\000\000\000\000\000\000\000\025\020\000\001\180\022\000\000\000\000\000\001\184z\000\001\219:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\b\000\000\000\000\000\000\020\214\000\000\031$\000\000\000\000\000\000\000\000\000\000\001~\000\000\031\000\000\000\243@\000\000\000\000\000\000\020\134\000\000(\232\000\001\171z\000\000\025\020\000\001\172,\000\000\194\228\000\000\196\b\000\001\171z\000\000\025\020\000\001\172,\000\000\197,\000\000\198P\000\000\000\000\000\000\031f\000\001\172,\000\000\199t\000\000\000\000\000\000\031h\000\001\"\n\000\000f\128\000\001\171z\000\000\025\020\000\001\172,\000\000\200\152\000\001\171z\000\000\025\020\000\001\172,\000\000\201\188\000\000\202\224\000\000\031\024\000\000\000\003\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\224\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000\016(\000\000\000\000\000\001\175\026\000\000\000\000\000\000\019b\000\000\031L\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000\006\024\000\001\171z\000\000\025\020\000\001\172,\000\000\007<\000\001\223\250\000\000\000\000\000\0005t\000\000\031d\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000\027@\000\001\171z\000\000\025\020\000\001\172,\000\000l\014\000\001\185\020\000\000\021T\000\000\0224\000\000\000\000\000\000\000\000\000\000\030\222\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000r8\000\000\017:\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000sp\000\000\018\006\000\000\000\000\000\000\031\142\000\000\000\000\000\001\175\026\000\000\018<\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000\029\004\000\000\012R\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000k\162\000\000\rv\000\000\000\000\000\000\000\000\000\000\030\192\000\000\000\000\000\001\175\026\000\000\014\242\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000m\234\000\000\015\190\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000sp\000\000\016\022\000\000\000\000\000\000\000\000\000\000\030\212\000\000\000\000\000\001\175\026\000\000\017\238\000\000\000\000\000\000\000\000\000\000\216\250\000\000\025\020\000\000mX\000\000\012r\000\000\000\000\000\000\027\196\000\0005\218\000\000\000\000\000\000\003\174\000\000\000\000\000\000\n\030\000\000\000\000\000\000\031\168\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000\204\004\000\000\213\"\000\000\000\000\000\000\224h\000\000\216\250\000\000\025\020\000\000mX\000\001\2404\000\000\000\000\000\000\025\020\000\000mX\000\001\2404\000\000\000\000\000\000j\022\000\000\011N\000\000\006|\000\000\001~\000\001\243\142\000\000\027\196\000\001\234\144\000\001\219:\000\000\000\000\000\000\005\244\000\000\t`\000\000\t`\000\000\003\242\000\001\219:\000\001\246\028\000\000\005\244\000\000\t`\000\000\003\242\000\001\219:\000\001\246\028\000\000\000\000\000\000\000\000\000\000\003\242\000\001\219:\000\000\000\000\000\000\235B\000\000\213\"\000\001$\200\000\000\212R\000\000\000\003\000\000\000\000\000\000\235B\000\000\213\"\000\000\031n\000\000\031\n\000\000\n*\000\001\240\230\000\001%N\000\000\000\000\000\000\000\240\000\000\0005\000\000\003\004\000\000\030\226\000\001\249\000\000\000\017v\000\001\170`\000\001\224\\\000\000\023H\000\000\031\020\000\000\031\206\000\001\244P\000\000\000\000\000\001\219:\000\000\000\000\000\001\225\014\000\000i\246\000\000\025\020\000\000m\\\000\001\235(\000\000t:\000\000\021\250\000\000\002J\000\000\024<\000\000\028\\\000\000\025\020\000\001\219:\000\000\000\000\000\000\025\020\000\001\219:\000\000\000\000\000\001\170`\000\000\000\000\000\000\0052\000\000\026\026\000\000\026\026\000\000\024\214\000\000\018\252\000\000\000\000\000\000\015\016\000\000\212\174\000\000\000\000\000\000\0242\000\000\000\000\000\000\212\174\000\000\000\000\000\000\031\136\000\000\031(\000\000\220H\000\000\025\020\000\000j\000\000\001\170`\000\000\021\252\000\000\000\000\000\000p\216\000\000\rL\000\000\019\206\000\000\017<\000\000\000\000\000\000\023\140\000\000\000\000\000\000\031\150\000\000\031\012\000\001\170`\000\000\223\180\000\000\000\000\000\000\025\020\000\000\027 \000\000\016\128\000\000\000\000\000\000\025L\000\000\000\000\000\000\031\166\000\000\031\022\000\001\249\000\000\000\217\214\000\000\000\000\000\000\025\020\000\000\220H\000\000\031\208\000\000\018~\000\000\000*\000\000\000\003\000\000\bx\000\000\220H\000\001\170`\000\000\026\146\000\000\r\188\000\000\000\000\000\001\170`\000\000\023\230\000\000\031\b\000\000\000\000\000\000\000\000\000\001\225\166\000\000\000\000\000\000\000\003\000\000\018$\000\000\220H\000\001\226b\000\000\223\180\000\000\000\000\000\000\025\020\000\001\170`\000\000\025\128\000\001\170`\000\000\028\\\000\000\217\214\000\000\000\000\000\000\031D\000\000\000\000\000\000\217\214\000\000\000\000\000\000\000\000\000\000p\216\000\000\000\000\000\001\2404\000\001\246N\000\000\024\214\000\000\018\252\000\000\015\016\000\000\031\194\000\000\031\\\000\000\220H\000\001\2404\000\001\246N\000\000\000\000\000\000\000\000\000\000\024\214\000\000\018\252\000\000\015\016\000\000\031\202\000\001\185\186\000\000\216&\000\000\213\166\000\000\025\020\000\000\235(\000\000\213D\000\000\025z\000\000\rL\000\000\024^\000\000\000\000\000\000\031\206\000\000\005\160\000\000\000\003\000\000\000\000\000\000\031l\000\000\000\003\000\000\000\000\000\000\223\180\000\000\000\000\000\000\020\242\000\000\026\000\000\000\000\000\000\000\027\012\000\000\000\000\000\000\031\216\000\000\031T\000\001\170`\000\000\222\162\000\000\031\236\000\000\020\202\000\000\000\003\000\000\000\000\000\000\031\132\000\000\000\003\000\000\000\000\000\000\025\194\000\000\014\186\000\000\026\240\000\000\000\000\000\000 \006\000\001\186l\000\001\249\186\000\000\022\156\000\000\031\150\000\001\170`\000\000\026\150\000\000\000\003\000\000\000\000\000\000\031\180\000\000\000\003\000\000\000\000\000\000\000\000\000\000\223\180\000\000\000\000\000\000\028\n\000\000\027\n\000\000\000\000\000\000\027(\000\000\000\000\000\000 \000\000\031\152\000\001\249\000\000\000\000\000\000\000 4\000\001\187\030\000\001\250.\000\000\022\156\000\000\031\198\000\001\170`\000\000\026\152\000\000\000\003\000\000\000\000\000\000\031\226\000\000\000\003\000\000\000\000\000\000\000\000\000\000\025\020\000\000\000\003\000\000\223\180\000\000\000\000\000\000\025|\000\000\025\020\000\000\213\166\000\000\213\166\000\001\167\128\000\000\235B\000\000\025\020\000\001\180\022\000\001\184z\000\000\023\188\000\000\000\000\000\000\019\162\000\000\000*\000\000\000\003\000\000\021\144\000\000\213\166\000\001\170`\000\000\026\194\000\000\t\216\000\000\000\000\000\000\025\020\000\001\185\186\000\001\185\186\000\000\213\166\000\000\025J\000\000\213\166\000\000\000\000\000\000\217B\000\000\218V\000\000\000\000\000\001\214\162\000\000\000\000\000\000\000\000\000\001\215^\000\000\000\000\000\000\000\000\000\001\216\026\000\000\000\003\000\000\023\216\000\000\213\166\000\001\216\214\000\001\180\022\000\001\184z\000\000\023\188\000\000\000\000\000\000\018&\000\000\000\000\000\001\174\152\000\001\218\n\000\001-h\000\000 `\000\001\174\152\000\001\245\160\000\000\031\b\000\000 \130\000\001\174\152\000\001-h\000\000 \132\000\001\174\152\000\000\023\192\000\000q\232\000\001\226\246\000\001\228*\000\000\000\000\000\001\244\228\000\000\000\000\000\000\000\000\000\000 \196\000\000\000\000\000\000\027@\000\000 \134\000\000\000\000\000\000\223\180\000\000\000\000\000\000\213\166\000\000\027@\000\000\223\180\000\000\000\000\000\000\025\020\000\001\170`\000\000\223\180\000\000\000\000\000\000 \026\000\000\000\000\000\000\223\180\000\000\000\000\000\000\000\000\000\000\213D\000\000\000\000\000\001\241\030\000\001\174\152\000\000 (\000\000\213\166\000\001\241\190\000\001\185\186\000\000\000\000\000\001\219:\000\001\247\000\000\000\024\214\000\000\018\252\000\000\015\016\000\000 \152\000\001\185\186\000\001\219:\000\001\247\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\254\006\000\000\224\198\000\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\245j\000\000\000\000\000\001\219:\000\000\000\000\000\000\216\250\000\000\025\020\000\000mX\000\001\2404\000\000\000\000\000\001\2478\000\000\025\000\000\000\216\172\000\000 \156\000\001\183\252\000\001\237\204\000\000\000\000\000\001\240\006\000\001\2478\000\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\1682\000\001\254\006\000\000\000\000\000\000\000\000\000\000\000\000\000\001\245j\000\000 \224\000\000\000\000\000\000 \226\000\000\000\000\000\001\1682\000\001\254\006\000\000\000\000\000\000\000\000\000\000 \234\000\000\000\000\000\000\000\000\000\000 \228\000\000\221\006\000\000m\\\000\000m\\\000\001\228\202\000\000t:\000\000\025\020\000\000\000\000\000\000\025\020\000\000\000\000\000\001\219:\000\000\000\000\000\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\230\220\000\000t:\000\000\025\020\000\000\000\000\000\000\025\020\000\000\000\000\000\000\021b\000\001\229\202\000\001\237\204\000\000\000\000\000\001\240\006\000\000\000\000\000\000 \230\000\000\221\006\000\000m\\\000\001\219:\000\000\000\000\000\000 J\000\000\000\000\000\001\198\202\000\0006\254\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\001\252\184\000\000 :\000\001\199L\000\000\026\n\000\000 \202\000\000 8\000\001\170`\000\000\022\182\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\001\252\246\000\000m\134\000\000\000\000\000\001\170`\000\000\025|\000\000\000\000\000\000\213D\000\000 `\000\000\000\000\000\001\171z\000\000\025\020\000\001\172,\000\000\205(\000\000\020\134\000\000*\012\000\001\171z\000\000\025\020\000\001\172,\000\000\206L\000\000\207p\000\000 H\000\001\"\236\000\000\026\192\000\000 \216\000\000\003\174\000\000!(\000\000\000\000\000\000\000\000\000\000g\164\000\001\171z\000\000\025\020\000\001\172,\000\000\208\148\000\000\020\134\000\000+0\000\001\171z\000\000\025\020\000\001\172,\000\000\209\184\000\000\210\220\000\000!V\000\001\172,\000\000\212\000\000\000\000\000\000\000!,\000\000\000\000\000\000\028\132\000\001\249\000\000\000\019\204\000\000\b\200\000\000\025\020\000\001\181\218\000\000\000\000\000\000\000\000\000\000r@\000\001\194\026\000\000\000\000\000\000\000\000\000\000 \158\000\000\000\000\000\000\018*\000\001\170`\000\000\027\188\000\000\025h\000\001\170`\000\001k\252\000\001l\252\000\000\000\000\000\00112\000\001m\252\000\001n\252\000\000!\b\000\001\170`\000\001o\252\000\001p\252\000\000\000\000\000\00112\000\001q\252\000\001r\252\000\001\245\160\000\000\015>\000\000!8\000\000\000\000\000\000\015>\000\000!J\000\000\000\000\000\000\000\000\000\001\227\150\000\001\228\202\000\001\238d\000\000m\\\000\000\000\000\000\000\000\000\000\000\000\000\000\001\239\004\000\000\000\000\000\001\228\202\000\000\015>\000\000!L\000\000\000\000\000\000\015>\000\000!N\000\000\000\000\000\000\000\000\000\000\000\000\000\001\235\192\000\000\221>\000\000\215\022\000\000\015>\000\000!f\000\000\000\000\000\000\015>\000\000!v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015>\000\000!~\000\000\000\000\000\000\015>\000\000!\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\229z\000\000\000\000\000\001\190^\000\000\000\000\000\000!\128\000\000\221\006\000\000p\004\000\001\190^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\152\000\001\237F\000\001\237\222\000\001\229z\000\000\000\000\000\001\190^\000\000\000\000\000\000!\134\000\000\221\006\000\000p\004\000\001\190^\000\000\000\000\000\001((\000\000\030\174\000\000\011N\000\000\000*\000\000\0010\000\001\219:\000\000\000\000\000\000\000*\000\000\0010\000\001\219:\000\000\000\000\000\000m\130\000\000\011N\000\000\006|\000\000\001~\000\000\233H\000\000\027\196\000\001\190^\000\000\000\000\000\000\005\244\000\000\r\240\000\000\028H\000\000\0010\000\001\219:\000\000\000\000\000\000\t`\000\000 \212\000\000\027\196\000\001\239n\000\001\190^\000\001\2548\000\000\000*\000\000\t`\000\000 \218\000\000\027\196\000\001\239n\000\001\190^\000\001\2548\000\000\000\000\000\000\000\000\000\000\t`\000\000 \204\000\000\005\024\000\000\000\000\000\000!\218\000\000\000\000\000\000\018\198\000\000\000\003\000\001\250B\000\000\005\024\000\000\000\000\000\001\1682\000\000\000\000\000\000\027\196\000\001\170`\000\000\000\000\000\001\1682\000\000\000\000\000\000\026x\000\000\027\196\000\001\242(\000\000\000\000\000\000\000\000\000\000\026x\000\000\000\000\000\000\000\000\000\000i\246\000\000\025\020\000\000m\\\000\000\226\186\000\000\026\026\000\000\024\214\000\000\018\252\000\000\015\016\000\000!\154\000\000!\016\000\001\174\152\000\001\190^\000\001\254p\000\000\024\214\000\000\018\252\000\000\015\016\000\000!\170\000\000!\024\000\001\174\152\000\001\190^\000\001\254p\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\001\1682\000\000\000\000\000\000\219\030\000\000\025\020\000\000\027\196\000\001\242\192\000\001\170`\000\000\000\000\000\001\2478\000\000\000\000\000\001\254\162\000\000\025\000\000\000\216\172\000\000!\182\000\000\026\252\000\000!*\000\001\229z\000\000\000\000\000\001\190^\000\001\254\162\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0008\"\000\000\000\000\000\000\020l\000\001\170`\000\000\028 \000\000\025\180\000\001\170`\000\001s\252\000\001t\252\000\000\000\000\000\00112\000\001u\252\000\001v\252\000\000!\206\000\001\170`\000\001w\252\000\001x\252\000\000\000\000\000\00112\000\001y\252\000\001z\252\000\000\025\192\000\001\170`\000\001{\252\000\001|\252\000\000\000\000\000\00112\000\001}\252\000\001~\252\000\000!\212\000\001\170`\000\001\127\252\000\001\128\252\000\000\000\000\000\00112\000\001\129\252\000\001\130\252\000\00152\000\001\242\172\000\000\022\006\000\001\170`\000\000\028H\000\000\027\216\000\001\170`\000\001\131\252\000\001\132\252\000\000\000\000\000\00112\000\001\133\252\000\001\134\252\000\000!\214\000\001\170`\000\001\135\252\000\001\136\252\000\000\000\000\000\00112\000\001\137\252\000\001\138\252\000\000\029$\000\001\170`\000\001\139\252\000\001\140\252\000\000\000\000\000\00112\000\001\141\252\000\001\142\252\000\000!\222\000\001\170`\000\001\143\252\000\001\144\252\000\000\000\000\000\00112\000\001\145\252\000\001\146\252\000\000\127\172\000\00122\000\000\016&\000\001\170`\000\001\147\252\000\001\148\252\000\000\000\000\000\00112\000\001\149\252\000\001\150\252\000\000!\232\000\001\170`\000\001\151\252\000\001\152\252\000\000\000\000\000\00112\000\001\153\252\000\001\154\252\000\000\127\194\000\00122\000\0010\252\000\001\170`\000\001\155\252\000\001\156\252\000\000\000\000\000\00112\000\001\157\252\000\001\158\252\000\000!\234\000\001\170`\000\001\159\252\000\001\160\252\000\000\000\000\000\00112\000\001\161\252\000\001\162\252\000\001\187\178\000\000\000\000\000\000\000\000\000\001\199\228\000\000t\192\000\000\000\000\000\000\016`\000\000\128~\000\000\000\000\000\001\253\210\000\0018N\000\000\n*\000\000\128\202\000\000\001~\000\0019N\000\000\n*\000\000\129\n\000\000\016\228\000\000\001~\000\001*x\000\001\187\178\000\001\219:\000\000\000\000\000\000\"\028\000\000\000\000\000\000\000\003\000\000!d\000\000\000\003\000\000!l\000\000\000\000\000\000!\132\000\000\000\000\000\000\000\000\000\001$N\000\000!\134\000\000\000\000\000\000\000\000\000\000s\202\000\001\188`\000\000\":\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\184\000\000\022\182\000\001\200\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\000\000\000\000!\156\000\000\000\000\000\000t:\000\000\000\000\000\000!\160\000\000\000\000\000\001\170`\000\000\000\000\000\000\019J\000\000\000\000\000\000\000\003\000\000!\164\000\000\000\000\000\000\000\000\000\000\0010\000\000\000\000\000\000\012,\000\000\000\000\000\000\000\003\000\000\000\000\000\000\n\210\000\000\000\000\000\000mX\000\000\000\000\000\000\001\n\000\000\000\000\000\000\027\196\000\000\000\000\000\000,\186\000\000\000\000\000\000\020\014\000\000\000\000\000\000!\168\000\000\000\000\000\001$\200\000\000t^\000\000\000\000\000\000\000\000\000\000\023\218\000\000!\176\000\000\000\000\000\000\000\000\000\000!\160\000\000\025J\000\000\2144\000\000\001~\000\001\236`\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\188\228\000\000\001~\000\001\236\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\201\014\000\000\000\000\000\000\000\000\000\000\"x\000\000\000\000\000\001\215T\000\000\000\000\000\000\024^\000\000\"z\000\000\000\000\000\000\"|\000\000\000\000\000\000\215F\000\000\215F\000\001\222\168\000\001\222\168\000\000\000\000\000\000\000\000\000\001\219:\000\001\222\168\000\000\000\000\000\000\000\000\000\000\000\000\000\001\219:\000\001\222\168\000\000!\224\000\000\000\000\000\000!\240\000\000\000\000"), (16, "\0051\000\006\0051\001f\0051\003\146\003\150\003\154\0051\003\158\003j\0051\003\170\0051\007\237\bf\0051\tV\007\237\0051\0051\0051\000\242\0051\0051\0051\001\234\007\237\007\237\007\237\bn\0051\012\134\012\138\020\210\012\142\0051\n\165\0051\012\154\001b\br\000\242\tZ\005\153\0051\0051\0051\012\158\012\162\0051\012\166\t\134\012\178\012\182\rz\015\214\003\242\0051\0051\003\138\000\242\025N\t\142\t\150\0051\0051\0051\t\158\t\166\t\182\017f\0182\001r\0051\t\190\0051\0051\0051\0051\0051\0051\0051\0051\0051\018j\0051\t\194\t\198\000\242\t\202\t\210\0051\r6\0051\0051\0051\016\218\001^\018v\018\210\019\022\t\214\t\218\0051\019*\0051\0051\016\226\0051\0051\0051\0051\t\222\001v\t\226\001\134\016\230$\210\0051\0219\0051\0051\004\n\0051\0051\0051\0051\0051\0051\0051\nf\017Z\0051\0051\0051\017r\007\166\0051\0051\019.\0219\0051\0051\0051\0051\021i\002\206\021i\n\173\021i\006\006\021i\021i\021i\000\n\021i\021i\021i\021i\001\230\021i\021i\002\210\011y\021i\021i\021i\011y\021i\021i\021i\021i\002\137\021i\002\137\021i\021i\021i\021i\021i\b\"\021i\021i\021i\001\130\017\202\021i\002\137\021i\001n\021i\021i\021i\021i\021i\021i\000\242\021i\001\242\021i\000\242\021i\012\186\021i\021i\021i\003\226\001~\021i\021i\021i\021i\021i\021i\021i\021i\011\230\021i\004\210\021i\021i\021i\021i\021i\021i\021i\021i\021i\021i\021i\002\017\021i\021i\021i\021i\021i\021i\021i\011\173\021i\021i\021i5G\004\218\004~\001\246\021i\021i\021i\021i\n&\021i\021i\006\n\021i\021i\021i\021i\021i\021i\021i\021i\000\242\021i\021i\001b\021i\021i\005\153\021i\021i\021i\021i\021i\021i\021i\021i\021i\021i\021i\021i\021i\021i\021i\021i\001b\005\153\021i\021i\021i\021i\002\017\002\017\002\017\007\166\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\b\194\004\242\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\018\242\002\017\002\017\002\017\002\017\002\017\001\142\002\017\002\017\002\017\004F\002\017\002\017\r6\002\017\b\206\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017!\210\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\004\210\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\012N\002\017\002\017\002\017\bU\004\218\005\233\021\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\n\206\017\146\002\017'\198\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\016M\001\006\016M\001\190\016M\014\157\016M\016M\016M\t\237\016M\016M\016M\016M\002\218\016M\016M\n\181\006>\016M\016M\016M\028\234\016M\016M\016M\016M\003\174\016M.^\016M\016M\016M\016M\016M\003\n\016M\016M\016M\005\233\t\237\016M\t\237\016M\001\186\016M\016M\016M\016M\016M\016M\000\242\016M\001\146\016M&z\016M\021\017\016M\016M\016M\r&\002\226\016M\016M\016M\016M\016M\016M\016M\016M\004F\016M\004\210\016M\016M\016M\016M\016M\016M\016M\016M\016M\016M\016M\001\198\016M\016M\016M\016M\016M\016M\016M\t\006\016M\016M\016M\bR\004\218\bb\001\230\016M\016M\016M\016M\014\145\016M\016M\014\157\016M\016M\016M\016M\016M\018J\016M\018\194\011n\018\202\016M\016&\016M\016M\028\238\016M\016M\016M\016M\016M\016M\016M\016M\016M\016M\016M\016M\016M\016M\016M\016M\011\161\016M\016M\016M\016M\016M\006\025\003\226\006\025\002\002\006\025\000\242\006\025\006\025\006\025\t\237\006\025\006\025\006\025\006\025\003\182\006\025\006\025\b2\006\210\006\025\006\025\006\025\007\237\006\025\006\025\006\025\006\025\003\242\006\025\"\146\006\025\006\025\006\025\006\025\006\025\b\022\006\025\006\025\006\025\005v\t\237\006\025\t\237\006\025\b\214\006\025\006\025\006\025\006\025\006\025\006\025\"\154\006\025\011]\006\025\t\n\006\025\011]\006\025\006\025\006\025\004F\014\145\006\025\006\025\006\025\006\025\006\025\006\025\006\025\006\025\b\226\006\025\004\210\006\025\006\025\006\025\006\025\006\025\006\025\006\025\006\025\006\025\006\025\006\025\r6\018:\006\025\006\025\018B\006\025\006\025\018\186\0042\006\025\006\025\006\025\003\242\004\218\002\006\000\242\006\025\006\025\006\025\006\025\012\141\006\025\006\025\b\026\006\025\006\025\006\025\006\025\006\025\018J\006\025\018\194\015\026\018\202\006\025\003\250\006\025\006\025\002\134\006\025\006\025\006\025\006\025\006\025\006\025\006\025\006\025\006\025\006\025\006\025\006\025\006\025\006\025\006\025\006\025\011]\006\025\006\025\006\025\006\025\006\025\006\t\007\190\006\t\000\242\006\t\003\242\006\t\006\t\006\t\002\150\006\t\006\t\006\t\006\t\003:\006\t\006\t\004\146\r.\006\t\006\t\006\t\005\138\006\t\006\t\006\t\006\t\007\142\006\t\017\202\006\t\006\t\006\t\006\t\006\t\003B\006\t\006\t\006\t\007\237\007\237\006\t\003v\006\t\000\242\006\t\006\t\006\t\006\t\006\t\006\t\014\130\006\t\011a\006\t\007\237\006\t\011a\006\t\006\t\006\t\"V\028\234\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\003\254\006\t\011a\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\007\237\018:\006\t\006\t\018B\006\t\006\t\018\186\002\238\006\t\006\t\006\t\014\134)\170\015\006\000\242\006\t\006\t\006\t\006\t\003\178\006\t\006\t\007\237\006\t\006\t\006\t\006\t\006\t\018J\006\t\018\194\003\182\018\202\006\t\b2\006\t\006\t\030\178\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\t\174\006\t\006\t\006\t\006\t\006\t\015\233\011a\015\233\"\238\015\233\003&\015\233\015\233\015\233\007\237\015\233\015\233\015\233\015\233\t\174\015\233\015\233\028\238\001\145\015\233\015\233\015\233\000\242\015\233\015\233\015\233\015\233\004\002\015\233\012\210\015\233\015\233\015\233\015\233\015\233\030\186\015\233\015\233\015\233\001\145\r\002\015\233\b\138\015\233-\222\015\233\015\233\015\233\015\233\015\233\015\233\001\202\015\233\t\170\015\233\018N\015\233\026\166\015\233\015\233\015\233\007\186\028\234\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\030:\015\233\030F\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\001\206\015\233\015\233\015\233\015\233\015\233\015\233\015\233%r\015\233\015\233\015\233\004J\004z\001\210\r\"\015\233\015\233\015\233\015\233\007\246\015\233\015\233\003*\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\001\145\015\233\015\233\004\222\015\233\015\233\004\230\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\015\233\012\210\001\145\015\233\015\233\015\233\015\233\015\249\030\234\015\249\001\145\015\249\r\002\015\249\015\249\015\249\005\170\015\249\015\249\015\249\015\249\005\222\015\249\015\249\028\238\001\141\015\249\015\249\015\249!Z\015\249\015\249\015\249\015\249\007\190\015\249\018\134\015\249\015\249\015\249\015\249\015\249\005\238\015\249\015\249\015\249\001\141\r\002\015\249\b\166\015\249\b\186\015\249\015\249\015\249\015\249\015\249\015\249\015B\015\249\000\242\015\249\004\166\015\249\026\222\015\249\015\249\015\249\001\230\016B\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\014\193\015\249\004\210\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\016N\015\249\015\249\015\249\015\249\015\249\015\249\015\249\016r\015\249\015\249\015\249\000\242\004\218\016~\031\022\015\249\015\249\015\249\015\249\016V\015\249\015\249\030\234\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\001\141\015\249\015\249\005\226\015\249\015\249.\214\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\015\249\018\134\001\141\015\249\015\249\015\249\015\249\015\241(\186\015\241\001\141\015\241\r\002\015\241\015\241\015\241\005\138\015\241\015\241\015\241\015\241\007\158\015\241\015\241\004\210\014\158\015\241\015\241\015\241\r6\015\241\015\241\015\241\015\241\n\138\015\241\n\158\015\241\015\241\015\241\015\241\015\241\016\226\015\241\015\241\015\241\b\250\b\254\015\241\004\218\015\241\005\246\015\241\015\241\015\241\015\241\015\241\015\241\007\153\015\241\b\129\015\241&\250\015\241\027\022\015\241\015\241\015\241\031\022\005F\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\005\018\015\241\004\210\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\"~\015\241\015\241\015\241\015\241\015\241\015\241\015\241!\n\015\241\015\241\015\241\000\242\004\218\012R\003\154\015\241\015\241\015\241\015\241\014\169\015\241\015\241\014\210\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\bY\015\241\015\241\006j\015\241\015\241\006\170\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\015\241\002\026\001\242\015\241\015\241\015\241\015\241\015\221\tf\015\221&\130\015\221\000\242\015\221\015\221\015\221\005\014\015\221\015\221\015\221\015\221\004\210\015\221\015\221\004F\015:\015\221\015\221\015\221\r6\015\221\015\221\015\221\015\221\003\242\015\221\006\254\015\221\015\221\015\221\015\221\015\221\019\182\015\221\015\221\015\221\004\218\002\030\015\221\001\246\015\221\007>\015\221\015\221\015\221\015\221\015\221\015\221\026\210\015\221\027\n\015\221\000\242\015\221\027R\015\221\015\221\015\221\002\"\014\169\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\005*\015\221\004\210\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\004Z\015\221\015\221\015\221\015\221\015\221\015\221\015\221\nF\015\221\015\221\015\221\011\014\004\218\011\"\003\154\015\221\015\221\015\221\015\221\015V\015\221\015\221\030\234\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\t\015\221\015\221\r6\015\221\015\221\007\254\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\015\221\002\137\002\137\015\221\015\221\015\221\015\221\015\229\tf\015\229\011V\015\229\011j\015\229\015\229\015\229\bF\015\229\015\229\015\229\015\229\004\210\015\229\015\229\004F\015\142\015\229\015\229\015\229\000\n\015\229\015\229\015\229\015\229\011\182\015\229\011\202\015\229\015\229\015\229\015\229\015\22957\015\229\015\229\015\229\004\218\002\137\015\229\002\137\015\229\016\226\015\229\015\229\015\229\015\229\015\229\015\229\007\149\015\229\006F\015\229\002\137\015\229\027\138\015\229\015\229\015\229\031\022\bJ\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\150\015\229\004\210\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229 \178\015\229\015\229\015\229\015\229\015\229\015\229\015\229!\"\015\229\015\229\015\229\000\242\004\218\000\242\030\234\015\229\015\229\015\229\015\229\015\174\015\229\015\229\017\202\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229\000\242\015\229\015\229\030\234\015\229\015\229\000\242\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229\015\229\"j\0119\015\229\015\229\015\229\015\229\015\225\006J\015\225\bV\015\225\003\242\015\225\015\225\015\225&f\015\225\015\225\015\225\015\225\003\182\015\225\015\225\b2\025f\015\225\015\225\015\225\r6\015\225\015\225\015\225\015\225\004F\015\225\b^\015\225\015\225\015\225\015\225\015\225\b\006\015\225\015\225\015\225\018\n\017\202\015\225\r6\015\225\b\142\015\225\015\225\015\225\015\225\015\225\015\225\015\182\015\225\031\022\015\225\000\242\015\225\027\194\015\225\015\225\015\225\001\2305'\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\003\254\015\225\031\022\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225!:\015\225\015\225\015\225\015\225\015\225\015\225\015\225\004F\015\225\015\225\015\225\000\242\005\210\b\146\007\237\015\225\015\225\015\225\015\225%\214\015\225\015\225\003R\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225&j\015\225\015\225\030\234\015\225\015\225\005\218\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\030\234\007\237\015\225\015\225\015\225\015\225\015\237\007\190\015\237\020*\015\237\007\237\015\237\015\237\015\237\b\158\015\237\015\237\015\237\015\237\001\230\015\237\015\237\004\210\000\242\015\237\015\237\015\237\r6\015\237\015\237\015\237\015\237\012\218\015\237\012\234\015\237\015\237\015\237\015\237\015\237\027\246\015\237\015\237\015\237\b\2500\182\015\237\004\218\015\237\b\170\015\237\015\237\015\237\015\237\015\237\015\237\028.\015\237\028f\015\2370\198\015\237\028\002\015\237\015\237\015\237\003\234\024\246\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\237\b\174\015\237\031\022\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\2371\002\015\237\015\237\015\237\015\237\015\237\015\237\015\237\031\022\015\237\015\237\015\237 \210\006\138\t\018\004\002\015\237\015\237\015\237\015\237%\238\015\237\015\237\0262\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\237 \234\015\237\015\237$\226\015\237\015\237\t\022\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\237\015\237\b\250\b\254\015\237\015\237\015\237\015\237\015\253\004\014\015\253\012\210\015\253\006\222\015\253\015\253\015\253\016*\015\253\015\253\015\253\015\253\r\002\015\253\015\253\007\237\030\234\015\253\015\253\015\253\000\242\015\253\015\253\015\253\015\253\006\218\015\253\tn\015\253\015\253\015\253\015\253\015\253\0296\015\253\015\253\015\253!v\011=\015\253\007\237\015\253\004F\015\253\015\253\015\253\015\253\015\253\015\253\029B\015\253\029N\015\253\000\242\015\253\028:\015\253\015\253\015\253\b\014\025n\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\r6\015\253\000\242\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\002\169\015\253\015\253\015\253\015\253\015\253\015\253\015\253\r6\015\253\015\253\015\253\004F#\006(\n\004\002\015\253\015\253\015\253\015\253\007\030\015\253\015\253\t\201\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\031\022\015\253\015\253\030\234\015\253\015\253\n\018\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\015\253\nZ!\138\015\253\015\253\015\253\015\253\015\245\003\226\015\245&\006\015\245#\n\015\245\015\245\015\245\b\154\015\245\015\245\015\245\015\245\004\210\015\245\015\245\004\210\030\234\015\245\015\245\015\245\000\242\015\245\015\245\015\245\015\245\007\190\015\245\n\130\015\245\015\245\015\245\015\245\015\245\n\142\015\245\015\245\015\245\004\218\005\138\015\245\004\218\015\245\n\146\015\245\015\245\015\245\015\245\015\245\015\245\004F\015\245\002V\015\245\000\242\015\245\028r\015\245\015\245\015\245\011\018\025\182\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\2453\138\015\245\031\022\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\245\003\242\015\245\015\245\015\245\015\245\015\245\015\245\015\245\r6\015\245\015\245\015\245&\030(~\002\234\001\230\015\245\015\245\015\245\015\245#\030\015\245\015\245#\202\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\245\031\022\015\245\015\245$\246\015\245\015\245\012\193\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\245\015\245\014\181&6\015\245\015\245\015\245\015\245\0165\t>\0165\018\134\0165\016\178\0165\0165\0165\b\182\0165\0165\0165\0165\r\002\0165\0165\004F\030\234\0165\0165\0165\000\242\0165\0165\0165\0165\r\030\0165\rb\0165\0165\0165\0165\0165\011\022\0165\0165\0165%\146\000\242\0165\rj\0165$:\0165\0165\0165\0165\0165\0165\002\250\0165\n\154\0165\000\242\0165\028\162\0165\0165\0165(R\026:\0165\0165\0165\0165\0165\0165\0165\0165\t\221\0165\004\210\0165\0165\0165\0165\0165\0165\0165\0165\0165\0165\0165\011Z\0165\0165\0165\0165\0165\0165\0165\r6\0165\0165\0165\014\181\004\218\000\242\021\r\0165\0165\0165\0165\011\030\0165\0165\030\234\0165\0165\0165\0165\0165\0165\0165\0165\031\022\0165\0165\030\234\0165\0165\011^\0165\0165\0165\0165\0165\0165\0165\0165\0165\0165\0165\0165\0165\0165\0165\0165\011\198%\170\0165\0165\0165\0165\006\005\030\234\006\005\011\134\006\005\000\242\006\005\006\005\006\005+r\006\005\006\005\006\005\006\005\011\162\006\005\006\005\004\210'\130\006\005\006\005\006\005%\190\006\005\006\005\006\005\006\005\r\130\006\005\014\014\006\005\006\005\006\005\006\005\006\005\011\186\006\005\006\005\006\005\007\237\000\242\006\005\004\218\006\005\011\190\006\005\006\005\006\005\006\005\006\005\006\005\r\146\006\005\r\174\006\005\000\242\006\005\021\r\006\005\006\005\006\005\031\022\003\022\006\005\006\005\006\005\006\005\006\005\006\005\006\005\006\005(\242\006\005\031\022\006\005\006\005\006\005\006\005\006\005\006\005\006\005\006\005\006\005\006\005\006\005&N\018:\006\005\006\005\018B\006\005\006\005\018\186\tr\006\005\006\005\006\005\000\242(\002\000\242\031\022\006\005\006\005\006\005\006\005\016\226\006\005\006\005/\002\006\005\006\005\006\005\006\005\006\005\018J\006\005\018\194+v\018\202\006\005\016&\006\005\006\005\012\002\006\005\006\005\006\005\006\005\006\005\006\005\006\005\006\005\006\005\006\005\006\005\006\005\006\005\006\005\006\005\006\005\tv\006\005\006\005\006\005\006\005\006\005\015\205\012V\015\205\021\157\015\205\0111\015\205\015\205\015\205\r\246\015\205\015\205\015\205\015\205\001\230\015\205\015\205\021\157\012\026\015\205\015\205\015\205(\174\015\205\015\205\015\205\015\205\012j\015\2051\030\015\205\015\205\015\205\015\205\015\205\012v\015\205\015\205\015\205\007\237\r\158\015\205\r\178\015\205\012\222\015\205\015\205\015\205\015\205\015\205\015\20516\015\205\004\002\015\205\000\242\015\205(N\015\205\015\205\015\205\n:\012\230\015\205\015\205\015\205\015\205\015\205\015\205\015\205\015\205\014*\015\205\007\237\015\205\015\205\015\205\015\205\015\205\015\205\015\205\015\205\015\205\015\205\015\205\rV\018:\015\205\015\205\018B\015\205\015\205\018\186\002v\015\205\015\205\015\2055\007(V\000\242\n:\015\205\015\205\015\205\015\205\014b\015\205\015\205\t\213\015\205\015\205\015\205\015\205\015\205\018J\015\205\018\194\000\242\018\202\015\205\000\242\015\205\015\205\r^\015\205\015\205\015\205\015\205\015\205\015\205\015\205\015\205\015\205\015\205\015\205\015\205\015\205\015\205\015\205\015\205\001\246\015\205\015\205\015\205\015\205\015\205\002\193\r\134\002\193\007\237\002\193\000\242\003\150\003\154\002\193\r\138\003j\002\193\019\130\002\193\004\210\bf\002\193\003\154\016\130\002\193\002\193\002\193*\234\002\193\002\193\002\193\001\234\r\230\019\154\r\250\bn\002\193\002\193\002\193\002\193\016\138\002\193\019\162\002\193\004\218\014\026\br\014.\tZ\r\150\002\193\002\193\002\193\002\193\002\193\002\193\014R\t\134\014f\001\190\016\206\002\193)\202\002\193\002\193\003\138\011\129\r\162\t\142\t\150\002\193\002\193\002\193\t\158\t\166\t\182\011V\019\170\015\022\002\193\t\190\002\193\002\193\002\193\002\193\002\193\002\193\002\193\002\193\002\193\r\166\018:\t\194\t\198\018B\t\202\t\210\018\186\016\182\002\193\002\193\002\193\r\234)\210.2\r\014\002\193\t\214\t\218\002\1932b\002\193\002\193\t\193\002\193\002\193\002\193\002\193\t\222\019\178\t\226\018\194\001\230\027B\002\193\r\238\002\193\002\193%j\002\193\002\193\002\193\002\193\002\193\002\193\002\193\nf\017Z\002\193\002\193\002\193\017r\007\166\002\193\002\193\001\246)\242\002\193\002\193\002\193\002\193\016!\rv\016!\018\142\016!\018\158\003\150\003\154\016!\014\018\003j\016!\016!\016!\003\182\bf\016!\b2-\146\016!\016!\016!\005Q\016!\016!\016!\001\234\016&\016!\014\030\bn\016!\016!\016!\016!\014\"\016!\016!\016!\025\250\019\134\br\019\150\tZ\014J\016!\016!\016!\016!\016!\016!\014\237\t\134\000\242\001\190\019\222\016!\019\238\016!\016!\003\138\003v(>\t\142\t\150\016!\016!\016!\t\158\t\166\t\182*\246\016!\004\210\016!\t\190\016!\016!\016!\016!\016!\016!\016!\016!\016!\000\242\016!\t\194\t\198\016!\t\202\t\210\016!\018.\016!\016!\016!\014V\004\218&\142\r\014\016!\t\214\t\218\016!\016\226\016!\016!\000\242\016!\016!\016!\016!\t\222\016!\t\226\016!\014Z\016!\016!\025\134\016!\016!\t\170\016!\016!\016!\016!\016!\016!\016!\nf\017Z\016!\016!\016!\017r\007\166\016!\016!\014\186\016\182\016!\016!\016!\016!\016\029\024\134\016\029\024\150\016\029\r6\003\150\003\154\016\029-\250\003j\016\029\016\029\016\029\014\194\bf\016\029\014\2412\246\016\029\016\029\016\029\011\158\016\029\016\029\016\029\001\234\011V\016\029\011\146\bn\016\029\016\029\016\029\016\029\027\242\016\029\016\029\016\029\tn4\194\br\001\246\tZ\014\246\016\029\016\029\016\029\016\029\016\029\016\029\025\234\t\134\025\254\001\190\000\242\016\029\0292\016\029\016\029\003\138\tn\026R\t\142\t\150\016\029\016\029\016\029\t\158\t\166\t\182\030Z\016\029\030j\016\029\t\190\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\015\002\016\029\t\194\t\198\016\029\t\202\t\210\016\029\r6\016\029\016\029\016\029\015*(Z&\n\r\014\016\029\t\214\t\218\016\029\015f\016\029\016\029\001\230\016\029\016\029\016\029\016\029\t\222\016\029\t\226\016\029\015n\016\029\016\029\015v\016\029\016\029\015\194\016\029\016\029\016\029\016\029\016\029\016\029\016\029\nf\017Z\016\029\016\029\016\029\017r\007\166\016\029\016\029\015\202\003\154\016\029\016\029\016\029\016\029\003E!\186\003E\t\217\003E\015\005\003\150\003\154\003E06\003j\003E\019\130\003E#2\bf\003E\014]\005\213\003E\003E\003E\011\153\003E\003E\003E\001\234\003\242\019\154\016\026\bn\003E\003E\003E\003E\0162\003E\019\162\003E\tN\001\006\br\001\190\tZ\tr\003E\003E\003E\003E\003E\003E\007\237\t\134\002\130\001\190(\022\003E\b\005\003E\003E\003\138\000\242\016\154\t\142\t\150\003E\003E\003E\t\158\t\166\t\182+V\019\170\b\005\003E\t\190\003E\003E\003E\003E\003E\003E\003E\003E\003E\017\n\003E\t\194\t\198'\202\t\202\t\210\003E+\170\003E\003E\003E\000\242)\158%\194\r\014\003E\t\214\t\218\003E\016\226\003E\003E\t\193\003E\003E\003E\003E\t\222\017\026\t\226\b\005\007\237\014]\003E\tN\003E\003E\017\190\003E\003E\003E\003E\003E\003E\003E\nf\017Z\003E\003E\003E\017r\007\166\003E\003E\0211\007\237\003E\003E\003E\003E\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237(\026\007\237\007\202\007\237\007\237\0211\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237(\134\007\237\007\237\tr\007\237\000\242\007\237\007\237\007\237\000\242\007\237\007\237\007\237\007\237\007\237\000\242\017\234\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\000\242\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\000\242\007\237\007\237\007\237\007\237\007\237.\"\007\237\007\237\007\237\007\237\007\237\001\006\007\237\001\190\012\189\007\237\007\237\007\237\007\237\007\237\007\237/\014\007\237\007\237\007\237\007\237\017\250\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\007\237\0215\007\237\007\237\007\237+\030\007\237\007\237\007\237\007\237\007\237\007\237\000\242\000\242\007\237\000\242\007\237\007\218\007\237\002\178\007\2372n\0215\007\237\007\237\007\237\007\2372\174\002\137\007\237\007\237\007\237\007\237'\246\007\237\007\237\000\169\007\237\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\007\237\000\169\000\242\000\169\000\169\018>\000\169\000\169\000\169)\014)\206\000\169\000\169\000\n\000\169\000\169\000\169\000\169\024\246\000\169\021\165\000\169\000\169-\234\000\169-\254\000\169\000\169\000\169\004F\000\169\000\169\000\169\002\137\000\169)\150*\190\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\002\137\002\137\000\169\000\169\bf\004\002\000\169\000\169\000\169\018\146\000\169\000\169\000\169\000\169\000\169\000\169(\198\000\169\000\169\000\169\000\169\004F\n\182\000\169\b\194*\n\000\169\004F\000\169\000\169\000\169\000\169\016&\000\169\000\169\000\169\b\198\b\202\n\186\002\190+\002\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\0046\b\206\003\226\000\169\014\197\001\173\000\169)\214\000\169\003\186\003\198\000\226\000\242\000\242\t\190\000\169\003\210(z.j*\018.z*b\000\169\000\169\000\169\000\169\001\173\018\154\000\169\000\169\000\169\000\006*Z\000\169\011Q\003\146\003\150\003\154\003\214\003\158\003j\t\214\003\170(\130\012\177\bf\001\n\tV\000\242\018\190\011m\003v*2*\146\011m\011Q\001\234\021\177\t\1971N\t\138\001\018\017\158\017\162\001\030\012\142\001\"(\206\012\185\012\154\nf\br\012\181\tZ\019\002&V\001&\014\197\018\022\018\026\011Q\012\166\t\134\012\178\012\182\018\030\015\214\016\n\0016\011Q\003\138(\206\019\138\t\142\t\150\011Q\011Q\000\242\t\158\t\166\t\182\017f\0182\002v\001\173\t\190\011Q\011Q\001:\001>\001B\001F\001J/\n\002z\018j\014\197\t\194\t\198\001N\t\202\t\210\001\234\011I\011m\003V\001R\012\210\001\173\018v\018\210\019\022\t\214\t\218*V\019*\001\173\001V\r\002\019\146\011Q\t\014\019\158\t\222\001Z\t\226\001\173\011Y\016\018\019\226\001\246\011Y\011Q3\002\012\210\019\234\003\138\001\150\011\158\000\242*^\nf\017Z2j\001\154\r\002\030\198\007\166\001\162\001\166\019.+\210\001\170\000\006\001\174\001\178\002!\003\146\003\150\003\154\024\138\003\158\003j2\254\003\170\012\177\024\146\bf\001\n\tV\012\210\025\n\016\014\017\154\016\030\017B\011\137\002!\001\234\021%\011\137\r\002\t\138\001\018\017\158\017\162\001\030\012\142\001\"\000\242\025\"\012\154\021%\br\tY\tZ\025F\017\166\001&\025Z\018\022\018\026\002!\012\166\t\134\012\178\012\182\018\030\015\214\000\242\0016\002!\003\138\n)\011Y\t\142\t\150\002!\002!\000\242\t\158\t\166\t\182\017f\0182\004F\021%\t\190\002!\002!\001:\001>\001B\001F\001J\012\n\n\026\018j\030\234\t\194\t\198\001N\t\202\t\210\011V\025z\011\146\025\146\001R\tY\003\242\018v\018\210\019\022\t\214\t\218\018f\019*\002^\001V\b\214\025\162\002!\011\137\021%\t\222\001Z\t\226\021%0\186\025\194\tY\b\218\b\222\002!\025\206\025\238\025\242\026F\001\150\011\254\000\242\003\182\nf\017Z\b2\001\154\b\226\030\198\007\166\001\162\001\166\019.\026^\001\170\026n\001\174\001\178\003I3B\003I.\202\003I\026\162\003\150\003\154\003I\026\218\003j\003I\n)\003I\027\018\bf\003I\027N4\190\003I\003I\003I\027\134\003I\003I\003I\001\234\027\190\"\254\027\254\bn\003I\003I\003I\003I\0286\003I\028n\003I\031\022\011\174\br\028\250\tZ\011B\003I\003I\003I\003I\003I\003I\011\234\t\134\029\002\001\190\005U\003I\011\242\003I\003I\003\138\029\018\012\210\t\142\t\150\003I\003I\003I\t\158\t\166\t\182\014\217\005U\r\002\003I\t\190\003I\003I\003I\003I\003I\003I\003I\003I\003I\029\030\018:\t\194\t\198\018B\t\202\t\210\018\186\004F\003I\003I\003I\029*\029>%~\r\014\003I\t\214\t\218\003I\029J\003I\003I\029V\003I\003I\003I\003I\t\222\018J\t\226\018\194#\134\018\202\003I\029~\003I\003I\0306\003I\003I\003I\003I\003I\003I\003I\nf\017Z\003I\003I\003I\017r\007\166\003I\003I\030B\030N\003I\003I\003I\003I\003!\030^\003!\030f\003!\030\206\003\150\003\154\003! \222\003j\003!\002\137\003!!.\bf\003!!~!\150\003!\003!\003!!\202\003!\003!\003!\001\234!\234\"\138\"\174\bn\003!\003!\003!\003!\"\186\003!\"\206\003!\000\n\"\242\br\n\002\tZ#\018\003!\003!\003!\003!\003!\003!#\022\t\134#B\001\190#b\003!#\210\003!\003!\003\138#\226#\246\t\142\t\150\003!\003!\003!\t\158\t\166\t\182$*\002\137\014Y\003!\t\190\003!\003!\003!\003!\003!\003!\003!\003!\003!$6\018:\t\194\t\198\018B\t\202\t\210\018\186$F\003!\003!\003!$\134$\150%B\r\014\003!\t\214\t\218\003!$\198\003!\003!%\n\003!\003!\003!\003!\t\222\018J\t\226\018\194\000\242\018\202\003!%>\003!\003!%z\003!\003!\003!\003!\003!\003!\003!\nf\017Z\003!\003!\003!\017r\007\166\003!\003!%\1780j\003!\003!\003!\003!\003U%\250\003U&B\003U&\138\003\150\003\154\003U'V\003j\003U'Z\003U'z\bf\003U'\146'\150\003U\003U\003U(&\003U\003U\003U\001\234(*\014Y(b\bn\003U\003U\003U\003U(f\003U(\142\003U\014\197(\146\br(\170\tZ)\"\003U\003U\003U\003U\003U\003U)R\t\134)V\001\190)z\003U)\166\003U\003U\003\138)\182)\222\t\142\t\150\003U\003U\003U\t\158\t\166\t\182)\226)\238)\254\003U\t\190\003U\003U\003U\003U\003U\003U\003U\003U\003U*\026\018:\t\194\t\198\018B\t\202\t\210\018\186**\003U\003U\003U*>*j%\014\r\014\003U\t\214\t\218\003U*n\003U\003U*z\003U\003U\003U\003U\t\222\018J\t\226\018\194*\138\018\202\003U*\158\003U\003U+\134\003U\003U\003U\003U\003U\003U\003U\nf\017Z\003U\003U\003U\017r\007\166\003U\003U+\150+\162\003U\003U\003U\003U\r!+\202\r!+\214\r!,\006\003\150\003\154\r!,*\003j\r!,R\r!,\190\bf\r!-\006-\014\r!\r!\r!-&\r!\r!\r!\001\234-2-\170-\190\bn\r!\r!\r!\r!-\226\r!-\238\r!-\242..\br.b\tZ.n\r!\r!\r!\r!\r!\r!.v\t\134.\178\001\190.\194\r!.\250\r!\r!\003\138/./V\t\142\t\150\r!\r!\r!\t\158\t\166\t\182/b/\154/\166\r!\t\190\r!\r!\r!\r!\r!\r!\r!\r!\r!/\198\018:\t\194\t\198\018B\t\202\t\210\018\186/\210\r!\r!\r!/\230/\242\t\234\r\014\r!\t\214\t\218\r!0\022\r!\r!0R\r!\r!\r!\r!\t\222\018J\t\226\018\1940\206\018\202\r!0\234\r!\r!1\n\r!\r!\r!\r!\r!\r!\r!\nf\017Z\r!\r!\r!\017r\007\166\r!\r!1\0221\142\r!\r!\r!\r!\003Y1\146\003Y1\174\003Y1\178\003\150\003\154\003Y2&\003j\003Y2.\003Y2\142\bf\003Y2\2063\"\003Y\003Y\003Y3b\003Y\003Y\003Y\001\2343\1703\2424n\bn\003Y\003Y\003Y\003Y4z\003Y4\130\003Y4\1394\155\br4\174\tZ4\202\003Y\003Y\003Y\003Y\003Y\003Y4\231\t\1344\247\001\1905\019\003Y5g\003Y\003Y\003\1385\1315\142\t\142\t\150\003Y\003Y\003Y\t\158\t\166\t\1825\2275\2475\255\003Y\t\190\003Y\003Y\003Y\003Y\003Y\003Y\003Y\003Y\003Y6;\018:\t\194\t\198\018B\t\202\t\210\018\1866C\003Y\003Y\003Y\000\000\000\000\012\194\r\014\003Y\t\214\t\218\003Y\000\000\003Y\003Y\000\000\003Y\003Y\003Y\003Y\t\222\018J\t\226\018\194\000\000\018\202\003Y\000\000\003Y\003Y\000\000\003Y\003Y\003Y\003Y\003Y\003Y\003Y\nf\017Z\003Y\003Y\003Y\017r\007\166\003Y\003Y\000\000\000\000\003Y\003Y\003Y\003Y\003Q\000\000\003Q\000\000\003Q\000\000\003\150\003\154\003Q\000\000\003j\003Q\000\000\003Q\000\000\bf\003Q\000\000\000\000\003Q\003Q\003Q\000\000\003Q\003Q\003Q\001\234\000\000\000\000\000\000\bn\003Q\003Q\003Q\003Q\000\000\003Q\000\000\003Q\000\000\000\000\br\000\000\tZ\000\000\003Q\003Q\003Q\003Q\003Q\003Q\000\000\t\134\000\000\001\190\000\000\003Q\000\000\003Q\003Q\003\138\000\000\000\000\t\142\t\150\003Q\003Q\003Q\t\158\t\166\t\182\000\000\000\000\000\000\003Q\t\190\003Q\003Q\003Q\003Q\003Q\003Q\003Q\003Q\003Q\000\000\018:\t\194\t\198\018B\t\202\t\210\018\186\000\000\003Q\003Q\003Q\000\000\000\000\012\242\r\014\003Q\t\214\t\218\003Q\000\000\003Q\003Q\000\000\003Q\003Q\003Q\003Q\t\222\018J\t\226\018\194\000\000\018\202\003Q\000\000\003Q\003Q\000\000\003Q\003Q\003Q\003Q\003Q\003Q\003Q\nf\017Z\003Q\003Q\003Q\017r\007\166\003Q\003Q\000\000\000\000\003Q\003Q\003Q\003Q\r9\000\000\r9\000\000\r9\000\000\003\150\003\154\r9\000\000\003j\r9\000\000\r9\000\000\bf\r9\000\000\000\000\r9\r9\r9\000\000\r9\r9\r9\001\234\000\000\000\000\000\000\bn\r9\r9\r9\r9\000\000\r9\000\000\r9\000\000\000\000\br\000\000\tZ\000\000\r9\r9\r9\r9\r9\r9\000\000\t\134\000\000\001\190\000\000\r9\000\000\r9\r9\003\138\000\000\000\000\t\142\t\150\r9\r9\r9\t\158\t\166\t\182\000\000\000\000\000\000\r9\t\190\r9\r9\r9\r9\r9\r9\r9\r9\r9\000\000\018:\t\194\t\198\018B\t\202\t\210\018\186\000\000\r9\r9\r9\000\000\000\000\015\250\r\014\r9\t\214\t\218\r9\000\000\r9\r9\000\000\r9\r9\r9\r9\t\222\018J\t\226\018\194\000\000\018\202\r9\000\000\r9\r9\000\000\r9\r9\r9\r9\r9\r9\r9\nf\017Z\r9\r9\r9\017r\007\166\r9\r9\000\000\000\000\r9\r9\r9\r9\rQ\000\000\rQ\000\000\rQ\000\000\003\150\003\154\rQ\000\000\003j\rQ\000\000\rQ\000\000\bf\rQ\000\000\000\000\rQ\rQ\rQ\000\000\rQ\rQ\rQ\001\234\000\000\000\000\000\000\bn\rQ\rQ\rQ\rQ\000\000\rQ\000\000\rQ\000\000\000\000\br\000\000\tZ\000\000\rQ\rQ\rQ\rQ\rQ\rQ\000\000\t\134\000\000\001\190\000\000\rQ\000\000\rQ\rQ\003\138\000\000\000\000\t\142\t\150\rQ\rQ\rQ\t\158\t\166\t\182\000\000\000\000\000\000\rQ\t\190\rQ\rQ\rQ\rQ\rQ\rQ\rQ\rQ\rQ\000\000\018:\t\194\t\198\018B\t\202\t\210\018\186\000\000\rQ\rQ\rQ\000\000\000\000\018V\r\014\rQ\t\214\t\218\rQ\000\000\rQ\rQ\000\000\rQ\rQ\rQ\rQ\t\222\018J\t\226\018\194\000\000\018\202\rQ\000\000\rQ\rQ\000\000\rQ\rQ\rQ\rQ\rQ\rQ\rQ\nf\017Z\rQ\rQ\rQ\017r\007\166\rQ\rQ\000\000\000\000\rQ\rQ\rQ\rQ\r\129\000\000\r\129\000\000\r\129\000\000\003\150\003\154\r\129\000\000\003j\r\129\000\000\r\129\000\000\bf\r\129\000\000\000\000\r\129\r\129\r\129\000\000\r\129\r\129\r\129\001\234\000\000\000\000\000\000\bn\r\129\r\129\r\129\r\129\000\000\r\129\000\000\r\129\000\000\000\000\br\000\000\tZ\000\000\r\129\r\129\r\129\r\129\r\129\r\129\000\000\t\134\000\000\001\190\000\000\r\129\000\000\r\129\r\129\003\138\000\000\000\000\t\142\t\150\r\129\r\129\r\129\t\158\t\166\t\182\000\000\000\000\000\000\r\129\t\190\r\129\r\129\r\129\r\129\r\129\r\129\r\129\r\129\r\129\000\000\018:\t\194\t\198\018B\t\202\t\210\018\186\000\000\r\129\r\129\r\129\000\000\000\000\018\166\r\014\r\129\t\214\t\218\r\129\000\000\r\129\r\129\000\000\r\129\r\129\r\129\r\129\t\222\018J\t\226\018\194\000\000\018\202\r\129\000\000\r\129\r\129\000\000\r\129\r\129\r\129\r\129\r\129\r\129\r\129\nf\017Z\r\129\r\129\r\129\017r\007\166\r\129\r\129\000\000\000\000\r\129\r\129\r\129\r\129\003%\000\000\003%\000\000\003%\000\000\003\150\003\154\003%\000\000\003j\003%\000\000\003%\000\000\bf\003%\000\000\000\000\003%\003%\003%\000\000\003%\003%\003%\001\234\000\000\000\000\000\000\bn\003%\003%\003%\003%\000\000\003%\000\000\003%\000\000\000\000\br\000\000\tZ\000\000\003%\003%\003%\003%\003%\003%\000\000\t\134\000\000\001\190\000\000\003%\000\000\003%\003%\003\138\000\000\000\000\t\142\t\150\003%\003%\003%\t\158\t\166\t\182\000\000\000\000\000\000\003%\t\190\003%\003%\003%\003%\003%\003%\003%\003%\003%\000\000\018:\t\194\t\198\018B\t\202\t\210\018\186\000\000\003%\003%\003%\000\000\000\000\019V\r\014\003%\t\214\t\218\003%\000\000\003%\003%\000\000\003%\003%\003%\003%\t\222\018J\t\226\018\194\000\000\018\202\003%\000\000\003%\003%\000\000\003%\003%\003%\003%\003%\003%\003%\nf\017Z\003%\003%\003%\017r\007\166\003%\003%\000\000\000\000\003%\003%\003%\003%\ri\000\000\ri\000\000\ri\000\000\003\150\003\154\ri\000\000\003j\ri\000\000\ri\000\000\bf\ri\000\000\000\000\ri\ri\ri\000\000\ri\ri\ri\001\234\000\000\000\000\000\000\bn\ri\ri\ri\ri\000\000\ri\000\000\ri\000\000\000\000\br\000\000\tZ\000\000\ri\ri\ri\ri\ri\ri\000\000\t\134\000\000\001\190\000\000\ri\000\000\ri\ri\003\138\000\000\000\000\t\142\t\150\ri\ri\ri\t\158\t\166\t\182\000\000\000\000\000\000\ri\t\190\ri\ri\ri\ri\ri\ri\ri\ri\ri\000\000\018:\t\194\t\198\018B\t\202\t\210\018\186\000\000\ri\ri\ri\000\000\000\000\019\246\r\014\ri\t\214\t\218\ri\000\000\ri\ri\000\000\ri\ri\ri\ri\t\222\018J\t\226\018\194\000\000\018\202\ri\000\000\ri\ri\000\000\ri\ri\ri\ri\ri\ri\ri\nf\017Z\ri\ri\ri\017r\007\166\ri\ri\000\000\000\000\ri\ri\ri\ri\r\177\000\000\r\177\000\000\r\177\000\000\003\150\003\154\r\177\000\000\003j\r\177\000\000\r\177\000\000\bf\r\177\000\000\000\000\r\177\r\177\r\177\000\000\r\177\r\177\r\177\001\234\000\000\000\000\000\000\bn\r\177\r\177\r\177\r\177\000\000\r\177\000\000\r\177\000\000\000\000\br\000\000\tZ\000\000\r\177\r\177\r\177\r\177\r\177\r\177\000\000\t\134\000\000\001\190\000\000\r\177\000\000\r\177\r\177\003\138\000\000\000\000\t\142\t\150\r\177\r\177\r\177\t\158\t\166\t\182\000\000\000\000\000\000\r\177\t\190\r\177\r\177\r\177\r\177\r\177\r\177\r\177\r\177\r\177\000\000\018:\t\194\t\198\018B\t\202\t\210\018\186\000\000\r\177\r\177\r\177\000\000\000\000\020B\r\014\r\177\t\214\t\218\r\177\000\000\r\177\r\177\000\000\r\177\r\177\r\177\r\177\t\222\018J\t\226\018\194\000\000\018\202\r\177\000\000\r\177\r\177\000\000\r\177\r\177\r\177\r\177\r\177\r\177\r\177\nf\017Z\r\177\r\177\r\177\017r\007\166\r\177\r\177\000\000\000\000\r\177\r\177\r\177\r\177\r\153\000\000\r\153\000\000\r\153\000\000\003\150\003\154\r\153\000\000\003j\r\153\000\000\r\153\000\000\bf\r\153\000\000\000\000\r\153\r\153\r\153\000\000\r\153\r\153\r\153\001\234\000\000\000\000\000\000\bn\r\153\r\153\r\153\r\153\000\000\r\153\000\000\r\153\000\000\000\000\br\000\000\tZ\000\000\r\153\r\153\r\153\r\153\r\153\r\153\000\000\t\134\000\000\001\190\000\000\r\153\000\000\r\153\r\153\003\138\000\000\000\000\t\142\t\150\r\153\r\153\r\153\t\158\t\166\t\182\000\000\000\000\000\000\r\153\t\190\r\153\r\153\r\153\r\153\r\153\r\153\r\153\r\153\r\153\000\000\018:\t\194\t\198\018B\t\202\t\210\018\186\000\000\r\153\r\153\r\153\000\000\000\000\020n\r\014\r\153\t\214\t\218\r\153\000\000\r\153\r\153\000\000\r\153\r\153\r\153\r\153\t\222\018J\t\226\018\194\000\000\018\202\r\153\000\000\r\153\r\153\000\000\r\153\r\153\r\153\r\153\r\153\r\153\r\153\nf\017Z\r\153\r\153\r\153\017r\007\166\r\153\r\153\000\000\000\000\r\153\r\153\r\153\r\153\004\141\000\000\004\141\000\000\004\141\000\000\003\150\003\154\004\141\000\000\003j\004\141\000\000\004\141\000\000\bf\004\141\000\000\000\000\004\141\004\141\004\141\000\000\004\141\004\141\004\141\001\234\000\000\000\000\000\000\bn\004\141\004\141\004\141\004\141\000\000\004\141\000\000\004\141\000\000\000\000\br\000\000\tZ\000\000\004\141\004\141\004\141\004\141\004\141\004\141\016>\t\134\000\000\001\190\000\000\004\141\000\000\004\141\004\141\003\138\000\000\000\000\t\142\t\150\004\141\004\141\004\141\t\158\t\166\t\182\000\000\0176\000\000\004\141\t\190\004\141\004\141\004\141\004\141\004\141\004\141\004\141\004\141\004\141\000\000\004\141\t\194\t\198\000\000\t\202\t\210\004\141\000\000\004\141\004\141\004\141\000\000\016\162\020\170\r\014\004\141\t\214\t\218\004\141\000\000\004\141\004\141\000\000\004\141\004\141\004\141\004\141\t\222\000\000\t\226\000\000\000\000\000\242\004\141\000\000\004\141\004\141\000\000\012\210\004\141\004\141\004\141\004\141\004\141\004\141\nf\017Z\004\141\004\141\r\002\017r\007\166\004\141\004\141\000\000\000\000\004\141\004\141\004\141\004\141\re\000\000\re\000\000\re\000\000\003\150\003\154\re\000\000\003j\re\000\000\re5W\bf\re\000\000\000\000\re\re\re\000\000\re\re\re\001\234\000\000\000\000\000\000\bn\re\re\re\re\000\000\re\000\000\re\000\000\000\000\br\000\000\tZ\004F\re\re\re\re\re\re\016>\t\134\000\000\001\190\000\000\re\000\000\re\re\003\138\000\000\000\000\t\142\t\150\re\re\re\t\158\t\166\t\182\000\000\017>\000\000\re\t\190\re\re\re\re\re\re\re\re\re\000\000\re\t\194\t\198\000\000\t\202\t\210\re\000\000\re\re\re\000\000\016\162\020\234\r\014\re\t\214\t\218\re\000\000\re\re\000\000\re\re\re\re\t\222\000\000\t\226\000\000\000\000\000\242\re\000\000\re\re\000\000\012\210\re\re\re\re\re\re\nf\017Z\re\re\r\002\017r\007\166\re\re\000\000\000\000\re\re\re\re\015\021\000\000\015\021\000\000\015\021\000\000\003\150\003\154\015\021\000\000\003j\015\021\000\000\015\021\000\000\bf\015\021\000\000\000\000\015\021\015\021\015\021\000\000\015\021\015\021\015\021\001\234\000\000\000\000\000\000\bn\015\021\015\021\015\021\015\021\000\000\015\021\000\000\015\021\000\000\000\000\br\000\000\tZ\004F\015\021\015\021\015\021\015\021\015\021\015\021\016>\t\134\000\000\001\190\000\000\015\021\000\000\015\021\015\021\003\138\000\000\000\000\t\142\t\150\015\021\015\021\015\021\t\158\t\166\t\182\000\000\017V\000\000\015\021\t\190\015\021\015\021\015\021\015\021\015\021\015\021\015\021\015\021\015\021\000\000\015\021\t\194\t\198\000\000\t\202\t\210\015\021\000\000\015\021\015\021\015\021\000\000\016\162\021\022\r\014\015\021\t\214\t\218\015\021\000\000\015\021\015\021\000\000\015\021\015\021\015\021\015\021\t\222\000\000\t\226\000\000\000\000\000\242\015\021\000\000\015\021\015\021\000\000\018\134\015\021\015\021\015\021\015\021\015\021\015\021\nf\017Z\015\021\015\021\r\002\017r\007\166\015\021\015\021\000\000\000\000\015\021\015\021\015\021\015\021\rM\000\000\rM\000\000\rM\000\000\003\150\003\154\rM\000\000\003j\rM\000\000\rM\000\000\bf\rM\000\000\000\000\rM\rM\rM\000\000\rM\rM\rM\001\234\000\000\000\000\000\000\bn\rM\rM\rM\rM\000\000\rM\000\000\rM\000\000\000\000\br\000\000\tZ\004F\rM\rM\rM\rM\rM\rM\016>\t\134\000\000\001\190\000\000\rM\000\000\rM\rM\003\138\000\000\000\000\t\142\t\150\rM\rM\rM\t\158\t\166\t\182\000\000\018\018\000\000\rM\t\190\rM\rM\rM\rM\rM\rM\rM\rM\rM\000\000\rM\t\194\t\198\000\000\t\202\t\210\rM\000\000\rM\rM\rM\000\000\016\162\021B\r\014\rM\t\214\t\218\rM\000\000\rM\rM\000\000\rM\rM\rM\rM\t\222\000\000\t\226\000\000\000\000\000\242\rM\000\000\rM\rM\000\000\012\210\rM\rM\rM\rM\rM\rM\nf\017Z\rM\rM\r\002\017r\007\166\rM\rM\000\000\000\000\rM\rM\rM\rM\002\185\000\000\002\185\000\000\002\185\000\000\003\150\003\154\002\185\000\000\003j\002\185\000\000\002\185\000\000\bf\002\185\000\000\000\000\002\185\002\185\002\185\000\000\002\185\002\185\002\185\001\234\000\000\000\000\000\000\bn\002\185\002\185\002\185\002\185\000\000\002\185\000\000\002\185\000\000\000\000\br\000\000\tZ\004F\002\185\002\185\002\185\002\185\002\185\002\185\016>\t\134\000\000\001\190\000\000\002\185\000\000\002\185\002\185\003\138\000\000\000\000\t\142\t\150\002\185\002\185\002\185\t\158\t\166\t\182\000\000\"\n\000\000\002\185\t\190\002\185\002\185\002\185\002\185\002\185\002\185\002\185\002\185\002\185\000\000\002\185\t\194\t\198\000\000\t\202\t\210\002\185\000\000\002\185\002\185\002\185\000\000\016\162\021n\r\014\002\185\t\214\t\218\002\185\000\000\002\185\002\185\000\000\002\185\002\185\002\185\002\185\t\222\000\000\t\226\000\000\000\000\000\242\002\185\000\000\002\185\002\185\000\000\018\134\002\185\002\185\002\185\002\185\002\185\002\185\nf\017Z\002\185\002\185\r\002\017r\007\166\002\185\002\185\000\000\000\000\002\185\002\185\002\185\002\185\003M\000\000\003M\000\000\003M\000\000\003\150\003\154\003M\000\000\003j\003M\000\000\003M\000\000\bf\003M\000\000\000\000\003M\003M\003M\000\000\003M\003M\003M\001\234\000\000\000\000\000\000\bn\003M\003M\003M\003M\000\000\003M\000\000\003M\000\000\000\000\br\000\000\tZ\004F\003M\003M\003M\003M\003M\003M\016>\t\134\000\000\001\190\000\000\003M\000\000\003M\003M\003\138\000\000\000\000\t\142\t\150\003M\003M\003M\t\158\t\166\t\182\000\000\"\"\000\000\003M\t\190\003M\003M\003M\003M\003M\003M\003M\003M\003M\000\000\003M\t\194\t\198\000\000\t\202\t\210\003M\000\000\003M\003M\003M\000\000\016\162\021\154\r\014\003M\t\214\t\218\003M\000\000\003M\003M\000\000\003M\003M\003M\003M\t\222\000\000\t\226\000\000\000\000\000\242\003M\000\000\003M\003M\000\000\019\214\003M\003M\003M\003M\003M\003M\nf\017Z\003M\003M\003M\017r\007\166\003M\003M\000\000\000\000\003M\003M\003M\003M\r\029\000\000\r\029\000\000\r\029\000\000\003\150\003\154\r\029\000\000\003j\r\029\000\000\r\029\000\000\bf\r\029\000\000\000\000\r\029\r\029\r\029\000\000\r\029\r\029\r\029\001\234\000\000\000\000\000\000\bn\r\029\r\029\r\029\r\029\000\000\r\029\000\000\r\029\000\000\000\000\br\000\000\tZ\004F\r\029\r\029\r\029\r\029\r\029\r\029\016>\t\134\000\000\001\190\000\000\r\029\000\000\r\029\r\029\003\138\000\000\000\000\t\142\t\150\r\029\r\029\r\029\t\158\t\166\t\182\000\000\"6\000\000\r\029\t\190\r\029\r\029\r\029\r\029\r\029\r\029\r\029\r\029\r\029\000\000\r\029\t\194\t\198\000\000\t\202\t\210\r\029\000\000\r\029\r\029\r\029\000\000\016\162\021\198\r\014\r\029\t\214\t\218\r\029\000\000\r\029\r\029\000\000\r\029\r\029\r\029\r\029\t\222\000\000\t\226\000\000\000\000\000\242\r\029\000\000\r\029\r\029\000\000\012\210\r\029\r\029\r\029\r\029\r\029\r\029\nf\017Z\r\029\r\029\r\002\017r\007\166\r\029\r\029\000\000\000\000\r\029\r\029\r\029\r\029\r\025\000\000\r\025\000\000\r\025\000\000\003\150\003\154\r\025\000\000\003j\r\025\000\000\r\025\000\000\bf\r\025\000\000\000\000\r\025\r\025\r\025\000\000\r\025\r\025\r\025\001\234\000\000\000\000\000\000\bn\r\025\r\025\r\025\r\025\000\000\r\025\000\000\r\025\000\000\000\000\br\000\000\tZ\004F\r\025\r\025\r\025\r\025\r\025\r\025\016>\t\134\000\000\001\190\000\000\r\025\000\000\r\025\r\025\003\138\000\000\000\000\t\142\t\150\r\025\r\025\r\025\t\158\t\166\t\182\000\000\"N\000\000\r\025\t\190\r\025\r\025\r\025\r\025\r\025\r\025\r\025\r\025\r\025\000\000\r\025\t\194\t\198\000\000\t\202\t\210\r\025\000\000\r\025\r\025\r\025\000\000\016\162\021\242\r\014\r\025\t\214\t\218\r\025\000\000\r\025\r\025\000\000\r\025\r\025\r\025\r\025\t\222\000\000\t\226\000\000\000\000\000\242\r\025\000\000\r\025\r\025\000\000\018\134\r\025\r\025\r\025\r\025\r\025\r\025\nf\017Z\r\025\r\025\r\002\017r\007\166\r\025\r\025\000\000\000\000\r\025\r\025\r\025\r\025\005-\000\000\005-\000\000\005-\000\000\003\150\003\154\005-\000\000\003j\005-\000\000\005-\000\000\bf\020:\000\000\000\000\005-\020\206\005-\000\000\005-\005-\005-\001\234\000\000\000\000\000\000\bn\020\226\021\146\021\190\021\014\000\000\021\234\000\000\005-\000\000\000\000\br\000\000\tZ\004F\005-\021:\005-\022\022\022B\005-\016>\t\134\000\000\001\190\000\000\005-\000\000\022n\005-\003\138\000\000\000\000\t\142\t\150\005-\005-\000\242\t\158\t\166\t\182\000\000&r\000\000\005-\t\190\005-\005-\020f\021f\022\154\022\198\023v\005-\005-\000\000\005-\t\194\t\198\000\000\t\202\t\210\005-\000\000\005-\005-\023\162\000\000\016\162\022\030\r\014\005-\t\214\t\218\005-\000\000\005-\023\206\000\000\005-\005-\005-\005-\t\222\000\000\t\226\000\000\000\000\000\242\005-\000\000\005-\005-\000\000\024~\005-\005-\024\202\022\242\005-\005-\nf\017Z\005-\023\250\005-\017r\007\166\023\030\023J\000\000\000\000\005-\005-\024&\024R\004\001\000\000\004\001\000\000\004\001\000\000\003\150\003\154\004\001\000\000\003j\004\001\000\000\004\001\000\000\bf\004\001\000\000\000\000\004\001\004\001\004\001\000\000\004\001\004\001\004\001\001\234\000\000\000\000\000\000\bn\004\001\004\001\004\001\004\001\000\000\004\001\000\000\004\001\000\000\000\000\br\000\000\tZ\004F\004\001\004\001\004\001\004\001\004\001\004\001\016>\t\134\000\000\001\190\000\000\004\001\000\000\004\001\004\001\003\138\000\000\000\000\t\142\t\150\004\001\004\001\004\001\t\158\t\166\t\182\000\000-\202\000\000\004\001\t\190\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\000\000\004\001\t\194\t\198\000\000\t\202\t\210\004\001\000\000\004\001\004\001\004\001\000\000\016\162\022J\r\014\004\001\t\214\t\218\004\001\000\000\004\001\004\001\000\000\004\001\004\001\004\001\004\001\t\222\000\000\t\226\000\000\000\000\000\242\004\001\000\000\004\001\004\001\000\000\012\210\004\001\004\001\004\001\004\001\004\001\004\001\nf\017Z\004\001\004\001\r\002\017r\007\166\004\001\004\001\000\000\000\000\004\001\004\001\004\001\004\001\003\253\000\000\003\253\000\000\003\253\000\000\003\150\003\154\003\253\000\000\003j\003\253\000\000\003\253\000\000\bf\003\253\000\000\000\000\003\253\003\253\003\253\000\000\003\253\003\253\003\253\001\234\000\000\000\000\000\000\bn\003\253\003\253\003\253\003\253\000\000\003\253\000\000\003\253\000\000\000\000\br\000\000\tZ\004F\003\253\003\253\003\253\003\253\003\253\003\253\016>\t\134\000\000\001\190\000\000\003\253\000\000\003\253\003\253\003\138\000\000\000\000\t\142\t\150\003\253\003\253\003\253\t\158\t\166\t\182\000\0002Z\000\000\003\253\t\190\003\253\003\253\003\253\003\253\003\253\003\253\003\253\003\253\003\253\000\000\003\253\t\194\t\198\000\000\t\202\t\210\003\253\000\000\003\253\003\253\003\253\000\000\016\162\022v\r\014\003\253\t\214\t\218\003\253\000\000\003\253\003\253\000\000\003\253\003\253\003\253\003\253\t\222\000\000\t\226\000\000\000\000\000\242\003\253\000\000\003\253\003\253\000\000\018\134\003\253\003\253\003\253\003\253\003\253\003\253\nf\017Z\003\253\003\253\r\002\017r\007\166\003\253\003\253\000\000\000\000\003\253\003\253\003\253\003\253\003\249\000\000\003\249\000\000\003\249\000\000\003\150\003\154\003\249\000\000\003j\003\249\000\000\003\249\000\000\bf\003\249\000\000\000\000\003\249\003\249\003\249\000\000\003\249\003\249\003\249\001\234\000\000\000\000\000\000\bn\003\249\003\249\003\249\003\249\000\000\003\249\000\000\003\249\000\000\000\000\br\000\000\tZ\004F\003\249\003\249\003\249\003\249\003\249\003\249\000\000\t\134\000\000\001\190\000\000\003\249\000\000\003\249\003\249\003\138\000\000\000\000\t\142\t\150\003\249\003\249\003\249\t\158\t\166\t\182\000\000\000\000\000\000\003\249\t\190\003\249\003\249\020f\003\249\003\249\003\249\003\249\003\249\003\249\000\000\003\249\t\194\t\198\000\000\t\202\t\210\003\249\000\000\003\249\003\249\003\249\000\000\000\000\022\162\r\014\003\249\t\214\t\218\003\249\000\000\003\249\003\249\000\000\003\249\003\249\003\249\003\249\t\222\000\000\t\226\000\000\000\000\000\000\003\249\000\000\003\249\003\249\000\000\003\249\003\249\003\249\003\249\003\249\003\249\003\249\nf\017Z\003\249\003\249\003\249\017r\007\166\003\249\003\249\000\000\000\000\003\249\003\249\003\249\003\249\003\185\000\000\003\185\000\000\003\185\000\000\003\150\003\154\003\185\000\000\003j\003\185\000\000\003\185\000\000\bf\003\185\000\000\000\000\003\185\003\185\003\185\000\000\003\185\003\185\003\185\001\234\000\000\000\000\000\000\bn\003\185\003\185\003\185\003\185\000\000\003\185\000\000\003\185\000\000\000\000\br\000\000\tZ\000\000\003\185\003\185\003\185\003\185\003\185\003\185\000\000\t\134\000\000\001\190\000\000\003\185\000\000\003\185\003\185\003\138\000\000\000\000\t\142\t\150\003\185\003\185\003\185\t\158\t\166\t\182\000\000\000\000\000\000\003\185\t\190\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\000\000\003\185\t\194\t\198\000\000\t\202\t\210\003\185\000\000\003\185\003\185\003\185\000\000\000\000\022\206\r\014\003\185\t\214\t\218\003\185\000\000\003\185\003\185\000\000\003\185\003\185\003\185\003\185\t\222\000\000\t\226\000\000\000\000\000\000\003\185\000\000\003\185\003\185\000\000\012\210\003\185\003\185\003\185\003\185\003\185\003\185\nf\017Z\003\185\003\185\r\002\017r\007\166\003\185\003\185\000\000\000\000\003\185\003\185\003\185\003\185\003\181\000\000\003\181\000\000\003\181\000\000\003\150\003\154\003\181\000\000\003j\003\181\000\000\003\181\000\000\bf\003\181\000\000\000\000\003\181\003\181\003\181\000\000\003\181\003\181\003\181\001\234\000\000\000\000\000\000\bn\003\181\003\181\003\181\003\181\000\000\003\181\000\000\003\181\000\000\000\000\br\000\000\tZ\000\000\003\181\003\181\003\181\003\181\003\181\003\181\000\000\t\134\000\000\001\190\000\000\003\181\000\000\003\181\003\181\003\138\000\000\000\000\t\142\t\150\003\181\003\181\003\181\t\158\t\166\t\182\000\000\000\000\000\000\003\181\t\190\003\181\003\181\003\181\003\181\003\181\003\181\003\181\003\181\003\181\000\000\003\181\t\194\t\198\000\000\t\202\t\210\003\181\000\000\003\181\003\181\003\181\000\000\000\000\022\250\r\014\003\181\t\214\t\218\003\181\000\000\003\181\003\181\000\000\003\181\003\181\003\181\003\181\t\222\000\000\t\226\000\000\000\000\000\000\003\181\000\000\003\181\003\181\000\000\018\134\003\181\003\181\003\181\003\181\003\181\003\181\nf\017Z\003\181\003\181\r\002\017r\007\166\003\181\003\181\000\000\000\000\003\181\003\181\003\181\003\181\003\177\000\000\003\177\000\000\003\177\000\000\003\150\003\154\003\177\000\000\003j\003\177\000\000\003\177\000\000\bf\003\177\000\000\000\000\003\177\003\177\003\177\000\000\003\177\003\177\003\177\001\234\000\000\000\000\000\000\bn\003\177\003\177\003\177\003\177\000\000\003\177\000\000\003\177\000\000\000\000\br\000\000\tZ\000\000\003\177\003\177\003\177\003\177\003\177\003\177\000\000\t\134\000\000\001\190\000\000\003\177\000\000\003\177\003\177\003\138\000\000\000\000\t\142\t\150\003\177\003\177\003\177\t\158\t\166\t\182\000\000\000\000\000\000\003\177\t\190\003\177\003\177\020f\003\177\003\177\003\177\003\177\003\177\003\177\000\000\003\177\t\194\t\198\000\000\t\202\t\210\003\177\000\000\003\177\003\177\003\177\000\000\000\000\023&\r\014\003\177\t\214\t\218\003\177\000\000\003\177\003\177\000\000\003\177\003\177\003\177\003\177\t\222\000\000\t\226\000\000\000\000\000\000\003\177\000\000\003\177\003\177\000\000\003\177\003\177\003\177\003\177\003\177\003\177\003\177\nf\017Z\003\177\003\177\003\177\017r\007\166\003\177\003\177\000\000\000\000\003\177\003\177\003\177\003\177\003\221\000\000\003\221\000\000\003\221\000\000\003\150\003\154\003\221\000\000\003j\003\221\000\000\003\221\000\000\bf\003\221\000\000\000\000\003\221\003\221\003\221\000\000\003\221\003\221\003\221\001\234\000\000\000\000\000\000\bn\003\221\003\221\003\221\003\221\000\000\003\221\000\000\003\221\000\000\000\000\br\000\000\tZ\000\000\003\221\003\221\003\221\003\221\003\221\003\221\000\000\t\134\000\000\001\190\000\000\003\221\000\000\003\221\003\221\003\138\000\000\000\000\t\142\t\150\003\221\003\221\003\221\t\158\t\166\t\182\000\000\000\000\000\000\003\221\t\190\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\000\000\003\221\t\194\t\198\000\000\t\202\t\210\003\221\000\000\003\221\003\221\003\221\000\000\000\000\023R\r\014\003\221\t\214\t\218\003\221\000\000\003\221\003\221\000\000\003\221\003\221\003\221\003\221\t\222\000\000\t\226\000\000\000\000\000\000\003\221\000\000\003\221\003\221\000\000\012\210\003\221\003\221\003\221\003\221\003\221\003\221\nf\017Z\003\221\003\221\r\002\017r\007\166\003\221\003\221\000\000\000\000\003\221\003\221\003\221\003\221\003\217\000\000\003\217\000\000\003\217\000\000\003\150\003\154\003\217\000\000\003j\003\217\000\000\003\217\000\000\bf\003\217\000\000\000\000\003\217\003\217\003\217\000\000\003\217\003\217\003\217\001\234\000\000\000\000\000\000\bn\003\217\003\217\003\217\003\217\000\000\003\217\000\000\003\217\000\000\000\000\br\000\000\tZ\000\000\003\217\003\217\003\217\003\217\003\217\003\217\000\000\t\134\000\000\001\190\000\000\003\217\000\000\003\217\003\217\003\138\000\000\000\000\t\142\t\150\003\217\003\217\003\217\t\158\t\166\t\182\000\000\000\000\000\000\003\217\t\190\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\000\000\003\217\t\194\t\198\000\000\t\202\t\210\003\217\000\000\003\217\003\217\003\217\000\000\000\000\023~\r\014\003\217\t\214\t\218\003\217\000\000\003\217\003\217\000\000\003\217\003\217\003\217\003\217\t\222\000\000\t\226\000\000\000\000\000\000\003\217\000\000\003\217\003\217\000\000\018\134\003\217\003\217\003\217\003\217\003\217\003\217\nf\017Z\003\217\003\217\r\002\017r\007\166\003\217\003\217\000\000\000\000\003\217\003\217\003\217\003\217\003\213\000\000\003\213\000\000\003\213\000\000\003\150\003\154\003\213\000\000\003j\003\213\000\000\003\213\000\000\bf\020:\000\000\000\000\003\213\003\213\003\213\000\000\003\213\003\213\003\213\001\234\000\000\000\000\000\000\bn\003\213\003\213\003\213\021\014\000\000\003\213\000\000\003\213\000\000\000\000\br\000\000\tZ\000\000\003\213\021:\003\213\003\213\003\213\003\213\000\000\t\134\000\000\001\190\000\000\003\213\000\000\003\213\003\213\003\138\000\000\000\000\t\142\t\150\003\213\003\213\003\213\t\158\t\166\t\182\000\000\000\000\000\000\003\213\t\190\003\213\003\213\020f\021f\003\213\003\213\003\213\003\213\003\213\000\000\003\213\t\194\t\198\000\000\t\202\t\210\003\213\000\000\003\213\003\213\003\213\000\000\000\000\023\170\r\014\003\213\t\214\t\218\003\213\000\000\003\213\003\213\000\000\003\213\003\213\003\213\003\213\t\222\000\000\t\226\000\000\000\000\000\000\003\213\000\000\003\213\003\213\000\000\003\213\003\213\003\213\003\213\003\213\003\213\003\213\nf\017Z\003\213\003\213\003\213\017r\007\166\003\213\003\213\000\000\000\000\003\213\003\213\003\213\003\213\004\r\000\000\004\r\000\000\004\r\000\000\003\150\003\154\004\r\000\000\003j\004\r\000\000\004\r\000\000\bf\004\r\000\000\000\000\004\r\004\r\004\r\000\000\004\r\004\r\004\r\001\234\000\000\000\000\000\000\bn\004\r\004\r\004\r\004\r\000\000\004\r\000\000\004\r\000\000\000\000\br\000\000\tZ\000\000\004\r\004\r\004\r\004\r\004\r\004\r\000\000\t\134\000\000\001\190\000\000\004\r\000\000\004\r\004\r\003\138\000\000\000\000\t\142\t\150\004\r\004\r\004\r\t\158\t\166\t\182\000\000\000\000\000\000\004\r\t\190\004\r\004\r\004\r\004\r\004\r\004\r\004\r\004\r\004\r\000\000\004\r\t\194\t\198\000\000\t\202\t\210\004\r\000\000\004\r\004\r\004\r\000\000\000\000\023\214\r\014\004\r\t\214\t\218\004\r\000\000\004\r\004\r\000\000\004\r\004\r\004\r\004\r\t\222\000\000\t\226\000\000\000\000\000\000\004\r\000\000\004\r\004\r\000\000\012\210\004\r\004\r\004\r\004\r\004\r\004\r\nf\017Z\004\r\004\r\r\002\017r\007\166\004\r\004\r\000\000\000\000\004\r\004\r\004\r\004\r\004\t\000\000\004\t\000\000\004\t\000\000\003\150\003\154\004\t\000\000\003j\004\t\000\000\004\t\000\000\bf\004\t\000\000\000\000\004\t\004\t\004\t\000\000\004\t\004\t\004\t\001\234\000\000\000\000\000\000\bn\004\t\004\t\004\t\004\t\000\000\004\t\000\000\004\t\000\000\000\000\br\000\000\tZ\000\000\004\t\004\t\004\t\004\t\004\t\004\t\000\000\t\134\000\000\001\190\000\000\004\t\000\000\004\t\004\t\003\138\000\000\000\000\t\142\t\150\004\t\004\t\004\t\t\158\t\166\t\182\000\000\000\000\000\000\004\t\t\190\004\t\004\t\004\t\004\t\004\t\004\t\004\t\004\t\004\t\000\000\004\t\t\194\t\198\000\000\t\202\t\210\004\t\000\000\004\t\004\t\004\t\000\000\000\000\024\002\r\014\004\t\t\214\t\218\004\t\000\000\004\t\004\t\000\000\004\t\004\t\004\t\004\t\t\222\000\000\t\226\000\000\000\000\000\000\004\t\000\000\004\t\004\t\000\000\018\134\004\t\004\t\004\t\004\t\004\t\004\t\nf\017Z\004\t\004\t\r\002\017r\007\166\004\t\004\t\000\000\000\000\004\t\004\t\004\t\004\t\004\005\000\000\004\005\000\000\004\005\000\000\003\150\003\154\004\005\000\000\003j\004\005\000\000\004\005\000\000\bf\004\005\000\000\000\000\004\005\004\005\004\005\000\000\004\005\004\005\004\005\001\234\000\000\000\000\000\000\bn\004\005\004\005\004\005\004\005\000\000\004\005\000\000\004\005\000\000\000\000\br\000\000\tZ\000\000\004\005\004\005\004\005\004\005\004\005\004\005\000\000\t\134\000\000\001\190\000\000\004\005\000\000\004\005\004\005\003\138\000\000\000\000\t\142\t\150\004\005\004\005\004\005\t\158\t\166\t\182\000\000\000\000\000\000\004\005\t\190\004\005\004\005\020f\004\005\004\005\004\005\004\005\004\005\004\005\000\000\004\005\t\194\t\198\000\000\t\202\t\210\004\005\000\000\004\005\004\005\004\005\000\000\000\000\024.\r\014\004\005\t\214\t\218\004\005\000\000\004\005\004\005\000\000\004\005\004\005\004\005\004\005\t\222\000\000\t\226\000\000\000\000\000\000\004\005\000\000\004\005\004\005\000\000\004\005\004\005\004\005\004\005\004\005\004\005\004\005\nf\017Z\004\005\004\005\004\005\017r\007\166\004\005\004\005\000\000\000\000\004\005\004\005\004\005\004\005\003\173\000\000\003\173\000\000\003\173\000\000\003\150\003\154\003\173\000\000\003j\003\173\000\000\003\173\000\000\bf\003\173\000\000\000\000\003\173\003\173\003\173\000\000\003\173\003\173\003\173\001\234\000\000\000\000\000\000\bn\003\173\003\173\003\173\003\173\000\000\003\173\000\000\003\173\000\000\000\000\br\000\000\tZ\000\000\003\173\003\173\003\173\003\173\003\173\003\173\000\000\t\134\000\000\001\190\000\000\003\173\000\000\003\173\003\173\003\138\000\000\000\000\t\142\t\150\003\173\003\173\003\173\t\158\t\166\t\182\000\000\000\000\000\000\003\173\t\190\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\000\000\003\173\t\194\t\198\000\000\t\202\t\210\003\173\000\000\003\173\003\173\003\173\000\000\000\000\024Z\r\014\003\173\t\214\t\218\003\173\000\000\003\173\003\173\000\000\003\173\003\173\003\173\003\173\t\222\000\000\t\226\000\000\000\000\000\000\003\173\000\000\003\173\003\173\000\000\012\210\003\173\003\173\003\173\003\173\003\173\003\173\nf\017Z\003\173\003\173\r\002\017r\007\166\003\173\003\173\000\000\000\000\003\173\003\173\003\173\003\173\003\169\000\000\003\169\000\000\003\169\000\000\003\150\003\154\003\169\000\000\003j\003\169\000\000\003\169\000\000\bf\003\169\000\000\000\000\003\169\003\169\003\169\000\000\003\169\003\169\003\169\001\234\000\000\000\000\000\000\bn\003\169\003\169\003\169\003\169\000\000\003\169\000\000\003\169\000\000\000\000\br\000\000\tZ\000\000\003\169\003\169\003\169\003\169\003\169\003\169\000\000\t\134\000\000\001\190\000\000\003\169\000\000\003\169\003\169\003\138\000\000\000\000\t\142\t\150\003\169\003\169\003\169\t\158\t\166\t\182\000\000\000\000\000\000\003\169\t\190\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\000\000\003\169\t\194\t\198\000\000\t\202\t\210\003\169\000\000\003\169\003\169\003\169\000\000\000\000\024\158\r\014\003\169\t\214\t\218\003\169\000\000\003\169\003\169\000\000\003\169\003\169\003\169\003\169\t\222\000\000\t\226\000\000\000\000\000\000\003\169\000\000\003\169\003\169\000\000\018\134\003\169\003\169\003\169\003\169\003\169\003\169\nf\017Z\003\169\003\169\r\002\017r\007\166\003\169\003\169\000\000\000\000\003\169\003\169\003\169\003\169\003\165\000\000\003\165\000\000\003\165\000\000\003\150\003\154\003\165\000\000\003j\003\165\000\000\003\165\000\000\bf\003\165\000\000\000\000\003\165\003\165\003\165\000\000\003\165\003\165\003\165\001\234\000\000\000\000\000\000\bn\003\165\003\165\003\165\003\165\000\000\003\165\000\000\003\165\000\000\000\000\br\000\000\tZ\000\000\003\165\003\165\003\165\003\165\003\165\003\165\000\000\t\134\000\000\001\190\000\000\003\165\000\000\003\165\003\165\003\138\000\000\000\000\t\142\t\150\003\165\003\165\003\165\t\158\t\166\t\182\000\000\000\000\000\000\003\165\t\190\003\165\003\165\020f\003\165\003\165\003\165\003\165\003\165\003\165\000\000\003\165\t\194\t\198\000\000\t\202\t\210\003\165\000\000\003\165\003\165\003\165\000\000\000\000\024\210\r\014\003\165\t\214\t\218\003\165\000\000\003\165\003\165\000\000\003\165\003\165\003\165\003\165\t\222\000\000\t\226\000\000\000\000\000\000\003\165\000\000\003\165\003\165\000\000\003\165\003\165\003\165\003\165\003\165\003\165\003\165\nf\017Z\003\165\003\165\003\165\017r\007\166\003\165\003\165\000\000\000\000\003\165\003\165\003\165\003\165\003\161\000\000\003\161\000\000\003\161\000\000\003\150\003\154\003\161\000\000\003j\003\161\000\000\003\161\000\000\bf\003\161\000\000\000\000\003\161\003\161\003\161\000\000\003\161\003\161\003\161\001\234\000\000\000\000\000\000\bn\003\161\003\161\003\161\003\161\000\000\003\161\000\000\003\161\000\000\000\000\br\000\000\tZ\000\000\003\161\003\161\003\161\003\161\003\161\003\161\000\000\t\134\000\000\001\190\000\000\003\161\000\000\003\161\003\161\003\138\000\000\000\000\t\142\t\150\003\161\003\161\003\161\t\158\t\166\t\182\000\000\000\000\000\000\003\161\t\190\003\161\003\161\003\161\003\161\003\161\003\161\003\161\003\161\003\161\000\000\003\161\t\194\t\198\000\000\t\202\t\210\003\161\000\000\003\161\003\161\003\161\000\000\000\000\026\174\r\014\003\161\t\214\t\218\003\161\000\000\003\161\003\161\000\000\003\161\003\161\003\161\003\161\t\222\000\000\t\226\000\000\000\000\000\000\003\161\000\000\003\161\003\161\000\000\012\210\003\161\003\161\003\161\003\161\003\161\003\161\nf\017Z\003\161\003\161\r\002\017r\007\166\003\161\003\161\000\000\000\000\003\161\003\161\003\161\003\161\003\157\000\000\003\157\000\000\003\157\000\000\003\150\003\154\003\157\000\000\003j\003\157\000\000\003\157\000\000\bf\003\157\000\000\000\000\003\157\003\157\003\157\000\000\003\157\003\157\003\157\001\234\000\000\000\000\000\000\bn\003\157\003\157\003\157\003\157\000\000\003\157\000\000\003\157\000\000\000\000\br\000\000\tZ\000\000\003\157\003\157\003\157\003\157\003\157\003\157\000\000\t\134\000\000\001\190\000\000\003\157\000\000\003\157\003\157\003\138\000\000\000\000\t\142\t\150\003\157\003\157\003\157\t\158\t\166\t\182\000\000\000\000\000\000\003\157\t\190\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\000\000\003\157\t\194\t\198\000\000\t\202\t\210\003\157\000\000\003\157\003\157\003\157\000\000\000\000\026\230\r\014\003\157\t\214\t\218\003\157\000\000\003\157\003\157\000\000\003\157\003\157\003\157\003\157\t\222\000\000\t\226\000\000\000\000\000\000\003\157\000\000\003\157\003\157\000\000\018\134\003\157\003\157\003\157\003\157\003\157\003\157\nf\017Z\003\157\003\157\r\002\017r\007\166\003\157\003\157\000\000\000\000\003\157\003\157\003\157\003\157\003\153\000\000\003\153\000\000\003\153\000\000\003\150\003\154\003\153\000\000\003j\003\153\000\000\003\153\000\000\bf\003\153\000\000\000\000\003\153\003\153\003\153\000\000\003\153\003\153\003\153\001\234\000\000\000\000\000\000\bn\003\153\003\153\003\153\003\153\000\000\003\153\000\000\003\153\000\000\000\000\br\000\000\tZ\000\000\003\153\003\153\003\153\003\153\003\153\003\153\000\000\t\134\000\000\001\190\000\000\003\153\000\000\003\153\003\153\003\138\000\000\000\000\t\142\t\150\003\153\003\153\003\153\t\158\t\166\t\182\000\000\000\000\000\000\003\153\t\190\003\153\003\153\020f\003\153\003\153\003\153\003\153\003\153\003\153\000\000\003\153\t\194\t\198\000\000\t\202\t\210\003\153\000\000\003\153\003\153\003\153\000\000\000\000\027\030\r\014\003\153\t\214\t\218\003\153\000\000\003\153\003\153\000\000\003\153\003\153\003\153\003\153\t\222\000\000\t\226\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\003\153\003\153\003\153\003\153\003\153\003\153\003\153\nf\017Z\003\153\003\153\003\153\017r\007\166\003\153\003\153\000\000\000\000\003\153\003\153\003\153\003\153\003\209\000\000\003\209\000\000\003\209\000\000\003\150\003\154\003\209\000\000\003j\003\209\000\000\003\209\000\000\bf\003\209\000\000\000\000\003\209\003\209\003\209\000\000\003\209\003\209\003\209\001\234\000\000\000\000\000\000\bn\003\209\003\209\003\209\003\209\000\000\003\209\000\000\003\209\000\000\000\000\br\000\000\tZ\000\000\003\209\003\209\003\209\003\209\003\209\003\209\000\000\t\134\000\000\001\190\000\000\003\209\000\000\003\209\003\209\003\138\000\000\000\000\t\142\t\150\003\209\003\209\003\209\t\158\t\166\t\182\000\000\000\000\000\000\003\209\t\190\003\209\003\209\003\209\003\209\003\209\003\209\003\209\003\209\003\209\000\000\003\209\t\194\t\198\000\000\t\202\t\210\003\209\000\000\003\209\003\209\003\209\000\000\000\000\027Z\r\014\003\209\t\214\t\218\003\209\000\000\003\209\003\209\000\000\003\209\003\209\003\209\003\209\t\222\000\000\t\226\000\000\000\000\000\000\003\209\000\000\003\209\003\209\000\000\012\210\003\209\003\209\003\209\003\209\003\209\003\209\nf\017Z\003\209\003\209\r\002\017r\007\166\003\209\003\209\000\000\000\000\003\209\003\209\003\209\003\209\003\205\000\000\003\205\000\000\003\205\000\000\003\150\003\154\003\205\000\000\003j\003\205\000\000\003\205\000\000\bf\003\205\000\000\000\000\003\205\003\205\003\205\000\000\003\205\003\205\003\205\001\234\000\000\000\000\000\000\bn\003\205\003\205\003\205\003\205\000\000\003\205\000\000\003\205\000\000\000\000\br\000\000\tZ\000\000\003\205\003\205\003\205\003\205\003\205\003\205\000\000\t\134\000\000\001\190\000\000\003\205\000\000\003\205\003\205\003\138\000\000\000\000\t\142\t\150\003\205\003\205\003\205\t\158\t\166\t\182\000\000\000\000\000\000\003\205\t\190\003\205\003\205\003\205\003\205\003\205\003\205\003\205\003\205\003\205\000\000\003\205\t\194\t\198\000\000\t\202\t\210\003\205\000\000\003\205\003\205\003\205\000\000\000\000\027\146\r\014\003\205\t\214\t\218\003\205\000\000\003\205\003\205\000\000\003\205\003\205\003\205\003\205\t\222\000\000\t\226\000\000\000\000\000\000\003\205\000\000\003\205\003\205\000\000\018\134\003\205\003\205\003\205\003\205\003\205\003\205\nf\017Z\003\205\003\205\r\002\017r\007\166\003\205\003\205\000\000\000\000\003\205\003\205\003\205\003\205\003\201\000\000\003\201\000\000\003\201\000\000\003\150\003\154\003\201\000\000\003j\003\201\000\000\003\201\000\000\bf\020:\000\000\000\000\003\201\003\201\003\201\000\000\003\201\003\201\003\201\001\234\000\000\000\000\000\000\bn\003\201\003\201\003\201\021\014\000\000\003\201\000\000\003\201\000\000\000\000\br\000\000\tZ\000\000\003\201\021:\003\201\003\201\003\201\003\201\000\000\t\134\000\000\001\190\000\000\003\201\000\000\003\201\003\201\003\138\000\000\000\000\t\142\t\150\003\201\003\201\003\201\t\158\t\166\t\182\000\000\000\000\000\000\003\201\t\190\003\201\003\201\020f\021f\003\201\003\201\003\201\003\201\003\201\000\000\003\201\t\194\t\198\000\000\t\202\t\210\003\201\000\000\003\201\003\201\003\201\000\000\000\000\027\202\r\014\003\201\t\214\t\218\003\201\000\000\003\201\003\201\000\000\003\201\003\201\003\201\003\201\t\222\000\000\t\226\000\000\000\000\000\000\003\201\000\000\003\201\003\201\000\000\003\201\003\201\003\201\003\201\003\201\003\201\003\201\nf\017Z\003\201\003\201\003\201\017r\007\166\003\201\003\201\000\000\000\000\003\201\003\201\003\201\003\201\003\197\000\000\003\197\000\000\003\197\000\000\003\150\003\154\003\197\000\000\003j\003\197\000\000\003\197\000\000\bf\003\197\000\000\000\000\003\197\003\197\003\197\000\000\003\197\003\197\003\197\001\234\000\000\000\000\000\000\bn\003\197\003\197\003\197\003\197\000\000\003\197\000\000\003\197\000\000\000\000\br\000\000\tZ\000\000\003\197\003\197\003\197\003\197\003\197\003\197\000\000\t\134\000\000\001\190\000\000\003\197\000\000\003\197\003\197\003\138\000\000\000\000\t\142\t\150\003\197\003\197\003\197\t\158\t\166\t\182\000\000\000\000\000\000\003\197\t\190\003\197\003\197\003\197\003\197\003\197\003\197\003\197\003\197\003\197\000\000\003\197\t\194\t\198\000\000\t\202\t\210\003\197\000\000\003\197\003\197\003\197\000\000\000\000\028\n\r\014\003\197\t\214\t\218\003\197\000\000\003\197\003\197\000\000\003\197\003\197\003\197\003\197\t\222\000\000\t\226\000\000\000\000\000\000\003\197\000\000\003\197\003\197\000\000\012\210\003\197\003\197\003\197\003\197\003\197\003\197\nf\017Z\003\197\003\197\r\002\017r\007\166\003\197\003\197\000\000\000\000\003\197\003\197\003\197\003\197\003\193\000\000\003\193\000\000\003\193\000\000\003\150\003\154\003\193\000\000\003j\003\193\000\000\003\193\000\000\bf\003\193\000\000\000\000\003\193\003\193\003\193\000\000\003\193\003\193\003\193\001\234\000\000\000\000\000\000\bn\003\193\003\193\003\193\003\193\000\000\003\193\000\000\003\193\000\000\000\000\br\000\000\tZ\000\000\003\193\003\193\003\193\003\193\003\193\003\193\000\000\t\134\000\000\001\190\000\000\003\193\000\000\003\193\003\193\003\138\000\000\000\000\t\142\t\150\003\193\003\193\003\193\t\158\t\166\t\182\000\000\000\000\000\000\003\193\t\190\003\193\003\193\003\193\003\193\003\193\003\193\003\193\003\193\003\193\000\000\003\193\t\194\t\198\000\000\t\202\t\210\003\193\000\000\003\193\003\193\003\193\000\000\000\000\028B\r\014\003\193\t\214\t\218\003\193\000\000\003\193\003\193\000\000\003\193\003\193\003\193\003\193\t\222\000\000\t\226\000\000\000\000\000\000\003\193\000\000\003\193\003\193\000\000\018\134\003\193\003\193\003\193\003\193\003\193\003\193\nf\017Z\003\193\003\193\r\002\017r\007\166\003\193\003\193\000\000\000\000\003\193\003\193\003\193\003\193\003\189\000\000\003\189\000\000\003\189\000\000\003\150\003\154\003\189\000\000\003j\003\189\000\000\003\189\000\000\bf\020:\000\000\000\000\003\189\003\189\003\189\000\000\003\189\003\189\003\189\001\234\000\000\000\000\000\000\bn\003\189\003\189\003\189\021\014\000\000\003\189\000\000\003\189\000\000\000\000\br\000\000\tZ\000\000\003\189\021:\003\189\003\189\003\189\003\189\000\000\t\134\000\000\001\190\000\000\003\189\000\000\003\189\003\189\003\138\000\000\000\000\t\142\t\150\003\189\003\189\003\189\t\158\t\166\t\182\000\000\000\000\000\000\003\189\t\190\003\189\003\189\020f\021f\003\189\003\189\003\189\003\189\003\189\000\000\003\189\t\194\t\198\000\000\t\202\t\210\003\189\000\000\003\189\003\189\003\189\000\000\000\000\028z\r\014\003\189\t\214\t\218\003\189\000\000\003\189\003\189\000\000\003\189\003\189\003\189\003\189\t\222\000\000\t\226\000\000\000\000\000\000\003\189\000\000\003\189\003\189\000\000\003\189\003\189\003\189\003\189\003\189\003\189\003\189\nf\017Z\003\189\003\189\003\189\017r\007\166\003\189\003\189\000\000\000\000\003\189\003\189\003\189\003\189\004=\000\000\004=\000\000\004=\000\000\003\150\003\154\004=\000\000\003j\004=\000\000\004=\000\000\bf\004=\000\000\000\000\004=\004=\004=\000\000\004=\004=\004=\001\234\000\000\000\000\000\000\bn\004=\004=\004=\004=\000\000\004=\000\000\004=\000\000\000\000\br\000\000\tZ\000\000\004=\004=\004=\004=\004=\004=\000\000\t\134\000\000\001\190\000\000\004=\000\000\004=\004=\003\138\000\000\000\000\t\142\t\150\004=\004=\004=\t\158\t\166\t\182\000\000\000\000\000\000\004=\t\190\004=\004=\004=\004=\004=\004=\004=\004=\004=\000\000\004=\t\194\t\198\000\000\t\202\t\210\004=\000\000\004=\004=\004=\000\000\000\000\028\170\r\014\004=\t\214\t\218\004=\000\000\004=\004=\000\000\004=\004=\004=\004=\t\222\000\000\t\226\000\000\000\000\000\000\004=\000\000\004=\004=\000\000\012\210\004=\004=\004=\004=\004=\004=\nf\017Z\004=\004=\r\002\017r\007\166\004=\004=\000\000\000\000\004=\004=\004=\004=\0049\000\000\0049\000\000\0049\000\000\003\150\003\154\0049\000\000\003j\0049\000\000\0049\000\000\bf\0049\000\000\000\000\0049\0049\0049\000\000\0049\0049\0049\001\234\000\000\000\000\000\000\bn\0049\0049\0049\0049\000\000\0049\000\000\0049\000\000\000\000\br\000\000\tZ\000\000\0049\0049\0049\0049\0049\0049\000\000\t\134\000\000\001\190\000\000\0049\000\000\0049\0049\003\138\000\000\000\000\t\142\t\150\0049\0049\0049\t\158\t\166\t\182\000\000\000\000\000\000\0049\t\190\0049\0049\0049\0049\0049\0049\0049\0049\0049\000\000\0049\t\194\t\198\000\000\t\202\t\210\0049\000\000\0049\0049\0049\000\000\000\000\029\134\r\014\0049\t\214\t\218\0049\000\000\0049\0049\000\000\0049\0049\0049\0049\t\222\000\000\t\226\000\000\000\000\000\000\0049\000\000\0049\0049\000\000\018\134\0049\0049\0049\0049\0049\0049\nf\017Z\0049\0049\r\002\017r\007\166\0049\0049\000\000\000\000\0049\0049\0049\0049\0045\000\000\0045\000\000\0045\000\000\003\150\003\154\0045\000\000\003j\0045\000\000\0045\000\000\bf\020:\000\000\000\000\0045\0045\0045\000\000\0045\0045\0045\001\234\000\000\000\000\000\000\bn\020\226\021\146\021\190\021\014\000\000\021\234\000\000\0045\000\000\000\000\br\000\000\tZ\000\000\0045\021:\0045\022\022\022B\0045\000\000\t\134\000\000\001\190\000\000\0045\000\000\022n\0045\003\138\000\000\000\000\t\142\t\150\0045\0045\000\242\t\158\t\166\t\182\000\000\000\000\000\000\0045\t\190\0045\0045\020f\021f\022\154\022\198\023v\0045\0045\000\000\0045\t\194\t\198\000\000\t\202\t\210\0045\000\000\0045\0045\023\162\000\000\000\000\029\158\r\014\0045\t\214\t\218\0045\000\000\0045\023\206\000\000\0045\0045\0045\0045\t\222\000\000\t\226\000\000\000\000\000\000\0045\000\000\0045\0045\000\000\0045\0045\0045\0045\022\242\0045\0045\nf\017Z\0045\023\250\0045\017r\007\166\023\030\023J\000\000\000\000\0045\0045\024&\024R\003\245\000\000\003\245\000\000\003\245\000\000\003\150\003\154\003\245\000\000\003j\003\245\000\000\003\245\000\000\bf\003\245\000\000\000\000\003\245\003\245\003\245\000\000\003\245\003\245\003\245\001\234\000\000\000\000\000\000\bn\003\245\003\245\003\245\003\245\000\000\003\245\000\000\003\245\000\000\000\000\br\000\000\tZ\000\000\003\245\003\245\003\245\003\245\003\245\003\245\000\000\t\134\000\000\001\190\000\000\003\245\000\000\003\245\003\245\003\138\000\000\000\000\t\142\t\150\003\245\003\245\003\245\t\158\t\166\t\182\000\000\000\000\000\000\003\245\t\190\003\245\003\245\003\245\003\245\003\245\003\245\003\245\003\245\003\245\000\000\003\245\t\194\t\198\000\000\t\202\t\210\003\245\000\000\003\245\003\245\003\245\000\000\000\000\029\218\r\014\003\245\t\214\t\218\003\245\000\000\003\245\003\245\000\000\003\245\003\245\003\245\003\245\t\222\000\000\t\226\000\000\000\000\000\000\003\245\000\000\003\245\003\245\000\000\012\210\003\245\003\245\003\245\003\245\003\245\003\245\nf\017Z\003\245\003\245\r\002\017r\007\166\003\245\003\245\000\000\000\000\003\245\003\245\003\245\003\245\003\241\000\000\003\241\000\000\003\241\000\000\003\150\003\154\003\241\000\000\003j\003\241\000\000\003\241\000\000\bf\003\241\000\000\000\000\003\241\003\241\003\241\000\000\003\241\003\241\003\241\001\234\000\000\000\000\000\000\bn\003\241\003\241\003\241\003\241\000\000\003\241\000\000\003\241\000\000\000\000\br\000\000\tZ\000\000\003\241\003\241\003\241\003\241\003\241\003\241\000\000\t\134\000\000\001\190\000\000\003\241\000\000\003\241\003\241\003\138\000\000\000\000\t\142\t\150\003\241\003\241\003\241\t\158\t\166\t\182\000\000\000\000\000\000\003\241\t\190\003\241\003\241\003\241\003\241\003\241\003\241\003\241\003\241\003\241\000\000\003\241\t\194\t\198\000\000\t\202\t\210\003\241\000\000\003\241\003\241\003\241\000\000\000\000\030\n\r\014\003\241\t\214\t\218\003\241\000\000\003\241\003\241\000\000\003\241\003\241\003\241\003\241\t\222\000\000\t\226\000\000\000\000\000\000\003\241\000\000\003\241\003\241\000\000\018\134\003\241\003\241\003\241\003\241\003\241\003\241\nf\017Z\003\241\003\241\r\002\017r\007\166\003\241\003\241\000\000\000\000\003\241\003\241\003\241\003\241\003\237\000\000\003\237\000\000\003\237\000\000\003\150\003\154\003\237\000\000\003j\003\237\000\000\003\237\000\000\bf\020:\000\000\000\000\003\237\003\237\003\237\000\000\003\237\003\237\003\237\001\234\000\000\000\000\000\000\bn\003\237\003\237\003\237\021\014\000\000\003\237\000\000\003\237\000\000\000\000\br\000\000\tZ\000\000\003\237\021:\003\237\003\237\003\237\003\237\000\000\t\134\000\000\001\190\000\000\003\237\000\000\003\237\003\237\003\138\000\000\000\000\t\142\t\150\003\237\003\237\003\237\t\158\t\166\t\182\000\000\000\000\000\000\003\237\t\190\003\237\003\237\020f\021f\003\237\003\237\003\237\003\237\003\237\000\000\003\237\t\194\t\198\000\000\t\202\t\210\003\237\000\000\003\237\003\237\003\237\000\000\000\000\030r\r\014\003\237\t\214\t\218\003\237\000\000\003\237\003\237\000\000\003\237\003\237\003\237\003\237\t\222\000\000\t\226\000\000\000\000\000\000\003\237\000\000\003\237\003\237\000\000\003\237\003\237\003\237\003\237\003\237\003\237\003\237\nf\017Z\003\237\003\237\003\237\017r\007\166\003\237\003\237\000\000\000\000\003\237\003\237\003\237\003\237\003\233\000\000\003\233\000\000\003\233\000\000\003\150\003\154\003\233\000\000\003j\003\233\000\000\003\233\000\000\bf\003\233\000\000\000\000\003\233\003\233\003\233\000\000\003\233\003\233\003\233\001\234\000\000\000\000\000\000\bn\003\233\003\233\003\233\003\233\000\000\003\233\000\000\003\233\000\000\000\000\br\000\000\tZ\000\000\003\233\003\233\003\233\003\233\003\233\003\233\000\000\t\134\000\000\001\190\000\000\003\233\000\000\003\233\003\233\003\138\000\000\000\000\t\142\t\150\003\233\003\233\003\233\t\158\t\166\t\182\000\000\000\000\000\000\003\233\t\190\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\000\000\003\233\t\194\t\198\000\000\t\202\t\210\003\233\000\000\003\233\003\233\003\233\000\000\000\000\030\218\r\014\003\233\t\214\t\218\003\233\000\000\003\233\003\233\000\000\003\233\003\233\003\233\003\233\t\222\000\000\t\226\000\000\000\000\000\000\003\233\000\000\003\233\003\233\000\000\012\210\003\233\003\233\003\233\003\233\003\233\003\233\nf\017Z\003\233\003\233\r\002\017r\007\166\003\233\003\233\000\000\000\000\003\233\003\233\003\233\003\233\003\229\000\000\003\229\000\000\003\229\000\000\003\150\003\154\003\229\000\000\003j\003\229\000\000\003\229\000\000\bf\003\229\000\000\000\000\003\229\003\229\003\229\000\000\003\229\003\229\003\229\001\234\000\000\000\000\000\000\bn\003\229\003\229\003\229\003\229\000\000\003\229\000\000\003\229\000\000\000\000\br\000\000\tZ\000\000\003\229\003\229\003\229\003\229\003\229\003\229\000\000\t\134\000\000\001\190\000\000\003\229\000\000\003\229\003\229\003\138\000\000\000\000\t\142\t\150\003\229\003\229\003\229\t\158\t\166\t\182\000\000\000\000\000\000\003\229\t\190\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\000\000\003\229\t\194\t\198\000\000\t\202\t\210\003\229\000\000\003\229\003\229\003\229\000\000\000\000\030\242\r\014\003\229\t\214\t\218\003\229\000\000\003\229\003\229\000\000\003\229\003\229\003\229\003\229\t\222\000\000\t\226\000\000\000\000\000\000\003\229\000\000\003\229\003\229\000\000\018\134\003\229\003\229\003\229\003\229\003\229\003\229\nf\017Z\003\229\003\229\r\002\017r\007\166\003\229\003\229\000\000\000\000\003\229\003\229\003\229\003\229\003\225\000\000\003\225\000\000\003\225\000\000\003\150\003\154\003\225\000\000\003j\003\225\000\000\003\225\000\000\bf\020:\000\000\000\000\003\225\003\225\003\225\000\000\003\225\003\225\003\225\001\234\000\000\000\000\000\000\bn\003\225\003\225\003\225\021\014\000\000\003\225\000\000\003\225\000\000\000\000\br\000\000\tZ\000\000\003\225\021:\003\225\003\225\003\225\003\225\000\000\t\134\000\000\001\190\000\000\003\225\000\000\003\225\003\225\003\138\000\000\000\000\t\142\t\150\003\225\003\225\003\225\t\158\t\166\t\182\000\000\000\000\000\000\003\225\t\190\003\225\003\225\020f\021f\003\225\003\225\003\225\003\225\003\225\000\000\003\225\t\194\t\198\000\000\t\202\t\210\003\225\000\000\003\225\003\225\003\225\000\000\000\000\0316\r\014\003\225\t\214\t\218\003\225\000\000\003\225\003\225\000\000\003\225\003\225\003\225\003\225\t\222\000\000\t\226\000\000\000\000\000\000\003\225\000\000\003\225\003\225\000\000\003\225\003\225\003\225\003\225\003\225\003\225\003\225\nf\017Z\003\225\003\225\003\225\017r\007\166\003\225\003\225\000\000\000\000\003\225\003\225\003\225\003\225\004%\000\000\004%\000\000\004%\000\000\003\150\003\154\004%\000\000\003j\004%\000\000\004%\000\000\bf\004%\000\000\000\000\004%\004%\004%\000\000\004%\004%\004%\001\234\000\000\000\000\000\000\bn\004%\004%\004%\004%\000\000\004%\000\000\004%\000\000\000\000\br\000\000\tZ\000\000\004%\004%\004%\004%\004%\004%\000\000\t\134\000\000\001\190\000\000\004%\000\000\004%\004%\003\138\000\000\000\000\t\142\t\150\004%\004%\004%\t\158\t\166\t\182\000\000\000\000\000\000\004%\t\190\004%\004%\004%\004%\004%\004%\004%\004%\004%\000\000\004%\t\194\t\198\000\000\t\202\t\210\004%\000\000\004%\004%\004%\000\000\000\000\031j\r\014\004%\t\214\t\218\004%\000\000\004%\004%\000\000\004%\004%\004%\004%\t\222\000\000\t\226\000\000\000\000\000\000\004%\000\000\004%\004%\000\000\012\210\004%\004%\004%\004%\004%\004%\nf\017Z\004%\004%\r\002\017r\007\166\004%\004%\000\000\000\000\004%\004%\004%\004%\004!\000\000\004!\000\000\004!\000\000\003\150\003\154\004!\000\000\003j\004!\000\000\004!\000\000\bf\004!\000\000\000\000\004!\004!\004!\000\000\004!\004!\004!\001\234\000\000\000\000\000\000\bn\004!\004!\004!\004!\000\000\004!\000\000\004!\000\000\000\000\br\000\000\tZ\000\000\004!\004!\004!\004!\004!\004!\000\000\t\134\000\000\001\190\000\000\004!\000\000\004!\004!\003\138\000\000\000\000\t\142\t\150\004!\004!\004!\t\158\t\166\t\182\000\000\000\000\000\000\004!\t\190\004!\004!\004!\004!\004!\004!\004!\004!\004!\000\000\004!\t\194\t\198\000\000\t\202\t\210\004!\000\000\004!\004!\004!\000\000\000\000\031\158\r\014\004!\t\214\t\218\004!\000\000\004!\004!\000\000\004!\004!\004!\004!\t\222\000\000\t\226\000\000\000\000\000\000\004!\000\000\004!\004!\000\000\018\134\004!\004!\004!\004!\004!\004!\nf\017Z\004!\004!\r\002\017r\007\166\004!\004!\000\000\000\000\004!\004!\004!\004!\004\029\000\000\004\029\000\000\004\029\000\000\003\150\003\154\004\029\000\000\003j\004\029\000\000\004\029\000\000\bf\020:\000\000\000\000\004\029\004\029\004\029\000\000\004\029\004\029\004\029\001\234\000\000\000\000\000\000\bn\020\226\021\146\021\190\021\014\000\000\004\029\000\000\004\029\000\000\000\000\br\000\000\tZ\000\000\004\029\021:\004\029\022\022\022B\004\029\000\000\t\134\000\000\001\190\000\000\004\029\000\000\004\029\004\029\003\138\000\000\000\000\t\142\t\150\004\029\004\029\000\242\t\158\t\166\t\182\000\000\000\000\000\000\004\029\t\190\004\029\004\029\020f\021f\022\154\022\198\004\029\004\029\004\029\000\000\004\029\t\194\t\198\000\000\t\202\t\210\004\029\000\000\004\029\004\029\004\029\000\000\000\000\031\206\r\014\004\029\t\214\t\218\004\029\000\000\004\029\004\029\000\000\004\029\004\029\004\029\004\029\t\222\000\000\t\226\000\000\000\000\000\000\004\029\000\000\004\029\004\029\000\000\004\029\004\029\004\029\004\029\022\242\004\029\004\029\nf\017Z\004\029\004\029\004\029\017r\007\166\023\030\023J\000\000\000\000\004\029\004\029\004\029\004\029\003\149\000\000\003\149\000\000\003\149\000\000\003\150\003\154\003\149\000\000\003j\003\149\000\000\003\149\000\000\bf\003\149\000\000\000\000\003\149\003\149\003\149\000\000\003\149\003\149\003\149\001\234\000\000\000\000\000\000\bn\003\149\003\149\003\149\003\149\000\000\003\149\000\000\003\149\000\000\000\000\br\000\000\tZ\000\000\003\149\003\149\003\149\003\149\003\149\003\149\000\000\t\134\000\000\001\190\000\000\003\149\000\000\003\149\003\149\003\138\000\000\000\000\t\142\t\150\003\149\003\149\003\149\t\158\t\166\t\182\000\000\000\000\000\000\003\149\t\190\003\149\003\149\003\149\003\149\003\149\003\149\003\149\003\149\003\149\000\000\003\149\t\194\t\198\000\000\t\202\t\210\003\149\000\000\003\149\003\149\003\149\000\000\000\000\031\250\r\014\003\149\t\214\t\218\003\149\000\000\003\149\003\149\000\000\003\149\003\149\003\149\003\149\t\222\000\000\t\226\000\000\000\000\000\000\003\149\000\000\003\149\003\149\000\000\012\210\003\149\003\149\003\149\003\149\003\149\003\149\nf\017Z\003\149\003\149\r\002\017r\007\166\003\149\003\149\000\000\000\000\003\149\003\149\003\149\003\149\003\145\000\000\003\145\000\000\003\145\000\000\003\150\003\154\003\145\000\000\003j\003\145\000\000\003\145\000\000\bf\003\145\000\000\000\000\003\145\003\145\003\145\000\000\003\145\003\145\003\145\001\234\000\000\000\000\000\000\bn\003\145\003\145\003\145\003\145\000\000\003\145\000\000\003\145\000\000\000\000\br\000\000\tZ\000\000\003\145\003\145\003\145\003\145\003\145\003\145\000\000\t\134\000\000\001\190\000\000\003\145\000\000\003\145\003\145\003\138\000\000\000\000\t\142\t\150\003\145\003\145\003\145\t\158\t\166\t\182\000\000\000\000\000\000\003\145\t\190\003\145\003\145\003\145\003\145\003\145\003\145\003\145\003\145\003\145\000\000\003\145\t\194\t\198\000\000\t\202\t\210\003\145\000\000\003\145\003\145\003\145\000\000\000\000 \018\r\014\003\145\t\214\t\218\003\145\000\000\003\145\003\145\000\000\003\145\003\145\003\145\003\145\t\222\000\000\t\226\000\000\000\000\000\000\003\145\000\000\003\145\003\145\000\000\018\134\003\145\003\145\003\145\003\145\003\145\003\145\nf\017Z\003\145\003\145\r\002\017r\007\166\003\145\003\145\000\000\000\000\003\145\003\145\003\145\003\145\003\141\000\000\003\141\000\000\003\141\000\000\003\150\003\154\003\141\000\000\003j\003\141\000\000\003\141\000\000\bf\020:\000\000\000\000\003\141\003\141\003\141\000\000\003\141\003\141\003\141\001\234\000\000\000\000\000\000\bn\003\141\003\141\003\141\021\014\000\000\003\141\000\000\003\141\000\000\000\000\br\000\000\tZ\000\000\003\141\021:\003\141\003\141\003\141\003\141\000\000\t\134\000\000\001\190\000\000\003\141\000\000\003\141\003\141\003\138\000\000\000\000\t\142\t\150\003\141\003\141\003\141\t\158\t\166\t\182\000\000\000\000\000\000\003\141\t\190\003\141\003\141\020f\021f\003\141\003\141\003\141\003\141\003\141\000\000\003\141\t\194\t\198\000\000\t\202\t\210\003\141\000\000\003\141\003\141\003\141\000\000\000\000 N\r\014\003\141\t\214\t\218\003\141\000\000\003\141\003\141\000\000\003\141\003\141\003\141\003\141\t\222\000\000\t\226\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\003\141\003\141\003\141\003\141\003\141\003\141\003\141\nf\017Z\003\141\003\141\003\141\017r\007\166\003\141\003\141\000\000\000\000\003\141\003\141\003\141\003\141\003\137\000\000\003\137\000\000\003\137\000\000\003\150\003\154\003\137\000\000\003j\003\137\000\000\003\137\000\000\bf\003\137\000\000\000\000\003\137\003\137\003\137\000\000\003\137\003\137\003\137\001\234\000\000\000\000\000\000\bn\003\137\003\137\003\137\003\137\000\000\003\137\000\000\003\137\000\000\000\000\br\000\000\tZ\000\000\003\137\003\137\003\137\003\137\003\137\003\137\000\000\t\134\000\000\001\190\000\000\003\137\000\000\003\137\003\137\003\138\000\000\000\000\t\142\t\150\003\137\003\137\003\137\t\158\t\166\t\182\000\000\000\000\000\000\003\137\t\190\003\137\003\137\003\137\003\137\003\137\003\137\003\137\003\137\003\137\000\000\003\137\t\194\t\198\000\000\t\202\t\210\003\137\000\000\003\137\003\137\003\137\000\000\000\000 ~\r\014\003\137\t\214\t\218\003\137\000\000\003\137\003\137\000\000\003\137\003\137\003\137\003\137\t\222\000\000\t\226\000\000\000\000\000\000\003\137\000\000\003\137\003\137\000\000\012\210\003\137\003\137\003\137\003\137\003\137\003\137\nf\017Z\003\137\003\137\r\002\017r\007\166\003\137\003\137\000\000\000\000\003\137\003\137\003\137\003\137\003\133\000\000\003\133\000\000\003\133\000\000\003\150\003\154\003\133\000\000\003j\003\133\000\000\003\133\000\000\bf\003\133\000\000\000\000\003\133\003\133\003\133\000\000\003\133\003\133\003\133\001\234\000\000\000\000\000\000\bn\003\133\003\133\003\133\003\133\000\000\003\133\000\000\003\133\000\000\000\000\br\000\000\tZ\000\000\003\133\003\133\003\133\003\133\003\133\003\133\000\000\t\134\000\000\001\190\000\000\003\133\000\000\003\133\003\133\003\138\000\000\000\000\t\142\t\150\003\133\003\133\003\133\t\158\t\166\t\182\000\000\000\000\000\000\003\133\t\190\003\133\003\133\003\133\003\133\003\133\003\133\003\133\003\133\003\133\000\000\003\133\t\194\t\198\000\000\t\202\t\210\003\133\000\000\003\133\003\133\003\133\000\000\000\000 \246\r\014\003\133\t\214\t\218\003\133\000\000\003\133\003\133\000\000\003\133\003\133\003\133\003\133\t\222\000\000\t\226\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\018\134\003\133\003\133\003\133\003\133\003\133\003\133\nf\017Z\003\133\003\133\r\002\017r\007\166\003\133\003\133\000\000\000\000\003\133\003\133\003\133\003\133\003\129\000\000\003\129\000\000\003\129\000\000\003\150\003\154\003\129\000\000\003j\003\129\000\000\003\129\000\000\bf\020:\000\000\000\000\003\129\003\129\003\129\000\000\003\129\003\129\003\129\001\234\000\000\000\000\000\000\bn\020\226\021\146\021\190\021\014\000\000\003\129\000\000\003\129\000\000\000\000\br\000\000\tZ\000\000\003\129\021:\003\129\022\022\022B\003\129\000\000\t\134\000\000\001\190\000\000\003\129\000\000\003\129\003\129\003\138\000\000\000\000\t\142\t\150\003\129\003\129\000\242\t\158\t\166\t\182\000\000\000\000\000\000\003\129\t\190\003\129\003\129\020f\021f\022\154\022\198\003\129\003\129\003\129\000\000\003\129\t\194\t\198\000\000\t\202\t\210\003\129\000\000\003\129\003\129\003\129\000\000\000\000!F\r\014\003\129\t\214\t\218\003\129\000\000\003\129\003\129\000\000\003\129\003\129\003\129\003\129\t\222\000\000\t\226\000\000\000\000\000\000\003\129\000\000\003\129\003\129\000\000\003\129\003\129\003\129\003\129\022\242\003\129\003\129\nf\017Z\003\129\003\129\003\129\017r\007\166\023\030\023J\000\000\000\000\003\129\003\129\003\129\003\129\004\129\000\000\004\129\000\000\004\129\000\000\003\150\003\154\004\129\000\000\003j\004\129\000\000\004\129\000\000\bf\004\129\000\000\000\000\004\129\004\129\004\129\000\000\004\129\004\129\004\129\001\234\000\000\000\000\000\000\bn\004\129\004\129\004\129\004\129\000\000\004\129\000\000\004\129\000\000\000\000\br\000\000\tZ\000\000\004\129\004\129\004\129\004\129\004\129\004\129\000\000\t\134\000\000\001\190\000\000\004\129\000\000\004\129\004\129\003\138\000\000\000\000\t\142\t\150\004\129\004\129\004\129\t\158\t\166\t\182\000\000\000\000\000\000\004\129\t\190\004\129\004\129\004\129\004\129\004\129\004\129\004\129\004\129\004\129\000\000\004\129\t\194\t\198\000\000\t\202\t\210\004\129\000\000\004\129\004\129\004\129\000\000\000\000$\158\r\014\004\129\t\214\t\218\004\129\000\000\004\129\004\129\000\000\004\129\004\129\004\129\004\129\t\222\000\000\t\226\000\000\000\000\000\000\004\129\000\000\004\129\004\129\000\000\012\210\004\129\004\129\004\129\004\129\004\129\004\129\nf\017Z\004\129\004\129\r\002\017r\007\166\004\129\004\129\000\000\000\000\004\129\004\129\004\129\004\129\004}\000\000\004}\000\000\004}\000\000\003\150\003\154\004}\000\000\003j\004}\000\000\004}\000\000\bf\004}\000\000\000\000\004}\004}\004}\000\000\004}\004}\004}\001\234\000\000\000\000\000\000\bn\004}\004}\004}\004}\000\000\004}\000\000\004}\000\000\000\000\br\000\000\tZ\000\000\004}\004}\004}\004}\004}\004}\000\000\t\134\000\000\001\190\000\000\004}\000\000\004}\004}\003\138\000\000\000\000\t\142\t\150\004}\004}\004}\t\158\t\166\t\182\000\000\000\000\000\000\004}\t\190\004}\004}\004}\004}\004}\004}\004}\004}\004}\000\000\004}\t\194\t\198\000\000\t\202\t\210\004}\000\000\004}\004}\004}\000\000\000\000.\130\r\014\004}\t\214\t\218\004}\000\000\004}\004}\000\000\004}\004}\004}\004}\t\222\000\000\t\226\000\000\000\000\000\000\004}\000\000\004}\004}\000\000\018\134\004}\004}\004}\004}\004}\004}\nf\017Z\004}\004}\r\002\017r\007\166\004}\004}\000\000\000\000\004}\004}\004}\004}\004y\000\000\004y\000\000\004y\000\000\003\150\003\154\004y\000\000\003j\004y\000\000\004y\000\000\bf\020:\000\000\000\000\004y\004y\004y\000\000\004y\004y\004y\001\234\000\000\000\000\000\000\bn\020\226\021\146\021\190\021\014\000\000\004y\000\000\004y\000\000\000\000\br\000\000\tZ\000\000\004y\021:\004y\022\022\022B\004y\000\000\t\134\003\154\t\186\000\000\004y\000\000\004y\004y\003\138\000\000\000\000\t\142\t\150\004y\004y\004y\t\158\t\166\t\182\000\000\002V\000\000\004y\t\190\004y\004y\020f\021f\022\154\004y\004y\004y\004y\000\000\004y\t\194\t\198\000\000\t\202\t\210\004y\004\238\004y\004y\004y\000\000\018\206\000\000\tf\004y\t\214\t\218\004y\000\000\004y\004y\000\000\004y\004y\004y\004y\t\222\029\022\t\226\029\"\000\000\002\234\004y\000\000\004y\004y\000\000\004y\004y\004y\004y\022\242\004y\004y\nf\017Z\004y\004y\004y\017r\007\166\004y\004y\000\000\000\000\004y\004y\004y\004y\003}\000\000\003}\000\000\003}\002V\000\000\000\000\003}\000\000\000\000\003}\002\137\003}\001!\002\137\003}\000\000\000\000\003}\003}\003}\000\000\003}\003}\003}\005\234\002\137\002\137&\210\000\000\003}\003}\003}\003}\001!\003}\000\000\003}\000\n\000\000\000\000\000\000\002\137\011\170\003}\003}\003}\003}\003}\003}\002\234\021%\000\000\000\000\000\n\003}\002\137\003}\003}\001!\021%(6\000\000\000\000\003}\003}\003}\012\"\001!\002\250\014\249\002\137\002\137\003}\001!\003}\003}\003}\003}\003}\003}\003}\003}\003}\000\000\003}\001!\002\137\011\153\000\242\000\000\003}\011\153\003}\003}\003}\000\000\000\000\021%\000\000\003}\000\000\000\000\003}\000\000\003}\003}\002\137\003}\003}\003}\003}\020\245\020\245\000\242\000\000\020\245\000\000\003}\001!\003}\003}\000\000\012\210\003}\003}\003}\003}\003}\003}\002^\001!\003}\003}\r\002\011\153\021%\003}\003}\003\154\000\000\003}\003}\003}\003}\003y\011\174\003y\002\250\003y\011B\011\222\tr\003y\019&\000\000\003y\011\234\003y\000\242\000\000\003y\000\000\011\242\003y\003y\003y\000\000\003y\003y\003y\011\174\014\249\003\222\000\000\011B\003y\003y\003y\003y\014\249\003y\011\234\003y\027F\000\000\tf\000\000\011\242\000\000\003y\003y\003y\003y\003y\003y\001\230\n\210\000\000\020\245\027~\003y\027\182\003y\003y\007\134\002\130\000\000\t\246\t\250\003y\003y\003y\012\014\000\000\n\006\000\000!\162\b:\003y\030\234\003y\003y\003y\003y\003y\003y\003y\003y\003y\020\245\003y\000\000\000\000\000\000\nJ\nR\003y\019\202\003y\003y\003y\000\000\003\226\000\000\000\000\003y\000\000\000\000\003y\000\000\003y\003y\000\000\003y\003y\003y\003y\000\000\000\000\000\242\000\000\000\000\000\000\003y\000\000\003y\003y\000\000\018\134\003y\003y\003y\003y\003y\003y\000\000\031\198\003y\003y\r\002\005v\000\000\003y\003y!\254\000\000\003y\003y\003y\003y\003u\011i\003u\000\000\003u\011i\000\000\tr\003u\031\242\000\000\003u\018:\003u\000\000\018B\020:\000\000\018\186\003u\003u\003u\000\000\003u\003u\003u\011\174\000\000\031\022\000\000\011B\020\226\021\146\021\190\021\014\000\000\003u\011\234\003u\000\000\018J\005\225\018\194\011\242\018\202\003u\021:\003u\022\022\022B\003u\018\134\017\150\000\000\001\190\000\000\003u\000\000\003u\003u\014\209#\006\r\002\030\210 \238\003u\003u\000\242!>!\142!\154\t\201\000\000\000\000\003u\011i\003u\003u\020f\021f\022\154\022\198\003u\003u\003u\018:\003u\000\000\018B\020\253\020\253\018\186\003u\020\253\003u\003u\003u\018\134\000\000\"\002\000\000\003u\"\014\000\000\003u\018\134\003u\003u\r\002\003u\003u\003u\003u\018J#\n\018\194\r\002\018\202\000\000\003u\000\000\003u\003u\030R\003u\003u\003u\003u\022\242\003u\003u\000\000\000\000\003u\003u\003u\000\242\000\000\023\030\023J\000\000\000\000\003u\003u\003u\003u\003q\000\000\003q\000\000\003q\000\000\t\030\003\154\003q\"\230\000\000\003q\003j\003q\t\"\000\000\003q\000\000\000\000\003q\003q\003q\000\000\003q\003q\003q\001\234\002\137\002\1370\146\020\253\003q\003q\003q\003q\000\000\003q\000\000\003q\000\000\000\000\002V\000\000\002\137.\022\003q\003q\003q\003q\003q\003q\000\000\015\234\000\000\"\234\000\n\003q\000\000\003q\003q\003\138\020\253\005\254\000\000\000\000\003q\003q\003q\018f\014\217\"\246\014\217\014\217\002\137\003q\030\234\003q\003q\003q\003q\003q\003q\003q\003q\003q\012\165\003q\002\234\002\137\012\165\000\242\000\000\003q\018f\003q\003q\003q\000\000\017\178\000\000\000\000\003q\000\000\000\000\003q\t\218\003q\003q\000\000\003q\003q\003q\003q\020\249\020\249\000\000\000\000\020\249\000\000\003q\001\133\003q\003q\000\000\012\210\003q\003q\003q\003q\003q\003q\000\000\012\165\003q\003q\r\002\000\000-:\003q\003q\000\000\001\133\003q\003q\003q\003q\003m\011\174\003m\000\000\003m\011B.\026\000\000\003m\000\000\000\000\003m\011\234\003m\000\242\012\165\003m\000\000\011\242\003m\003m\003m\000\000\003m\003m\003m\012\210\014\217\031\022\000\000\000\000\003m\003m\003m\003m\014\217\003m\r\002\003m\002\250\000\000\000\000\000\000\014=\000\000\003m\003m\003m\003m\003m\003m\012\210\014\217\000\000\020\249\001\230\003m\012\165\003m\003m\005\206\000\000\r\002\000\000\007\150\003m\003m\003m\019\202\014\209\000\000\014\209\014\209\001\133\003m\000\000\003m\003m\003m\003m\003m\003m\003m\003m\003m\020\249\003m\014=\000\000\000\000\005\249\000\000\003m\000\000\003m\003m\003m\001\133\000\000\000\000\000\000\003m\003\226\000\000\003m\001\133\003m\003m\000\000\003m\003m\003m\003m\000\000\000\000\031\030\014=\000\000\000\000\003m\n\229\003m\003m\000\000\018\134\003m\003m\003m\003m\003m\003m\000\000\000\000\003m\003m\r\002\000\242\000\000\003m\003m\005v\000\000\003m\003m\003m\003m\003i\000\000\003i\000\000\003i\000\000\000\000\tr\003i\014=\000\000\003i\000\000\003i\000\000\005\206\020:\000\000\014=\003i\003i\003i\000\000\003i\003i\003i\018\134\014\209\b\194\000\000\005\249\020\226\021\146\021\190\021\014\014\209\003i\r\002\003i\000\000\b\198\b\202\000\000\0149\000\000\003i\021:\003i\022\022\022B\003i\000\000\017\150\000\000!\214\b\206\003i\"\230\003i\003i\003j\r6\000\000\030\210 \238\003i\003i\000\242!>!\142!\154\000\000\000\000\000\000\003i\012\130\003i\003i\020f\021f\022\154\022\198\003i\003i\003i\000\000\003i\0149\000\000\000\000\000\000\000\000\003i\011}\003i\003i\003i\011}\000\000\000\000\000\000\003i\"\234\000\000\003i\000\000\003i\003i\000\000\003i\003i\003i\003i\000\000\000\000\000\242\0149\005\241\"\246\003i$\206\003i\003i\000\000\003i\003i\003i\003i\022\242\003i\003i\000\000\031.\003i\003i\003i\000\000\000\000\023\030\023J\000\242\000\000\003i\003i\003i\003i\003e\000\000\003e\000\000\003e\000\000\000\000\t\218\003e\0149\000\000\003e\000\000\003e(F\005\206\003e\000\242\0149\003e\003e\003e\000\000\003e\003e\003e\011\174\000\000\000\000\000\000\011B\003e\003e\003e\003e&\162\003e\011\234\003e/v\000\000\000\000\000\000\011\242\012:\003e\003e\003e\003e\003e\003e\011\174\000\000\000\000\000\000\011B\003e\005\241\003e\003e(r\000\000\011\234\000\000\000\000\003e\003e\003e\011\242'2\007\133\000\000\000\000\000\000\003e'J\003e\003e\003e\003e\003e\003e\003e\003e\003e\000\000\003e(\158\r6\000\000\012E\000\000\003e\000\000\003e\003e\003e\000\000\000\000\000\000\000\000\003e\000\000\000\000\003e\000\000\003e\003e\000\000\003e\003e\003e\003e\000\000\000\000\000\242\000\242\007}\000\000\003e\b)\003e\003e\000\000\012\210\003e\003e\003e\003e\003e\003e\000\000)\002\003e\003e\r\002\000\000\000\000\003e\003e\000\000\000\000\003e\003e\003e\003e\003a\012E\003a\000\000\003a\012E\000\000\004\002\003a\006\253\007\133\003a\012E\003a\000\000\000\000\003a\000\242\012E\003a\003a\003a\000\000\003a\003a\003a\006\253\000\000\000\000\000\000\r\202\003a\003a\003a\003a\000\000\003a\006\253\003a\000\000\012\161\r6\030\234\006\253\012\161\003a\003a\003a\003a\003a\003a\001\230\0046\000\000+\174\000\000\003a\007}\003a\003a\018f\003\186\003\198\014\217.\234\003a\003a\003a\003\210\000\000\016>\000\000\000\000\000\000\003a\000\000\003a\003a\003a\003a\003a\003a\003a\003a\003a\000\000\003a\012\161\r6\000\000\003\214\017\002\003a\000\000\003a\003a\003a\000\000\003\226\000\000\000\000\003a\000\000\000\000\003a\000\000\003a\003a\000\000\003a\003a\003a\003a\000\000\000\000\012e\012\161\016\162\000\000\003a\n\241\003a\003a\000\000\018\134\003a\003a\003a\003a\003a\003a\000\000\000\000\003a\003a\r\002\005v\000\242\003a\003a\b\133\031\022\003a\003a\003a\003a\003]\000\000\003]\000\000\003]\000\000\000\000\000\000\003]\012e\000\000\003]\012\161\003]\000\000\005\206\020:\000\000\012\210\003]\003]\003]\000\000\003]\003]\003]\012e\000\000\b\214\r\002\011B\020\226\021\146\021\190\021\014\000\000\003]\012e\003]\000\000\b\218\b\222\000\000\012e\000\000\003]\021:\003]\022\022\022B\003]\000\000\030\234\000\000\000\000\b\226\003]\000\000\003]\003]\000\000\000\000\r6\004F\000\000\003]\003]\000\242\000\000\016>\019\202\000\000\002V\014\209\003]\000\000\003]\003]\020f\021f\022\154\022\198\003]\003]\003]\000\000\003]\000\000\000\000\000\000\017\226\000\000\003]\011f\003]\003]\003]\000\000\000\000\000\000\000\000\003]\002v\000\000\003]\003j\003]\003]\000\000\003]\003]\003]\003]\000\000\000\000\r\213\016\162\000\000\002\234\003]\000\000\003]\003]\000\000\003]\003]\003]\003]\022\242\003]\003]\000\000\000\000\003]\003]\003]\000\242\000\000\023\030\023J\000\000\000\000\003]\003]\003]\003]\00414\166\0041\001\246\0041\031\022\000\000\000\000\0041\r\213\000\000\0041\003\154\0041\000\000\003j\0041\"\246\000\000\0041\0041\0041\000\000\0041\0041\0041\r\222\000\000\018\134\014\209\r\213\0041\0041\0041\0041\000\000\0041\r\213\0041\r\002\000\000\000\000\002V\r\213\000\000\0041\0041\0041\0041\0041\0041\000\000\t\218\000\000\002V\000\000\0041'\190\0041\0041\000\000\r6\004F\011v\000\000\0041\0041\0041\000\000\000\000\002\250\000\000\005\173\"\246\0041\015\"\0041\0041\0041\0041\0041\0041\0041\0041\0041\000\000\0041\000\000\002\234\000\000\000\242\000\000\00414\"\0041\0041\0041\000\000\000\000\000\000\002\234\0041\000\000\000\000\0041\000\000\0041\0041\t\218\0041\0041\0041\0041\000\000\000\000\000\242\000\000\000\000\005\173\0041\000\000\0041\0041\000\000\012\210\0041\0041\0041\0041\0041\0041\000\0005s\0041\0041\r\002\000\000\000\000\0041\0041\000\000\000\000\0041\0041\0041\0041\004-\011\174\004-\000\000\004-\011B\000\000\002V\004-\006\189\000\000\004-\011\234\004-\000\000\000\000\004-\000\000\011\242\004-\004-\004-\000\000\004-\004-\004-\006\189\000\0004\022\017\214\r\202\004-\004-\004-\004-\000\000\004-\006\189\004-\000\000\002\250\000\000\000\000\006\189\000\000\004-\004-\004-\004-\004-\004-\000\000\002\250\002\234\000\000\000\000\004-\000\000\004-\004-\017\202\000\000\000\000\000\000\000\000\004-\004-\004-\000\000\000\000\005\173\000\000\000\000\000\000\004-\000\242\004-\004-\004-\004-\004-\004-\004-\004-\004-\000\000\004-\000\000\000\000\000\000\000\000\000\000\004-\000\000\004-\004-\004-\000\000\000\000\000\000\000\000\004-\000\000\000\000\004-\000\000\004-\004-\000\000\004-\004-\004-\004-\000\000\000\000\000\242\000\000\000\000\000\000\004-\000\000\004-\004-\000\000\018\134\004-\004-\004-\004-\004-\004-#\162\000\000\004-\004-\r\002\000\000\017\218\004-\004-\000\000\000\000\004-\004-\004-\004-\004)\004F\004)\000\000\004)\002\250\000\000\002V\004)\006\237\000\000\004)\000\000\004)\000\000\000\000\020:\000\000\000\000\004)\004)\004)\000\000\004)\004)\004)\006\237\000\000\012\001\000\000\r\202\020\226\021\146\021\190\021\014\000\000\004)\006\237\004)\000\000\000\000\000\000\000\000\006\237\000\000\004)\021:\004)\022\022\022B\004)\000\000\000\000\002\234\000\000\000\000\004)\000\000\004)\004)\000\000\000\000\000\000\000\000\000\000\004)\004)\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\020f\021f\022\154\022\198\004)\004)\004)\000\000\004)\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\004)\000\000\000\000\000\000\000\000\004)\000\000\000\000\004)\000\000\004)\004)\000\000\004)\004)\004)\004)\000\000\000\000\000\242\000\000\000\000\000\000\004)\000\000\004)\004)\000\000\004)\004)\004)\004)\022\242\004)\004)\012\001\000\000\004)\004)\004)\000\000\000\000\023\030\023J\000\000\000\000\004)\004)\004)\004)\004\025\000\000\004\025\000\000\004\025\002\250\000\000\002V\004\025\006\221\000\000\004\025\000\000\004\025\000\000\000\000\004\025\000\000\000\000\004\025\004\025\004\025\000\000\004\025\004\025\004\025\006\221\000\000\011\253\000\000\r\202\004\025\004\025\004\025\004\025\000\000\004\025\006\221\004\025\000\000\000\000\000\000\000\000\006\221\000\000\004\025\004\025\004\025\004\025\004\025\004\025\000\000\000\000\002\234\000\000\000\000\004\025\000\000\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\004\025\004\025\004\025\004\025\004\025\004\025\004\025\000\000\004\025\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\004\025\000\000\000\000\004\025\000\000\004\025\004\025\000\000\004\025\004\025\004\025\004\025\000\000\000\000\000\242\000\000\000\000\000\000\004\025\000\000\004\025\004\025\000\000\012\210\004\025\004\025\004\025\004\025\004\025\004\025\011\253\000\000\004\025\004\025\r\002\000\000\000\000\004\025\004\025\000\000\000\000\004\025\004\025\004\025\004\025\004\021\000\000\004\021\000\000\004\021\002\250\000\000\002V\004\021\025\218\000\000\004\021\000\000\004\021\000\000\000\000\004\021\000\000\000\000\004\021\004\021\004\021\000\000\004\021\004\021\004\021\025\226\000\000\014\153\000\000\r\202\004\021\004\021\004\021\004\021\000\000\004\021\026\018\004\021\000\000\000\000\000\000\000\000\026\026\000\000\004\021\004\021\004\021\004\021\004\021\004\021\000\000\000\000\002\234\000\000\000\000\004\021\000\000\004\021\004\021\000\000\000\000\000\000\000\000\000\000\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\004\021\004\021\004\021\004\021\004\021\004\021\004\021\000\000\004\021\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\004\021\000\000\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\004\021\004\021\000\000\004\021\004\021\004\021\004\021\000\000\000\000\000\242\000\000\000\000\000\000\004\021\000\000\004\021\004\021\000\000\018\134\004\021\004\021\004\021\004\021\004\021\004\021\014\153\000\000\004\021\004\021\r\002\000\000\000\000\004\021\004\021\000\000\000\000\004\021\004\021\004\021\004\021\004\017\000\000\004\017\000\000\004\017\002\250\000\000\002V\004\017\006\205\000\000\004\017\000\000\004\017\000\000\000\000\020:\000\000\000\000\004\017\004\017\004\017\000\000\004\017\004\017\004\017\006\205\000\000\014\149\000\000\r\202\020\226\021\146\021\190\021\014\000\000\004\017\006\205\004\017\000\000\000\000\000\000\000\000\006\205\000\000\004\017\021:\004\017\022\022\022B\004\017\000\000\000\000\002\234\000\000\000\000\004\017\000\000\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\004\017\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\020f\021f\022\154\022\198\004\017\004\017\004\017\000\000\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\004\017\000\000\004\017\004\017\004\017\004\017\000\000\000\000\000\242\000\000\000\000\000\000\004\017\000\000\004\017\004\017\000\000\004\017\004\017\004\017\004\017\022\242\004\017\004\017\014\149\000\000\004\017\004\017\004\017\000\000\000\000\023\030\023J\000\000\000\000\004\017\004\017\004\017\004\017\004I\000\000\004I\000\000\004I\002\250\000\000\002V\004I\012u\000\000\004I\000\000\004I\000\000\000\000\004I\000\000\000\000\004I\004I\004I\000\000\004I\004I\004I\011\174\000\000\014\165\000\000\011B\004I\004I\004I\004I\000\000\004I\012u\004I\000\000\000\000\000\000\000\000\012u\000\000\004I\004I\004I\004I\004I\004I\000\000\000\000\002\234\000\000\000\000\004I\000\000\004I\004I\000\000\000\000\000\000\000\000\000\000\004I\004I\004I\000\000\000\000\000\000\000\000\000\000\000\000\004I\000\000\004I\004I\004I\004I\004I\004I\004I\004I\004I\000\000\004I\000\000\000\000\000\000\000\000\000\000\004I\000\000\004I\004I\004I\000\000\000\000\000\000\000\000\004I\000\000\000\000\004I\000\000\004I\004I\000\000\004I\004I\004I\004I\000\000\000\000\000\242\000\000\000\000\000\000\004I\000\000\004I\004I\000\000\012\210\004I\004I\004I\004I\004I\004I\014\165\000\000\004I\004I\r\002\000\000\000\000\004I\004I\000\000\000\000\004I\004I\004I\004I\004E\000\000\004E\000\000\004E\002\250\000\000\002V\004E\030\166\000\000\004E\000\000\004E\000\000\000\000\004E\000\000\000\000\004E\004E\004E\000\000\004E\004E\004E\025\226\000\000\014\161\000\000\r\202\004E\004E\004E\004E\000\000\004E\026\018\004E\000\000\000\000\000\000\000\000\026\026\000\000\004E\004E\004E\004E\004E\004E\000\000\000\000\002\234\000\000\000\000\004E\000\000\004E\004E\000\000\000\000\000\000\000\000\000\000\004E\004E\004E\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004E\004E\004E\004E\004E\004E\004E\004E\004E\000\000\004E\000\000\000\000\000\000\000\000\000\000\004E\000\000\004E\004E\004E\000\000\000\000\000\000\000\000\004E\000\000\000\000\004E\000\000\004E\004E\000\000\004E\004E\004E\004E\000\000\000\000\000\242\000\000\000\000\000\000\004E\000\000\004E\004E\000\000\018\134\004E\004E\004E\004E\004E\004E\014\161\031b\004E\004E\r\002\000\000\000\000\004E\004E\000\000\000\000\004E\004E\004E\004E\004A\000\000\004A\000\000\004A\002\250\000\000\002V\004A\000\000\000\000\004A\000\000\004A\000\000\000\000\020:\000\000\000\000\004A\004A\004A\000\000\004A\004A\004A\011\174\000\000#\158\000\000\011B\020\226\021\146\021\190\021\014\000\000\021\234\011\234\004A\000\000\000\000\000\000\000\000\011\242\000\000\004A\021:\004A\022\022\022B\004A\000\000\000\000\002\234\000\000\000\000\004A\000\000\022n\004A\000\000\000\000\000\000\000\000\000\000\004A\004A\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004A\000\000\004A\004A\020f\021f\022\154\022\198\023v\004A\004A\000\000\004A\000\000\000\000\000\000\000\000\000\000\004A\000\000\004A\004A\023\162\000\000\000\000\000\000\000\000\004A\000\000\000\000\004A\000\000\004A\023\206\000\000\004A\004A\004A\004A\000\000\000\000\000\242\000\000\000\000\000\000\004A\000\000\004A\004A\000\000\004A\004A\004A\004A\022\242\004A\004A#\162\031\150\004A\023\250\004A\000\000\000\000\023\030\023J\000\000\000\000\004A\004A\024&\024R\004U\000\000\004U\000\000\004U\002\250\000\000\002V\004U\000\000\000\000\004U\000\000\004U\000\000\000\000\004U\000\000\000\000\004U\004U\004U\000\000\004U\004U\004U\011\174\000\000\014\177\000\000\011B\004U\004U\004U\004U\000\000\004U\011\234\004U\000\000\000\000\000\000\000\000\011\242\000\000\004U\004U\004U\004U\004U\004U\016>\000\000\002\234\000\000\000\000\004U\000\000\004U\004U\000\000\000\000\000\000\000\000\000\000\004U\004U\004U\000\000\000\000\000\000\000\000\000\000\000\000\004U\000\000\004U\004U\004U\004U\004U\004U\004U\004U\004U\000\000\004U\000\000\000\000\000\000\000\000\000\000\004U\000\000\004U\004U\004U\000\000\016\162\000\000\000\000\004U\000\000\000\000\004U\000\000\004U\004U\000\000\004U\004U\004U\004U\000\000\000\000\000\000\000\000\000\000\000\242\004U\000\000\004U\004U\000\000\012\210\004U\004U\004U\004U\004U\004U\014\177\000\000\004U\004U\r\002\000\000\000\000\004U\004U\000\000\000\000\004U\004U\004U\004U\004Q\000\000\004Q\000\000\004Q\002\250\000\000\000\000\004Q\000\000\000\000\004Q\"\162\004Q\000\000\000\000\004Q\001\230\000\000\004Q\004Q\004Q\000\000\004Q\004Q\004Q3\130\000\000\001\230\000\000\000\000\004Q\004Q\004Q\004Q\000\000\004Q3\202\004Q\002V\000\000\000\000\000\000\r6\004F\004Q\004Q\004Q\004Q\004Q\004Q\000\000\000\000\000\000\000\000\000\000\004Q\020\237\004Q\004Q\014\173\000\000\000\000\000\000\003\226\004Q\004Q\004Q\020\237\000\000\000\000\000\000\000\000\000\000\004Q\003\226\004Q\004Q\004Q\004Q\004Q\004Q\004Q\004Q\004Q\002\234\004Q\000\000\000\000\000\000\000\000\000\000\004Q\000\000\004Q\004Q\004Q\000\000\000\000\000\000\000\000\004Q\005v\000\000\004Q\000\000\004Q\004Q\000\000\004Q\004Q\004Q\004Q\005v\000\000\002V\000\000\000\000\000\000\004Q\000\000\004Q\004Q\000\000\018\134\004Q\004Q\004Q\004Q\004Q\004Q\000\000\000\000\004Q\004Q\r\0024.\000\000\004Q\004Q\000\000\000\000\004Q\004Q\004Q\004Q\004M\000\000\004M\020\237\004M\000\000\000\000\002V\004M\000\000\000\000\004M\000\000\004M\020\237\002\234\020:\014\173\000\000\004M\004M\004M\000\000\004M\004M\004M\000\000\000\000\014\189\000\000\000\000\020\226\021\146\021\190\021\014\000\000\004M\002\250\004M\002V\000\000\000\000\000\000\000\000\000\000\004M\021:\004M\022\022\022B\004M\000\000\000\000\002\234\000\000\000\000\004M\000\000\022n\004M\014\185\000\000\000\000\000\000\000\000\004M\004M\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004M\000\000\004M\004M\020f\021f\022\154\022\198\023v\004M\004M\002\234\004M\000\000\000\000\000\000\000\000\000\000\004M42\004M\004M\023\162\000\000\000\000\000\000\000\000\004M\000\000\000\000\004M\000\000\004M\023\206\000\000\004M\004M\004M\004M\002\250\000\000\000\000\000\000\000\000\000\000\004M\000\000\004M\004M\000\000\004M\004M\004M\004M\022\242\004M\004M\014\189\000\000\004M\004M\004M\000\000\000\000\023\030\023J\000\000\000\000\004M\004M\024&\024R\004a\000\000\004a\000\000\004a\002\250\000\000\000\000\004a\000\000\000\000\004a\000\000\004a\000\000\000\000\004a\014\185\000\000\004a\004a\004a\000\000\004a\004a\004a\000\000\000\000\000\000\000\000\000\000\004a\004a\004a\004a\000\000\004a\002\250\004a\000\000\000\000\000\000\000\000\000\000\000\000\004a\004a\004a\004a\004a\004a\000\000\000\000\000\000\000\000\000\000\004a\000\000\004a\004a\000\000\000\000\000\000\000\000\000\000\004a\004a\004a\000\000\000\000\000\000\000\000\000\000\000\000\004a\000\000\004a\004a\004a\004a\004a\004a\004a\004a\004a\000\000\004a\000\000\000\000\000\000\000\000\000\000\004a\000\000\004a\004a\004a\000\000\000\000\000\000\000\000\004a\000\000\000\000\004a\000\000\004a\004a\000\000\004a\004a\004a\004a\000\000\000\000\000\000\000\000\000\000\000\000\004a\000\000\004a\004a\000\000\012\210\004a\004a\004a\004a\004a\004a\000\000\000\000\004a\004a\r\002\000\000\000\000\004a\004a\000\000\000\000\004a\004a\004a\004a\004]\000\000\004]\000\000\004]\000\000\000\000\000\000\004]\000\000\000\000\004]\000\000\004]\000\000\000\000\004]\000\000\000\000\004]\004]\004]\000\000\004]\004]\004]\000\000\000\000\000\000\000\000\000\000\004]\004]\004]\004]\000\000\004]\000\000\004]\000\000\000\000\000\000\000\000\000\000\000\000\004]\004]\004]\004]\004]\004]\000\000\000\000\000\000\000\000\000\000\004]\000\000\004]\004]\000\000\000\000\000\000\000\000\000\000\004]\004]\004]\000\000\000\000\000\000\000\000\000\000\000\000\004]\000\000\004]\004]\004]\004]\004]\004]\004]\004]\004]\000\000\004]\000\000\000\000\000\000\000\000\000\000\004]\000\000\004]\004]\004]\000\000\000\000\000\000\000\000\004]\000\000\000\000\004]\000\000\004]\004]\000\000\004]\004]\004]\004]\000\000\000\000\000\000\000\000\000\000\000\000\004]\000\000\004]\004]\000\000\018\134\004]\004]\004]\004]\004]\004]\000\000\000\000\004]\004]\r\002\000\000\000\000\004]\004]\000\000\000\000\004]\004]\004]\004]\004Y\000\000\004Y\000\000\004Y\000\000\000\000\000\000\004Y\000\000\000\000\004Y\000\000\004Y\000\000\000\000\020:\000\000\000\000\004Y\004Y\004Y\000\000\004Y\004Y\004Y\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\004Y\000\000\004Y\000\000\000\000\000\000\000\000\000\000\000\000\004Y\021:\004Y\022\022\022B\004Y\000\000\000\000\000\000\000\000\000\000\004Y\000\000\022n\004Y\000\000\000\000\000\000\000\000\000\000\004Y\004Y\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004Y\000\000\004Y\004Y\020f\021f\022\154\022\198\023v\004Y\004Y\000\000\004Y\000\000\000\000\000\000\000\000\000\000\004Y\000\000\004Y\004Y\023\162\000\000\000\000\000\000\000\000\004Y\000\000\000\000\004Y\000\000\004Y\023\206\000\000\004Y\004Y\004Y\004Y\000\000\000\000\000\000\000\000\000\000\000\000\004Y\000\000\004Y\004Y\000\000\004Y\004Y\004Y\004Y\022\242\004Y\004Y\000\000\000\000\004Y\004Y\004Y\000\000\000\000\023\030\023J\000\000\000\000\004Y\004Y\024&\024R\r5\000\000\r5\000\000\r5\000\000\000\000\000\000\r5\000\000\000\000\r5\000\000\r5\000\000\000\000\r5\000\000\000\000\r5\r5\r5\000\000\r5\r5\r5\000\000\000\000\000\000\000\000\000\000\r5\r5\r5\r5\000\000\r5\000\000\r5\000\000\000\000\000\000\000\000\000\000\000\000\r5\r5\r5\r5\r5\r5\000\000\000\000\000\000\000\000\000\000\r5\000\000\r5\r5\000\000\000\000\000\000\000\000\000\000\r5\r5\r5\000\000\000\000\000\000\000\000\000\000\000\000\r5\000\000\r5\r5\r5\r5\r5\r5\r5\r5\r5\000\000\r5\000\000\000\000\000\000\000\000\000\000\r5\000\000\r5\r5\r5\000\000\000\000\000\000\000\000\r5\000\000\000\000\r5\000\000\r5\r5\000\000\r5\r5\r5\r5\000\000\000\000\000\000\000\000\000\000\000\000\r5\000\000\r5\r5\000\000\012\210\r5\r5\r5\r5\r5\r5\000\000\000\000\r5\r5\r\002\000\000\000\000\r5\r5\000\000\000\000\r5\r5\r5\r5\r1\000\000\r1\000\000\r1\000\000\000\000\000\000\r1\000\000\000\000\r1\000\000\r1\000\000\000\000\r1\000\000\000\000\r1\r1\r1\000\000\r1\r1\r1\000\000\000\000\000\000\000\000\000\000\r1\r1\r1\r1\000\000\r1\000\000\r1\000\000\000\000\000\000\000\000\000\000\000\000\r1\r1\r1\r1\r1\r1\000\000\000\000\000\000\000\000\000\000\r1\000\000\r1\r1\000\000\000\000\000\000\000\000\000\000\r1\r1\r1\000\000\000\000\000\000\000\000\000\000\000\000\r1\000\000\r1\r1\r1\r1\r1\r1\r1\r1\r1\000\000\r1\000\000\000\000\000\000\000\000\000\000\r1\000\000\r1\r1\r1\000\000\000\000\000\000\000\000\r1\000\000\000\000\r1\000\000\r1\r1\000\000\r1\r1\r1\r1\000\000\000\000\000\000\000\000\000\000\000\000\r1\000\000\r1\r1\000\000\018\134\r1\r1\r1\r1\r1\r1\000\000\000\000\r1\r1\r\002\000\000\000\000\r1\r1\000\000\000\000\r1\r1\r1\r1\r-\000\000\r-\000\000\r-\000\000\000\000\000\000\r-\000\000\000\000\r-\000\000\r-\000\000\000\000\020:\000\000\000\000\r-\r-\r-\000\000\r-\r-\r-\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\r-\000\000\000\000\000\000\000\000\000\000\000\000\r-\021:\r-\022\022\022B\r-\000\000\000\000\000\000\000\000\000\000\r-\000\000\022n\r-\000\000\000\000\000\000\000\000\000\000\r-\r-\000\242\000\000\000\000\000\000\000\000\000\000\000\000\r-\000\000\r-\r-\020f\021f\022\154\022\198\023v\r-\r-\000\000\r-\000\000\000\000\000\000\000\000\000\000\r-\000\000\r-\r-\023\162\000\000\000\000\000\000\000\000\r-\000\000\000\000\r-\000\000\r-\023\206\000\000\r-\r-\r-\r-\000\000\000\000\000\000\000\000\000\000\000\000\r-\000\000\r-\r-\000\000\r-\r-\r-\r-\022\242\r-\r-\000\000\000\000\r-\023\250\r-\000\000\000\000\023\030\023J\000\000\000\000\r-\r-\024&\024R\004m\000\000\004m\000\000\004m\000\000\000\000\000\000\004m\000\000\000\000\004m\000\000\004m\000\000\000\000\004m\000\000\000\000\004m\004m\004m\000\000\004m\004m\004m\000\000\000\000\000\000\000\000\000\000\004m\004m\004m\004m\000\000\004m\000\000\004m\000\000\000\000\000\000\000\000\000\000\000\000\004m\004m\004m\004m\004m\004m\000\000\000\000\000\000\000\000\000\000\004m\000\000\004m\004m\000\000\000\000\000\000\000\000\000\000\004m\004m\004m\000\000\000\000\000\000\000\000\000\000\000\000\004m\000\000\004m\004m\004m\004m\004m\004m\004m\004m\004m\000\000\004m\000\000\000\000\000\000\000\000\000\000\004m\000\000\004m\004m\004m\000\000\000\000\000\000\000\000\004m\000\000\000\000\004m\000\000\004m\004m\000\000\004m\004m\004m\004m\000\000\000\000\000\000\000\000\000\000\000\000\004m\000\000\004m\004m\000\000\012\210\004m\004m\004m\004m\004m\004m\000\000\000\000\004m\004m\r\002\000\000\000\000\004m\004m\000\000\000\000\004m\004m\004m\004m\004i\000\000\004i\000\000\004i\000\000\000\000\000\000\004i\000\000\000\000\004i\000\000\004i\000\000\000\000\004i\000\000\000\000\004i\004i\004i\000\000\004i\004i\004i\000\000\000\000\000\000\000\000\000\000\004i\004i\004i\004i\000\000\004i\000\000\004i\000\000\000\000\000\000\000\000\000\000\000\000\004i\004i\004i\004i\004i\004i\000\000\000\000\000\000\000\000\000\000\004i\000\000\004i\004i\000\000\000\000\000\000\000\000\000\000\004i\004i\004i\000\000\000\000\000\000\000\000\000\000\000\000\004i\000\000\004i\004i\004i\004i\004i\004i\004i\004i\004i\000\000\004i\000\000\000\000\000\000\000\000\000\000\004i\000\000\004i\004i\004i\000\000\000\000\000\000\000\000\004i\000\000\000\000\004i\000\000\004i\004i\000\000\004i\004i\004i\004i\000\000\000\000\000\000\000\000\000\000\000\000\004i\000\000\004i\004i\000\000\018\134\004i\004i\004i\004i\004i\004i\000\000\000\000\004i\004i\r\002\000\000\000\000\004i\004i\000\000\000\000\004i\004i\004i\004i\004e\000\000\004e\000\000\004e\000\000\000\000\000\000\004e\000\000\000\000\004e\000\000\004e\000\000\000\000\020:\000\000\000\000\004e\004e\004e\000\000\004e\004e\004e\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\004e\000\000\000\000\000\000\000\000\000\000\000\000\004e\021:\004e\022\022\022B\004e\000\000\000\000\000\000\000\000\000\000\004e\000\000\022n\004e\000\000\000\000\000\000\000\000\000\000\004e\004e\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004e\000\000\004e\004e\020f\021f\022\154\022\198\023v\004e\004e\000\000\004e\000\000\000\000\000\000\000\000\000\000\004e\000\000\004e\004e\023\162\000\000\000\000\000\000\000\000\004e\000\000\000\000\004e\000\000\004e\023\206\000\000\004e\004e\004e\004e\000\000\000\000\000\000\000\000\000\000\000\000\004e\000\000\004e\004e\000\000\024~\004e\004e\024\202\022\242\004e\004e\000\000\000\000\004e\023\250\004e\000\000\000\000\023\030\023J\000\000\000\000\004e\004e\024&\024R\r\021\000\000\r\021\000\000\r\021\000\000\000\000\000\000\r\021\000\000\000\000\r\021\000\000\r\021\000\000\000\000\020:\000\000\000\000\r\021\r\021\r\021\000\000\r\021\r\021\r\021\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\r\021\000\000\000\000\000\000\000\000\000\000\000\000\r\021\021:\r\021\022\022\022B\r\021\000\000\000\000\000\000\000\000\000\000\r\021\000\000\022n\r\021\000\000\000\000\000\000\000\000\000\000\r\021\r\021\000\242\000\000\000\000\000\000\000\000\000\000\000\000\r\021\000\000\r\021\r\021\020f\021f\022\154\022\198\023v\r\021\r\021\000\000\r\021\000\000\000\000\000\000\000\000\000\000\r\021\000\000\r\021\r\021\023\162\000\000\000\000\000\000\000\000\r\021\000\000\000\000\r\021\000\000\r\021\023\206\000\000\r\021\r\021\r\021\r\021\000\000\000\000\000\000\000\000\000\000\000\000\r\021\000\000\r\021\r\021\000\000\r\021\r\021\r\021\r\021\022\242\r\021\r\021\000\000\000\000\r\021\023\250\r\021\000\000\000\000\023\030\023J\000\000\000\000\r\021\r\021\024&\024R\004\201\000\000\004\201\000\000\004\201\000\000\000\000\000\000\004\201\000\000\000\000\004\201\000\000\004\201\000\000\000\000\004\201\000\000\000\000\004\201\004\201\004\201\000\000\004\201\004\201\004\201\000\000\000\000\000\000\000\000\000\000\004\201\004\201\004\201\004\201\000\000\004\201\000\000\004\201\000\000\000\000\000\000\000\000\000\000\000\000\004\201\004\201\004\201\004\201\004\201\004\201\000\000\000\000\000\000\000\000\000\000\004\201\000\000\004\201\004\201\000\000\000\000\000\000\000\000\000\000\004\201\004\201\004\201\000\000\000\000\000\000\000\000\000\000\000\000\004\201\000\000\004\201\004\201\004\201\004\201\004\201\004\201\004\201\004\201\004\201\000\000\004\201\000\000\000\000\000\000\000\000\000\000\004\201\000\000\004\201\004\201\004\201\000\000\000\000\000\000\000\000\004\201\000\000\000\000\004\201\000\000\004\201\004\201\000\000\004\201\004\201\004\201\004\201\000\000\000\000\000\000\000\000\000\000\000\000\004\201\000\000\004\201\004\201\000\000\012\210\004\201\004\201\004\201\004\201\004\201\004\201\000\000\000\000\004\201\004\201\r\002\000\000\000\000\004\201\004\201\000\000\000\000\004\201\004\201\004\201\004\201\004\197\000\000\004\197\000\000\004\197\000\000\000\000\000\000\004\197\000\000\000\000\004\197\000\000\004\197\000\000\000\000\004\197\000\000\000\000\004\197\004\197\004\197\000\000\004\197\004\197\004\197\000\000\000\000\000\000\000\000\000\000\004\197\004\197\004\197\004\197\000\000\004\197\000\000\004\197\000\000\000\000\000\000\000\000\000\000\000\000\004\197\004\197\004\197\004\197\004\197\004\197\000\000\000\000\000\000\000\000\000\000\004\197\000\000\004\197\004\197\000\000\000\000\000\000\000\000\000\000\004\197\004\197\004\197\000\000\000\000\000\000\000\000\000\000\000\000\004\197\000\000\004\197\004\197\004\197\004\197\004\197\004\197\004\197\004\197\004\197\000\000\004\197\000\000\000\000\000\000\000\000\000\000\004\197\000\000\004\197\004\197\004\197\000\000\000\000\000\000\000\000\004\197\000\000\000\000\004\197\000\000\004\197\004\197\000\000\004\197\004\197\004\197\004\197\000\000\000\000\000\000\000\000\000\000\000\000\004\197\000\000\004\197\004\197\000\000\018\134\004\197\004\197\004\197\004\197\004\197\004\197\000\000\000\000\004\197\004\197\r\002\000\000\000\000\004\197\004\197\000\000\000\000\004\197\004\197\004\197\004\197\004\193\000\000\004\193\000\000\004\193\000\000\000\000\000\000\004\193\000\000\000\000\004\193\000\000\004\193\000\000\000\000\020:\000\000\000\000\004\193\004\193\004\193\000\000\004\193\004\193\004\193\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\004\193\000\000\000\000\000\000\000\000\000\000\000\000\004\193\021:\004\193\022\022\022B\004\193\000\000\000\000\000\000\000\000\000\000\004\193\000\000\022n\004\193\000\000\000\000\000\000\000\000\000\000\004\193\004\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\193\000\000\004\193\004\193\020f\021f\022\154\022\198\023v\004\193\004\193\000\000\004\193\000\000\000\000\000\000\000\000\000\000\004\193\000\000\004\193\004\193\023\162\000\000\000\000\000\000\000\000\004\193\000\000\000\000\004\193\000\000\004\193\023\206\000\000\004\193\004\193\004\193\004\193\000\000\000\000\000\000\000\000\000\000\000\000\004\193\000\000\004\193\004\193\000\000\024~\004\193\004\193\024\202\022\242\004\193\004\193\000\000\000\000\004\193\023\250\004\193\000\000\000\000\023\030\023J\000\000\000\000\004\193\004\193\024&\024R\004\249\000\000\004\249\000\000\004\249\000\000\000\000\000\000\004\249\000\000\000\000\004\249\000\000\004\249\000\000\000\000\004\249\000\000\000\000\004\249\004\249\004\249\000\000\004\249\004\249\004\249\000\000\000\000\000\000\000\000\000\000\004\249\004\249\004\249\004\249\000\000\004\249\000\000\004\249\000\000\000\000\000\000\000\000\000\000\000\000\004\249\004\249\004\249\004\249\004\249\004\249\000\000\000\000\000\000\000\000\000\000\004\249\000\000\004\249\004\249\000\000\000\000\000\000\000\000\000\000\004\249\004\249\004\249\000\000\000\000\000\000\000\000\000\000\000\000\004\249\000\000\004\249\004\249\004\249\004\249\004\249\004\249\004\249\004\249\004\249\000\000\004\249\000\000\000\000\000\000\000\000\000\000\004\249\000\000\004\249\004\249\004\249\000\000\000\000\000\000\000\000\004\249\000\000\000\000\004\249\000\000\004\249\004\249\000\000\004\249\004\249\004\249\004\249\000\000\000\000\000\000\000\000\000\000\000\000\004\249\000\000\004\249\004\249\000\000\012\210\004\249\004\249\004\249\004\249\004\249\004\249\000\000\000\000\004\249\004\249\r\002\000\000\000\000\004\249\004\249\000\000\000\000\004\249\004\249\004\249\004\249\004\245\000\000\004\245\000\000\004\245\000\000\000\000\000\000\004\245\000\000\000\000\004\245\000\000\004\245\000\000\000\000\004\245\000\000\000\000\004\245\004\245\004\245\000\000\004\245\004\245\004\245\000\000\000\000\000\000\000\000\000\000\004\245\004\245\004\245\004\245\000\000\004\245\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\004\245\004\245\004\245\004\245\004\245\004\245\000\000\000\000\000\000\000\000\000\000\004\245\000\000\004\245\004\245\000\000\000\000\000\000\000\000\000\000\004\245\004\245\004\245\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\004\245\004\245\004\245\004\245\004\245\004\245\004\245\004\245\004\245\000\000\004\245\000\000\000\000\000\000\000\000\000\000\004\245\000\000\004\245\004\245\004\245\000\000\000\000\000\000\000\000\004\245\000\000\000\000\004\245\000\000\004\245\004\245\000\000\004\245\004\245\004\245\004\245\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\004\245\004\245\000\000\018\134\004\245\004\245\004\245\004\245\004\245\004\245\000\000\000\000\004\245\004\245\r\002\000\000\000\000\004\245\004\245\000\000\000\000\004\245\004\245\004\245\004\245\004\241\000\000\004\241\000\000\004\241\000\000\000\000\000\000\004\241\000\000\000\000\004\241\000\000\004\241\000\000\000\000\020:\000\000\000\000\004\241\004\241\004\241\000\000\004\241\004\241\004\241\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\004\241\000\000\000\000\000\000\000\000\000\000\000\000\004\241\021:\004\241\022\022\022B\004\241\000\000\000\000\000\000\000\000\000\000\004\241\000\000\022n\004\241\000\000\000\000\000\000\000\000\000\000\004\241\004\241\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\004\241\004\241\020f\021f\022\154\022\198\023v\004\241\004\241\000\000\004\241\000\000\000\000\000\000\000\000\000\000\004\241\000\000\004\241\004\241\023\162\000\000\000\000\000\000\000\000\004\241\000\000\000\000\004\241\000\000\004\241\023\206\000\000\004\241\004\241\004\241\004\241\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\004\241\004\241\000\000\024~\004\241\004\241\024\202\022\242\004\241\004\241\000\000\000\000\004\241\023\250\004\241\000\000\000\000\023\030\023J\000\000\000\000\004\241\004\241\024&\024R\004\225\000\000\004\225\000\000\004\225\000\000\000\000\000\000\004\225\000\000\000\000\004\225\000\000\004\225\000\000\000\000\004\225\000\000\000\000\004\225\004\225\004\225\000\000\004\225\004\225\004\225\000\000\000\000\000\000\000\000\000\000\004\225\004\225\004\225\004\225\000\000\004\225\000\000\004\225\000\000\000\000\000\000\000\000\000\000\000\000\004\225\004\225\004\225\004\225\004\225\004\225\000\000\000\000\000\000\000\000\000\000\004\225\000\000\004\225\004\225\000\000\000\000\000\000\000\000\000\000\004\225\004\225\004\225\000\000\000\000\000\000\000\000\000\000\000\000\004\225\000\000\004\225\004\225\004\225\004\225\004\225\004\225\004\225\004\225\004\225\000\000\004\225\000\000\000\000\000\000\000\000\000\000\004\225\000\000\004\225\004\225\004\225\000\000\000\000\000\000\000\000\004\225\000\000\000\000\004\225\000\000\004\225\004\225\000\000\004\225\004\225\004\225\004\225\000\000\000\000\000\000\000\000\000\000\000\000\004\225\000\000\004\225\004\225\000\000\012\210\004\225\004\225\004\225\004\225\004\225\004\225\000\000\000\000\004\225\004\225\r\002\000\000\000\000\004\225\004\225\000\000\000\000\004\225\004\225\004\225\004\225\004\221\000\000\004\221\000\000\004\221\000\000\000\000\000\000\004\221\000\000\000\000\004\221\000\000\004\221\000\000\000\000\004\221\000\000\000\000\004\221\004\221\004\221\000\000\004\221\004\221\004\221\000\000\000\000\000\000\000\000\000\000\004\221\004\221\004\221\004\221\000\000\004\221\000\000\004\221\000\000\000\000\000\000\000\000\000\000\000\000\004\221\004\221\004\221\004\221\004\221\004\221\000\000\000\000\000\000\000\000\000\000\004\221\000\000\004\221\004\221\000\000\000\000\000\000\000\000\000\000\004\221\004\221\004\221\000\000\000\000\000\000\000\000\000\000\000\000\004\221\000\000\004\221\004\221\004\221\004\221\004\221\004\221\004\221\004\221\004\221\000\000\004\221\000\000\000\000\000\000\000\000\000\000\004\221\000\000\004\221\004\221\004\221\000\000\000\000\000\000\000\000\004\221\000\000\000\000\004\221\000\000\004\221\004\221\000\000\004\221\004\221\004\221\004\221\000\000\000\000\000\000\000\000\000\000\000\000\004\221\000\000\004\221\004\221\000\000\018\134\004\221\004\221\004\221\004\221\004\221\004\221\000\000\000\000\004\221\004\221\r\002\000\000\000\000\004\221\004\221\000\000\000\000\004\221\004\221\004\221\004\221\004\217\000\000\004\217\000\000\004\217\000\000\000\000\000\000\004\217\000\000\000\000\004\217\000\000\004\217\000\000\000\000\020:\000\000\000\000\004\217\004\217\004\217\000\000\004\217\004\217\004\217\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\004\217\000\000\000\000\000\000\000\000\000\000\000\000\004\217\021:\004\217\022\022\022B\004\217\000\000\000\000\000\000\000\000\000\000\004\217\000\000\022n\004\217\000\000\000\000\000\000\000\000\000\000\004\217\004\217\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\217\000\000\004\217\004\217\020f\021f\022\154\022\198\023v\004\217\004\217\000\000\004\217\000\000\000\000\000\000\000\000\000\000\004\217\000\000\004\217\004\217\023\162\000\000\000\000\000\000\000\000\004\217\000\000\000\000\004\217\000\000\004\217\023\206\000\000\004\217\004\217\004\217\004\217\000\000\000\000\000\000\000\000\000\000\000\000\004\217\000\000\004\217\004\217\000\000\024~\004\217\004\217\024\202\022\242\004\217\004\217\000\000\000\000\004\217\023\250\004\217\000\000\000\000\023\030\023J\000\000\000\000\004\217\004\217\024&\024R\004\165\000\000\004\165\000\000\004\165\000\000\000\000\000\000\004\165\000\000\000\000\004\165\000\000\004\165\000\000\000\000\004\165\000\000\000\000\004\165\004\165\004\165\000\000\004\165\004\165\004\165\000\000\000\000\000\000\000\000\000\000\004\165\004\165\004\165\004\165\000\000\004\165\000\000\004\165\000\000\000\000\000\000\000\000\000\000\000\000\004\165\004\165\004\165\004\165\004\165\004\165\000\000\000\000\000\000\000\000\000\000\004\165\000\000\004\165\004\165\000\000\000\000\000\000\000\000\000\000\004\165\004\165\004\165\000\000\000\000\000\000\000\000\000\000\000\000\004\165\000\000\004\165\004\165\004\165\004\165\004\165\004\165\004\165\004\165\004\165\000\000\004\165\000\000\000\000\000\000\000\000\000\000\004\165\000\000\004\165\004\165\004\165\000\000\000\000\000\000\000\000\004\165\000\000\000\000\004\165\000\000\004\165\004\165\000\000\004\165\004\165\004\165\004\165\000\000\000\000\000\000\000\000\000\000\000\000\004\165\000\000\004\165\004\165\000\000\012\210\004\165\004\165\004\165\004\165\004\165\004\165\000\000\000\000\004\165\004\165\r\002\000\000\000\000\004\165\004\165\000\000\000\000\004\165\004\165\004\165\004\165\004\161\000\000\004\161\000\000\004\161\000\000\000\000\000\000\004\161\000\000\000\000\004\161\000\000\004\161\000\000\000\000\004\161\000\000\000\000\004\161\004\161\004\161\000\000\004\161\004\161\004\161\000\000\000\000\000\000\000\000\000\000\004\161\004\161\004\161\004\161\000\000\004\161\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\004\161\004\161\004\161\004\161\004\161\004\161\000\000\000\000\000\000\000\000\000\000\004\161\000\000\004\161\004\161\000\000\000\000\000\000\000\000\000\000\004\161\004\161\004\161\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\004\161\004\161\004\161\004\161\004\161\004\161\004\161\004\161\004\161\000\000\004\161\000\000\000\000\000\000\000\000\000\000\004\161\000\000\004\161\004\161\004\161\000\000\000\000\000\000\000\000\004\161\000\000\000\000\004\161\000\000\004\161\004\161\000\000\004\161\004\161\004\161\004\161\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\004\161\004\161\000\000\018\134\004\161\004\161\004\161\004\161\004\161\004\161\000\000\000\000\004\161\004\161\r\002\000\000\000\000\004\161\004\161\000\000\000\000\004\161\004\161\004\161\004\161\004\157\000\000\004\157\000\000\004\157\000\000\000\000\000\000\004\157\000\000\000\000\004\157\000\000\004\157\000\000\000\000\020:\000\000\000\000\004\157\004\157\004\157\000\000\004\157\004\157\004\157\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\004\157\000\000\000\000\000\000\000\000\000\000\000\000\004\157\021:\004\157\022\022\022B\004\157\000\000\000\000\000\000\000\000\000\000\004\157\000\000\022n\004\157\000\000\000\000\000\000\000\000\000\000\004\157\004\157\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\157\000\000\004\157\004\157\020f\021f\022\154\022\198\023v\004\157\004\157\000\000\004\157\000\000\000\000\000\000\000\000\000\000\004\157\000\000\004\157\004\157\023\162\000\000\000\000\000\000\000\000\004\157\000\000\000\000\004\157\000\000\004\157\023\206\000\000\004\157\004\157\004\157\004\157\000\000\000\000\000\000\000\000\000\000\000\000\004\157\000\000\004\157\004\157\000\000\024~\004\157\004\157\024\202\022\242\004\157\004\157\000\000\000\000\004\157\023\250\004\157\000\000\000\000\023\030\023J\000\000\000\000\004\157\004\157\024&\024R\004\189\000\000\004\189\000\000\004\189\000\000\000\000\000\000\004\189\000\000\000\000\004\189\000\000\004\189\000\000\000\000\004\189\000\000\000\000\004\189\004\189\004\189\000\000\004\189\004\189\004\189\000\000\000\000\000\000\000\000\000\000\004\189\004\189\004\189\004\189\000\000\004\189\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\189\004\189\004\189\004\189\004\189\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\189\004\189\000\000\000\000\000\000\000\000\000\000\004\189\004\189\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\189\004\189\004\189\004\189\004\189\004\189\004\189\004\189\004\189\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\189\004\189\004\189\000\000\000\000\000\000\000\000\004\189\000\000\000\000\004\189\000\000\004\189\004\189\000\000\004\189\004\189\004\189\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\189\004\189\000\000\012\210\004\189\004\189\004\189\004\189\004\189\004\189\000\000\000\000\004\189\004\189\r\002\000\000\000\000\004\189\004\189\000\000\000\000\004\189\004\189\004\189\004\189\004\185\000\000\004\185\000\000\004\185\000\000\000\000\000\000\004\185\000\000\000\000\004\185\000\000\004\185\000\000\000\000\004\185\000\000\000\000\004\185\004\185\004\185\000\000\004\185\004\185\004\185\000\000\000\000\000\000\000\000\000\000\004\185\004\185\004\185\004\185\000\000\004\185\000\000\004\185\000\000\000\000\000\000\000\000\000\000\000\000\004\185\004\185\004\185\004\185\004\185\004\185\000\000\000\000\000\000\000\000\000\000\004\185\000\000\004\185\004\185\000\000\000\000\000\000\000\000\000\000\004\185\004\185\004\185\000\000\000\000\000\000\000\000\000\000\000\000\004\185\000\000\004\185\004\185\004\185\004\185\004\185\004\185\004\185\004\185\004\185\000\000\004\185\000\000\000\000\000\000\000\000\000\000\004\185\000\000\004\185\004\185\004\185\000\000\000\000\000\000\000\000\004\185\000\000\000\000\004\185\000\000\004\185\004\185\000\000\004\185\004\185\004\185\004\185\000\000\000\000\000\000\000\000\000\000\000\000\004\185\000\000\004\185\004\185\000\000\018\134\004\185\004\185\004\185\004\185\004\185\004\185\000\000\000\000\004\185\004\185\r\002\000\000\000\000\004\185\004\185\000\000\000\000\004\185\004\185\004\185\004\185\004\181\000\000\004\181\000\000\004\181\000\000\000\000\000\000\004\181\000\000\000\000\004\181\000\000\004\181\000\000\000\000\020:\000\000\000\000\004\181\004\181\004\181\000\000\004\181\004\181\004\181\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\004\181\000\000\000\000\000\000\000\000\000\000\000\000\004\181\021:\004\181\022\022\022B\004\181\000\000\000\000\000\000\000\000\000\000\004\181\000\000\022n\004\181\000\000\000\000\000\000\000\000\000\000\004\181\004\181\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\181\000\000\004\181\004\181\020f\021f\022\154\022\198\023v\004\181\004\181\000\000\004\181\000\000\000\000\000\000\000\000\000\000\004\181\000\000\004\181\004\181\023\162\000\000\000\000\000\000\000\000\004\181\000\000\000\000\004\181\000\000\004\181\023\206\000\000\004\181\004\181\004\181\004\181\000\000\000\000\000\000\000\000\000\000\000\000\004\181\000\000\004\181\004\181\000\000\024~\004\181\004\181\024\202\022\242\004\181\004\181\000\000\000\000\004\181\023\250\004\181\000\000\000\000\023\030\023J\000\000\000\000\004\181\004\181\024&\024R\004\177\000\000\004\177\000\000\004\177\000\000\000\000\000\000\004\177\000\000\000\000\004\177\000\000\004\177\000\000\000\000\004\177\000\000\000\000\004\177\004\177\004\177\000\000\004\177\004\177\004\177\000\000\000\000\000\000\000\000\000\000\004\177\004\177\004\177\004\177\000\000\004\177\000\000\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\004\177\004\177\004\177\004\177\004\177\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\004\177\000\000\000\000\000\000\000\000\000\000\004\177\004\177\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\004\177\004\177\004\177\004\177\004\177\004\177\004\177\004\177\000\000\004\177\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\004\177\004\177\000\000\000\000\000\000\000\000\004\177\000\000\000\000\004\177\000\000\004\177\004\177\000\000\004\177\004\177\004\177\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\004\177\000\000\012\210\004\177\004\177\004\177\004\177\004\177\004\177\000\000\000\000\004\177\004\177\r\002\000\000\000\000\004\177\004\177\000\000\000\000\004\177\004\177\004\177\004\177\004\173\000\000\004\173\000\000\004\173\000\000\000\000\000\000\004\173\000\000\000\000\004\173\000\000\004\173\000\000\000\000\004\173\000\000\000\000\004\173\004\173\004\173\000\000\004\173\004\173\004\173\000\000\000\000\000\000\000\000\000\000\004\173\004\173\004\173\004\173\000\000\004\173\000\000\004\173\000\000\000\000\000\000\000\000\000\000\000\000\004\173\004\173\004\173\004\173\004\173\004\173\000\000\000\000\000\000\000\000\000\000\004\173\000\000\004\173\004\173\000\000\000\000\000\000\000\000\000\000\004\173\004\173\004\173\000\000\000\000\000\000\000\000\000\000\000\000\004\173\000\000\004\173\004\173\004\173\004\173\004\173\004\173\004\173\004\173\004\173\000\000\004\173\000\000\000\000\000\000\000\000\000\000\004\173\000\000\004\173\004\173\004\173\000\000\000\000\000\000\000\000\004\173\000\000\000\000\004\173\000\000\004\173\004\173\000\000\004\173\004\173\004\173\004\173\000\000\000\000\000\000\000\000\000\000\000\000\004\173\000\000\004\173\004\173\000\000\018\134\004\173\004\173\004\173\004\173\004\173\004\173\000\000\000\000\004\173\004\173\r\002\000\000\000\000\004\173\004\173\000\000\000\000\004\173\004\173\004\173\004\173\004\169\000\000\004\169\000\000\004\169\000\000\000\000\000\000\004\169\000\000\000\000\004\169\000\000\004\169\000\000\000\000\020:\000\000\000\000\004\169\004\169\004\169\000\000\004\169\004\169\004\169\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\004\169\000\000\000\000\000\000\000\000\000\000\000\000\004\169\021:\004\169\022\022\022B\004\169\000\000\000\000\000\000\000\000\000\000\004\169\000\000\022n\004\169\000\000\000\000\000\000\000\000\000\000\004\169\004\169\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\169\000\000\004\169\004\169\020f\021f\022\154\022\198\023v\004\169\004\169\000\000\004\169\000\000\000\000\000\000\000\000\000\000\004\169\000\000\004\169\004\169\023\162\000\000\000\000\000\000\000\000\004\169\000\000\000\000\004\169\000\000\004\169\023\206\000\000\004\169\004\169\004\169\004\169\000\000\000\000\000\000\000\000\000\000\000\000\004\169\000\000\004\169\004\169\000\000\024~\004\169\004\169\024\202\022\242\004\169\004\169\000\000\000\000\004\169\023\250\004\169\000\000\000\000\023\030\023J\000\000\000\000\004\169\004\169\024&\024R\004\213\000\000\004\213\000\000\004\213\000\000\000\000\000\000\004\213\000\000\000\000\004\213\000\000\004\213\000\000\000\000\004\213\000\000\000\000\004\213\004\213\004\213\000\000\004\213\004\213\004\213\000\000\000\000\000\000\000\000\000\000\004\213\004\213\004\213\004\213\000\000\004\213\000\000\004\213\000\000\000\000\000\000\000\000\000\000\000\000\004\213\004\213\004\213\004\213\004\213\004\213\000\000\000\000\000\000\000\000\000\000\004\213\000\000\004\213\004\213\000\000\000\000\000\000\000\000\000\000\004\213\004\213\004\213\000\000\000\000\000\000\000\000\000\000\000\000\004\213\000\000\004\213\004\213\004\213\004\213\004\213\004\213\004\213\004\213\004\213\000\000\004\213\000\000\000\000\000\000\000\000\000\000\004\213\000\000\004\213\004\213\004\213\000\000\000\000\000\000\000\000\004\213\000\000\000\000\004\213\000\000\004\213\004\213\000\000\004\213\004\213\004\213\004\213\000\000\000\000\000\000\000\000\000\000\000\000\004\213\000\000\004\213\004\213\000\000\012\210\004\213\004\213\004\213\004\213\004\213\004\213\000\000\000\000\004\213\004\213\r\002\000\000\000\000\004\213\004\213\000\000\000\000\004\213\004\213\004\213\004\213\004\209\000\000\004\209\000\000\004\209\000\000\000\000\000\000\004\209\000\000\000\000\004\209\000\000\004\209\000\000\000\000\004\209\000\000\000\000\004\209\004\209\004\209\000\000\004\209\004\209\004\209\000\000\000\000\000\000\000\000\000\000\004\209\004\209\004\209\004\209\000\000\004\209\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\004\209\004\209\004\209\004\209\004\209\004\209\000\000\000\000\000\000\000\000\000\000\004\209\000\000\004\209\004\209\000\000\000\000\000\000\000\000\000\000\004\209\004\209\004\209\000\000\000\000\000\000\000\000\000\000\000\000\004\209\000\000\004\209\004\209\004\209\004\209\004\209\004\209\004\209\004\209\004\209\000\000\004\209\000\000\000\000\000\000\000\000\000\000\004\209\000\000\004\209\004\209\004\209\000\000\000\000\000\000\000\000\004\209\000\000\000\000\004\209\000\000\004\209\004\209\000\000\004\209\004\209\004\209\004\209\000\000\000\000\000\000\000\000\000\000\000\000\004\209\000\000\004\209\004\209\000\000\018\134\004\209\004\209\004\209\004\209\004\209\004\209\000\000\000\000\004\209\004\209\r\002\000\000\000\000\004\209\004\209\000\000\000\000\004\209\004\209\004\209\004\209\004\205\000\000\004\205\000\000\004\205\000\000\000\000\000\000\004\205\000\000\000\000\004\205\000\000\004\205\000\000\000\000\020:\000\000\000\000\004\205\004\205\004\205\000\000\004\205\004\205\004\205\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\004\205\000\000\000\000\000\000\000\000\000\000\000\000\004\205\021:\004\205\022\022\022B\004\205\000\000\000\000\000\000\000\000\000\000\004\205\000\000\022n\004\205\000\000\000\000\000\000\000\000\000\000\004\205\004\205\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\205\000\000\004\205\004\205\020f\021f\022\154\022\198\023v\004\205\004\205\000\000\004\205\000\000\000\000\000\000\000\000\000\000\004\205\000\000\004\205\004\205\023\162\000\000\000\000\000\000\000\000\004\205\000\000\000\000\004\205\000\000\004\205\023\206\000\000\004\205\004\205\004\205\004\205\000\000\000\000\000\000\000\000\000\000\000\000\004\205\000\000\004\205\004\205\000\000\024~\004\205\004\205\024\202\022\242\004\205\004\205\000\000\000\000\004\205\023\250\004\205\000\000\000\000\023\030\023J\000\000\000\000\004\205\004\205\024&\024R\005\005\000\000\005\005\000\000\005\005\000\000\000\000\000\000\005\005\000\000\000\000\005\005\000\000\005\005\000\000\000\000\005\005\000\000\000\000\005\005\005\005\005\005\000\000\005\005\005\005\005\005\000\000\000\000\000\000\000\000\000\000\005\005\005\005\005\005\005\005\000\000\005\005\000\000\005\005\000\000\000\000\000\000\000\000\000\000\000\000\005\005\005\005\005\005\005\005\005\005\005\005\000\000\000\000\000\000\000\000\000\000\005\005\000\000\005\005\005\005\000\000\000\000\000\000\000\000\000\000\005\005\005\005\005\005\000\000\000\000\000\000\000\000\000\000\000\000\005\005\000\000\005\005\005\005\005\005\005\005\005\005\005\005\005\005\005\005\005\005\000\000\005\005\000\000\000\000\000\000\000\000\000\000\005\005\000\000\005\005\005\005\005\005\000\000\000\000\000\000\000\000\005\005\000\000\000\000\005\005\000\000\005\005\005\005\000\000\005\005\005\005\005\005\005\005\000\000\000\000\000\000\000\000\000\000\000\000\005\005\000\000\005\005\005\005\000\000\012\210\005\005\005\005\005\005\005\005\005\005\005\005\000\000\000\000\005\005\005\005\r\002\000\000\000\000\005\005\005\005\000\000\000\000\005\005\005\005\005\005\005\005\005\001\000\000\005\001\000\000\005\001\000\000\000\000\000\000\005\001\000\000\000\000\005\001\000\000\005\001\000\000\000\000\005\001\000\000\000\000\005\001\005\001\005\001\000\000\005\001\005\001\005\001\000\000\000\000\000\000\000\000\000\000\005\001\005\001\005\001\005\001\000\000\005\001\000\000\005\001\000\000\000\000\000\000\000\000\000\000\000\000\005\001\005\001\005\001\005\001\005\001\005\001\000\000\000\000\000\000\000\000\000\000\005\001\000\000\005\001\005\001\000\000\000\000\000\000\000\000\000\000\005\001\005\001\005\001\000\000\000\000\000\000\000\000\000\000\000\000\005\001\000\000\005\001\005\001\005\001\005\001\005\001\005\001\005\001\005\001\005\001\000\000\005\001\000\000\000\000\000\000\000\000\000\000\005\001\000\000\005\001\005\001\005\001\000\000\000\000\000\000\000\000\005\001\000\000\000\000\005\001\000\000\005\001\005\001\000\000\005\001\005\001\005\001\005\001\000\000\000\000\000\000\000\000\000\000\000\000\005\001\000\000\005\001\005\001\000\000\018\134\005\001\005\001\005\001\005\001\005\001\005\001\000\000\000\000\005\001\005\001\r\002\000\000\000\000\005\001\005\001\000\000\000\000\005\001\005\001\005\001\005\001\004\253\000\000\004\253\000\000\004\253\000\000\000\000\000\000\004\253\000\000\000\000\004\253\000\000\004\253\000\000\000\000\020:\000\000\000\000\004\253\004\253\004\253\000\000\004\253\004\253\004\253\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\004\253\000\000\000\000\000\000\000\000\000\000\000\000\004\253\021:\004\253\022\022\022B\004\253\000\000\000\000\000\000\000\000\000\000\004\253\000\000\022n\004\253\000\000\000\000\000\000\000\000\000\000\004\253\004\253\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\253\000\000\004\253\004\253\020f\021f\022\154\022\198\023v\004\253\004\253\000\000\004\253\000\000\000\000\000\000\000\000\000\000\004\253\000\000\004\253\004\253\023\162\000\000\000\000\000\000\000\000\004\253\000\000\000\000\004\253\000\000\004\253\023\206\000\000\004\253\004\253\004\253\004\253\000\000\000\000\000\000\000\000\000\000\000\000\004\253\000\000\004\253\004\253\000\000\024~\004\253\004\253\024\202\022\242\004\253\004\253\000\000\000\000\004\253\023\250\004\253\000\000\000\000\023\030\023J\000\000\000\000\004\253\004\253\024&\024R\004\237\000\000\004\237\000\000\004\237\000\000\000\000\000\000\004\237\000\000\000\000\004\237\000\000\004\237\000\000\000\000\004\237\000\000\000\000\004\237\004\237\004\237\000\000\004\237\004\237\004\237\000\000\000\000\000\000\000\000\000\000\004\237\004\237\004\237\004\237\000\000\004\237\000\000\004\237\000\000\000\000\000\000\000\000\000\000\000\000\004\237\004\237\004\237\004\237\004\237\004\237\000\000\000\000\000\000\000\000\000\000\004\237\000\000\004\237\004\237\000\000\000\000\000\000\000\000\000\000\004\237\004\237\004\237\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\004\237\004\237\004\237\004\237\004\237\004\237\004\237\004\237\004\237\000\000\004\237\000\000\000\000\000\000\000\000\000\000\004\237\000\000\004\237\004\237\004\237\000\000\000\000\000\000\000\000\004\237\000\000\000\000\004\237\000\000\004\237\004\237\000\000\004\237\004\237\004\237\004\237\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\004\237\004\237\000\000\012\210\004\237\004\237\004\237\004\237\004\237\004\237\000\000\000\000\004\237\004\237\r\002\000\000\000\000\004\237\004\237\000\000\000\000\004\237\004\237\004\237\004\237\004\233\000\000\004\233\000\000\004\233\000\000\000\000\000\000\004\233\000\000\000\000\004\233\000\000\004\233\000\000\000\000\004\233\000\000\000\000\004\233\004\233\004\233\000\000\004\233\004\233\004\233\000\000\000\000\000\000\000\000\000\000\004\233\004\233\004\233\004\233\000\000\004\233\000\000\004\233\000\000\000\000\000\000\000\000\000\000\000\000\004\233\004\233\004\233\004\233\004\233\004\233\000\000\000\000\000\000\000\000\000\000\004\233\000\000\004\233\004\233\000\000\000\000\000\000\000\000\000\000\004\233\004\233\004\233\000\000\000\000\000\000\000\000\000\000\000\000\004\233\000\000\004\233\004\233\004\233\004\233\004\233\004\233\004\233\004\233\004\233\000\000\004\233\000\000\000\000\000\000\000\000\000\000\004\233\000\000\004\233\004\233\004\233\000\000\000\000\000\000\000\000\004\233\000\000\000\000\004\233\000\000\004\233\004\233\000\000\004\233\004\233\004\233\004\233\000\000\000\000\000\000\000\000\000\000\000\000\004\233\000\000\004\233\004\233\000\000\018\134\004\233\004\233\004\233\004\233\004\233\004\233\000\000\000\000\004\233\004\233\r\002\000\000\000\000\004\233\004\233\000\000\000\000\004\233\004\233\004\233\004\233\004\229\000\000\004\229\000\000\004\229\000\000\000\000\000\000\004\229\000\000\000\000\004\229\000\000\004\229\000\000\000\000\020:\000\000\000\000\004\229\004\229\004\229\000\000\004\229\004\229\004\229\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\004\229\000\000\000\000\000\000\000\000\000\000\000\000\004\229\021:\004\229\022\022\022B\004\229\000\000\000\000\000\000\000\000\000\000\004\229\000\000\022n\004\229\000\000\000\000\000\000\000\000\000\000\004\229\004\229\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\229\000\000\004\229\004\229\020f\021f\022\154\022\198\023v\004\229\004\229\000\000\004\229\000\000\000\000\000\000\000\000\000\000\004\229\000\000\004\229\004\229\023\162\000\000\000\000\000\000\000\000\004\229\000\000\000\000\004\229\000\000\004\229\023\206\000\000\004\229\004\229\004\229\004\229\000\000\000\000\000\000\000\000\000\000\000\000\004\229\000\000\004\229\004\229\000\000\024~\004\229\004\229\024\202\022\242\004\229\004\229\000\000\000\000\004\229\023\250\004\229\000\000\000\000\023\030\023J\000\000\000\000\004\229\004\229\024&\024R\004\153\000\000\004\153\000\000\004\153\000\000\000\000\000\000\004\153\000\000\000\000\004\153\000\000\004\153\000\000\000\000\004\153\000\000\000\000\004\153\004\153\004\153\000\000\004\153\004\153\004\153\000\000\000\000\000\000\000\000\000\000\004\153\004\153\004\153\004\153\000\000\004\153\000\000\004\153\000\000\000\000\000\000\000\000\000\000\000\000\004\153\004\153\004\153\004\153\004\153\004\153\000\000\000\000\000\000\000\000\000\000\004\153\000\000\004\153\004\153\000\000\000\000\000\000\000\000\000\000\004\153\004\153\004\153\000\000\000\000\000\000\000\000\000\000\000\000\004\153\000\000\004\153\004\153\004\153\004\153\004\153\004\153\004\153\004\153\004\153\000\000\004\153\000\000\000\000\000\000\000\000\000\000\004\153\000\000\004\153\004\153\004\153\000\000\000\000\000\000\000\000\004\153\000\000\000\000\004\153\000\000\004\153\004\153\000\000\004\153\004\153\004\153\004\153\000\000\000\000\000\000\000\000\000\000\000\000\004\153\000\000\004\153\004\153\000\000\012\210\004\153\004\153\004\153\004\153\004\153\004\153\000\000\000\000\004\153\004\153\r\002\000\000\000\000\004\153\004\153\000\000\000\000\004\153\004\153\004\153\004\153\004\149\000\000\004\149\000\000\004\149\000\000\000\000\000\000\004\149\000\000\000\000\004\149\000\000\004\149\000\000\000\000\004\149\000\000\000\000\004\149\004\149\004\149\000\000\004\149\004\149\004\149\000\000\000\000\000\000\000\000\000\000\004\149\004\149\004\149\004\149\000\000\004\149\000\000\004\149\000\000\000\000\000\000\000\000\000\000\000\000\004\149\004\149\004\149\004\149\004\149\004\149\000\000\000\000\000\000\000\000\000\000\004\149\000\000\004\149\004\149\000\000\000\000\000\000\000\000\000\000\004\149\004\149\004\149\000\000\000\000\000\000\000\000\000\000\000\000\004\149\000\000\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\000\000\004\149\000\000\000\000\000\000\000\000\000\000\004\149\000\000\004\149\004\149\004\149\000\000\000\000\000\000\000\000\004\149\000\000\000\000\004\149\000\000\004\149\004\149\000\000\004\149\004\149\004\149\004\149\000\000\000\000\000\000\000\000\000\000\000\000\004\149\000\000\004\149\004\149\000\000\018\134\004\149\004\149\004\149\004\149\004\149\004\149\000\000\000\000\004\149\004\149\r\002\000\000\000\000\004\149\004\149\000\000\000\000\004\149\004\149\004\149\004\149\004\145\000\000\004\145\000\000\004\145\000\000\000\000\000\000\004\145\000\000\000\000\004\145\000\000\004\145\000\000\000\000\020:\000\000\000\000\004\145\004\145\004\145\000\000\004\145\004\145\004\145\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\004\145\000\000\000\000\000\000\000\000\000\000\000\000\004\145\021:\004\145\022\022\022B\004\145\000\000\000\000\000\000\000\000\000\000\004\145\000\000\022n\004\145\000\000\000\000\000\000\000\000\000\000\004\145\004\145\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\004\145\004\145\020f\021f\022\154\022\198\023v\004\145\004\145\000\000\004\145\000\000\000\000\000\000\000\000\000\000\004\145\000\000\004\145\004\145\023\162\000\000\000\000\000\000\000\000\004\145\000\000\000\000\004\145\000\000\004\145\023\206\000\000\004\145\004\145\004\145\004\145\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\004\145\004\145\000\000\024~\004\145\004\145\024\202\022\242\004\145\004\145\000\000\000\000\004\145\023\250\004\145\000\000\000\000\023\030\023J\000\000\000\000\004\145\004\145\024&\024R\rI\000\000\rI\000\000\rI\000\000\000\000\000\000\rI\000\000\000\000\rI\000\000\rI\000\000\000\000\rI\000\000\000\000\rI\rI\rI\000\000\rI\rI\rI\000\000\000\000\000\000\000\000\000\000\rI\rI\rI\rI\000\000\rI\000\000\rI\000\000\000\000\000\000\000\000\000\000\000\000\rI\rI\rI\rI\rI\rI\000\000\000\000\000\000\000\000\000\000\rI\000\000\rI\rI\000\000\000\000\000\000\000\000\000\000\rI\rI\rI\000\000\000\000\000\000\000\000\000\000\000\000\rI\000\000\rI\rI\rI\rI\rI\rI\rI\rI\rI\000\000\rI\000\000\000\000\000\000\000\000\000\000\rI\000\000\rI\rI\rI\000\000\000\000\000\000\000\000\rI\000\000\000\000\rI\000\000\rI\rI\000\000\rI\rI\rI\rI\000\000\000\000\000\000\000\000\000\000\000\000\rI\000\000\rI\rI\000\000\018\134\rI\rI\rI\rI\rI\rI\000\000\000\000\rI\rI\r\002\000\000\000\000\rI\rI\000\000\000\000\rI\rI\rI\rI\rE\000\000\rE\000\000\rE\000\000\000\000\000\000\rE\000\000\000\000\rE\000\000\rE\000\000\000\000\020:\000\000\000\000\rE\rE\rE\000\000\rE\rE\rE\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\rE\000\000\000\000\000\000\000\000\000\000\000\000\rE\021:\rE\022\022\022B\rE\000\000\000\000\000\000\000\000\000\000\rE\000\000\022n\rE\000\000\000\000\000\000\000\000\000\000\rE\rE\000\242\000\000\000\000\000\000\000\000\000\000\000\000\rE\000\000\rE\rE\020f\021f\022\154\022\198\023v\rE\rE\000\000\rE\000\000\000\000\000\000\000\000\000\000\rE\000\000\rE\rE\023\162\000\000\000\000\000\000\000\000\rE\000\000\000\000\rE\000\000\rE\023\206\000\000\rE\rE\rE\rE\000\000\000\000\000\000\000\000\000\000\000\000\rE\000\000\rE\rE\000\000\rE\rE\rE\rE\022\242\rE\rE\000\000\000\000\rE\023\250\rE\000\000\000\000\023\030\023J\000\000\000\000\rE\rE\024&\024R\003\021\000\000\003\021\000\000\003\021\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\000\000\000\000\003\021\000\000\000\000\003\021\003\021\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\003\021\003\021\003\021\000\000\003\021\000\000\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\003\021\003\021\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\003\021\003\021\003\021\003\021\003\021\003\021\003\021\000\000\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\003\021\000\000\003\021\003\021\029\150\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\012\210\003\021\003\021\003\021\003\021\003\021\003\021\000\000\000\000\003\021\003\021\r\002\000\000\000\000\003\021\003\021\000\000\000\000\003\021\003\021\003\021\003\021\003\t\000\000\003\t\000\000\003\t\000\000\000\000\000\000\003\t\000\000\000\000\003\t\000\000\003\t\000\000\000\000\003\t\000\000\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\003\t\003\t\003\t\003\t\000\000\003\t\000\000\003\t\000\000\000\000\000\000\000\000\000\000\000\000\003\t\003\t\003\t\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\000\000\000\000\000\000\000\000\000\000\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\003\t\003\t\003\t\003\t\003\t\003\t\003\t\000\000\003\t\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\003\t\000\000\000\000\000\000\000\000\003\t\000\000\000\000\003\t\000\000\003\t\003\t\000\000\003\t\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\000\000\012\210\003\t\003\t\003\t\003\t\003\t\003\t\000\000\000\000\003\t\003\t\r\002\000\000\000\000\003\t\003\t\000\000\000\000\003\t\003\t\003\t\003\t\003\005\000\000\003\005\000\000\003\005\000\000\000\000\000\000\003\005\000\000\000\000\003\005\000\000\003\005\000\000\000\000\003\005\000\000\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\003\005\003\005\003\005\003\005\000\000\003\005\000\000\003\005\000\000\000\000\000\000\000\000\000\000\000\000\003\005\003\005\003\005\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\000\000\000\000\000\000\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\000\003\005\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\003\005\000\000\000\000\003\005\000\000\003\005\003\005\000\000\003\005\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\018\134\003\005\003\005\003\005\003\005\003\005\003\005\000\000\000\000\003\005\003\005\r\002\000\000\000\000\003\005\003\005\000\000\000\000\003\005\003\005\003\005\003\005\003\001\000\000\003\001\000\000\003\001\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\000\000\000\000\020:\000\000\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\020\226\021\146\021\190\021\014\000\000\021\234\000\000\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\021:\003\001\022\022\022B\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\022n\003\001\000\000\000\000\000\000\000\000\000\000\003\001\003\001\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\020f\021f\022\154\022\198\023v\003\001\003\001\000\000\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\023\162\000\000\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\023\206\000\000\003\001\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\024~\003\001\003\001\024\202\022\242\003\001\003\001\000\000\000\000\003\001\023\250\003\001\000\000\000\000\023\030\023J\000\000\000\000\003\001\003\001\024&\024R\003\017\000\000\003\017\000\000\003\017\000\000\000\000\000\000\003\017\000\000\000\000\003\017\000\000\003\017\000\000\000\000\003\017\000\000\000\000\003\017\003\017\003\017\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\003\017\003\017\003\017\003\017\000\000\003\017\000\000\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\017\003\017\003\017\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\000\000\000\000\000\000\000\000\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\000\000\003\017\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\003\017\000\000\000\000\003\017\000\000\003\017\003\017\000\000\003\017\003\017\029\210\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\000\000\018\134\003\017\003\017\003\017\003\017\003\017\003\017\000\000\000\000\003\017\003\017\r\002\000\000\000\000\003\017\003\017\000\000\000\000\003\017\003\017\003\017\003\017\002\253\000\000\002\253\000\000\002\253\000\000\000\000\000\000\002\253\000\000\000\000\002\253\000\000\002\253\000\000\000\000\002\253\000\000\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\002\253\002\253\002\253\002\253\000\000\002\253\000\000\002\253\000\000\000\000\000\000\000\000\000\000\000\000\002\253\002\253\002\253\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\000\000\000\000\000\000\000\000\000\000\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\002\253\002\253\002\253\002\253\002\253\002\253\002\253\000\000\002\253\000\000\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\002\253\000\000\000\000\000\000\000\000\002\253\000\000\000\000\002\253\000\000\002\253\002\253\000\000\002\253\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\000\000\012\210\002\253\002\253\002\253\002\253\002\253\002\253\000\000\000\000\002\253\002\253\r\002\000\000\000\000\002\253\002\253\000\000\000\000\002\253\002\253\002\253\002\253\002\249\000\000\002\249\000\000\002\249\000\000\000\000\000\000\002\249\000\000\000\000\002\249\000\000\002\249\000\000\000\000\002\249\000\000\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\002\249\002\249\002\249\002\249\000\000\002\249\000\000\002\249\000\000\000\000\000\000\000\000\000\000\000\000\002\249\002\249\002\249\002\249\002\249\002\249\000\000\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\000\000\000\000\000\000\000\000\000\000\002\249\002\249\002\249\000\000\000\000\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\000\000\002\249\000\000\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\002\249\000\000\000\000\000\000\000\000\002\249\000\000\000\000\002\249\000\000\002\249\002\249\000\000\002\249\002\249\002\249\002\249\000\000\000\000\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\000\000\018\134\002\249\002\249\002\249\002\249\002\249\002\249\000\000\000\000\002\249\002\249\r\002\000\000\000\000\002\249\002\249\000\000\000\000\002\249\002\249\002\249\002\249\002\245\000\000\002\245\000\000\002\245\000\000\000\000\000\000\002\245\000\000\000\000\002\245\000\000\002\245\000\000\000\000\020:\000\000\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\020\226\021\146\021\190\021\014\000\000\021\234\000\000\002\245\000\000\000\000\000\000\000\000\000\000\000\000\002\245\021:\002\245\022\022\022B\002\245\000\000\000\000\000\000\000\000\000\000\002\245\000\000\022n\002\245\000\000\000\000\000\000\000\000\000\000\002\245\002\245\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\245\000\000\002\245\002\245\020f\021f\022\154\022\198\023v\002\245\002\245\000\000\002\245\000\000\000\000\000\000\000\000\000\000\002\245\000\000\002\245\002\245\023\162\000\000\000\000\000\000\000\000\002\245\000\000\000\000\002\245\000\000\002\245\023\206\000\000\002\245\002\245\002\245\002\245\000\000\000\000\000\000\000\000\000\000\000\000\002\245\000\000\002\245\002\245\000\000\024~\002\245\002\245\024\202\022\242\002\245\002\245\000\000\000\000\002\245\023\250\002\245\000\000\000\000\023\030\023J\000\000\000\000\002\245\002\245\024&\024R\003\r\000\000\003\r\000\000\003\r\000\000\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\000\000\000\000\020:\000\000\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\020\226\021\146\021\190\021\014\000\000\021\234\000\000\003\r\000\000\000\000\000\000\000\000\000\000\000\000\003\r\021:\003\r\022\022\022B\003\r\000\000\000\000\000\000\000\000\000\000\003\r\000\000\022n\003\r\000\000\000\000\000\000\000\000\000\000\003\r\003\r\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\020f\021f\022\154\022\198\023v\003\r\003\r\000\000\003\r\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\023\162\000\000\000\000\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\023\206\000\000\003\r\003\r\030\002\003\r\000\000\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\000\000\024~\003\r\003\r\024\202\022\242\003\r\003\r\000\000\000\000\003\r\023\250\003\r\000\000\000\000\023\030\023J\000\000\000\000\003\r\003\r\024&\024R\002\241\000\000\002\241\000\000\002\241\000\000\000\000\000\000\002\241\000\000\000\000\002\241\000\000\002\241\000\000\000\000\002\241\000\000\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\002\241\002\241\002\241\002\241\000\000\002\241\000\000\002\241\000\000\000\000\000\000\000\000\000\000\000\000\002\241\002\241\002\241\002\241\002\241\002\241\000\000\000\000\000\000\000\000\000\000\002\241\000\000\002\241\002\241\000\000\000\000\000\000\000\000\000\000\002\241\002\241\002\241\000\000\000\000\000\000\000\000\000\000\000\000\002\241\000\000\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002\241\000\000\002\241\000\000\000\000\000\000\000\000\000\000\002\241\000\000\002\241\002\241\002\241\000\000\000\000\000\000\000\000\002\241\000\000\000\000\002\241\000\000\002\241\002\241\000\000\002\241\002\241\002\241\002\241\000\000\000\000\000\000\000\000\000\000\000\000\002\241\000\000\002\241\002\241\000\000\012\210\002\241\002\241\002\241\002\241\002\241\002\241\000\000\000\000\002\241\002\241\r\002\000\000\000\000\002\241\002\241\000\000\000\000\002\241\002\241\002\241\002\241\002\237\000\000\002\237\000\000\002\237\000\000\000\000\000\000\002\237\000\000\000\000\002\237\000\000\002\237\000\000\000\000\002\237\000\000\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\002\237\002\237\002\237\002\237\000\000\002\237\000\000\002\237\000\000\000\000\000\000\000\000\000\000\000\000\002\237\002\237\002\237\002\237\002\237\002\237\000\000\000\000\000\000\000\000\000\000\002\237\000\000\002\237\002\237\000\000\000\000\000\000\000\000\000\000\002\237\002\237\002\237\000\000\000\000\000\000\000\000\000\000\000\000\002\237\000\000\002\237\002\237\002\237\002\237\002\237\002\237\002\237\002\237\002\237\000\000\002\237\000\000\000\000\000\000\000\000\000\000\002\237\000\000\002\237\002\237\002\237\000\000\000\000\000\000\000\000\002\237\000\000\000\000\002\237\000\000\002\237\002\237\000\000\002\237\002\237\002\237\002\237\000\000\000\000\000\000\000\000\000\000\000\000\002\237\000\000\002\237\002\237\000\000\018\134\002\237\002\237\002\237\002\237\002\237\002\237\000\000\000\000\002\237\002\237\r\002\000\000\000\000\002\237\002\237\000\000\000\000\002\237\002\237\002\237\002\237\002\233\000\000\002\233\000\000\002\233\000\000\000\000\000\000\002\233\000\000\000\000\002\233\000\000\002\233\000\000\000\000\020:\000\000\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\020\226\021\146\021\190\021\014\000\000\021\234\000\000\002\233\000\000\000\000\000\000\000\000\000\000\000\000\002\233\021:\002\233\022\022\022B\002\233\000\000\000\000\000\000\000\000\000\000\002\233\000\000\022n\002\233\000\000\000\000\000\000\000\000\000\000\002\233\002\233\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\233\000\000\002\233\002\233\020f\021f\022\154\022\198\023v\002\233\002\233\000\000\002\233\000\000\000\000\000\000\000\000\000\000\002\233\000\000\002\233\002\233\023\162\000\000\000\000\000\000\000\000\002\233\000\000\000\000\002\233\000\000\002\233\023\206\000\000\002\233\002\233\002\233\002\233\000\000\000\000\000\000\000\000\000\000\000\000\002\233\000\000\002\233\002\233\000\000\024~\002\233\002\233\024\202\022\242\002\233\002\233\000\000\000\000\002\233\023\250\002\233\000\000\000\000\023\030\023J\000\000\000\000\002\233\002\233\024&\024R\r}\000\000\r}\000\000\r}\000\000\000\000\000\000\r}\000\000\000\000\r}\000\000\r}\000\000\000\000\r}\000\000\000\000\r}\r}\r}\000\000\r}\r}\r}\000\000\000\000\000\000\000\000\000\000\r}\r}\r}\r}\000\000\r}\000\000\r}\000\000\000\000\000\000\000\000\000\000\000\000\r}\r}\r}\r}\r}\r}\000\000\000\000\000\000\000\000\000\000\r}\000\000\r}\r}\000\000\000\000\000\000\000\000\000\000\r}\r}\r}\000\000\000\000\000\000\000\000\000\000\000\000\r}\000\000\r}\r}\r}\r}\r}\r}\r}\r}\r}\000\000\r}\000\000\000\000\000\000\000\000\000\000\r}\000\000\r}\r}\r}\000\000\000\000\000\000\000\000\r}\000\000\000\000\r}\000\000\r}\r}\000\000\r}\r}\r}\r}\000\000\000\000\000\000\000\000\000\000\000\000\r}\000\000\r}\r}\000\000\012\210\r}\r}\r}\r}\r}\r}\000\000\000\000\r}\r}\r\002\000\000\000\000\r}\r}\000\000\000\000\r}\r}\r}\r}\ry\000\000\ry\000\000\ry\000\000\000\000\000\000\ry\000\000\000\000\ry\000\000\ry\000\000\000\000\ry\000\000\000\000\ry\ry\ry\000\000\ry\ry\ry\000\000\000\000\000\000\000\000\000\000\ry\ry\ry\ry\000\000\ry\000\000\ry\000\000\000\000\000\000\000\000\000\000\000\000\ry\ry\ry\ry\ry\ry\000\000\000\000\000\000\000\000\000\000\ry\000\000\ry\ry\000\000\000\000\000\000\000\000\000\000\ry\ry\ry\000\000\000\000\000\000\000\000\000\000\000\000\ry\000\000\ry\ry\ry\ry\ry\ry\ry\ry\ry\000\000\ry\000\000\000\000\000\000\000\000\000\000\ry\000\000\ry\ry\ry\000\000\000\000\000\000\000\000\ry\000\000\000\000\ry\000\000\ry\ry\000\000\ry\ry\ry\ry\000\000\000\000\000\000\000\000\000\000\000\000\ry\000\000\ry\ry\000\000\018\134\ry\ry\ry\ry\ry\ry\000\000\000\000\ry\ry\r\002\000\000\000\000\ry\ry\000\000\000\000\ry\ry\ry\ry\ru\000\000\ru\000\000\ru\000\000\000\000\000\000\ru\000\000\000\000\ru\000\000\ru\000\000\000\000\020:\000\000\000\000\ru\ru\ru\000\000\ru\ru\ru\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\ru\000\000\000\000\000\000\000\000\000\000\000\000\ru\021:\ru\022\022\022B\ru\000\000\000\000\000\000\000\000\000\000\ru\000\000\022n\ru\000\000\000\000\000\000\000\000\000\000\ru\ru\000\242\000\000\000\000\000\000\000\000\000\000\000\000\ru\000\000\ru\ru\020f\021f\022\154\022\198\023v\ru\ru\000\000\ru\000\000\000\000\000\000\000\000\000\000\ru\000\000\ru\ru\023\162\000\000\000\000\000\000\000\000\ru\000\000\000\000\ru\000\000\ru\023\206\000\000\ru\ru\ru\ru\000\000\000\000\000\000\000\000\000\000\000\000\ru\000\000\ru\ru\000\000\ru\ru\ru\ru\022\242\ru\ru\000\000\000\000\ru\023\250\ru\000\000\000\000\023\030\023J\000\000\000\000\ru\ru\024&\024R\ra\000\000\ra\000\000\ra\000\000\000\000\000\000\ra\000\000\000\000\ra\000\000\ra\000\000\000\000\ra\000\000\000\000\ra\ra\ra\000\000\ra\ra\ra\000\000\000\000\000\000\000\000\000\000\ra\ra\ra\ra\000\000\ra\000\000\ra\000\000\000\000\000\000\000\000\000\000\000\000\ra\ra\ra\ra\ra\ra\000\000\000\000\000\000\000\000\000\000\ra\000\000\ra\ra\000\000\000\000\000\000\000\000\000\000\ra\ra\ra\000\000\000\000\000\000\000\000\000\000\000\000\ra\000\000\ra\ra\ra\ra\ra\ra\ra\ra\ra\000\000\ra\000\000\000\000\000\000\000\000\000\000\ra\000\000\ra\ra\ra\000\000\000\000\000\000\000\000\ra\000\000\000\000\ra\000\000\ra\ra\000\000\ra\ra\ra\ra\000\000\000\000\000\000\000\000\000\000\000\000\ra\000\000\ra\ra\000\000\018\134\ra\ra\ra\ra\ra\ra\000\000\000\000\ra\ra\r\002\000\000\000\000\ra\ra\000\000\000\000\ra\ra\ra\ra\r]\000\000\r]\000\000\r]\000\000\000\000\000\000\r]\000\000\000\000\r]\000\000\r]\000\000\000\000\020:\000\000\000\000\r]\r]\r]\000\000\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\r]\000\000\000\000\000\000\000\000\000\000\000\000\r]\021:\r]\022\022\022B\r]\000\000\000\000\000\000\000\000\000\000\r]\000\000\022n\r]\000\000\000\000\000\000\000\000\000\000\r]\r]\000\242\000\000\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\020f\021f\022\154\022\198\023v\r]\r]\000\000\r]\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\023\162\000\000\000\000\000\000\000\000\r]\000\000\000\000\r]\000\000\r]\023\206\000\000\r]\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\000\000\r]\r]\r]\r]\022\242\r]\r]\000\000\000\000\r]\023\250\r]\000\000\000\000\023\030\023J\000\000\000\000\r]\r]\024&\024R\004\137\000\000\004\137\000\000\004\137\000\000\000\000\000\000\004\137\000\000\000\000\004\137\000\000\004\137\000\000\000\000\004\137\000\000\000\000\004\137\004\137\004\137\000\000\004\137\004\137\004\137\000\000\000\000\000\000\000\000\000\000\004\137\004\137\004\137\004\137\000\000\004\137\000\000\004\137\000\000\000\000\000\000\000\000\000\000\000\000\004\137\004\137\004\137\004\137\004\137\004\137\000\000\000\000\000\000\000\000\000\000\004\137\000\000\004\137\004\137\000\000\000\000\000\000\000\000\000\000\004\137\004\137\004\137\000\000\000\000\000\000\000\000\000\000\000\000\004\137\000\000\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\000\000\004\137\000\000\000\000\000\000\000\000\000\000\004\137\000\000\004\137\004\137\004\137\000\000\000\000\000\000\000\000\004\137\000\000\000\000\004\137\000\000\004\137\004\137\000\000\004\137\004\137\004\137\004\137\000\000\000\000\000\000\000\000\000\000\000\000\004\137\000\000\004\137\004\137\000\000\018\134\004\137\004\137\004\137\004\137\004\137\004\137\000\000\000\000\004\137\004\137\r\002\000\000\000\000\004\137\004\137\000\000\000\000\004\137\004\137\004\137\004\137\004\133\000\000\004\133\000\000\004\133\000\000\000\000\000\000\004\133\000\000\000\000\004\133\000\000\004\133\000\000\000\000\020:\000\000\000\000\004\133\004\133\004\133\000\000\004\133\004\133\004\133\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\004\133\021:\004\133\022\022\022B\004\133\000\000\000\000\000\000\000\000\000\000\004\133\000\000\022n\004\133\000\000\000\000\000\000\000\000\000\000\004\133\004\133\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\004\133\004\133\020f\021f\022\154\022\198\023v\004\133\004\133\000\000\004\133\000\000\000\000\000\000\000\000\000\000\004\133\000\000\004\133\004\133\023\162\000\000\000\000\000\000\000\000\004\133\000\000\000\000\004\133\000\000\004\133\023\206\000\000\004\133\004\133\004\133\004\133\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\004\133\004\133\000\000\024~\004\133\004\133\024\202\022\242\004\133\004\133\000\000\000\000\004\133\023\250\004\133\000\000\000\000\023\030\023J\000\000\000\000\004\133\004\133\024&\024R\002\213\000\000\002\213\000\000\002\213\000\000\000\000\000\000\002\213\000\000\000\000\002\213\000\000\002\213\000\000\000\000\002\213\000\000\000\000\002\213\002\213\002\213\000\000\002\213\002\213\002\213\000\000\000\000\000\000\000\000\000\000\002\213\002\213\002\213\002\213\000\000\002\213\000\000\002\213\000\000\000\000\000\000\000\000\000\000\000\000\002\213\002\213\002\213\002\213\002\213\002\213\000\000\000\000\000\000\000\000\000\000\002\213\000\000\002\213\002\213\000\000\000\000\000\000\000\000\000\000\002\213\002\213\002\213\000\000\000\000\000\000\000\000\000\000\000\000\002\213\000\000\002\213\002\213\002\213\002\213\002\213\002\213\002\213\002\213\002\213\000\000\002\213\000\000\000\000\000\000\000\000\000\000\002\213\000\000\002\213\002\213\002\213\000\000\000\000\000\000\000\000\002\213\000\000\000\000\002\213\000\000\002\213\002\213\000\000\002\213\002\213\002\213\002\213\000\000\000\000\000\000\000\000\000\000\000\000\002\213\000\000\002\213\002\213\000\000\002\213\002\213\002\213\002\213\002\213\002\213\002\213\000\000\000\000\002\213\002\213\r\002\000\000\000\000\002\213\002\213\000\000\000\000\002\213\002\213\002\213\002\213\002\229\000\000\002\229\000\000\002\229\000\000\000\000\000\000\002\229\000\000\000\000\002\229\000\000\002\229\000\000\000\000\002\229\000\000\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\002\229\002\229\002\229\002\229\000\000\002\229\000\000\002\229\000\000\000\000\000\000\000\000\000\000\000\000\002\229\002\229\002\229\002\229\002\229\002\229\000\000\000\000\000\000\000\000\000\000\002\229\000\000\002\229\002\229\000\000\000\000\000\000\000\000\000\000\002\229\002\229\002\229\000\000\000\000\000\000\000\000\000\000\000\000\002\229\000\000\002\229\002\229\002\229\002\229\002\229\002\229\002\229\002\229\002\229\000\000\002\229\000\000\000\000\000\000\000\000\000\000\002\229\000\000\002\229\002\229\002\229\000\000\000\000\000\000\000\000\002\229\000\000\000\000\002\229\000\000\002\229\002\229\000\000\002\229\002\229\002\229\002\229\000\000\000\000\000\000\000\000\000\000\000\000\002\229\000\000\002\229\002\229\000\000\012\210\002\229\002\229\002\229\002\229\002\229\002\229\000\000\000\000\002\229\002\229\r\002\000\000\000\000\002\229\002\229\000\000\000\000\002\229\002\229\002\229\002\229\002\225\000\000\002\225\000\000\002\225\000\000\000\000\000\000\002\225\000\000\000\000\002\225\000\000\002\225\000\000\000\000\002\225\000\000\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\002\225\002\225\002\225\002\225\000\000\002\225\000\000\002\225\000\000\000\000\000\000\000\000\000\000\000\000\002\225\002\225\002\225\002\225\002\225\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\000\000\002\225\002\225\002\225\000\000\000\000\000\000\000\000\000\000\000\000\002\225\000\000\002\225\002\225\002\225\002\225\002\225\002\225\002\225\002\225\002\225\000\000\002\225\000\000\000\000\000\000\000\000\000\000\002\225\000\000\002\225\002\225\002\225\000\000\000\000\000\000\000\000\002\225\000\000\000\000\002\225\000\000\002\225\002\225\000\000\002\225\002\225\002\225\002\225\000\000\000\000\000\000\000\000\000\000\000\000\002\225\000\000\002\225\002\225\000\000\018\134\002\225\002\225\002\225\002\225\002\225\002\225\000\000\000\000\002\225\002\225\r\002\000\000\000\000\002\225\002\225\000\000\000\000\002\225\002\225\002\225\002\225\002\221\000\000\002\221\000\000\002\221\000\000\000\000\000\000\002\221\000\000\000\000\002\221\000\000\002\221\000\000\000\000\020:\000\000\000\000\002\221\002\221\002\221\000\000\002\221\002\221\002\221\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\002\221\000\000\000\000\000\000\000\000\000\000\000\000\002\221\021:\002\221\022\022\022B\002\221\000\000\000\000\000\000\000\000\000\000\002\221\000\000\022n\002\221\000\000\000\000\000\000\000\000\000\000\002\221\002\221\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\221\002\221\020f\021f\022\154\022\198\023v\002\221\002\221\000\000\002\221\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\221\002\221\023\162\000\000\000\000\000\000\000\000\002\221\000\000\000\000\002\221\000\000\002\221\023\206\000\000\002\221\002\221\002\221\002\221\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\221\002\221\000\000\024~\002\221\002\221\024\202\022\242\002\221\002\221\000\000\000\000\002\221\023\250\002\221\000\000\000\000\023\030\023J\000\000\000\000\002\221\002\221\024&\024R\015\025\000\000\015\025\000\000\015\025\000\000\000\000\000\000\015\025\000\000\000\000\015\025\000\000\015\025\000\000\000\000\015\025\000\000\000\000\015\025\015\025\015\025\000\000\015\025\015\025\015\025\000\000\000\000\000\000\000\000\000\000\015\025\015\025\015\025\015\025\000\000\015\025\000\000\015\025\000\000\000\000\000\000\000\000\000\000\000\000\015\025\015\025\015\025\015\025\015\025\015\025\000\000\000\000\000\000\000\000\000\000\015\025\000\000\015\025\015\025\000\000\000\000\000\000\000\000\000\000\015\025\015\025\015\025\000\000\000\000\000\000\000\000\000\000\000\000\015\025\000\000\015\025\015\025\015\025\015\025\015\025\015\025\015\025\015\025\015\025\000\000\015\025\000\000\000\000\000\000\000\000\000\000\015\025\000\000\015\025\015\025\015\025\000\000\000\000\000\000\000\000\015\025\000\000\000\000\015\025\000\000\015\025\015\025\000\000\015\025\015\025\015\025\015\025\000\000\000\000\000\000\000\000\000\000\000\000\015\025\000\000\015\025\015\025\000\000\012\210\015\025\015\025\015\025\015\025\015\025\015\025\000\000\000\000\015\025\015\025\r\002\000\000\000\000\015\025\015\025\000\000\000\000\015\025\015\025\015\025\015\025\r\173\000\000\r\173\000\000\r\173\000\000\000\000\000\000\r\173\000\000\000\000\r\173\000\000\r\173\000\000\000\000\r\173\000\000\000\000\r\173\r\173\r\173\000\000\r\173\r\173\r\173\000\000\000\000\000\000\000\000\000\000\r\173\r\173\r\173\r\173\000\000\r\173\000\000\r\173\000\000\000\000\000\000\000\000\000\000\000\000\r\173\r\173\r\173\r\173\r\173\r\173\000\000\000\000\000\000\000\000\000\000\r\173\000\000\r\173\r\173\000\000\000\000\000\000\000\000\000\000\r\173\r\173\r\173\000\000\000\000\000\000\000\000\000\000\000\000\r\173\000\000\r\173\r\173\r\173\r\173\r\173\r\173\r\173\r\173\r\173\000\000\r\173\000\000\000\000\000\000\000\000\000\000\r\173\000\000\r\173\r\173\r\173\000\000\000\000\000\000\000\000\r\173\000\000\000\000\r\173\000\000\r\173\r\173\000\000\r\173\r\173\r\173\r\173\000\000\000\000\000\000\000\000\000\000\000\000\r\173\000\000\r\173\r\173\000\000\012\210\r\173\r\173\r\173\r\173\r\173\r\173\000\000\000\000\r\173\r\173\r\002\000\000\000\000\r\173\r\173\000\000\000\000\r\173\r\173\r\173\r\173\r\169\000\000\r\169\000\000\r\169\000\000\000\000\000\000\r\169\000\000\000\000\r\169\000\000\r\169\000\000\000\000\r\169\000\000\000\000\r\169\r\169\r\169\000\000\r\169\r\169\r\169\000\000\000\000\000\000\000\000\000\000\r\169\r\169\r\169\r\169\000\000\r\169\000\000\r\169\000\000\000\000\000\000\000\000\000\000\000\000\r\169\r\169\r\169\r\169\r\169\r\169\000\000\000\000\000\000\000\000\000\000\r\169\000\000\r\169\r\169\000\000\000\000\000\000\000\000\000\000\r\169\r\169\r\169\000\000\000\000\000\000\000\000\000\000\000\000\r\169\000\000\r\169\r\169\r\169\r\169\r\169\r\169\r\169\r\169\r\169\000\000\r\169\000\000\000\000\000\000\000\000\000\000\r\169\000\000\r\169\r\169\r\169\000\000\000\000\000\000\000\000\r\169\000\000\000\000\r\169\000\000\r\169\r\169\000\000\r\169\r\169\r\169\r\169\000\000\000\000\000\000\000\000\000\000\000\000\r\169\000\000\r\169\r\169\000\000\018\134\r\169\r\169\r\169\r\169\r\169\r\169\000\000\000\000\r\169\r\169\r\002\000\000\000\000\r\169\r\169\000\000\000\000\r\169\r\169\r\169\r\169\r\165\000\000\r\165\000\000\r\165\000\000\000\000\000\000\r\165\000\000\000\000\r\165\000\000\r\165\000\000\000\000\020:\000\000\000\000\r\165\r\165\r\165\000\000\r\165\r\165\r\165\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\r\165\000\000\000\000\000\000\000\000\000\000\000\000\r\165\021:\r\165\022\022\022B\r\165\000\000\000\000\000\000\000\000\000\000\r\165\000\000\022n\r\165\000\000\000\000\000\000\000\000\000\000\r\165\r\165\000\242\000\000\000\000\000\000\000\000\000\000\000\000\r\165\000\000\r\165\r\165\020f\021f\022\154\022\198\023v\r\165\r\165\000\000\r\165\000\000\000\000\000\000\000\000\000\000\r\165\000\000\r\165\r\165\023\162\000\000\000\000\000\000\000\000\r\165\000\000\000\000\r\165\000\000\r\165\023\206\000\000\r\165\r\165\r\165\r\165\000\000\000\000\000\000\000\000\000\000\000\000\r\165\000\000\r\165\r\165\000\000\r\165\r\165\r\165\r\165\022\242\r\165\r\165\000\000\000\000\r\165\023\250\r\165\000\000\000\000\023\030\023J\000\000\000\000\r\165\r\165\024&\024R\r\149\000\000\r\149\000\000\r\149\000\000\000\000\000\000\r\149\000\000\000\000\r\149\000\000\r\149\000\000\000\000\r\149\000\000\000\000\r\149\r\149\r\149\000\000\r\149\r\149\r\149\000\000\000\000\000\000\000\000\000\000\r\149\r\149\r\149\r\149\000\000\r\149\000\000\r\149\000\000\000\000\000\000\000\000\000\000\000\000\r\149\r\149\r\149\r\149\r\149\r\149\000\000\000\000\000\000\000\000\000\000\r\149\000\000\r\149\r\149\000\000\000\000\000\000\000\000\000\000\r\149\r\149\r\149\000\000\000\000\000\000\000\000\000\000\000\000\r\149\000\000\r\149\r\149\r\149\r\149\r\149\r\149\r\149\r\149\r\149\000\000\r\149\000\000\000\000\000\000\000\000\000\000\r\149\000\000\r\149\r\149\r\149\000\000\000\000\000\000\000\000\r\149\000\000\000\000\r\149\000\000\r\149\r\149\000\000\r\149\r\149\r\149\r\149\000\000\000\000\000\000\000\000\000\000\000\000\r\149\000\000\r\149\r\149\000\000\012\210\r\149\r\149\r\149\r\149\r\149\r\149\000\000\000\000\r\149\r\149\r\002\000\000\000\000\r\149\r\149\000\000\000\000\r\149\r\149\r\149\r\149\r\145\000\000\r\145\000\000\r\145\000\000\000\000\000\000\r\145\000\000\000\000\r\145\000\000\r\145\000\000\000\000\r\145\000\000\000\000\r\145\r\145\r\145\000\000\r\145\r\145\r\145\000\000\000\000\000\000\000\000\000\000\r\145\r\145\r\145\r\145\000\000\r\145\000\000\r\145\000\000\000\000\000\000\000\000\000\000\000\000\r\145\r\145\r\145\r\145\r\145\r\145\000\000\000\000\000\000\000\000\000\000\r\145\000\000\r\145\r\145\000\000\000\000\000\000\000\000\000\000\r\145\r\145\r\145\000\000\000\000\000\000\000\000\000\000\000\000\r\145\000\000\r\145\r\145\r\145\r\145\r\145\r\145\r\145\r\145\r\145\000\000\r\145\000\000\000\000\000\000\000\000\000\000\r\145\000\000\r\145\r\145\r\145\000\000\000\000\000\000\000\000\r\145\000\000\000\000\r\145\000\000\r\145\r\145\000\000\r\145\r\145\r\145\r\145\000\000\000\000\000\000\000\000\000\000\000\000\r\145\000\000\r\145\r\145\000\000\018\134\r\145\r\145\r\145\r\145\r\145\r\145\000\000\000\000\r\145\r\145\r\002\000\000\000\000\r\145\r\145\000\000\000\000\r\145\r\145\r\145\r\145\r\141\000\000\r\141\000\000\r\141\000\000\000\000\000\000\r\141\000\000\000\000\r\141\000\000\r\141\000\000\000\000\020:\000\000\000\000\r\141\r\141\r\141\000\000\r\141\r\141\r\141\000\000\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\r\141\000\000\000\000\000\000\000\000\000\000\000\000\r\141\021:\r\141\022\022\022B\r\141\000\000\000\000\000\000\000\000\000\000\r\141\000\000\022n\r\141\000\000\000\000\000\000\000\000\000\000\r\141\r\141\000\242\000\000\000\000\000\000\000\000\000\000\000\000\r\141\000\000\r\141\r\141\020f\021f\022\154\022\198\023v\r\141\r\141\000\000\r\141\000\000\000\000\000\000\000\000\000\000\r\141\000\000\r\141\r\141\023\162\000\000\000\000\000\000\000\000\r\141\000\000\000\000\r\141\000\000\r\141\023\206\000\000\r\141\r\141\r\141\r\141\000\000\000\000\000\000\000\000\000\000\000\000\r\141\000\000\r\141\r\141\000\000\r\141\r\141\r\141\r\141\022\242\r\141\r\141\000\000\000\000\r\141\023\250\r\141\000\000\000\000\023\030\023J\000\000\000\000\r\141\r\141\024&\024R\002\217\000\000\002\217\000\000\002\217\000\000\000\000\000\000\002\217\000\000\000\000\002\217\000\000\002\217\000\000\000\000\002\217\000\000\000\000\002\217\002\217\002\217\000\000\002\217\002\217\002\217\000\000\000\000\000\000\000\000\000\000\002\217\002\217\002\217\002\217\000\000\002\217\000\000\002\217\000\000\000\000\000\000\000\000'B\000\000\002\217\002\217\002\217\002\217\002\217\002\217\000\000\000\000\000\000\000\000\000\000\002\217\000\000\002\217\002\217\000\000\000\000\000\000\000\000\012\145\002\217\002\217\002\217\000\000\000\000\000\000\000\000\000\000\000\000\002\217\000\000\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\000\000\002\217\000\000\000\000\000\000\000\000\000\000\002\217\021-\002\217\002\217\002\217\000\000\000\000\000\000\000\000\002\217\000\000\000\000\002\217\000\000\002\217\002\217\000\242\002\217\002\217\002\217\002\217\000\000\021-\000\000\000\000\002\170\000\000\002\217\002\174\002\217\002\217\000\000\002\217\002\217\002\217\002\217\002\217\002\217\002\217\000\000\000\000\002\217\002\217\r\002\002\186\000\000\002\217\002\217\000\000\000\000\002\217\002\217\002\217\002\217\000\006\000\000\000\000\000\250\003\146\003\150\003\154\t*\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\tV\000\000&\158\011\174)\146\002\198\b\025\011B&\162\001\234\000\000':\000\000\bn\011\234\012\134\012\138\000\000\012\142\000\000\011\242&\166\012\154\000\000\br&\162\tZ\000\000&\206\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000'2\003\138\000\000\000\000\t\142\t\150'J\000\000*\006\t\158\t\166\t\182\017f\0182\003\154'R\t\190'2\000\000\002\202\000\000\000\000\000\000'J'b\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\001\234*\170*\186\000\000\000\000\000\000\000\000\018v\018\210\019\022\t\214\t\218'j\019*'\170)\134\000\000\b\025\b\025\000\000\000\000\t\222\000\000\t\226\000\000\000\000*\198\000\000\tf\000\000*\202\000\000\000\000\000\000\003\138\b1\000\000'\230'\242\nf\017Z\000\000*\250\000\000\017r\007\166\000\006+\242\019.\000\250\003\146\003\150\003\154\t*\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\tV\000\000\b9\000\000\000\000\000\000\000\000\000\000&\162\001\234\000\000\000\000+\n\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000&\166\012\154\000\000\br\000\000\tZ\000\000&\206\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000'2\003\138\000\000\000\000\t\142\t\150'J\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000'R\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000'b\000\000\018j5\150\t\194\t\198\000\000\t\202\t\2105\182\000\000\000\000\000\000\000\000\000\000\000\000\018v\018\210\019\022\t\214\t\218'j\019*'\170\000\000\000\0005\215!\226\000\000\000\000\t\222\000\000\t\226\000\000\000\000\000\000\000\000\"\230\000\000\000\000\003j\000\000\000\000\000\000\016>\000\000\000\000'\242\nf\017Z\000\000\000\000\000\000\017r\007\166\000\006\000\000\019.\000\250\003\146\003\150\003\154\t*\003\158\003j\017J\003\170\000\000\000\000\bf\000\000\tV\000\0006\006\000\000\000\000\000\000\000\000\000\000&\162\001\234\000\000\"\234\016>\bn\000\000\012\134\012\138\000\000\012\142\000\000\016\162&\166\012\154\000\000\br\000\000\tZ\"\246&\206/\190\000\000\012\158\012\162\"\022\012\166\t\134\012\178\012\182\rz\015\214\000\242\000\000'2\003\138\000\000\000\000\t\142\t\150'J\000\000/\202\t\158\t\166\t\182\017f\0182\000\000'R\t\190\016\162\000\000\000\000\t\218\000\000\000\000\000\000'b\000\000\018j5\150\t\194\t\198\000\000\t\202\t\2105\182/\214\000\000\000\000\000\242\000\000\000\000\018v\018\210\019\022\t\214\t\218'j\019*'\170\000\000\000\000\bA\000\000/j\000\000\t\222\000\000\t\226\017N\001\202\b\130\003\154\015\018\000\000\003j\000\000\b\134\000\000\000\000\bf\001\n\004F'\242\nf\017Z\003v\000\000\000\000\017r\007\166\001\234\000\000\019.\000\000\001\014\001\018\001\022\b\234\001\030\000\000\001\"\000\000\016>\001\206\000\000\000\000\000\000\"\026\000\000\b\238\001&\000\000\001*\011\154\000\000\000\000\014\142\001\210\001\190\0012\004F\000\000\0016\"B\003\138\016\237\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*\nN\021-\021\021\t\190\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\016\162\n6\t\194\t\198\001N\nJ\nR\n^\000\000\021-\000\000\001R\002\170\000\000\000\000\002\174\016\237\t\214\t\218\000\000\000\242\n\218\001V\000\000\002\182\000\000\000\000\002\137\002\137\001Z\000\000\002\186\000\000\016\237\002\194\002\137\021\021\016\237\025\174\000\000\000\000\000\000\001\150\011\158\016\237\000\000\nf\002\137\004F\001\154\016\237\001\158\007\166\001\162\001\166\000\n\000\000\001\170\000\000\001\174\001\178\000\185\002\198\003\150\003\154\000\185\021i\003j\000\000\019\130\000\000\000\000\bf\002\137\000\000\000\000\000\185\000\000\000\185\"F\000\185\002\137\000\185\001\234\000\000\019\154\b\233\bn\002\137\000\000\b\233\000\000\004F\000\000\019\162\000\185\000\000\000\000\br\000\000\tZ\000\000\000\185\000\000\000\000\000\000\000\000\000\185\000\000\t\134\000\000\001\190\000\000\000\185\000\000\000\000\000\185\003\138\002\202\002\137\t\142\t\150\000\185\000\185\000\185\t\158\t\166\t\182\000\000\019\170\000\000\000\185\t\190\000\185\000\185\b\005\000\000\000\000\000\000\000\000\000\185\000\000\000\000\000\185\t\194\t\198\000\000\t\202\t\210\000\185\000\000\000\000\021i\000\000\000\000\021i\b\005\015\222\021i\t\214\t\218\000\185\000\000\000\185\000\000\000\000\000\185\000\185\000\000\012M\t\222\000\000\t\226\b\233\000\000\000\000\000\000\000\000\000\000\000\185\021i\b\005\021i\000\000\021i\000\000\000\185\000\185\nf\017Z\b\005\000\000\b\233\017r\007\166\b\233\b\005\tN\000\185\000\209\000\185\003\150\003\154\000\209\000\000\003j\000\000\019\130\b\005\012M\bf\000\000\000\000\000\000\000\209\000\000\000\209\000\000\000\209\000\000\000\209\001\234\000\000\019\154\000\000\bn\012M\000\000\000\000\000\000\012M\018&\019\162\000\209\000\000\000\000\br\012M\tZ\000\000\000\209\b\005\000\000\012M\000\000\000\209\000\000\t\134\000\000\001\190\000\000\000\209\000\000\b\005\000\209\003\138\000\000\000\000\t\142\t\150\000\209\000\209\000\209\t\158\t\166\t\182\000\000\019\170\000\000\000\209\t\190\000\209\000\209\000\000\015\238\000\000\t\030\003\154\000\209\000\000\000\000\000\209\t\194\t\198\t\"\t\202\t\210\000\209\000\000\000\000\000\000\017\206\000\000\000\000\000\000\000\000\001\234\t\214\t\218\000\209\000\000\000\209\002\137\000\000\000\209\000\209\000\000\000\000\t\222\000\000\t\226\000\000\000\000\002\137\000\000\000\000\000\000\000\209\000\000\000\000\000\000\002\137\015\234\000\000\000\209\000\209\nf\017Z\011\170\000\n\003\138\017r\007\166\b\130\003\154\011R\000\209\003j\000\209\b\134\002\137\000\000\bf\001\n\000\000\000\000\000\000\002\137\003v\002\137\000\000\000\000\000\000\001\234\000\000\002\137\000\000\001\014\001\018\001\022\b\234\001\030\002\137\001\"\000\000\000\000\000\000\000\000\017\178\000\000\000\000\000\000\b\238\001&\000\242\001*\011\154\000\000\000\000\b\230\000\000\001\190\0012\000\000\000\000\0016\000\000\003\138\000\000\000\000\t\246\t\250\000\000\002\137\000\000\t\254\000\000\n\006\n*\nN\000\000\021i\t\190\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\n6\t\194\t\198\001N\nJ\nR\n^\000\000\b\237\000\000\001R\000\000\b\237\000\000\000\000\000\000\t\214\t\218\011\174\000\000\n\218\001V\011B\014\150\000\000\000\000\000\000\000\000\001Z\011\234\000\000\000\000\000\000\004F\000\000\011\242\000\000\000\000\001\230\000\000\000\000\001\150\011\158\000\000\000\000\nf\000\000\000\000\001\154\000\000\001\158\007\166\001\162\001\166\000\000\000\000\001\170\001\234\001\174\001\178\007\017\000\000\b\130\003\154\007\017\000\000\003j\000\000\r\026\000\000\000\000\bf(.\000\000\021i\007\017\000\000\021i\000\000\007\017\021i\007\017\001\234\000\000\rf\003\234\000\000(\166\000\000\b\190\000\000\003\138\000\000\014~\007\017\b\237\000\000\000\000\000\000(\190\000\000\007\017\021i\000\000\021i\b\210\021i\000\000\015\014\000\000\001\190\000\000\007\017\000\000\b\237\007\017\003\138\b\237\000\000\t\246\t\250\007\017\007\017\016\233\t\254\000\000\n\006\000\000\015z\000\000\007\017\t\190\000\000\012\177\000\000\000\000\012\177\000\000\000\000\007\017\007\017\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\000\000\000\000\000\000\000\000*\018\000\000\000\000\t\214\t\218\007\017\"\230\007\017\015\210\003j\007\017\007\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\177\000\000\016\233\000\000\003\182/\186\016\233\025:\007\017\nf\000\000\000\000\000\000\016\233\000\000\007\166\012\177\004F\000\006\016\233\000\000\007\017\003\146\003\150\003\154\000\000\003\158\003j\"\234\003\170\000\000\000\000\bf\000\000\018R\000\000\000\000\000\000\014\221\000\000\014\221\014\221\000\000\001\234\"\246\000\000/\222\bn\000\000\012\134\012\138\012\177\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162/\234\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\t\218\t\142\t\150\000\000\012\177\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190/\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000/j\000\000\000\000\000\000\000\000\019\186\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\000\t\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\221\000\000\000\000\000\000\000\000\000\000\nf\017Z\014\221\000\000\000\000\017r\007\166\000\006\000\000\019.\021u\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\018R\000\000\000\000\000\000\014\213\000\000\014\213\014\213\021u\001\234\000\000\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\021u\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\021u\003\138\000\000\000\000\t\142\t\150\021u\021u\000\242\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\021u\021u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\186\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\021u\000\000\000\000\t\222\000\000\t\226\000\000\000\000\000\000\000\000\000\000\000\000\021u\000\000\000\000\014\213\000\000\000\000\000\000\000\000\000\000\nf\017Z\014\213\000\000\000\000\017r\007\166\000\006\000\000\019.\b\005\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\018R\000\000\000\000\000\000\014\205\000\000\014\205\014\205\b\005\001\234\000\000\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\b\005\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\b\005\003\138\000\000\000\000\t\142\t\150\b\005\tN\000\242\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\b\005\b\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\002\137\002\137\000\000\019\186\018\210\019\022\t\214\t\218\002\137\019*\000\000\000\000\000\000\000\000\b\005\000\000\000\000\t\222\000\000\t\226\002\137\002\137\002\137\000\000\000\000\000\000\b\005\000\000\000\n\014\205\000\n\000\000\000\000\000\000\000\000\nf\017Z\014\205\000\000\000\000\017r\007\166\002\137\002\137\019.\002\137\002\137\002\137\002\137\000\n\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\002\137\000\000\000\000\002\137\000\000\002\137\000\n\002\137\002\137\002\137\002\137\000\n\002\137\000\000\000\000\015\218\002\137\000\000\002\137\000\000\002\137\002\137\"r\000\000\002\137\002\137\002\137\000\000\002\137\002\137\002\137\002\137\002\137\002\137\000\000\002\137\002\137\002\137\000\000\002\137\002\137\002\137\002\137\002\137\002\137\002\137\002\137\002\137\002\137\002\137\000\000\000\000\002\137\000\000\002\137\000\000\000\000\000\000\002\137\002\137\002\137\000\000\002\137\002\137\002\137\002\137&\170\002\137\002\137\002\137\000\000\000\000\000\000\000\000\002\137\002\137\002\137\002\137\002\137\002\137\002\137\000\000\002\137\"\218\000\000\000\000\000\000\002\137\000\000\000\000\002\137\000\006\002\137\000\000\011\170\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\002\137\000\000\bf\000\000\t\146\002\137\002\137\000\000\000\000\000\000\002\137\002\137\000\000\001\234\002\137\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\242\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\"\018\210\019\022\t\214\t\218\000\000\019*\000\000\011\174\000\000\000\000\000\000\011B\0152\t\222\000\000\t\226\000\000\000\000\011\234\000\000\000\000\000\000\004F\000\000\011\242&:\000\000\000\000\000\000\000\000\000\000\nf\017Z\000\000\000\000\000\000\017r\007\166\000\006\000\000\019.\005U\003\146\003\150\003\154\005U\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\t\154\000\000\005U\000\000\000\000\000\000\005U\000\000\005U\001\234\000\000\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\005U\012\154\"\254\br\000\000\tZ\000\000\005U\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\005U\003\138\000\000\000\000\t\142\t\150\005U\005U\005U\t\158\t\166\t\182\017f\0182\000\000\005U\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000%\218\018\210\019\022\t\214\t\218\005U\019*\005U\000\000\000\000\005U\005U\000\000\007u\t\222\000\000\t\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\134\005U\nf\017Z%\242\000\000\000\000\017r\007\166\000\006\000\000\019.\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\t\162\000\000\000\000\000\000\000\242\000\000\n\002\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\007u\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\011\174\000\000\000\000\000\000\011B\014\202\000\000\018j\000\000\t\194\t\198\011\234\t\202\t\210\000\000\004F\000\000\011\242\000\000\000\000\000\000%\150\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000A\t\226\000\000\000\000\000A\000A\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000A\000\000\000A\nf\017Z\000\000\n\233\000\000\017r\007\166\000\000\000A\019.\000\000\000\000\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000\000\000A\000\000\000A\000\000\000A\000\000\000\000\000\000\000\000\000A\000A\000\000\000A\000A\000A\000A\000A\000A\000\000\000\000\000\000\000A\000\000\000\000\000A\000A\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000A\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000=\000A\000\000\000\000\000=\000=\000=\000\000\000=\000=\000\000\000=\000\000\000\000\000=\000\000\000=\000A\000A\000\000\n\229\000\000\000A\000A\000\000\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\000\000=\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\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\153\000=\000\000\000\000\020\153\020\153\020\153\000\000\020\153\020\153\000\000\020\153\000\000\000\000\020\153\000\000\020\153\000=\000=\000\000\n\245\000\000\000=\000=\000\000\020\153\000=\000\000\000\000\020\153\000\000\020\153\020\153\000\000\020\153\000\000\000\000\000\000\020\153\000\000\020\153\000\000\020\153\000\000\000\000\000\000\000\000\020\153\020\153\000\000\020\153\020\153\020\153\020\153\020\153\020\153\000\000\000\000\000\000\020\153\000\000\000\000\020\153\020\153\000\000\000\000\000\000\020\153\020\153\020\153\020\153\020\153\000\000\000\000\020\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\153\000\000\020\153\020\153\000\000\020\153\020\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\153\020\153\020\153\020\153\020\153\000\000\020\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\153\020\149\020\153\000\000\000\000\020\149\020\149\020\149\000\000\020\149\020\149\000\000\020\149\000\000\000\000\020\149\000\000\020\149\020\153\020\153\000\000\n\241\000\000\020\153\020\153\000\000\020\149\020\153\000\000\000\000\020\149\000\000\020\149\020\149\000\000\020\149\000\000\000\000\000\000\020\149\000\000\020\149\000\000\020\149\000\000\000\000\000\000\000\000\020\149\020\149\000\000\020\149\020\149\020\149\020\149\020\149\020\149\000\000\000\000\000\000\020\149\000\000\000\000\020\149\020\149\000\000\000\000\000\000\020\149\020\149\020\149\020\149\020\149\000\000\000\000\020\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\149\000\000\020\149\020\149\000\000\020\149\020\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\149\020\149\020\149\020\149\020\149\000\000\020\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\149\000\006\020\149\000\000\007\145\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\030\214\020\149\020\149\000\000\000\000\000\000\020\149\020\149\000\000\001\234\020\149\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\242\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \190\018\210\019\022\t\214\t\218\000\000\019*\000\000\011\174\000\000\000\000\000\000\011B\015N\t\222\000\000\t\226\000\000\000\000\011\234\000\000\000\000\000\000\004F\000\000\011\242 \214\000\000\000\000\000\000\000\000\000\000\nf\017Z\000\000\000\000\000\000\017r\007\166\000\006\000\000\019.\011q\003\146\003\150\003\154\011q\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000 \242\000\000\011q\000\000\011\170\000\000\011q\000\000\011q\001\234\000\000\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\011q\012\154\000\000\br\000\000\tZ\000\000\011q\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\011q\003\138\000\000\000\000\t\142\t\150\011q\011q\000\242\t\158\t\166\t\182\017f\0182\000\000\011q\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011q\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\014\018\210\019\022\t\214\t\218\011q\019*\011q&\226\000\000\011q\011q\000\000\015\162\t\222\000\000\t\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\174\000\000\000\0000\162\011B\015\134\011q\nf\017Z!&\000\000\011\234\017r\007\166\000\006\004F\019.\011\242\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000!B\000\000\000\000\000\000\000\242\000\000!^\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\011\174\000\000\000\000\000\000\011B\015\166\000\000\018j\000\000\t\194\t\198\011\234\t\202\t\210\000\000\004F\000\000\011\242\000\000\000\000\000\000!b\018\210\019\022\t\214\t\218\000\000\019*\000\000\001\025\000\000\000\000\000\000\000\000\000\000\t\222\000\000\t\226\000\014\000\018\000\022\000\026\000\030\000\000\000\000\000\"\000&\000*\000.\0002\001\025\0006\000:\nf\017Z\000\000\000>\000\000\017r\007\166\000B\000\000\019.\000\000\000\000\000\000\000\000\000F\000\000\000\000\000\000\000\000\000\000\000\000\000J\001\025\000N\b~\000R\000V\000Z\000^\000b\000f\001\025\000\000\000\000\000\000\000j\000n\001\025\000r\000v\000\000\000z\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\000\000\000\000\000\000\000\000\001\169\000~\000\000\000\000\000\000\000\000\000\130\000\134\000\000\000\000\000\000\000\000\000\000\000\138\000\142\000\146\000\000\000\000\000\000\000\000\000\000\001\169\000\000\000\000\000\000\000\000\000\000\001\025\000\150\000\154\000\158\000\162\000\000\000\166\000\170\000\000\000\174\000\000\000\000\001\025\000\178\000\182\000\186\000\000\000\000\000\000\000\000\000\000\000\000\000\190\000\006\000\194\000\198\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\202\bN\000\206\000\000\bf\000\000\bj\000\000\000\000\000\000\000\210\000\214\000\000\000\218\000\000\001\234\000\000\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\001\169\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f.B\018\134\001\169\t\190\000\000\000\000\000\000\000\000\000\000\000\000\001\169\000\000\r\002\018j\000\000\t\194\t\198\000\000\t\202\t\210\001\169\000\000\000\000\000\000\000\000\000\000\000\000.J\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\t\178\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000%R\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\t\206\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000%\030\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\t\230\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\230\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\012\190\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000$j\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\012\214\000\000\000\000\bf\000\000\012\238\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f$N\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000$V\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\015\246\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\238\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\018\138\000\000\000\000\bf\000\000\018\162\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\029^\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029f\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\t\206\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\006\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\019R\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019n\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\019\218\000\000\000\000\bf\000\000\019\242\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\020\006\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\014\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\020>\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020R\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\020j\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020~\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\020\166\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\186\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\020\230\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\250\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\021\018\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021&\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\021>\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021R\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\021j\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021~\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\021\150\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\170\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\021\194\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\214\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\021\238\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\002\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\022\026\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022.\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\022F\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022Z\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\022r\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\134\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\022\158\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\178\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\022\202\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\222\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\022\246\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\n\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\023\"\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0236\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\023N\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023b\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\023z\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\142\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\023\166\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\186\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\023\210\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\230\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\023\254\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\018\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\024*\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024>\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\024V\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024j\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\024\130\000\000\000\000\bf\000\000\024\154\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\024\174\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\182\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\024\206\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\226\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\026\170\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\190\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\026\226\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\246\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\027\026\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027.\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\027V\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027j\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\027\142\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\162\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\027\198\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\218\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\028\006\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\026\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\028>\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028R\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\028v\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\138\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\028\166\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\186\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\029\130\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\194\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\029\154\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\174\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\029\214\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\234\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\030\006\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\026\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\030V\000\000\000\000\bf\000\000\030n\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\030\130\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\138\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\030\238\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\002\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\0312\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031F\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\031f\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031z\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\031\154\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\174\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\031\202\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\222\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000\031\246\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000 6\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000 \014\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \"\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000 J\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000 ^\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000 z\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \142\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000\003\170\000\000\000\000\bf\000\000$\154\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f\0182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\174\018\210\019\022\t\214\t\218\000\000\019*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\222\000\006\t\226\000\000\000\000\003\146\003\150\003\154\000\000\003\158\003j\000\000.f\000\000\000\000\bf\000\000.~\nf\017Z\000\000\000\000\000\000\017r\007\166\000\000\001\234\019.\000\000\000\000\bn\000\000\012\134\012\138\000\000\012\142\000\000\000\000\000\000\012\154\000\000\br\000\000\tZ\000\000\000\000\000\000\000\000\012\158\012\162\000\000\012\166\t\134\012\178\012\182\rz\015\214\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\017f.\146\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018j\000\000\t\194\t\198\000\000\t\202\t\210\016\233\000\000\000\000\000\000\000\000\000\000\000\000.\154\018\210\019\022\t\214\t\218\015u\019*\000\000\000\000\015u\015u\002v\000\000\015u\t\222\015u\t\226\000\000\015u\000\000\000\000\000\000\002z\015u\015u\016\022\015u\015u\000\000\015u\001\234\015u\nf\017Z\000\000\000\000\015u\017r\007\166\016\233\015u\019.\000\000\000\000\000\000\000\000\000\000\000\000\001\185\t\014\015u\000\000\015u\000\000\000\000\015u\016\018\015u\001\246\000\000\000\000\000\000\000\000\015u\003\138\000\000\015u\015u\000\000\001\185\015u\015u\000\000\015u\000\000\015u\000\000\000\000\015u\000\000\000\000\000\000\011\153\000\000\000\000\000\000\011\153\015u\000\000\015u\015u\015u\000\000\015u\015u\015u\016\233\011\153\000\000\000\000\016\233\016\233\016\030\011\153\000\000\015u\015u\016\233\000\000\000\000\015u\004F\015u\016\233\000\000\000\000\011\153\000\000\000\000\000\000\n\178\000\000\000\000\011\153\000\000\000\000\000\000\015u\015u\015u\000\000\015u\015u\000\000\015u\000\000\015u\011\153\015u\000\000\015u\017\r\015u\011\153\015u\b\130\003\154\001\185\000\000\003j\000\000\b\134\011\153\000\000\bf\000\000\000\000\000\000\000\000\017\r\017\r\011\153\017\r\017\r\000\000\001\234\000\000\000\000\000\000\000\000\012\210\001\185\b\190\000\000\000\000\000\000\000\000\000\000\000\000\001\185\001\181\r\002\011\153\000\000\011\153\000\000\017\r\011\153\b\210\001\185\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\001\181\t\246\t\250\000\000\000\000\017\r\t\254\011\153\n\006\n*\nN\005\145\005\145\t\190\000\000\002\130\000\000\000\000\000\000\005\145\000\000\000\000\017\r\005\145\n6\t\194\t\198\000\000\nJ\nR\n^\005\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\145\t\214\t\218\000\000\000\000\n\218\017\r\000\000\017\r\000\000\000\000\005\145\000\000\000\000\000\000\000\000\000\000\000\000\005\145\000\000\005\145\000\000\000\000\017\r\017\r\000\000\005\145\017\r\017\r\000\000\nf\000\000\017\r\005\145\017\r\000\000\007\166\017\t\017\r\001\181\017\r\b\130\003\154\000\000\000\000\003j\000\000\b\134\000\000\000\000\bf\000\000\000\000\000\000\000\000\017\t\017\t\000\000\017\t\017\t\000\000\001\234\018\134\001\181'f\000\000\000\000\000\000\b\190\000\000\000\000\001\181\000\000\r\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181\017\t\000\000\b\210\000\000\000\000\011N\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\017\t\t\254\000\000\n\006\n*\nN\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\017\t\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\214\t\218\000\000\000\000\n\218\017\t\000\000\017\t\000\000\000\000\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\t\017\t\000\000\000\000\017\t\017\t\000\000\nf\000\000\017\t\000\000\017\t\021%\007\166\000\000\017\t\021%\017\t\000\000\021%\021%\000\000\000\000\021%\021%\000\000\000\000\021%\021%\000\000\000\000\021%\021%\021%\000\000\021%\021%\021%\000\000\021%\021%\021%\000\000\021%\021%\021%\000\000\000\000\000\000\000\000\021%\000\000\000\000\000\000\021%\000\000\000\000\021%\021%\021%\000\000\021%\021%\021%\000\000\021%\021%\021%\021%\000\000\021%\021%\021%\000\000\021%\021%\021%\021%\021%\021%\000\000\021%\021%\021%\000\000\021%\021%\021%\021%\021%\021%\000\000\021%\021%\021%\021%\021%\021%\002^\021%\000\000\000\000\002^\021%\021%\000\000\002^\000\000\021%\000\000\000\000\000\000\021%\000\000\000\000\000\000\021%\000\000\021%\021%\021%\021%\021%\021%\021%\021%\021%\021%\000\000\021%\021%\000\000\000\000\000\000\021%\000\000\021%\000\000\021%\021%\021%\002b\021%\021%\021%\005n\021%\021%\000\000\005\146\021%\021%\001\161\021%\021%\021%\021%\021%\021%\021%\021%\021%\020\237\021%\021%\000\000\020\237\000\000\000\000\001\230\020\237\000\000\000\000\001\161\000\000\000\000\000\250\000\000\005f\000\000\002\158\020\237\020\237\020\237\000\000\020\237\020\237\020\237\000\000\000\000\000\0000b\000\000\000\000\000\000\b\r\000\000&\162\000\000\000\000\020\237\000\000\000\000\000\000\000\000\000\000\000\000\020\237\020\237\020\2370f\000\000\020\237\000\000\000\000\000\000\003\2260\142\020\237\000\000\001\157\020\237\000\000\000\000\000\000\000\000\000\000\020\237\020\237\020\237\000\000'2\000\000\000\000\000\000\000\000\020\237'J\020\237\020\237\001\233\001\157\000\000\000\000\000\000\020\237'R\000\000\020\237\000\000\000\000\001\161\000\000\000\000\005v'b\000\000\000\000\020\237\000\000\000\000\001\233\000\000\000\000\000\000\000\000\020\237\000\000\020\237\020\237\000\000\020\237\020\237\000\000\012\210\001\161'j\000\0001j\000\000\000\000\b\r\b\r\001\161\020\237\r\002\020\237\000\000\020\237\020\237\000\000\014\133\020\237\001\161\000\000\014\133\000\000\020\237\001\230\014\133\020\237\020\2371z\020\237\000\000\020\237\020\237\014\133\000\000\000\000\014\133\014\133\014\133\000\000\014\133\014\133\014\133\000\000\000\000\001\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\133\000\000\000\000\000\000\000\000\000\000\000\000\014\133\014\133\014\133\001\233\000\000\014\133\018\134\001\157\000\000\003\226\000\153\014\133\000\000\000\000\014\133\001\157\000\000\r\002\000\000\000\153\014\133\014\133\014\133\000\000\000\153\001\157\012\210\001\233\000\000\014\133\014\029\014\133\014\133\000\000\000\000\001\233\000\000\r\002\014\133\000\000\000\000\014\133\001\229\000\000\000\000\001\233\000\000\005v\000\000\000\000\000\153\014\133\000\000\000\000\000\000\014\029\000\000\000\153\000\000\014\133\000\000\014\133\014\133\001\229\014\133\014\133\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\014\133\000\000\014\133\000\000\014\133\014\133\000\000\014\141\014\133\000\000\000\000\014\141\000\000\014\133\001\230\014\141\014\133\014\133\000\153\014\133\000\000\014\133\014\133\014\141\000\000\000\000\014\141\014\141\014\141\000\000\014\141\014\141\014\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\029\014\141\000\000\000\000\000\000\000\000\000\153\000\000\014\141\014\141\014\141\002:\000\000\014\141\000\000\000\000\000\000\003\226\000\153\014\141\001\229\000\153\014\141\000\153\000\000\000\000\000\000\000\153\014\141\014\141\014\141\000\000\000\153\000\000\000\000\000\000\000\000\014\141\014\029\014\141\014\141\000\000\000\000\018\134\001\229\000\000\014\141\000\000\000\000\014\141\000\000\000\000\001\229\000\000\r\002\005v\000\000\000\000\000\153\014\141\000\000\000\000\001\229\014\029\000\000\000\153\000\000\014\141\000\000\014\141\014\141\000\000\014\141\014\141\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\014\141\000\000\014\141\000\000\014\141\014\141\000\000\014\137\014\141\000\000\000\000\014\137\000\000\014\141\001\230\014\137\014\141\014\141\000\153\014\141\000\000\014\141\014\141\014\137\000\000\000\000\014\137\014\137\014\137\000\000\014\137\014\137\014\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\029\014\137\000\000\000\000\000\000\000\000\000\153\000\000\014\137\014\137\014\137#\150\000\000\014\137\021-\021\021\000\000\003\226\000\157\014\137\000\000\000\153\014\137\000\153\000\000\000\000\000\000\000\157\014\137\014\137\014\137\000\000\000\157\000\000\000\000\021-\000\000\014\137\002\170\014\137\014\137\002\174\000\000\000\000\000\000\000\000\014\137\000\000\000\000\014\137\t6\000\000\000\000\000\000\001\221\005v\000\000\002\186\000\157\014\137\002\194\000\000\021\021\000\000\000\000\000\157\000\000\014\137\000\000\014\137\014\137\000\000\014\137\014\137\000\000\001\221\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\014\137\000\000\014\137\002\198\014\137\014\137\000\000\014\129\014\137\000\000\000\000\014\129\000\000\014\137\001\230\014\129\014\137\014\137\000\157\014\137\000\000\014\137\014\137\014\129\000\000\000\000\014\129\014\129\014\129\000\000\014\129\014\129\014\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\014\129\000\000\000\000\000\000\000\000\000\157\000\000\014\129\014\129\014\129\002\022\000\000\014\129\000\000\002\202\000\000\003\226\000\000\014\129\000\000\000\157\014\129\000\157\001\221\000\000\000\000\000\000\014\129\014\129\014\129\000\000\000\000\000\000\000\000\000\000\000\000\014\129\000\000\014\129\014\129\001\217\000\000\000\000\000\000\000\000\014\129\012\210\001\221\014\129\000\000\000\000\000\000\000\000\000\000\005v\001\221\000\000\r\002\014\129\000\000\000\000\001\217\000\000\000\000\000\000\001\221\014\129\000\000\014\129\014\129\000\000\014\129\014\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\129\000\000\014\129\000\000\014\129\014\129\000\000\000\000\014\129\000\000\000\000\000\161\000\000\014\129\000\161\000\161\014\129\014\129\000\000\014\129\000\000\014\129\014\129\000\161\000\000\000\000\000\161\000\161\000\161\000\000\000\161\000\161\000\161\000\000\014!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\161\000\000\000\000\000\000\000\000\001\226\001\230\000\161\000\000\000\161\001\217\000\000\000\161\000\000\014!\000\000\000\161\000\000\000\161\000\000\000\000\000\161\000\000\000\000\000\000\001\234\002&\000\161\000\161\000\161\000\000\000\000\000\000\018\134\001\217\000\000\000\161\000\000\000\161\000\161\000\000\000\000\001\217\000\000\r\002\000\161\000\161\000\000\000\161\000\000\000\000\003~\001\217\003\226\000\161\000\000\000\000\003z\000\161\003\138\003\186\003\198\000\000\000\000\000\153\000\000\000\161\003\210\000\161\000\161\000\000\000\161\000\161\000\153\000\000\000\000\000\000\000\000\000\153\000\000\014!\000\000\000\000\000\000\000\161\000\000\000\161\000\000\000\161\003\214\000\000\003\230\000\161\000\000\000\000\000\153#f\000\161\000\153\000\153\000\161\000\161\000\000\000\161\000\153\000\161\000\000\000\153\000\000\000\000\000\153\000\153\000\153\000\000\000\153\000\153\000\153\000\000\014\029\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\153\000\000\000\153\000\000\000\153\000\153\000\000\000\153\000\000\014\029\000\000\000\153\000\000\000\153\000\000\000\153\000\153\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\153\000\000\000\000\000\000\000\153\000\000\000\153\000\153\000\000\000\153\000\000\000\000\000\153\000\153\000\000\000\153\000\000\000\153\004\190\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\153\000\153\000\153\n\t\000\153\000\153\000\000\n\t\000\000\000\000\000\153\n\t\000\000\014\029\000\153\000\000\000\000\000\153\001\202\001\226\001\230\000\153\n\t\n\t\n\t\000\153\n\t\n\t\n\t\000\000\000\153\000\000\000\000\000\153\000\153\000\000\000\153\000\000\000\153\001\234\002&\n\t\000\000\000\000\000\000\000\000\000\153\000\000\n\t\n\t\n\t\006\"\001\206\n\t\000\000\000\153\000\000\004J\000\000\n\t\000\000\000\153\n\t\000\153\000\000\002f\001\210\003\226\n\t\n\t\n\t\003z\000\000\003\138\003\186\003\198\000\000\n\t\000\000\n\t\n\t\003\210\000\000\000\000\000\000\000\000\n\t\000\153\000\000\n\t\000\000\000\000#\186\000\000\000\000\n\t\000\000\000\000\000\000\n\t\000\000\000\000\000\153\003\214\000\153\003\230\000\000\n\t\000\000\n\t\n\t\000\000\n\t\n\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\t\000\000\n\t\000\000\n\t\n\t\000\000\020\241\n\t\000\000\000\000\020\241\000\000\n\t\000\000\020\241\n\t\n\t\000\000\n\t\000\000\n\t\n\t\005\138\000\000\000\000\020\241\020\241\020\241\000\000\020\241\020\241\020\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\001\209\020\241\000\000\000\000\000\000\000\000\000\000\000\000\020\241\020\241\020\241\000\000\000\000\020\241\000\000\000\000\001\234\002&\000\000\020\241\000\000\001\209\020\241\000\000\000\000\000\000\000\000\000\000\020\241\020\241\020\241\000\000\000\000\000\000\000\000\000\000\000\000\020\241\000\000\020\241\020\241\001\205\003~\000\000\003\218\000\000\020\241\000\000\003z\020\241\003\138\003\186\003\198\000\000\000\000\020\241\000\000\000\000\003\210\020\241\000\000\000\000\001\205\000\000\000\000\000\000\000\000\020\241\000\000\020\241\020\241\000\000\020\241\020\241\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\001\197\020\241\000\000\020\241\000\000\020\241\020\241\000\000\020E\020\241\000\000\000\000\020E\000\000\020\241\001\209\020E\020\241\020\241\000\000\020\241\001\197\020\241\020\241\005\138\000\000\000\000\020E\020E\020E\000\000\020E\020E\020E\000\000\000\000\000\000\000\000\012\210\001\209\000\000\001\226\001\230\000\000\000\000\000\000\020E\001\209\000\000\r\002\000\000\000\000\000\000\020E\020E3\210\001\205\001\209\020E\000\000\000\000\001\234\002&\000\000\020E\001\193\000\000\020E\000\000\000\000\000\000\000\000\000\000\020E\020E\020E\000\000\000\000\000\000\018\134\001\205\000\000\020E\000\000\020E\020E\001\193\004\202\001\205\003\226\r\002\020E\000\000\003z\020E\003\138\003\186\003\198\001\205\001\197\020E\000\000\000\000\003\210\020E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020E\000\000\020E\020E\000\000\020E\020E\000\000\000\000\000\000\012\210\001\197\000\000\003\214\000\000\003\230\000\000\000\000\020E\001\197\020E\r\002\020E\020E\005=\000\000\020E\000\000\005=\001\197\000\000\020E\005=\000\000\020E\004F\000\000\020E\000\000\020E\020E\000\000\000\000\005=\005=\005=\000\000\005=\005=\005=\000\000\000\000\001\193\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\005=\000\000\000\000\000\000\000\000\000\000\000\000\005=\005=\004>\000\000\000\000\005=\018\134\001\193\001\234\002&\000\000\005=\000\000\000\000\005=\001\193\000\000\r\002\000\000\000\000\005=\005=\005=\000\000\000\000\001\193\000\000\000\000\000\000\005=\000\000\005=\005=\000\000\003~\000\000\005j\000\000\005=\000\000\003z\005=\003\138\003\186\003\198\000\000\000\000\005=\000\000\000\000\003\210\005=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005=\000\000\005=\005=\000\000\005=\005=\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\005=\000\000\005=\000\000\005=\005=\019\149\000\000\005=\000\000\019\149\000\000\000\000\005=\019\149\000\000\005=\004F\000\000\005=\000\000\005=\005=\000\000\000\000\019\149\019\149\019\149\000\000\019\149\019\149\019\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\019\149\000\000\000\000\000\000\000\000\000\000\000\000\019\149\019\149\004>\000\000\000\000\019\149\000\000\000\000\001\234\002&\000\000\019\149\000\000\000\000\019\149\000\000\000\000\000\000\000\000\000\000\019\149\019\149\019\149\000\000\000\000\000\000\000\000\000\000\000\000\019\149\000\000\019\149\019\149\000\000\003~\000\000\005\142\000\000\019\149\000\000\003z\019\149\003\138\003\186\003\198\000\000\000\000\019\149\000\000\000\000\003\210\019\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\149\000\000\019\149\019\149\000\000\019\149\019\149\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\019\149\000\000\019\149\000\000\019\149\019\149\019\153\000\000\019\149\000\000\019\153\000\000\000\000\019\149\019\153\000\000\019\149\004F\000\000\019\149\000\000\019\149\019\149\000\000\000\000\019\153\019\153\019\153\000\000\019\153\019\153\019\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\019\153\000\000\000\000\000\000\000\000\000\000\000\000\019\153\019\153\004Z\000\000\000\000\019\153\000\000\000\000\001\234\002&\000\000\019\153\000\000\000\000\019\153\000\000\000\000\000\000\000\000\000\000\019\153\019\153\019\153\000\000\000\000\000\000\000\000\000\000\000\000\019\153\000\000\019\153\019\153\000\000\006\202\000\000\003\226\000\000\019\153\000\000\003z\019\153\003\138\003\186\003\198\000\000\000\000\019\153\000\000\000\000\003\210\019\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\153\000\000\019\153\019\153\000\000\019\153\019\153\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\019\153\000\000\019\153\000\000\019\153\019\153\019\165\000\000\019\153\000\000\019\165\000\000\000\000\019\153\019\165\000\000\019\153\019\153\000\000\019\153\000\000\019\153\019\153\000\000\000\000\019\165\019\165\019\165\000\000\019\165\019\165\019\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\019\165\000\000\000\000\000\000\000\000\000\000\000\000\019\165\019\165\004>\000\000\000\000\019\165\000\000\000\000\001\234\002&\000\000\019\165\000\000\000\000\019\165\000\000\000\000\000\000\000\000\000\000\019\165\019\165\019\165\000\000\000\000\000\000\000\000\000\000\000\000\019\165\000\000\019\165\019\165\000\0002\238\000\000\003\226\000\000\019\165\000\000\003z\019\165\003\138\003\186\003\198\000\000\000\000\019\165\000\000\000\000\003\210\019\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\165\000\000\019\165\019\165\000\000\019\165\019\165\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\019\165\000\000\019\165\000\000\019\165\019\165\019\169\000\000\019\165\000\000\019\169\000\000\000\000\019\165\019\169\000\000\019\165\004F\000\000\019\165\000\000\019\165\019\165\000\000\000\000\019\169\019\169\019\169\000\000\019\169\019\169\019\169\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\019\169\000\000\000\000\000\000\000\157\000\000\000\000\019\169\019\169\004Z\000\157\000\000\019\169\000\000\000\000\000\000\000\000\000\000\019\169\000\157\000\000\019\169\000\000\000\000\000\157\000\000\000\000\019\169\019\169\019\169\000\157\000\000\000\000\000\000\000\000\000\000\019\169\000\157\019\169\019\169\000\000\000\000\000\000\000\000\000\000\019\169\000\000\000\000\019\169\000\000\000\157\000\000\000\000\000\000\019\169\000\000\000\000\000\157\019\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\169\000\000\019\169\019\169\000\157\019\169\019\169\000\000\000\000\000\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\169\000\000\019\169\000\000\019\169\019\169\019\181\000\000\019\169\000\000\019\181\000\157\000\000\019\169\019\181\000\000\019\169\019\169\000\000\019\169\000\000\019\169\019\169\000\157\000\000\019\181\019\181\019\181\004\174\019\181\019\181\019\181\000\000\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\157\000\000\000\000\000\157\019\181\000\000\000\000\000\000\006\018\000\000\000\000\019\181\019\181\004>\000\157\000\000\019\181\000\000\000\157\000\000\000\157\000\000\019\181\000\157\000\000\019\181\000\000\000\000\000\157\000\000\000\000\019\181\019\181\019\181\000\000\000\000\000\000\000\000\000\000\000\000\019\181\000\000\019\181\019\181\000\000\000\000\000\000\000\000\000\000\019\181\000\000\000\000\019\181\000\000\000\157\000\000\000\000\000\000\019\181\000\000\000\000\000\157\019\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\181\000\000\019\181\019\181\000\157\019\181\019\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\181\000\000\019\181\000\000\019\181\019\181\019\185\000\000\019\181\000\000\019\185\000\157\000\000\019\181\019\185\000\000\019\181\004F\000\000\019\181\000\000\019\181\019\181\000\000\000\000\019\185\019\185\019\185\000\000\019\185\019\185\019\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\019\185\000\000\000\000\000\000#\170\000\000\000\000\019\185\019\185\004Z\000\157\000\000\019\185\000\000\000\157\000\000\000\157\000\000\019\185\000\157\000\000\019\185\000\000\000\000\000\157\000\000\000\000\019\185\019\185\019\185\000\000\000\000\000\000\000\000\000\000\000\000\019\185\000\000\019\185\019\185\000\000\000\000\000\000\000\000\000\000\019\185\000\000\000\000\019\185\000\000\000\157\000\000\000\000\000\000\019\185\000\000\000\000\000\157\019\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\185\000\000\019\185\019\185\000\157\019\185\019\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\185\000\000\019\185\000\000\019\185\019\185\019\189\000\000\019\185\000\000\019\189\000\157\000\000\019\185\019\189\000\000\019\185\019\185\000\000\019\185\000\000\019\185\019\185\000\000\000\000\019\189\019\189\019\189\000\000\019\189\019\189\019\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157\019\189\000\000\000\000\000\0004:\000\000\000\000\019\189\019\189\005*\000\153\000\000\019\189\000\000\000\157\000\000\000\157\000\000\019\189\000\153\000\000\019\189\000\000\000\000\000\153\000\000\000\000\019\189\019\189\019\189\000\000\000\000\000\000\000\000\000\000\000\000\019\189\000\000\019\189\019\189\000\000\000\000\000\000\000\000\000\000\019\189\000\000\000\000\019\189\000\000\000\153\000\000\000\000\000\000\019\189\000\000\000\000\000\153\019\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\189\000\000\019\189\019\189\000\153\019\189\019\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\189\000\000\019\189\000\000\019\189\019\189\019\213\000\000\019\189\000\000\019\213\000\153\000\000\019\189\019\213\000\000\019\189\004F\000\000\019\189\000\000\019\189\019\189\000\000\000\000\019\213\019\213\019\213\000\000\019\213\019\213\019\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\019\213\000\000\000\000\000\0004J\000\000\000\000\019\213\019\213\004>\000\000\000\000\019\213\000\000\000\153\000\000\000\153\000\000\019\213\000\000\000\000\019\213\000\000\000\000\000\000\000\000\000\000\019\213\019\213\019\213\000\000\000\000\000\000\000\000\000\000\000\000\019\213\000\000\019\213\019\213\000\000\000\000\000\000\000\000\000\000\019\213\000\000\000\000\019\213\000\000\000\000\000\000\000\000\000\000\019\213\000\000\000\000\000\000\019\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\213\000\000\019\213\019\213\000\000\019\213\019\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\213\000\000\019\213\000\000\019\213\019\213\019\217\000\000\019\213\000\000\019\217\000\000\000\000\019\213\019\217\000\000\019\213\004F\000\000\019\213\000\000\019\213\019\213\000\000\000\000\019\217\019\217\019\217\000\000\019\217\019\217\019\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\217\000\000\000\000\000\000\000\000\000\000\000\000\019\217\019\217\004Z\000\000\000\000\019\217\000\000\000\000\000\000\000\000\000\000\019\217\000\000\000\000\019\217\000\000\000\000\000\000\000\000\000\000\019\217\019\217\019\217\000\000\000\000\000\000\000\000\000\000\000\000\019\217\000\000\019\217\019\217\000\000\000\000\000\000\000\000\000\000\019\217\000\000\000\000\019\217\000\000\000\000\000\000\000\000\000\000\019\217\000\000\000\000\000\000\019\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\217\000\000\019\217\019\217\000\000\019\217\019\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\217\000\000\019\217\000\000\019\217\019\217\019\221\000\000\019\217\000\000\019\221\000\000\000\000\019\217\019\221\000\000\019\217\019\217\000\000\019\217\000\000\019\217\019\217\000\000\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\000\000\000\000\000\000\000\000\019\221\019\221\005*\000\000\000\000\019\221\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\019\221\000\000\000\000\000\000\000\000\000\000\019\221\019\221\019\221\000\000\000\000\000\000\000\000\000\000\000\000\019\221\000\000\019\221\019\221\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\019\221\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\000\000\019\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\221\000\000\019\221\019\221\000\000\019\221\019\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\221\000\000\019\221\000\000\019\221\019\221\019\225\000\000\019\221\000\000\019\225\000\000\000\000\019\221\019\225\000\000\019\221\004F\000\000\019\221\000\000\019\221\019\221\000\000\000\000\019\225\019\225\019\225\000\000\019\225\019\225\019\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\225\000\000\000\000\000\000\000\000\000\000\000\000\019\225\019\225\005F\000\000\000\000\019\225\000\000\000\000\000\000\000\000\000\000\019\225\000\000\000\000\019\225\000\000\000\000\000\000\000\000\000\000\019\225\019\225\019\225\000\000\000\000\000\000\000\000\000\000\000\000\019\225\000\000\019\225\019\225\000\000\000\000\000\000\000\000\000\000\019\225\000\000\000\000\019\225\000\000\000\000\000\000\000\000\000\000\019\225\000\000\000\000\000\000\019\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\225\000\000\019\225\019\225\000\000\019\225\019\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\225\000\000\019\225\000\000\019\225\019\225\019\229\000\000\019\225\000\000\019\229\000\000\000\000\019\225\019\229\000\000\019\225\019\225\000\000\019\225\000\000\019\225\019\225\000\000\000\000\019\229\019\229\019\229\000\000\019\229\019\229\019\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\229\000\000\000\000\000\000\000\000\000\000\000\000\019\229\019\229\004>\000\000\000\000\019\229\000\000\000\000\000\000\000\000\000\000\019\229\000\000\000\000\019\229\000\000\000\000\000\000\000\000\000\000\019\229\019\229\019\229\000\000\000\000\000\000\000\000\000\000\000\000\019\229\000\000\019\229\019\229\000\000\000\000\000\000\000\000\000\000\019\229\000\000\000\000\019\229\000\000\000\000\000\000\000\000\000\000\019\229\000\000\000\000\000\000\019\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\229\000\000\019\229\019\229\000\000\019\229\019\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\229\000\000\019\229\000\000\019\229\019\229\019\233\000\000\019\229\000\000\019\233\000\000\000\000\019\229\019\233\000\000\019\229\004F\000\000\019\229\000\000\019\229\019\229\000\000\000\000\019\233\019\233\019\233\000\000\019\233\019\233\019\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\233\000\000\000\000\000\000\000\000\000\000\000\000\019\233\019\233\004Z\000\000\000\000\019\233\000\000\000\000\000\000\000\000\000\000\019\233\000\000\000\000\019\233\000\000\000\000\000\000\000\000\000\000\019\233\019\233\019\233\000\000\000\000\000\000\000\000\000\000\000\000\019\233\000\000\019\233\019\233\000\000\000\000\000\000\000\000\000\000\019\233\000\000\000\000\019\233\000\000\000\000\000\000\000\000\000\000\019\233\000\000\000\000\000\000\019\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\233\000\000\019\233\019\233\000\000\019\233\019\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\233\000\000\019\233\000\000\019\233\019\233\019\237\000\000\019\233\000\000\019\237\000\000\000\000\019\233\019\237\000\000\019\233\019\233\000\000\019\233\000\000\019\233\019\233\000\000\000\000\019\237\019\237\019\237\000\000\019\237\019\237\019\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\000\000\000\000\000\000\000\000\019\237\019\237\005*\000\000\000\000\019\237\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\019\237\000\000\000\000\000\000\000\000\000\000\019\237\019\237\019\237\000\000\000\000\000\000\000\000\000\000\000\000\019\237\000\000\019\237\019\237\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\019\237\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\000\000\019\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\237\000\000\019\237\019\237\000\000\019\237\019\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\237\000\000\019\237\000\000\019\237\019\237\019\241\000\000\019\237\000\000\019\241\000\000\000\000\019\237\019\241\000\000\019\237\004F\000\000\019\237\000\000\019\237\019\237\000\000\000\000\019\241\019\241\019\241\000\000\019\241\019\241\019\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\241\000\000\000\000\000\000\000\000\000\000\000\000\019\241\019\241\005F\000\000\000\000\019\241\000\000\000\000\000\000\000\000\000\000\019\241\000\000\000\000\019\241\000\000\000\000\000\000\000\000\000\000\019\241\019\241\019\241\000\000\000\000\000\000\000\000\000\000\000\000\019\241\000\000\019\241\019\241\000\000\000\000\000\000\000\000\000\000\019\241\000\000\000\000\019\241\000\000\000\000\000\000\000\000\000\000\019\241\000\000\000\000\000\000\019\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\241\000\000\019\241\019\241\000\000\019\241\019\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\241\000\000\019\241\000\000\019\241\019\241\019\193\000\000\019\241\000\000\019\193\000\000\000\000\019\241\019\193\000\000\019\241\019\241\000\000\019\241\000\000\019\241\019\241\000\000\000\000\019\193\019\193\019\193\000\000\019\193\019\193\019\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\019\193\000\000\000\000\000\000\000\000\000\000\000\000\019\193\019\193\005F\000\000\000\000\019\193\000\000\000\000\000\000\000\000\000\000\019\193\000\000\000\000\019\193\000\000\000\000\000\000\000\000\000\000\019\193\019\193\019\193\000\000\000\000\000\000\000\000\000\000\000\000\019\193\000\000\019\193\019\193\000\000\000\000\000\000\000\000\000\000\019\193\000\000\000\000\019\193\000\000\000\000\000\000\000\000\000\000\019\193\000\000\000\000\000\000\019\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\193\000\000\019\193\019\193\000\000\019\193\019\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\193\000\000\019\193\000\000\019\193\019\193\019\197\000\000\019\193\000\000\019\197\000\000\000\000\019\193\019\197\000\000\019\193\019\193\000\000\019\193\000\000\019\193\019\193\000\000\000\000\019\197\019\197\019\197\000\000\019\197\019\197\019\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\197\000\000\000\000\000\000\000\000\000\000\000\000\019\197\019\197\004>\000\000\000\000\019\197\000\000\000\000\000\000\000\000\000\000\019\197\000\000\000\000\019\197\000\000\000\000\000\000\000\000\000\000\019\197\019\197\019\197\000\000\000\000\000\000\000\000\000\000\000\000\019\197\000\000\019\197\019\197\000\000\000\000\000\000\000\000\000\000\019\197\000\000\000\000\019\197\000\000\000\000\000\000\000\000\000\000\019\197\000\000\000\000\000\000\019\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\197\000\000\019\197\019\197\000\000\019\197\019\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\197\000\000\019\197\000\000\019\197\019\197\019\201\000\000\019\197\000\000\019\201\000\000\000\000\019\197\019\201\000\000\019\197\004F\000\000\019\197\000\000\019\197\019\197\000\000\000\000\019\201\019\201\019\201\000\000\019\201\019\201\019\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\201\000\000\000\000\000\000\000\000\000\000\000\000\019\201\019\201\004Z\000\000\000\000\019\201\000\000\000\000\000\000\000\000\000\000\019\201\000\000\000\000\019\201\000\000\000\000\000\000\000\000\000\000\019\201\019\201\019\201\000\000\000\000\000\000\000\000\000\000\000\000\019\201\000\000\019\201\019\201\000\000\000\000\000\000\000\000\000\000\019\201\000\000\000\000\019\201\000\000\000\000\000\000\000\000\000\000\019\201\000\000\000\000\000\000\019\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\201\000\000\019\201\019\201\000\000\019\201\019\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\201\000\000\019\201\000\000\019\201\019\201\019\205\000\000\019\201\000\000\019\205\000\000\000\000\019\201\019\205\000\000\019\201\019\201\000\000\019\201\000\000\019\201\019\201\000\000\000\000\019\205\019\205\019\205\000\000\019\205\019\205\019\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\205\000\000\000\000\000\000\000\000\000\000\000\000\019\205\019\205\005*\000\000\000\000\019\205\000\000\000\000\000\000\000\000\000\000\019\205\000\000\000\000\019\205\000\000\000\000\000\000\000\000\000\000\019\205\019\205\019\205\000\000\000\000\000\000\000\000\000\000\000\000\019\205\000\000\019\205\019\205\000\000\000\000\000\000\000\000\000\000\019\205\000\000\000\000\019\205\000\000\000\000\000\000\000\000\000\000\019\205\000\000\000\000\000\000\019\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\205\000\000\019\205\019\205\000\000\019\205\019\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\205\000\000\019\205\000\000\019\205\019\205\019\209\000\000\019\205\000\000\019\209\000\000\000\000\019\205\019\209\000\000\019\205\004F\000\000\019\205\000\000\019\205\019\205\000\000\000\000\019\209\019\209\019\209\000\000\019\209\019\209\019\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\209\000\000\000\000\000\000\000\000\000\000\000\000\019\209\019\209\005F\000\000\000\000\019\209\000\000\000\000\000\000\000\000\000\000\019\209\000\000\000\000\019\209\000\000\000\000\000\000\000\000\000\000\019\209\019\209\019\209\000\000\000\000\000\000\000\000\000\000\000\000\019\209\000\000\019\209\019\209\000\000\000\000\000\000\000\000\000\000\019\209\000\000\000\000\019\209\000\000\000\000\000\000\000\000\000\000\019\209\000\000\000\000\000\000\019\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\209\000\000\019\209\019\209\000\000\019\209\019\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\209\000\000\019\209\000\000\019\209\019\209\002A\000\000\019\209\000\000\002A\000\000\000\000\019\209\002A\000\000\019\209\019\209\000\000\019\209\000\000\019\209\019\209\000\000\000\000\002A\002A\002A\000\000\002A\002A\002A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\000\000\000\000\000\000\000\000\000\000\000\002A\002A\002A\000\000\000\000\002A\000\000\000\000\000\000\000\000\000\000\002A\000\000\000\000\002A\000\000\000\000\000\000\000\000\000\000\002A\002A\002A\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\000\002A\002A\000\000\000\000\000\000\000\000\000\000\002A\000\000\000\000\002A\000\000\000\000\000\000\000\000\000\000\002A\000\000\000\000\000\000\002A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\000\002A\002A\000\000\002A\002A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\000\002A\000\000\002A\002A\018u\000\000\002A\000\000\018u\000\000\000\000\002A\018u\000\000\002A\002A\000\000\005\206\000\000\002A\002A\000\000\000\000\018u\018u\018u\000\000\018u\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\000\000\000\000\000\000\000\000\000\000\018u\018u\004>\000\000\000\000\018u\000\000\000\000\000\000\000\000\000\000\018u\000\000\000\000\018u\000\000\000\000\000\000\000\000\000\000\018u\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\018u\000\000\000\000\000\000\000\000\000\000\018u\000\000\000\000\018u\000\000\000\000\000\000\000\000\000\000\018u\000\000\000\000\000\000\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\018u\000\000\018u\018u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018u\000\000\018u\000\000\018u\018u\018y\000\000\018u\000\000\018y\000\000\000\000\018u\018y\000\000\018u\004F\000\000\018u\000\000\018u\018u\000\000\000\000\018y\018y\018y\000\000\018y\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\000\000\018y\018y\004Z\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\018y\000\000\000\000\000\000\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\018y\000\000\018y\018y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018y\000\000\018y\000\000\018y\018y\018}\000\000\018y\000\000\018}\000\000\000\000\018y\018}\000\000\018y\018y\000\000\018y\000\000\018y\018y\000\000\000\000\018}\018}\018}\000\000\018}\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\000\000\018}\018}\005*\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\018}\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\018}\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\018}\000\000\000\000\000\000\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\018}\000\000\018}\018}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018}\000\000\018}\000\000\018}\018}\018\129\000\000\018}\000\000\018\129\000\000\000\000\018}\018\129\000\000\018}\004F\000\000\018}\000\000\018}\018}\000\000\000\000\018\129\018\129\018\129\000\000\018\129\018\129\018\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\018\129\000\000\000\000\000\000\000\000\000\000\000\000\018\129\018\129\005F\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\018\129\018\129\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\018\129\000\000\000\000\000\000\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\018\129\000\000\018\129\018\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\129\000\000\018\129\000\000\018\129\018\129\018\133\000\000\018\129\000\000\018\133\000\000\000\000\018\129\018\133\000\000\018\129\018\129\000\000\018\129\000\000\018\129\018\129\000\000\000\000\018\133\018\133\018\133\000\000\018\133\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\000\000\018\133\018\133\004>\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\018\133\000\000\000\000\000\000\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\018\133\000\000\018\133\018\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\133\000\000\018\133\000\000\018\133\018\133\018\137\000\000\018\133\000\000\018\137\000\000\000\000\018\133\018\137\000\000\018\133\004F\000\000\018\133\000\000\018\133\018\133\000\000\000\000\018\137\018\137\018\137\000\000\018\137\018\137\018\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\018\137\000\000\000\000\000\000\000\000\000\000\000\000\018\137\018\137\004Z\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\018\137\018\137\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\018\137\000\000\000\000\000\000\018\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\018\137\000\000\018\137\018\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\137\000\000\018\137\000\000\018\137\018\137\018\141\000\000\018\137\000\000\018\141\000\000\000\000\018\137\018\141\000\000\018\137\018\137\000\000\018\137\000\000\018\137\018\137\000\000\000\000\018\141\018\141\018\141\000\000\018\141\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\000\000\018\141\018\141\005*\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\018\141\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\018\141\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\018\141\000\000\000\000\000\000\000\000\000\000\018\141\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\018\141\000\000\000\000\000\000\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\018\141\000\000\018\141\018\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\141\000\000\018\141\000\000\018\141\018\141\018\145\000\000\018\141\000\000\018\145\000\000\000\000\018\141\018\145\000\000\018\141\004F\000\000\018\141\000\000\018\141\018\141\000\000\000\000\018\145\018\145\018\145\000\000\018\145\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\000\000\018\145\018\145\005F\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\018\145\000\000\000\000\000\000\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\018\145\000\000\018\145\018\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\145\000\000\018\145\000\000\018\145\018\145\018\149\000\000\018\145\000\000\018\149\000\000\000\000\018\145\018\149\000\000\018\145\018\145\000\000\018\145\000\000\018\145\018\145\000\000\000\000\018\149\018\149\018\149\000\000\018\149\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\000\000\018\149\018\149\004>\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\018\149\000\000\000\000\000\000\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\018\149\000\000\018\149\018\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\149\000\000\018\149\000\000\018\149\018\149\018\153\000\000\018\149\000\000\018\153\000\000\000\000\018\149\018\153\000\000\018\149\004F\000\000\018\149\000\000\018\149\018\149\000\000\000\000\018\153\018\153\018\153\000\000\018\153\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\000\000\018\153\018\153\004Z\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\018\153\000\000\000\000\000\000\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\018\153\000\000\018\153\018\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\153\000\000\018\153\000\000\018\153\018\153\018\157\000\000\018\153\000\000\018\157\000\000\000\000\018\153\018\157\000\000\018\153\018\153\000\000\018\153\000\000\018\153\018\153\000\000\000\000\018\157\018\157\018\157\000\000\018\157\018\157\018\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\000\000\018\157\018\157\005*\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\018\157\018\157\018\157\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\018\157\018\157\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\018\157\000\000\000\000\000\000\018\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\018\157\018\157\000\000\018\157\018\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\157\000\000\018\157\000\000\018\157\018\157\018\161\000\000\018\157\000\000\018\161\000\000\000\000\018\157\018\161\000\000\018\157\004F\000\000\018\157\000\000\018\157\018\157\000\000\000\000\018\161\018\161\018\161\000\000\018\161\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\000\000\018\161\018\161\005F\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\018\161\000\000\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\000\000\018\161\018\161\018\165\000\000\018\161\000\000\018\165\000\000\000\000\018\161\018\165\000\000\018\161\018\161\000\000\018\161\000\000\018\161\018\161\000\000\000\000\018\165\018\165\018\165\000\000\018\165\018\165\018\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\018\165\000\000\000\000\000\000\000\000\000\000\000\000\018\165\018\165\004>\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\018\165\018\165\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\018\165\000\000\018\165\018\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\000\000\018\165\018\165\018\169\000\000\018\165\000\000\018\169\000\000\000\000\018\165\018\169\000\000\018\165\004F\000\000\018\165\000\000\018\165\018\165\000\000\000\000\018\169\018\169\018\169\000\000\018\169\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\000\000\018\169\018\169\004Z\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\018\169\000\000\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\000\000\018\169\018\169\018\173\000\000\018\169\000\000\018\173\000\000\000\000\018\169\018\173\000\000\018\169\018\169\000\000\018\169\000\000\018\169\018\169\000\000\000\000\018\173\018\173\018\173\000\000\018\173\018\173\018\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\000\000\018\173\018\173\005*\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\018\173\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\018\173\018\173\018\173\000\000\000\000\000\000\000\000\000\000\000\000\018\173\000\000\018\173\018\173\000\000\000\000\000\000\000\000\000\000\018\173\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\018\173\000\000\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\173\000\000\018\173\018\173\000\000\018\173\018\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\173\000\000\018\173\000\000\018\173\018\173\018\177\000\000\018\173\000\000\018\177\000\000\000\000\018\173\018\177\000\000\018\173\004F\000\000\018\173\000\000\018\173\018\173\000\000\000\000\018\177\018\177\018\177\000\000\018\177\018\177\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\000\000\018\177\018\177\005F\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\018\177\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\018\177\018\177\018\177\000\000\000\000\000\000\000\000\000\000\000\000\018\177\000\000\018\177\018\177\000\000\000\000\000\000\000\000\000\000\018\177\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\018\177\000\000\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\177\000\000\018\177\018\177\000\000\018\177\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\177\000\000\018\177\000\000\018\177\018\177\018\181\000\000\018\177\000\000\018\181\000\000\000\000\018\177\018\181\000\000\018\177\018\177\000\000\018\177\000\000\018\177\018\177\000\000\000\000\018\181\018\181\018\181\000\000\018\181\018\181\018\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\000\000\018\181\018\181\004>\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\018\181\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\018\181\018\181\018\181\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000\000\018\181\018\181\000\000\000\000\000\000\000\000\000\000\018\181\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\018\181\000\000\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000\000\018\181\018\181\000\000\018\181\018\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000\000\018\181\000\000\018\181\018\181\018\185\000\000\018\181\000\000\018\185\000\000\000\000\018\181\018\185\000\000\018\181\004F\000\000\018\181\000\000\018\181\018\181\000\000\000\000\018\185\018\185\018\185\000\000\018\185\018\185\018\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\000\000\018\185\018\185\004Z\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\018\185\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\018\185\018\185\018\185\000\000\000\000\000\000\000\000\000\000\000\000\018\185\000\000\018\185\018\185\000\000\000\000\000\000\000\000\000\000\018\185\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\018\185\000\000\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\185\000\000\018\185\018\185\000\000\018\185\018\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\185\000\000\018\185\000\000\018\185\018\185\018\189\000\000\018\185\000\000\018\189\000\000\000\000\018\185\018\189\000\000\018\185\018\185\000\000\018\185\000\000\018\185\018\185\000\000\000\000\018\189\018\189\018\189\000\000\018\189\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\000\000\018\189\018\189\005*\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\018\189\000\000\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\000\000\018\189\018\189\018\193\000\000\018\189\000\000\018\193\000\000\000\000\018\189\018\193\000\000\018\189\004F\000\000\018\189\000\000\018\189\018\189\000\000\000\000\018\193\018\193\018\193\000\000\018\193\018\193\018\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\018\193\000\000\000\000\000\000\000\000\000\000\000\000\018\193\018\193\005F\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\018\193\000\000\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\000\000\018\193\018\193\018\197\000\000\018\193\000\000\018\197\000\000\000\000\018\193\018\197\000\000\018\193\018\193\000\000\018\193\000\000\018\193\018\193\000\000\000\000\018\197\018\197\018\197\000\000\018\197\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\000\000\018\197\018\197\004>\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\018\197\000\000\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\000\000\018\197\018\197\018\201\000\000\018\197\000\000\018\201\000\000\000\000\018\197\018\201\000\000\018\197\004F\000\000\018\197\000\000\018\197\018\197\000\000\000\000\018\201\018\201\018\201\000\000\018\201\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\000\000\018\201\018\201\004Z\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\018\201\000\000\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\000\000\018\201\018\201\018\205\000\000\018\201\000\000\018\205\000\000\000\000\018\201\018\205\000\000\018\201\018\201\000\000\018\201\000\000\018\201\018\201\000\000\000\000\018\205\018\205\018\205\000\000\018\205\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\000\000\018\205\018\205\005*\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\018\205\000\000\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\000\000\018\205\018\205\018\209\000\000\018\205\000\000\018\209\000\000\000\000\018\205\018\209\000\000\018\205\004F\000\000\018\205\000\000\018\205\018\205\000\000\000\000\018\209\018\209\018\209\000\000\018\209\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\000\000\018\209\018\209\005F\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\018\209\000\000\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\000\000\018\209\018\209\018\213\000\000\018\209\000\000\018\213\000\000\000\000\018\209\018\213\000\000\018\209\018\209\000\000\018\209\000\000\018\209\018\209\000\000\000\000\018\213\018\213\018\213\000\000\018\213\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\000\000\018\213\018\213\004>\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\018\213\000\000\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\000\000\018\213\018\213\018\217\000\000\018\213\000\000\018\217\000\000\000\000\018\213\018\217\000\000\018\213\004F\000\000\018\213\000\000\018\213\018\213\000\000\000\000\018\217\018\217\018\217\000\000\018\217\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\000\000\018\217\018\217\004Z\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\018\217\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\018\217\018\217\000\000\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\018\217\000\000\018\217\018\217\018\221\000\000\018\217\000\000\018\221\000\000\000\000\018\217\018\221\000\000\018\217\018\217\000\000\018\217\000\000\018\217\018\217\000\000\000\000\018\221\018\221\018\221\000\000\018\221\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\221\018\221\005*\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\018\221\000\000\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\000\000\018\221\018\221\018\225\000\000\018\221\000\000\018\225\000\000\000\000\018\221\018\225\000\000\018\221\004F\000\000\018\221\000\000\018\221\018\221\000\000\000\000\018\225\018\225\018\225\000\000\018\225\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\000\000\018\225\018\225\005F\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\018\225\000\000\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\000\000\018\225\018\225\018\229\000\000\018\225\000\000\018\229\000\000\000\000\018\225\018\229\000\000\018\225\018\225\000\000\018\225\000\000\018\225\018\225\000\000\000\000\018\229\018\229\018\229\000\000\018\229\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\000\000\018\229\018\229\004>\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\018\229\000\000\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\000\000\018\229\018\229\018\233\000\000\018\229\000\000\018\233\000\000\000\000\018\229\018\233\000\000\018\229\004F\000\000\018\229\000\000\018\229\018\229\000\000\000\000\018\233\018\233\018\233\000\000\018\233\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\000\000\018\233\018\233\004Z\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\018\233\000\000\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\000\000\018\233\018\233\018\237\000\000\018\233\000\000\018\237\000\000\000\000\018\233\018\237\000\000\018\233\018\233\000\000\018\233\000\000\018\233\018\233\000\000\000\000\018\237\018\237\018\237\000\000\018\237\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\000\000\018\237\018\237\005*\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\018\237\000\000\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\000\000\018\237\018\237\018\241\000\000\018\237\000\000\018\241\000\000\000\000\018\237\018\241\000\000\018\237\004F\000\000\018\237\000\000\018\237\018\237\000\000\000\000\018\241\018\241\018\241\000\000\018\241\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\000\000\018\241\018\241\005F\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\018\241\000\000\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\000\000\018\241\018\241\019\173\000\000\018\241\000\000\019\173\000\000\000\000\018\241\019\173\000\000\018\241\018\241\000\000\018\241\000\000\018\241\018\241\000\000\000\000\019\173\019\173\019\173\000\000\019\173\019\173\019\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\173\000\000\000\000\000\000\000\000\000\000\000\000\019\173\019\173\005*\000\000\000\000\019\173\000\000\000\000\000\000\000\000\000\000\019\173\000\000\000\000\019\173\000\000\000\000\000\000\000\000\000\000\019\173\019\173\019\173\000\000\000\000\000\000\000\000\000\000\000\000\019\173\000\000\019\173\019\173\000\000\000\000\000\000\000\000\000\000\019\173\000\000\000\000\019\173\000\000\000\000\000\000\000\000\000\000\019\173\000\000\000\000\000\000\019\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\173\000\000\019\173\019\173\000\000\019\173\019\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\173\000\000\019\173\000\000\019\173\019\173\019\177\000\000\019\173\000\000\019\177\000\000\000\000\019\173\019\177\000\000\019\173\004F\000\000\019\173\000\000\019\173\019\173\000\000\000\000\019\177\019\177\019\177\000\000\019\177\019\177\019\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\177\000\000\000\000\000\000\000\000\000\000\000\000\019\177\019\177\005F\000\000\000\000\019\177\000\000\000\000\000\000\000\000\000\000\019\177\000\000\000\000\019\177\000\000\000\000\000\000\000\000\000\000\019\177\019\177\019\177\000\000\000\000\000\000\000\000\000\000\000\000\019\177\000\000\019\177\019\177\000\000\000\000\000\000\000\000\000\000\019\177\000\000\000\000\019\177\000\000\000\000\000\000\000\000\000\000\019\177\000\000\000\000\000\000\019\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\177\000\000\019\177\019\177\000\000\019\177\019\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\177\000\000\019\177\000\000\019\177\019\177\019\157\000\000\019\177\000\000\019\157\000\000\000\000\019\177\019\157\000\000\019\177\019\177\000\000\019\177\000\000\019\177\019\177\000\000\000\000\019\157\019\157\019\157\000\000\019\157\019\157\019\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\157\000\000\000\000\000\000\000\000\000\000\000\000\019\157\019\157\005*\000\000\000\000\019\157\000\000\000\000\000\000\000\000\000\000\019\157\000\000\000\000\019\157\000\000\000\000\000\000\000\000\000\000\019\157\019\157\019\157\000\000\000\000\000\000\000\000\000\000\000\000\019\157\000\000\019\157\019\157\000\000\000\000\000\000\000\000\000\000\019\157\000\000\000\000\019\157\000\000\000\000\000\000\000\000\000\000\019\157\000\000\000\000\000\000\019\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\157\000\000\019\157\019\157\000\000\019\157\019\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\157\000\000\019\157\000\000\019\157\019\157\019\161\000\000\019\157\000\000\019\161\000\000\000\000\019\157\019\161\000\000\019\157\004F\000\000\019\157\000\000\019\157\019\157\000\000\000\000\019\161\019\161\019\161\000\000\019\161\019\161\019\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\161\000\000\000\000\000\000\000\000\000\000\000\000\019\161\019\161\005F\000\000\000\000\019\161\000\000\000\000\000\000\000\000\000\000\019\161\000\000\000\000\019\161\000\000\000\000\000\000\000\000\000\000\019\161\019\161\019\161\000\000\000\000\000\000\000\000\000\000\000\000\019\161\000\000\019\161\019\161\000\000\000\000\000\000\000\000\000\000\019\161\000\000\000\000\019\161\000\000\000\000\000\000\000\000\000\000\019\161\000\000\000\000\000\000\019\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\161\000\000\019\161\019\161\000\000\019\161\019\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\161\000\000\019\161\000\000\019\161\019\161\019u\000\000\019\161\000\000\019u\000\000\000\000\019\161\019u\000\000\019\161\019\161\000\000\019\161\000\000\019\161\019\161\000\000\000\000\019u\019u\019u\000\000\019u\019u\019u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019u\000\000\000\000\000\000\000\000\000\000\000\000\019u\019u\004>\000\000\000\000\019u\000\000\000\000\000\000\000\000\000\000\019u\000\000\000\000\019u\000\000\000\000\000\000\000\000\000\000\019u\019u\019u\000\000\000\000\000\000\000\000\000\000\000\000\019u\000\000\019u\019u\000\000\000\000\000\000\000\000\000\000\019u\000\000\000\000\019u\000\000\000\000\000\000\000\000\000\000\019u\000\000\000\000\000\000\019u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019u\000\000\019u\019u\000\000\019u\019u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019u\000\000\019u\000\000\019u\019u\019y\000\000\019u\000\000\019y\000\000\000\000\019u\019y\000\000\019u\004F\000\000\019u\000\000\019u\019u\000\000\000\000\019y\019y\019y\000\000\019y\019y\019y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019y\000\000\000\000\000\000\000\000\000\000\000\000\019y\019y\004Z\000\000\000\000\019y\000\000\000\000\000\000\000\000\000\000\019y\000\000\000\000\019y\000\000\000\000\000\000\000\000\000\000\019y\019y\019y\000\000\000\000\000\000\000\000\000\000\000\000\019y\000\000\019y\019y\000\000\000\000\000\000\000\000\000\000\019y\000\000\000\000\019y\000\000\000\000\000\000\000\000\000\000\019y\000\000\000\000\000\000\019y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019y\000\000\019y\019y\000\000\019y\019y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019y\000\000\019y\000\000\019y\019y\019}\000\000\019y\000\000\019}\000\000\000\000\019y\019}\000\000\019y\019y\000\000\019y\000\000\019y\019y\000\000\000\000\019}\019}\019}\000\000\019}\019}\019}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019}\000\000\000\000\000\000\000\000\000\000\000\000\019}\019}\005*\000\000\000\000\019}\000\000\000\000\000\000\000\000\000\000\019}\000\000\000\000\019}\000\000\000\000\000\000\000\000\000\000\019}\019}\019}\000\000\000\000\000\000\000\000\000\000\000\000\019}\000\000\019}\019}\000\000\000\000\000\000\000\000\000\000\019}\000\000\000\000\019}\000\000\000\000\000\000\000\000\000\000\019}\000\000\000\000\000\000\019}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019}\000\000\019}\019}\000\000\019}\019}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019}\000\000\019}\000\000\019}\019}\019\129\000\000\019}\000\000\019\129\000\000\000\000\019}\019\129\000\000\019}\004F\000\000\019}\000\000\019}\019}\000\000\000\000\019\129\019\129\019\129\000\000\019\129\019\129\019\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\019\129\000\000\000\000\000\000\000\000\000\000\000\000\019\129\019\129\005F\000\000\000\000\019\129\000\000\000\000\000\000\000\000\000\000\019\129\000\000\000\000\019\129\000\000\000\000\000\000\000\000\000\000\019\129\019\129\019\129\000\000\000\000\000\000\000\000\000\000\000\000\019\129\000\000\019\129\019\129\000\000\000\000\000\000\000\000\000\000\019\129\000\000\000\000\019\129\000\000\000\000\000\000\000\000\000\000\019\129\000\000\000\000\000\000\019\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\129\000\000\019\129\019\129\000\000\019\129\019\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\129\000\000\019\129\000\000\019\129\019\129\019\133\000\000\019\129\000\000\019\133\000\000\000\000\019\129\019\133\000\000\019\129\019\129\000\000\019\129\000\000\019\129\019\129\000\000\000\000\019\133\019\133\019\133\000\000\019\133\019\133\019\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\133\000\000\000\000\000\000\000\000\000\000\000\000\019\133\019\133\004>\000\000\000\000\019\133\000\000\000\000\000\000\000\000\000\000\019\133\000\000\000\000\019\133\000\000\000\000\000\000\000\000\000\000\019\133\019\133\019\133\000\000\000\000\000\000\000\000\000\000\000\000\019\133\000\000\019\133\019\133\000\000\000\000\000\000\000\000\000\000\019\133\000\000\000\000\019\133\000\000\000\000\000\000\000\000\000\000\019\133\000\000\000\000\000\000\019\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\133\000\000\019\133\019\133\000\000\019\133\019\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\133\000\000\019\133\000\000\019\133\019\133\019\137\000\000\019\133\000\000\019\137\000\000\000\000\019\133\019\137\000\000\019\133\004F\000\000\019\133\000\000\019\133\019\133\000\000\000\000\019\137\019\137\019\137\000\000\019\137\019\137\019\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\019\137\000\000\000\000\000\000\000\000\000\000\000\000\019\137\019\137\004Z\000\000\000\000\019\137\000\000\000\000\000\000\000\000\000\000\019\137\000\000\000\000\019\137\000\000\000\000\000\000\000\000\000\000\019\137\019\137\019\137\000\000\000\000\000\000\000\000\000\000\000\000\019\137\000\000\019\137\019\137\000\000\000\000\000\000\000\000\000\000\019\137\000\000\000\000\019\137\000\000\000\000\000\000\000\000\000\000\019\137\000\000\000\000\000\000\019\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\137\000\000\019\137\019\137\000\000\019\137\019\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\137\000\000\019\137\000\000\019\137\019\137\019\141\000\000\019\137\000\000\019\141\000\000\000\000\019\137\019\141\000\000\019\137\019\137\000\000\019\137\000\000\019\137\019\137\000\000\000\000\019\141\019\141\019\141\000\000\019\141\019\141\019\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\141\000\000\000\000\000\000\000\000\000\000\000\000\019\141\019\141\005*\000\000\000\000\019\141\000\000\000\000\000\000\000\000\000\000\019\141\000\000\000\000\019\141\000\000\000\000\000\000\000\000\000\000\019\141\019\141\019\141\000\000\000\000\000\000\000\000\000\000\000\000\019\141\000\000\019\141\019\141\000\000\000\000\000\000\000\000\000\000\019\141\000\000\000\000\019\141\000\000\000\000\000\000\000\000\000\000\019\141\000\000\000\000\000\000\019\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\141\000\000\019\141\019\141\000\000\019\141\019\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\141\000\000\019\141\000\000\019\141\019\141\019\145\000\000\019\141\000\000\019\145\000\000\000\000\019\141\019\145\000\000\019\141\004F\000\000\019\141\000\000\019\141\019\141\000\000\000\000\019\145\019\145\019\145\000\000\019\145\019\145\019\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\145\000\000\000\000\000\000\000\000\000\000\000\000\019\145\019\145\005F\000\000\000\000\019\145\000\000\000\000\000\000\000\000\000\000\019\145\000\000\000\000\019\145\000\000\000\000\000\000\000\000\000\000\019\145\019\145\019\145\000\000\000\000\000\000\000\000\000\000\000\000\019\145\000\000\019\145\019\145\000\000\000\000\000\000\000\000\000\000\019\145\000\000\000\000\019\145\000\000\000\000\000\000\000\000\000\000\019\145\000\000\000\000\000\000\019\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\145\000\000\019\145\019\145\000\000\019\145\019\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\145\000\000\019\145\000\000\019\145\019\145\018\245\000\000\019\145\000\000\018\245\000\000\000\000\019\145\018\245\000\000\019\145\019\145\000\000\019\145\000\000\019\145\019\145\000\000\000\000\018\245\018\245\018\245\000\000\018\245\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\000\000\018\245\018\245\004>\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\018\245\000\000\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\000\000\018\245\018\245\018\249\000\000\018\245\000\000\018\249\000\000\000\000\018\245\018\249\000\000\018\245\004F\000\000\018\245\000\000\018\245\018\245\000\000\000\000\018\249\018\249\018\249\000\000\018\249\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\000\000\018\249\018\249\004Z\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\018\249\000\000\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\000\000\018\249\018\249\018\253\000\000\018\249\000\000\018\253\000\000\000\000\018\249\018\253\000\000\018\249\018\249\000\000\018\249\000\000\018\249\018\249\000\000\000\000\018\253\018\253\018\253\000\000\018\253\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\000\000\018\253\018\253\005*\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\018\253\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\018\253\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\018\253\000\000\018\253\018\253\000\000\000\000\000\000\000\000\000\000\018\253\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\018\253\000\000\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\253\000\000\018\253\018\253\000\000\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\253\000\000\018\253\000\000\018\253\018\253\019\001\000\000\018\253\000\000\019\001\000\000\000\000\018\253\019\001\000\000\018\253\004F\000\000\018\253\000\000\018\253\018\253\000\000\000\000\019\001\019\001\019\001\000\000\019\001\019\001\019\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\019\001\000\000\000\000\000\000\000\000\000\000\000\000\019\001\019\001\005F\000\000\000\000\019\001\000\000\000\000\000\000\000\000\000\000\019\001\000\000\000\000\019\001\000\000\000\000\000\000\000\000\000\000\019\001\019\001\019\001\000\000\000\000\000\000\000\000\000\000\000\000\019\001\000\000\019\001\019\001\000\000\000\000\000\000\000\000\000\000\019\001\000\000\000\000\019\001\000\000\000\000\000\000\000\000\000\000\019\001\000\000\000\000\000\000\019\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\001\000\000\019\001\019\001\000\000\019\001\019\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\001\000\000\019\001\000\000\019\001\019\001\019\005\000\000\019\001\000\000\019\005\000\000\000\000\019\001\019\005\000\000\019\001\019\001\000\000\019\001\000\000\019\001\019\001\000\000\000\000\019\005\019\005\019\005\000\000\019\005\019\005\019\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\019\005\000\000\000\000\000\000\000\000\000\000\000\000\019\005\019\005\004>\000\000\000\000\019\005\000\000\000\000\000\000\000\000\000\000\019\005\000\000\000\000\019\005\000\000\000\000\000\000\000\000\000\000\019\005\019\005\019\005\000\000\000\000\000\000\000\000\000\000\000\000\019\005\000\000\019\005\019\005\000\000\000\000\000\000\000\000\000\000\019\005\000\000\000\000\019\005\000\000\000\000\000\000\000\000\000\000\019\005\000\000\000\000\000\000\019\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\005\000\000\019\005\019\005\000\000\019\005\019\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\005\000\000\019\005\000\000\019\005\019\005\019\t\000\000\019\005\000\000\019\t\000\000\000\000\019\005\019\t\000\000\019\005\004F\000\000\019\005\000\000\019\005\019\005\000\000\000\000\019\t\019\t\019\t\000\000\019\t\019\t\019\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\t\000\000\000\000\000\000\000\000\000\000\000\000\019\t\019\t\004Z\000\000\000\000\019\t\000\000\000\000\000\000\000\000\000\000\019\t\000\000\000\000\019\t\000\000\000\000\000\000\000\000\000\000\019\t\019\t\019\t\000\000\000\000\000\000\000\000\000\000\000\000\019\t\000\000\019\t\019\t\000\000\000\000\000\000\000\000\000\000\019\t\000\000\000\000\019\t\000\000\000\000\000\000\000\000\000\000\019\t\000\000\000\000\000\000\019\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\t\000\000\019\t\019\t\000\000\019\t\019\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\t\000\000\019\t\000\000\019\t\019\t\019\r\000\000\019\t\000\000\019\r\000\000\000\000\019\t\019\r\000\000\019\t\019\t\000\000\019\t\000\000\019\t\019\t\000\000\000\000\019\r\019\r\019\r\000\000\019\r\019\r\019\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\r\000\000\000\000\000\000\000\000\000\000\000\000\019\r\019\r\005*\000\000\000\000\019\r\000\000\000\000\000\000\000\000\000\000\019\r\000\000\000\000\019\r\000\000\000\000\000\000\000\000\000\000\019\r\019\r\019\r\000\000\000\000\000\000\000\000\000\000\000\000\019\r\000\000\019\r\019\r\000\000\000\000\000\000\000\000\000\000\019\r\000\000\000\000\019\r\000\000\000\000\000\000\000\000\000\000\019\r\000\000\000\000\000\000\019\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\r\000\000\019\r\019\r\000\000\019\r\019\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\r\000\000\019\r\000\000\019\r\019\r\019\017\000\000\019\r\000\000\019\017\000\000\000\000\019\r\019\017\000\000\019\r\004F\000\000\019\r\000\000\019\r\019\r\000\000\000\000\019\017\019\017\019\017\000\000\019\017\019\017\019\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\019\017\000\000\000\000\000\000\000\000\000\000\000\000\019\017\019\017\005F\000\000\000\000\019\017\000\000\000\000\000\000\000\000\000\000\019\017\000\000\000\000\019\017\000\000\000\000\000\000\000\000\000\000\019\017\019\017\019\017\000\000\000\000\000\000\000\000\000\000\000\000\019\017\000\000\019\017\019\017\000\000\000\000\000\000\000\000\000\000\019\017\000\000\000\000\019\017\000\000\000\000\000\000\000\000\000\000\019\017\000\000\000\000\000\000\019\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\017\000\000\019\017\019\017\000\000\019\017\019\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\017\000\000\019\017\000\000\019\017\019\017\019\021\000\000\019\017\000\000\019\021\000\000\000\000\019\017\019\021\000\000\019\017\019\017\000\000\019\017\000\000\019\017\019\017\000\000\000\000\019\021\019\021\019\021\000\000\019\021\019\021\019\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\021\000\000\000\000\000\000\000\000\000\000\000\000\019\021\019\021\004>\000\000\000\000\019\021\000\000\000\000\000\000\000\000\000\000\019\021\000\000\000\000\019\021\000\000\000\000\000\000\000\000\000\000\019\021\019\021\019\021\000\000\000\000\000\000\000\000\000\000\000\000\019\021\000\000\019\021\019\021\000\000\000\000\000\000\000\000\000\000\019\021\000\000\000\000\019\021\000\000\000\000\000\000\000\000\000\000\019\021\000\000\000\000\000\000\019\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\021\000\000\019\021\019\021\000\000\019\021\019\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\021\000\000\019\021\000\000\019\021\019\021\019\025\000\000\019\021\000\000\019\025\000\000\000\000\019\021\019\025\000\000\019\021\004F\000\000\019\021\000\000\019\021\019\021\000\000\000\000\019\025\019\025\019\025\000\000\019\025\019\025\019\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\025\000\000\000\000\000\000\000\000\000\000\000\000\019\025\019\025\004Z\000\000\000\000\019\025\000\000\000\000\000\000\000\000\000\000\019\025\000\000\000\000\019\025\000\000\000\000\000\000\000\000\000\000\019\025\019\025\019\025\000\000\000\000\000\000\000\000\000\000\000\000\019\025\000\000\019\025\019\025\000\000\000\000\000\000\000\000\000\000\019\025\000\000\000\000\019\025\000\000\000\000\000\000\000\000\000\000\019\025\000\000\000\000\000\000\019\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\025\000\000\019\025\019\025\000\000\019\025\019\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\025\000\000\019\025\000\000\019\025\019\025\019\029\000\000\019\025\000\000\019\029\000\000\000\000\019\025\019\029\000\000\019\025\019\025\000\000\019\025\000\000\019\025\019\025\000\000\000\000\019\029\019\029\019\029\000\000\019\029\019\029\019\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\000\000\019\029\019\029\005*\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\019\029\019\029\019\029\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\019\029\019\029\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\019\029\019\029\000\000\019\029\019\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\019\029\000\000\019\029\019\029\019!\000\000\019\029\000\000\019!\000\000\000\000\019\029\019!\000\000\019\029\004F\000\000\019\029\000\000\019\029\019\029\000\000\000\000\019!\019!\019!\000\000\019!\019!\019!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019!\000\000\000\000\000\000\000\000\000\000\000\000\019!\019!\005F\000\000\000\000\019!\000\000\000\000\000\000\000\000\000\000\019!\000\000\000\000\019!\000\000\000\000\000\000\000\000\000\000\019!\019!\019!\000\000\000\000\000\000\000\000\000\000\000\000\019!\000\000\019!\019!\000\000\000\000\000\000\000\000\000\000\019!\000\000\000\000\019!\000\000\000\000\000\000\000\000\000\000\019!\000\000\000\000\000\000\019!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019!\000\000\019!\019!\000\000\019!\019!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019!\000\000\019!\000\000\019!\019!\019%\000\000\019!\000\000\019%\000\000\000\000\019!\019%\000\000\019!\019!\000\000\019!\000\000\019!\019!\000\000\000\000\019%\019%\019%\000\000\019%\019%\019%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019%\000\000\000\000\000\000\000\000\000\000\000\000\019%\019%\004>\000\000\000\000\019%\000\000\000\000\000\000\000\000\000\000\019%\000\000\000\000\019%\000\000\000\000\000\000\000\000\000\000\019%\019%\019%\000\000\000\000\000\000\000\000\000\000\000\000\019%\000\000\019%\019%\000\000\000\000\000\000\000\000\000\000\019%\000\000\000\000\019%\000\000\000\000\000\000\000\000\000\000\019%\000\000\000\000\000\000\019%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019%\000\000\019%\019%\000\000\019%\019%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019%\000\000\019%\000\000\019%\019%\019)\000\000\019%\000\000\019)\000\000\000\000\019%\019)\000\000\019%\004F\000\000\019%\000\000\019%\019%\000\000\000\000\019)\019)\019)\000\000\019)\019)\019)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019)\000\000\000\000\000\000\000\000\000\000\000\000\019)\019)\004Z\000\000\000\000\019)\000\000\000\000\000\000\000\000\000\000\019)\000\000\000\000\019)\000\000\000\000\000\000\000\000\000\000\019)\019)\019)\000\000\000\000\000\000\000\000\000\000\000\000\019)\000\000\019)\019)\000\000\000\000\000\000\000\000\000\000\019)\000\000\000\000\019)\000\000\000\000\000\000\000\000\000\000\019)\000\000\000\000\000\000\019)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019)\000\000\019)\019)\000\000\019)\019)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019)\000\000\019)\000\000\019)\019)\019-\000\000\019)\000\000\019-\000\000\000\000\019)\019-\000\000\019)\019)\000\000\019)\000\000\019)\019)\000\000\000\000\019-\019-\019-\000\000\019-\019-\019-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019-\000\000\000\000\000\000\000\000\000\000\000\000\019-\019-\005*\000\000\000\000\019-\000\000\000\000\000\000\000\000\000\000\019-\000\000\000\000\019-\000\000\000\000\000\000\000\000\000\000\019-\019-\019-\000\000\000\000\000\000\000\000\000\000\000\000\019-\000\000\019-\019-\000\000\000\000\000\000\000\000\000\000\019-\000\000\000\000\019-\000\000\000\000\000\000\000\000\000\000\019-\000\000\000\000\000\000\019-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019-\000\000\019-\019-\000\000\019-\019-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019-\000\000\019-\000\000\019-\019-\0191\000\000\019-\000\000\0191\000\000\000\000\019-\0191\000\000\019-\004F\000\000\019-\000\000\019-\019-\000\000\000\000\0191\0191\0191\000\000\0191\0191\0191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0191\000\000\000\000\000\000\000\000\000\000\000\000\0191\0191\005F\000\000\000\000\0191\000\000\000\000\000\000\000\000\000\000\0191\000\000\000\000\0191\000\000\000\000\000\000\000\000\000\000\0191\0191\0191\000\000\000\000\000\000\000\000\000\000\000\000\0191\000\000\0191\0191\000\000\000\000\000\000\000\000\000\000\0191\000\000\000\000\0191\000\000\000\000\000\000\000\000\000\000\0191\000\000\000\000\000\000\0191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0191\000\000\0191\0191\000\000\0191\0191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0191\000\000\0191\000\000\0191\0191\0195\000\000\0191\000\000\0195\000\000\000\000\0191\0195\000\000\0191\0191\000\000\0191\000\000\0191\0191\000\000\000\000\0195\0195\0195\000\000\0195\0195\0195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0195\000\000\000\000\000\000\000\000\000\000\000\000\0195\0195\004>\000\000\000\000\0195\000\000\000\000\000\000\000\000\000\000\0195\000\000\000\000\0195\000\000\000\000\000\000\000\000\000\000\0195\0195\0195\000\000\000\000\000\000\000\000\000\000\000\000\0195\000\000\0195\0195\000\000\000\000\000\000\000\000\000\000\0195\000\000\000\000\0195\000\000\000\000\000\000\000\000\000\000\0195\000\000\000\000\000\000\0195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0195\000\000\0195\0195\000\000\0195\0195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0195\000\000\0195\000\000\0195\0195\0199\000\000\0195\000\000\0199\000\000\000\000\0195\0199\000\000\0195\004F\000\000\0195\000\000\0195\0195\000\000\000\000\0199\0199\0199\000\000\0199\0199\0199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0199\000\000\000\000\000\000\000\000\000\000\000\000\0199\0199\004Z\000\000\000\000\0199\000\000\000\000\000\000\000\000\000\000\0199\000\000\000\000\0199\000\000\000\000\000\000\000\000\000\000\0199\0199\0199\000\000\000\000\000\000\000\000\000\000\000\000\0199\000\000\0199\0199\000\000\000\000\000\000\000\000\000\000\0199\000\000\000\000\0199\000\000\000\000\000\000\000\000\000\000\0199\000\000\000\000\000\000\0199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0199\000\000\0199\0199\000\000\0199\0199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0199\000\000\0199\000\000\0199\0199\019=\000\000\0199\000\000\019=\000\000\000\000\0199\019=\000\000\0199\0199\000\000\0199\000\000\0199\0199\000\000\000\000\019=\019=\019=\000\000\019=\019=\019=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019=\000\000\000\000\000\000\000\000\000\000\000\000\019=\019=\005*\000\000\000\000\019=\000\000\000\000\000\000\000\000\000\000\019=\000\000\000\000\019=\000\000\000\000\000\000\000\000\000\000\019=\019=\019=\000\000\000\000\000\000\000\000\000\000\000\000\019=\000\000\019=\019=\000\000\000\000\000\000\000\000\000\000\019=\000\000\000\000\019=\000\000\000\000\000\000\000\000\000\000\019=\000\000\000\000\000\000\019=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019=\000\000\019=\019=\000\000\019=\019=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019=\000\000\019=\000\000\019=\019=\019A\000\000\019=\000\000\019A\000\000\000\000\019=\019A\000\000\019=\004F\000\000\019=\000\000\019=\019=\000\000\000\000\019A\019A\019A\000\000\019A\019A\019A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019A\000\000\000\000\000\000\000\000\000\000\000\000\019A\019A\005F\000\000\000\000\019A\000\000\000\000\000\000\000\000\000\000\019A\000\000\000\000\019A\000\000\000\000\000\000\000\000\000\000\019A\019A\019A\000\000\000\000\000\000\000\000\000\000\000\000\019A\000\000\019A\019A\000\000\000\000\000\000\000\000\000\000\019A\000\000\000\000\019A\000\000\000\000\000\000\000\000\000\000\019A\000\000\000\000\000\000\019A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019A\000\000\019A\019A\000\000\019A\019A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019A\000\000\019A\000\000\019A\019A\019E\000\000\019A\000\000\019E\000\000\000\000\019A\019E\000\000\019A\019A\000\000\019A\000\000\019A\019A\000\000\000\000\019E\019E\019E\000\000\019E\019E\019E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019E\000\000\000\000\000\000\000\000\000\000\000\000\019E\019E\004>\000\000\000\000\019E\000\000\000\000\000\000\000\000\000\000\019E\000\000\000\000\019E\000\000\000\000\000\000\000\000\000\000\019E\019E\019E\000\000\000\000\000\000\000\000\000\000\000\000\019E\000\000\019E\019E\000\000\000\000\000\000\000\000\000\000\019E\000\000\000\000\019E\000\000\000\000\000\000\000\000\000\000\019E\000\000\000\000\000\000\019E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019E\000\000\019E\019E\000\000\019E\019E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019E\000\000\019E\000\000\019E\019E\019I\000\000\019E\000\000\019I\000\000\000\000\019E\019I\000\000\019E\004F\000\000\019E\000\000\019E\019E\000\000\000\000\019I\019I\019I\000\000\019I\019I\019I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019I\000\000\000\000\000\000\000\000\000\000\000\000\019I\019I\004Z\000\000\000\000\019I\000\000\000\000\000\000\000\000\000\000\019I\000\000\000\000\019I\000\000\000\000\000\000\000\000\000\000\019I\019I\019I\000\000\000\000\000\000\000\000\000\000\000\000\019I\000\000\019I\019I\000\000\000\000\000\000\000\000\000\000\019I\000\000\000\000\019I\000\000\000\000\000\000\000\000\000\000\019I\000\000\000\000\000\000\019I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019I\000\000\019I\019I\000\000\019I\019I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019I\000\000\019I\000\000\019I\019I\019M\000\000\019I\000\000\019M\000\000\000\000\019I\019M\000\000\019I\019I\000\000\019I\000\000\019I\019I\000\000\000\000\019M\019M\019M\000\000\019M\019M\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\000\000\000\000\000\000\000\000\000\000\000\019M\019M\005*\000\000\000\000\019M\000\000\000\000\000\000\000\000\000\000\019M\000\000\000\000\019M\000\000\000\000\000\000\000\000\000\000\019M\019M\019M\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\000\019M\019M\000\000\000\000\000\000\000\000\000\000\019M\000\000\000\000\019M\000\000\000\000\000\000\000\000\000\000\019M\000\000\000\000\000\000\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\000\019M\019M\000\000\019M\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\000\019M\000\000\019M\019M\019Q\000\000\019M\000\000\019Q\000\000\000\000\019M\019Q\000\000\019M\004F\000\000\019M\000\000\019M\019M\000\000\000\000\019Q\019Q\019Q\000\000\019Q\019Q\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\000\000\000\000\000\000\000\000\000\000\000\000\019Q\019Q\005F\000\000\000\000\019Q\000\000\000\000\000\000\000\000\000\000\019Q\000\000\000\000\019Q\000\000\000\000\000\000\000\000\000\000\019Q\019Q\019Q\000\000\000\000\000\000\000\000\000\000\000\000\019Q\000\000\019Q\019Q\000\000\000\000\000\000\000\000\000\000\019Q\000\000\000\000\019Q\000\000\000\000\000\000\000\000\000\000\019Q\000\000\000\000\000\000\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\000\000\019Q\019Q\000\000\019Q\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\000\000\019Q\000\000\019Q\019Q\019U\000\000\019Q\000\000\019U\000\000\000\000\019Q\019U\000\000\019Q\019Q\000\000\019Q\000\000\019Q\019Q\000\000\000\000\019U\019U\019U\000\000\019U\019U\019U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019U\000\000\000\000\000\000\000\000\000\000\000\000\019U\019U\004>\000\000\000\000\019U\000\000\000\000\000\000\000\000\000\000\019U\000\000\000\000\019U\000\000\000\000\000\000\000\000\000\000\019U\019U\019U\000\000\000\000\000\000\000\000\000\000\000\000\019U\000\000\019U\019U\000\000\000\000\000\000\000\000\000\000\019U\000\000\000\000\019U\000\000\000\000\000\000\000\000\000\000\019U\000\000\000\000\000\000\019U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019U\000\000\019U\019U\000\000\019U\019U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019U\000\000\019U\000\000\019U\019U\019Y\000\000\019U\000\000\019Y\000\000\000\000\019U\019Y\000\000\019U\004F\000\000\019U\000\000\019U\019U\000\000\000\000\019Y\019Y\019Y\000\000\019Y\019Y\019Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Y\000\000\000\000\000\000\000\000\000\000\000\000\019Y\019Y\004Z\000\000\000\000\019Y\000\000\000\000\000\000\000\000\000\000\019Y\000\000\000\000\019Y\000\000\000\000\000\000\000\000\000\000\019Y\019Y\019Y\000\000\000\000\000\000\000\000\000\000\000\000\019Y\000\000\019Y\019Y\000\000\000\000\000\000\000\000\000\000\019Y\000\000\000\000\019Y\000\000\000\000\000\000\000\000\000\000\019Y\000\000\000\000\000\000\019Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Y\000\000\019Y\019Y\000\000\019Y\019Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Y\000\000\019Y\000\000\019Y\019Y\019]\000\000\019Y\000\000\019]\000\000\000\000\019Y\019]\000\000\019Y\019Y\000\000\019Y\000\000\019Y\019Y\000\000\000\000\019]\019]\019]\000\000\019]\019]\019]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019]\000\000\000\000\000\000\000\000\000\000\000\000\019]\019]\005*\000\000\000\000\019]\000\000\000\000\000\000\000\000\000\000\019]\000\000\000\000\019]\000\000\000\000\000\000\000\000\000\000\019]\019]\019]\000\000\000\000\000\000\000\000\000\000\000\000\019]\000\000\019]\019]\000\000\000\000\000\000\000\000\000\000\019]\000\000\000\000\019]\000\000\000\000\000\000\000\000\000\000\019]\000\000\000\000\000\000\019]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019]\000\000\019]\019]\000\000\019]\019]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019]\000\000\019]\000\000\019]\019]\019a\000\000\019]\000\000\019a\000\000\000\000\019]\019a\000\000\019]\004F\000\000\019]\000\000\019]\019]\000\000\000\000\019a\019a\019a\000\000\019a\019a\019a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019a\000\000\000\000\000\000\000\000\000\000\000\000\019a\019a\005F\000\000\000\000\019a\000\000\000\000\000\000\000\000\000\000\019a\000\000\000\000\019a\000\000\000\000\000\000\000\000\000\000\019a\019a\019a\000\000\000\000\000\000\000\000\000\000\000\000\019a\000\000\019a\019a\000\000\000\000\000\000\000\000\000\000\019a\000\000\000\000\019a\000\000\000\000\000\000\000\000\000\000\019a\000\000\000\000\000\000\019a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019a\000\000\019a\019a\000\000\019a\019a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019a\000\000\019a\000\000\019a\019a\019e\000\000\019a\000\000\019e\000\000\000\000\019a\019e\000\000\019a\019a\000\000\019a\000\000\019a\019a\000\000\000\000\019e\019e\019e\000\000\019e\019e\019e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019e\000\000\000\000\000\000\000\000\000\000\000\000\019e\019e\004>\000\000\000\000\019e\000\000\000\000\000\000\000\000\000\000\019e\000\000\000\000\019e\000\000\000\000\000\000\000\000\000\000\019e\019e\019e\000\000\000\000\000\000\000\000\000\000\000\000\019e\000\000\019e\019e\000\000\000\000\000\000\000\000\000\000\019e\000\000\000\000\019e\000\000\000\000\000\000\000\000\000\000\019e\000\000\000\000\000\000\019e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019e\000\000\019e\019e\000\000\019e\019e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019e\000\000\019e\000\000\019e\019e\019i\000\000\019e\000\000\019i\000\000\000\000\019e\019i\000\000\019e\004F\000\000\019e\000\000\019e\019e\000\000\000\000\019i\019i\019i\000\000\019i\019i\019i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019i\000\000\000\000\000\000\000\000\000\000\000\000\019i\019i\004Z\000\000\000\000\019i\000\000\000\000\000\000\000\000\000\000\019i\000\000\000\000\019i\000\000\000\000\000\000\000\000\000\000\019i\019i\019i\000\000\000\000\000\000\000\000\000\000\000\000\019i\000\000\019i\019i\000\000\000\000\000\000\000\000\000\000\019i\000\000\000\000\019i\000\000\000\000\000\000\000\000\000\000\019i\000\000\000\000\000\000\019i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019i\000\000\019i\019i\000\000\019i\019i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019i\000\000\019i\000\000\019i\019i\019m\000\000\019i\000\000\019m\000\000\000\000\019i\019m\000\000\019i\019i\000\000\019i\000\000\019i\019i\000\000\000\000\019m\019m\019m\000\000\019m\019m\019m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019m\000\000\000\000\000\000\000\000\000\000\000\000\019m\019m\005*\000\000\000\000\019m\000\000\000\000\000\000\000\000\000\000\019m\000\000\000\000\019m\000\000\000\000\000\000\000\000\000\000\019m\019m\019m\000\000\000\000\000\000\000\000\000\000\000\000\019m\000\000\019m\019m\000\000\000\000\000\000\000\000\000\000\019m\000\000\000\000\019m\000\000\000\000\000\000\000\000\000\000\019m\000\000\000\000\000\000\019m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019m\000\000\019m\019m\000\000\019m\019m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019m\000\000\019m\000\000\019m\019m\019q\000\000\019m\000\000\019q\000\000\000\000\019m\019q\000\000\019m\004F\000\000\019m\000\000\019m\019m\000\000\000\000\019q\019q\019q\000\000\019q\019q\019q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019q\000\000\000\000\000\000\000\000\000\000\000\000\019q\019q\005F\000\000\000\000\019q\000\000\000\000\000\000\000\000\000\000\019q\000\000\000\000\019q\000\000\000\000\000\000\000\000\000\000\019q\019q\019q\000\000\000\000\000\000\000\000\000\000\000\000\019q\000\000\019q\019q\000\000\000\000\000\000\000\000\000\000\019q\000\000\000\000\019q\000\000\000\000\000\000\000\000\000\000\019q\000\000\000\000\000\000\019q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019q\000\000\019q\019q\000\000\019q\019q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019q\000\000\019q\000\000\019q\019q\020%\000\000\019q\000\000\020%\000\000\000\000\019q\020%\000\000\019q\019q\000\000\019q\000\000\019q\019q\000\000\000\000\020%\020%\020%\000\000\020%\020%\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\020%\000\000\000\000\000\000\000\000\000\000\000\000\020%\020%\004>\000\000\000\000\020%\000\000\000\000\000\000\000\000\000\000\020%\000\000\000\000\020%\000\000\000\000\000\000\000\000\000\000\020%\020%\020%\000\000\000\000\000\000\000\000\000\000\000\000\020%\000\000\020%\020%\000\000\000\000\000\000\000\000\000\000\020%\000\000\000\000\020%\000\000\000\000\000\000\000\000\000\000\020%\000\000\000\000\000\000\020%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020%\000\000\020%\020%\000\000\020%\020%\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\020%\000\000\020%\020%\020)\000\000\020%\000\000\020)\000\000\000\000\020%\020)\000\000\020%\004F\000\000\020%\000\000\020%\020%\000\000\000\000\020)\020)\020)\000\000\020)\020)\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\020)\000\000\000\000\000\000\000\000\000\000\000\000\020)\020)\004Z\000\000\000\000\020)\000\000\000\000\000\000\000\000\000\000\020)\000\000\000\000\020)\000\000\000\000\000\000\000\000\000\000\020)\020)\020)\000\000\000\000\000\000\000\000\000\000\000\000\020)\000\000\020)\020)\000\000\000\000\000\000\000\000\000\000\020)\000\000\000\000\020)\000\000\000\000\000\000\000\000\000\000\020)\000\000\000\000\000\000\020)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020)\000\000\020)\020)\000\000\020)\020)\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\020)\000\000\020)\020)\020-\000\000\020)\000\000\020-\000\000\000\000\020)\020-\000\000\020)\020)\000\000\020)\000\000\020)\020)\000\000\000\000\020-\020-\020-\000\000\020-\020-\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\020-\000\000\000\000\000\000\000\000\000\000\000\000\020-\020-\005*\000\000\000\000\020-\000\000\000\000\000\000\000\000\000\000\020-\000\000\000\000\020-\000\000\000\000\000\000\000\000\000\000\020-\020-\020-\000\000\000\000\000\000\000\000\000\000\000\000\020-\000\000\020-\020-\000\000\000\000\000\000\000\000\000\000\020-\000\000\000\000\020-\000\000\000\000\000\000\000\000\000\000\020-\000\000\000\000\000\000\020-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020-\000\000\020-\020-\000\000\020-\020-\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\020-\000\000\020-\020-\0201\000\000\020-\000\000\0201\000\000\000\000\020-\0201\000\000\020-\004F\000\000\020-\000\000\020-\020-\000\000\000\000\0201\0201\0201\000\000\0201\0201\0201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0201\000\000\000\000\000\000\000\000\000\000\000\000\0201\0201\005F\000\000\000\000\0201\000\000\000\000\000\000\000\000\000\000\0201\000\000\000\000\0201\000\000\000\000\000\000\000\000\000\000\0201\0201\0201\000\000\000\000\000\000\000\000\000\000\000\000\0201\000\000\0201\0201\000\000\000\000\000\000\000\000\000\000\0201\000\000\000\000\0201\000\000\000\000\000\000\000\000\000\000\0201\000\000\000\000\000\000\0201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0201\000\000\0201\0201\000\000\0201\0201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0201\000\000\0201\000\000\0201\0201\0205\000\000\0201\000\000\0205\000\000\000\000\0201\0205\000\000\0201\0201\000\000\0201\000\000\0201\0201\000\000\000\000\0205\0205\0205\000\000\0205\0205\0205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0205\000\000\000\000\000\000\000\000\000\000\000\000\0205\0205\004>\000\000\000\000\0205\000\000\000\000\000\000\000\000\000\000\0205\000\000\000\000\0205\000\000\000\000\000\000\000\000\000\000\0205\0205\0205\000\000\000\000\000\000\000\000\000\000\000\000\0205\000\000\0205\0205\000\000\000\000\000\000\000\000\000\000\0205\000\000\000\000\0205\000\000\000\000\000\000\000\000\000\000\0205\000\000\000\000\000\000\0205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0205\000\000\0205\0205\000\000\0205\0205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0205\000\000\0205\000\000\0205\0205\0209\000\000\0205\000\000\0209\000\000\000\000\0205\0209\000\000\0205\004F\000\000\0205\000\000\0205\0205\000\000\000\000\0209\0209\0209\000\000\0209\0209\0209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0209\000\000\000\000\000\000\000\000\000\000\000\000\0209\0209\004Z\000\000\000\000\0209\000\000\000\000\000\000\000\000\000\000\0209\000\000\000\000\0209\000\000\000\000\000\000\000\000\000\000\0209\0209\0209\000\000\000\000\000\000\000\000\000\000\000\000\0209\000\000\0209\0209\000\000\000\000\000\000\000\000\000\000\0209\000\000\000\000\0209\000\000\000\000\000\000\000\000\000\000\0209\000\000\000\000\000\000\0209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0209\000\000\0209\0209\000\000\0209\0209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0209\000\000\0209\000\000\0209\0209\020=\000\000\0209\000\000\020=\000\000\000\000\0209\020=\000\000\0209\0209\000\000\0209\000\000\0209\0209\000\000\000\000\020=\020=\020=\000\000\020=\020=\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\020=\000\000\000\000\000\000\000\000\000\000\000\000\020=\020=\005*\000\000\000\000\020=\000\000\000\000\000\000\000\000\000\000\020=\000\000\000\000\020=\000\000\000\000\000\000\000\000\000\000\020=\020=\020=\000\000\000\000\000\000\000\000\000\000\000\000\020=\000\000\020=\020=\000\000\000\000\000\000\000\000\000\000\020=\000\000\000\000\020=\000\000\000\000\000\000\000\000\000\000\020=\000\000\000\000\000\000\020=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020=\000\000\020=\020=\000\000\020=\020=\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\020=\000\000\020=\020=\020A\000\000\020=\000\000\020A\000\000\000\000\020=\020A\000\000\020=\004F\000\000\020=\000\000\020=\020=\000\000\000\000\020A\020A\020A\000\000\020A\020A\020A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020A\000\000\000\000\000\000\000\000\000\000\000\000\020A\020A\005F\000\000\000\000\020A\000\000\000\000\000\000\000\000\000\000\020A\000\000\000\000\020A\000\000\000\000\000\000\000\000\000\000\020A\020A\020A\000\000\000\000\000\000\000\000\000\000\000\000\020A\000\000\020A\020A\000\000\000\000\000\000\000\000\000\000\020A\000\000\000\000\020A\000\000\000\000\000\000\000\000\000\000\020A\000\000\000\000\000\000\020A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020A\000\000\020A\020A\000\000\020A\020A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020A\000\000\020A\000\000\020A\020A\020\005\000\000\020A\000\000\020\005\000\000\000\000\020A\020\005\000\000\020A\020A\000\000\020A\000\000\020A\020A\000\000\000\000\020\005\020\005\020\005\000\000\020\005\020\005\020\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\020\005\000\000\000\000\000\000\000\000\000\000\000\000\020\005\020\005\004>\000\000\000\000\020\005\000\000\000\000\000\000\000\000\000\000\020\005\000\000\000\000\020\005\000\000\000\000\000\000\000\000\000\000\020\005\020\005\020\005\000\000\000\000\000\000\000\000\000\000\000\000\020\005\000\000\020\005\020\005\000\000\000\000\000\000\000\000\000\000\020\005\000\000\000\000\020\005\000\000\000\000\000\000\000\000\000\000\020\005\000\000\000\000\000\000\020\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\005\000\000\020\005\020\005\000\000\020\005\020\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\005\000\000\020\005\000\000\020\005\020\005\020\t\000\000\020\005\000\000\020\t\000\000\000\000\020\005\020\t\000\000\020\005\004F\000\000\020\005\000\000\020\005\020\005\000\000\000\000\020\t\020\t\020\t\000\000\020\t\020\t\020\t\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\t\000\000\000\000\000\000\000\000\000\000\000\000\020\t\020\t\004Z\000\000\000\000\020\t\000\000\000\000\000\000\000\000\000\000\020\t\000\000\000\000\020\t\000\000\000\000\000\000\000\000\000\000\020\t\020\t\020\t\000\000\000\000\000\000\000\000\000\000\000\000\020\t\000\000\020\t\020\t\000\000\000\000\000\000\000\000\000\000\020\t\000\000\000\000\020\t\000\000\000\000\000\000\000\000\000\000\020\t\000\000\000\000\000\000\020\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\t\000\000\020\t\020\t\000\000\020\t\020\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\t\000\000\020\t\000\000\020\t\020\t\020\r\000\000\020\t\000\000\020\r\000\000\000\000\020\t\020\r\000\000\020\t\020\t\000\000\020\t\000\000\020\t\020\t\000\000\000\000\020\r\020\r\020\r\000\000\020\r\020\r\020\r\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\r\000\000\000\000\000\000\000\000\000\000\000\000\020\r\020\r\005*\000\000\000\000\020\r\000\000\000\000\000\000\000\000\000\000\020\r\000\000\000\000\020\r\000\000\000\000\000\000\000\000\000\000\020\r\020\r\020\r\000\000\000\000\000\000\000\000\000\000\000\000\020\r\000\000\020\r\020\r\000\000\000\000\000\000\000\000\000\000\020\r\000\000\000\000\020\r\000\000\000\000\000\000\000\000\000\000\020\r\000\000\000\000\000\000\020\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\r\000\000\020\r\020\r\000\000\020\r\020\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\r\000\000\020\r\000\000\020\r\020\r\020\017\000\000\020\r\000\000\020\017\000\000\000\000\020\r\020\017\000\000\020\r\004F\000\000\020\r\000\000\020\r\020\r\000\000\000\000\020\017\020\017\020\017\000\000\020\017\020\017\020\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\020\017\000\000\000\000\000\000\000\000\000\000\000\000\020\017\020\017\005F\000\000\000\000\020\017\000\000\000\000\000\000\000\000\000\000\020\017\000\000\000\000\020\017\000\000\000\000\000\000\000\000\000\000\020\017\020\017\020\017\000\000\000\000\000\000\000\000\000\000\000\000\020\017\000\000\020\017\020\017\000\000\000\000\000\000\000\000\000\000\020\017\000\000\000\000\020\017\000\000\000\000\000\000\000\000\000\000\020\017\000\000\000\000\000\000\020\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\017\000\000\020\017\020\017\000\000\020\017\020\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\017\000\000\020\017\000\000\020\017\020\017\020\021\000\000\020\017\000\000\020\021\000\000\000\000\020\017\020\021\000\000\020\017\020\017\000\000\020\017\000\000\020\017\020\017\000\000\000\000\020\021\020\021\020\021\000\000\020\021\020\021\020\021\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\021\000\000\000\000\000\000\000\000\000\000\000\000\020\021\020\021\004>\000\000\000\000\020\021\000\000\000\000\000\000\000\000\000\000\020\021\000\000\000\000\020\021\000\000\000\000\000\000\000\000\000\000\020\021\020\021\020\021\000\000\000\000\000\000\000\000\000\000\000\000\020\021\000\000\020\021\020\021\000\000\000\000\000\000\000\000\000\000\020\021\000\000\000\000\020\021\000\000\000\000\000\000\000\000\000\000\020\021\000\000\000\000\000\000\020\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\021\000\000\020\021\020\021\000\000\020\021\020\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\021\000\000\020\021\000\000\020\021\020\021\020\025\000\000\020\021\000\000\020\025\000\000\000\000\020\021\020\025\000\000\020\021\004F\000\000\020\021\000\000\020\021\020\021\000\000\000\000\020\025\020\025\020\025\000\000\020\025\020\025\020\025\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\025\000\000\000\000\000\000\000\000\000\000\000\000\020\025\020\025\004Z\000\000\000\000\020\025\000\000\000\000\000\000\000\000\000\000\020\025\000\000\000\000\020\025\000\000\000\000\000\000\000\000\000\000\020\025\020\025\020\025\000\000\000\000\000\000\000\000\000\000\000\000\020\025\000\000\020\025\020\025\000\000\000\000\000\000\000\000\000\000\020\025\000\000\000\000\020\025\000\000\000\000\000\000\000\000\000\000\020\025\000\000\000\000\000\000\020\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\025\000\000\020\025\020\025\000\000\020\025\020\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\025\000\000\020\025\000\000\020\025\020\025\020\029\000\000\020\025\000\000\020\029\000\000\000\000\020\025\020\029\000\000\020\025\020\025\000\000\020\025\000\000\020\025\020\025\000\000\000\000\020\029\020\029\020\029\000\000\020\029\020\029\020\029\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\029\000\000\000\000\000\000\000\000\000\000\000\000\020\029\020\029\005*\000\000\000\000\020\029\000\000\000\000\000\000\000\000\000\000\020\029\000\000\000\000\020\029\000\000\000\000\000\000\000\000\000\000\020\029\020\029\020\029\000\000\000\000\000\000\000\000\000\000\000\000\020\029\000\000\020\029\020\029\000\000\000\000\000\000\000\000\000\000\020\029\000\000\000\000\020\029\000\000\000\000\000\000\000\000\000\000\020\029\000\000\000\000\000\000\020\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\029\000\000\020\029\020\029\000\000\020\029\020\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\029\000\000\020\029\000\000\020\029\020\029\020!\000\000\020\029\000\000\020!\000\000\000\000\020\029\020!\000\000\020\029\004F\000\000\020\029\000\000\020\029\020\029\000\000\000\000\020!\020!\020!\000\000\020!\020!\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\020!\000\000\000\000\000\000\000\000\000\000\000\000\020!\020!\005F\000\000\000\000\020!\000\000\000\000\000\000\000\000\000\000\020!\000\000\000\000\020!\000\000\000\000\000\000\000\000\000\000\020!\020!\020!\000\000\000\000\000\000\000\000\000\000\000\000\020!\000\000\020!\020!\000\000\000\000\000\000\000\000\000\000\020!\000\000\000\000\020!\000\000\000\000\000\000\000\000\000\000\020!\000\000\b\130\003\154\020!\000\000\003j\000\000\r\026\000\000\000\000\bf\020!\000\000\020!\020!\000\000\020!\020!\000\000\000\000\000\000\001\234\000\000\rf\000\000\000\000\000\000\000\000\b\190\020!\000\000\020!\014~\020!\020!\000\000\000\000\020!\000\000\000\000\000\000\000\000\020!\000\000\b\210\020!\020!\015\014\020!\001\190\020!\020!\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\016\233\t\254\000\000\n\006\000\000\015z\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\177\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\214\t\218\000\000\000\000\000\000\015\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\233\000\000\000\000\000\000\016\233\016\233\n\001\nf\000\000\000\000\n\001\016\233\000\000\007\166\n\001\000\000\000\000\016\233\007\177\000\000\000\000\000\000\n\001\000\000\000\000\n\001\n\001\n\001\000\000\n\001\n\001\n\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\n\001\000\000\000\000\000\000\000\000\000\000\000\000\n\001\n\001\n\001\000\000\000\000\000\000\000\000\000\000\000\000\002\134\000\000\n\001\000\000\000\000\n\001\000\000\000\000\000\000\000\000\000\000\n\001\n\001\n\001\000\000\000\000\000\000\000\000\000\000\000\000\n\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\001\n\001\000\000\n\001\000\000\000\000\000\000\000\000\000\000\n\001\000\000\000\000\000\000\000\000\000\000\001\202\n\021\n\021\000\000\000\000\n\021\n\001\n\021\n\001\n\001\n\021\n\001\n\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\021\n\021\000\000\n\001\000\000\n\001\000\000\n\021\n\001\000\000\000\000\n\001\000\000\001\206\000\000\000\000\n\001\000\000\000\000\000\000\000\000\000\000\000\000\n\021\n\001\n\001\n\021\001\210\n\021\000\000\000\000\000\000\n\021\000\000\n\021\n\021\n\021\n\021\n\021\000\000\000\000\000\000\n\021\000\000\n\021\n\021\n\021\000\000\000\000\n\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\021\n\021\n\021\000\000\n\021\n\021\n\021\000\000\001\202\n\025\n\025\000\000\000\000\n\025\000\000\n\025\n\021\n\021\n\025\000\000\n\021\000\000\000\000\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\000\000\000\000\001\206\000\000\000\000\n\021\000\000\000\000\000\000\000\000\000\000\n\021\n\025\000\000\000\000\n\025\001\210\n\025\000\000\000\000\000\000\n\025\000\000\n\025\n\025\n\025\n\025\n\025\000\000\000\000\000\000\n\025\000\000\n\025\n\025\n\025\000\000\000\000\n\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\025\n\025\n\025\000\000\n\025\n\025\n\025\000\000\001\202\n\017\n\017\000\000\000\000\n\017\000\000\n\017\n\025\n\025\n\017\000\000\n\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\017\n\017\000\000\000\000\000\000\000\000\000\000\n\017\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\n\025\000\000\000\000\000\000\000\000\000\000\n\025\n\017\000\000\000\000\n\017\001\210\n\017\000\000\000\000\000\000\n\017\000\000\n\017\n\017\n\017\n\017\n\017\000\000\000\000\000\000\n\017\000\000\n\017\n\017\n\017\000\000\000\000\n\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\017\n\017\n\017\000\000\n\017\n\017\n\017\000\000\007\237\007\237\007\237\000\000\000\000\007\237\000\000\007\237\n\017\n\017\007\237\000\000\n\017\000\000\000\000\000\000\000\000\007\237\000\000\000\000\000\000\007\237\000\000\000\000\000\000\000\000\000\000\000\000\007\237*\206\000\000\000\000\000\000*\230\007\237\000\000\000\000\n\017\000\000\000\000\000\000\000\000\000\000\n\017\007\237\000\000\000\000\007\237\007\237\007\237\000\000\000\000\000\000\000\000\000\000\007\237\000\000\000\000\007\237\007\237\000\000\000\000\000\242\007\237\000\000\007\237\007\237\007\237\000\000\000\000\007\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\237\007\237\007\237\000\000\007\237\007\237\007\237\b\005\000\000\b\130\003\154\b\005\000\000\003j\000\000\r\026\007\237\007\237\bf\000\000\000\000\000\000\b\005\000\000\000\000\000\000\b\005\000\000\b\005\001\234\000\000\rf\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014~\b\005\000\000\000\000\000\000\007\237\000\000\000\000\b\005\000\000\005)\007\237\b\210\000\000\000\000\015\014\000\000\001\190\000\000\b\005\000\000\000\000\b\005\003\138\000\000\000\000\t\246\t\250\b\005\tN\000\000\t\254\000\000\n\006\000\000\015z\000\000\b\005\t\190\tE\000\000\000\000\000\000\tE\000\000\000\000\b\005\tE\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\tE\000\000\tE\000\000\tE\000\000\tE\t\214\t\218\b\005\000\000\b\005\005)\000\000\b\005\b\005\000\000\000\000\000\000\tE\000\000\000\000\000\000\000\000\000\000\000\000\tE\000\000\tE\000\000\000\000\005)\000\000\tE\005)\b\005\nf\tE\000\000\000\000\tE\000\000\007\166\000\000\005)\000\000\tE\tE\tE\000\000\000\000\000\000\000\000\000\000\000\000\tE\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tE\tE\000\000\tE\000\000\000\000\000\000\000\000\000\000\tE\000\000\b\130\003\154\000\000\000\000\003j\000\000\r\026\000\000\000\000\bf\tE\000\000\tE\tE\000\000\tE\tE\000\000\000\000\000\000\001\234\000\000\rf\000\000\016\226\000\000\000\000\b\190\000\000\000\000\000\000\014~\tE\000\000\000\000\tE\tE\000\000\011\153\000\000\000\000\000\000\011\153\b\210\tE\tE\015\014\000\000\001\190\tE\000\000\000\000\000\000\011\153\003\138\000\000\000\000\t\246\t\250\011\153\000\000\000\000\t\254\000\000\n\006\000\000\015z\000\000\000\000\t\190\000\000\000\000\011\153\000\000\000\000\000\000\000\000\000\000\000\000\011\153\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\000\000\000\000\000\000\000\000\011\153\000\000\000\000\t\214\t\218\000\000\011\153\000\000\015\210\000\000\000\000\000\000\000\000\000\000\000\000\011\153\016>\000\000\000\000\000\000\011\153\001\202\001\226\001\230\011\153\000\000\000\000\003\182\000\000\000\000\026*\000\000\nf\000\000\000\000\011\153\000\000\000\000\007\166\011\153\004F\011\153\001\234\002&\001\254\011\153\000\000\011\153\000\000\000\000\000\000\011\153\000\000\002\n\011\153\001\206\000\000\000\000\000\000\000\000\000\000\011\153\000\000\016\162\000\000\000\000\000\000\000\000\002.\001\210\002Z\011\153\000\000\000\000\003z\011\153\003\138\003\186\003\198\002\130\000\000\011\153\011\153\000\242\003\210\000\000\000\000\000\000\000\000\000\000\011\153\000\000\005\133\000\000\000\000\000\000\005\133\000\000\000\000\011\153\005\133\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\005\133\000\000\005\133\000\000\005\133\000\000\005\133\000\000\000\000\011\153\000\000\011\153\000\000\000\000\011\153\011\153\000\000\000\000\000\000\005\133\000\000\000\000\000\000\000\000\000\000\000\000\005\133\000\000\005\133\000\000\000\000\000\000\000\000\b\177\000\000\011\153\000\000\005\133\000\000\000\000\005\133\000\000\007\166\002\130\004F\000\000\005\133\005\133\005\133\000\000\000\000\000\000\002\137\002\137\000\000\005\133\002\137\000\000\002\137\000\000\000\000\002\137\000\000\000\000\005\133\000\000\000\000\005\133\000\000\000\000\000\000\000\000\002\137\005\133\000\000\000\000\000\000\000\000\000\000\002\137\000\n\000\000\000\000\000\000\000\000\005\133\000\000\005\133\005\133\000\000\005\133\005\133\000\000\000\000\000\000\002\137\000\000\000\000\002\137\b\177\002\137\000\000\000\000\000\000\000\000\000\000\002\137\005\133\005\133\002\137\002\137\005\133\000\000\002\137\002\137\000\000\002\137\002\137\002\137\005\133\005\133\002\137\000\000\000\000\005\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\137\002\137\002\137\000\000\002\137\002\137\002\137\000\000\031&\b\130\003\154\000\000\000\000\003j\000\000\b\134\002\137\002\137\bf\000\000\002\137\000\000\000\000\000\000\000\000\000\000\014\253\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\031Z\000\000\000\000\002\137\000\000\000\000\000\000\002\137\000\000\002\137\b\210\000\000\000\000\b\230\031\142\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*\nN\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\001\202\b\130\003\154\000\000\000\000\003j\000\000\b\134\t\214\t\218\bf\000\000\n\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\014\253\000\000\000\000\001\206\000\000\000\000\nf\000\000\014\253\000\000\012z\000\000\007\166\b\210\000\000\000\000\014\138\001\210\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*\nN\000\000\005\133\t\190\000\000\000\000\005\133\000\000\000\000\000\000\005\133\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\005\133\000\000\005\133\000\000\005\133\000\000\005\133\000\000\000\000\t\214\t\218\000\000\000\000\n\218\001\226\001\230\000\000\000\000\000\000\005\133\000\000\000\000\000\000\000\000\000\000\000\000\005\133\000\000\005\133\000\000\000\000\000\000\000\000\b\181\001\234\002&\000\000\005\133\nf\000\000\005\133\000\000\000\000\000\000\007\166\000\000\005\133\005\133\005\133\000\000\000\000\000\000\000\000\000\000\000\000\005\133\000\000\000\000\000\000\000\000\003~\000\000.\198\000\000\005\133\000\000\003z\005\133\003\138\003\186\003\198\000\000\000\000\005\133\000\000\000\000\003\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\133\000\000\005\133\005\133\000\000\005\133\005\133\000\000\t9\000\000\000\000\000\000\t9\003\214\b\181\003\230\t9\000\000\000\000.\242\000\000\000\000\005\133\005\133\000\000\000\000\005\133\t9\000\000\t9\000\000\t9\000\000\t9\005\133\005\133\000\000\000\000\000\000\005\133.\222\000\000\000\000\000\000\000\000\000\000\t9\000\000\000\000\001\226\001\230\000\000\000\000\t9\000\000\t9\000\000\000\000\000\000\000\000\017\202\000\000\000\000\000\000\t9\000\000\000\000\t9\000\000\001\234\002&\001\254\000\000\t9\t9\000\242\000\000\000\000\000\000\000\000\002\n\000\000\t9\000\000(.\000\000\000\000\000\000\000\000\000\000\000\000\t9\t9\000\000\t9\003~\000\000+z\000\000(\166\t9\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\030\234+\138\t9\000\000\t9\t9\000\000\t9\t9\028\234\000\000\000\000\000\000\000\000\020:\000\000\000\000\000\000\026\150\014\201\000\000\014\201\014\201\003\214\t9\003\230\000\000\t9\t9\020\226\021\146\021\190\021\014\000\000\021\234\000\000\t9\t9\000\000\001\165\000\000\t9\000\000\000\000\021:\000\000\022\022\022B\000\000\000\000\000\000\000\000\000\000\020:\000\000\000\000\022n\000\000\"*\000\000\001\165\000\000\000\000\000\000\000\000\000\242\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\000\000\020f\021f\022\154\022\198\023v\000\000\000\000\021:\000\000\022\022\022B\000\000\000\000\000\000\000\000\000\000\000\000$\254\023\162\022n\000\000\000\000\000\000\031\022\000\000\000\000\000\000\000\000\000\242\023\206\000\000\000\000\000\000\000\000\028\238\000\000\000\000\000\000\000\000\020f\021f\022\154\022\198\023v\000\000\000\000\024~\014\201\000\000\024\202\022\242\000\000\000\000\000\000\000\000\014\201\023\250\023\162\000\000\000\000\023\030\023J\001\165\000\000\000\000\000\000\024&\024R\023\206\000\000\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\177\000\000\000\000\024~\001\165\".\024\202\022\242\":\000\000\000\000\000\000\001\165\023\250\020:\000\000\000\000\023\030\023J\000\000\000\000\001\177\001\165\024&\024R\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\000\000\000\000\000\000\001\153\000\000\000\000\000\000\000\000\021:\000\000\022\022\022B\000\000\000\000\000\000\000\000\000\000\020:\000\000\000\000\022n\000\000\000\000\000\000\001\153\000\000\000\000\000\000\000\000\000\242\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\000\000\020f\021f\022\154\022\198\023v\000\000\000\000\021:\000\000\022\022\022B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\162\022n\000\000\000\000\000\000\001\177\000\000\000\000\000\000\000\000\000\242\023\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020f\021f\022\154\022\198\023v\000\000\000\000\024~\001\177\000\000\024\202\022\242\000\000\000\000\000\000\000\000\001\177\023\250\023\162\000\000\000\000\023\030\023J\001\153\000\000\000\000\001\177\024&\024R\023\206\000\000\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\225\000\000\000\000\024~\001\153\000\000\024\202\022\242\000\000\000\000\000\000\000\000\001\153\023\250\020:\000\000\000\000\023\030\023J\000\000\000\000\001\225\001\153\024&\024R\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\000\000\000\000\000\000\001\213\000\000\000\000\000\000\000\000\021:\000\000\022\022\022B\000\000\000\000\000\000\000\000\000\000\020:\000\000\000\000\022n\000\000\000\000\000\000\001\213\000\000\000\000\000\000\000\000\000\242\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\000\000\020f\021f\022\154\022\198\023v\000\000\000\000\021:\000\000\022\022\022B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\162\022n\000\000\000\000\000\000\001\225\000\000\000\000\000\000\000\000\000\242\023\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020f\021f\022\154\022\198\023v\000\000\000\000\024~\001\225\000\000\024\202\022\242\000\000\000\000\000\000\000\000\001\225\023\250\023\162\000\000\000\000\023\030\023J\001\213\000\000\000\000\001\225\024&\024R\023\206\000\000\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\201\000\000\000\000\024~\001\213\000\000\024\202\022\242\000\000\000\000\000\000\000\000\001\213\023\250\020:\000\000\000\000\023\030\023J\000\000\000\000\001\201\001\213\024&\024R\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\000\000\000\000\000\000\001\189\000\000\000\000\000\000\000\000\021:\000\000\022\022\022B\000\000\000\000\000\000\000\000\000\000\020:\000\000\000\000\022n\000\000\000\000\000\000\001\189\000\000\000\000\000\000\000\000\000\242\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\000\000\020f\021f\022\154\022\198\023v\000\000\000\000\021:\000\000\022\022\022B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\162\022n\000\000\000\000\000\000\001\201\000\000\000\000\000\000\000\000\000\242\023\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020f\021f\022\154\022\198\023v\000\000\000\000\024~\001\201\000\000\024\202\022\242\000\000\000\000\000\000\000\000\001\201\023\250\023\162\000\000\000\000\023\030\023J\001\189\000\000\000\000\001\201\024&\024R\023\206\000\000\000\000\000\000\000\000\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~\001\189\000\000\024\202\022\242\000\000\012\205\012\205\012\205\001\189\023\250\012\205\000\000\012\205\023\030\023J\012\205\000\000\000\000\001\189\024&\024R\000\000$\n\000\000\000\000\000\000\012\205\000\000\000\000\000\000\000\000\000\000\000\000\012\205\000\000\000\000\000\000\000\000\000\000\012\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\205\000\000\000\000\012\205\012\205\012\205\000\000\000\000\000\000\000\000\000\000\012\205\000\000\000\000\012\205\012\205\000\000\000\000\000\000\012\205\000\000\012\205\012\205\012\205\000\000\000\000\012\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\205\012\205\012\205\000\000\012\205\012\205\012\205\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\b\134\012\205\012\205\bf\000\000\000\000\000\000\000\000\000\000\n\214\000\000\n\002\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\205\000\000\000\000\000\000\000\000\000\000\012\205\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*\nN\000\000\r\237\t\190\000\000\000\000\r\237\000\000\000\000\000\000\r\237\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\r\237\000\000\r\237\000\000\r\237\000\000\r\237\000\000\000\000\t\214\t\218\000\000\000\000\n\218\000\000\000\000\000\000\000\000\000\000\r\237\000\000\000\000\000\000\000\000\000\000\000\000\r\237\000\000\r\237\000\000\000\000\000\000\012n\000\000\000\000\011\254\000\000\r\237\nf\000\000\r\237\000\000\000\000\000\000\007\166\000\000\r\237\r\237\r\237\000\000\001\226\001\230\000\000\000\000\000\000\r\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\237\000\000\000\000\r\237\000\000\000\000\001\234\002&\000\000\r\237\000\000\000\000\021\197\000\000\000\000\000\000\021\197\000\000\000\000\000\000\021\197\r\237\000\000\r\237\r\237\000\000\r\237\r\237\000\000\000\000\000\000\021\197\003~\021\197.\198\021\197\000\000\021\197\003z\r\237\003\138\003\186\003\198\r\237\000\000\000\000\000\000\r\237\003\210\000\000\021\197\000\000\000\000\000\000\000\000\r\237\r\237\021\197\005\206\021\197\r\237\000\000\000\000\000\000\003\242\000\000\000\000\000\000\021\197\000\000\003\214\021\197\003\230\000\000\000\000\000\000\by\021\197\021\197\021\197\000\000\000\000\000\000\000\000\000\000\000\000\021\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\197\000\000.\222\021\197\000\000\000\000\000\000\000\000\000\000\021\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\197\000\000\021\197\021\197\021\201\021\197\021\197\000\000\021\201\000\000\000\000\000\000\021\201\000\000\003\254\000\000\000\000\000\000\000\000\001\202\001\226\001\230\021\197\021\201\000\000\021\201\021\197\021\201\000\000\021\201\000\000\000\000\000\000\000\000\021\197\021\197\000\000\001\226\001\230\021\197\001\234\002&\021\201\000\000\000\000\000\000\000\000\000\000\000\000\021\201\000\000\021\201\000\000\001\206\000\000\000\000\003\242\001\234\002&\000\000\021\201\000\000\000\000\021\201\000\000\000\000\004n\001\210\003\226\021\201\021\201\021\201\003z\000\000\003\138\003\186\003\198\000\000\021\201\000\000\000\000\000\000\003\210\003~\000\000\003\226\000\000\021\201\000\000\003z\021\201\003\138\003\186\003\198\000\000\000\000\021\201\000\000\000\000\003\210\000\000#\002\000\000\000\000\003\214\000\000\003\230\000\000\021\201\000\000\021\201\021\201\t\177\021\201\021\201\000\000\t\177\000\000\000\000\000\000\t\177\003\214\003\254\003\230\000\000\000\000\000\000\000\000#R\000\000\021\201\t\177\000\000\t\177\021\201\t\177\000\000\t\177\000\000\000\000\000\000\011I\021\201\021\201\000\000\011I\000\000\021\201\000\000\000\000\t\177\000\000\000\000\000\000\000\000\000\000\011I\t\177\000\000\t\177\011I\000\000\011I\000\000\003\242\000\000\000\000\000\000\t\177\000\000\000\000\t\177\000\000\000\000\000\000\011I\000\000\t\177\t\177\t\177\000\000\000\000\011I\000\000\000\000\000\000\t\177\000\000\000\000\000\000\000\000\000\000\000\000\011I\000\000\t\177\011I\000\000\t\177\000\000\000\000\000\000\011I\011I\t\177\001\202\b\130\003\154\000\000\000\000\003j\011I\r~\000\000\000\000\bf\t\177\000\000\t\177\t\177\011I\t\177\t\177\011I\000\000\000\000\001\234\000\000\000\000\011I\003\254\000\000\000\000\b\190\000\000\000\000\000\000\000\000\t\177\001\206\000\000\011I\t\177\011I\011I\000\000\011I\011I\000\000\b\210\t\177\t\177\024\254\001\210\001\190\t\177\000\000\000\000\000\000\011I\003\138\000\000\000\000\t\246\t\250\000\000\003V\011I\t\254\000\000\n\006\n*\014B\000\000\000\000\t\190\000\000\000\000\000\000\001\137\011I\000\000\000\000\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\020:\000\000\000\000\000\000\011e\000\000\000\000\001\137\011e\t\214\t\218\000\000\000\000\000\000\000\000\020\226\021\146\021\190\021\014\000\000\021\234\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021:\000\000\022\022\022B\000\000\000\000\000\000\000\000\nf\000\000\000\000\000\000\022n\000\000\007\166\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020f\021f\022\154\022\198\023v\000\000\000\000\000\000\000\000\000\000\000\000\b\130\003\154\000\000\000\000\003j\011e\r\026\023\162\000\000\bf\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\023\206\000\000\001\234\000\000\rf\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014~\000\000\000\000\000\000\024~\001\137\000\000\024\202\022\242\000\000+\022\000\000\b\210\001\137\023\250)~\000\000\001\190\023\030\023J\000\000\000\000\000\000\003\138\024&\024R\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\000\000\015z\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r\026\t\214\t\218\bf\000\000\000\000)\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\rf\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014~\000\000\000\000,\"\000\000\nf\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\015\014\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\000\000\015z\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r\026\t\214\t\218\bf\000\000\000\000\015\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\rf\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\014~\000\000\000\000*\030\000\000\nf\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\015\014\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\000\000\015z\000\000\011\153\t\190\000\000\000\000\011\153\000\000\000\000\000\000\011\153\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\011\153\000\000\011\153\000\000\011\153\000\000\011\153\000\000\000\000\t\214\t\218\000\000\000\000\000\000\015\210\000\000\000\000\000\000\000\000\011\153\000\000\000\000\000\000\000\000\000\000\000\000\011\153\011\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*~\011\153\nf\000\000\011\153\000\000\000\000\000\000\007\166\000\000\011\153\011\153\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\153\000\000\000\000\011\153\000\000\000\000\000\000\000\000\000\000\011\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\n\011\153\000\000\011\153\011\153\003v\011\153\011\153\000\000\000\000\000\000\000\000\000\000\000\000\001\014\001\018\001\022\001\026\001\030\011\153\001\"\011\153\000\000\000\000\011\153\000\000\000\000\011\153\000\000\000\000\001&\000\000\001*\001.\000\000\002\130\000\000\000\000\000\000\0012\011\153\011\153\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\249\000\000\000\000\020\209\t\249\000\000\000\000\020\209\t\249\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\020\209\t\249\000\000\t\249\001N\t\249\020\209\t\249\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\209\t\249\000\000\001V\000\000\000\000\000\000\020\209\t\249\t\249\001Z\000\000\000\000\000\000\000\000\000\000\000\000\002\238\020\209\t\249\000\000\020\209\t\249\001\1504\170\000\000\000\000\020\209\t\249\t\249\001\154\000\000\001\158\000\000\001\162\001\166\020\209\t\249\001\170\000\000\001\174\001\178\000\000\000\000\000\000\020\209\t\249\000\000\020\209\t\249\000\000\000\000\000\000\000\000\020\209\t\249\b\130\003\154\000\000\000\000\003j\000\000\b\162\000\000\000\000\bf\020\209\t\249\020\209\t\249\t\249\020\209\t\249\t\249\000\000\000\000\001\234\000\000\000\000\000\0005\142\000\000\000\000\b\190\000\000\t\249\000\000\t\249\000\000\000\000\t\249\000\000\020\209\t\249\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\t\249\t\249\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*-\206\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\003\150\003\154\000\000\000\000\003j\000\000\016>\t\214\t\218\bf\b\005\n\218\000\000\000\000\b\005\n\153\000\000\000\000\000\000\000\000\001\234\000\000-\214\000\000\bn\b\005\000\000\000\000\000\000\b\005\000\000\b\005\000\000\000\000\000\000\br\nf\tZ\000\000\000\000\000\000\000\000\007\166\000\000\b\005\000\000\t\134\000\000\001\190\000\000\000\000\b\005\000\000\016\162\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\b\005\000\000\000\000\000\000\t\190\000\000\b\005\tN\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\005\t\194\t\198\000\000\t\202\t\210\b\130\003\154\000\000\b\005\003j\000\000\b\134\000\000\000\000\bf\t\214\t\218\000\000\000\000\000\000\000\000\000\000\012\018\000\000\000\000\001\234\t\222\000\000\t\226\b\005\000\000\b\005\b\190\000\000\b\005\b\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\017Z\000\000\016j\b\210\017r\007\166\b\230\000\000\001\190\000\000\b\005\000\000\000\000\000\000\003\138/v\000\000\t\246\t\250\004F\000\000\000\000\t\254\b\005\n\006\n*\nN\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\n\134\t\214\t\218\bf\000\000\n\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\000\000\012b\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*\n\162\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\011\n\t\214\t\218\bf\000\000\n\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012.\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*\011&\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\011\178\t\214\t\218\bf\000\000\n\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\011:\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*\011\206\000\000\021\193\t\190\000\000\000\000\021\193\000\000\000\000\000\000\021\193\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\021\193\000\000\021\193\000\000\021\193\000\000\021\193\000\000\000\000\t\214\t\218\000\000\000\000\n\218\000\000\000\000\000\000\000\000\000\000\021\193\000\000\000\000\000\000\000\000\011\214\000\000\021\193\000\000\021\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\193\nf\000\000\021\193\000\000\000\000\000\000\007\166\000\000\021\193\021\193\021\193\000\000\001\226\001\230\000\000\000\000\000\000\021\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\193\000\000\000\000\021\193\000\000\000\000\001\234\002&\000\000\021\193\000\000\000\000\021\189\000\000\000\000\000\000\021\189\000\000\000\000\000\000\021\189\021\193\000\000\021\193\021\193\000\000\021\193\021\193\000\000\000\000\000\000\021\189\003~\021\189.\198\021\189\000\000\021\189\003z\000\000\003\138\003\186\003\198\021\193\000\000\000\000\000\000\021\193\003\210\000\000\021\189\000\000\000\000\000\000\000\000\021\193\021\193\021\189\005\206\021\189\021\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\189\000\000\003\214\021\189\003\230\000\000\000\000\000\000\b}\021\189\021\189\021\189\000\000\000\000\000\000\000\000\000\000\000\000\021\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\189\000\000.\222\021\189\000\000\000\000\000\000\000\000\000\000\021\189\000\000\000\000\r\241\000\000\000\000\000\000\r\241\000\000\000\000\000\000\r\241\021\189\000\000\021\189\021\189\000\000\021\189\021\189\000\000\000\000\000\000\r\241\000\000\r\241\000\000\r\241\000\000\r\241\000\000\016j\000\000\000\000\000\000\021\189\000\000\000\000\000\000\021\189\000\000\000\000\r\241\000\000\000\000\000\000\000\000\021\189\021\189\r\241\000\000\r\241\021\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\241\000\000\000\000\r\241\000\000\000\000\000\000\000\000\000\000\r\241\r\241\000\242\000\000\000\000\000\000\000\000\000\000\000\000\r\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\241\000\000\000\000\r\241\000\000\000\000\000\000\000\000\000\000\r\241\000\000\000\000\000\000\003\150\003\154\000\000\000\000\003j\000\000\000\000\000\000\r\241\bf\r\241\r\241\000\000\r\241\r\241\n\193\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\bn\000\000\r\241\000\000\000\000\000\000\r\241\000\000\000\000\000\000\r\241\br\000\000\tZ\000\000\000\000\000\000\000\000\r\241\r\241\000\000\000\000\t\134\r\241\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\142\t\150\000\000\000\000\000\000\t\158\t\166\t\182\000\000\000\000\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\194\t\198\011\153\t\202\t\210\001\230\011\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\153\t\214\t\218\011\153\000\000\000\000\001\230\011\153\000\000\011\153\000\000\000\000\t\222\000\000\t\226\011\153\000\000\000\000\011\153\000\000\000\000\000\000\011\153\000\000\011\153\000\000\000\000\000\000\000\000\011\153\nf\017Z\000\000\000\000\000\000\017r\007\166\011\153\003\226\000\000\011\153\000\000\000\000\011\153\011\153\000\000\011\153\000\000\000\000\011\153\011\153\011\153\000\000\003\226\000\000\011\153\000\000\000\000\011\153\000\000\000\000\000\000\000\000\000\000\011\153\011\153\011\153\011\153\011\153\000\000\011\153\000\000\000\000\011\153\000\000\000\000\005v\000\000\000\000\000\000\000\000\000\000\011\153\011\153\000\000\011\153\000\000\000\000\011\153\000\000\011\153\005v\000\000\011\153\011\153\000\000\000\000\005i\000\000\000\000\001\230\005i\000\000\011\153\000\000\011\153\011\153\000\000\011\153\011\153\000\000\000\000\005i\000\000\011\153\000\000\005i\000\000\005i\011\153\000\000\011\153\002\130\000\000\000\000\000\000\000\000\011\153\000\000\011\153\000\000\005i\000\000\000\000\011\153\000\000\000\000\002\130\005i\000\000\011\153\000\000\011\153\000\000\000\000\000\000\000\000\003\226\000\000\005i\000\000\000\000\005i\000\000\000\000\000\000\000\000\000\000\005i\005i\005i\000\000\000\000\000\000\000\000\000\000\000\000\005i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005i\005i\000\000\005i\000\000\000\000\000\000\000\000\000\000\005v\000\000\000\000\000\000\000\000\000\000\000\000\005e\000\000\000\000\001\230\005e\005i\000\000\005i\000\000\000\000\005i\005i\011\153\000\000\000\000\005e\000\000\000\000\000\000\005e\000\000\005e\000\000\005i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005i\000\000\000\000\005e\000\000\005i\000\000\000\000\002\130\000\000\005e\000\000\011\153\005i\000\000\000\000\000\000\000\000\000\000\003\226\000\000\005e\000\000\000\000\005e\000\000\000\000\000\000\000\000\000\000\005e\005e\005e\000\000\000\000\000\000\000\000\000\000\000\000\005e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005e\005e\000\000\005e\000\000\000\000\000\000\000\000\000\000\005v\000\000\t\129\000\000\000\000\000\000\t\129\000\000\000\000\000\000\t\129\000\000\005e\000\000\005e\000\000\000\000\005e\005e\000\000\000\000\t\129\000\000\t\129\000\000\t\129\000\000\t\129\000\000\000\000\005e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005e\000\000\t\129\000\000\000\000\005e\000\000\000\000\002\130\t\129\000\000\t\129\000\000\005e\000\000\000\000\017\202\000\000\000\000\000\000\t\129\000\000\000\000\t\129\000\000\000\000\000\000\000\000\000\000\t\129\t\129\000\242\000\000\000\000\000\000\b\130\003\154\000\000\t\129\003j\000\000-\230\000\000\000\000\bf\000\000\000\000\t\129\000\000\000\000\t\129\000\000\000\000\000\000\000\000\001\234\t\129\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\t\129\000\000\t\129\t\129\000\000\t\129\t\129\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\t\129\000\000\t\246\t\250\t\129\000\000\000\000\t\254\000\000\n\006\n*.\002\t\129\t\129\t\190\005\193\000\000\t\129\000\000\005\193\000\000\000\000\000\000\005\193\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\005\193\000\000\005\193\000\000\005\193\000\000\005\193\t\214\t\218\000\000\000\000\n\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\193\000\000\000\000.\n\000\000\000\000\000\000\005\193\005\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\005\193\000\000\000\000\005\193\000\000\007\166\000\000\000\000\000\000\005\193\005\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\005\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\193\000\000\000\000\005\193\000\000\000\000\000\000\000\000\000\000\005\193\000\000\000\000\000\000\000\000\000\000\000\000\001\n\000\000\000\000\000\000\000\000\005\193\000\000\005\193\005\193\000\000\005\193\005\193\000\000\000\000\001\014\001\018\001\022\001\026\001\030\000\000\001\"\000\000\000\000\005\193\000\000\005\193\000\000\000\000\005\193\000\000\001&\005\193\001*\001.\000\000\000\000\000\000\000\000\000\000\0012\000\000\000\000\0016\000\000\005\193\005\193\000\000\000\000\000\000\000\000\000\000\005\201\000\000\000\000\020\181\005\201\000\000\000\000\020\181\005\201\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\020\181\005\201\000\000\005\201\001N\005\201\020\181\005\201\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\181\005\201\000\000\001V\000\000\000\000\000\000\020\181\005\201\005\201\001Z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\181\005\201\000\000\020\181\005\201\001\1504\198\000\000\000\000\020\181\005\201\005\201\001\154\000\000\001\158\000\000\001\162\001\166\020\181\005\201\001\170\000\000\001\174\001\178\000\000\000\000\000\000\020\181\005\201\000\000\020\181\005\201\000\000\000\000\000\000\000\000\020\181\005\201\b\130\003\154\000\000\000\000\003j\000\000\r\154\000\000\000\000\bf\020\181\005\201\020\181\005\201\005\201\020\181\005\201\005\201\000\000\000\000\001\234\000\000\000\000\000\0005\142\000\000\000\000\b\190\000\000\005\201\000\000\005\201\000\000\000\000\005\201\000\000\020\181\005\201\000\000\000\000\000\000\000\000\000\000\b\210\000\000\000\000\b\230\000\000\001\190\000\000\005\201\002B\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*\r\182\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r\226\t\214\t\218\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r\190\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*\r\254\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\014\022\t\214\t\218\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\014\006\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*\0142\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\014N\t\214\t\218\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\014:\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*\014j\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\b\134\t\214\t\218\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\014r\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\014\142\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*\nN\000\000\021\205\t\190\000\000\000\000\021\205\000\000\000\000\000\000\021\205\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\021\205\000\000\021\205\000\000\021\205\000\000\021\205\000\000\000\000\t\214\t\218\000\000\000\000\n\218\000\000\000\000\000\000\000\000\000\000\021\205\000\000\000\000\000\000\000\000\000\000\000\000\021\205\000\000\021\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\205\nf\000\000\021\205\000\000\000\000\000\000\007\166\000\000\021\205\021\205\000\242\000\000\000\000\000\000\000\000\000\000\000\000\021\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\205\000\000\000\000\021\205\000\000\000\000\000\000\000\000\000\000\021\205\000\000\000\000\016>\000\000\000\000\000\000\t\161\000\000\000\000\000\000\t\161\021\205\000\000\021\205\021\205\000\000\021\205\021\205\000\000\000\000\000\000\t\161\000\000\t\161\000\000\t\161\000\000\t\161\000\000\000\000\000\000\000\000\000\000\021\205\000\000\000\000\000\000\021\205\000\000\000\000\t\161\000\000\000\000\000\000\000\000\021\205\004F\t\161\000\000\016\162\021\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\161\000\000\000\000\t\161\000\000\000\000\000\000\000\000\000\000\t\161\t\161\000\242\000\000\000\000\000\000\000\000\000\000\000\000\t\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\161\000\000\000\000\t\161\000\000\000\000\000\000\000\000\000\000\t\161\000\000\000\000\016>\000\000\000\000\000\000\t\153\000\000\000\000\000\000\t\153\t\161\000\000\t\161\t\161\000\000\t\161\t\161\000\000\000\000\000\000\t\153\000\000\t\153\000\000\t\153\000\000\t\153\000\000\000\000\000\000\000\000\000\000\t\161\000\000\000\000\000\000\t\161\000\000\000\000\t\153\000\000\000\000\000\000\000\000\t\161\004F\t\153\000\000\016\162\t\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\153\000\000\000\000\t\153\000\000\000\000\000\000\000\000\000\000\t\153\t\153\000\242\000\000\000\000\000\000\000\000\000\000\000\000\t\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\153\000\000\000\000\t\153\000\000\000\000\000\000\000\000\000\000\t\153\000\000\000\000\t\157\000\000\000\000\000\000\t\157\000\000\000\000\000\000\t\157\t\153\000\000\t\153\t\153\000\000\t\153\t\153\000\000\000\000\000\000\t\157\000\000\t\157\000\000\t\157\000\000\t\157\000\000\000\000\000\000\000\000\000\000\t\153\000\000\000\000\000\000\t\153\000\000\000\000\t\157\000\000\000\000\000\000\000\000\t\153\004F\t\157\000\000\016\154\t\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\157\000\000\000\000\t\157\000\000\000\000\000\000\000\000\000\000\t\157\t\157\t\157\000\000\000\000\000\000\000\000\000\000\000\000\t\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\157\000\000\000\000\t\157\000\000\000\000\000\000\000\000\000\000\t\157\000\000\000\000\t\165\000\000\000\000\000\000\t\165\000\000\000\000\000\000\t\165\t\157\000\000\t\157\t\157\000\000\t\157\t\157\000\000\000\000\000\000\t\165\000\000\t\165\000\000\t\165\000\000\t\165\000\000\000\000\000\000\000\000\000\000\t\157\000\000\000\000\000\000\t\157\000\000\000\000\t\165\000\000\000\000\000\000\000\000\t\157\t\157\t\165\000\000\016\154\t\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\165\000\000\000\000\t\165\000\000\000\000\000\000\000\000\000\000\t\165\t\165\t\165\000\000\000\000\000\000\000\000\000\000\000\000\t\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\165\000\000\000\000\t\165\000\000\000\000\000\000\000\000\000\000\t\165\000\000\000\000\021\209\000\000\000\000\000\000\021\209\000\000\000\000\000\000\021\209\t\165\000\000\t\165\t\165\000\000\t\165\t\165\000\000\000\000\000\000\021\209\000\000\021\209\000\000\021\209\000\000\021\209\000\000\000\000\000\000\000\000\000\000\t\165\000\000\000\000\000\000\t\165\000\000\000\000\021\209\000\000\000\000\000\000\000\000\t\165\t\165\021\209\000\000\016\162\t\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\209\000\000\000\000\021\209\000\000\000\000\000\000\000\000\000\000\021\209\021\209\000\242\000\000\000\000\000\000\000\000\000\000\000\000\021\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\209\000\000\000\000\021\209\000\000\000\000\000\000\000\000\000\000\021\209\000\000\000\000\t\169\000\000\000\000\000\000\t\169\000\000\000\000\000\000\t\169\021\209\000\000\021\209\021\209\000\000\021\209\021\209\000\000\000\000\000\000\t\169\000\000\t\169\000\000\t\169\000\000\t\169\000\000\000\000\000\000\000\000\000\000\021\209\000\000\000\000\000\000\021\209\000\000\000\000\t\169\000\000\000\000\000\000\000\000\021\209\004F\t\169\000\000\t\169\021\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\169\000\000\000\000\t\169\000\000\000\000\000\000\000\000\000\000\t\169\t\169\t\169\000\000\000\000\000\000\000\000\000\000\000\000\t\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\169\000\000\000\000\t\169\000\000\000\000\000\000\000\000\000\000\t\169\000\000\000\000\016>\000\000\000\000\000\000\ty\000\000\000\000\000\000\ty\t\169\000\000\t\169\t\169\000\000\t\169\t\169\000\000\000\000\000\000\ty\000\000\ty\000\000\ty\000\000\ty\000\000\000\000\000\000\000\000\000\000\t\169\000\000\000\000\000\000\t\169\000\000\000\000\ty\000\000\000\000\000\000\000\000\t\169\t\169\ty\000\000\016\162\016\246\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ty\000\000\000\000\ty\000\000\000\000\000\000\000\000\000\000\ty\ty\000\242\000\000\000\000\000\000\000\000\000\000\000\000\ty\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ty\000\000\000\000\ty\000\000\000\000\000\000\000\000\000\000\ty\000\000\000\000\t}\000\000\000\000\000\000\t}\000\000\000\000\000\000\t}\ty\000\000\ty\ty\000\000\ty\ty\000\000\000\000\000\000\t}\000\000\t}\000\000\t}\000\000\t}\000\000\000\000\000\000\000\000\000\000\ty\000\000\000\000\000\000\ty\000\000\000\000\t}\000\000\000\000\000\000\000\000\ty\004F\t}\000\000\016\154\ty\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t}\000\000\000\000\t}\000\000\000\000\000\000\000\000\000\000\t}\t}\t}\000\000\000\000\000\000\000\000\000\000\000\000\t}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t}\000\000\000\000\t}\000\000\000\000\000\000\000\000\000\000\t}\000\000\000\000\t\145\000\000\000\000\000\000\t\145\000\000\000\000\000\000\t\145\t}\000\000\t}\t}\000\000\t}\t}\000\000\000\000\000\000\t\145\000\000\t\145\000\000\t\145\000\000\t\145\000\000\000\000\000\000\000\000\000\000\t}\000\000\000\000\000\000\t}\000\000\000\000\t\145\000\000\000\000\000\000\000\000\t}\t}\t\145\000\000\016\162\t}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\145\000\000\000\000\t\145\000\000\000\000\000\000\000\000\000\000\t\145\t\145\000\242\000\000\000\000\000\000\000\000\000\000\000\000\t\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\145\000\000\000\000\t\145\000\000\000\000\000\000\000\000\000\000\t\145\000\000\000\000\t\149\000\000\000\000\000\000\t\149\000\000\000\000\000\000\t\149\t\145\000\000\t\145\t\145\000\000\t\145\t\145\000\000\000\000\000\000\t\149\000\000\t\149\000\000\t\149\000\000\t\149\000\000\000\000\000\000\000\000\000\000\t\145\000\000\000\000\000\000\t\145\000\000\000\000\t\149\000\000\000\000\001\226\001\230\t\145\004F\t\149\000\000\016\154\t\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\149\000\000\000\000\t\149\000\000\001\234\001\238\000\000\000\000\t\149\t\149\t\149\000\000\000\000\000\000\000\000\000\000\000\000\t\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\149\000\000\000\000\t\149#\138\000\000\003\226\000\000\000\000\t\149\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\t\149#\002\t\149\t\149\000\000\t\149\t\149\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\r~\000\000\000\000\bf\000\000\000\000\003\214\t\149\003\230\n\157\000\000\t\149\000\000#R\001\234\000\000\000\000\000\000\000\000\t\149\t\149\b\190\000\000\000\000\t\149\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\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*\014B\000\000\000\000\t\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\000\000\000\b\130\003\154\000\000\000\000\003j\000\000\025\230\t\214\t\218\bf\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\000\000\000\000\000\000\000\000\000\000\007\166\b\210\000\000\000\000\b\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\138\000\000\000\000\t\246\t\250\000\000\000\000\000\000\t\254\000\000\n\006\n*\026\002\000\000\000\000\t\190\000\000\000\000\000\193\000\000\000\000\000\000\000\193\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\000\193\000\000\000\193\000\000\000\193\000\000\000\193\000\000\000\000\t\214\t\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\026\n\000\000\000\193\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\nf\000\000\000\193\000\000\000\000\000\000\007\166\000\000\000\193\000\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\193\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\250\000\000\000\000\000\000\t*\001\005\000\000\000\000\000\000\001\005\000\000\000\193\000\000\000\193\000\000\b9\000\193\000\193\000\000\000\000\001\005&\162\001\005\000\000\001\005\000\000\001\005\000\000\000\000\000\193\000\000\000\000\000\000\000\000&\166\000\000\000\193\000\193\000\000\001\005\000\000&\206\000\000\000\000\000\000\000\000\001\005\000\000\000\193\000\000\000\193\001\005,n\000\000\000\000'2\000\000\001\005\000\000\000\000\001\005'J\000\000\000\000\000\000\000\000\001\005\001\005\000\242\000\000'R\000\000\000\000\000\000\000\000\001\005\000\000\001\005\001\005'b\000\000\000\000\000\000\000\000\001\005\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\201'j\000\000'\170\000\201\000\000\001\005\000\000\001\005\000\000\000\000\001\005\001\005\000\000\000\000\000\201\000\000\000\201\000\000\000\201\000\000\000\201\000\000\000\000\001\005\000\000\000\000'\242\000\000\000\000\000\000\001\005\001\005\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\001\005\000\000\001\005\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\201\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\201\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\197\000\000\000\201\000\000\000\201\000\000\000\000\000\201\000\201\000\000\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\201\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\201\000\000\000\201\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\197\000\197\000\000\000\000\000\000\000\000\000\000\000\197\002\005\000\000\000\197\000\000\002\005\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\002\005\000\197\002\005\000\197\000\000\000\000\000\197\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\002\005\000\000\000\197\000\000\000\000\002\005\000\000\000\000\000\000\000\197\000\197\000\000\b\177\000\000\000\000\000\000\002\005\000\000\000\000\002\005\000\000\000\197\000\000\000\197\000\000\002\005\002\005\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\b\169\000\000\000\000\021%\b\169\002\005\000\000\000\000\002\005\000\000\000\000\000\000\021%\000\000\002\005\b\169\000\000\b\169\000\000\b\169\000\000\b\169\000\000\000\000\000\000\000\000\002\005\000\000\002\005\000\000\000\000\002\005\002\005\000\000\b\169\000\000\000\000\000\000\000\000\000\000\b\177\b\169\000\000\021%\002\005\000\000\000\000\000\000\000\000\000\000\021%\002\005\002\005\000\000\000\000\b\169\000\000\002\005\000\000\000\000\000\000\b\169\b\169\b\169\000\000\002\005\000\000\000\000\000\000\000\000\b\169\000\000\002V\000\000\000\000\000\000\005\177\000\000\000\000\b\169\005\177\000\000\002^\000\000\000\000\000\000\000\000\000\000\021%\000\000\000\000\005\177\000\000\000\000\000\000\005\177\000\000\005\177\000\000\000\000\b\169\000\000\b\169\b\169\000\000\b\169\b\169\000\000\000\000\000\000\005\177\000\000\000\000\000\000\000\000\000\000\000\000\005\177\002\234\000\000\000\000\000\000\000\000\000\000\000\000+~\b\169\000\000\005\177\000\000\000\000\005\177\000\000\000\000\000\000\000\000\000\000\005\177\005\177\b\169\000\000\000\000\000\000\000\000\000\000\000\000\005\177\000\000\000\000\000\000\000\000\000\000\b\005\000\000\000\000\005\177\b\005\000\000\005\177\000\000\000\000\000\000\000\000\000\000\005\177\000\000\000\000\b\005\000\000\000\000\000\000\b\005\000\000\b\005\000\000\000\000\005\177\000\000\005\177\005\177\000\000\005\177\005\177\000\000\000\000\000\000\b\005\000\000\000\000\000\000\000\000\000\000\000\000\b\005\005\177\000\000\000\000\000\000\b\005\005\177\003\242\000\000\005\177\000\000\b\005\000\000\000\000\b\005\000\000\000\000\000\000\000\000\000\000\b\005\tN\005\177\002\250\000\000\000\000\000\000\000\000\000\000\b\005\000\000\b\005\b\005\000\000\000\000\000\000\000\000\000\000\b\005\b\005\000\000\b\005\000\000\000\000\000\000\000\000\000\000\b\005\002)\000\000\000\000\000\000\002)\000\000\000\000\000\000\000\000\000\000\000\000\b\005\014u\b\005\000\000\002)\b\005\b\005\000\000\002)\000\000\002)\000\000\000\000\000\000\003\254\000\000\000\000\000\000\b\005\000\000\000\000\000\000\000\000\002)\000\000\000\000\b\005\000\000\000\000\000\000\002)-:\002)\000\000\b\005\000\000\000\000\000\000\000\000\b\005\000\000\002)\000\000\000\000\002)\000\000\000\000\000\000\000\000\000\000\002)\002)\002)\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\002)\002)\000\000\002)\000\000\000\000\000\000\000\000\000\000\002)\0021\000\000\000\000\000\000\0021\000\000\000\000\000\000\000\000\000\000\000\000\002)\014}\002)\000\000\0021\002)\002)\000\000\0021\000\000\0021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002)\000\000\000\000\000\000\000\000\0021\000\000\000\000\002)\000\000\000\000\000\000\0021\002)\0021\000\000\000\000\000\000\000\000\000\000\000\000\002)\000\000\0021\000\000\000\000\0021\000\000\000\000\000\000\000\000\000\000\0021\0021\0021\000\000\000\000\000\000\000\000\000\000\000\000\0021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0021\0021\000\000\0021\000\000\000\000\000\000\000\000\000\000\0021\002-\000\000\000\000\000\000\002-\000\000\000\000\000\000\000\000\000\000\000\000\0021\014y\0021\000\000\002-\0021\0021\000\000\002-\000\000\002-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0021\000\000\000\000\000\000\000\000\002-\000\000\000\000\0021\000\000\000\000\000\000\002-\0021\002-\000\000\000\000\000\000\000\000\000\000\000\000\0021\000\000\002-\000\000\000\000\002-\000\000\000\000\000\000\000\000\000\000\002-\002-\002-\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\002-\002-\000\000\002-\000\000\000\000\000\000\000\000\000\000\002-\002%\000\000\000\000\000\000\002%\000\000\000\000\000\000\000\000\000\000\000\000\002-\014q\002-\000\000\002%\002-\002-\000\000\002%\000\000\002%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002-\000\000\000\000\000\000\000\000\002%\000\000\000\000\002-\000\000\000\000\000\000\002%\002-\002%\000\000\000\000\000\000\000\000\000\000\000\000\002-\000\000\002%\000\000\000\000\002%\000\000\000\000\000\000\000\000\000\000\002%\002%\002%\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\002%\002%\000\000\002%\000\250\000\000\000\000\000\000\t*\002%\000\000\000\000\000\000\000\000\005a\000\000\000\000\001\230\005a6\006\000\000\002%\000\000\002%\000\000&\162\002%\002%\000\000\005a\000\000\000\000\000\000\005a\000\000\005a\000\000\000\000&\166\002%\000\000\000\000\000\000\000\000\000\000&\206\000\000\002%\005a\000\000\000\000\000\000\002%\000\000\000\000\005a,n\000\000\000\000'2\002%\000\000\000\000\000\000\003\226'J\005a\000\000\000\000\005a\000\000\000\000\000\000\000\000'R\005a\005a\005a\000\000\000\000\000\000\000\000\000\000'b\005a\000\0005\150\000\000\000\000\000\000\000\000\000\0005\182\005a\005a\000\000\005a\000\000\000\000\000\000\000\000\000\000\005v\000\000'j\000\000'\170\005]\000\000\bA\001\230\005]\000\000\000\000\005a\000\000\005a\000\000\000\000\005a\005a\000\000\005]\000\000\000\000\000\000\005]\000\000\005]\000\000'\242\000\000\005a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005a\005]\000\000\000\000\000\000\005a\000\000\000\000\005]\000\000\000\000\000\000\000\000\005a\000\000\000\000\000\000\003\226\000\000\005]\000\000\000\000\005]\000\000\000\000\000\000\000\000\000\000\005]\005]\005]\000\000\000\000\000\000\000\000\000\000\000\000\005]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003M\005]\005]\000\000\005]%2\000\000\000\000\000\000\000\000\005v\000\000\000\000\000\000\000\000\003M\003M\003M\003M\000\000\003M\000\000\005]\000\000\005]\000\000\000\000\005]\005]\000\000\003M\000\000\003M\003M\000\000\000\000\000\000\012\157\000\000\000\000\005]\012\157\003M\000\000\000\000\000\000\000\000\000\000\005]\000\000\000\000\003M\012\157\005]\000\000\000\000\012\157\000\000\012\157\000\000\000\000\005]\003M\003M\003M\003M\003M\000\000\000\000\000\000\000\000\012\157\000\000\000\000\000\000\000\000\000\000\000\000\012\157\000\000\003M\000\000\000\000\012\157\000\000\000\000\000\000\000\000\000\000\012\157\000\000\003M\012\157\000\000\000\000\000\000\000\000\000\000\012\157\012\157\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012\157\019\214\012\157\012\157\003M\003M\000\000\000\000\000\000\012\157\000\000\003M\012\157\000\000\000\000\003M\003M\000\000\012\157\012\153\000\000\003M\003M\012\153\000\000\000\000\000\000\000\000\000\000\000\000\012\157\000\000\012\157\012\157\012\153\012\157\012\157\000\000\012\153\000\000\012\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\157\000\000\000\000\000\000\000\000\012\153\000\000\000\000\012\157\000\000\000\000\000\000\012\153\000\000\000\000\000\000\012\157\012\153\000\000\000\000\000\000\000\000\000\000\012\153\000\000\000\000\012\153\000\000\000\000\000\000\000\000\000\000\012\153\012\153\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012\153\000\000\012\153\012\153\000\000\000\000\001U\000\000\000\000\012\153\001U\000\000\012\153\000\000\000\000\000\000\000\000\000\000\012\153\000\000\000\000\001U\000\000\001U\000\000\001U\000\000\001U\000\000\000\000\012\153\000\000\012\153\012\153\000\000\012\153\012\153\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\001U\012\153\000\000\000\000\000\000\001U\000\000\000\000\000\000\012\153\000\000\001U\000\000\000\000\001U\000\000\000\000\012\153\000\000\000\000\001U\001U\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001Q\000\000\001U\000\000\001U\001U\000\000\001U\001U\000\000\000\000\001Q\000\000\001Q\000\000\001Q\000\000\001Q\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001U\001Q\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\000\000\000\000\000\000\000\000\000\000\001Q\001Q\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\b\173\000\000\000\000\021%\b\173\001Q\000\000\000\000\001Q\000\000\000\000\000\000\021%\000\000\001Q\b\173\000\000\b\173\000\000\b\173\000\000\b\173\000\000\000\000\000\000\000\000\001Q\000\000\001Q\001Q\000\000\001Q\001Q\000\000\b\173\000\000\000\000\000\000\000\000\000\000\000\000\b\173\000\000\021%\001Q\000\000\000\000\000\000\000\000\000\000\021%\000\000\001Q\000\000\000\000\b\173\000\000\000\000\000\000\000\000\000\000\b\173\b\173\b\173\000\000\001Q\000\000\000\000\000\000\000\000\b\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\173\0029\000\000\002^\"\230\0029\000\000\003j\000\000\021%\000\000\000\000\000\000\000\000\000\000\000\000\0029\000\000\000\000\000\000\0029\b\173\0029\b\173\b\173\000\000\b\173\b\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0029\000\000\000\000\000\000\000\000\000\000\000\000\0029\000\000\000\000\000\000\000\000\b\173\000\000\"\234\000\000\000\000\000\000\0029\000\000\000\000\0029\000\000\000\000\000\000\b\173\000\000\0029\0029\000\000\"\246\000\000\000\000\000\000\000\000\000\000\0029\000\000\000\000\000\000\001E\000\000\000\000\002\161\001E\0029\000\000\000\000\0029\000\000\000\000\000\000\002\161\000\000\0029\001E\000\000\001E\000\000\001E\000\000\001E\000\000\000\000\000\000\t\218\0029\000\000\0029\000\000\000\000\0029\0029\000\000\001E\000\000\000\000\000\000\000\000\000\000\000\000\001E\000\000\002\161\0029\000\000\000\000\000\000\000\000\000\000\002\161\000\000\0029\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\001E\001E\001E\000\000\0029\000\000\000\000\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001E\005U\000\000\000\000\000\000\005U\000\000\000\000\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\000\000\005U\001E\005U\001E\001E\000\000\001E\001E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000\"\254\000\000\000\000\000\000\000\000\005U\000\000\000\000\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\005U\000\000\000\000\000\000\001E\000\000\005U\005U\005U\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\005U\000\000\000\000\000\000\000\000\000\000\005U\001\202\001\226\003f\000\000\000\000\003j\000\000\000\000\000\000\000\000\000\000\005U\000\000\005U-B\000\000\005U\005U\000\000\000\000\000\000\001\234\002&\001\254\003n\000\000\000\000\000\000\000\000\005U\000\000\000\000\002\n\000\000\001\206\000\000#\134\005U\000\000\011I\000\000\000\000\005U\011I\000\000\000\000\000\000\003r\001\210\002Z\005U\000\000\000\000\003z\011I\003\138\003\186\003\198\011I\000\000\011I\000\000\000\000/J\000\000/\146\021%\000\000\000\000\000\000\000\000\000\000\000\000\011I\000\000\000\000\000\000\000\000\000\000\000\000\011I\000\000\000\000\000\000\000\000\003\214/\158\003\230\000\000\000\000\000\000\011I\000\000\000\000\011I\000\000\000\000\000\000\t\218\000\000\011I\011I\000\000\000\000\b\130\003\154\000\000\000\000\003j\011I\000\000\000\000/\170\bf\000\000\000\000\000\000\000\000\011I\000\000\000\000\011I\000\000\000\000\001\234\000\000\000\000\011I\000\000\000\000/j\b\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011I\000\000\011I\011I\000\000\011I\011I\000\000\b\210\000\000\000\000\015~\000\000\001\190\000\000\000\000\000\000\000\000\011I\003\138\000\000\000\000\t\246\t\250\000\000\003V\011I\t\254\000\000\n\006\000\000\000\000\000\000\000\000\t\190\000\000\000\000\005U\000\000\011I\000\000\005U\000\000\000\000\000\000\n6\t\194\t\198\000\000\nJ\nR\n^\005U\000\000\000\000\000\000\005U\000\000\005U\000\000\000\000\t\214\t\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000\"\254\000\000\000\000\000\000\000\000\005U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005U\nf\000\000\005U\000\000\000\000\000\000\007\166\000\000\005U\005U\005U\001\202\001\226\003f\000\000\000\000\003j\005U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\005U\000\000\000\000\001\234\002&\001\254\005U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\005U\000\000\005U-z\000\000\005U\005U\000\000\000\000\000\000\000\000\003r\001\210\002Z\000\000\000\000\000\000\003z\t\r\003\138\003\186\003\198\t\r\000\000\000\000#\134\005U/J\000\000/N\000\000\005U\000\000\t\r\000\000\000\000\000\000\t\r\000\000\t\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214/Z\003\230\t\r\000\000\000\000\000\000\000\000\000\000\000\000\t\r\000\000\000\000\t\218\000\000\000\000\000\000\017\202\000\000\000\000\000\000\t\r\r\189\000\000\t\r\000\000\000\000/f\000\000\000\000\t\r\t\r\000\242\000\000\000\000\000\000\000\000\000\000\000\000\t\r\r\189\r\189\000\000\r\189\r\189/j\000\000\000\000\t\r\t\r\000\000\t\r\000\000\000\000\000\000\000\000\000\000\t\r\t\017\000\000\000\000\000\000\t\017\000\000\000\000\000\000\000\000\r\189\000\000\t\r\000\000\t\r\000\000\t\017\t\r\t\r\000\000\t\017\000\000\t\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\189\000\000\000\000\000\000\000\000\t\017\000\000\000\000\t\r\000\000\000\000\000\000\t\017\000\000\000\000\000\000\000\000\r\189\000\000\017\202\000\000\t\r\000\000\t\017\000\000\000\000\t\017\000\000\000\000\000\000\000\000\000\000\t\017\t\017\000\242\000\000\000\000\000\000\000\000\000\000\r\189\t\017\r\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\017\t\017\000\000\t\017\000\000\000\000\000\000\011\006\r\189\t\017\t\021\r\189\r\189\000\000\t\021\000\000\r\189\000\000\r\189\006m\000\000\t\017\r\189\t\017\r\189\t\021\t\017\t\017\000\000\t\021\000\000\t\021\000\000\000\000\000\000\000\000\000\000\006m\006m\000\000\006m\006m\000\000\000\000\t\021\000\000\000\000\t\017\000\000\000\000\000\000\t\021\000\000\000\000\000\000\000\000\000\000\000\000\017\202\000\000\t\017\000\000\t\021\000\000\006m\t\021\000\000\000\000\000\000\000\000\000\000\t\021\t\021\000\242\000\000\000\000\000\000\000\000\000\000\000\000\t\021\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\t\021\t\021\000\000\t\021\000\000\000\000\000\000\000\000\000\000\t\021\t\025\000\000\006m\000\000\t\025\000\000\000\000\000\000\000\000\000\000\000\000\t\021\000\000\t\021\000\000\t\025\t\021\t\021\000\000\t\025\000\000\t\025\000\000\000\000\000\000\006m\000\000\006m\000\000\000\000\000\000\000\000\000\000\000\000\t\025\000\000\000\000\t\021\000\000\000\000\000\000\t\025\006m\006m\000\000\000\000\011B\006m\017\202\000\000\t\021\006m\t\025\006m\000\000\t\025\000\000\006m\000\000\006m\000\000\t\025\t\025\000\242\000\000\000\000\000\000\000\000\000\000\000\000\t\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\025\t\025\000\000\t\025\000\000\000\000\016>\000\000\000\000\t\025\011u\000\000\000\000\000\000\011u\000\000\000\000\000\000\000\000\000\000\000\000\t\025\000\000\t\025\000\000\011u\t\025\t\025\000\000\011u\000\000\011u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011u\000\000\000\000\t\025\000\000\000\000\000\000\011u\000\000\016\162\000\000\000\000\000\000\000\000\000\000\000\000\t\025\000\000\011u\000\000\000\000\011u\000\000\000\000\000\000\000\000\000\000\011u\011u\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011u\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\011u\005U\000\000\011u\000\000\000\000\000\000\000\000\000\000\011u\000\000\000\000\005U\000\000\000\000\000\000\005U\000\000\005U\000\000\000\000\011u\000\000\011u\000\000\000\000\011u\011u\000\000\000\000\000\000\005U\000\000\"\254\000\000\000\000\000\000\000\000\005U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011u\000\000\005U\000\000\000\000\005U\000\000\000\000\000\000\004F\000\000\005U\005U\005U\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\000\000\000\000\000\000\n9\000\000\000\000\005U\n9\000\000\005U\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\n9\000\000\000\000\000\000\n9\000\000\n9\000\000\000\000\005U\000\000\005U'\186\000\000\005U\005U\000\000\000\000\000\000\n9\000\000\000\000\000\000\000\000\000\000\000\000\n9\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\134\005U\000\000\n9\000\000\000\000\n9\000\000\000\000\000\000\000\000\000\000\n9\n9\000\242\000\000\000\000\000\000\000\000\000\000\000\000\n9\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n9\020\193\000\000\n9\003\154\020\193\000\0005\158\000\000\n9\000\000\000\0005\162\000\000\000\000\000\000\020\193\000\000\000\000\000\000\000\000\n9\020\193\n9/\182\000\000\n9\n9\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\193\000\000\000\000\000\000\n9\000\000\000\000\020\193\000\000\000\000\000\000\000\000\n9\000\000\001\006\000\000\001\190\000\000\020\193\000\000\000\000\020\193\000\000\000\000\000\000\n9\000\000\020\193\020\165\000\000\000\000\003\154\020\165\000\0005\190\000\000\020\1935\166\000\0005\194\000\000\000\000\000\000\020\165\000\000\020\193\000\000\000\000\020\193\020\165\000\000\000\000\000\000\000\000\020\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\165\000\000\000\0005\170\020\193\000\000\020\193\020\165\000\000\020\193\000\000\000\000\000\000\000\000\001\006\000\000\001\190\000\000\020\165\011I\000\000\020\165\000\000\011I\000\000\000\000\000\000\020\165\000\000\000\000\020\193\000\000\000\000\000\000\011I\000\000\020\1655\198\011I\000\000\011I\000\000\000\000\000\000\000\000\020\165\021%\000\000\020\165\000\000\000\000\000\000\000\000\011I\020\165\000\000\000\000\000\000\000\000\000\000\011I\000\000\000\000\000\000\000\0005\202\020\165\000\000\020\165\000\000\000\000\020\165\000\000\000\000\011I\000\000\000\000\000\000\000\000\000\000\011I\011I\000\000\000\000\000\000\000\000\021\001\000\000\000\000\011I\021\001\000\000\020\165\000\000\000\000\021\001\000\000\000\000\011I\021\001\000\000\021\001\000\000\000\000\000\000\021\001\000\000\021\001\000\000\000\000\021\001\000\000\000\000\000\000\021\001\000\000\021\001\000\000\000\000\011I\021\001\011I\011I\000\000\011I\011I\000\000\021\001\000\000\021\001\000\000\000\000\000\000\000\000\000\000\000\000\021\001\011I\021\001\000\000\000\000\021\001\011I\000\000\003V\011I\000\000\021\001\021\001\000\000\021\001\000\000\000\000\000\000\000\000\000\000\021\001\021\001\011I\000\000\000\000\000\000\002=\000\000\000\000\021\001\002=\000\000\021\001\000\000\000\000\000\000\000\000\000\000\021\001\000\000\000\000\002=\000\000\000\000\000\000\002=\000\000\002=\000\000\000\000\021\001\000\000\021\001\003b\000\000\021\001\021\001\000\000\000\000\021\001\002=\021\001\003b\000\000\021\001\021\001\000\000\002=\021\001\000\000\000\000\000\000\000\0000\002\000\000\000\000\021\001\021\001\002=\000\000\000\000\002=0>\000\000\000\000\021\001\000\000\002=\002=\021\001\000\000\000\000\000\000\000\000\000\000\000\000\002=\000\000\021\001\000\000\000\000\000\000\000\000\000\000\000\000\002=\n=\000\000\002=\000\000\n=\000\000\000\000\000\000\002=\000\000\000\000\000\000\000\000\000\000\000\000\n=\000\000\000\000\000\000\n=\002=\n=\002=\000\000\000\000\002=\002=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n=\000\000\000\000\000\000\002=\000\000\000\000\n=\000\000\000\000\000\000\000\000\002=\000\000\000\000\016>\000\000/v\n=\011\153\000\000\n=\000\000\011\153\000\000\002=\000\000\n=\n=\000\242\000\000\000\000\000\000\000\000\011\153\000\000\n=\000\000\011\153\000\000\011\153\000\000\000\000\000\000\000\000\n=\000\000\000\000\n=\000\000\000\000\000\000\000\000\011\153\n=\000\000\000\000\000\000\000\000\000\000\011\153\000\000\016\162\000\000\000\000\000\000\n=\000\000\n=\000\000\000\000\n=\n=\000\000\011\153\000\000\000\000\000\000\000\000\000\000\011\153\011\153\000\242\000\000\n=\000\000\000\000\000\000\000\000\011\153\000\000\000\000\n=\000\000\000\000\b\005\000\000\000\000\011\153\b\005\000\000\000\000\000\000\000\000\000\000\n=\000\000\000\000\000\000\000\000\b\005\000\000\000\000\000\000\b\005\000\000\b\005\000\000\b\005\011\153\000\000\011\153\b\005\000\000\011\153\011\153\000\000\000\000\000\000\b\005\000\000\000\000\000\000\b\005\000\000\000\000\b\005\b\005\000\000\b\005\000\000\000\000\000\000\000\000\000\000\011\153\000\000\b\005\000\000\000\000\b\005\000\000\b\005\002\130\004F\000\000\b\005\tN\011\153\b\005\000\000\000\000\000\000\000\000\000\000\b\005\017\202\000\000\000\000\000\000\b\005\000\000\000\000\b\005\b\005\000\000\000\000\b\005\000\000\b\005\tN\000\242\000\000\b\005\000\000\000\000\000\000\000\000\b\005\000\000\000\000\000\000\000\000\000\000\000\000\b\005\000\000\b\005\000\000\000\000\b\005\b\005\000\000\002V\000\000\000\000\b\005\005\209\000\000\000\000\000\000\005\209\000\000\016j\000\000\000\000\000\000\000\000\b\005\000\000\b\005\b\005\005\209\b\005\b\005\000\000\005\209\000\000\005\209\000\000\000\000\000\000\000\000\000\000\b\005\000\249\000\000\000\000\000\000\000\249\000\000\005\209\000\000\000\000\b\005\000\000\000\000\000\000\005\209\002\234\000\249\000\000\000\000\000\000\000\249\000\000\000\249\b\005\000\000\005\209\000\000\000\000\005\209\000\000\000\000\000\000\000\000\000\000\005\209\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\249\005\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\209\000\249\000\000\005\209\000\249\000\000\000\000\000\000\000\000\005\209\000\249\000\249\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\249\000\000\005\209\000\000\005\209\000\000\000\000\005\209\005\209\000\249\000\253\000\000\000\249\000\000\000\253\000\000\000\000\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\005\209\000\253\000\249\000\253\000\249\000\000\000\000\000\249\000\249\000\000\000\000\000\000\000\000\000\000\002\250\000\000\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\000\000\000\000\249\000\000\000\000\016>\000\000\000\000\000\253\t)\000\000\000\253\000\000\t)\000\000\000\249\000\000\000\253\000\253\000\242\000\000\000\000\000\000\000\000\t)\000\000\000\253\000\000\t)\000\000\t)\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\253\000\000\000\000\000\000\000\000\t)\000\253\000\000\000\000\000\000\000\000\000\000\t)\000\000\016\162\000\000\000\000\000\000\000\253\000\000\000\253\000\000\000\000\000\253\000\253\000\000\t)\000\000\000\000\000\000\000\000\000\000\t)\t)\000\242\000\000\000\000\000\000\001\202\002\018\001\230\t)\000\000\016>\000\253\000\000\000\000\b\005\000\000\000\000\t)\b\005\000\000\000\000\003v\000\000\000\000\000\253\000\000\001\234\0022\001\254\b\005\000\000\000\000\000\000\b\005\000\000\b\005\000\000\002\n\t)\001\206\t)\000\000\000\000\t)\t)\002j\000\000\000\000\b\005\000\000\000\000\000\000\002\014\001\210\002Z\b\005\000\000\016\162\003z\000\000\003\138\003\186\003\198\000\000\t)\000\000\000\000\000\000\003\210\b\005\000\000\000\000\r6\004F\000\000\b\005\tN\000\242\011)\011)\011)\000\000\000\000\000\000\b\005\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\b\005\000\000\000\000\003\202\000\000\000\000\011)\011)\011)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011)\000\000\011)\000\000\b\005\000\000\b\005\011q\000\000\b\005\b\005\011q\000\000\000\000\000\000\011)\011)\011)\"\238\000\000\000\000\011)\011q\011)\011)\011)\011q\000\000\011q\000\000\b\005\011)\000\000\000\000\000\000\000\000\000\000\000\000\b\005\004F\000\000\011q\000\000\000\000\000\000\000\000\000\000\000\000\011q\000\000\000\000\000\000\000\000\011)\000\000\011)\000\000\000\000\000\000\011q\000\000\000\000\011q\000\000\000\000\000\000\000\000\000\000\011q\011q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011q\000\000\000\000\011q\000\000\000\000\000\000\000\000\000\000\011q\000\000\000\000\003\190\000\000\011)\000\000\000\000\000\000\n1\000\000\000\000\011q\n1\011q&\226\000\000\011q\011q\000\000'\150\000\000\000\000\000\000\n1\000\000\000\000\000\000\n1\000\000\n1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011q\000\000\000\000\000\000\000\000\n1\000\000\000\000\000\000\000\000\000\000\000\000\n1\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n1\000\000\000\000\n1\000\000\000\000\000\000\000\000\000\000\n1\n1\000\000\001\202\002\018\001\230\000\000\000\000\000\000\n1\000\000\000\000\000\000\001m\000\000\000\000\000\000\001m\n1\000\000\000\000\n1\000\000\000\000\001\2344V\001\254\n1\001m\000\000\001m\000\000\001m\000\000\001m\002\n\000\000\001\206\000\000\n1\000\000\n1\000\000\002j\n1\n1\000\000\001m\000\000\000\000\002\014\001\210\002Z\000\000\001m\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\n1\003\210\000\000\001m\000\000\000\000\000\000\000\000\000\000\001m\001m\000\242\000\000\000\000\000\000\020Q\000\000\000\000\001m\020Q\000\000\000\000\000\000\003\214\000\000\003\230\000\000\001m\000\000\000\000\020Q\000\000\000\000\000\000\020Q\000\000\020Q\000\000\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\000\000\000\000\001m\020Q\001m\001m\000\000\001m\001m\000\000\020Q\000\000\000\000\000\000\000\000\n\002\000\000\000\000\001\234\002&\001\254\020Q\000\000\000\000\020Q\000\000\000\000\000\000\001m\002\n\020Q\001\206\000\000\000\000\000\000\000\000\000\000\002j\000\000\020Q\000\000\001m\000\000\000\000\002.\001\210\002Z\000\000\020Q\020*\003z\020Q\003\138\003\186\003\198\000\000\000\000\020Q\007\221\000\000\003\210\000\000\007\221\000\000\000\000\000\000\000\000\000\000\000\000\020Q\000\000\020Q\000\000\007\221\020Q\020Q\000\000\007\221\000\000\007\221\000\000\000\000\003\214\007\213\003\230\000\000\000\000\007\213\000\000\000\000\000\000\000\000\007\221\000\000\000\000\020Q\000\000\000\000\007\213\007\221\000\000\000\000\007\213\000\000\007\213\000\000\000\000\000\000\024\246\000\000\007\221\000\000\000\000\007\221\000\000\000\000\000\000\007\213\000\000\007\221\000\000\000\000\000\000\000\000\007\213\000\000\000\000\007\162\007\221\007\166\000\000\000\000\000\000\000\000\000\000\007\213\000\000\007\221\007\213\000\000\007\221\000\000\000\000\000\000\007\213\000\000\007\221\000\000\000\000\000\000\000\000\000\000\000\000\007\213\000\000\000\000\000\000\000\000\007\221\000\000\007\221\000\000\007\213\007\221\007\221\007\213\000\000\000\000\000\000\000\000\000\000\007\213\007\197\000\000\000\000\000\000\007\197\000\000\000\000\000\000\000\000\000\000\000\000\007\213\007\221\007\213\000\000\007\197\007\213\007\213\000\000\007\197\000\000\007\197\000\000\000\000\000\000'\n\000\000\000\000\007\245\000\000\000\000\000\000\007\245\000\000\007\197\000\000\000\000\007\213\000\000\000\000\000\000\007\197\000\000\007\245\000\000\000\000\000\000\007\245\000\000\007\245)B\000\000\007\197\000\000\000\000\007\197\000\000\000\000\000\000\000\000\000\000\007\197\007\245\000\000\000\000\000\000\000\000\000\000\000\000\007\245\007\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\197\007\245\000\000\007\197\007\245\000\000\000\000\000\000\000\000\007\197\007\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\245\000\000\007\197\000\000\007\197\000\000\000\000\007\197\007\197\007\245\000\000\000\000\007\245\000\000\000\000\000\000\000\000\000\000\007\245\000\000\000\000\000\000\000\000\001\202\002\018\001\230\000\000\000\000\007\197\000\000\007\245\000\000\007\245\000\000\000\000\007\245\007\245\000\000\000\000\000\000\000\000,B\000\000\000\000\001\234\003\130\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\007\245\001\206\000\000\000\000\000\000\000\000\000\000\002j\000\000\000\000\011%\011%\011%,\178\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\011%\011%\011%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011%\000\000\011%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\011%\011%\011%\021\213\021\213\021\213\011%\000\000\011%\011%\011%\000\000\000\000\000\000\000\000\000\000\011%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\213\021\213\021\213\016R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\213\000\000\021\213\011%\000\000\011%\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\025>\021\213\021\213\021\213\000\000\000\000\000\000\021\213\000\000\021\213\021\213\021\213\000\000\000\000\000\000\000\000\000\000\021\213\001\234\001\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\213\000\000\021\213\000\000\007\206\002\014\001\210\002Z\001\202\002\018\001\230\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234#\142\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\003\214\000\000\003\230\000\000\000\000\002j\000\000\000\000\001\202\001\226\001\230*\"\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\001\234\001\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\000\000\000\000\002\014\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\001\202\001\226\001\230*\130\000\000\003\210\000\000\000\000\000\000\011\145\000\000\000\000\000\000\011\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\001\238\001\254\011\145\000\000\000\000\003\214\011\145\003\230\011\145\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\145\001\202\004\170\001\230\002\014\001\210\002Z\011\145\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\000\000\003\210\011\145\001\234\004\182\001\254\000\000\000\000\011\145\011\145\000\000\000\000\000\000\000\000\002\n\000\000\001\206\011\145\000\000\000\000\000\000\000\000\000\000\003\214\000\000\003\230\011\145\000\000\000\000\002.\001\210\002Z\000\000\000\000\000\000\003z\0121\003\138\003\186\003\198\000\000\000\000\001\202\006\014\001\230\003\210\000\000\011\145\000\000\011\145\000\000\000\000\011\145\011\145\0121\0121\000\000\0121\0121\000\000\000\000\016\226\000\000\001\234\006\026\001\254\000\000\003\214\000\000\003\230\000\000\000\000\000\000\011\145\002\n\000\000\001\206\000\000\000\000\000\000\000\000\01211&\000\000\000\000\000\000\000\000\000\000\006}\002.\001\210\002Z\000\000\000\000\000\000\003z\000\000\003\138\003\186\003\198\000\000\0121\000\000\000\000\000\000\003\210\006}\006}\000\000\006}\006}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0121\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012A\003\214\000\000\003\230\000\000\000\000\000\000\006}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0121\000\000\0121\012A\012A\000\000\012A\012A\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\0121\0121\000\000\006\141\011B\0121\000\000\000\000\000\000\0121\000\000\0121\006}\012A\000\000\0121\000\000\0121\000\000\000\000\000\000\006\141\006\141\000\000\006\141\006\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\006}\000\000\006}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\141\000\000\012A\000\000\006}\006}\000\000\000\000\011B\006}\000\000\000\000\000\000\006}\000\000\006}\000\000\000\000\000\000\006}\000\242\006}\000\000\000\000\000\000\012A\000\000\012A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\141\000\000\000\000\000\000\000\000\011\174\012A\000\000\000\000\011B\012A\000\000\000\000\000\000\012A\000\000\012A\006\173\000\000\000\000\012A\000\000\012A\006\141\000\000\006\141\000\000\000\000\000\000\000\000\000\000\001\202#\166\001\230\000\000\006\173\006\173\000\000\006\173\006\173\006\141\006\141\000\000\000\000\011B\006\141\000\000\000\000\006\157\006\141\000\000\006\141\001\234#\178\001\254\006\141\000\000\006\141\000\000\000\000\000\000\000\000\006\173\002\n\000\000\001\206\006\157\006\157\000\000\006\157\006\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002.\001\210\002Z\000\000\000\242\000\000\003z\000\000\003\138\003\186\003\198\000\000\000\000\000\000\000\000\006\157\003\210\000\000\000\000\000\000\000\000\006\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\003\214\000\000\003\230\000\000\000\000\000\000\006\173\000\000\006\173\000\000\000\000\000\000\000\000\000\000\006\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\173\006\173\000\000\000\000\011B\006\173\000\000\000\000\000\000\006\173\000\000\006\173\000\000\000\000\006\157\006\173\006\157\006\173\000\000\000\000\000\000\000\000\001\20246\001\230\000\000\000\000\000\000\000\000\000\000\000\000\006\157\006\157\000\000\000\000\011B\006\157\000\000\000\000\000\000\006\157\000\000\006\157\001\2344B\001\254\006\157\000\250\006\157\000\000\000\000\t*\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000&\158\000\000\000\000\000\000\b\025\000\000&\162\002.\001\210\002Z\007\229\000\000\000\000\003z\007\229\003\138\003\186\003\198\000\000&\166\000\000\000\000\000\000\003\210\000\000\007\229&\206\000\000\000\000\007\229\000\000\007\229\000\000\000\000\000\000\000\000\000\000,n\007\205\000\000'2\000\000\007\205\000\000\007\229\003\214'J\003\230\000\000\000\000\000\000\007\229\000\000\007\205\000\000'R\000\000\007\205\000\000\007\205\000\000\000\000\000\000\007\253'b\007\229\000\000\007\253\000\000\000\000\000\000\007\229\007\205\000\000\000\000\000\000\000\000\000\000\007\253\007\205\007\229\000\000\007\253\000\000\007\253'j\000\000'\170\000\000\007\229\b\025\b\025\000\000\007\205\000\000\000\000\000\000\007\253\000\000\007\205\000\000\000\000\000\000\000\000\007\253\000\000\000\000\000\000\007\205\000\000\007\229'\242\007\229\000\000\000\000\007\229\007\229\007\205\007\253\000\000\000\000\000\000\000\000\000\000\007\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\253\000\000\000\000\007\229\000\000\007\205\000\000\007\205\000\000\007\253\007\205\007\205\000\000\000\000\000\000\000\0000\222\000\000\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\253\007\205\007\253\000\000\000\000\007\253\007\253\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0002\026")) + ((32, "\000\000\213\"\000\000\224\198\000\000\235B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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.\000\000\235B\000\000\000\000\000\000\000\000\000\000\025\020\000\000\235B\000\000\213\"\000\000\000\240\000\000\0005\000\000\0022\000\001\185\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000Z\000\000\002\018\000\000\000\231\000\000\000\000\000\000\000\000\000\000\000\030\000\000\000\000\000\000\001\234\000\000\001L\000\000\001>\000\000\000\000\000\000\000&\000\000\002\208\000\000\003\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\0046\000\000\000\000\000\000\000\000\000\000\004^\000\001\245\250\000\001\165h\000\001\166\026\000\001\166\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\001~\000\000\000\000\000\000\000\000\000\001. \000\000\005r\000\000\005\b\000\000\000\000\000\000\000\000\000\001\180\152\000\001+z\000\000\n*\000\000\000\000\000\000\n*\000\001\171$\000\000\001~\000\000\000\000\000\001\236\246\000\000\005Z\000\000\n*\000\001\198p\000\000\n*\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\238\000\001\171$\000\001&\232\000\000\000\000\000\001\210\230\000\001\236\246\000\000\001~\000\001)v\000\000\n*\000\000t>\000\000\000\000\000\000\006|\000\001\186<\000\000\000\000\000\000\000\000\000\001\247\242\000\001.J\000\000\n*\000\000ub\000\000\n*\000\000\000\000\000\000\001~\000\001-\220\000\000\n*\000\000v\134\000\001\173\190\000\001\241\024\000\000\001~\000\001)v\000\000\219\030\000\000\025\020\000\000\027\196\000\001\171\188\000\000\025\020\000\001\1680\000\000\0072\000\001\164\174\000\000\000\000\000\000\000\000\000\000\007T\000\000\000\000\000\001((\000\000\224\146\000\000\025\020\000\000\216\172\000\000\000\000\000\000\024\254\000\000\000\000\000\000\216\172\000\000 \"\000\000\000\000\000\000\212\174\000\000\000\000\000\000\000\226\000\000\000\000\000\000\000\000\000\000\004\132\000\000\024.\000\000\017\184\000\000\n*\000\000x\206\000\000\025\020\000\000\000\000\000\000\001~\000\000\024.\000\000\018\220\000\000\n*\000\000y\242\000\000\000\000\000\000\006L\000\000\000\000\000\000\212\174\000\000\000\000\000\000\000\000\000\000\t\020\000\000\025\020\000\000\000\000\000\000\001~\000\000\025\020\000\000\000\000\000\000\005\192\000\001\228\028\000\000\n*\000\001\218>\000\001\239\024\000\001\227\204\000\001\208\222\000\000\000\000\000\001\229:\000\001\236\246\000\000\000\000\000\000\235B\000\000\213\"\000\000\000\003\000\000\000\000\000\000\000\000\000\000\224\198\000\000\025\020\000\000\000\003\000\000\002\160\000\000\b\132\000\000\005\004\000\001\171$\000\001\239\208\000\000\000\000\000\001\171$\000\001\239\208\000\000\000\000\000\001\171$\000\001\241\234\000\00100\000\000jF\000\001-h\000\001&\232\000\000\006^\000\000\000\000\000\000\000\b\000\000\0010\000\000\005T\000\000\000\000\000\000\t\140\000\000\000\000\000\000\000\000\000\000\012B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0038\000\000\026\156\000\001\241\234\000\0010\250\000\001\171$\000\0011\250\000\000\t\\\000\0012\250\000\000\000\000\000\000\000\000\000\001j\250\000\001\171$\000\0013\250\000\001k\250\000\000\000\000\000\001\239,\000\001\236\246\000\000\000\000\000\000\007~\000\000\0010\000\000\006^\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\196\000\000\012\226\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\248\022\000\001/X\000\000\n*\000\000{\022\000\000\001~\000\001.D\000\000\n*\000\000|:\000\00110\000\001\236\246\000\000\001~\000\000\001~\000\000\000\000\000\000\t\170\000\000\001~\000\000\tF\000\000\n*\000\000iX\000\000\000\000\000\001\171$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\018\000\000\007<\000\001\171$\000\0014\250\000\001l\250\000\000\000\000\000\00110\000\0015\250\000\001\171$\000\0016\250\000\001m\250\000\000\000\000\000\00110\000\0017\250\000\001n\250\000\001\171$\000\0018\250\000\001o\250\000\000\000\000\000\00110\000\0019\250\000\001p\250\000\001(\020\000\00120\000\001&\240\000\001-h\000\001)\022\000\000\006^\000\000\000\000\000\000\000\000\000\000\000\000\000\001.\248\000\00140\000\001&\248\000\001-h\000\001*\024\000\001+\026\000\001,\028\000\001q\250\000\000\n<\000\001\171$\000\001:\250\000\001r\250\000\000\000\000\000\00110\000\001;\250\000\001s\250\000\000\000\000\000\001t\250\000\000\003V\000\000\001~\000\000\000\000\000\000\t\216\000\000\n\006\000\000\n*\000\000l\196\000\000\000\000\000\000\001~\000\000\nv\000\000\n*\000\000n\208\000\000\000\000\000\000\001\002\000\000\000\000\000\001\248z\000\0017$\000\000\n*\000\000}^\000\000\001~\000\001.V\000\000\n*\000\000~\130\000\000\003J\000\000\bV\000\000\011`\000\000\006Z\000\000\002\162\000\001\171$\000\000\005\190\000\000\tN\000\001\171$\000\001<\250\000\001u\250\000\000\000\000\000\00110\000\001=\250\000\001v\250\000\000\011\150\000\001\171$\000\001>\250\000\001w\250\000\000\000\000\000\00110\000\001?\250\000\001x\250\000\000\nR\000\001\171$\000\001@\250\000\001y\250\000\000\000\000\000\00110\000\001A\250\000\001z\250\000\000\011\254\000\001\171$\000\001B\250\000\001{\250\000\000\000\000\000\00110\000\001C\250\000\001|\250\000\00150\000\001\236\246\000\000\003\198\000\001\171$\000\000\n~\000\000\014\020\000\001\171$\000\001D\250\000\001}\250\000\000\000\000\000\00110\000\001E\250\000\001~\250\000\000\012r\000\001\171$\000\001F\250\000\001\127\250\000\000\000\000\000\00110\000\001G\250\000\001\128\250\000\000\015\154\000\001\171$\000\001H\250\000\001\129\250\000\000\000\000\000\00110\000\001I\250\000\001\130\250\000\000\r\138\000\001\171$\000\001J\250\000\001\131\250\000\000\000\000\000\00110\000\001K\250\000\001\132\250\000\00110\000\001L\250\000\001\133\250\000\000\000\000\000\00110\000\001M\250\000\001\134\250\000\000\005Z\000\000\001\002\000\000\000\000\000\000\027\222\000\00120\000\000\006\226\000\000\000\000\000\000kh\000\00120\000\000\r\160\000\000\000\000\000\001\171$\000\000\001~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\214\000\000\000\000\000\001\171$\000\000\000\000\000\000\024\222\000\001\2450\000\000\000\000\000\001\171$\000\000\024\234\000\001\171$\000\000\027\250\000\000\000\000\000\000n\164\000\000\000\000\000\000k:\000\000\r\006\000\000\000\000\000\000\012\248\000\001\171$\000\000\014\174\000\000\000\000\000\000\015\030\000\000\000\000\000\000\004\166\000\000\000\000\000\000\000\003\000\000\002^\000\000\000\000\000\000\000\000\000\000\000\000\000\000-\020\000\001\171$\000\000\026\162\000\001\171$\000\000.8\000\000\014\196\000\000\014 \000\000\2360\000\000\004\\\000\000\014\226\000\000\005\004\000\000\0156\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\134\000\000\020\134\000\000\224l\000\000\025\020\000\000\235(\000\001$\200\000\000\000\000\000\000\0114\000\000\015,\000\000\015:\000\001\171$\000\000\011\002\000\000\015\168\000\001\186\234\000\000\012v\000\000\016\128\000\000\016^\000\001\171$\000\000\011\166\000\000\000\000\000\000\000\000\000\000\026:\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\216&\000\000r\174\000\000\011N\000\000\000*\000\000\b\176\000\000\000\000\000\000\000\000\000\000\003R\000\000\000\000\000\000\027\196\000\000\017\152\000\000\017\192\000\000\025\020\000\000mX\000\000\000\000\000\000\025\020\000\000\213\"\000\000\224\146\000\000\025\020\000\001+t\000\000\216\172\000\000\r6\000\001\228\028\000\001\234\160\000\000\000\000\000\001\2376\000\000\235B\000\000\213\"\000\000\021\170\000\000\011N\000\000\003\000\000\000\006l\000\000\000\000\000\000\016\240\000\000\014\138\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027@\000\001\187\156\000\000\225\168\000\000\022\206\000\000\226\186\000\000\023\242\000\000\227\204\000\000\029\128\000\000\003*\000\000\007@\000\000\237\018\000\000\030\164\000\000h\200\000\000\217T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\237\244\000\000\031\200\000\000h\200\000\000\000\000\000\000\000\000\000\000\020\134\000\000\238\214\000\000 \236\000\001\172>\000\000\025\020\000\001\188H\000\001\188H\000\001\175\214\000\001\175\214\000\000\000\000\000\000\006l\000\000\000\000\000\000\018T\000\000\000\000\000\000\028\002\000\001\171$\000\000\003\172\000\000\001\030\000\001$\200\000\000\224\188\000\000\025\020\000\001$\200\000\000\015~\000\000\000\000\000\000\000\000\000\000\b\236\000\000\016N\000\001$\200\000\001$\200\000\000\006l\000\000\018\184\000\000\000\000\000\000\015~\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018<\000\001\188\250\000\000\014\160\000\000\019<\000\000\018\184\000\001\171$\000\000\012\202\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\001#\184\000\000l\164\000\000\006\152\000\000\011\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002D\000\000k\016\000\001\175\214\000\000\000\000\000\000\224\188\000\000\025\020\000\001$\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\001\230\022\000\001\189\172\000\000\014\208\000\000\019\160\000\000\019\"\000\001\171$\000\000\r\238\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\231\"\000\001$\200\000\001\248r\000\001%\216\000\000\219^\000\000\015\226\000\000\019\200\000\000\0198\000\000\n*\000\000q\024\000\000\000\000\000\000\004v\000\000\n*\000\000qT\000\001$\200\000\000\000\000\000\000\000\000\000\000\020.\000\001$\200\000\000\000\000\000\000\027\014\000\000\000\000\000\000\000\000\000\000t\018\000\000\020P\000\000\000\000\000\000j\026\000\000\000\000\000\001\190^\000\000\016P\000\000\020`\000\000\020\000\000\001\171$\000\000\016\158\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\001\248\176\000\001\171$\000\000\017\002\000\000\000\000\000\001$\200\000\001\248\248\000\000\0022\000\000\000\000\000\000\000\000\000\000\021\006\000\000\000\000\000\000\028\216\000\000\000\000\000\001\188H\000\000\000\000\000\000\021\026\000\000\000\000\000\000jL\000\001\172\240\000\000\000\000\000\000\000\000\000\000\000\000\000\001\2496\000\000o\206\000\000\000\000\000\000\028\216\000\000\000\000\000\000p2\000\000\005 \000\000\006l\000\000\017\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020l\000\000\000\000\000\000\000\000\000\000\020\164\000\000\000\000\000\001$\200\000\000p2\000\000\000\003\000\000\000\000\000\000\000\000\000\000\224\198\000\000\025\020\000\000\000\003\000\000\000\003\000\000\000\000\000\000\000\000\000\000\224\198\000\000\025\020\000\000\000\003\000\000\000\003\000\000\001\"\000\000\239\184\000\000\"\016\000\001\172>\000\000\025\020\000\001\188H\000\000,T\000\000\240\154\000\000\016\180\000\000\021\132\000\000\005\004\000\000\021\216\000\000\000\000\000\000\000\000\000\000#4\000\001\172>\000\000\025\020\000\001\188H\000\000-x\000\001$\200\000\000\000\000\000\000\000\000\000\000\224\188\000\000\025\020\000\000\220z\000\000\016\232\000\000\004\234\000\000\004\006\000\001\245\250\000\000l\190\000\000\015\232\000\000\004\234\000\001\171$\000\000l\190\000\000\019T\000\001\209\154\000\000\000\000\000\001\2102\000\000\000\000\000\000\000\000\000\000\021\184\000\000\004\006\000\000\000\000\000\000\022*\000\000\000\000\000\000\000\000\000\000\017\006\000\000\004\234\000\000\015\248\000\000\000\003\000\001\204$\000\000\017\024\000\000\021\248\000\000\021j\000\001\171$\000\000\017l\000\000\022\028\000\001\198\242\000\000\017\220\000\000\023$\000\000\022\194\000\001\171$\000\000\018\b\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\000\000\000\000\000p\000\000\001$\200\000\000q$\000\000\000\000\000\000\000\000\000\000rH\000\001\199\164\000\000\018\012\000\000\023z\000\000\023\002\000\001\171$\000\000\018&\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\000sl\000\000\023\030\000\001\200V\000\000\018*\000\000\023\188\000\000\0236\000\001\171$\000\000\018z\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\000t\144\000\001$\200\000\000\023R\000\001\201\b\000\000\018\252\000\000\024\002\000\000\023\212\000\001\171$\000\000\018~\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\000u\180\000\001\163\170\000\000\005\184\000\000\000\000\000\001\172\240\000\000\227p\000\000\000\000\000\001$\200\000\000\227p\000\000\000\000\000\000\015\248\000\000\025\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\216&\000\000\020T\000\000\t\006\000\000\n*\000\000rx\000\000\000\000\000\000\025\156\000\000\000\000\000\000\025\210\000\000\000\000\000\000\2196\000\001\245\250\000\000lD\000\000\005Z\000\000\007\230\000\001\171$\000\000lD\000\000\006J\000\000\018\162\000\000\000\000\000\001$\200\000\000\225\134\000\000\000\000\000\001\183\016\000\000\216&\000\000\000\000\000\000\000\000\000\000\000\003\000\000\224\198\000\000\216\250\000\000\216\250\000\000\025\020\000\000mX\000\000\218\236\000\000\025\020\000\000\241|\000\000$X\000\001\172>\000\000\025\020\000\001\188H\000\000j\218\000\000\000\000\000\000\027\196\000\001,\154\000\000\027,\000\000\000\000\000\000\0005\000\000\007^\000\000\014\186\000\000\025\018\000\000\027\196\000\000\019\190\000\000\000\000\000\000\000\000\000\000,\186\000\000\007n\000\000\000\000\000\000\027\196\000\001\201\156\000\001\210\210\000\001\211r\000\000\t2\000\000\216\172\000\000\006l\000\000\007\206\000\001\245\164\000\000\000\000\000\001\171$\000\001\202Z\000\001\171$\000\001\190\242\000\001\202\250\000\001\171$\000\000\0120\000\001\171$\000\001\203\154\000\000\000\000\000\000\020\154\000\000\018\170\000\000\0152\000\000\027\196\000\001\201\156\000\000\007n\000\001\212\018\000\000\000\000\000\000\n\016\000\000\018\234\000\001\173\136\000\000\000\000\000\000\000\000\000\000\000\000\000\000\025\240\000\000\027\196\000\001\201\156\000\001\212\178\000\001\213R\000\000\027\196\000\001\201\156\000\001\213\242\000\001\214\146\000\000\000\000\000\000\000\000\000\000\027\196\000\001\2152\000\000\000\023\000\000\0010\000\001\191\146\000\000\014\138\000\000\0010\000\001\192N\000\000\000\000\000\001\215\210\000\000\t2\000\000\000\000\000\001\193\n\000\000\027\230\000\000\000\000\000\000\026\192\000\000\027\196\000\001\201\156\000\001\216r\000\001\217\018\000\000-\222\000\000\000\000\000\000/\002\000\000\000\000\000\000\027\196\000\000-\014\000\000\000\000\000\000\027\196\000\0000&\000\000\000\000\000\000\224\198\000\000\025\020\000\000\2144\000\000\224\198\000\000\025\020\000\000\020\134\000\000\020\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\002F\000\000l4\000\000\028\\\000\000\000\000\000\000\228\174\000\000\229\144\000\000\216\250\000\000\025\020\000\000mX\000\000\0005\000\000\007^\000\000\026\208\000\000mX\000\000\000\000\000\001\174h\000\000\218\236\000\000\000\000\000\000i\184\000\000\000\000\000\000\027\196\000\000,\186\000\000\007\226\000\000\000\000\000\0000z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027<\000\000\000\000\000\001\168\200\000\000\000\000\000\000\001\n\000\000\027\196\000\0001J\000\000\000\000\000\000\230r\000\000\231T\000\001\204$\000\000\217\156\000\001\171$\000\000\020j\000\000\000\003\000\000\020\134\000\000l2\000\000\027\144\000\000\000\000\000\000\020\134\000\000\003j\000\000\005\144\000\000\221\144\000\000%|\000\001\172>\000\000\025\020\000\001\188H\000\000m\184\000\000\221\144\000\000\224\198\000\000\025\020\000\000\000\003\000\001\172>\000\000\025\020\000\001\188H\000\000.\156\000\000\242^\000\000\020n\000\000\027\168\000\000\005\004\000\000\028\236\000\000\000\000\000\000\000\000\000\000&\160\000\001\172>\000\000\025\020\000\001\188H\000\000/\192\000\000\029\128\000\000\028\224\000\000\000\000\000\000\006l\000\000\000\000\000\000\027\004\000\000\000\003\000\000\224\188\000\000\025\020\000\000\220z\000\000\000\000\000\001\1680\000\000\000\000\000\000\000\000\000\000\001~\000\001-h\000\000\012 \000\000\028\244\000\000\243@\000\001\172>\000\000\025\020\000\001\188H\000\0000\228\000\000\224\188\000\000\025\020\000\001$\200\000\000jL\000\000\000\003\000\000\000\003\000\000\224\198\000\000\025\020\000\000\020\134\000\000\030\164\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\244\"\000\000'\196\000\001\172>\000\000\025\020\000\001\188H\000\000\000\000\000\000\022\206\000\000\031\200\000\001\172>\000\000\025\020\000\001\188H\000\000\000\000\000\000\020\134\000\000\020\172\000\000\028\234\000\000\005\004\000\000\029.\000\000\000\000\000\000\000\000\000\000\029&\000\000\000\000\000\000\020\134\000\000\004\142\000\000\020\134\000\000\005\178\000\000\006\180\000\000\221\144\000\001\172>\000\000\025\020\000\001\188H\000\000n\220\000\000\222\162\000\000\000\000\000\0002\b\000\000\245\004\000\000\021D\000\000\029J\000\000\005\004\000\000\029\170\000\000\000\000\000\000\000\000\000\000(\232\000\001\172>\000\000\025\020\000\001\188H\000\0003,\000\000\020\134\000\000 \236\000\001\172>\000\000\025\020\000\001\188H\000\0004P\000\000\021\170\000\000\"\016\000\000\000\128\000\000\000\003\000\000\000\000\000\000\000\000\000\0005t\000\000\245\230\000\000*\012\000\001\172>\000\000\025\020\000\001\188H\000\0006\152\000\001\172>\000\000\025\020\000\001\188H\000\0007\188\000\0008\224\000\000\246\200\000\000+0\000\001\172>\000\000\025\020\000\001\188H\000\000:\004\000\001\172>\000\000\025\020\000\001\188H\000\000;(\000\000\000\000\025\020\000\001\188H\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000\000\000\000\000\000\000\000\000\000\003\000\000\235B\000\000\000\003\000\000\000\000\000\000\000\000\000\000\248\140\000\000-x\000\001\172>\000\000\025\020\000\001\188H\000\000=p\000\001\172>\000\000\025\020\000\001\188H\000\000>\148\000\000?\184\000\000\249n\000\000.\156\000\001\172>\000\000\025\020\000\001\188H\000\000@\220\000\001\172>\000\000\025\020\000\001\188H\000\000B\000\000\000C$\000\000\250P\000\000/\192\000\001\172>\000\000\025\020\000\001\188H\000\000DH\000\001\172>\000\000\025\020\000\001\188H\000\000El\000\000F\144\000\000\2512\000\0000\228\000\001\172>\000\000\025\020\000\001\188H\000\000G\180\000\001\172>\000\000\025\020\000\001\188H\000\000H\216\000\000I\252\000\000\252\020\000\0002\b\000\001\172>\000\000\025\020\000\001\188H\000\000K \000\001\172>\000\000\025\020\000\001\188H\000\000LD\000\000Mh\000\000\252\246\000\0003,\000\001\172>\000\000\025\020\000\001\188H\000\000N\140\000\001\172>\000\000\025\020\000\001\188H\000\000O\176\000\000P\212\000\000\253\216\000\0004P\000\001\172>\000\000\025\020\000\001\188H\000\000Q\248\000\001\172>\000\000\025\020\000\001\188H\000\000S\028\000\000T@\000\000\254\186\000\0005t\000\001\172>\000\000\025\020\000\001\188H\000\000Ud\000\001\172>\000\000\025\020\000\001\188H\000\000V\136\000\000W\172\000\000\255\156\000\0006\152\000\001\172>\000\000\025\020\000\001\188H\000\000X\208\000\001\172>\000\000\025\020\000\001\188H\000\000Y\244\000\000[\024\000\001\000~\000\0007\188\000\001\172>\000\000\025\020\000\001\188H\000\000\\<\000\001\172>\000\000\025\020\000\001\188H\000\000]`\000\000^\132\000\001\001`\000\0008\224\000\001\172>\000\000\025\020\000\001\188H\000\000_\168\000\001\172>\000\000\025\020\000\001\188H\000\000`\204\000\000a\240\000\001\002B\000\000:\004\000\001\172>\000\000\025\020\000\001\188H\000\000c\020\000\001\172>\000\000\025\020\000\001\188H\000\000d8\000\000e\\\000\001\003$\000\000;(\000\001\172>\000\000\025\020\000\001\188H\000\000f\128\000\001\172>\000\000\025\020\000\001\188H\000\000g\164\000\000h\200\000\001\004\006\000\000\000\000\025\020\000\001\188H\000\000i\236\000\001\172>\000\000\025\020\000\001\188H\000\000k\016\000\000l4\000\001\004\232\000\000=p\000\001\172>\000\000\025\020\000\001\188H\000\000mX\000\001\172>\000\000\025\020\000\001\188H\000\000n|\000\000o\160\000\001\005\202\000\000>\148\000\001\172>\000\000\025\020\000\001\188H\000\000p\196\000\001\172>\000\000\025\020\000\001\188H\000\000q\232\000\000s\012\000\001\006\172\000\000?\184\000\001\172>\000\000\025\020\000\001\188H\000\000t0\000\001\172>\000\000\025\020\000\001\188H\000\000uT\000\000vx\000\001\007\142\000\000@\220\000\001\172>\000\000\025\020\000\001\188H\000\000w\156\000\001\172>\000\000\025\020\000\001\188H\000\000x\192\000\000y\228\000\001\bp\000\000B\000\000\001\172>\000\000\025\020\000\001\188H\000\000{\b\000\001\172>\000\000\025\020\000\001\188H\000\000|,\000\000}P\000\001\tR\000\000C$\000\001\172>\000\000\025\020\000\001\188H\000\000~t\000\001\172>\000\000\025\020\000\001\188H\000\000\127\152\000\000\128\188\000\001\n4\000\000DH\000\001\172>\000\000\025\020\000\001\188H\000\000\129\224\000\001\172>\000\000\025\020\000\001\188H\000\000\131\004\000\000\132(\000\001\011\022\000\000\021x\000\000\029\144\000\000\005\004\000\000\029\232\000\000\000\000\000\000\000\000\000\000El\000\001\172>\000\000\025\020\000\001\188H\000\000\133L\000\000\020\134\000\000$X\000\001\172>\000\000\025\020\000\001\188H\000\000\134p\000\000\135\148\000\001\011\248\000\000F\144\000\001\172>\000\000\025\020\000\001\188H\000\000\136\184\000\001\172>\000\000\025\020\000\001\188H\000\000\137\220\000\000\139\000\000\000\025\020\000\001\181\208\000\000\216&\000\000\232\020\000\000\030n\000\001\169x\000\001\171$\000\000j\168\000\000\020*\000\000\000\003\000\000\000\000\000\000\020\246\000\000\000\003\000\000\000\000\000\001\245\250\000\000\021\168\000\000\029\202\000\001\171$\000\000j\168\000\000\022r\000\000\000\003\000\000\000\000\000\000\021P\000\000\000\003\000\000\000\000\000\000v\212\000\000\022\226\000\000\000\003\000\000\000\000\000\000\tz\000\001\171$\000\000j\168\000\000\023H\000\000\000\003\000\000\000\000\000\000\022\020\000\000\000\003\000\000\000\000\000\000\027\180\000\000\000\003\000\000\000\000\000\001\171$\000\000j\168\000\000\023\206\000\000\000\003\000\000\000\000\000\000\022\026\000\000\000\003\000\000\000\000\000\000\000\000\000\000\011\170\000\001\171$\000\000j\168\000\000\024|\000\000\022t\000\001\171$\000\000v\212\000\000\025\020\000\000/\172\000\001\171$\000\000j\168\000\000\025\168\000\000\022\178\000\000\029\242\000\000\243@\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\004\000\000\000\003\000\000\000\000\000\000\220z\000\001\171$\000\000j\168\000\000\025\234\000\000\000\003\000\000\000\000\000\000\0238\000\000\000\003\000\000\000\000\000\001\246n\000\000\021\168\000\000\029\240\000\001\171$\000\000j\168\000\000\026\n\000\000\000\003\000\000\000\000\000\000\023\214\000\000\000\003\000\000\000\000\000\000v\212\000\000\026T\000\000\000\003\000\000\000\000\000\000\n(\000\001\171$\000\000j\168\000\000\026\142\000\000\000\003\000\000\000\000\000\000\028\194\000\000\000\003\000\000\000\000\000\0000\208\000\000\000\003\000\000\000\000\000\001\171$\000\000j\168\000\000\026\194\000\000\000\003\000\000\000\000\000\000\028\206\000\000\000\003\000\000\000\000\000\000\000\000\000\000\030\b\000\000\000\003\000\000\000\000\000\000\216\026\000\001\171$\000\000j\168\000\000\026\230\000\000\000\003\000\000\000\000\000\000\028\240\000\000\000\003\000\000\000\000\000\000\030\024\000\000\000\003\000\000\000\000\000\000w\252\000\000\000\003\000\000\000\000\000\001\204\214\000\000\021\208\000\000\030\136\000\000\029\250\000\001\171$\000\000\018\230\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\000y \000\001$\200\000\000zD\000\000\0022\000\000\000\000\000\000\0022\000\001\170>\000\001\171$\000\000j\168\000\000\026\254\000\000\000\003\000\000\000\000\000\000\029d\000\000\000\003\000\000\000\000\000\001\246\196\000\000\021\168\000\000\0304\000\001\171$\000\000j\168\000\000\028H\000\000\000\003\000\000\000\000\000\000\029\234\000\000\000\003\000\000\000\000\000\000v\212\000\000\028J\000\000\000\003\000\000\000\000\000\000\n\158\000\001\171$\000\000j\168\000\000\029$\000\000\000\003\000\000\000\000\000\000\029\240\000\000\000\003\000\000\000\000\000\0001\244\000\000\000\003\000\000\000\000\000\001\171$\000\000j\168\000\000\029\250\000\000\000\003\000\000\000\000\000\000\030\020\000\000\000\003\000\000\000\000\000\000\000\000\000\000\030\\\000\000\000\003\000\000\000\000\000\000\000\000\000\001\218\214\000\001\218\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\140$\000\001\1750\000\000\223\180\000\000\000\000\000\000\031\012\000\000\006\214\000\001\012\218\000\000G\180\000\001\172>\000\000\025\020\000\001\188H\000\000\141H\000\001\172>\000\000\025\020\000\001\188H\000\000\142l\000\000\143\144\000\000\221\144\000\000\031 \000\000\007\250\000\001\r\188\000\000H\216\000\001\172>\000\000\025\020\000\001\188H\000\000\144\180\000\001\172>\000\000\025\020\000\001\188H\000\000\145\216\000\000\146\252\000\000\221\144\000\000\031F\000\000\t\030\000\001\014\158\000\000I\252\000\001\172>\000\000\025\020\000\001\188H\000\000\148 \000\001\172>\000\000\025\020\000\001\188H\000\000\149D\000\000\150h\000\000i$\000\000\000\003\000\000\031d\000\000\nB\000\001\015\128\000\000K \000\001\172>\000\000\025\020\000\001\188H\000\000\151\140\000\001\172>\000\000\025\020\000\001\188H\000\000\152\176\000\000\153\212\000\000\000\003\000\000\031\142\000\000\011f\000\001\016b\000\000LD\000\001\172>\000\000\025\020\000\001\188H\000\000\154\248\000\001\172>\000\000\025\020\000\001\188H\000\000\156\028\000\000\157@\000\000\000\003\000\000\031\158\000\000\012\138\000\001\017D\000\000Mh\000\001\172>\000\000\025\020\000\001\188H\000\000\158d\000\001\172>\000\000\025\020\000\001\188H\000\000\159\136\000\000\160\172\000\000\016\240\000\000\b\000\000\000\221\144\000\000\031\168\000\000\r\174\000\001\018&\000\000N\140\000\001\172>\000\000\025\020\000\001\188H\000\000\161\208\000\001\172>\000\000\025\020\000\001\188H\000\000\162\244\000\000\164\024\000\000\221\144\000\000\031\172\000\000\014\210\000\001\019\b\000\000O\176\000\001\172>\000\000\025\020\000\001\188H\000\000\165<\000\001\172>\000\000\025\020\000\001\188H\000\000\166`\000\000\167\132\000\000\221\144\000\000\031\176\000\000\015\246\000\001\019\234\000\000P\212\000\001\172>\000\000\025\020\000\001\188H\000\000\168\168\000\001\172>\000\000\025\020\000\001\188H\000\000\169\204\000\000\170\240\000\000\017\026\000\001\020\204\000\000Q\248\000\001\172>\000\000\025\020\000\001\188H\000\000\172\020\000\001\172>\000\000\025\020\000\001\188H\000\000\1738\000\000\174\\\000\000\018>\000\000\023\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\000\000\000\000\000\000\000\003\000\000\030\250\000\000\000\003\000\000\031\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\212\000\000\000\000\000\000\000\003\000\000\031\210\000\000\000\000\000\000\000\003\000\000\031\210\000\000\000\000\000\000\017~\000\000\b\252\000\000\221\144\000\000\031\228\000\000\000\000\000\000\221\144\000\000\031\228\000\000\000\000\000\000\221\144\000\000\031\230\000\000\000\000\000\000\000\000\000\000\020\134\000\000%|\000\001\172>\000\000\025\020\000\001\188H\000\000\175\128\000\000\176\164\000\000\031\254\000\001\021\174\000\000S\028\000\001\172>\000\000\025\020\000\001\188H\000\000\177\200\000\001\022\144\000\000T@\000\001\172>\000\000\025\020\000\001\188H\000\000\178\236\000\001\172>\000\000\025\020\000\001\188H\000\000\180\016\000\000\1814\000\001\172>\000\000\025\020\000\001\188H\000\000\182X\000\001\023r\000\000Ud\000\001\172>\000\000\025\020\000\001\188H\000\000\183|\000\001\172>\000\000\025\020\000\001\188H\000\000\184\160\000\000\185\196\000\000\186\232\000\001\024T\000\000V\136\000\001\172>\000\000\025\020\000\001\188H\000\000\188\012\000\001\172>\000\000\025\020\000\001\188H\000\000\1890\000\000\190T\000\000\000\000\000\000\031\242\000\000\000\000\000\000\221\144\000\000 \004\000\000\000\000\000\000\221\144\000\000 \006\000\000\000\000\000\001\0256\000\000\022l\000\000\031\206\000\000\005\004\000\000 \024\000\000\000\000\000\000\000\000\000\000W\172\000\001\172>\000\000\025\020\000\001\188H\000\000\191x\000\000\020\134\000\000&\160\000\001\172>\000\000\025\020\000\001\188H\000\000\192\156\000\000\193\192\000\000\000\000\000\000{h\000\000\000\003\000\000\000\000\000\000\tl\000\000\000\003\000\000\000\000\000\001\204$\000\000\000\000\000\000\000\000\000\001\193\190\000\000 \026\000\000\000\000\000\000\2326\000\000X\208\000\001\172>\000\000\025\020\000\001\188H\000\000m\234\000\001\026\024\000\000Y\244\000\001\172>\000\000\025\020\000\001\188H\000\000\006\246\000\001\172>\000\000\025\020\000\001\188H\000\000\b\026\000\001\182j\000\000\025\020\000\000nD\000\000\025\020\000\001\175\214\000\001$\200\000\000|\140\000\001\026\250\000\000[\024\000\001\172>\000\000\025\020\000\001\188H\000\000\235\202\000\001\172>\000\000\025\020\000\001\188H\000\001#\130\000\001\176p\000\001$\200\000\000}\176\000\001\027\220\000\000\\<\000\001\172>\000\000\025\020\000\001\188H\000\001#\224\000\001\172>\000\000\025\020\000\001\188H\000\001%\022\000\001\176\190\000\001$\200\000\000~\212\000\001\028\190\000\000]`\000\001\172>\000\000\025\020\000\001\188H\000\001'\252\000\001\172>\000\000\025\020\000\001\188H\000\001(\132\000\001\177\172\000\000kp\000\001\029\160\000\000^\132\000\001\172>\000\000\025\020\000\001\188H\000\001(\172\000\001\172>\000\000\025\020\000\001\188H\000\001)\192\000\001\177\250\000\001\030\130\000\000_\168\000\001\172>\000\000\025\020\000\001\188H\000\000\004\244\000\001\031d\000\000`\204\000\001\172>\000\000\025\020\000\001\188H\000\001,\180\000\001\172>\000\000\025\020\000\001\188H\000\001/\230\000\001\178\232\000\001\172>\000\000\025\020\000\001\188H\000\000\006\024\000\001 F\000\000a\240\000\001\172>\000\000\025\020\000\001\188H\000\0010h\000\001\172>\000\000\025\020\000\001\188H\000\0011h\000\001\1796\000\001\1750\000\001!(\000\000c\020\000\001\172>\000\000\025\020\000\001\188H\000\0012h\000\001\172>\000\000\025\020\000\001\188H\000\0012\158\000\001\180$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\134\000\000\000\000\000\000\000\000\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000q(\000\000\011\022\000\000\000\000\000\000\000\000\000\000\031\\\000\000\000\000\000\001\1750\000\000\011.\000\000\000\000\000\000\233H\000\000d8\000\001\172>\000\000\025\020\000\001\188H\000\000k\162\000\000\006\134\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000o\014\000\000\t\226\000\000\000\000\000\000\000\000\000\000\031P\000\000\000\000\000\001\1750\000\000\011\022\000\000\000\000\000\000\234Z\000\000e\\\000\001\172>\000\000\025\020\000\001\188H\000\000r8\000\000\n@\000\000\000\000\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000q(\000\000\r\172\000\000\000\000\000\000 D\000\000\000\000\000\001\1750\000\000\014\208\000\000\000\000\000\000\003*\000\000\031\198\000\000\000\000\000\000h\200\000\000k\160\000\000\006l\000\000\000\000\000\000\028d\000\000\000\000\000\000\004\208\000\000\020h\000\000\025\194\000\000\000\000\000\000\000\000\000\000 Z\000\000\000\000\000\000\001\204\000\000o\160\000\000\219\242\000\000\000\000\000\000'\196\000\000\000\000\000\000\031\176\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000k\254\000\000\000\000\000\000\027\196\000\0001\158\000\000\000\000\000\000\027\196\000\000.2\000\000\000\000\000\000\027\196\000\0002n\000\000\000\000\000\001\176p\000\000\000\000\000\000\027\196\000\0002\194\000\000\000\000\000\000\027\196\000\000/V\000\000\000\000\000\000\027\196\000\0003\146\000\000\000\000\000\000\003<\000\000\000\003\000\000\000\000\000\000\025\020\000\000mX\000\000\b\240\000\000\000\003\000\000\000\000\000\000\011N\000\000\003\172\000\000\r\240\000\000\b\176\000\000\000Z\000\000 p\000\000\000\000\000\000\007^\000\000mX\000\001\229\168\000\000\027\196\000\000,\186\000\000\030H\000\000mX\000\001\230Z\000\000\bd\000\000mX\000\001\231\012\000\000\031\248\000\000\000\003\000\000\000\000\000\000\007^\000\000\000\000\000\000\031\220\000\000mX\000\001\231\190\000\000\000\000\000\000i\246\000\000\025\020\000\000q\242\000\000\000\000\000\000\020\180\000\000 \142\000\000\000\000\000\000 \144\000\000\029h\000\001\252\224\000\000\011\210\000\000\000\000\000\000\000\000\000\000 t\000\000\031\224\000\001\245\250\000\000\011L\000\001\171$\000\000m\218\000\000\028\166\000\000\000\015\000\000\020\196\000\000\024\234\000\000\000\000\000\000\000\000\000\000o6\000\000 \190\000\000\000\000\000\000k2\000\000\000\000\000\000\000\000\000\001-h\000\001\194\134\000\001\219\136\000\000 \210\000\001-h\000\001-h\000\001\194\134\000\001\220:\000\001\194\134\000\001\220\236\000\000\000\000\000\001\194h\000\001\221\158\000\001\252\250\000\001\242\228\000\000\001~\000\001*x\000\000\n*\000\000\127\166\000\001-\030\000\000\r\154\000\001\252\224\000\000 \152\000\001-h\000\001\222X\000\001\195B\000\000 \160\000\001-h\000\001\223\018\000\001\196\000\000\000\rL\000\000 \\\000\000\000\003\000\000\000\000\000\000\000\000\000\000\025\020\000\001\181\030\000\000\000\000\000\001\181\208\000\001\218\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \222\000\000\000\000\000\000\000\000\000\000\001~\000\000 \176\000\000\243@\000\000\000\000\000\000\020\134\000\000(\232\000\001\172>\000\000\025\020\000\001\188H\000\000\194\228\000\000\196\b\000\001\172>\000\000\025\020\000\001\188H\000\000\197,\000\000\198P\000\000\000\000\000\000!\016\000\001\188H\000\000\199t\000\000\000\000\000\000!\024\000\001\"\n\000\000f\128\000\001\172>\000\000\025\020\000\001\188H\000\000\200\152\000\001\172>\000\000\025\020\000\001\188H\000\000\201\188\000\000\202\224\000\000 \196\000\000\000\003\000\000\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\156\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000\005\228\000\000\000\000\000\001\176p\000\000\000\000\000\000\019b\000\000 \244\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000\003\156\000\001\172>\000\000\025\020\000\001\188H\000\000\003\238\000\001\223\150\000\000\000\000\000\0005t\000\000 \246\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000s\170\000\001\172>\000\000\025\020\000\001\188H\000\000t\206\000\001\176p\000\000\0238\000\000\030\162\000\000\000\000\000\000\000\000\000\000 z\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000r8\000\000\015\190\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000q(\000\000\016\022\000\000\000\000\000\000!\012\000\000\000\000\000\001\1750\000\000\016\226\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000k\162\000\000\012R\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000o\014\000\000\r^\000\000\000\000\000\000\000\000\000\000 2\000\000\000\000\000\001\1750\000\000\rv\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000m\234\000\000\012R\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000q(\000\000\rv\000\000\000\000\000\000\000\000\000\000 F\000\000\000\000\000\001\1750\000\000\014\154\000\000\000\000\000\000\000\000\000\000\216\250\000\000\025\020\000\000mX\000\000\012r\000\000\000\000\000\000\027\196\000\0003\230\000\000\000\000\000\000\016:\000\000\000\000\000\001\171$\000\000lD\000\000\011\014\000\000\000\000\000\000\019J\000\000\000\000\000\001\171$\000\000\215\b\000\000\rV\000\000\000\000\000\000\016\228\000\000\000\000\000\001\171$\000\000lD\000\000\014z\000\000\000\000\000\000\019\162\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000\204\004\000\000\213\"\000\000\000\000\000\000\224h\000\000\216\250\000\000\025\020\000\000mX\000\001\2376\000\000\000\000\000\000\025\020\000\000mX\000\001\2376\000\000\000\000\000\000j\022\000\000\011N\000\000\003\000\000\000\001~\000\001\239\250\000\000\027\196\000\001\235@\000\001\218\214\000\000\000\000\000\000\003\172\000\000\r\240\000\000\r\240\000\000\007^\000\001\218\214\000\001\242\248\000\000\003\172\000\000\r\240\000\000\007^\000\001\218\214\000\001\242\248\000\000\000\000\000\000\000\000\000\000\007^\000\001\218\214\000\000\000\000\000\000\235B\000\000\213\"\000\001$\200\000\000\212R\000\000\000\003\000\000\000\000\000\000\235B\000\000\213\"\000\000 \216\000\000 |\000\000\n*\000\001\237\214\000\001%N\000\000\000\000\000\000\000\240\000\000\0005\000\000\0022\000\000 T\000\001\245\250\000\000\014\190\000\001\171$\000\000\026F\000\000 \132\000\000!@\000\001\240\154\000\000\000\000\000\001\218\214\000\000\000\000\000\000i\246\000\000\025\020\000\000q\242\000\001\232p\000\000t\238\000\000\022\252\000\000\002J\000\000\022\180\000\000\028\\\000\000\025\020\000\001\218\214\000\000\000\000\000\000\025\020\000\001\218\214\000\000\000\000\000\001\171$\000\000\000\000\000\000\017f\000\000\026\026\000\000\026\026\000\000\024\214\000\000\015\144\000\000\000\000\000\000\001\224\000\000\212\174\000\000\000\000\000\000\0242\000\000\000\000\000\000\212\174\000\000\000\000\000\000 \250\000\000 \146\000\000\220H\000\000\025\020\000\000j\000\000\001\171$\000\000\019\198\000\000\000\000\000\000p\216\000\000\rL\000\000\020\242\000\000\016\024\000\000\000\000\000\000\023\140\000\000\000\000\000\000!\014\000\000 z\000\001\171$\000\000\223\180\000\000\000\000\000\000\025\020\000\000\0290\000\000\024J\000\000\000\000\000\000\024^\000\000\000\000\000\000!\018\000\000 \148\000\001\245\250\000\000\217\214\000\000\000\000\000\000\025\020\000\000\220H\000\000!Z\000\000\018~\000\000\000*\000\000\000\003\000\000\018\240\000\000\220H\000\001\171$\000\000\024\186\000\000\006^\000\000\000\000\000\001\171$\000\000\023\230\000\000\027@\000\000\000\000\000\000\000\000\000\001\223\248\000\000\000\000\000\000\000\003\000\000\022\140\000\000\220H\000\001\224\180\000\000\223\180\000\000\000\000\000\000\025\020\000\001\171$\000\000\030\144\000\001\171$\000\000\028\\\000\000\217\214\000\000\000\000\000\000 \210\000\000\000\000\000\000\217\214\000\000\000\000\000\000\000\000\000\000p\216\000\000\000\000\000\001\2376\000\001\243\146\000\000\024\214\000\000\015\144\000\000\001\224\000\000!D\000\000 \232\000\000\220H\000\001\2376\000\001\243\146\000\000\000\000\000\000\000\000\000\000\024\214\000\000\015\144\000\000\001\224\000\000!X\000\001\183\016\000\000\213\166\000\000\025\020\000\000\235(\000\000\213D\000\000\025z\000\000\rL\000\000\026\000\000\000\000\000\000\000!j\000\000\017\b\000\000\000\003\000\000\000\000\000\000!\006\000\000\000\003\000\000\000\000\000\000\223\180\000\000\000\000\000\000\022\022\000\000\026\206\000\000\000\000\000\000\027\180\000\000\000\000\000\000!v\000\000!\002\000\001\171$\000\000\222\162\000\000!\154\000\000\017^\000\000\000\003\000\000\000\000\000\000!<\000\000\000\003\000\000\000\000\000\000\025\152\000\000\019J\000\000\027\202\000\000\000\000\000\000!\170\000\001\183\194\000\001\2478\000\000\021\168\000\000!.\000\001\171$\000\000\031\014\000\000\000\003\000\000\000\000\000\000!L\000\000\000\003\000\000\000\000\000\000\000\000\000\000\223\180\000\000\000\000\000\000\029@\000\000\028H\000\000\000\000\000\000\030>\000\000\000\000\000\000!\188\000\000!*\000\001\245\250\000\000\000\000\000\000!\198\000\001\184t\000\001\247\142\000\000\021\168\000\000!H\000\001\171$\000\000\031\020\000\000\000\003\000\000\000\000\000\000!f\000\000\000\003\000\000\000\000\000\000\000\000\000\000\025\020\000\000\000\003\000\000\223\180\000\000\000\000\000\000\025|\000\000\025\020\000\000\213\166\000\000\213\166\000\001\167~\000\000\235B\000\000\025\020\000\001\181\030\000\001\181\208\000\000\007\162\000\000\000\000\000\000\019\162\000\000\000*\000\000\000\003\000\000\022\180\000\000\213\166\000\001\171$\000\000\028V\000\000\006l\000\000\000\000\000\000\025\020\000\001\183\016\000\001\183\016\000\000\213\166\000\000\024:\000\000\213\166\000\000\000\000\000\000\217B\000\000\218V\000\000\000\000\000\001\205j\000\000\000\000\000\000\000\000\000\001\206&\000\000\000\000\000\000\000\000\000\001\206\226\000\000\000\003\000\000\023\216\000\000\213\166\000\001\207\158\000\001\181\030\000\001\181\208\000\000\007\162\000\000\000\000\000\000\017>\000\000\000\000\000\001\174\174\000\001\217\166\000\001-h\000\000!\232\000\001\174\174\000\001\241\234\000\000\027@\000\000!\234\000\001\174\174\000\001-h\000\000!\236\000\001\174\174\000\000\029\194\000\000q\232\000\001\225H\000\001\226|\000\000\000\000\000\001\241.\000\000\000\000\000\000\000\000\000\000\",\000\000\000\000\000\000\027@\000\000!\238\000\000\000\000\000\000\223\180\000\000\000\000\000\000\213\166\000\000\027@\000\000\223\180\000\000\000\000\000\000\025\020\000\001\171$\000\000\223\180\000\000\000\000\000\000!\130\000\000\000\000\000\000\223\180\000\000\000\000\000\000\000\000\000\000\213D\000\000\000\000\000\001\238\014\000\001\174\174\000\000!\138\000\000\213\166\000\001\238\174\000\001\183\016\000\000\000\000\000\001\218\214\000\001\243\178\000\000\024\214\000\000\015\144\000\000\001\224\000\000!\248\000\001\183\016\000\001\218\214\000\001\243\178\000\000\000\000\000\000\000\000\000\000\000\000\000\001\251j\000\000\224\198\000\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\241\180\000\000\000\000\000\001\218\214\000\000\000\000\000\000\216\250\000\000\025\020\000\000mX\000\001\2376\000\000\000\000\000\001\244L\000\000\025\000\000\000\216\172\000\000!\252\000\001\228\028\000\001\234\160\000\000\000\000\000\001\2376\000\001\244L\000\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\218\214\000\001\251j\000\000\000\000\000\000\000\000\000\000\000\000\000\001\241\180\000\000\"H\000\000\000\000\000\000\"L\000\000\000\000\000\001\218\214\000\001\251j\000\000\000\000\000\000\000\000\000\000\"P\000\000\000\000\000\000\000\000\000\000\"D\000\000\221\006\000\000q\242\000\000q\242\000\001\227\028\000\000t\238\000\000\025\020\000\000\000\000\000\000\025\020\000\000\000\000\000\001\218\214\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\228\188\000\000t\238\000\000\025\020\000\000\000\000\000\000\025\020\000\000\000\000\000\000\021b\000\001\228\028\000\001\234\160\000\000\000\000\000\001\2376\000\000\000\000\000\000\"L\000\000\221\006\000\000q\242\000\001\218\214\000\000\000\000\000\000!\176\000\000\000\000\000\001\208>\000\0004\182\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\001\249\188\000\000!\166\000\001\196\174\000\000\022\156\000\000\"4\000\000!\160\000\001\171$\000\000\021\146\000\000\000\000\000\000\000\000\000\001$\200\000\000\000\000\000\000\000\000\000\001\249\250\000\000m\134\000\000\000\000\000\001\171$\000\000\022\182\000\000\000\000\000\000\213D\000\000!\222\000\000\000\000\000\001\172>\000\000\025\020\000\001\188H\000\000\205(\000\000\020\134\000\000*\012\000\001\172>\000\000\025\020\000\001\188H\000\000\206L\000\000\207p\000\000!\210\000\001\"\236\000\000\026\n\000\000\"f\000\000\005\004\000\000\"\170\000\000\000\000\000\000\000\000\000\000g\164\000\001\172>\000\000\025\020\000\001\188H\000\000\208\148\000\000\020\134\000\000+0\000\001\172>\000\000\025\020\000\001\188H\000\000\209\184\000\000\210\220\000\000\"\226\000\001\188H\000\000\212\000\000\000\000\000\000\000\"\186\000\000\000\000\000\000\018\154\000\001\171$\000\000\024\022\000\000\025\248\000\001\171$\000\001N\250\000\001\135\250\000\000\000\000\000\00110\000\001O\250\000\001\136\250\000\000\"\156\000\001\171$\000\001P\250\000\001\137\250\000\000\000\000\000\00110\000\001Q\250\000\001\138\250\000\001\241\234\000\000\011\210\000\000\"\208\000\000\000\000\000\000\011\210\000\000\"\214\000\000\000\000\000\000\000\000\000\001\225\232\000\001\227\028\000\001\235\216\000\000q\242\000\000\000\000\000\000\000\000\000\000\000\000\000\001\236x\000\000\000\000\000\001\227\028\000\000\011\210\000\000\"\248\000\000\000\000\000\000\011\210\000\000\"\250\000\000\000\000\000\000\000\000\000\000\000\000\000\001\233\b\000\000\221>\000\000\215\022\000\000\011\210\000\000#\006\000\000\000\000\000\000\011\210\000\000#\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\210\000\000#\014\000\000\000\000\000\000\011\210\000\000#\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\227\204\000\000\000\000\000\001\219 \000\000\000\000\000\000#\014\000\000\221\006\000\000s\022\000\001\2376\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\134\000\001\228\028\000\001\242f\000\001\227\204\000\000\000\000\000\001\219 \000\000\000\000\000\000#\018\000\000\221\006\000\000s\022\000\001\2376\000\000\000\000\000\001((\000\000\030\174\000\000\011N\000\000\000*\000\000\0010\000\001\218\214\000\000\000\000\000\000\000*\000\000\0010\000\001\218\214\000\000\000\000\000\000m\130\000\000\011N\000\000\003\000\000\000\001~\000\000\233H\000\000\027\196\000\001\2376\000\000\000\000\000\000\003\172\000\000\015\020\000\000\028\204\000\000\0010\000\001\218\214\000\000\000\000\000\000\b\176\000\000\"T\000\000\027\196\000\001\184t\000\001\218\214\000\001\251\130\000\000\000*\000\000\b\176\000\000\"V\000\000\027\196\000\001\184t\000\001\218\214\000\001\251\130\000\000\000\000\000\000\000\000\000\000\b\176\000\000\026F\000\000#6\000\000\000\000\000\000\018\198\000\000\000\003\000\001\1680\000\001\218\214\000\000\000\000\000\000\027\196\000\001\171$\000\000\000\000\000\001\218\214\000\000\000\000\000\000\027\000\000\000\027\196\000\001\187\180\000\001\250\208\000\001\244\236\000\000\000\000\000\000\027\000\000\000\000\000\000\000\000\000\000\000i\246\000\000\025\020\000\000q\242\000\000\226\186\000\000\026\026\000\000\024\214\000\000\015\144\000\000\001\224\000\000\"\254\000\000\"j\000\001\174\174\000\001\218\214\000\001\251\192\000\000\024\214\000\000\015\144\000\000\001\224\000\000#\002\000\000\"x\000\001\174\174\000\001\218\214\000\001\251\192\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\001\218\214\000\000\000\000\000\000\219\030\000\000\025\020\000\000\027\196\000\001\2376\000\001\1680\000\000\000\000\000\001\244L\000\000\000\000\000\001\251\254\000\000\025\000\000\000\216\172\000\000#\018\000\000\027t\000\000\"\132\000\001\227\204\000\000\000\000\000\001\219 \000\001\251\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\0005\n\000\000\000\000\000\000\028\132\000\001\245\250\000\000\019\204\000\000\015\160\000\000\025\020\000\001\192\148\000\000\000\000\000\000\000\000\000\000t\136\000\001\195\192\000\000\000\000\000\000\000\000\000\000\"\196\000\000\000\000\000\000\t\198\000\000\020l\000\001\171$\000\000\025|\000\000\029,\000\001\171$\000\001R\250\000\001\139\250\000\000\000\000\000\00110\000\001S\250\000\001\140\250\000\000#*\000\001\171$\000\001T\250\000\001\141\250\000\000\000\000\000\00110\000\001U\250\000\001\142\250\000\000\029\244\000\001\171$\000\001V\250\000\001\143\250\000\000\000\000\000\00110\000\001W\250\000\001\144\250\000\000#.\000\001\171$\000\001X\250\000\001\145\250\000\000\000\000\000\00110\000\001Y\250\000\001\146\250\000\00160\000\001\236\246\000\000\021\144\000\001\171$\000\000\025\140\000\000\030\180\000\001\171$\000\001Z\250\000\001\147\250\000\000\000\000\000\00110\000\001[\250\000\001\148\250\000\000#<\000\001\171$\000\001\\\250\000\001\149\250\000\000\000\000\000\00110\000\001]\250\000\001\150\250\000\000\031\n\000\001\171$\000\001^\250\000\001\151\250\000\000\000\000\000\00110\000\001_\250\000\001\152\250\000\000#@\000\001\171$\000\001`\250\000\001\153\250\000\000\000\000\000\00110\000\001a\250\000\001\154\250\000\000v\208\000\00120\000\000\000Z\000\001\171$\000\001b\250\000\001\155\250\000\000\000\000\000\00110\000\001c\250\000\001\156\250\000\000#D\000\001\171$\000\001d\250\000\001\157\250\000\000\000\000\000\00110\000\001e\250\000\001\158\250\000\000\127\240\000\00120\000\001/\250\000\001\171$\000\001f\250\000\001\159\250\000\000\000\000\000\00110\000\001g\250\000\001\160\250\000\000#H\000\001\171$\000\001h\250\000\001\161\250\000\000\000\000\000\00110\000\001i\250\000\001\162\250\000\001\185\b\000\000\000\000\000\000\000\000\000\001\197B\000\000s`\000\000\000\000\000\000\011p\000\000\128\202\000\000\000\000\000\001\250\226\000\0017L\000\000\n*\000\000\129\n\000\000\001~\000\001.t\000\000\n*\000\000\129\162\000\000\015z\000\000\001~\000\001*x\000\001\185\b\000\001\218\214\000\000\000\000\000\000#\128\000\000\000\000\000\000\000\003\000\000\"\190\000\000\000\003\000\000\"\212\000\000\000\000\000\000\"\234\000\000\000\000\000\000\000\000\000\001$N\000\000\"\236\000\000\000\000\000\000\000\000\000\000r\166\000\001\185\182\000\000#\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\144\000\000\021\146\000\001\197\144\000\000#\196\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000#\028\000\000\000\000\000\000t\238\000\000\000\000\000\000#\030\000\000\000\000\000\001\171$\000\000\000\000\000\000\012>\000\000\000\000\000\000\000\003\000\000#,\000\000\000\000\000\000\000\000\000\000\0010\000\000\000\000\000\000\006\194\000\000\000\000\000\000\000\003\000\000\000\000\000\000\rP\000\000\000\000\000\000mX\000\000\000\000\000\000\001\n\000\000\000\000\000\000\027\196\000\000\000\000\000\000\t\246\000\000\000\000\000\000\018\170\000\000\000\000\000\000#2\000\000\000\000\000\001$\200\000\000s:\000\000\000\000\000\000\000\000\000\000\022\182\000\000#D\000\000\000\000\000\000\000\000\000\000#8\000\000\023\218\000\000\2144\000\000\001~\000\001\233\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\186:\000\000\001~\000\001\234$\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\222D\000\000\000\000\000\000\000\000\000\000$\004\000\000\000\000\000\001\181\208\000\000\000\000\000\000\027\244\000\000$&\000\000\000\000\000\000$(\000\000\000\000\000\000\215F\000\000\215F\000\001\252R\000\001\252R\000\000\000\000\000\000\000\000\000\001\218\214\000\001\252R\000\000\000\000\000\000\000\000\000\000\000\000\000\001\218\214\000\001\252R\000\000#\128\000\000\000\000\000\000#\132\000\000\000\000"), (16, "\0051\000\006\0051\001f\0051\003\194\003\198\003\202\0051\003\206\003\170\0051\003\218\0051\007\209\b\150\0051\t\134\007\209\0051\0051\0051\001n\0051\0051\0051\001\234\007\209\007\209\007\209\b\158\0051\012\182\012\186\020n\012\190\0051\n\141\0051\012\202\001b\b\162\000\242\t\138\005\153\0051\0051\0051\012\206\012\210\0051\012\214\t\182\012\226\012\230\r\174\015V\004\"\0051\0051\003\186\000\242\005\186\t\190\t\198\0051\0051\0051\t\206\t\214\t\230\017\002\017\210\001r\0051\t\238\0051\0051\0051\0051\0051\0051\0051\0051\0051\018\n\0051\t\242\t\246\000\242\t\250\n\002\00514\194\0051\0051\0051\016\138\001^\018\022\018r\018\178\n\006\n\n\0051\018\198\0051\0051\016\146\0051\0051\0051\0051\n\014\001v\n\018\001\134\016\150%\230\0051\021e\0051\0051\004:\0051\0051\0051\0051\0051\0051\0051\n\150\016\246\0051\0051\0051\017\014\007\214\0051\0051\018\202\021e\0051\0051\0051\0051\021\149\003&\021\149\019\198\021\149\0066\021\149\021\149\021\149\000\n\021\149\021\149\021\149\021\149\001\230\021\149\021\149\003*\011q\021\149\021\149\021\149\011q\021\149\021\149\021\149\021\149\002\137\021\149\002\137\021\149\021\149\021\149\021\149\021\149\n\149\021\149\021\149\021\149\004v\017f\021\149\002\137\021\149\001~\021\149\021\149\021\149\021\149\021\149\021\149\000\242\021\149\001\242\021\149\000\242\021\149\012\234\021\149\021\149\021\149\004\018\024\146\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\001\130\021\149\005\002\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\002\017\021\149\021\149\021\149\021\149\021\149\021\149\021\149\011\153\021\149\021\149\021\1496\127\005\n\004\174\001\246\021\149\021\149\021\149\021\149\nV\021\149\021\149\006:\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\017\170\021\149\021\149\001b\021\149\021\149\005\153\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\021\149\001b\005\153\021\149\021\149\021\149\021\149\002\017\002\017\002\017\002\169\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017)N\005\"\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\018\146\002\017\002\017\002\017\002\017\002\017\bR\002\017\002\017\002\017\004v\002\017\002\017\001\006\002\017\001\190\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017#\014\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\005\002\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\001\142\002\017\002\017\002\017\003\222\005\n/\158\007\209\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\n\254\017.\002\017)\n\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\002\017\016q\007\209\016q\007\214\016q\014\177\016q\016q\016q\t6\016q\016q\016q\016q\000\242\016q\016q\006\002\006n\016q\016q\016q\t\218\016q\016q\016q\016q\004\"\016q\017f\016q\016q\016q\016q\016q\n\157\016q\016q\016q\007\209\007\209\016q\006\n\016q\000\242\016q\016q\016q\016q\016q\016q\000\242\016q\011U\016q\007\209\016q\011U\016q\016q\016q#\146&\134\016q\016q\016q\016q\016q\016q\016q\016q\001\146\016q\005\002\016q\016q\016q\016q\016q\016q\016q\016q\016q\016q\016q\007\209\016q\016q\016q\016q\016q\016q\016q\004b\016q\016q\016q\004\"\005\n\011\157\000\242\016q\016q\016q\016q\005>\016q\016q\014\177\016q\016q\016q\016q\016q\017\234\016q\018b\t:\018j\016q%\246\016q\016q\001\186\016q\016q\016q\016q\016q\016q\016q\016q\016q\016q\016q\016q\016q\016q\016q\016q\011U\016q\016q\016q\016q\016q\006\t\0032\006\t\r\002\006\t\000\242\006\t\006\t\006\t\t\213\006\t\006\t\006\t\006\t\r2\006\t\006\t\004\194\007\002\006\t\006\t\006\t\003J\006\t\006\t\006\t\006\t\b\130\006\t\b\146\006\t\006\t\006\t\006\t\006\t\bF\006\t\006\t\006\t\011\157\t\213\006\t\t\213\006\t\018&\006\t\006\t\006\t\006\t\006\t\006\t\001\202\006\t\011Y\006\t\r2\006\t\011Y\006\t\006\t\006\t\rV\030&\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\004v\006\t\005\002\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\001\206\017\218\006\t\006\t\017\226\006\t\006\t\018Z\012~\006\t\006\t\006\t\b9\005\n\001\210\rR\006\t\006\t\006\t\006\t\001\198\006\t\006\t\bJ\006\t\006\t\006\t\006\t\006\t\017\234\006\t\018b\011\158\018j\006\t\004*\006\t\006\t\012\137\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\006\t\t\222\006\t\006\t\006\t\006\t\006\t\005\249\007\238\005\249\004\138\005\249\004\"\005\249\005\249\005\249\014\182\005\249\005\249\005\249\005\249\001\230\005\249\005\249\030*\rf\005\249\005\249\005\249\002\002\005\249\005\249\005\249\005\249\006v\005\249\r\002\005\249\005\249\005\249\005\249\005\249\017\238\005\249\005\249\005\249\003\230\r2\005\249\bb\005\249\002\006\005\249\005\249\005\249\005\249\005\249\005\249\031v\005\249\031\130\005\249\014\186\005\249\014\222\005\249\005\249\005\249\003\146\030&\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\004.\005\249\000\242\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\0026\017\218\005\249\005\249\017\226\005\249\005\249\018Z\001\230\005\249\005\249\005\249\012\141\003f\012\130\003\202\005\249\005\249\005\249\005\249\014\165\005\249\005\249 &\005\249\005\249\005\249\005\249\005\249\017\234\005\249\018b\b=\018j\005\249&\n\005\249\005\249\004\138\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\005\249\004\026\005\249\005\249\005\249\005\249\005\249\016\r\t\150\016\r\018&\016\r\000\242\016\r\016\r\016\r\002~\016\r\016\r\016\r\016\r\r2\016\r\016\r\030*\001\145\016\r\016\r\016\r\005\186\016\r\016\r\016\r\016\r\007\190\016\r\018&\016\r\016\r\016\r\016\r\016\r\019R\016\r\016\r\016\r\001\145\r2\016\r\004\"\016\r\b\242\016\r\016\r\016\r\016\r\016\r\016\r\028\014\016\r\028F\016\r\003j\016\r\027\226\016\r\016\r\016\r R\014\165\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r\b\254\016\r\011Y\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r!\238\016\r\016\r\016\r\016\r\016\r\016\r\016\r\"F\016\r\016\r\016\r\015\198\005B6_\002\222\016\r\016\r\016\r\016\r\004\170\016\r\016\r\004.\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r\001\145\016\r\016\r\015\166\016\r\016\r\015\202\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r\016\r\r\002\001\145\016\r\016\r\016\r\016\r\016\029\011Y\016\029\001\145\016\029\r2\016\029\016\029\016\029\017\130\016\029\016\029\016\029\016\029\t\222\016\029\016\029\005\002\001\141\016\029\016\029\016\029\t~\016\029\016\029\016\029\016\029\002\238\016\029#\206\016\029\016\029\016\029\016\029\016\029\015\202\016\029\016\029\016\029\001\141\007\233\016\029\005\n\016\029\004v\016\029\016\029\016\029\016\029\016\029\016\029#\214\016\029\015\218\016\029\0292\016\029\028\026\016\029\016\029\016\029\004v\004\214\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\029j\016\029\029\162\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\015\234\016\029\016\029\016\029\016\029\016\029\016\029\016\029\005Z\016\029\016\029\016\029\t*\t.\007\233\016f\016\029\016\029\016\029\016\029\015\242\016\029\016\029\015\"\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\001\141\016\029\016\029\000\242\016\029\016\029\003\226\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\016\029\018&\001\141\016\029\016\029\016\029\016\029\016\021\003z\016\021\001\141\016\021\r2\016\021\016\021\016\021\t\213\016\021\016\021\016\021\016\021#\238\016\021\016\021\001\230\015\222\016\021\016\021\016\021\003\130\016\021\016\021\016\021\016\021\004\"\016\021\017f\016\021\016\021\016\021\016\021\016\021\030r\016\021\016\021\016\021\004v\t\213\016\021\t\213\016\021\000\242\016\021\016\021\016\021\016\021\016\021\016\021\030~\016\021\030\138\016\021\016\026\016\021\028R\016\021\016\021\016\021#\166\0042\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\006z\016\021\005\002\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\004z\016\021\016\021\016\021\016\021\016\021\016\021\016\021\nv\016\021\016\021\016\021\005\014\005\n\006\014 &\016\021\016\021\016\021\016\021\014\189\016\021\016\021\015\218\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\014\242\016\021\016\021\006\030\016\021\016\021\031\238\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\016\021\002\026\001\242\016\021\016\021\016\021\016\021\016\001 &\016\001\005\022\016\001\000\242\016\001\016\001\016\001\016f\016\001\016\001\016\001\016\001\005\002\016\001\016\001\004v\025\n\016\001\016\001\016\001\"\150\016\001\016\001\016\001\016\001\004\"\016\001\000\242\016\001\016\001\016\001\016\001\016\001\031\246\016\001\016\001\016\001\005\n\002\030\016\001\001\246\016\001\005\218\016\001\016\001\016\001\016\001\016\001\016\001\007\n\016\001 R\016\001\006\186\016\001\028\142\016\001\016\001\016\001\002\"\014\189\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\0016\143\016\001\005\002\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\"^\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016>\016\001\016\001\016\001\000\242\005\n\006\018 R\016\001\016\001\016\001\016\001\026\022\016\001\016\001 &\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\b\202\016\001\016\001 &\016\001\016\001'\158\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\016\001\002\137\002\137\016\001\016\001\016\001\016\001\016\t\004v\016\t\004\138\016\t\002R\016\t\016\t\016\t\006&\016\t\016\t\016\t\016\t\005\002\016\t\016\t\000\242\027V\016\t\016\t\016\t\000\n\016\t\016\t\016\t\016\t\b\186\016\t/\030\016\t\016\t\016\t\016\t\016\t\t\006\016\t\016\t\016\t\005\n\002\137\016\t\002\137\016\t\005v\016\t\016\t\016\t\016\t\016\t\016\t\002z\016\t\b\230\016\t\002\137\016\t\028\198\016\t\016\t\016\t R\t\018\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\006\154\016\t R\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\"\014\016\t\016\t\016\t\016\t\016\t\016\t\016\t\"v\016\t\016\t\016\t\"&$F\000\242\001\230\016\t\016\t\016\t\016\t$^\016\t\016\t\t\177\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\0042\016\t\016\t &\016\t\016\t\006\218\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\016\t\011\145\011!\016\t\016\t\016\t\016\t\016\005\004\018\016\005\002\154\016\005$J\016\005\016\005\016\005'z\016\005\016\005\016\005\016\005\025^\016\005\016\005\025n\004>\016\005\016\005\016\005\000\242\016\005\016\005\016\005\016\005\004v\016\005\000\242\016\005\016\005\016\005\016\005\016\005\007.\016\005\016\005\016\005\005\166\017f\016\005\b\214\016\005\b\234\016\005\016\005\016\005\016\005\016\005\016\005\0042\016\005\n\202\016\005\000\242\016\005\028\254\016\005\016\005\016\005\007\234\016\014\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\0056?\016\005 R\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\005\b&\016\005\016\005\016\005\016\005\016\005\016\005\016\005\001\230\016\005\016\005\016\005'2\004\018\000\242\007\209\016\005\016\005\016\005\016\005&\234\016\005\016\005 &\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\005'~\016\005\016\005 &\016\005\016\005'\182\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\005\016\005\tn\007\209\016\005\016\005\016\005\016\005\016\017 &\016\017\004\138\016\017\007\209\016\017\016\017\016\017\005\186\016\017\016\017\016\017\016\017\007\206\016\017\016\017\005\002\000\242\016\017\016\017\016\017\"\178\016\017\016\017\016\017\016\017\007\238\016\017\007n\016\017\016\017\016\017\016\017\016\017\007\209\016\017\016\017\016\017\t*\t.\016\017\005\n\016\017\b.\016\017\016\017\016\017\016\017\016\017\016\017\014\213\016\017\011N\016\017(F\016\017\029>\016\017\016\017\016\017 R6o\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\146\016\017 R\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017#\186\016\017\016\017\016\017\016\017\016\017\016\017\016\017'\002\016\017\016\017\016\017'J\007\014\000\242 R\016\017\016\017\016\017\016\017'\026\016\017\016\017$\234\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017\t\162\016\017\016\017 &\016\017\016\017'\206\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017\016\017\t*\t.\016\017\016\017\016\017\016\017\016! &\016!\004\138\016!\b6\016!\016!\016!\015\154\016!\016!\016!\016!\bv\016!\016!\005\002\t\166\016!\016!\016!\"\198\016!\016!\016!\016!\n\186\016!\n\206\016!\016!\016!\016!\016!\bz\016!\016!\016!\t*1\190\016!\005\n\016!\004v\016!\016!\016!\016!\016!\016!\011>\016!\011R\016!1\206\016!\029v\016!\016!\016!\b>\b\134\016!\016!\016!\016!\016!\016!\016!\016!\b\142\016! R\016!\016!\016!\016!\016!\016!\016!\016!\016!\016!\016!2\n\016!\016!\016!\016!\016!\016!\016!\001\230\016!\016!\016!'b)F\b\190 R\016!\016!\016!\016!\014\201\016!\016!(\206\016!\016!\016!\016!\016!\016!\016!\016!\007\238\016!\016! &\016!\016!3j\016!\016!\016!\016!\016!\016!\016!\016!\016!\016!\016!\016!\016!\016!\016!\016!\nj&\166\016!\016!\016!\016!\016\025\007N\016\025\021\201\016\025\000\242\016\025\016\025\016\025\016&\016\025\016\025\016\025\016\025\011\165\016\025\016\025\021\201 &\016\025\016\025\016\025\011y\016\025\016\025\016\025\016\025\007\238\016\025\016~\016\025\016\025\016\025\016\025\016\025\b\194\016\025\016\025\016\025&\190\004\138\016\025\011\134\016\025\011\154\016\025\016\025\016\025\016\025\016\025\016\025\0042\016\025\be\016\025'\142\016\025\029\174\016\025\016\025\016\025)\150\014\201\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025\t\197\016\025 R\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025\b\206\016\025\016\025\016\025\016\025\016\025\016\025\016\025\004v\016\025\016\025\016\025\011\230\nj\011\250\011\165\016\025\016\025\016\025\016\025\011\246\016\025\016\025\r\170\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025 R\016\025\016\025 &\016\025\016\025\b\218\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025\016\025'\190&\210\016\025\016\025\016\025\016\025\016Y\r\n\016Y\r\026\016Y\000\242\016Y\016Y\016Y\012\022\016Y\016Y\016Y\016Y'\146\016Y\016Y'\170\012\134\016Y\016Y\016Y\011\025\016Y\016Y\016Y\016Y\rN\016Y\r\154\016Y\016Y\016Y\016Y\016Y\b\222\016Y\016Y\016Y,\178\000\242\016Y\r\162\016Y%N\016Y\016Y\016Y\016Y\016Y\016Y\r\182\016Y\014B\016Y\000\242\016Y\029\222\016Y\016Y\016Y\012\161\r\198\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\tB\016Y R\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\000\242\016Y\016Y\016Y\016Y\016Y\016Y\016Y\029.\016Y\016Y\016Y\t\158*\234'\194\021=\016Y\016Y\016Y\016Y\000\242\016Y\016Y\000\242\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\003\230\016Y\016Y\bb\016Y\016Y\tF\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\016Y\r\226+2\016Y\016Y\016Y\016Y\005\245,\182\005\245\r\210\005\245\r\230\005\245\005\245\005\245\014*\005\245\005\245\005\245\005\245\003\230\005\245\005\245\bb\030n\005\245\005\245\005\245\t\158\005\245\005\245\005\245\005\245\014\026\005\245\014.\005\245\005\245\005\245\005\245\005\245\nB\005\245\005\245\005\245\007\209\000\242\005\245\014N\005\245\014b\005\245\005\245\005\245\005\245\005\245\005\245\014^\005\245\014\150\005\245\000\242\005\245\021=\005\245\005\245\005\245\002\206\003:\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\012\149\005\245\005\002\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\n\138\017\218\005\245\005\245\017\226\005\245\005\245\018Z\016B\005\245\005\245\005\245\000\242\005\n\000\242\0219\005\245\005\245\005\245\005\245\026\198\005\245\005\245\001\246\005\245\005\245\005\245\005\245\005\245\017\234\005\245\018b\000\242\018j\005\245\015\166\005\245\005\245\n\178\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\005\245\001\246\005\245\005\245\005\245\005\245\005\245\015\225\014\134\015\225\014\154\015\225\000\242\015\225\015\225\015\225'\166\015\225\015\225\015\225\015\225\011\169\015\225\015\225\007\2090\n\015\225\015\225\015\225)\242\015\225\015\225\015\225\015\225)\254\015\2252\030\015\225\015\225\015\225\015\225\015\225\n\190\015\225\015\225\015\225\007\209\004\138\015\225\007\209\015\225\n\194\015\225\015\225\015\225\015\225\015\225\015\2252.\015\225'\214\015\225\000\242\015\225\0219\015\225\015\225\015\225\016\146\003V\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225)\130\015\225\007\209\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\011B\017\218\015\225\015\225\017\226\015\225\015\225\018Z\005Q\015\225\015\225\015\225\011F\015\166\000\242\011\169\015\225\015\225\015\225\015\225\011\138\015\225\015\225\011\142\015\225\015\225\015\225\015\225\015\225\017\234\015\225\018b\000\242\018j\015\225\000\242\015\225\015\225\011\182\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\015\225\011\210\015\225\015\225\015\225\015\225\015\225\002\193\004\138\002\193\007\209\002\193\"\246\003\198\003\202\002\193\015\025\003\170\002\193\019\030\002\193\005\002\b\150\002\193\003\202\016\030\002\193\002\193\002\193,*\002\193\002\193\002\193\001\234\011\134\0196\014\238\b\158\002\193\002\193\002\193\002\193\011\234\002\193\019>\002\193\005\n\018.\b\162\018>\t\138\003\182\002\193\002\193\002\193\002\193\002\193\002\193$r\t\182\000\242\001\190\005\213\002\193)\146\002\193\002\193\003\186\024\182\011\238\t\190\t\198\002\193\002\193\002\193\t\206\t\214\t\230\019\"\019F\0192\002\193\t\238\002\193\002\193\002\193\002\193\002\193\002\193\002\193\002\193\002\193\0122\017\218\t\242\t\246\017\226\t\250\n\002\018Z\017\206\002\193\002\193\002\193\012J)\154/r\r>\002\193\n\006\n\n\002\1933\154\002\193\002\193\t\189\002\193\002\193\002\193\002\193\n\014\019N\n\018\018b\001\230\028~\002\193\012\154\002\193\002\193\000\242\002\193\002\193\002\193\002\193\002\193\002\193\002\193\n\150\016\246\002\193\002\193\002\193\017\014\007\214\002\193\002\193\012\166\016B\002\193\002\193\002\193\002\193\016E\019z\016E\019\138\016E$.\003\198\003\202\016E/:\003\170\016E\016E\016E\005\002\b\150\016E\024\194.\210\016E\016E\016E\000\242\016E\016E\016E\001\234\024\"\016E\0242\b\158\016E\016E\016E\016E\r\014\016E\016E\016E\005\n5\250\b\162\001\246\t\138\r\022\016E\016E\016E\016E\016E\016E\011\134\t\182\011\194\001\190\000\242\016E+\n\016E\016E\003\186\r\138\024\238\t\190\t\198\016E\016E\016E\t\206\t\214\t\230\026\182\016E\026\202\016E\t\238\016E\016E\016E\016E\016E\016E\016E\016E\016E\r\150\016E\t\242\t\246\016E\t\250\n\002\016E\r\186\016E\016E\016E\r\190+\018'\218\r>\016E\n\006\n\n\016E4.\016E\016E\t\169\016E\016E\016E\016E\n\014\016E\n\018\016E\001\230\016E\016E\000\242\016E\016E\000\242\016E\016E\016E\016E\016E\016E\016E\n\150\016\246\016E\016E\016E\017\014\007\214\016E\016E\t\162\003\202\016E\016E\016E\016E\016A\004\138\016A\031\150\016A\031\166\003\198\003\202\016A/b\003\170\016A\016A\016A\025\"\b\150\016A\025N1>\016A\016A\016A\000\242\016A\016A\016A\001\234/*\016A/>\b\158\016A\016A\016A\016A\r\202\016A\016A\016A)\014\001\006\b\162\001\190\t\138\003\182\016A\016A\016A\016A\016A\016A*6\t\182\000\242\001\190\000\242\016A\004\138\016A\016A\003\186\024\226\0115\t\190\t\198\016A\016A\016A\t\206\t\214\t\230,6\016A&~\016A\t\238\016A\016A\016A\016A\016A\016A\016A\016A\016A\016\146\016A\t\242\t\246\016A\t\250\n\002\016A\011-\016A\016A\016A\r\214)\158'\030\r>\016A\n\006\n\n\016A\016\146\016A\016A\004\138\016A\016A\016A\016A\n\014\016A\n\018\016A\024\254\016A\016A\000\242\016A\016A\r\218\016A\016A\016A\016A\016A\016A\016A\n\150\016\246\016A\016A\016A\017\014\007\214\016A\016A\014\030\t\162\016A\016A\016A\016A\003E\015\001\003E\t\193\003E\011\206\003\198\003\202\003E\014\"\003\170\003E\019\030\003E\025\206\b\150\003E\014q\014F\003E\003E\003E\025\022\003E\003E\003E\001\234\014R\0196\004\138\b\158\003E\003E\003E\003E\014V\003E\019>\003E0\018\001\006\b\162\001\190\t\138\014~\003E\003E\003E\003E\003E\003E\007\209\t\182\000\242\001\190)Z\003E)\202\003E\003E\003\186\000\242\014\138\t\190\t\198\003E\003E\003E\t\206\t\214\t\230,\150\019F)\194\003E\t\238\003E\003E\003E\003E\003E\003E\003E\003E\003E\000\242\003E\t\242\t\246\025B\t\250\n\002\003E\025\250\003E\003E\003E\000\242\012\213&\214\r>\003E\n\006\n\n\003E\016\146\003E\003E\012\209\003E\003E\003E\003E\n\014\014\142\n\018\004\138\007\209\014q\003E,^\003E\003E*\n\003E\003E\003E\003E\003E\003E\003E\n\150\016\246\003E\003E\003E\017\014\007\214\003E\003E\021]\007\209\003E\003E\003E\003E\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209)^\007\209\007\250\007\209\007\209\021]\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\0119\007\209\007\209\024\146\007\209\000\242\007\209\007\209\007\209\000\242\007\209\007\209\007\209\007\209\007\209\000\242\004\138\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\000\242\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\000\242\007\209\007\209\007\209\007\209\007\2093\162\007\209\007\209\007\209\007\209\007\209*\018\007\20946\014\218\007\209\007\209\007\209\007\209\007\209\007\209\015\002\007\209\007\209\007\209\007\209\003\202\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\007\209\011)\007\209\007\209\007\209\015\029\007\209\007\209\007\209\007\209\015\n\007\209\000\242\000\242\007\209\004\138\007\209\b\n\007\209\003\n\007\209\000\242\015\174\007\209\007\209\007\209\007\209\000\242\002\137\007\209\007\209\007\209\007\209):\007\209\t\150\000\169\007\209\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\007\209\000\169\004\138\000\169\000\169\016V\000\169\000\169\000\1690\022*\222\000\169\000\169\000\n\000\169\000\169\000\169\000\169\004\138\000\169\t\169\000\169\000\169/\170\000\169/\186\000\169\000\169\000\169\0111\000\169\000\169\000\169\002\137\000\169*\214+\254\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\002\137\002\137\000\169\000\169+J\0042\000\169\000\169\000\169\004\138\000\169\000\169\000\169\000\169\000\169\000\169\025\194\000\169\000\169\000\169\000\169\021!\021!\000\169\b\242\021!\000\169\t\006\000\169\000\169\000\169\000\169\025\238\000\169\000\169\000\169\b\246\b\250\004\138\t\n\t\014\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\000\169\004f\b\254\004\018\000\169\t\018\004v\000\169\003\202\000\169\003\234\003\246\000\226\011\137\016\190\004\138\000\169\004\002+\014\000\242\026\n\005\133\017Z\000\169\000\169\000\169\000\169\n\017\021\209\000\169\000\169\000\169\000\006\004\138\000\169\011I\003\194\003\198\003\202\004\006\003\206\003\170\005\133\003\218\002\218\004\138\b\150\001\n\t\134\026\"\017\154\015\166\003\182\018n\014m\t\150\011I\001\234\011\134\021!\011\194\t\186\001\018\017:\017>\001\030\012\190\001\"\005\133\030R\012\202\030^\b\162\b\149\t\138\026N'j\001&\bj\017\182\017\186\011I\012\214\t\182\012\226\012\230\017\190\015V\005\133\0016\011I\003\186+\022\026\130\t\190\t\198\011I\011I\000\242\t\206\t\214\t\230\017\002\017\210\002\206\027\002\t\238\011I\011I\001:\001>\001B\001F\001J\015\218\002\210\018\n\001\230\t\242\t\246\001N\t\250\n\002\001\234\n\017\017\222\007\182\001R2F+R\018\022\018r\018\178\n\006\n\n\016\182\018\198\0182\001V\b\149\007\233\011I\t>\t\173\n\014\001Z\n\018\014Q\011Q\015\146\t=\001\246\011Q\011I\012\197\014m\000\242\003\186\001\150\011\206\005\133\016f\n\150\016\246\004\018\001\154\014\217 \002\007\214\001\162\001\166\018\202-\018\001\170\000\006\001\174\001\178\002!\003\194\003\198\003\202\000\242\003\206\003\170\011A\003\218\003\150\t~\b\150\001\n\t\134\014Q+\154,B\0176\015\158\025.\011\129\002!\001\234\021Q\011\129\005\166\t\186\001\018\017:\017>\001\030\012\190\001\"\004\138\004\138\012\202\021Q\b\162\0256\t\138\021\221\017B\001&\014Q\017\182\017\186\002!\012\214\t\182\012\226\012\230\017\190\015V\011\137\0016\002!\003\186\011\137\011Q\t\190\t\198\002!\002!\000\242\t\206\t\214\t\230\017\002\017\210\002R\021Q\t\238\002!\002!\001:\001>\001B\001F\001J\012:\nJ\018\n\014Q\t\242\t\246\001N\t\250\n\002\005\254\018:5N\014Q\001R\027.\027J\018\022\018r\018\178\n\006\n\n\011\137\018\198\002Z\001V\t=)\190\002!\011\129\021Q\n\014\001Z\n\018\021Q+\150\000\242\002z\018^*\018\002!\018\158\000\242\019&\019.\001\150\012.\000\242\003\230\n\150\016\246\bb\001\154)\198 \002\007\214\001\162\001\166\018\202\000\242\001\170+\158\001\174\001\178\003I\004\138\003I3^\003I3\166\003\198\003\202\003I\019:\003\170\003I\026.\003I\012\205\b\150\003I\t=\026Z\003I\003I\003I\012\197\003I\003I\003I\001\234\019~$>\002\218\b\158\003I\003I\003I\003I\026\142\003I1\194\003I\t=\011\222\b\162\019\134\t\138\011r\003I\003I\003I\003I\003I\003I\012\026\t\182\000\242\001\190\005U\003I\012\"\003I\003I\003\186\027b\024&\t\190\t\198\003I\003I\003I\t\206\t\214\t\230\002\154\005U\024.\003I\t\238\003I\003I\003I\003I\003I\003I\003I\003I\003I\004\"\017\218\t\242\t\246\017\226\t\250\n\002\018Z\027\014\003I\003I\003I\004v+\162&\146\r>\003I\n\006\n\n\003I3\230\003I\003I\004\138\003I\003I\003I\003I\n\014\017\234\n\018\018b$\202\018j\003I\000\242\003I\003I\000\242\003I\003I\003I\003I\003I\003I\003I\n\150\016\246\003I\003I\003I\017\014\007\214\003I\003I\024\166\000\242\003I\003I\003I\003I\003!\015\202\003!\012\201\003!,\234\003\198\003\202\003!\024\214\003\170\003!\002\137\003!\027:\b\150\003!\027n\025\146\003!\003!\003!\027\142\003!\003!\003!\001\234\025\170\025\226\026j\b\158\003!\003!\003!\003!\027\154\003!\026\154\003!\000\n\026\186\b\162\004\"\t\138\026\190\003!\003!\003!\003!\003!\003!\004v\t\182\t\218\001\1904:\003!\000\242\003!\003!\003\186#\226\027\"\t\190\t\198\003!\003!\003!\t\206\t\214\t\230\027\170\002\137\027\222\003!\t\238\003!\003!\003!\003!\003!\003!\003!\003!\003!\028\022\017\218\t\242\t\246\017\226\t\250\n\002\018Z\015\005\003!\003!\003!*R4z&V\r>\003!\n\006\n\n\003!\028N\003!\003!5\246\003!\003!\003!\003!\n\014\017\234\n\018\018b\028\138\018j\003!\000\242\003!\003!\000\242\003!\003!\003!\003!\003!\003!\003!\n\150\016\246\003!\003!\003!\017\014\007\214\003!\003!\028\1941r\003!\003!\003!\003!\003U\004v\003U\028\250\003U\029:\003\198\003\202\003U\029r\003\170\003U\029\170\003U+r\b\150\003U+\210\0306\003U\003U\003U\030>\003U\003U\003U\001\234\030N\030Z\030f\b\158\003U\003U\003U\003U\030z\003U\030\134\003U\030\146\030\186\b\162\031r\t\138\004v\003U\003U\003U\003U\003U\003U\021a\t\182\031~\001\190\031\138\003U\031\154\003U\003U\003\186\031\162 \n\t\190\t\198\003U\003U\003U\t\206\t\214\t\230\"\026\021a\"j\003U\t\238\003U\003U\003U\003U\003U\003U\003U\003U\003U\"\186\017\218\t\242\t\246\017\226\t\250\n\002\018Z\"\210\003U\003U\003U#\006#&&\"\r>\003U\n\006\n\n\003U#\198\003U\003U#\250\003U\003U\003U\003U\n\014\017\234\n\018\018b$\014\018j\003U$2\003U\003U\n2\003U\003U\003U\003U\003U\003U\003U\n\150\016\246\003U\003U\003U\017\014\007\214\003U\003U$R$V\003U\003U\003U\003U\r5$\134\r5$\166\r5$\242\003\198\003\202\r5%\002\003\170\r5%\022\r5%J\b\150\r5%Z%\154\r5\r5\r5%\170\r5\r5\r5\001\234%\218&\030&R\b\158\r5\r5\r5\r5\003\022\r5&\142\r5&\198'\014\b\162'V\t\138(\162\r5\r5\r5\r5\r5\r5(\166\t\182(\198\001\190(\218\r5(\222\r5\r5\003\186)j)n\t\190\t\198\r5\r5\r5\t\206\t\214\t\230)\166)\170)\210\r5\t\238\r5\r5\r5\r5\r5\r5\r5\r5\r5)\214\017\218\t\242\t\246\017\226\t\250\n\002\018Z)\238\r5\r5\r5*f*\150\n\026\r>\r5\n\006\n\n\r5*\154\r5\r5*\190\r5\r5\r5\r5\n\014\017\234\n\018\018b*\230\018j\r5*\246\r5\r5+\030\r5\r5\r5\r5\r5\r5\r5\n\150\016\246\r5\r5\r5\017\014\007\214\r5\r5+\"+.\r5\r5\r5\r5\003Y+>\003Y+Z\003Y+j\003\198\003\202\003Y+~\003\170\003Y+\170\003Y+\174\b\150\003Y+\186+\202\003Y\003Y\003Y+\222\003Y\003Y\003Y\001\234,\198,\214,\226\b\158\003Y\003Y\003Y\003Y-\n\003Y-\022\003Y-F-j\b\162-\146\t\138-\254\003Y\003Y\003Y\003Y\003Y\003Y.F\t\182.N\001\190.f\003Y.r\003Y\003Y\003\186.\234.\254\t\190\t\198\003Y\003Y\003Y\t\206\t\214\t\230/\"/./2\003Y\t\238\003Y\003Y\003Y\003Y\003Y\003Y\003Y\003Y\003Y/n\017\218\t\242\t\246\017\226\t\250\n\002\018Z/\162\003Y\003Y\003Y/\174/\182\012\242\r>\003Y\n\006\n\n\003Y/\242\003Y\003Y0\002\003Y\003Y\003Y\003Y\n\014\017\234\n\018\018b06\018j\003Y0^\003Y\003Y0j\003Y\003Y\003Y\003Y\003Y\003Y\003Y\n\150\016\246\003Y\003Y\003Y\017\014\007\214\003Y\003Y0\1620\174\003Y\003Y\003Y\003Y\003Q0\206\003Q0\218\003Q0\238\003\198\003\202\003Q0\250\003\170\003Q1\030\003Q1Z\b\150\003Q1\2141\242\003Q\003Q\003Q2\022\003Q\003Q\003Q\001\2342\1382\1422\170\b\158\003Q\003Q\003Q\003Q2\174\003Q3\"\003Q3*3\142\b\1623\198\t\1384\006\003Q\003Q\003Q\003Q\003Q\003Q4Z\t\1824\154\001\1904\226\003Q5*\003Q\003Q\003\1865\1665\178\t\190\t\198\003Q\003Q\003Q\t\206\t\214\t\2305\1865\1955\211\003Q\t\238\003Q\003Q\003Q\003Q\003Q\003Q\003Q\003Q\003Q5\230\017\218\t\242\t\246\017\226\t\250\n\002\018Z6\002\003Q\003Q\003Q6\0316/\r\"\r>\003Q\n\006\n\n\003Q6K\003Q\003Q6\159\003Q\003Q\003Q\003Q\n\014\017\234\n\018\018b6\187\018j\003Q6\198\003Q\003Q7\027\003Q\003Q\003Q\003Q\003Q\003Q\003Q\n\150\016\246\003Q\003Q\003Q\017\014\007\214\003Q\003Q7/77\003Q\003Q\003Q\003Q\rM7s\rM7{\rM\000\000\003\198\003\202\rM\000\000\003\170\rM\000\000\rM\000\000\b\150\rM\000\000\000\000\rM\rM\rM\000\000\rM\rM\rM\001\234\000\000\000\000\000\000\b\158\rM\rM\rM\rM\000\000\rM\000\000\rM\000\000\000\000\b\162\000\000\t\138\000\000\rM\rM\rM\rM\rM\rM\000\000\t\182\000\000\001\190\000\000\rM\000\000\rM\rM\003\186\000\000\000\000\t\190\t\198\rM\rM\rM\t\206\t\214\t\230\000\000\000\000\000\000\rM\t\238\rM\rM\rM\rM\rM\rM\rM\rM\rM\000\000\017\218\t\242\t\246\017\226\t\250\n\002\018Z\000\000\rM\rM\rM\000\000\000\000\015z\r>\rM\n\006\n\n\rM\000\000\rM\rM\000\000\rM\rM\rM\rM\n\014\017\234\n\018\018b\000\000\018j\rM\000\000\rM\rM\000\000\rM\rM\rM\rM\rM\rM\rM\n\150\016\246\rM\rM\rM\017\014\007\214\rM\rM\000\000\000\000\rM\rM\rM\rM\re\000\000\re\000\000\re\000\000\003\198\003\202\re\000\000\003\170\re\000\000\re\000\000\b\150\re\000\000\000\000\re\re\re\000\000\re\re\re\001\234\000\000\000\000\000\000\b\158\re\re\re\re\000\000\re\000\000\re\000\000\000\000\b\162\000\000\t\138\000\000\re\re\re\re\re\re\000\000\t\182\000\000\001\190\000\000\re\000\000\re\re\003\186\000\000\000\000\t\190\t\198\re\re\re\t\206\t\214\t\230\000\000\000\000\000\000\re\t\238\re\re\re\re\re\re\re\re\re\000\000\017\218\t\242\t\246\017\226\t\250\n\002\018Z\000\000\re\re\re\000\000\000\000\017\246\r>\re\n\006\n\n\re\000\000\re\re\000\000\re\re\re\re\n\014\017\234\n\018\018b\000\000\018j\re\000\000\re\re\000\000\re\re\re\re\re\re\re\n\150\016\246\re\re\re\017\014\007\214\re\re\000\000\000\000\re\re\re\re\r\149\000\000\r\149\000\000\r\149\000\000\003\198\003\202\r\149\000\000\003\170\r\149\000\000\r\149\000\000\b\150\r\149\000\000\000\000\r\149\r\149\r\149\000\000\r\149\r\149\r\149\001\234\000\000\000\000\000\000\b\158\r\149\r\149\r\149\r\149\000\000\r\149\000\000\r\149\000\000\000\000\b\162\000\000\t\138\000\000\r\149\r\149\r\149\r\149\r\149\r\149\000\000\t\182\000\000\001\190\000\000\r\149\000\000\r\149\r\149\003\186\000\000\000\000\t\190\t\198\r\149\r\149\r\149\t\206\t\214\t\230\000\000\000\000\000\000\r\149\t\238\r\149\r\149\r\149\r\149\r\149\r\149\r\149\r\149\r\149\000\000\017\218\t\242\t\246\017\226\t\250\n\002\018Z\000\000\r\149\r\149\r\149\000\000\000\000\018F\r>\r\149\n\006\n\n\r\149\000\000\r\149\r\149\000\000\r\149\r\149\r\149\r\149\n\014\017\234\n\018\018b\000\000\018j\r\149\000\000\r\149\r\149\000\000\r\149\r\149\r\149\r\149\r\149\r\149\r\149\n\150\016\246\r\149\r\149\r\149\017\014\007\214\r\149\r\149\000\000\000\000\r\149\r\149\r\149\r\149\003%\000\000\003%\000\000\003%\000\000\003\198\003\202\003%\000\000\003\170\003%\000\000\003%\000\000\b\150\003%\000\000\000\000\003%\003%\003%\000\000\003%\003%\003%\001\234\000\000\000\000\000\000\b\158\003%\003%\003%\003%\000\000\003%\000\000\003%\000\000\000\000\b\162\000\000\t\138\000\000\003%\003%\003%\003%\003%\003%\000\000\t\182\000\000\001\190\000\000\003%\000\000\003%\003%\003\186\000\000\000\000\t\190\t\198\003%\003%\003%\t\206\t\214\t\230\000\000\000\000\000\000\003%\t\238\003%\003%\003%\003%\003%\003%\003%\003%\003%\000\000\017\218\t\242\t\246\017\226\t\250\n\002\018Z\000\000\003%\003%\003%\000\000\000\000\018\242\r>\003%\n\006\n\n\003%\000\000\003%\003%\000\000\003%\003%\003%\003%\n\014\017\234\n\018\018b\000\000\018j\003%\000\000\003%\003%\000\000\003%\003%\003%\003%\003%\003%\003%\n\150\016\246\003%\003%\003%\017\014\007\214\003%\003%\000\000\000\000\003%\003%\003%\003%\r}\000\000\r}\000\000\r}\000\000\003\198\003\202\r}\000\000\003\170\r}\000\000\r}\000\000\b\150\r}\000\000\000\000\r}\r}\r}\000\000\r}\r}\r}\001\234\000\000\000\000\000\000\b\158\r}\r}\r}\r}\000\000\r}\000\000\r}\000\000\000\000\b\162\000\000\t\138\000\000\r}\r}\r}\r}\r}\r}\000\000\t\182\000\000\001\190\000\000\r}\000\000\r}\r}\003\186\000\000\000\000\t\190\t\198\r}\r}\r}\t\206\t\214\t\230\000\000\000\000\000\000\r}\t\238\r}\r}\r}\r}\r}\r}\r}\r}\r}\000\000\017\218\t\242\t\246\017\226\t\250\n\002\018Z\000\000\r}\r}\r}\000\000\000\000\019\146\r>\r}\n\006\n\n\r}\000\000\r}\r}\000\000\r}\r}\r}\r}\n\014\017\234\n\018\018b\000\000\018j\r}\000\000\r}\r}\000\000\r}\r}\r}\r}\r}\r}\r}\n\150\016\246\r}\r}\r}\017\014\007\214\r}\r}\000\000\000\000\r}\r}\r}\r}\r\197\000\000\r\197\000\000\r\197\000\000\003\198\003\202\r\197\000\000\003\170\r\197\000\000\r\197\000\000\b\150\r\197\000\000\000\000\r\197\r\197\r\197\000\000\r\197\r\197\r\197\001\234\000\000\000\000\000\000\b\158\r\197\r\197\r\197\r\197\000\000\r\197\000\000\r\197\000\000\000\000\b\162\000\000\t\138\000\000\r\197\r\197\r\197\r\197\r\197\r\197\000\000\t\182\000\000\001\190\000\000\r\197\000\000\r\197\r\197\003\186\000\000\000\000\t\190\t\198\r\197\r\197\r\197\t\206\t\214\t\230\000\000\000\000\000\000\r\197\t\238\r\197\r\197\r\197\r\197\r\197\r\197\r\197\r\197\r\197\000\000\017\218\t\242\t\246\017\226\t\250\n\002\018Z\000\000\r\197\r\197\r\197\000\000\000\000\019\222\r>\r\197\n\006\n\n\r\197\000\000\r\197\r\197\000\000\r\197\r\197\r\197\r\197\n\014\017\234\n\018\018b\000\000\018j\r\197\000\000\r\197\r\197\000\000\r\197\r\197\r\197\r\197\r\197\r\197\r\197\n\150\016\246\r\197\r\197\r\197\017\014\007\214\r\197\r\197\000\000\000\000\r\197\r\197\r\197\r\197\r\173\000\000\r\173\000\000\r\173\000\000\003\198\003\202\r\173\000\000\003\170\r\173\000\000\r\173\000\000\b\150\r\173\000\000\000\000\r\173\r\173\r\173\000\000\r\173\r\173\r\173\001\234\000\000\000\000\000\000\b\158\r\173\r\173\r\173\r\173\000\000\r\173\000\000\r\173\000\000\000\000\b\162\000\000\t\138\000\000\r\173\r\173\r\173\r\173\r\173\r\173\000\000\t\182\000\000\001\190\000\000\r\173\000\000\r\173\r\173\003\186\000\000\000\000\t\190\t\198\r\173\r\173\r\173\t\206\t\214\t\230\000\000\000\000\000\000\r\173\t\238\r\173\r\173\r\173\r\173\r\173\r\173\r\173\r\173\r\173\000\000\017\218\t\242\t\246\017\226\t\250\n\002\018Z\000\000\r\173\r\173\r\173\000\000\000\000\020\n\r>\r\173\n\006\n\n\r\173\000\000\r\173\r\173\000\000\r\173\r\173\r\173\r\173\n\014\017\234\n\018\018b\000\000\018j\r\173\000\000\r\173\r\173\000\000\r\173\r\173\r\173\r\173\r\173\r\173\r\173\n\150\016\246\r\173\r\173\r\173\017\014\007\214\r\173\r\173\000\000\000\000\r\173\r\173\r\173\r\173\004\141\000\000\004\141\000\000\004\141\000\000\003\198\003\202\004\141\000\000\003\170\004\141\000\000\004\141\000\000\b\150\004\141\000\000\000\000\004\141\004\141\004\141\000\000\004\141\004\141\004\141\001\234\000\000\000\000\000\000\b\158\004\141\004\141\004\141\004\141\000\000\004\141\000\000\004\141\000\000\000\000\b\162\000\000\t\138\000\000\004\141\004\141\004\141\004\141\004\141\004\141\tY\t\182\000\000\001\190\000\000\004\141\000\000\004\141\004\141\003\186\000\000\000\000\t\190\t\198\004\141\004\141\004\141\t\206\t\214\t\230\000\000\tY\000\000\004\141\t\238\004\141\004\141\004\141\004\141\004\141\004\141\004\141\004\141\004\141\000\000\004\141\t\242\t\246\000\000\t\250\n\002\004\141\015\218\004\141\004\141\004\141\000\000\tY\020F\r>\004\141\n\006\n\n\004\141\000\000\004\141\004\141\000\000\004\141\004\141\004\141\004\141\n\014\016\230\n\018\021)\021)\tY\004\141\021)\004\141\004\141\000\000\r\002\004\141\004\141\004\141\004\141\004\141\004\141\n\150\016\246\004\141\004\141\r2\017\014\007\214\004\141\004\141\016f\000\000\004\141\004\141\004\141\004\141\ry\000\000\ry\000\000\ry\000\000\003\198\003\202\ry\000\000\003\170\ry\tY\ry\000\242\b\150\ry\000\242\000\000\ry\ry\ry\000\000\ry\ry\ry\001\234\000\000\000\000\000\000\b\158\ry\ry\ry\ry\000\000\ry\000\000\ry\000\000\000\000\b\162\000\000\t\138\004v\ry\ry\ry\ry\ry\ry\015\218\t\182\000\000\001\190\000\000\ry\021)\ry\ry\003\186\000\000\000\000\t\190\t\198\ry\ry\ry\t\206\t\214\t\230\000\000\016\210\016\234\ry\t\238\ry\ry\ry\ry\ry\ry\ry\ry\ry\000\000\ry\t\242\t\246\000\000\t\250\n\002\ry\015\218\ry\ry\ry\000\000\016f\020\134\r>\ry\n\006\n\n\ry\000\000\ry\ry\000\000\ry\ry\ry\ry\n\014#R\n\018\021%\021%\000\242\ry\021%\ry\ry\000\000\r\002\ry\ry\ry\ry\ry\ry\n\150\016\246\ry\ry\r2\017\014\007\214\ry\ry\016f\000\000\ry\ry\ry\ry\015)\000\000\015)\000\000\015)\000\000\003\198\003\202\015)\000\000\003\170\015)\000\000\015)\000\242\b\150\015)\000\242\000\000\015)\015)\015)\000\000\015)\015)\015)\001\234\000\000\000\000\000\000\b\158\015)\015)\015)\015)\000\000\015)\000\000\015)\000\000\000\000\b\162\000\000\t\138\000\000\015)\015)\015)\015)\015)\015)\015\218\t\182\000\000\001\190\000\000\015)\021%\015)\015)\003\186\000\000\000\000\t\190\t\198\015)\015)\015)\t\206\t\214\t\230\000\000\016\218#V\015)\t\238\015)\015)\015)\015)\015)\015)\015)\015)\015)\000\000\015)\t\242\t\246\000\000\t\250\n\002\015)\015\218\015)\015)\015)\000\000\016f\020\178\r>\015)\n\006\n\n\015)\000\000\015)\015)\000\000\015)\015)\015)\015)\n\014#~\n\018\000\000\000\000\000\242\015)\000\000\015)\015)\000\000\018&\015)\015)\015)\015)\015)\015)\n\150\016\246\015)\015)\r2\017\014\007\214\015)\015)\016f\000\000\015)\015)\015)\015)\ra\000\000\ra\000\000\ra\000\000\003\198\003\202\ra\000\000\003\170\ra\000\000\ra\000\242\b\150\ra\000\000\000\000\ra\ra\ra\000\000\ra\ra\ra\001\234\000\000\000\000\000\000\b\158\ra\ra\ra\ra\000\000\ra\000\000\ra\000\000\000\000\b\162\000\000\t\138\000\000\ra\ra\ra\ra\ra\ra\015\218\t\182\000\000\001\190\000\000\ra\000\242\ra\ra\003\186\000\000\000\000\t\190\t\198\ra\ra\ra\t\206\t\214\t\230\000\000\016\242#\130\ra\t\238\ra\ra\ra\ra\ra\ra\ra\ra\ra\000\000\ra\t\242\t\246\000\000\t\250\n\002\ra\015\218\ra\ra\ra\011%\016f\020\222\r>\ra\n\006\n\n\ra\000\000\ra\ra\000\000\ra\ra\ra\ra\n\014\017\138\n\018\025~\000\000\000\242\ra\000\000\ra\ra\000\000\r\002\ra\ra\ra\ra\ra\ra\n\150\016\246\ra\ra\r2\017\014\007\214\ra\ra\016f\000\000\ra\ra\ra\ra\002\185\000\000\002\185\000\000\002\185\000\000\003\198\003\202\002\185\000\000\003\170\002\185\000\000\002\185\000\242\b\150\002\185\000\000\000\000\002\185\002\185\002\185\000\000\002\185\002\185\002\185\001\234\000\000\000\000\000\000\b\158\002\185\002\185\002\185\002\185\000\000\002\185\000\000\002\185\000\000\000\000\b\162\000\000\t\138\000\000\002\185\002\185\002\185\002\185\002\185\002\185\015\218\t\182\000\000\001\190\000\000\002\185\000\242\002\185\002\185\003\186\000\000\000\000\t\190\t\198\002\185\002\185\002\185\t\206\t\214\t\230\000\000\017\178\000\000\002\185\t\238\002\185\002\185\002\185\002\185\002\185\002\185\002\185\002\185\002\185\000\000\002\185\t\242\t\246\000\000\t\250\n\002\002\185\015\218\002\185\002\185\002\185\026:\016f\021\n\r>\002\185\n\006\n\n\002\185\000\000\002\185\002\185\000\000\002\185\002\185\002\185\002\185\n\014#F\n\018\026B\000\000\000\242\002\185\000\000\002\185\002\185\000\000\018&\002\185\002\185\002\185\002\185\002\185\002\185\n\150\016\246\002\185\002\185\r2\017\014\007\214\002\185\002\185\016f\000\000\002\185\002\185\002\185\002\185\003M\000\000\003M\000\000\003M\000\000\003\198\003\202\003M\000\000\003\170\003M\000\000\003M\000\242\b\150\003M\000\000\000\000\003M\003M\003M\000\000\003M\003M\003M\001\234\000\000\000\000\000\000\b\158\003M\003M\003M\003M\000\000\003M\000\000\003M\000\000\000\000\b\162\000\000\t\138\000\000\003M\003M\003M\003M\003M\003M\015\218\t\182\000\000\001\190\000\000\003M\000\242\003M\003M\003\186\000\000\000\000\t\190\t\198\003M\003M\003M\t\206\t\214\t\230\000\000#^\000\000\003M\t\238\003M\003M\003M\003M\003M\003M\003M\003M\003M\000\000\003M\t\242\t\246\000\000\t\250\n\002\003M\015\218\003M\003M\003M\027z\016f\0216\r>\003M\n\006\n\n\003M\000\000\003M\003M\000\000\003M\003M\003M\003M\n\014#r\n\018\027\130\000\000\000\242\003M\000\000\003M\003M\000\000\019r\003M\003M\003M\003M\003M\003M\n\150\016\246\003M\003M\003M\017\014\007\214\003M\003M\016f\000\000\003M\003M\003M\003M\r1\000\000\r1\000\000\r1\000\000\003\198\003\202\r1\000\000\003\170\r1\000\000\r1\000\242\b\150\r1\000\000\000\000\r1\r1\r1\000\000\r1\r1\r1\001\234\000\000\000\000\000\000\b\158\r1\r1\r1\r1\000\000\r1\000\000\r1\000\000\000\000\b\162\000\000\t\138\000\000\r1\r1\r1\r1\r1\r1\015\218\t\182\000\000\001\190\000\000\r1\000\000\r1\r1\003\186\000\000\000\000\t\190\t\198\r1\r1\r1\t\206\t\214\t\230\000\000#\138\000\000\r1\t\238\r1\r1\r1\r1\r1\r1\r1\r1\r1\000\000\r1\t\242\t\246\000\000\t\250\n\002\r1\015\218\r1\r1\r1\000\000\016f\021b\r>\r1\n\006\n\n\r1\000\000\r1\r1\000\000\r1\r1\r1\r1\n\014'\134\n\018\000\000\000\000\000\242\r1\000\000\r1\r1\000\000\r\002\r1\r1\r1\r1\r1\r1\n\150\016\246\r1\r1\r2\017\014\007\214\r1\r1\016f\000\000\r1\r1\r1\r1\r-\000\000\r-\000\000\r-\000\000\003\198\003\202\r-\000\000\003\170\r-\000\000\r-\000\242\b\150\r-\000\000\000\000\r-\r-\r-\000\000\r-\r-\r-\001\234\000\000\000\000\000\000\b\158\r-\r-\r-\r-\000\000\r-\000\000\r-\000\000\000\000\b\162\000\000\t\138\000\000\r-\r-\r-\r-\r-\r-\015\218\t\182\000\000\001\190\000\000\r-\000\000\r-\r-\003\186\000\000\000\000\t\190\t\198\r-\r-\r-\t\206\t\214\t\230\000\000/\n\000\000\r-\t\238\r-\r-\r-\r-\r-\r-\r-\r-\r-\000\000\r-\t\242\t\246\000\000\t\250\n\002\r-\015\218\r-\r-\r-\000\000\016f\021\142\r>\r-\n\006\n\n\r-\000\000\r-\r-\000\000\r-\r-\r-\r-\n\0143V\n\018\000\000\000\000\000\242\r-\000\000\r-\r-\000\000\018&\r-\r-\r-\r-\r-\r-\n\150\016\246\r-\r-\r2\017\014\007\214\r-\r-\016f\000\000\r-\r-\r-\r-\005-\000\000\005-\000\000\005-\000\000\003\198\003\202\005-\000\000\003\170\005-\000\000\005-\000\242\b\150\019\214\000\000\000\000\005-\020j\005-\000\000\005-\005-\005-\001\234\000\000\000\000\000\000\b\158\020~\021.\021Z\020\170\000\000\021\134\000\000\005-\000\000\000\000\b\162\000\000\t\138\000\000\005-\020\214\005-\021\178\021\222\005-\000\000\t\182\000\000\001\190\000\000\005-\000\000\022\n\005-\003\186\000\000\000\000\t\190\t\198\005-\005-\000\242\t\206\t\214\t\230\000\000\000\000\000\000\005-\t\238\005-\005-\020\002\021\002\0226\022b\023\018\005-\005-\000\000\005-\t\242\t\246\000\000\t\250\n\002\005-\000\000\005-\005-\023>\000\000\000\000\021\186\r>\005-\n\006\n\n\005-\000\000\005-\023j\000\000\005-\005-\005-\005-\n\014\000\000\n\018\000\000\000\000\000\000\005-\000\000\005-\005-\000\000\024\026\005-\005-\024f\022\142\005-\005-\n\150\016\246\005-\023\150\005-\017\014\007\214\022\186\022\230\000\000\000\000\005-\005-\023\194\023\238\004\001\000\000\004\001\000\000\004\001\000\000\003\198\003\202\004\001\000\000\003\170\004\001\000\000\004\001\000\000\b\150\004\001\000\000\000\000\004\001\004\001\004\001\000\000\004\001\004\001\004\001\001\234\000\000\000\000\000\000\b\158\004\001\004\001\004\001\004\001\000\000\004\001\000\000\004\001\000\000\000\000\b\162\000\000\t\138\000\000\004\001\004\001\004\001\004\001\004\001\004\001\000\000\t\182\000\000\001\190\000\000\004\001\000\000\004\001\004\001\003\186\000\000\000\000\t\190\t\198\004\001\004\001\004\001\t\206\t\214\t\230\000\000\000\000\000\000\004\001\t\238\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\004\001\000\000\004\001\t\242\t\246\000\000\t\250\n\002\004\001\000\000\004\001\004\001\004\001\000\000\000\000\021\230\r>\004\001\n\006\n\n\004\001\000\000\004\001\004\001\000\000\004\001\004\001\004\001\004\001\n\014\000\000\n\018\000\000\000\000\000\000\004\001\000\000\004\001\004\001\000\000\r\002\004\001\004\001\004\001\004\001\004\001\004\001\n\150\016\246\004\001\004\001\r2\017\014\007\214\004\001\004\001\000\000\000\000\004\001\004\001\004\001\004\001\003\253\000\000\003\253\000\000\003\253\000\000\003\198\003\202\003\253\000\000\003\170\003\253\000\000\003\253\000\000\b\150\003\253\000\000\000\000\003\253\003\253\003\253\000\000\003\253\003\253\003\253\001\234\000\000\000\000\000\000\b\158\003\253\003\253\003\253\003\253\000\000\003\253\000\000\003\253\000\000\000\000\b\162\000\000\t\138\000\000\003\253\003\253\003\253\003\253\003\253\003\253\000\000\t\182\000\000\001\190\000\000\003\253\000\000\003\253\003\253\003\186\000\000\000\000\t\190\t\198\003\253\003\253\003\253\t\206\t\214\t\230\000\000\000\000\000\000\003\253\t\238\003\253\003\253\003\253\003\253\003\253\003\253\003\253\003\253\003\253\000\000\003\253\t\242\t\246\000\000\t\250\n\002\003\253\000\000\003\253\003\253\003\253\000\000\000\000\022\018\r>\003\253\n\006\n\n\003\253\000\000\003\253\003\253\000\000\003\253\003\253\003\253\003\253\n\014\000\000\n\018\000\000\000\000\000\000\003\253\000\000\003\253\003\253\000\000\018&\003\253\003\253\003\253\003\253\003\253\003\253\n\150\016\246\003\253\003\253\r2\017\014\007\214\003\253\003\253\000\000\000\000\003\253\003\253\003\253\003\253\003\249\000\000\003\249\000\000\003\249\000\000\003\198\003\202\003\249\000\000\003\170\003\249\000\000\003\249\000\000\b\150\003\249\000\000\000\000\003\249\003\249\003\249\000\000\003\249\003\249\003\249\001\234\000\000\000\000\000\000\b\158\003\249\003\249\003\249\003\249\000\000\003\249\000\000\003\249\000\000\000\000\b\162\000\000\t\138\000\000\003\249\003\249\003\249\003\249\003\249\003\249\000\000\t\182\000\000\001\190\000\000\003\249\000\000\003\249\003\249\003\186\000\000\000\000\t\190\t\198\003\249\003\249\003\249\t\206\t\214\t\230\000\000\000\000\000\000\003\249\t\238\003\249\003\249\020\002\003\249\003\249\003\249\003\249\003\249\003\249\000\000\003\249\t\242\t\246\000\000\t\250\n\002\003\249\000\000\003\249\003\249\003\249\000\000\000\000\022>\r>\003\249\n\006\n\n\003\249\000\000\003\249\003\249\000\000\003\249\003\249\003\249\003\249\n\014\000\000\n\018\000\000\000\000\000\000\003\249\000\000\003\249\003\249\000\000\003\249\003\249\003\249\003\249\003\249\003\249\003\249\n\150\016\246\003\249\003\249\003\249\017\014\007\214\003\249\003\249\000\000\000\000\003\249\003\249\003\249\003\249\003\185\000\000\003\185\000\000\003\185\000\000\003\198\003\202\003\185\000\000\003\170\003\185\000\000\003\185\000\000\b\150\003\185\000\000\000\000\003\185\003\185\003\185\000\000\003\185\003\185\003\185\001\234\000\000\000\000\000\000\b\158\003\185\003\185\003\185\003\185\000\000\003\185\000\000\003\185\000\000\000\000\b\162\000\000\t\138\000\000\003\185\003\185\003\185\003\185\003\185\003\185\000\000\t\182\000\000\001\190\000\000\003\185\000\000\003\185\003\185\003\186\000\000\000\000\t\190\t\198\003\185\003\185\003\185\t\206\t\214\t\230\000\000\000\000\000\000\003\185\t\238\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\003\185\000\000\003\185\t\242\t\246\000\000\t\250\n\002\003\185\000\000\003\185\003\185\003\185\000\000\000\000\022j\r>\003\185\n\006\n\n\003\185\000\000\003\185\003\185\000\000\003\185\003\185\003\185\003\185\n\014\000\000\n\018\000\000\000\000\000\000\003\185\000\000\003\185\003\185\000\000\r\002\003\185\003\185\003\185\003\185\003\185\003\185\n\150\016\246\003\185\003\185\r2\017\014\007\214\003\185\003\185\000\000\000\000\003\185\003\185\003\185\003\185\003\181\000\000\003\181\000\000\003\181\000\000\003\198\003\202\003\181\000\000\003\170\003\181\000\000\003\181\000\000\b\150\003\181\000\000\000\000\003\181\003\181\003\181\000\000\003\181\003\181\003\181\001\234\000\000\000\000\000\000\b\158\003\181\003\181\003\181\003\181\000\000\003\181\000\000\003\181\000\000\000\000\b\162\000\000\t\138\000\000\003\181\003\181\003\181\003\181\003\181\003\181\000\000\t\182\000\000\001\190\000\000\003\181\000\000\003\181\003\181\003\186\000\000\000\000\t\190\t\198\003\181\003\181\003\181\t\206\t\214\t\230\000\000\000\000\000\000\003\181\t\238\003\181\003\181\003\181\003\181\003\181\003\181\003\181\003\181\003\181\000\000\003\181\t\242\t\246\000\000\t\250\n\002\003\181\000\000\003\181\003\181\003\181\000\000\000\000\022\150\r>\003\181\n\006\n\n\003\181\000\000\003\181\003\181\000\000\003\181\003\181\003\181\003\181\n\014\000\000\n\018\000\000\000\000\000\000\003\181\000\000\003\181\003\181\000\000\018&\003\181\003\181\003\181\003\181\003\181\003\181\n\150\016\246\003\181\003\181\r2\017\014\007\214\003\181\003\181\000\000\000\000\003\181\003\181\003\181\003\181\003\177\000\000\003\177\000\000\003\177\000\000\003\198\003\202\003\177\000\000\003\170\003\177\000\000\003\177\000\000\b\150\003\177\000\000\000\000\003\177\003\177\003\177\000\000\003\177\003\177\003\177\001\234\000\000\000\000\000\000\b\158\003\177\003\177\003\177\003\177\000\000\003\177\000\000\003\177\000\000\000\000\b\162\000\000\t\138\000\000\003\177\003\177\003\177\003\177\003\177\003\177\000\000\t\182\000\000\001\190\000\000\003\177\000\000\003\177\003\177\003\186\000\000\000\000\t\190\t\198\003\177\003\177\003\177\t\206\t\214\t\230\000\000\000\000\000\000\003\177\t\238\003\177\003\177\020\002\003\177\003\177\003\177\003\177\003\177\003\177\000\000\003\177\t\242\t\246\000\000\t\250\n\002\003\177\000\000\003\177\003\177\003\177\000\000\000\000\022\194\r>\003\177\n\006\n\n\003\177\000\000\003\177\003\177\000\000\003\177\003\177\003\177\003\177\n\014\000\000\n\018\000\000\000\000\000\000\003\177\000\000\003\177\003\177\000\000\003\177\003\177\003\177\003\177\003\177\003\177\003\177\n\150\016\246\003\177\003\177\003\177\017\014\007\214\003\177\003\177\000\000\000\000\003\177\003\177\003\177\003\177\003\221\000\000\003\221\000\000\003\221\000\000\003\198\003\202\003\221\000\000\003\170\003\221\000\000\003\221\000\000\b\150\003\221\000\000\000\000\003\221\003\221\003\221\000\000\003\221\003\221\003\221\001\234\000\000\000\000\000\000\b\158\003\221\003\221\003\221\003\221\000\000\003\221\000\000\003\221\000\000\000\000\b\162\000\000\t\138\000\000\003\221\003\221\003\221\003\221\003\221\003\221\000\000\t\182\000\000\001\190\000\000\003\221\000\000\003\221\003\221\003\186\000\000\000\000\t\190\t\198\003\221\003\221\003\221\t\206\t\214\t\230\000\000\000\000\000\000\003\221\t\238\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\003\221\000\000\003\221\t\242\t\246\000\000\t\250\n\002\003\221\000\000\003\221\003\221\003\221\000\000\000\000\022\238\r>\003\221\n\006\n\n\003\221\000\000\003\221\003\221\000\000\003\221\003\221\003\221\003\221\n\014\000\000\n\018\000\000\000\000\000\000\003\221\000\000\003\221\003\221\000\000\r\002\003\221\003\221\003\221\003\221\003\221\003\221\n\150\016\246\003\221\003\221\r2\017\014\007\214\003\221\003\221\000\000\000\000\003\221\003\221\003\221\003\221\003\217\000\000\003\217\000\000\003\217\000\000\003\198\003\202\003\217\000\000\003\170\003\217\000\000\003\217\000\000\b\150\003\217\000\000\000\000\003\217\003\217\003\217\000\000\003\217\003\217\003\217\001\234\000\000\000\000\000\000\b\158\003\217\003\217\003\217\003\217\000\000\003\217\000\000\003\217\000\000\000\000\b\162\000\000\t\138\000\000\003\217\003\217\003\217\003\217\003\217\003\217\000\000\t\182\000\000\001\190\000\000\003\217\000\000\003\217\003\217\003\186\000\000\000\000\t\190\t\198\003\217\003\217\003\217\t\206\t\214\t\230\000\000\000\000\000\000\003\217\t\238\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\003\217\000\000\003\217\t\242\t\246\000\000\t\250\n\002\003\217\000\000\003\217\003\217\003\217\000\000\000\000\023\026\r>\003\217\n\006\n\n\003\217\000\000\003\217\003\217\000\000\003\217\003\217\003\217\003\217\n\014\000\000\n\018\000\000\000\000\000\000\003\217\000\000\003\217\003\217\000\000\018&\003\217\003\217\003\217\003\217\003\217\003\217\n\150\016\246\003\217\003\217\r2\017\014\007\214\003\217\003\217\000\000\000\000\003\217\003\217\003\217\003\217\003\213\000\000\003\213\000\000\003\213\000\000\003\198\003\202\003\213\000\000\003\170\003\213\000\000\003\213\000\000\b\150\019\214\000\000\000\000\003\213\003\213\003\213\000\000\003\213\003\213\003\213\001\234\000\000\000\000\000\000\b\158\003\213\003\213\003\213\020\170\000\000\003\213\000\000\003\213\000\000\000\000\b\162\000\000\t\138\000\000\003\213\020\214\003\213\003\213\003\213\003\213\000\000\t\182\000\000\001\190\000\000\003\213\000\000\003\213\003\213\003\186\000\000\000\000\t\190\t\198\003\213\003\213\003\213\t\206\t\214\t\230\000\000\000\000\000\000\003\213\t\238\003\213\003\213\020\002\021\002\003\213\003\213\003\213\003\213\003\213\000\000\003\213\t\242\t\246\000\000\t\250\n\002\003\213\000\000\003\213\003\213\003\213\000\000\000\000\023F\r>\003\213\n\006\n\n\003\213\000\000\003\213\003\213\000\000\003\213\003\213\003\213\003\213\n\014\000\000\n\018\000\000\000\000\000\000\003\213\000\000\003\213\003\213\000\000\003\213\003\213\003\213\003\213\003\213\003\213\003\213\n\150\016\246\003\213\003\213\003\213\017\014\007\214\003\213\003\213\000\000\000\000\003\213\003\213\003\213\003\213\004\r\000\000\004\r\000\000\004\r\000\000\003\198\003\202\004\r\000\000\003\170\004\r\000\000\004\r\000\000\b\150\004\r\000\000\000\000\004\r\004\r\004\r\000\000\004\r\004\r\004\r\001\234\000\000\000\000\000\000\b\158\004\r\004\r\004\r\004\r\000\000\004\r\000\000\004\r\000\000\000\000\b\162\000\000\t\138\000\000\004\r\004\r\004\r\004\r\004\r\004\r\000\000\t\182\000\000\001\190\000\000\004\r\000\000\004\r\004\r\003\186\000\000\000\000\t\190\t\198\004\r\004\r\004\r\t\206\t\214\t\230\000\000\000\000\000\000\004\r\t\238\004\r\004\r\004\r\004\r\004\r\004\r\004\r\004\r\004\r\000\000\004\r\t\242\t\246\000\000\t\250\n\002\004\r\000\000\004\r\004\r\004\r\000\000\000\000\023r\r>\004\r\n\006\n\n\004\r\000\000\004\r\004\r\000\000\004\r\004\r\004\r\004\r\n\014\000\000\n\018\000\000\000\000\000\000\004\r\000\000\004\r\004\r\000\000\r\002\004\r\004\r\004\r\004\r\004\r\004\r\n\150\016\246\004\r\004\r\r2\017\014\007\214\004\r\004\r\000\000\000\000\004\r\004\r\004\r\004\r\004\t\000\000\004\t\000\000\004\t\000\000\003\198\003\202\004\t\000\000\003\170\004\t\000\000\004\t\000\000\b\150\004\t\000\000\000\000\004\t\004\t\004\t\000\000\004\t\004\t\004\t\001\234\000\000\000\000\000\000\b\158\004\t\004\t\004\t\004\t\000\000\004\t\000\000\004\t\000\000\000\000\b\162\000\000\t\138\000\000\004\t\004\t\004\t\004\t\004\t\004\t\000\000\t\182\000\000\001\190\000\000\004\t\000\000\004\t\004\t\003\186\000\000\000\000\t\190\t\198\004\t\004\t\004\t\t\206\t\214\t\230\000\000\000\000\000\000\004\t\t\238\004\t\004\t\004\t\004\t\004\t\004\t\004\t\004\t\004\t\000\000\004\t\t\242\t\246\000\000\t\250\n\002\004\t\000\000\004\t\004\t\004\t\000\000\000\000\023\158\r>\004\t\n\006\n\n\004\t\000\000\004\t\004\t\000\000\004\t\004\t\004\t\004\t\n\014\000\000\n\018\000\000\000\000\000\000\004\t\000\000\004\t\004\t\000\000\018&\004\t\004\t\004\t\004\t\004\t\004\t\n\150\016\246\004\t\004\t\r2\017\014\007\214\004\t\004\t\000\000\000\000\004\t\004\t\004\t\004\t\004\005\000\000\004\005\000\000\004\005\000\000\003\198\003\202\004\005\000\000\003\170\004\005\000\000\004\005\000\000\b\150\004\005\000\000\000\000\004\005\004\005\004\005\000\000\004\005\004\005\004\005\001\234\000\000\000\000\000\000\b\158\004\005\004\005\004\005\004\005\000\000\004\005\000\000\004\005\000\000\000\000\b\162\000\000\t\138\000\000\004\005\004\005\004\005\004\005\004\005\004\005\000\000\t\182\000\000\001\190\000\000\004\005\000\000\004\005\004\005\003\186\000\000\000\000\t\190\t\198\004\005\004\005\004\005\t\206\t\214\t\230\000\000\000\000\000\000\004\005\t\238\004\005\004\005\020\002\004\005\004\005\004\005\004\005\004\005\004\005\000\000\004\005\t\242\t\246\000\000\t\250\n\002\004\005\000\000\004\005\004\005\004\005\000\000\000\000\023\202\r>\004\005\n\006\n\n\004\005\000\000\004\005\004\005\000\000\004\005\004\005\004\005\004\005\n\014\000\000\n\018\000\000\000\000\000\000\004\005\000\000\004\005\004\005\000\000\004\005\004\005\004\005\004\005\004\005\004\005\004\005\n\150\016\246\004\005\004\005\004\005\017\014\007\214\004\005\004\005\000\000\000\000\004\005\004\005\004\005\004\005\003\173\000\000\003\173\000\000\003\173\000\000\003\198\003\202\003\173\000\000\003\170\003\173\000\000\003\173\000\000\b\150\003\173\000\000\000\000\003\173\003\173\003\173\000\000\003\173\003\173\003\173\001\234\000\000\000\000\000\000\b\158\003\173\003\173\003\173\003\173\000\000\003\173\000\000\003\173\000\000\000\000\b\162\000\000\t\138\000\000\003\173\003\173\003\173\003\173\003\173\003\173\000\000\t\182\000\000\001\190\000\000\003\173\000\000\003\173\003\173\003\186\000\000\000\000\t\190\t\198\003\173\003\173\003\173\t\206\t\214\t\230\000\000\000\000\000\000\003\173\t\238\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\003\173\000\000\003\173\t\242\t\246\000\000\t\250\n\002\003\173\000\000\003\173\003\173\003\173\000\000\000\000\023\246\r>\003\173\n\006\n\n\003\173\000\000\003\173\003\173\000\000\003\173\003\173\003\173\003\173\n\014\000\000\n\018\000\000\000\000\000\000\003\173\000\000\003\173\003\173\000\000\r\002\003\173\003\173\003\173\003\173\003\173\003\173\n\150\016\246\003\173\003\173\r2\017\014\007\214\003\173\003\173\000\000\000\000\003\173\003\173\003\173\003\173\003\169\000\000\003\169\000\000\003\169\000\000\003\198\003\202\003\169\000\000\003\170\003\169\000\000\003\169\000\000\b\150\003\169\000\000\000\000\003\169\003\169\003\169\000\000\003\169\003\169\003\169\001\234\000\000\000\000\000\000\b\158\003\169\003\169\003\169\003\169\000\000\003\169\000\000\003\169\000\000\000\000\b\162\000\000\t\138\000\000\003\169\003\169\003\169\003\169\003\169\003\169\000\000\t\182\000\000\001\190\000\000\003\169\000\000\003\169\003\169\003\186\000\000\000\000\t\190\t\198\003\169\003\169\003\169\t\206\t\214\t\230\000\000\000\000\000\000\003\169\t\238\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\003\169\000\000\003\169\t\242\t\246\000\000\t\250\n\002\003\169\000\000\003\169\003\169\003\169\000\000\000\000\024:\r>\003\169\n\006\n\n\003\169\000\000\003\169\003\169\000\000\003\169\003\169\003\169\003\169\n\014\000\000\n\018\000\000\000\000\000\000\003\169\000\000\003\169\003\169\000\000\018&\003\169\003\169\003\169\003\169\003\169\003\169\n\150\016\246\003\169\003\169\r2\017\014\007\214\003\169\003\169\000\000\000\000\003\169\003\169\003\169\003\169\003\165\000\000\003\165\000\000\003\165\000\000\003\198\003\202\003\165\000\000\003\170\003\165\000\000\003\165\000\000\b\150\003\165\000\000\000\000\003\165\003\165\003\165\000\000\003\165\003\165\003\165\001\234\000\000\000\000\000\000\b\158\003\165\003\165\003\165\003\165\000\000\003\165\000\000\003\165\000\000\000\000\b\162\000\000\t\138\000\000\003\165\003\165\003\165\003\165\003\165\003\165\000\000\t\182\000\000\001\190\000\000\003\165\000\000\003\165\003\165\003\186\000\000\000\000\t\190\t\198\003\165\003\165\003\165\t\206\t\214\t\230\000\000\000\000\000\000\003\165\t\238\003\165\003\165\020\002\003\165\003\165\003\165\003\165\003\165\003\165\000\000\003\165\t\242\t\246\000\000\t\250\n\002\003\165\000\000\003\165\003\165\003\165\000\000\000\000\024n\r>\003\165\n\006\n\n\003\165\000\000\003\165\003\165\000\000\003\165\003\165\003\165\003\165\n\014\000\000\n\018\000\000\000\000\000\000\003\165\000\000\003\165\003\165\000\000\003\165\003\165\003\165\003\165\003\165\003\165\003\165\n\150\016\246\003\165\003\165\003\165\017\014\007\214\003\165\003\165\000\000\000\000\003\165\003\165\003\165\003\165\003\161\000\000\003\161\000\000\003\161\000\000\003\198\003\202\003\161\000\000\003\170\003\161\000\000\003\161\000\000\b\150\003\161\000\000\000\000\003\161\003\161\003\161\000\000\003\161\003\161\003\161\001\234\000\000\000\000\000\000\b\158\003\161\003\161\003\161\003\161\000\000\003\161\000\000\003\161\000\000\000\000\b\162\000\000\t\138\000\000\003\161\003\161\003\161\003\161\003\161\003\161\000\000\t\182\000\000\001\190\000\000\003\161\000\000\003\161\003\161\003\186\000\000\000\000\t\190\t\198\003\161\003\161\003\161\t\206\t\214\t\230\000\000\000\000\000\000\003\161\t\238\003\161\003\161\003\161\003\161\003\161\003\161\003\161\003\161\003\161\000\000\003\161\t\242\t\246\000\000\t\250\n\002\003\161\000\000\003\161\003\161\003\161\000\000\000\000\027\234\r>\003\161\n\006\n\n\003\161\000\000\003\161\003\161\000\000\003\161\003\161\003\161\003\161\n\014\000\000\n\018\000\000\000\000\000\000\003\161\000\000\003\161\003\161\000\000\r\002\003\161\003\161\003\161\003\161\003\161\003\161\n\150\016\246\003\161\003\161\r2\017\014\007\214\003\161\003\161\000\000\000\000\003\161\003\161\003\161\003\161\003\157\000\000\003\157\000\000\003\157\000\000\003\198\003\202\003\157\000\000\003\170\003\157\000\000\003\157\000\000\b\150\003\157\000\000\000\000\003\157\003\157\003\157\000\000\003\157\003\157\003\157\001\234\000\000\000\000\000\000\b\158\003\157\003\157\003\157\003\157\000\000\003\157\000\000\003\157\000\000\000\000\b\162\000\000\t\138\000\000\003\157\003\157\003\157\003\157\003\157\003\157\000\000\t\182\000\000\001\190\000\000\003\157\000\000\003\157\003\157\003\186\000\000\000\000\t\190\t\198\003\157\003\157\003\157\t\206\t\214\t\230\000\000\000\000\000\000\003\157\t\238\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\003\157\000\000\003\157\t\242\t\246\000\000\t\250\n\002\003\157\000\000\003\157\003\157\003\157\000\000\000\000\028\"\r>\003\157\n\006\n\n\003\157\000\000\003\157\003\157\000\000\003\157\003\157\003\157\003\157\n\014\000\000\n\018\000\000\000\000\000\000\003\157\000\000\003\157\003\157\000\000\018&\003\157\003\157\003\157\003\157\003\157\003\157\n\150\016\246\003\157\003\157\r2\017\014\007\214\003\157\003\157\000\000\000\000\003\157\003\157\003\157\003\157\003\153\000\000\003\153\000\000\003\153\000\000\003\198\003\202\003\153\000\000\003\170\003\153\000\000\003\153\000\000\b\150\003\153\000\000\000\000\003\153\003\153\003\153\000\000\003\153\003\153\003\153\001\234\000\000\000\000\000\000\b\158\003\153\003\153\003\153\003\153\000\000\003\153\000\000\003\153\000\000\000\000\b\162\000\000\t\138\000\000\003\153\003\153\003\153\003\153\003\153\003\153\000\000\t\182\000\000\001\190\000\000\003\153\000\000\003\153\003\153\003\186\000\000\000\000\t\190\t\198\003\153\003\153\003\153\t\206\t\214\t\230\000\000\000\000\000\000\003\153\t\238\003\153\003\153\020\002\003\153\003\153\003\153\003\153\003\153\003\153\000\000\003\153\t\242\t\246\000\000\t\250\n\002\003\153\000\000\003\153\003\153\003\153\000\000\000\000\028Z\r>\003\153\n\006\n\n\003\153\000\000\003\153\003\153\000\000\003\153\003\153\003\153\003\153\n\014\000\000\n\018\000\000\000\000\000\000\003\153\000\000\003\153\003\153\000\000\003\153\003\153\003\153\003\153\003\153\003\153\003\153\n\150\016\246\003\153\003\153\003\153\017\014\007\214\003\153\003\153\000\000\000\000\003\153\003\153\003\153\003\153\003\209\000\000\003\209\000\000\003\209\000\000\003\198\003\202\003\209\000\000\003\170\003\209\000\000\003\209\000\000\b\150\003\209\000\000\000\000\003\209\003\209\003\209\000\000\003\209\003\209\003\209\001\234\000\000\000\000\000\000\b\158\003\209\003\209\003\209\003\209\000\000\003\209\000\000\003\209\000\000\000\000\b\162\000\000\t\138\000\000\003\209\003\209\003\209\003\209\003\209\003\209\000\000\t\182\000\000\001\190\000\000\003\209\000\000\003\209\003\209\003\186\000\000\000\000\t\190\t\198\003\209\003\209\003\209\t\206\t\214\t\230\000\000\000\000\000\000\003\209\t\238\003\209\003\209\003\209\003\209\003\209\003\209\003\209\003\209\003\209\000\000\003\209\t\242\t\246\000\000\t\250\n\002\003\209\000\000\003\209\003\209\003\209\000\000\000\000\028\150\r>\003\209\n\006\n\n\003\209\000\000\003\209\003\209\000\000\003\209\003\209\003\209\003\209\n\014\000\000\n\018\000\000\000\000\000\000\003\209\000\000\003\209\003\209\000\000\r\002\003\209\003\209\003\209\003\209\003\209\003\209\n\150\016\246\003\209\003\209\r2\017\014\007\214\003\209\003\209\000\000\000\000\003\209\003\209\003\209\003\209\003\205\000\000\003\205\000\000\003\205\000\000\003\198\003\202\003\205\000\000\003\170\003\205\000\000\003\205\000\000\b\150\003\205\000\000\000\000\003\205\003\205\003\205\000\000\003\205\003\205\003\205\001\234\000\000\000\000\000\000\b\158\003\205\003\205\003\205\003\205\000\000\003\205\000\000\003\205\000\000\000\000\b\162\000\000\t\138\000\000\003\205\003\205\003\205\003\205\003\205\003\205\000\000\t\182\000\000\001\190\000\000\003\205\000\000\003\205\003\205\003\186\000\000\000\000\t\190\t\198\003\205\003\205\003\205\t\206\t\214\t\230\000\000\000\000\000\000\003\205\t\238\003\205\003\205\003\205\003\205\003\205\003\205\003\205\003\205\003\205\000\000\003\205\t\242\t\246\000\000\t\250\n\002\003\205\000\000\003\205\003\205\003\205\000\000\000\000\028\206\r>\003\205\n\006\n\n\003\205\000\000\003\205\003\205\000\000\003\205\003\205\003\205\003\205\n\014\000\000\n\018\000\000\000\000\000\000\003\205\000\000\003\205\003\205\000\000\018&\003\205\003\205\003\205\003\205\003\205\003\205\n\150\016\246\003\205\003\205\r2\017\014\007\214\003\205\003\205\000\000\000\000\003\205\003\205\003\205\003\205\003\201\000\000\003\201\000\000\003\201\000\000\003\198\003\202\003\201\000\000\003\170\003\201\000\000\003\201\000\000\b\150\019\214\000\000\000\000\003\201\003\201\003\201\000\000\003\201\003\201\003\201\001\234\000\000\000\000\000\000\b\158\003\201\003\201\003\201\020\170\000\000\003\201\000\000\003\201\000\000\000\000\b\162\000\000\t\138\000\000\003\201\020\214\003\201\003\201\003\201\003\201\000\000\t\182\000\000\001\190\000\000\003\201\000\000\003\201\003\201\003\186\000\000\000\000\t\190\t\198\003\201\003\201\003\201\t\206\t\214\t\230\000\000\000\000\000\000\003\201\t\238\003\201\003\201\020\002\021\002\003\201\003\201\003\201\003\201\003\201\000\000\003\201\t\242\t\246\000\000\t\250\n\002\003\201\000\000\003\201\003\201\003\201\000\000\000\000\029\006\r>\003\201\n\006\n\n\003\201\000\000\003\201\003\201\000\000\003\201\003\201\003\201\003\201\n\014\000\000\n\018\000\000\000\000\000\000\003\201\000\000\003\201\003\201\000\000\003\201\003\201\003\201\003\201\003\201\003\201\003\201\n\150\016\246\003\201\003\201\003\201\017\014\007\214\003\201\003\201\000\000\000\000\003\201\003\201\003\201\003\201\003\197\000\000\003\197\000\000\003\197\000\000\003\198\003\202\003\197\000\000\003\170\003\197\000\000\003\197\000\000\b\150\003\197\000\000\000\000\003\197\003\197\003\197\000\000\003\197\003\197\003\197\001\234\000\000\000\000\000\000\b\158\003\197\003\197\003\197\003\197\000\000\003\197\000\000\003\197\000\000\000\000\b\162\000\000\t\138\000\000\003\197\003\197\003\197\003\197\003\197\003\197\000\000\t\182\000\000\001\190\000\000\003\197\000\000\003\197\003\197\003\186\000\000\000\000\t\190\t\198\003\197\003\197\003\197\t\206\t\214\t\230\000\000\000\000\000\000\003\197\t\238\003\197\003\197\003\197\003\197\003\197\003\197\003\197\003\197\003\197\000\000\003\197\t\242\t\246\000\000\t\250\n\002\003\197\000\000\003\197\003\197\003\197\000\000\000\000\029F\r>\003\197\n\006\n\n\003\197\000\000\003\197\003\197\000\000\003\197\003\197\003\197\003\197\n\014\000\000\n\018\000\000\000\000\000\000\003\197\000\000\003\197\003\197\000\000\r\002\003\197\003\197\003\197\003\197\003\197\003\197\n\150\016\246\003\197\003\197\r2\017\014\007\214\003\197\003\197\000\000\000\000\003\197\003\197\003\197\003\197\003\193\000\000\003\193\000\000\003\193\000\000\003\198\003\202\003\193\000\000\003\170\003\193\000\000\003\193\000\000\b\150\003\193\000\000\000\000\003\193\003\193\003\193\000\000\003\193\003\193\003\193\001\234\000\000\000\000\000\000\b\158\003\193\003\193\003\193\003\193\000\000\003\193\000\000\003\193\000\000\000\000\b\162\000\000\t\138\000\000\003\193\003\193\003\193\003\193\003\193\003\193\000\000\t\182\000\000\001\190\000\000\003\193\000\000\003\193\003\193\003\186\000\000\000\000\t\190\t\198\003\193\003\193\003\193\t\206\t\214\t\230\000\000\000\000\000\000\003\193\t\238\003\193\003\193\003\193\003\193\003\193\003\193\003\193\003\193\003\193\000\000\003\193\t\242\t\246\000\000\t\250\n\002\003\193\000\000\003\193\003\193\003\193\000\000\000\000\029~\r>\003\193\n\006\n\n\003\193\000\000\003\193\003\193\000\000\003\193\003\193\003\193\003\193\n\014\000\000\n\018\000\000\000\000\000\000\003\193\000\000\003\193\003\193\000\000\018&\003\193\003\193\003\193\003\193\003\193\003\193\n\150\016\246\003\193\003\193\r2\017\014\007\214\003\193\003\193\000\000\000\000\003\193\003\193\003\193\003\193\003\189\000\000\003\189\000\000\003\189\000\000\003\198\003\202\003\189\000\000\003\170\003\189\000\000\003\189\000\000\b\150\019\214\000\000\000\000\003\189\003\189\003\189\000\000\003\189\003\189\003\189\001\234\000\000\000\000\000\000\b\158\003\189\003\189\003\189\020\170\000\000\003\189\000\000\003\189\000\000\000\000\b\162\000\000\t\138\000\000\003\189\020\214\003\189\003\189\003\189\003\189\000\000\t\182\000\000\001\190\000\000\003\189\000\000\003\189\003\189\003\186\000\000\000\000\t\190\t\198\003\189\003\189\003\189\t\206\t\214\t\230\000\000\000\000\000\000\003\189\t\238\003\189\003\189\020\002\021\002\003\189\003\189\003\189\003\189\003\189\000\000\003\189\t\242\t\246\000\000\t\250\n\002\003\189\000\000\003\189\003\189\003\189\000\000\000\000\029\182\r>\003\189\n\006\n\n\003\189\000\000\003\189\003\189\000\000\003\189\003\189\003\189\003\189\n\014\000\000\n\018\000\000\000\000\000\000\003\189\000\000\003\189\003\189\000\000\003\189\003\189\003\189\003\189\003\189\003\189\003\189\n\150\016\246\003\189\003\189\003\189\017\014\007\214\003\189\003\189\000\000\000\000\003\189\003\189\003\189\003\189\004=\000\000\004=\000\000\004=\000\000\003\198\003\202\004=\000\000\003\170\004=\000\000\004=\000\000\b\150\004=\000\000\000\000\004=\004=\004=\000\000\004=\004=\004=\001\234\000\000\000\000\000\000\b\158\004=\004=\004=\004=\000\000\004=\000\000\004=\000\000\000\000\b\162\000\000\t\138\000\000\004=\004=\004=\004=\004=\004=\000\000\t\182\000\000\001\190\000\000\004=\000\000\004=\004=\003\186\000\000\000\000\t\190\t\198\004=\004=\004=\t\206\t\214\t\230\000\000\000\000\000\000\004=\t\238\004=\004=\004=\004=\004=\004=\004=\004=\004=\000\000\004=\t\242\t\246\000\000\t\250\n\002\004=\000\000\004=\004=\004=\000\000\000\000\029\230\r>\004=\n\006\n\n\004=\000\000\004=\004=\000\000\004=\004=\004=\004=\n\014\000\000\n\018\000\000\000\000\000\000\004=\000\000\004=\004=\000\000\r\002\004=\004=\004=\004=\004=\004=\n\150\016\246\004=\004=\r2\017\014\007\214\004=\004=\000\000\000\000\004=\004=\004=\004=\0049\000\000\0049\000\000\0049\000\000\003\198\003\202\0049\000\000\003\170\0049\000\000\0049\000\000\b\150\0049\000\000\000\000\0049\0049\0049\000\000\0049\0049\0049\001\234\000\000\000\000\000\000\b\158\0049\0049\0049\0049\000\000\0049\000\000\0049\000\000\000\000\b\162\000\000\t\138\000\000\0049\0049\0049\0049\0049\0049\000\000\t\182\000\000\001\190\000\000\0049\000\000\0049\0049\003\186\000\000\000\000\t\190\t\198\0049\0049\0049\t\206\t\214\t\230\000\000\000\000\000\000\0049\t\238\0049\0049\0049\0049\0049\0049\0049\0049\0049\000\000\0049\t\242\t\246\000\000\t\250\n\002\0049\000\000\0049\0049\0049\000\000\000\000\030\194\r>\0049\n\006\n\n\0049\000\000\0049\0049\000\000\0049\0049\0049\0049\n\014\000\000\n\018\000\000\000\000\000\000\0049\000\000\0049\0049\000\000\018&\0049\0049\0049\0049\0049\0049\n\150\016\246\0049\0049\r2\017\014\007\214\0049\0049\000\000\000\000\0049\0049\0049\0049\0045\000\000\0045\000\000\0045\000\000\003\198\003\202\0045\000\000\003\170\0045\000\000\0045\000\000\b\150\019\214\000\000\000\000\0045\0045\0045\000\000\0045\0045\0045\001\234\000\000\000\000\000\000\b\158\020~\021.\021Z\020\170\000\000\021\134\000\000\0045\000\000\000\000\b\162\000\000\t\138\000\000\0045\020\214\0045\021\178\021\222\0045\000\000\t\182\000\000\001\190\000\000\0045\000\000\022\n\0045\003\186\000\000\000\000\t\190\t\198\0045\0045\000\242\t\206\t\214\t\230\000\000\000\000\000\000\0045\t\238\0045\0045\020\002\021\002\0226\022b\023\018\0045\0045\000\000\0045\t\242\t\246\000\000\t\250\n\002\0045\000\000\0045\0045\023>\000\000\000\000\030\218\r>\0045\n\006\n\n\0045\000\000\0045\023j\000\000\0045\0045\0045\0045\n\014\000\000\n\018\000\000\000\000\000\000\0045\000\000\0045\0045\000\000\0045\0045\0045\0045\022\142\0045\0045\n\150\016\246\0045\023\150\0045\017\014\007\214\022\186\022\230\000\000\000\000\0045\0045\023\194\023\238\003\245\000\000\003\245\000\000\003\245\000\000\003\198\003\202\003\245\000\000\003\170\003\245\000\000\003\245\000\000\b\150\003\245\000\000\000\000\003\245\003\245\003\245\000\000\003\245\003\245\003\245\001\234\000\000\000\000\000\000\b\158\003\245\003\245\003\245\003\245\000\000\003\245\000\000\003\245\000\000\000\000\b\162\000\000\t\138\000\000\003\245\003\245\003\245\003\245\003\245\003\245\000\000\t\182\000\000\001\190\000\000\003\245\000\000\003\245\003\245\003\186\000\000\000\000\t\190\t\198\003\245\003\245\003\245\t\206\t\214\t\230\000\000\000\000\000\000\003\245\t\238\003\245\003\245\003\245\003\245\003\245\003\245\003\245\003\245\003\245\000\000\003\245\t\242\t\246\000\000\t\250\n\002\003\245\000\000\003\245\003\245\003\245\000\000\000\000\031\022\r>\003\245\n\006\n\n\003\245\000\000\003\245\003\245\000\000\003\245\003\245\003\245\003\245\n\014\000\000\n\018\000\000\000\000\000\000\003\245\000\000\003\245\003\245\000\000\r\002\003\245\003\245\003\245\003\245\003\245\003\245\n\150\016\246\003\245\003\245\r2\017\014\007\214\003\245\003\245\000\000\000\000\003\245\003\245\003\245\003\245\003\241\000\000\003\241\000\000\003\241\000\000\003\198\003\202\003\241\000\000\003\170\003\241\000\000\003\241\000\000\b\150\003\241\000\000\000\000\003\241\003\241\003\241\000\000\003\241\003\241\003\241\001\234\000\000\000\000\000\000\b\158\003\241\003\241\003\241\003\241\000\000\003\241\000\000\003\241\000\000\000\000\b\162\000\000\t\138\000\000\003\241\003\241\003\241\003\241\003\241\003\241\000\000\t\182\000\000\001\190\000\000\003\241\000\000\003\241\003\241\003\186\000\000\000\000\t\190\t\198\003\241\003\241\003\241\t\206\t\214\t\230\000\000\000\000\000\000\003\241\t\238\003\241\003\241\003\241\003\241\003\241\003\241\003\241\003\241\003\241\000\000\003\241\t\242\t\246\000\000\t\250\n\002\003\241\000\000\003\241\003\241\003\241\000\000\000\000\031F\r>\003\241\n\006\n\n\003\241\000\000\003\241\003\241\000\000\003\241\003\241\003\241\003\241\n\014\000\000\n\018\000\000\000\000\000\000\003\241\000\000\003\241\003\241\000\000\018&\003\241\003\241\003\241\003\241\003\241\003\241\n\150\016\246\003\241\003\241\r2\017\014\007\214\003\241\003\241\000\000\000\000\003\241\003\241\003\241\003\241\003\237\000\000\003\237\000\000\003\237\000\000\003\198\003\202\003\237\000\000\003\170\003\237\000\000\003\237\000\000\b\150\019\214\000\000\000\000\003\237\003\237\003\237\000\000\003\237\003\237\003\237\001\234\000\000\000\000\000\000\b\158\003\237\003\237\003\237\020\170\000\000\003\237\000\000\003\237\000\000\000\000\b\162\000\000\t\138\000\000\003\237\020\214\003\237\003\237\003\237\003\237\000\000\t\182\000\000\001\190\000\000\003\237\000\000\003\237\003\237\003\186\000\000\000\000\t\190\t\198\003\237\003\237\003\237\t\206\t\214\t\230\000\000\000\000\000\000\003\237\t\238\003\237\003\237\020\002\021\002\003\237\003\237\003\237\003\237\003\237\000\000\003\237\t\242\t\246\000\000\t\250\n\002\003\237\000\000\003\237\003\237\003\237\000\000\000\000\031\174\r>\003\237\n\006\n\n\003\237\000\000\003\237\003\237\000\000\003\237\003\237\003\237\003\237\n\014\000\000\n\018\000\000\000\000\000\000\003\237\000\000\003\237\003\237\000\000\003\237\003\237\003\237\003\237\003\237\003\237\003\237\n\150\016\246\003\237\003\237\003\237\017\014\007\214\003\237\003\237\000\000\000\000\003\237\003\237\003\237\003\237\003\233\000\000\003\233\000\000\003\233\000\000\003\198\003\202\003\233\000\000\003\170\003\233\000\000\003\233\000\000\b\150\003\233\000\000\000\000\003\233\003\233\003\233\000\000\003\233\003\233\003\233\001\234\000\000\000\000\000\000\b\158\003\233\003\233\003\233\003\233\000\000\003\233\000\000\003\233\000\000\000\000\b\162\000\000\t\138\000\000\003\233\003\233\003\233\003\233\003\233\003\233\000\000\t\182\000\000\001\190\000\000\003\233\000\000\003\233\003\233\003\186\000\000\000\000\t\190\t\198\003\233\003\233\003\233\t\206\t\214\t\230\000\000\000\000\000\000\003\233\t\238\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\003\233\000\000\003\233\t\242\t\246\000\000\t\250\n\002\003\233\000\000\003\233\003\233\003\233\000\000\000\000 \022\r>\003\233\n\006\n\n\003\233\000\000\003\233\003\233\000\000\003\233\003\233\003\233\003\233\n\014\000\000\n\018\000\000\000\000\000\000\003\233\000\000\003\233\003\233\000\000\r\002\003\233\003\233\003\233\003\233\003\233\003\233\n\150\016\246\003\233\003\233\r2\017\014\007\214\003\233\003\233\000\000\000\000\003\233\003\233\003\233\003\233\003\229\000\000\003\229\000\000\003\229\000\000\003\198\003\202\003\229\000\000\003\170\003\229\000\000\003\229\000\000\b\150\003\229\000\000\000\000\003\229\003\229\003\229\000\000\003\229\003\229\003\229\001\234\000\000\000\000\000\000\b\158\003\229\003\229\003\229\003\229\000\000\003\229\000\000\003\229\000\000\000\000\b\162\000\000\t\138\000\000\003\229\003\229\003\229\003\229\003\229\003\229\000\000\t\182\000\000\001\190\000\000\003\229\000\000\003\229\003\229\003\186\000\000\000\000\t\190\t\198\003\229\003\229\003\229\t\206\t\214\t\230\000\000\000\000\000\000\003\229\t\238\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\003\229\000\000\003\229\t\242\t\246\000\000\t\250\n\002\003\229\000\000\003\229\003\229\003\229\000\000\000\000 .\r>\003\229\n\006\n\n\003\229\000\000\003\229\003\229\000\000\003\229\003\229\003\229\003\229\n\014\000\000\n\018\000\000\000\000\000\000\003\229\000\000\003\229\003\229\000\000\018&\003\229\003\229\003\229\003\229\003\229\003\229\n\150\016\246\003\229\003\229\r2\017\014\007\214\003\229\003\229\000\000\000\000\003\229\003\229\003\229\003\229\003\225\000\000\003\225\000\000\003\225\000\000\003\198\003\202\003\225\000\000\003\170\003\225\000\000\003\225\000\000\b\150\019\214\000\000\000\000\003\225\003\225\003\225\000\000\003\225\003\225\003\225\001\234\000\000\000\000\000\000\b\158\003\225\003\225\003\225\020\170\000\000\003\225\000\000\003\225\000\000\000\000\b\162\000\000\t\138\000\000\003\225\020\214\003\225\003\225\003\225\003\225\000\000\t\182\000\000\001\190\000\000\003\225\000\000\003\225\003\225\003\186\000\000\000\000\t\190\t\198\003\225\003\225\003\225\t\206\t\214\t\230\000\000\000\000\000\000\003\225\t\238\003\225\003\225\020\002\021\002\003\225\003\225\003\225\003\225\003\225\000\000\003\225\t\242\t\246\000\000\t\250\n\002\003\225\000\000\003\225\003\225\003\225\000\000\000\000 r\r>\003\225\n\006\n\n\003\225\000\000\003\225\003\225\000\000\003\225\003\225\003\225\003\225\n\014\000\000\n\018\000\000\000\000\000\000\003\225\000\000\003\225\003\225\000\000\003\225\003\225\003\225\003\225\003\225\003\225\003\225\n\150\016\246\003\225\003\225\003\225\017\014\007\214\003\225\003\225\000\000\000\000\003\225\003\225\003\225\003\225\004%\000\000\004%\000\000\004%\000\000\003\198\003\202\004%\000\000\003\170\004%\000\000\004%\000\000\b\150\004%\000\000\000\000\004%\004%\004%\000\000\004%\004%\004%\001\234\000\000\000\000\000\000\b\158\004%\004%\004%\004%\000\000\004%\000\000\004%\000\000\000\000\b\162\000\000\t\138\000\000\004%\004%\004%\004%\004%\004%\000\000\t\182\000\000\001\190\000\000\004%\000\000\004%\004%\003\186\000\000\000\000\t\190\t\198\004%\004%\004%\t\206\t\214\t\230\000\000\000\000\000\000\004%\t\238\004%\004%\004%\004%\004%\004%\004%\004%\004%\000\000\004%\t\242\t\246\000\000\t\250\n\002\004%\000\000\004%\004%\004%\000\000\000\000 \166\r>\004%\n\006\n\n\004%\000\000\004%\004%\000\000\004%\004%\004%\004%\n\014\000\000\n\018\000\000\000\000\000\000\004%\000\000\004%\004%\000\000\r\002\004%\004%\004%\004%\004%\004%\n\150\016\246\004%\004%\r2\017\014\007\214\004%\004%\000\000\000\000\004%\004%\004%\004%\004!\000\000\004!\000\000\004!\000\000\003\198\003\202\004!\000\000\003\170\004!\000\000\004!\000\000\b\150\004!\000\000\000\000\004!\004!\004!\000\000\004!\004!\004!\001\234\000\000\000\000\000\000\b\158\004!\004!\004!\004!\000\000\004!\000\000\004!\000\000\000\000\b\162\000\000\t\138\000\000\004!\004!\004!\004!\004!\004!\000\000\t\182\000\000\001\190\000\000\004!\000\000\004!\004!\003\186\000\000\000\000\t\190\t\198\004!\004!\004!\t\206\t\214\t\230\000\000\000\000\000\000\004!\t\238\004!\004!\004!\004!\004!\004!\004!\004!\004!\000\000\004!\t\242\t\246\000\000\t\250\n\002\004!\000\000\004!\004!\004!\000\000\000\000 \218\r>\004!\n\006\n\n\004!\000\000\004!\004!\000\000\004!\004!\004!\004!\n\014\000\000\n\018\000\000\000\000\000\000\004!\000\000\004!\004!\000\000\018&\004!\004!\004!\004!\004!\004!\n\150\016\246\004!\004!\r2\017\014\007\214\004!\004!\000\000\000\000\004!\004!\004!\004!\004\029\000\000\004\029\000\000\004\029\000\000\003\198\003\202\004\029\000\000\003\170\004\029\000\000\004\029\000\000\b\150\019\214\000\000\000\000\004\029\004\029\004\029\000\000\004\029\004\029\004\029\001\234\000\000\000\000\000\000\b\158\020~\021.\021Z\020\170\000\000\004\029\000\000\004\029\000\000\000\000\b\162\000\000\t\138\000\000\004\029\020\214\004\029\021\178\021\222\004\029\000\000\t\182\000\000\001\190\000\000\004\029\000\000\004\029\004\029\003\186\000\000\000\000\t\190\t\198\004\029\004\029\000\242\t\206\t\214\t\230\000\000\000\000\000\000\004\029\t\238\004\029\004\029\020\002\021\002\0226\022b\004\029\004\029\004\029\000\000\004\029\t\242\t\246\000\000\t\250\n\002\004\029\000\000\004\029\004\029\004\029\000\000\000\000!\n\r>\004\029\n\006\n\n\004\029\000\000\004\029\004\029\000\000\004\029\004\029\004\029\004\029\n\014\000\000\n\018\000\000\000\000\000\000\004\029\000\000\004\029\004\029\000\000\004\029\004\029\004\029\004\029\022\142\004\029\004\029\n\150\016\246\004\029\004\029\004\029\017\014\007\214\022\186\022\230\000\000\000\000\004\029\004\029\004\029\004\029\003\149\000\000\003\149\000\000\003\149\000\000\003\198\003\202\003\149\000\000\003\170\003\149\000\000\003\149\000\000\b\150\003\149\000\000\000\000\003\149\003\149\003\149\000\000\003\149\003\149\003\149\001\234\000\000\000\000\000\000\b\158\003\149\003\149\003\149\003\149\000\000\003\149\000\000\003\149\000\000\000\000\b\162\000\000\t\138\000\000\003\149\003\149\003\149\003\149\003\149\003\149\000\000\t\182\000\000\001\190\000\000\003\149\000\000\003\149\003\149\003\186\000\000\000\000\t\190\t\198\003\149\003\149\003\149\t\206\t\214\t\230\000\000\000\000\000\000\003\149\t\238\003\149\003\149\003\149\003\149\003\149\003\149\003\149\003\149\003\149\000\000\003\149\t\242\t\246\000\000\t\250\n\002\003\149\000\000\003\149\003\149\003\149\000\000\000\000!6\r>\003\149\n\006\n\n\003\149\000\000\003\149\003\149\000\000\003\149\003\149\003\149\003\149\n\014\000\000\n\018\000\000\000\000\000\000\003\149\000\000\003\149\003\149\000\000\r\002\003\149\003\149\003\149\003\149\003\149\003\149\n\150\016\246\003\149\003\149\r2\017\014\007\214\003\149\003\149\000\000\000\000\003\149\003\149\003\149\003\149\003\145\000\000\003\145\000\000\003\145\000\000\003\198\003\202\003\145\000\000\003\170\003\145\000\000\003\145\000\000\b\150\003\145\000\000\000\000\003\145\003\145\003\145\000\000\003\145\003\145\003\145\001\234\000\000\000\000\000\000\b\158\003\145\003\145\003\145\003\145\000\000\003\145\000\000\003\145\000\000\000\000\b\162\000\000\t\138\000\000\003\145\003\145\003\145\003\145\003\145\003\145\000\000\t\182\000\000\001\190\000\000\003\145\000\000\003\145\003\145\003\186\000\000\000\000\t\190\t\198\003\145\003\145\003\145\t\206\t\214\t\230\000\000\000\000\000\000\003\145\t\238\003\145\003\145\003\145\003\145\003\145\003\145\003\145\003\145\003\145\000\000\003\145\t\242\t\246\000\000\t\250\n\002\003\145\000\000\003\145\003\145\003\145\000\000\000\000!N\r>\003\145\n\006\n\n\003\145\000\000\003\145\003\145\000\000\003\145\003\145\003\145\003\145\n\014\000\000\n\018\000\000\000\000\000\000\003\145\000\000\003\145\003\145\000\000\018&\003\145\003\145\003\145\003\145\003\145\003\145\n\150\016\246\003\145\003\145\r2\017\014\007\214\003\145\003\145\000\000\000\000\003\145\003\145\003\145\003\145\003\141\000\000\003\141\000\000\003\141\000\000\003\198\003\202\003\141\000\000\003\170\003\141\000\000\003\141\000\000\b\150\019\214\000\000\000\000\003\141\003\141\003\141\000\000\003\141\003\141\003\141\001\234\000\000\000\000\000\000\b\158\003\141\003\141\003\141\020\170\000\000\003\141\000\000\003\141\000\000\000\000\b\162\000\000\t\138\000\000\003\141\020\214\003\141\003\141\003\141\003\141\000\000\t\182\000\000\001\190\000\000\003\141\000\000\003\141\003\141\003\186\000\000\000\000\t\190\t\198\003\141\003\141\003\141\t\206\t\214\t\230\000\000\000\000\000\000\003\141\t\238\003\141\003\141\020\002\021\002\003\141\003\141\003\141\003\141\003\141\000\000\003\141\t\242\t\246\000\000\t\250\n\002\003\141\000\000\003\141\003\141\003\141\000\000\000\000!\138\r>\003\141\n\006\n\n\003\141\000\000\003\141\003\141\000\000\003\141\003\141\003\141\003\141\n\014\000\000\n\018\000\000\000\000\000\000\003\141\000\000\003\141\003\141\000\000\003\141\003\141\003\141\003\141\003\141\003\141\003\141\n\150\016\246\003\141\003\141\003\141\017\014\007\214\003\141\003\141\000\000\000\000\003\141\003\141\003\141\003\141\003\137\000\000\003\137\000\000\003\137\000\000\003\198\003\202\003\137\000\000\003\170\003\137\000\000\003\137\000\000\b\150\003\137\000\000\000\000\003\137\003\137\003\137\000\000\003\137\003\137\003\137\001\234\000\000\000\000\000\000\b\158\003\137\003\137\003\137\003\137\000\000\003\137\000\000\003\137\000\000\000\000\b\162\000\000\t\138\000\000\003\137\003\137\003\137\003\137\003\137\003\137\000\000\t\182\000\000\001\190\000\000\003\137\000\000\003\137\003\137\003\186\000\000\000\000\t\190\t\198\003\137\003\137\003\137\t\206\t\214\t\230\000\000\000\000\000\000\003\137\t\238\003\137\003\137\003\137\003\137\003\137\003\137\003\137\003\137\003\137\000\000\003\137\t\242\t\246\000\000\t\250\n\002\003\137\000\000\003\137\003\137\003\137\000\000\000\000!\186\r>\003\137\n\006\n\n\003\137\000\000\003\137\003\137\000\000\003\137\003\137\003\137\003\137\n\014\000\000\n\018\000\000\000\000\000\000\003\137\000\000\003\137\003\137\000\000\r\002\003\137\003\137\003\137\003\137\003\137\003\137\n\150\016\246\003\137\003\137\r2\017\014\007\214\003\137\003\137\000\000\000\000\003\137\003\137\003\137\003\137\003\133\000\000\003\133\000\000\003\133\000\000\003\198\003\202\003\133\000\000\003\170\003\133\000\000\003\133\000\000\b\150\003\133\000\000\000\000\003\133\003\133\003\133\000\000\003\133\003\133\003\133\001\234\000\000\000\000\000\000\b\158\003\133\003\133\003\133\003\133\000\000\003\133\000\000\003\133\000\000\000\000\b\162\000\000\t\138\000\000\003\133\003\133\003\133\003\133\003\133\003\133\000\000\t\182\000\000\001\190\000\000\003\133\000\000\003\133\003\133\003\186\000\000\000\000\t\190\t\198\003\133\003\133\003\133\t\206\t\214\t\230\000\000\000\000\000\000\003\133\t\238\003\133\003\133\003\133\003\133\003\133\003\133\003\133\003\133\003\133\000\000\003\133\t\242\t\246\000\000\t\250\n\002\003\133\000\000\003\133\003\133\003\133\000\000\000\000\"2\r>\003\133\n\006\n\n\003\133\000\000\003\133\003\133\000\000\003\133\003\133\003\133\003\133\n\014\000\000\n\018\000\000\000\000\000\000\003\133\000\000\003\133\003\133\000\000\018&\003\133\003\133\003\133\003\133\003\133\003\133\n\150\016\246\003\133\003\133\r2\017\014\007\214\003\133\003\133\000\000\000\000\003\133\003\133\003\133\003\133\003\129\000\000\003\129\000\000\003\129\000\000\003\198\003\202\003\129\000\000\003\170\003\129\000\000\003\129\000\000\b\150\019\214\000\000\000\000\003\129\003\129\003\129\000\000\003\129\003\129\003\129\001\234\000\000\000\000\000\000\b\158\020~\021.\021Z\020\170\000\000\003\129\000\000\003\129\000\000\000\000\b\162\000\000\t\138\000\000\003\129\020\214\003\129\021\178\021\222\003\129\000\000\t\182\000\000\001\190\000\000\003\129\000\000\003\129\003\129\003\186\000\000\000\000\t\190\t\198\003\129\003\129\000\242\t\206\t\214\t\230\000\000\000\000\000\000\003\129\t\238\003\129\003\129\020\002\021\002\0226\022b\003\129\003\129\003\129\000\000\003\129\t\242\t\246\000\000\t\250\n\002\003\129\000\000\003\129\003\129\003\129\000\000\000\000\"\130\r>\003\129\n\006\n\n\003\129\000\000\003\129\003\129\000\000\003\129\003\129\003\129\003\129\n\014\000\000\n\018\000\000\000\000\000\000\003\129\000\000\003\129\003\129\000\000\003\129\003\129\003\129\003\129\022\142\003\129\003\129\n\150\016\246\003\129\003\129\003\129\017\014\007\214\022\186\022\230\000\000\000\000\003\129\003\129\003\129\003\129\004\129\000\000\004\129\000\000\004\129\000\000\003\198\003\202\004\129\000\000\003\170\004\129\000\000\004\129\000\000\b\150\004\129\000\000\000\000\004\129\004\129\004\129\000\000\004\129\004\129\004\129\001\234\000\000\000\000\000\000\b\158\004\129\004\129\004\129\004\129\000\000\004\129\000\000\004\129\000\000\000\000\b\162\000\000\t\138\000\000\004\129\004\129\004\129\004\129\004\129\004\129\000\000\t\182\000\000\001\190\000\000\004\129\000\000\004\129\004\129\003\186\000\000\000\000\t\190\t\198\004\129\004\129\004\129\t\206\t\214\t\230\000\000\000\000\000\000\004\129\t\238\004\129\004\129\004\129\004\129\004\129\004\129\004\129\004\129\004\129\000\000\004\129\t\242\t\246\000\000\t\250\n\002\004\129\000\000\004\129\004\129\004\129\000\000\000\000%\178\r>\004\129\n\006\n\n\004\129\000\000\004\129\004\129\000\000\004\129\004\129\004\129\004\129\n\014\000\000\n\018\000\000\000\000\000\000\004\129\000\000\004\129\004\129\000\000\r\002\004\129\004\129\004\129\004\129\004\129\004\129\n\150\016\246\004\129\004\129\r2\017\014\007\214\004\129\004\129\000\000\000\000\004\129\004\129\004\129\004\129\004}\000\000\004}\000\000\004}\000\000\003\198\003\202\004}\000\000\003\170\004}\000\000\004}\000\000\b\150\004}\000\000\000\000\004}\004}\004}\000\000\004}\004}\004}\001\234\000\000\000\000\000\000\b\158\004}\004}\004}\004}\000\000\004}\000\000\004}\000\000\000\000\b\162\000\000\t\138\000\000\004}\004}\004}\004}\004}\004}\000\000\t\182\000\000\001\190\000\000\004}\000\000\004}\004}\003\186\000\000\000\000\t\190\t\198\004}\004}\004}\t\206\t\214\t\230\000\000\000\000\000\000\004}\t\238\004}\004}\004}\004}\004}\004}\004}\004}\004}\000\000\004}\t\242\t\246\000\000\t\250\n\002\004}\000\000\004}\004}\004}\000\000\000\000/\194\r>\004}\n\006\n\n\004}\000\000\004}\004}\000\000\004}\004}\004}\004}\n\014\000\000\n\018\000\000\000\000\000\000\004}\000\000\004}\004}\000\000\018&\004}\004}\004}\004}\004}\004}\n\150\016\246\004}\004}\r2\017\014\007\214\004}\004}\000\000\000\000\004}\004}\004}\004}\004y\000\000\004y\000\000\004y\000\000\003\198\003\202\004y\000\000\003\170\004y\000\000\004y\000\000\b\150\019\214\000\000\000\000\004y\004y\004y\000\000\004y\004y\004y\001\234\000\000\000\000\000\000\b\158\020~\021.\021Z\020\170\000\000\004y\000\000\004y\000\000\000\000\b\162\000\000\t\138\000\000\004y\020\214\004y\021\178\021\222\004y\000\000\t\182\003\202\t\234\000\000\004y\000\000\004y\004y\003\186\000\000\000\000\t\190\t\198\004y\004y\004y\t\206\t\214\t\230\000\000\002R\000\000\004y\t\238\004y\004y\020\002\021\002\0226\004y\004y\004y\004y\000\000\004y\t\242\t\246\000\000\t\250\n\002\004y\005\030\004y\004y\004y\000\000\028\130\000\000\t\150\004y\n\006\n\n\004y\000\000\004y\004y\000\000\004y\004y\004y\004y\n\014\028\186\n\018\028\242\000\000\002z\004y\000\000\004y\004y\000\000\004y\004y\004y\004y\022\142\004y\004y\n\150\016\246\004y\004y\004y\017\014\007\214\004y\004y\000\000\017r\004y\004y\004y\004y\003}\000\000\003}\000\000\003}\000\000\000\000\000\000\003}\000\000\000\000\003}\002\137\003}\001!\002\137\003}\000\000\000\000\003}\003}\003}\000\000\003}\003}\003}\017f\002\137\002\137(\030\000\000\003}\003}\003}\003}\001!\003}\000\000\003}\000\n\000\000\000\242\000\000\002\137\011\218\003}\003}\003}\003}\003}\003}\000\000\021Q\000\000\000\000\000\n\003}\002\137\003}\003}\001!\021Q)z\000\000\000\000\003}\003}\003}\012R\001!\002\154\015\r\002\137\002\137\003}\001!\003}\003}\003}\003}\003}\003}\003}\003}\003}\000\000\003}\001!\002\137\000\000\000\242\000\000\003}\000\000\003}\003}\003}\000\000\000\000\021Q\000\000\003}\000\000\017v\003}\000\000\003}\003}\002\137\003}\003}\003}\003}\004v\000\000\000\242\000\000\000\000\000\000\003}\001!\003}\003}\000\000\r\002\003}\003}\003}\003}\003}\003}\002Z\001!\003}\003}\r2\000\000\021Q\003}\003}\015\138\004n\003}\003}\003}\003}\003y\011\222\003y\000\000\003y\011r\012\014\t\162\003y\018\194\000\000\003y\012\026\003y\000\000\005=\003y\000\000\012\"\003y\003y\003y\000\000\003y\003y\003y\011\222\015\r\004\014\000\000\011r\003y\003y\003y\003y\015\r\003y\012\026\003y\000\000\000\000\005\225\000\000\012\"\014\217\003y\003y\003y\003y\003y\003y\001\230\011\002\000\000\000\000\005=\003y\000\000\003y\003y\007\198$F\000\000\n&\n*\003y\003y\003y\012>\000\000\n6\t\177\"\222\000\000\003y &\003y\003y\003y\003y\003y\003y\003y\003y\003y\000\000\003y\004v\000\242\005=\nz\n\130\003y\018\006\003y\003y\003y\r\002\004\018\015\142\000\000\003y\016\222\000\000\003y\000\000\003y\003y\r2\003y\003y\003y\003y\000\000$J\000\242\000\000\014\217\000\000\003y\000\000\003y\003y\000\000\018&\003y\003y\003y\003y\003y\003y\000\000!\002\003y\003y\r2\005\166\000\000\003y\003y#:\000\000\003y\003y\003y\003y\003u\000\000\003u\000\000\003u\000\000\000\000\t\162\003u!.\014\217\003u\017\218\003u\000\000\017\226\019\214\000\000\018Z\003u\003u\003u\000\000\003u\003u\003u\011\222\000\000 R\005=\011r\020~\021.\021Z\020\170\000\000\003u\012\026\003u\000\000\017\234\000\000\018b\012\"\018j\003u\020\214\003u\021\178\021\222\003u\r\002\0172\000\000\001\190\004n\003u\000\000\003u\003u\014\237\000\000\r2 \014\"*\003u\003u\000\242\"z\"\202\"\214\b\150\002R\000\000\003u\005=\003u\003u\020\002\021\002\0226\022b\003u\003u\003u\017\218\003u\000\000\017\226\n\230\005=\018Z\003u\006\026\003u\003u\003u\018&\000\000#>\000\000\003u#J\000\000\003u\n\234\003u\003u\r2\003u\003u\003u\003u\017\234\000\000\018b\004n\018j\002z\003u\000\000\003u\003u\031\142\003u\003u\003u\003u\022\142\003u\003u\t\238\000\000\003u\003u\003u\005=\000\000\022\186\022\230\000\000\000\000\003u\003u\003u\003u\003q\004v\003q\005=\003q\000\000\tN\003\202\003q\000\000\000\000\003q\n\006\003q\tR\000\000\003q\000\000\000\000\003q\003q\003q\000\000\003q\003q\003q\001\234\002\137\002\1371\154\005=\003q\003q\003q\003q\000\000\003q\000\000\003q\000\000\000\000\n\150\000\000\002\137/V\003q\003q\003q\003q\003q\003q\000\000\015j\000\000\000\000\000\n\003q\000\000\003q\003q\003\186\000\000\004v\000\000\005=\003q\003q\003q\018\006\014\237\002\154\014\237\014\237\002\137\003q &\003q\003q\003q\003q\003q\003q\003q\003q\003q\012\185\003q\000\000\002\137\012\185\000\242\000\000\003q\018\006\003q\003q\003q\000\000\017N\000\000\000\000\003q\000\000\000\000\003q\000\000\003q\003q\000\000\003q\003q\003q\003q\000\000\000\000\000\000\000\000\000\000\000\000\003q\001\133\003q\003q\000\000\r\002\003q\003q\003q\003q\003q\003q\000\000\012\185\003q\003q\r2\000\000\000\000\003q\003q\000\000\001\133\003q\003q\003q\003q\003m\011\222\003m\000\000\003m\011r/Z\000\000\003m\000\000\000\000\003m\012\026\003m\000\000\012\185\003m\000\000\012\"\003m\003m\003m\000\000\003m\003m\003m\r\002\014\237 R\000\000\000\000\003m\003m\003m\003m\014\237\003m\r2\003m\000\000\000\000\000\000\002R\014M\000\000\003m\003m\003m\003m\003m\003m\r\002\014\237\000\000\000\000\000\000\003m\012\185\003m\003m\005\254\000\000\r2\006.\000\000\003m\003m\003m\019f\014\229\000\000\014\229\014\229\001\133\003m &\003m\003m\003m\003m\003m\003m\003m\003m\003m\000\000\003m\014M\002z\000\000\000\000\000\000\003m\019f\003m\003m\003m\001\133\000\000\000\000\000\000\003m\000\000\000\000\003m\001\133\003m\003m\000\000\003m\003m\003m\003m\012\181\000\000 Z\014M\012\181\000\000\003m\000\000\003m\003m\000\000\018&\003m\003m\003m\003m\003m\003m\000\000\000\000\003m\003m\r2\000\000\000\000\003m\003m\000\000\000\000\003m\003m\003m\003m\003i\000\000\003i\000\000\003i\000\000\000\000\t\162\003i\014M\000\000\003i\000\000\003i\012\181\005\254\019\214\000\000\014M\003i\003i\003i\000\000\003i\003i\003i\018&\014\229 R\000\000\000\000\020~\021.\021Z\020\170\014\229\003i\r2\003i\000\000\002\154\000\000\000\000\012\181\012j\003i\020\214\003i\021\178\021\222\003i\018&\0172\000\000#\018\000\000\003i\000\000\003i\003i\014\229\000\000\r2 \014\"*\003i\003i\000\242\"z\"\202\"\214\000\000\000\000\000\000\003i\012\178\003i\003i\020\002\021\002\0226\022b\003i\003i\003i\012\181\003i\000\000\005\254\000\000\012E\000\000\003i\011u\003i\003i\003i\011u\000\000\000\000\000\000\003i\000\000\000\000\003i\000\000\003i\003i\000\000\003i\003i\003i\003i\000\000\000\000\000\242\000\000\000\000\000\000\003i%\226\003i\003i\000\000\003i\003i\003i\003i\022\142\003i\003i\000\000\000\000\003i\003i\003i\000\000\000\000\022\186\022\230\000\242\000\000\003i\003i\003i\003i\003e\012E\003e\000\000\003e\012E\000\000\000\000\003e\006\189\000\000\003e\012E\003e)\138\000\000\003e\000\000\012E\003e\003e\003e\000\000\003e\003e\003e\006\189\000\000\000\000\000\000\r\254\003e\003e\003e\003e'\238\003e\006\189\003e\000\000\000\000\000\000\002R\006\189\000\000\003e\003e\003e\003e\003e\003e\011\222 &\000\000\000\000\011r\003e\000\000\003e\003e)\182\000\000\012\026\011\150\000\000\003e\003e\003e\012\"(~\019f\000\000\002R\014\229\003e(\150\003e\003e\003e\003e\003e\003e\003e\003e\003e\000\000\003e)\226\002z\000\000\000\000\000\000\003e\011\166\003e\003e\003e\000\000\000\000\000\000\000\000\003e\000\000\000\000\003e\000\000\003e\003e\000\000\003e\003e\003e\003e\000\000\000\000\012e\000\000\000\000\002z\003e\b\r\003e\003e\000\000\r\002\003e\003e\003e\003e\003e\003e\000\000*F\003e\003e\r2\000\000\000\000\003e\003e\000\000\000\000\003e\003e\003e\003e\003a\000\000\003a\000\000\003a R\000\000\0042\003a\012e\000\000\003a$&\003a\000\000\003\170\003a\000\000\000\000\003a\003a\003a\000\000\003a\003a\003a\012e\000\000\018&\014\229\011r\003a\003a\003a\003a\000\000\003a\012e\003a\r2\002\154\000\000 &\012e\000\000\003a\003a\003a\003a\003a\003a\000\000\004f\000\000,\238\000\000\003a$*\003a\003a\018\006\003\234\003\246\014\237\000\000\003a\003a\003a\004\002\000\000\002\154\000\000\002R$6\003a\000\000\003a\003a\003a\003a\003a\003a\003a\003a\003a\000\000\003a\000\000\000\000\000\000\004\006\000\000\003a\014\250\003a\003a\003a\000\000\000\000\000\000\000\000\003a\002\206\000\000\003a\003\170\003a\003a\n\n\003a\003a\003a\003a\000\000\000\000\r\233\000\000\000\000\002z\003a\n\205\003a\003a\000\000\018&\003a\003a\003a\003a\003a\003a\000\000\000\000\003a\003a\r2\000\000\000\000\003a\003a.z R\003a\003a\003a\003a\003]5\222\003]\001\246\003]\000\000\000\000\000\000\003]\r\233\000\000\003]$&\003]\000\000\003\170\019\214$6\r\002\003]\003]\003]\000\000\003]\003]\003]\014\018\000\000\b\242\r2\r\233\020~\021.\021Z\020\170\000\000\003]\r\233\003]\000\000\b\246\b\250\005\173\r\233\000\000\003]\020\214\003]\021\178\021\222\003]\000\000\n\n\000\000\000\000\b\254\003]$*\003]\003]\000\000\000\000\000\0005Z\000\000\003]\003]\000\242\000\000\000\000\002\154\000\000\000\000$6\003]\000\000\003]\003]\020\002\021\002\0226\022b\003]\003]\003]\000\000\003]\000\000\005\173\000\000\000\242\000\000\003]\000\000\003]\003]\003]\000\000\000\000\011e\000\000\003]\000\000\011e\003]\000\000\003]\003]\n\n\003]\003]\003]\003]\000\000\000\000\000\242\000\000\000\000\000\000\003]\000\000\003]\003]\000\000\003]\003]\003]\003]\022\142\003]\003]\000\0006\171\003]\003]\003]\000\000\000\000\022\186\022\2300~\000\000\003]\003]\003]\003]\0041\011\222\0041\000\000\0041\011r\n\217\002R\0041\006}\000\000\0041\012\026\0041\000\000\000\000\0041\000\000\012\"\0041\0041\0041\000\000\0041\0041\0041\006}\011e\002v\000\000\r\254\0041\0041\0041\0041\000\000\0041\006}\0041\000\000\005\173\000\000\000\000\006}\000\000\0041\0041\0041\0041\0041\0041\001\230\000\000\002z\000\000\000\000\0041\r\002\0041\0041\t\006\000\000\000\000\000\0003~\0041\0041\0041\r2\000\000\000\000\000\000\t\n\t\014\0041\000\000\0041\0041\0041\0041\0041\0041\0041\0041\0041\000\000\0041\t\018\000\000\000\000\000\000\000\000\0041\000\000\0041\0041\0041\000\000\004\018\011a\000\000\0041\003\202\011a\0041\003\170\0041\0041\000\000\0041\0041\0041\0041\000\000\000\000\000\242\000\000\000\000\000\000\0041\000\000\0041\0041\000\000\r\002\0041\0041\0041\0041\0041\0041\002\138\000\000\0041\0041\r2\005\166\000\000\0041\0041\bi\000\000\0041\0041\0041\0041\004-)\002\004-\000\000\004-\002\154\000\000\002R\004-\006\173\000\000\004-\000\000\004-\000\000\000\000\004-$6\000\000\004-\004-\004-\000\000\004-\004-\004-\006\173\011a\014\197\000\000\r\254\004-\004-\004-\004-\000\000\004-\006\173\004-\000\000\000\000\000\000\000\000\006\173\000\000\004-\004-\004-\004-\004-\004-\000\000\n\n\002z\000\000\000\000\004-\018&\004-\004-\000\000\000\000\000\000\000\000\000\000\004-\004-\004-\r2\000\000\000\000\000\000\000\000\000\000\004-\000\000\004-\004-\004-\004-\004-\004-\004-\004-\004-\000\000\004-\000\000\000\000\000\000\000\000\000\000\004-\000\000\004-\004-\004-\000\000\000\000\000\000\000\000\004-\000\000\000\000\004-\000\000\004-\004-\000\000\004-\004-\004-\004-\000\000\000\000\000\242\000\000\000\000\000\000\004-\000\000\004-\004-\000\000\018&\004-\004-\004-\004-\004-\004-\014\197\000\000\004-\004-\r2\000\000\000\000\004-\004-\000\000\000\000\004-\004-\004-\004-\004)\000\000\004)\000\000\004)\002\154\000\000\002R\004)\006\157\000\000\004)\000\000\004)\000\000\000\000\019\214\000\000\000\000\004)\004)\004)\000\000\004)\004)\004)\006\157\000\000\014\193\000\000\r\254\020~\021.\021Z\020\170\000\000\004)\006\157\004)\000\000\000\000\000\000\000\000\006\157\000\000\004)\020\214\004)\021\178\021\222\004)\001\230\000\000\002z\000\000\000\000\004)\000\000\004)\004)4\186\000\000\000\000\000\000\000\000\004)\004)\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\020\002\021\002\0226\022b\004)\004)\004)\000\000\004)\000\000\000\000\000\000\000\000\021\025\004)\004n\004)\004)\004)\000\000\004\018\000\000\000\000\004)\000\000\000\000\004)\000\000\004)\004)\000\000\004)\004)\004)\004)\005=\000\000\000\000\000\000\000\000\000\000\004)\000\000\004)\004)\000\000\004)\004)\004)\004)\022\142\004)\004)\014\193\000\000\004)\004)\004)\005\166\000\000\022\186\022\230\000\000\000\000\004)\004)\004)\004)\004\025\000\000\004\025\000\000\004\025\002\154\000\000\005=\004\025\000\000\000\000\004\025\000\000\004\025\000\000\000\000\004\025\000\000\000\000\004\025\004\025\004\025\000\000\004\025\004\025\004\025\005=\000\000\000\000\000\000\000\000\004\025\004\025\004\025\004\025\000\000\004\025\021\025\004\025\004v\000\000\005=\000\000\000\000\000\000\004\025\004\025\004\025\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\000\000\000\000\000\000\000\000\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\004\025\004\025\004\025\004\025\004\025\004\025\004\025\000\000\004\025\000\000\000\000\000\000\000\000\000\000\004\025\000\000\004\025\004\025\004\025\000\000\000\000\000\000\000\000\004\025\000\000\000\000\004\025\000\000\004\025\004\025\000\000\004\025\004\025\004\025\004\025\000\000\000\000\000\242\000\000\000\000\000\000\004\025\000\000\004\025\004\025\000\000\r\002\004\025\004\025\004\025\004\025\004\025\004\025\000\000\000\000\004\025\004\025\r2\000\000\000\000\004\025\004\025\000\000\000\000\004\025\004\025\004\025\004\025\004\021\000\000\004\021\000\000\004\021\000\000\000\000\002R\004\021\026\166\000\000\004\021\000\000\004\021\000\000\000\000\004\021\000\000\000\000\004\021\004\021\004\021\000\000\004\021\004\021\004\021\026\174\000\000\012\001\000\000\r\254\004\021\004\021\004\021\004\021\000\000\004\021\026\222\004\021\000\000\000\000\000\000\000\000\026\230\000\000\004\021\004\021\004\021\004\021\004\021\004\021\000\000\000\000\002z\000\000\000\000\004\021\000\000\004\021\004\021\000\000\000\000\000\000\000\000\000\000\004\021\004\021\004\021\000\000\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\004\021\004\021\004\021\004\021\004\021\004\021\004\021\000\000\004\021\000\000\000\000\000\000\000\000\000\000\004\021\000\000\004\021\004\021\004\021\000\000\000\000\000\000\000\000\004\021\000\000\000\000\004\021\000\000\004\021\004\021\000\000\004\021\004\021\004\021\004\021\000\000\000\000\000\242\000\000\000\000\000\000\004\021\000\000\004\021\004\021\000\000\018&\004\021\004\021\004\021\004\021\004\021\004\021\012\001\000\000\004\021\004\021\r2\000\000\000\000\004\021\004\021\000\000\000\000\004\021\004\021\004\021\004\021\004\017\000\000\004\017\000\000\004\017\002\154\000\000\002R\004\017\006\141\000\000\004\017\000\000\004\017\000\000\000\000\019\214\000\000\000\000\004\017\004\017\004\017\000\000\004\017\004\017\004\017\006\141\000\000\011\253\000\000\r\254\020~\021.\021Z\020\170\000\000\004\017\006\141\004\017\000\000\000\000\000\000\000\000\006\141\000\000\004\017\020\214\004\017\021\178\021\222\004\017\000\000\000\000\002z\000\000\000\000\004\017\000\000\004\017\004\017\000\000\000\000\000\000\000\000\000\000\004\017\004\017\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\020\002\021\002\0226\022b\004\017\004\017\004\017\000\000\004\017\000\000\000\000\000\000\000\000\000\000\004\017\000\000\004\017\004\017\004\017\000\000\000\000\000\000\000\000\004\017\000\000\000\000\004\017\000\000\004\017\004\017\000\000\004\017\004\017\004\017\004\017\000\000\000\000\000\242\000\000\000\000\000\000\004\017\000\000\004\017\004\017\000\000\004\017\004\017\004\017\004\017\022\142\004\017\004\017\011\253\000\000\004\017\004\017\004\017\000\000\000\000\022\186\022\230\000\000\000\000\004\017\004\017\004\017\004\017\004I\000\000\004I\000\000\004I\002\154\000\000\002R\004I\012u\000\000\004I\000\000\004I\000\000\000\000\004I\000\000\000\000\004I\004I\004I\000\000\004I\004I\004I\011\222\000\000\014\173\000\000\011r\004I\004I\004I\004I\000\000\004I\012u\004I\000\000\000\000\000\000\000\000\012u\000\000\004I\004I\004I\004I\004I\004I\000\000\000\000\002z\000\000\000\000\004I\000\000\004I\004I\000\000\000\000\000\000\000\000\000\000\004I\004I\004I\000\000\000\000\000\000\000\000\000\000\000\000\004I\000\000\004I\004I\004I\004I\004I\004I\004I\004I\004I\000\000\004I\000\000\000\000\000\000\000\000\000\000\004I\000\000\004I\004I\004I\000\000\000\000\000\000\000\000\004I\000\000\000\000\004I\000\000\004I\004I\000\000\004I\004I\004I\004I\000\000\000\000\000\242\000\000\000\000\000\000\004I\000\000\004I\004I\000\000\r\002\004I\004I\004I\004I\004I\004I\014\173\000\000\004I\004I\r2\000\000\000\000\004I\004I\000\000\000\000\004I\004I\004I\004I\004E\000\000\004E\000\000\004E\002\154\000\000\002R\004E\031\226\000\000\004E\000\000\004E\000\000\000\000\004E\000\000\000\000\004E\004E\004E\000\000\004E\004E\004E\026\174\000\000\014\169\000\000\r\254\004E\004E\004E\004E\000\000\004E\026\222\004E\000\000\000\000\000\000\000\000\026\230\000\000\004E\004E\004E\004E\004E\004E\000\000\000\000\002z\000\000\000\000\004E\000\000\004E\004E\000\000\000\000\000\000\000\000\000\000\004E\004E\004E\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004E\004E\004E\004E\004E\004E\004E\004E\004E\000\000\004E\000\000\000\000\000\000\000\000\000\000\004E\000\000\004E\004E\004E\000\000\000\000\000\000\000\000\004E\000\000\000\000\004E\000\000\004E\004E\000\000\004E\004E\004E\004E\000\000\000\000\000\242\000\000\000\000\000\000\004E\000\000\004E\004E\000\000\018&\004E\004E\004E\004E\004E\004E\014\169 j\004E\004E\r2\000\000\000\000\004E\004E\000\000\000\000\004E\004E\004E\004E\004A\000\000\004A\000\000\004A\002\154\000\000\002R\004A\000\000\000\000\004A\000\000\004A\000\000\000\000\019\214\000\000\000\000\004A\004A\004A\000\000\004A\004A\004A\011\222\000\000\014\185\000\000\011r\020~\021.\021Z\020\170\000\000\021\134\012\026\004A\000\000\000\000\000\000\000\000\012\"\000\000\004A\020\214\004A\021\178\021\222\004A\000\000\000\000\002z\000\000\000\000\004A\000\000\022\n\004A\000\000\000\000\000\000\000\000\000\000\004A\004A\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004A\000\000\004A\004A\020\002\021\002\0226\022b\023\018\004A\004A\000\000\004A\000\000\000\000\000\000\000\000\000\000\004A\000\000\004A\004A\023>\000\000\000\000\000\000\000\000\004A\000\000\000\000\004A\000\000\004A\023j\000\000\004A\004A\004A\004A\000\000\000\000\000\242\000\000\000\000\000\000\004A\000\000\004A\004A\000\000\004A\004A\004A\004A\022\142\004A\004A\014\185 \158\004A\023\150\004A\000\000\000\000\022\186\022\230\000\000\000\000\004A\004A\023\194\023\238\004U\000\000\004U\000\000\004U\002\154\000\000\002R\004U\000\000\000\000\004U\000\000\004U\000\000\000\000\004U\000\000\000\000\004U\004U\004U\000\000\004U\004U\004U\011\222\000\000\014\181\000\000\011r\004U\004U\004U\004U\000\000\004U\012\026\004U\000\000\000\000\000\000\000\000\012\"\000\000\004U\004U\004U\004U\004U\004U\000\000\000\000\002z\000\000\000\000\004U\000\000\004U\004U\000\000\000\000\000\000\000\000\000\000\004U\004U\004U\000\000\000\000\000\000\000\000\000\000\000\000\004U\000\000\004U\004U\004U\004U\004U\004U\004U\004U\004U\000\000\004U\000\000\000\000\000\000\000\000\000\000\004U\000\000\004U\004U\004U\000\000\000\000\000\000\000\000\004U\000\000\000\000\004U\000\000\004U\004U\000\000\004U\004U\004U\004U\000\000\000\000\000\242\000\000\000\000\000\000\004U\000\000\004U\004U\000\000\r\002\004U\004U\004U\004U\004U\004U\014\181 \210\004U\004U\r2\000\000\000\000\004U\004U\000\000\000\000\004U\004U\004U\004U\004Q\000\000\004Q\000\000\004Q\002\154\000\000\002R\004Q\000\000\000\000\004Q\000\000\004Q\000\000\000\000\004Q\000\000\000\000\004Q\004Q\004Q\000\000\004Q\004Q\004Q\011\222\000\000$\226\000\000\011r\004Q\004Q\004Q\004Q\000\000\004Q\012\026\004Q\000\000\000\000\000\000\000\000\012\"\000\000\004Q\004Q\004Q\004Q\004Q\004Q\001\230\000\000\002z\000\000\000\000\004Q\000\000\004Q\004Q5\002\000\000\000\000\000\000\000\000\004Q\004Q\004Q\000\000\000\000\000\000\000\000\000\000\000\000\004Q\000\000\004Q\004Q\004Q\004Q\004Q\004Q\004Q\004Q\004Q\000\000\004Q\000\000\000\000\000\000\000\000\021\025\004Q\000\000\004Q\004Q\004Q\000\000\004\018\000\000\000\000\004Q\000\000\000\000\004Q\000\000\004Q\004Q\000\000\004Q\004Q\004Q\004Q\000\000\000\000\000\000\000\000\000\000\000\000\004Q\000\000\004Q\004Q\000\000\018&\004Q\004Q\004Q\004Q\004Q\004Q\002\138\000\000\004Q\004Q\r2\005\166\000\000\004Q\004Q\000\000\000\000\004Q\004Q\004Q\004Q\004M\000\000\004M\000\000\004M\002\154\000\000\002R\004M\000\000\000\000\004M\000\000\004M\000\000\000\000\019\214\000\000\000\000\004M\004M\004M\000\000\004M\004M\004M\000\000\000\0005f\000\000\000\000\020~\021.\021Z\020\170\000\000\004M\021\025\004M\002R\000\000\000\000\000\000\000\000\000\000\004M\020\214\004M\021\178\021\222\004M\000\000\000\000\002z\000\000\000\000\004M\000\000\022\n\004M\014\209\000\000\000\000\000\000\000\000\004M\004M\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004M\000\000\004M\004M\020\002\021\002\0226\022b\023\018\004M\004M\002z\004M\000\000\000\000\000\000\000\000\000\000\004M\000\000\004M\004M\023>\000\000\000\000\000\000\000\000\004M\000\000\000\000\004M\000\000\004M\023j\000\000\004M\004M\004M\004M\000\000\000\000\002R\000\000\000\000\000\000\004M\000\000\004M\004M\000\000\004M\004M\004M\004M\022\142\004M\004M5j\000\000\004M\004M\004M\014\205\000\000\022\186\022\230\000\000\000\000\004M\004M\023\194\023\238\004a\000\000\004a\000\000\004a\002\154\000\000\000\000\004a\000\000\000\000\004a\000\000\004a\000\000\002z\004a\014\209\000\000\004a\004a\004a\000\000\004a\004a\004a\000\000\000\000\000\000\000\000\000\000\004a\004a\004a\004a\000\000\004a\002\154\004a\000\000\000\000\000\000\000\000\000\000\000\000\004a\004a\004a\004a\004a\004a\000\000\000\000\000\000\000\000\000\000\004a\000\000\004a\004a\000\000\000\000\000\000\000\000\000\000\004a\004a\004a\000\000\000\000\000\000\000\000\000\000\000\000\004a\000\000\004a\004a\004a\004a\004a\004a\004a\004a\004a\000\000\004a\000\000\000\000\000\000\000\000\000\000\004a\014\205\004a\004a\004a\000\000\000\000\000\000\000\000\004a\000\000\000\000\004a\000\000\004a\004a\000\000\004a\004a\004a\004a\002\154\000\000\000\000\000\000\000\000\000\000\004a\000\000\004a\004a\000\000\r\002\004a\004a\004a\004a\004a\004a\000\000\000\000\004a\004a\r2\000\000\000\000\004a\004a\000\000\000\000\004a\004a\004a\004a\004]\000\000\004]\000\000\004]\000\000\000\000\000\000\004]\000\000\000\000\004]\000\000\004]\000\000\000\000\004]\000\000\000\000\004]\004]\004]\000\000\004]\004]\004]\000\000\000\000\000\000\000\000\000\000\004]\004]\004]\004]\000\000\004]\000\000\004]\000\000\000\000\000\000\000\000\000\000\000\000\004]\004]\004]\004]\004]\004]\000\000\000\000\000\000\000\000\000\000\004]\000\000\004]\004]\000\000\000\000\000\000\000\000\000\000\004]\004]\004]\000\000\000\000\000\000\000\000\000\000\000\000\004]\000\000\004]\004]\004]\004]\004]\004]\004]\004]\004]\000\000\004]\000\000\000\000\000\000\000\000\000\000\004]\000\000\004]\004]\004]\000\000\000\000\000\000\000\000\004]\000\000\000\000\004]\000\000\004]\004]\000\000\004]\004]\004]\004]\000\000\000\000\000\000\000\000\000\000\000\000\004]\000\000\004]\004]\000\000\018&\004]\004]\004]\004]\004]\004]\000\000\000\000\004]\004]\r2\000\000\000\000\004]\004]\000\000\000\000\004]\004]\004]\004]\004Y\000\000\004Y\000\000\004Y\000\000\000\000\000\000\004Y\000\000\000\000\004Y\000\000\004Y\000\000\000\000\019\214\000\000\000\000\004Y\004Y\004Y\000\000\004Y\004Y\004Y\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\004Y\000\000\004Y\000\000\000\000\000\000\000\000\000\000\000\000\004Y\020\214\004Y\021\178\021\222\004Y\000\000\000\000\000\000\000\000\000\000\004Y\000\000\022\n\004Y\000\000\000\000\000\000\000\000\000\000\004Y\004Y\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004Y\000\000\004Y\004Y\020\002\021\002\0226\022b\023\018\004Y\004Y\000\000\004Y\000\000\000\000\000\000\000\000\000\000\004Y\000\000\004Y\004Y\023>\000\000\000\000\000\000\000\000\004Y\000\000\000\000\004Y\000\000\004Y\023j\000\000\004Y\004Y\004Y\004Y\000\000\000\000\000\000\000\000\000\000\000\000\004Y\000\000\004Y\004Y\000\000\004Y\004Y\004Y\004Y\022\142\004Y\004Y\000\000\000\000\004Y\004Y\004Y\000\000\000\000\022\186\022\230\000\000\000\000\004Y\004Y\023\194\023\238\rI\000\000\rI\000\000\rI\000\000\000\000\000\000\rI\000\000\000\000\rI\000\000\rI\000\000\000\000\rI\000\000\000\000\rI\rI\rI\000\000\rI\rI\rI\000\000\000\000\000\000\000\000\000\000\rI\rI\rI\rI\000\000\rI\000\000\rI\000\000\000\000\000\000\000\000\000\000\000\000\rI\rI\rI\rI\rI\rI\000\000\000\000\000\000\000\000\000\000\rI\000\000\rI\rI\000\000\000\000\000\000\000\000\000\000\rI\rI\rI\000\000\000\000\000\000\000\000\000\000\000\000\rI\000\000\rI\rI\rI\rI\rI\rI\rI\rI\rI\000\000\rI\000\000\000\000\000\000\000\000\000\000\rI\000\000\rI\rI\rI\000\000\000\000\000\000\000\000\rI\000\000\000\000\rI\000\000\rI\rI\000\000\rI\rI\rI\rI\000\000\000\000\000\000\000\000\000\000\000\000\rI\000\000\rI\rI\000\000\r\002\rI\rI\rI\rI\rI\rI\000\000\000\000\rI\rI\r2\000\000\000\000\rI\rI\000\000\000\000\rI\rI\rI\rI\rE\000\000\rE\000\000\rE\000\000\000\000\000\000\rE\000\000\000\000\rE\000\000\rE\000\000\000\000\rE\000\000\000\000\rE\rE\rE\000\000\rE\rE\rE\000\000\000\000\000\000\000\000\000\000\rE\rE\rE\rE\000\000\rE\000\000\rE\000\000\000\000\000\000\000\000\000\000\000\000\rE\rE\rE\rE\rE\rE\000\000\000\000\000\000\000\000\000\000\rE\000\000\rE\rE\000\000\000\000\000\000\000\000\000\000\rE\rE\rE\000\000\000\000\000\000\000\000\000\000\000\000\rE\000\000\rE\rE\rE\rE\rE\rE\rE\rE\rE\000\000\rE\000\000\000\000\000\000\000\000\000\000\rE\000\000\rE\rE\rE\000\000\000\000\000\000\000\000\rE\000\000\000\000\rE\000\000\rE\rE\000\000\rE\rE\rE\rE\000\000\000\000\000\000\000\000\000\000\000\000\rE\000\000\rE\rE\000\000\018&\rE\rE\rE\rE\rE\rE\000\000\000\000\rE\rE\r2\000\000\000\000\rE\rE\000\000\000\000\rE\rE\rE\rE\rA\000\000\rA\000\000\rA\000\000\000\000\000\000\rA\000\000\000\000\rA\000\000\rA\000\000\000\000\019\214\000\000\000\000\rA\rA\rA\000\000\rA\rA\rA\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\rA\000\000\000\000\000\000\000\000\000\000\000\000\rA\020\214\rA\021\178\021\222\rA\000\000\000\000\000\000\000\000\000\000\rA\000\000\022\n\rA\000\000\000\000\000\000\000\000\000\000\rA\rA\000\242\000\000\000\000\000\000\000\000\000\000\000\000\rA\000\000\rA\rA\020\002\021\002\0226\022b\023\018\rA\rA\000\000\rA\000\000\000\000\000\000\000\000\000\000\rA\000\000\rA\rA\023>\000\000\000\000\000\000\000\000\rA\000\000\000\000\rA\000\000\rA\023j\000\000\rA\rA\rA\rA\000\000\000\000\000\000\000\000\000\000\000\000\rA\000\000\rA\rA\000\000\rA\rA\rA\rA\022\142\rA\rA\000\000\000\000\rA\023\150\rA\000\000\000\000\022\186\022\230\000\000\000\000\rA\rA\023\194\023\238\004m\000\000\004m\000\000\004m\000\000\000\000\000\000\004m\000\000\000\000\004m\000\000\004m\000\000\000\000\004m\000\000\000\000\004m\004m\004m\000\000\004m\004m\004m\000\000\000\000\000\000\000\000\000\000\004m\004m\004m\004m\000\000\004m\000\000\004m\000\000\000\000\000\000\000\000\000\000\000\000\004m\004m\004m\004m\004m\004m\000\000\000\000\000\000\000\000\000\000\004m\000\000\004m\004m\000\000\000\000\000\000\000\000\000\000\004m\004m\004m\000\000\000\000\000\000\000\000\000\000\000\000\004m\000\000\004m\004m\004m\004m\004m\004m\004m\004m\004m\000\000\004m\000\000\000\000\000\000\000\000\000\000\004m\000\000\004m\004m\004m\000\000\000\000\000\000\000\000\004m\000\000\000\000\004m\000\000\004m\004m\000\000\004m\004m\004m\004m\000\000\000\000\000\000\000\000\000\000\000\000\004m\000\000\004m\004m\000\000\r\002\004m\004m\004m\004m\004m\004m\000\000\000\000\004m\004m\r2\000\000\000\000\004m\004m\000\000\000\000\004m\004m\004m\004m\004i\000\000\004i\000\000\004i\000\000\000\000\000\000\004i\000\000\000\000\004i\000\000\004i\000\000\000\000\004i\000\000\000\000\004i\004i\004i\000\000\004i\004i\004i\000\000\000\000\000\000\000\000\000\000\004i\004i\004i\004i\000\000\004i\000\000\004i\000\000\000\000\000\000\000\000\000\000\000\000\004i\004i\004i\004i\004i\004i\000\000\000\000\000\000\000\000\000\000\004i\000\000\004i\004i\000\000\000\000\000\000\000\000\000\000\004i\004i\004i\000\000\000\000\000\000\000\000\000\000\000\000\004i\000\000\004i\004i\004i\004i\004i\004i\004i\004i\004i\000\000\004i\000\000\000\000\000\000\000\000\000\000\004i\000\000\004i\004i\004i\000\000\000\000\000\000\000\000\004i\000\000\000\000\004i\000\000\004i\004i\000\000\004i\004i\004i\004i\000\000\000\000\000\000\000\000\000\000\000\000\004i\000\000\004i\004i\000\000\018&\004i\004i\004i\004i\004i\004i\000\000\000\000\004i\004i\r2\000\000\000\000\004i\004i\000\000\000\000\004i\004i\004i\004i\004e\000\000\004e\000\000\004e\000\000\000\000\000\000\004e\000\000\000\000\004e\000\000\004e\000\000\000\000\019\214\000\000\000\000\004e\004e\004e\000\000\004e\004e\004e\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\004e\000\000\000\000\000\000\000\000\000\000\000\000\004e\020\214\004e\021\178\021\222\004e\000\000\000\000\000\000\000\000\000\000\004e\000\000\022\n\004e\000\000\000\000\000\000\000\000\000\000\004e\004e\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004e\000\000\004e\004e\020\002\021\002\0226\022b\023\018\004e\004e\000\000\004e\000\000\000\000\000\000\000\000\000\000\004e\000\000\004e\004e\023>\000\000\000\000\000\000\000\000\004e\000\000\000\000\004e\000\000\004e\023j\000\000\004e\004e\004e\004e\000\000\000\000\000\000\000\000\000\000\000\000\004e\000\000\004e\004e\000\000\024\026\004e\004e\024f\022\142\004e\004e\000\000\000\000\004e\023\150\004e\000\000\000\000\022\186\022\230\000\000\000\000\004e\004e\023\194\023\238\r)\000\000\r)\000\000\r)\000\000\000\000\000\000\r)\000\000\000\000\r)\000\000\r)\000\000\000\000\019\214\000\000\000\000\r)\r)\r)\000\000\r)\r)\r)\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\r)\000\000\000\000\000\000\000\000\000\000\000\000\r)\020\214\r)\021\178\021\222\r)\000\000\000\000\000\000\000\000\000\000\r)\000\000\022\n\r)\000\000\000\000\000\000\000\000\000\000\r)\r)\000\242\000\000\000\000\000\000\000\000\000\000\000\000\r)\000\000\r)\r)\020\002\021\002\0226\022b\023\018\r)\r)\000\000\r)\000\000\000\000\000\000\000\000\000\000\r)\000\000\r)\r)\023>\000\000\000\000\000\000\000\000\r)\000\000\000\000\r)\000\000\r)\023j\000\000\r)\r)\r)\r)\000\000\000\000\000\000\000\000\000\000\000\000\r)\000\000\r)\r)\000\000\r)\r)\r)\r)\022\142\r)\r)\000\000\000\000\r)\023\150\r)\000\000\000\000\022\186\022\230\000\000\000\000\r)\r)\023\194\023\238\004\201\000\000\004\201\000\000\004\201\000\000\000\000\000\000\004\201\000\000\000\000\004\201\000\000\004\201\000\000\000\000\004\201\000\000\000\000\004\201\004\201\004\201\000\000\004\201\004\201\004\201\000\000\000\000\000\000\000\000\000\000\004\201\004\201\004\201\004\201\000\000\004\201\000\000\004\201\000\000\000\000\000\000\000\000\000\000\000\000\004\201\004\201\004\201\004\201\004\201\004\201\000\000\000\000\000\000\000\000\000\000\004\201\000\000\004\201\004\201\000\000\000\000\000\000\000\000\000\000\004\201\004\201\004\201\000\000\000\000\000\000\000\000\000\000\000\000\004\201\000\000\004\201\004\201\004\201\004\201\004\201\004\201\004\201\004\201\004\201\000\000\004\201\000\000\000\000\000\000\000\000\000\000\004\201\000\000\004\201\004\201\004\201\000\000\000\000\000\000\000\000\004\201\000\000\000\000\004\201\000\000\004\201\004\201\000\000\004\201\004\201\004\201\004\201\000\000\000\000\000\000\000\000\000\000\000\000\004\201\000\000\004\201\004\201\000\000\r\002\004\201\004\201\004\201\004\201\004\201\004\201\000\000\000\000\004\201\004\201\r2\000\000\000\000\004\201\004\201\000\000\000\000\004\201\004\201\004\201\004\201\004\197\000\000\004\197\000\000\004\197\000\000\000\000\000\000\004\197\000\000\000\000\004\197\000\000\004\197\000\000\000\000\004\197\000\000\000\000\004\197\004\197\004\197\000\000\004\197\004\197\004\197\000\000\000\000\000\000\000\000\000\000\004\197\004\197\004\197\004\197\000\000\004\197\000\000\004\197\000\000\000\000\000\000\000\000\000\000\000\000\004\197\004\197\004\197\004\197\004\197\004\197\000\000\000\000\000\000\000\000\000\000\004\197\000\000\004\197\004\197\000\000\000\000\000\000\000\000\000\000\004\197\004\197\004\197\000\000\000\000\000\000\000\000\000\000\000\000\004\197\000\000\004\197\004\197\004\197\004\197\004\197\004\197\004\197\004\197\004\197\000\000\004\197\000\000\000\000\000\000\000\000\000\000\004\197\000\000\004\197\004\197\004\197\000\000\000\000\000\000\000\000\004\197\000\000\000\000\004\197\000\000\004\197\004\197\000\000\004\197\004\197\004\197\004\197\000\000\000\000\000\000\000\000\000\000\000\000\004\197\000\000\004\197\004\197\000\000\018&\004\197\004\197\004\197\004\197\004\197\004\197\000\000\000\000\004\197\004\197\r2\000\000\000\000\004\197\004\197\000\000\000\000\004\197\004\197\004\197\004\197\004\193\000\000\004\193\000\000\004\193\000\000\000\000\000\000\004\193\000\000\000\000\004\193\000\000\004\193\000\000\000\000\019\214\000\000\000\000\004\193\004\193\004\193\000\000\004\193\004\193\004\193\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\004\193\000\000\000\000\000\000\000\000\000\000\000\000\004\193\020\214\004\193\021\178\021\222\004\193\000\000\000\000\000\000\000\000\000\000\004\193\000\000\022\n\004\193\000\000\000\000\000\000\000\000\000\000\004\193\004\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\193\000\000\004\193\004\193\020\002\021\002\0226\022b\023\018\004\193\004\193\000\000\004\193\000\000\000\000\000\000\000\000\000\000\004\193\000\000\004\193\004\193\023>\000\000\000\000\000\000\000\000\004\193\000\000\000\000\004\193\000\000\004\193\023j\000\000\004\193\004\193\004\193\004\193\000\000\000\000\000\000\000\000\000\000\000\000\004\193\000\000\004\193\004\193\000\000\024\026\004\193\004\193\024f\022\142\004\193\004\193\000\000\000\000\004\193\023\150\004\193\000\000\000\000\022\186\022\230\000\000\000\000\004\193\004\193\023\194\023\238\004\249\000\000\004\249\000\000\004\249\000\000\000\000\000\000\004\249\000\000\000\000\004\249\000\000\004\249\000\000\000\000\004\249\000\000\000\000\004\249\004\249\004\249\000\000\004\249\004\249\004\249\000\000\000\000\000\000\000\000\000\000\004\249\004\249\004\249\004\249\000\000\004\249\000\000\004\249\000\000\000\000\000\000\000\000\000\000\000\000\004\249\004\249\004\249\004\249\004\249\004\249\000\000\000\000\000\000\000\000\000\000\004\249\000\000\004\249\004\249\000\000\000\000\000\000\000\000\000\000\004\249\004\249\004\249\000\000\000\000\000\000\000\000\000\000\000\000\004\249\000\000\004\249\004\249\004\249\004\249\004\249\004\249\004\249\004\249\004\249\000\000\004\249\000\000\000\000\000\000\000\000\000\000\004\249\000\000\004\249\004\249\004\249\000\000\000\000\000\000\000\000\004\249\000\000\000\000\004\249\000\000\004\249\004\249\000\000\004\249\004\249\004\249\004\249\000\000\000\000\000\000\000\000\000\000\000\000\004\249\000\000\004\249\004\249\000\000\r\002\004\249\004\249\004\249\004\249\004\249\004\249\000\000\000\000\004\249\004\249\r2\000\000\000\000\004\249\004\249\000\000\000\000\004\249\004\249\004\249\004\249\004\245\000\000\004\245\000\000\004\245\000\000\000\000\000\000\004\245\000\000\000\000\004\245\000\000\004\245\000\000\000\000\004\245\000\000\000\000\004\245\004\245\004\245\000\000\004\245\004\245\004\245\000\000\000\000\000\000\000\000\000\000\004\245\004\245\004\245\004\245\000\000\004\245\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\004\245\004\245\004\245\004\245\004\245\004\245\000\000\000\000\000\000\000\000\000\000\004\245\000\000\004\245\004\245\000\000\000\000\000\000\000\000\000\000\004\245\004\245\004\245\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\004\245\004\245\004\245\004\245\004\245\004\245\004\245\004\245\004\245\000\000\004\245\000\000\000\000\000\000\000\000\000\000\004\245\000\000\004\245\004\245\004\245\000\000\000\000\000\000\000\000\004\245\000\000\000\000\004\245\000\000\004\245\004\245\000\000\004\245\004\245\004\245\004\245\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\004\245\004\245\000\000\018&\004\245\004\245\004\245\004\245\004\245\004\245\000\000\000\000\004\245\004\245\r2\000\000\000\000\004\245\004\245\000\000\000\000\004\245\004\245\004\245\004\245\004\241\000\000\004\241\000\000\004\241\000\000\000\000\000\000\004\241\000\000\000\000\004\241\000\000\004\241\000\000\000\000\019\214\000\000\000\000\004\241\004\241\004\241\000\000\004\241\004\241\004\241\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\004\241\000\000\000\000\000\000\000\000\000\000\000\000\004\241\020\214\004\241\021\178\021\222\004\241\000\000\000\000\000\000\000\000\000\000\004\241\000\000\022\n\004\241\000\000\000\000\000\000\000\000\000\000\004\241\004\241\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\004\241\004\241\020\002\021\002\0226\022b\023\018\004\241\004\241\000\000\004\241\000\000\000\000\000\000\000\000\000\000\004\241\000\000\004\241\004\241\023>\000\000\000\000\000\000\000\000\004\241\000\000\000\000\004\241\000\000\004\241\023j\000\000\004\241\004\241\004\241\004\241\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\004\241\004\241\000\000\024\026\004\241\004\241\024f\022\142\004\241\004\241\000\000\000\000\004\241\023\150\004\241\000\000\000\000\022\186\022\230\000\000\000\000\004\241\004\241\023\194\023\238\004\225\000\000\004\225\000\000\004\225\000\000\000\000\000\000\004\225\000\000\000\000\004\225\000\000\004\225\000\000\000\000\004\225\000\000\000\000\004\225\004\225\004\225\000\000\004\225\004\225\004\225\000\000\000\000\000\000\000\000\000\000\004\225\004\225\004\225\004\225\000\000\004\225\000\000\004\225\000\000\000\000\000\000\000\000\000\000\000\000\004\225\004\225\004\225\004\225\004\225\004\225\000\000\000\000\000\000\000\000\000\000\004\225\000\000\004\225\004\225\000\000\000\000\000\000\000\000\000\000\004\225\004\225\004\225\000\000\000\000\000\000\000\000\000\000\000\000\004\225\000\000\004\225\004\225\004\225\004\225\004\225\004\225\004\225\004\225\004\225\000\000\004\225\000\000\000\000\000\000\000\000\000\000\004\225\000\000\004\225\004\225\004\225\000\000\000\000\000\000\000\000\004\225\000\000\000\000\004\225\000\000\004\225\004\225\000\000\004\225\004\225\004\225\004\225\000\000\000\000\000\000\000\000\000\000\000\000\004\225\000\000\004\225\004\225\000\000\r\002\004\225\004\225\004\225\004\225\004\225\004\225\000\000\000\000\004\225\004\225\r2\000\000\000\000\004\225\004\225\000\000\000\000\004\225\004\225\004\225\004\225\004\221\000\000\004\221\000\000\004\221\000\000\000\000\000\000\004\221\000\000\000\000\004\221\000\000\004\221\000\000\000\000\004\221\000\000\000\000\004\221\004\221\004\221\000\000\004\221\004\221\004\221\000\000\000\000\000\000\000\000\000\000\004\221\004\221\004\221\004\221\000\000\004\221\000\000\004\221\000\000\000\000\000\000\000\000\000\000\000\000\004\221\004\221\004\221\004\221\004\221\004\221\000\000\000\000\000\000\000\000\000\000\004\221\000\000\004\221\004\221\000\000\000\000\000\000\000\000\000\000\004\221\004\221\004\221\000\000\000\000\000\000\000\000\000\000\000\000\004\221\000\000\004\221\004\221\004\221\004\221\004\221\004\221\004\221\004\221\004\221\000\000\004\221\000\000\000\000\000\000\000\000\000\000\004\221\000\000\004\221\004\221\004\221\000\000\000\000\000\000\000\000\004\221\000\000\000\000\004\221\000\000\004\221\004\221\000\000\004\221\004\221\004\221\004\221\000\000\000\000\000\000\000\000\000\000\000\000\004\221\000\000\004\221\004\221\000\000\018&\004\221\004\221\004\221\004\221\004\221\004\221\000\000\000\000\004\221\004\221\r2\000\000\000\000\004\221\004\221\000\000\000\000\004\221\004\221\004\221\004\221\004\217\000\000\004\217\000\000\004\217\000\000\000\000\000\000\004\217\000\000\000\000\004\217\000\000\004\217\000\000\000\000\019\214\000\000\000\000\004\217\004\217\004\217\000\000\004\217\004\217\004\217\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\004\217\000\000\000\000\000\000\000\000\000\000\000\000\004\217\020\214\004\217\021\178\021\222\004\217\000\000\000\000\000\000\000\000\000\000\004\217\000\000\022\n\004\217\000\000\000\000\000\000\000\000\000\000\004\217\004\217\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\217\000\000\004\217\004\217\020\002\021\002\0226\022b\023\018\004\217\004\217\000\000\004\217\000\000\000\000\000\000\000\000\000\000\004\217\000\000\004\217\004\217\023>\000\000\000\000\000\000\000\000\004\217\000\000\000\000\004\217\000\000\004\217\023j\000\000\004\217\004\217\004\217\004\217\000\000\000\000\000\000\000\000\000\000\000\000\004\217\000\000\004\217\004\217\000\000\024\026\004\217\004\217\024f\022\142\004\217\004\217\000\000\000\000\004\217\023\150\004\217\000\000\000\000\022\186\022\230\000\000\000\000\004\217\004\217\023\194\023\238\004\165\000\000\004\165\000\000\004\165\000\000\000\000\000\000\004\165\000\000\000\000\004\165\000\000\004\165\000\000\000\000\004\165\000\000\000\000\004\165\004\165\004\165\000\000\004\165\004\165\004\165\000\000\000\000\000\000\000\000\000\000\004\165\004\165\004\165\004\165\000\000\004\165\000\000\004\165\000\000\000\000\000\000\000\000\000\000\000\000\004\165\004\165\004\165\004\165\004\165\004\165\000\000\000\000\000\000\000\000\000\000\004\165\000\000\004\165\004\165\000\000\000\000\000\000\000\000\000\000\004\165\004\165\004\165\000\000\000\000\000\000\000\000\000\000\000\000\004\165\000\000\004\165\004\165\004\165\004\165\004\165\004\165\004\165\004\165\004\165\000\000\004\165\000\000\000\000\000\000\000\000\000\000\004\165\000\000\004\165\004\165\004\165\000\000\000\000\000\000\000\000\004\165\000\000\000\000\004\165\000\000\004\165\004\165\000\000\004\165\004\165\004\165\004\165\000\000\000\000\000\000\000\000\000\000\000\000\004\165\000\000\004\165\004\165\000\000\r\002\004\165\004\165\004\165\004\165\004\165\004\165\000\000\000\000\004\165\004\165\r2\000\000\000\000\004\165\004\165\000\000\000\000\004\165\004\165\004\165\004\165\004\161\000\000\004\161\000\000\004\161\000\000\000\000\000\000\004\161\000\000\000\000\004\161\000\000\004\161\000\000\000\000\004\161\000\000\000\000\004\161\004\161\004\161\000\000\004\161\004\161\004\161\000\000\000\000\000\000\000\000\000\000\004\161\004\161\004\161\004\161\000\000\004\161\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\004\161\004\161\004\161\004\161\004\161\004\161\000\000\000\000\000\000\000\000\000\000\004\161\000\000\004\161\004\161\000\000\000\000\000\000\000\000\000\000\004\161\004\161\004\161\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\004\161\004\161\004\161\004\161\004\161\004\161\004\161\004\161\004\161\000\000\004\161\000\000\000\000\000\000\000\000\000\000\004\161\000\000\004\161\004\161\004\161\000\000\000\000\000\000\000\000\004\161\000\000\000\000\004\161\000\000\004\161\004\161\000\000\004\161\004\161\004\161\004\161\000\000\000\000\000\000\000\000\000\000\000\000\004\161\000\000\004\161\004\161\000\000\018&\004\161\004\161\004\161\004\161\004\161\004\161\000\000\000\000\004\161\004\161\r2\000\000\000\000\004\161\004\161\000\000\000\000\004\161\004\161\004\161\004\161\004\157\000\000\004\157\000\000\004\157\000\000\000\000\000\000\004\157\000\000\000\000\004\157\000\000\004\157\000\000\000\000\019\214\000\000\000\000\004\157\004\157\004\157\000\000\004\157\004\157\004\157\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\004\157\000\000\000\000\000\000\000\000\000\000\000\000\004\157\020\214\004\157\021\178\021\222\004\157\000\000\000\000\000\000\000\000\000\000\004\157\000\000\022\n\004\157\000\000\000\000\000\000\000\000\000\000\004\157\004\157\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\157\000\000\004\157\004\157\020\002\021\002\0226\022b\023\018\004\157\004\157\000\000\004\157\000\000\000\000\000\000\000\000\000\000\004\157\000\000\004\157\004\157\023>\000\000\000\000\000\000\000\000\004\157\000\000\000\000\004\157\000\000\004\157\023j\000\000\004\157\004\157\004\157\004\157\000\000\000\000\000\000\000\000\000\000\000\000\004\157\000\000\004\157\004\157\000\000\024\026\004\157\004\157\024f\022\142\004\157\004\157\000\000\000\000\004\157\023\150\004\157\000\000\000\000\022\186\022\230\000\000\000\000\004\157\004\157\023\194\023\238\004\189\000\000\004\189\000\000\004\189\000\000\000\000\000\000\004\189\000\000\000\000\004\189\000\000\004\189\000\000\000\000\004\189\000\000\000\000\004\189\004\189\004\189\000\000\004\189\004\189\004\189\000\000\000\000\000\000\000\000\000\000\004\189\004\189\004\189\004\189\000\000\004\189\000\000\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\189\004\189\004\189\004\189\004\189\004\189\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\189\004\189\000\000\000\000\000\000\000\000\000\000\004\189\004\189\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\189\004\189\004\189\004\189\004\189\004\189\004\189\004\189\004\189\000\000\004\189\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\189\004\189\004\189\000\000\000\000\000\000\000\000\004\189\000\000\000\000\004\189\000\000\004\189\004\189\000\000\004\189\004\189\004\189\004\189\000\000\000\000\000\000\000\000\000\000\000\000\004\189\000\000\004\189\004\189\000\000\r\002\004\189\004\189\004\189\004\189\004\189\004\189\000\000\000\000\004\189\004\189\r2\000\000\000\000\004\189\004\189\000\000\000\000\004\189\004\189\004\189\004\189\004\185\000\000\004\185\000\000\004\185\000\000\000\000\000\000\004\185\000\000\000\000\004\185\000\000\004\185\000\000\000\000\004\185\000\000\000\000\004\185\004\185\004\185\000\000\004\185\004\185\004\185\000\000\000\000\000\000\000\000\000\000\004\185\004\185\004\185\004\185\000\000\004\185\000\000\004\185\000\000\000\000\000\000\000\000\000\000\000\000\004\185\004\185\004\185\004\185\004\185\004\185\000\000\000\000\000\000\000\000\000\000\004\185\000\000\004\185\004\185\000\000\000\000\000\000\000\000\000\000\004\185\004\185\004\185\000\000\000\000\000\000\000\000\000\000\000\000\004\185\000\000\004\185\004\185\004\185\004\185\004\185\004\185\004\185\004\185\004\185\000\000\004\185\000\000\000\000\000\000\000\000\000\000\004\185\000\000\004\185\004\185\004\185\000\000\000\000\000\000\000\000\004\185\000\000\000\000\004\185\000\000\004\185\004\185\000\000\004\185\004\185\004\185\004\185\000\000\000\000\000\000\000\000\000\000\000\000\004\185\000\000\004\185\004\185\000\000\018&\004\185\004\185\004\185\004\185\004\185\004\185\000\000\000\000\004\185\004\185\r2\000\000\000\000\004\185\004\185\000\000\000\000\004\185\004\185\004\185\004\185\004\181\000\000\004\181\000\000\004\181\000\000\000\000\000\000\004\181\000\000\000\000\004\181\000\000\004\181\000\000\000\000\019\214\000\000\000\000\004\181\004\181\004\181\000\000\004\181\004\181\004\181\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\004\181\000\000\000\000\000\000\000\000\000\000\000\000\004\181\020\214\004\181\021\178\021\222\004\181\000\000\000\000\000\000\000\000\000\000\004\181\000\000\022\n\004\181\000\000\000\000\000\000\000\000\000\000\004\181\004\181\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\181\000\000\004\181\004\181\020\002\021\002\0226\022b\023\018\004\181\004\181\000\000\004\181\000\000\000\000\000\000\000\000\000\000\004\181\000\000\004\181\004\181\023>\000\000\000\000\000\000\000\000\004\181\000\000\000\000\004\181\000\000\004\181\023j\000\000\004\181\004\181\004\181\004\181\000\000\000\000\000\000\000\000\000\000\000\000\004\181\000\000\004\181\004\181\000\000\024\026\004\181\004\181\024f\022\142\004\181\004\181\000\000\000\000\004\181\023\150\004\181\000\000\000\000\022\186\022\230\000\000\000\000\004\181\004\181\023\194\023\238\004\177\000\000\004\177\000\000\004\177\000\000\000\000\000\000\004\177\000\000\000\000\004\177\000\000\004\177\000\000\000\000\004\177\000\000\000\000\004\177\004\177\004\177\000\000\004\177\004\177\004\177\000\000\000\000\000\000\000\000\000\000\004\177\004\177\004\177\004\177\000\000\004\177\000\000\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\004\177\004\177\004\177\004\177\004\177\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\004\177\000\000\000\000\000\000\000\000\000\000\004\177\004\177\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\004\177\004\177\004\177\004\177\004\177\004\177\004\177\004\177\000\000\004\177\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\004\177\004\177\000\000\000\000\000\000\000\000\004\177\000\000\000\000\004\177\000\000\004\177\004\177\000\000\004\177\004\177\004\177\004\177\000\000\000\000\000\000\000\000\000\000\000\000\004\177\000\000\004\177\004\177\000\000\r\002\004\177\004\177\004\177\004\177\004\177\004\177\000\000\000\000\004\177\004\177\r2\000\000\000\000\004\177\004\177\000\000\000\000\004\177\004\177\004\177\004\177\004\173\000\000\004\173\000\000\004\173\000\000\000\000\000\000\004\173\000\000\000\000\004\173\000\000\004\173\000\000\000\000\004\173\000\000\000\000\004\173\004\173\004\173\000\000\004\173\004\173\004\173\000\000\000\000\000\000\000\000\000\000\004\173\004\173\004\173\004\173\000\000\004\173\000\000\004\173\000\000\000\000\000\000\000\000\000\000\000\000\004\173\004\173\004\173\004\173\004\173\004\173\000\000\000\000\000\000\000\000\000\000\004\173\000\000\004\173\004\173\000\000\000\000\000\000\000\000\000\000\004\173\004\173\004\173\000\000\000\000\000\000\000\000\000\000\000\000\004\173\000\000\004\173\004\173\004\173\004\173\004\173\004\173\004\173\004\173\004\173\000\000\004\173\000\000\000\000\000\000\000\000\000\000\004\173\000\000\004\173\004\173\004\173\000\000\000\000\000\000\000\000\004\173\000\000\000\000\004\173\000\000\004\173\004\173\000\000\004\173\004\173\004\173\004\173\000\000\000\000\000\000\000\000\000\000\000\000\004\173\000\000\004\173\004\173\000\000\018&\004\173\004\173\004\173\004\173\004\173\004\173\000\000\000\000\004\173\004\173\r2\000\000\000\000\004\173\004\173\000\000\000\000\004\173\004\173\004\173\004\173\004\169\000\000\004\169\000\000\004\169\000\000\000\000\000\000\004\169\000\000\000\000\004\169\000\000\004\169\000\000\000\000\019\214\000\000\000\000\004\169\004\169\004\169\000\000\004\169\004\169\004\169\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\004\169\000\000\000\000\000\000\000\000\000\000\000\000\004\169\020\214\004\169\021\178\021\222\004\169\000\000\000\000\000\000\000\000\000\000\004\169\000\000\022\n\004\169\000\000\000\000\000\000\000\000\000\000\004\169\004\169\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\169\000\000\004\169\004\169\020\002\021\002\0226\022b\023\018\004\169\004\169\000\000\004\169\000\000\000\000\000\000\000\000\000\000\004\169\000\000\004\169\004\169\023>\000\000\000\000\000\000\000\000\004\169\000\000\000\000\004\169\000\000\004\169\023j\000\000\004\169\004\169\004\169\004\169\000\000\000\000\000\000\000\000\000\000\000\000\004\169\000\000\004\169\004\169\000\000\024\026\004\169\004\169\024f\022\142\004\169\004\169\000\000\000\000\004\169\023\150\004\169\000\000\000\000\022\186\022\230\000\000\000\000\004\169\004\169\023\194\023\238\004\213\000\000\004\213\000\000\004\213\000\000\000\000\000\000\004\213\000\000\000\000\004\213\000\000\004\213\000\000\000\000\004\213\000\000\000\000\004\213\004\213\004\213\000\000\004\213\004\213\004\213\000\000\000\000\000\000\000\000\000\000\004\213\004\213\004\213\004\213\000\000\004\213\000\000\004\213\000\000\000\000\000\000\000\000\000\000\000\000\004\213\004\213\004\213\004\213\004\213\004\213\000\000\000\000\000\000\000\000\000\000\004\213\000\000\004\213\004\213\000\000\000\000\000\000\000\000\000\000\004\213\004\213\004\213\000\000\000\000\000\000\000\000\000\000\000\000\004\213\000\000\004\213\004\213\004\213\004\213\004\213\004\213\004\213\004\213\004\213\000\000\004\213\000\000\000\000\000\000\000\000\000\000\004\213\000\000\004\213\004\213\004\213\000\000\000\000\000\000\000\000\004\213\000\000\000\000\004\213\000\000\004\213\004\213\000\000\004\213\004\213\004\213\004\213\000\000\000\000\000\000\000\000\000\000\000\000\004\213\000\000\004\213\004\213\000\000\r\002\004\213\004\213\004\213\004\213\004\213\004\213\000\000\000\000\004\213\004\213\r2\000\000\000\000\004\213\004\213\000\000\000\000\004\213\004\213\004\213\004\213\004\209\000\000\004\209\000\000\004\209\000\000\000\000\000\000\004\209\000\000\000\000\004\209\000\000\004\209\000\000\000\000\004\209\000\000\000\000\004\209\004\209\004\209\000\000\004\209\004\209\004\209\000\000\000\000\000\000\000\000\000\000\004\209\004\209\004\209\004\209\000\000\004\209\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\004\209\004\209\004\209\004\209\004\209\004\209\000\000\000\000\000\000\000\000\000\000\004\209\000\000\004\209\004\209\000\000\000\000\000\000\000\000\000\000\004\209\004\209\004\209\000\000\000\000\000\000\000\000\000\000\000\000\004\209\000\000\004\209\004\209\004\209\004\209\004\209\004\209\004\209\004\209\004\209\000\000\004\209\000\000\000\000\000\000\000\000\000\000\004\209\000\000\004\209\004\209\004\209\000\000\000\000\000\000\000\000\004\209\000\000\000\000\004\209\000\000\004\209\004\209\000\000\004\209\004\209\004\209\004\209\000\000\000\000\000\000\000\000\000\000\000\000\004\209\000\000\004\209\004\209\000\000\018&\004\209\004\209\004\209\004\209\004\209\004\209\000\000\000\000\004\209\004\209\r2\000\000\000\000\004\209\004\209\000\000\000\000\004\209\004\209\004\209\004\209\004\205\000\000\004\205\000\000\004\205\000\000\000\000\000\000\004\205\000\000\000\000\004\205\000\000\004\205\000\000\000\000\019\214\000\000\000\000\004\205\004\205\004\205\000\000\004\205\004\205\004\205\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\004\205\000\000\000\000\000\000\000\000\000\000\000\000\004\205\020\214\004\205\021\178\021\222\004\205\000\000\000\000\000\000\000\000\000\000\004\205\000\000\022\n\004\205\000\000\000\000\000\000\000\000\000\000\004\205\004\205\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\205\000\000\004\205\004\205\020\002\021\002\0226\022b\023\018\004\205\004\205\000\000\004\205\000\000\000\000\000\000\000\000\000\000\004\205\000\000\004\205\004\205\023>\000\000\000\000\000\000\000\000\004\205\000\000\000\000\004\205\000\000\004\205\023j\000\000\004\205\004\205\004\205\004\205\000\000\000\000\000\000\000\000\000\000\000\000\004\205\000\000\004\205\004\205\000\000\024\026\004\205\004\205\024f\022\142\004\205\004\205\000\000\000\000\004\205\023\150\004\205\000\000\000\000\022\186\022\230\000\000\000\000\004\205\004\205\023\194\023\238\005\005\000\000\005\005\000\000\005\005\000\000\000\000\000\000\005\005\000\000\000\000\005\005\000\000\005\005\000\000\000\000\005\005\000\000\000\000\005\005\005\005\005\005\000\000\005\005\005\005\005\005\000\000\000\000\000\000\000\000\000\000\005\005\005\005\005\005\005\005\000\000\005\005\000\000\005\005\000\000\000\000\000\000\000\000\000\000\000\000\005\005\005\005\005\005\005\005\005\005\005\005\000\000\000\000\000\000\000\000\000\000\005\005\000\000\005\005\005\005\000\000\000\000\000\000\000\000\000\000\005\005\005\005\005\005\000\000\000\000\000\000\000\000\000\000\000\000\005\005\000\000\005\005\005\005\005\005\005\005\005\005\005\005\005\005\005\005\005\005\000\000\005\005\000\000\000\000\000\000\000\000\000\000\005\005\000\000\005\005\005\005\005\005\000\000\000\000\000\000\000\000\005\005\000\000\000\000\005\005\000\000\005\005\005\005\000\000\005\005\005\005\005\005\005\005\000\000\000\000\000\000\000\000\000\000\000\000\005\005\000\000\005\005\005\005\000\000\r\002\005\005\005\005\005\005\005\005\005\005\005\005\000\000\000\000\005\005\005\005\r2\000\000\000\000\005\005\005\005\000\000\000\000\005\005\005\005\005\005\005\005\005\001\000\000\005\001\000\000\005\001\000\000\000\000\000\000\005\001\000\000\000\000\005\001\000\000\005\001\000\000\000\000\005\001\000\000\000\000\005\001\005\001\005\001\000\000\005\001\005\001\005\001\000\000\000\000\000\000\000\000\000\000\005\001\005\001\005\001\005\001\000\000\005\001\000\000\005\001\000\000\000\000\000\000\000\000\000\000\000\000\005\001\005\001\005\001\005\001\005\001\005\001\000\000\000\000\000\000\000\000\000\000\005\001\000\000\005\001\005\001\000\000\000\000\000\000\000\000\000\000\005\001\005\001\005\001\000\000\000\000\000\000\000\000\000\000\000\000\005\001\000\000\005\001\005\001\005\001\005\001\005\001\005\001\005\001\005\001\005\001\000\000\005\001\000\000\000\000\000\000\000\000\000\000\005\001\000\000\005\001\005\001\005\001\000\000\000\000\000\000\000\000\005\001\000\000\000\000\005\001\000\000\005\001\005\001\000\000\005\001\005\001\005\001\005\001\000\000\000\000\000\000\000\000\000\000\000\000\005\001\000\000\005\001\005\001\000\000\018&\005\001\005\001\005\001\005\001\005\001\005\001\000\000\000\000\005\001\005\001\r2\000\000\000\000\005\001\005\001\000\000\000\000\005\001\005\001\005\001\005\001\004\253\000\000\004\253\000\000\004\253\000\000\000\000\000\000\004\253\000\000\000\000\004\253\000\000\004\253\000\000\000\000\019\214\000\000\000\000\004\253\004\253\004\253\000\000\004\253\004\253\004\253\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\004\253\000\000\000\000\000\000\000\000\000\000\000\000\004\253\020\214\004\253\021\178\021\222\004\253\000\000\000\000\000\000\000\000\000\000\004\253\000\000\022\n\004\253\000\000\000\000\000\000\000\000\000\000\004\253\004\253\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\253\000\000\004\253\004\253\020\002\021\002\0226\022b\023\018\004\253\004\253\000\000\004\253\000\000\000\000\000\000\000\000\000\000\004\253\000\000\004\253\004\253\023>\000\000\000\000\000\000\000\000\004\253\000\000\000\000\004\253\000\000\004\253\023j\000\000\004\253\004\253\004\253\004\253\000\000\000\000\000\000\000\000\000\000\000\000\004\253\000\000\004\253\004\253\000\000\024\026\004\253\004\253\024f\022\142\004\253\004\253\000\000\000\000\004\253\023\150\004\253\000\000\000\000\022\186\022\230\000\000\000\000\004\253\004\253\023\194\023\238\004\237\000\000\004\237\000\000\004\237\000\000\000\000\000\000\004\237\000\000\000\000\004\237\000\000\004\237\000\000\000\000\004\237\000\000\000\000\004\237\004\237\004\237\000\000\004\237\004\237\004\237\000\000\000\000\000\000\000\000\000\000\004\237\004\237\004\237\004\237\000\000\004\237\000\000\004\237\000\000\000\000\000\000\000\000\000\000\000\000\004\237\004\237\004\237\004\237\004\237\004\237\000\000\000\000\000\000\000\000\000\000\004\237\000\000\004\237\004\237\000\000\000\000\000\000\000\000\000\000\004\237\004\237\004\237\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\004\237\004\237\004\237\004\237\004\237\004\237\004\237\004\237\004\237\000\000\004\237\000\000\000\000\000\000\000\000\000\000\004\237\000\000\004\237\004\237\004\237\000\000\000\000\000\000\000\000\004\237\000\000\000\000\004\237\000\000\004\237\004\237\000\000\004\237\004\237\004\237\004\237\000\000\000\000\000\000\000\000\000\000\000\000\004\237\000\000\004\237\004\237\000\000\r\002\004\237\004\237\004\237\004\237\004\237\004\237\000\000\000\000\004\237\004\237\r2\000\000\000\000\004\237\004\237\000\000\000\000\004\237\004\237\004\237\004\237\004\233\000\000\004\233\000\000\004\233\000\000\000\000\000\000\004\233\000\000\000\000\004\233\000\000\004\233\000\000\000\000\004\233\000\000\000\000\004\233\004\233\004\233\000\000\004\233\004\233\004\233\000\000\000\000\000\000\000\000\000\000\004\233\004\233\004\233\004\233\000\000\004\233\000\000\004\233\000\000\000\000\000\000\000\000\000\000\000\000\004\233\004\233\004\233\004\233\004\233\004\233\000\000\000\000\000\000\000\000\000\000\004\233\000\000\004\233\004\233\000\000\000\000\000\000\000\000\000\000\004\233\004\233\004\233\000\000\000\000\000\000\000\000\000\000\000\000\004\233\000\000\004\233\004\233\004\233\004\233\004\233\004\233\004\233\004\233\004\233\000\000\004\233\000\000\000\000\000\000\000\000\000\000\004\233\000\000\004\233\004\233\004\233\000\000\000\000\000\000\000\000\004\233\000\000\000\000\004\233\000\000\004\233\004\233\000\000\004\233\004\233\004\233\004\233\000\000\000\000\000\000\000\000\000\000\000\000\004\233\000\000\004\233\004\233\000\000\018&\004\233\004\233\004\233\004\233\004\233\004\233\000\000\000\000\004\233\004\233\r2\000\000\000\000\004\233\004\233\000\000\000\000\004\233\004\233\004\233\004\233\004\229\000\000\004\229\000\000\004\229\000\000\000\000\000\000\004\229\000\000\000\000\004\229\000\000\004\229\000\000\000\000\019\214\000\000\000\000\004\229\004\229\004\229\000\000\004\229\004\229\004\229\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\004\229\000\000\000\000\000\000\000\000\000\000\000\000\004\229\020\214\004\229\021\178\021\222\004\229\000\000\000\000\000\000\000\000\000\000\004\229\000\000\022\n\004\229\000\000\000\000\000\000\000\000\000\000\004\229\004\229\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\229\000\000\004\229\004\229\020\002\021\002\0226\022b\023\018\004\229\004\229\000\000\004\229\000\000\000\000\000\000\000\000\000\000\004\229\000\000\004\229\004\229\023>\000\000\000\000\000\000\000\000\004\229\000\000\000\000\004\229\000\000\004\229\023j\000\000\004\229\004\229\004\229\004\229\000\000\000\000\000\000\000\000\000\000\000\000\004\229\000\000\004\229\004\229\000\000\024\026\004\229\004\229\024f\022\142\004\229\004\229\000\000\000\000\004\229\023\150\004\229\000\000\000\000\022\186\022\230\000\000\000\000\004\229\004\229\023\194\023\238\004\153\000\000\004\153\000\000\004\153\000\000\000\000\000\000\004\153\000\000\000\000\004\153\000\000\004\153\000\000\000\000\004\153\000\000\000\000\004\153\004\153\004\153\000\000\004\153\004\153\004\153\000\000\000\000\000\000\000\000\000\000\004\153\004\153\004\153\004\153\000\000\004\153\000\000\004\153\000\000\000\000\000\000\000\000\000\000\000\000\004\153\004\153\004\153\004\153\004\153\004\153\000\000\000\000\000\000\000\000\000\000\004\153\000\000\004\153\004\153\000\000\000\000\000\000\000\000\000\000\004\153\004\153\004\153\000\000\000\000\000\000\000\000\000\000\000\000\004\153\000\000\004\153\004\153\004\153\004\153\004\153\004\153\004\153\004\153\004\153\000\000\004\153\000\000\000\000\000\000\000\000\000\000\004\153\000\000\004\153\004\153\004\153\000\000\000\000\000\000\000\000\004\153\000\000\000\000\004\153\000\000\004\153\004\153\000\000\004\153\004\153\004\153\004\153\000\000\000\000\000\000\000\000\000\000\000\000\004\153\000\000\004\153\004\153\000\000\r\002\004\153\004\153\004\153\004\153\004\153\004\153\000\000\000\000\004\153\004\153\r2\000\000\000\000\004\153\004\153\000\000\000\000\004\153\004\153\004\153\004\153\004\149\000\000\004\149\000\000\004\149\000\000\000\000\000\000\004\149\000\000\000\000\004\149\000\000\004\149\000\000\000\000\004\149\000\000\000\000\004\149\004\149\004\149\000\000\004\149\004\149\004\149\000\000\000\000\000\000\000\000\000\000\004\149\004\149\004\149\004\149\000\000\004\149\000\000\004\149\000\000\000\000\000\000\000\000\000\000\000\000\004\149\004\149\004\149\004\149\004\149\004\149\000\000\000\000\000\000\000\000\000\000\004\149\000\000\004\149\004\149\000\000\000\000\000\000\000\000\000\000\004\149\004\149\004\149\000\000\000\000\000\000\000\000\000\000\000\000\004\149\000\000\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\004\149\000\000\004\149\000\000\000\000\000\000\000\000\000\000\004\149\000\000\004\149\004\149\004\149\000\000\000\000\000\000\000\000\004\149\000\000\000\000\004\149\000\000\004\149\004\149\000\000\004\149\004\149\004\149\004\149\000\000\000\000\000\000\000\000\000\000\000\000\004\149\000\000\004\149\004\149\000\000\018&\004\149\004\149\004\149\004\149\004\149\004\149\000\000\000\000\004\149\004\149\r2\000\000\000\000\004\149\004\149\000\000\000\000\004\149\004\149\004\149\004\149\004\145\000\000\004\145\000\000\004\145\000\000\000\000\000\000\004\145\000\000\000\000\004\145\000\000\004\145\000\000\000\000\019\214\000\000\000\000\004\145\004\145\004\145\000\000\004\145\004\145\004\145\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\004\145\000\000\000\000\000\000\000\000\000\000\000\000\004\145\020\214\004\145\021\178\021\222\004\145\000\000\000\000\000\000\000\000\000\000\004\145\000\000\022\n\004\145\000\000\000\000\000\000\000\000\000\000\004\145\004\145\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\004\145\004\145\020\002\021\002\0226\022b\023\018\004\145\004\145\000\000\004\145\000\000\000\000\000\000\000\000\000\000\004\145\000\000\004\145\004\145\023>\000\000\000\000\000\000\000\000\004\145\000\000\000\000\004\145\000\000\004\145\023j\000\000\004\145\004\145\004\145\004\145\000\000\000\000\000\000\000\000\000\000\000\000\004\145\000\000\004\145\004\145\000\000\024\026\004\145\004\145\024f\022\142\004\145\004\145\000\000\000\000\004\145\023\150\004\145\000\000\000\000\022\186\022\230\000\000\000\000\004\145\004\145\023\194\023\238\r]\000\000\r]\000\000\r]\000\000\000\000\000\000\r]\000\000\000\000\r]\000\000\r]\000\000\000\000\r]\000\000\000\000\r]\r]\r]\000\000\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\r]\r]\r]\r]\000\000\r]\000\000\r]\000\000\000\000\000\000\000\000\000\000\000\000\r]\r]\r]\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\000\000\000\000\000\000\000\000\000\000\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\r]\r]\r]\r]\r]\r]\r]\000\000\r]\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\r]\000\000\000\000\000\000\000\000\r]\000\000\000\000\r]\000\000\r]\r]\000\000\r]\r]\r]\r]\000\000\000\000\000\000\000\000\000\000\000\000\r]\000\000\r]\r]\000\000\018&\r]\r]\r]\r]\r]\r]\000\000\000\000\r]\r]\r2\000\000\000\000\r]\r]\000\000\000\000\r]\r]\r]\r]\rY\000\000\rY\000\000\rY\000\000\000\000\000\000\rY\000\000\000\000\rY\000\000\rY\000\000\000\000\019\214\000\000\000\000\rY\rY\rY\000\000\rY\rY\rY\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\rY\000\000\000\000\000\000\000\000\000\000\000\000\rY\020\214\rY\021\178\021\222\rY\000\000\000\000\000\000\000\000\000\000\rY\000\000\022\n\rY\000\000\000\000\000\000\000\000\000\000\rY\rY\000\242\000\000\000\000\000\000\000\000\000\000\000\000\rY\000\000\rY\rY\020\002\021\002\0226\022b\023\018\rY\rY\000\000\rY\000\000\000\000\000\000\000\000\000\000\rY\000\000\rY\rY\023>\000\000\000\000\000\000\000\000\rY\000\000\000\000\rY\000\000\rY\023j\000\000\rY\rY\rY\rY\000\000\000\000\000\000\000\000\000\000\000\000\rY\000\000\rY\rY\000\000\rY\rY\rY\rY\022\142\rY\rY\000\000\000\000\rY\023\150\rY\000\000\000\000\022\186\022\230\000\000\000\000\rY\rY\023\194\023\238\003\021\000\000\003\021\000\000\003\021\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\000\000\000\000\003\021\000\000\000\000\003\021\003\021\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\003\021\003\021\003\021\000\000\003\021\000\000\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\003\021\003\021\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\000\000\000\000\000\000\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\003\021\003\021\003\021\003\021\003\021\003\021\003\021\000\000\003\021\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\003\021\000\000\000\000\000\000\000\000\003\021\000\000\000\000\003\021\000\000\003\021\003\021\000\000\003\021\003\021\030\210\003\021\000\000\000\000\000\000\000\000\000\000\000\000\003\021\000\000\003\021\003\021\000\000\r\002\003\021\003\021\003\021\003\021\003\021\003\021\000\000\000\000\003\021\003\021\r2\000\000\000\000\003\021\003\021\000\000\000\000\003\021\003\021\003\021\003\021\003\t\000\000\003\t\000\000\003\t\000\000\000\000\000\000\003\t\000\000\000\000\003\t\000\000\003\t\000\000\000\000\003\t\000\000\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\003\t\003\t\003\t\003\t\000\000\003\t\000\000\003\t\000\000\000\000\000\000\000\000\000\000\000\000\003\t\003\t\003\t\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\000\000\000\000\000\000\000\000\000\000\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\003\t\003\t\003\t\003\t\003\t\003\t\003\t\000\000\003\t\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\003\t\000\000\000\000\000\000\000\000\003\t\000\000\000\000\003\t\000\000\003\t\003\t\000\000\003\t\003\t\003\t\003\t\000\000\000\000\000\000\000\000\000\000\000\000\003\t\000\000\003\t\003\t\000\000\r\002\003\t\003\t\003\t\003\t\003\t\003\t\000\000\000\000\003\t\003\t\r2\000\000\000\000\003\t\003\t\000\000\000\000\003\t\003\t\003\t\003\t\003\005\000\000\003\005\000\000\003\005\000\000\000\000\000\000\003\005\000\000\000\000\003\005\000\000\003\005\000\000\000\000\003\005\000\000\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\003\005\003\005\003\005\003\005\000\000\003\005\000\000\003\005\000\000\000\000\000\000\000\000\000\000\000\000\003\005\003\005\003\005\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\000\000\000\000\000\000\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\003\005\000\000\003\005\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\003\005\000\000\000\000\000\000\000\000\003\005\000\000\000\000\003\005\000\000\003\005\003\005\000\000\003\005\003\005\003\005\003\005\000\000\000\000\000\000\000\000\000\000\000\000\003\005\000\000\003\005\003\005\000\000\018&\003\005\003\005\003\005\003\005\003\005\003\005\000\000\000\000\003\005\003\005\r2\000\000\000\000\003\005\003\005\000\000\000\000\003\005\003\005\003\005\003\005\003\001\000\000\003\001\000\000\003\001\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\000\000\000\000\019\214\000\000\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\020~\021.\021Z\020\170\000\000\021\134\000\000\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\020\214\003\001\021\178\021\222\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\022\n\003\001\000\000\000\000\000\000\000\000\000\000\003\001\003\001\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\020\002\021\002\0226\022b\023\018\003\001\003\001\000\000\003\001\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\023>\000\000\000\000\000\000\000\000\003\001\000\000\000\000\003\001\000\000\003\001\023j\000\000\003\001\003\001\003\001\003\001\000\000\000\000\000\000\000\000\000\000\000\000\003\001\000\000\003\001\003\001\000\000\024\026\003\001\003\001\024f\022\142\003\001\003\001\000\000\000\000\003\001\023\150\003\001\000\000\000\000\022\186\022\230\000\000\000\000\003\001\003\001\023\194\023\238\003\017\000\000\003\017\000\000\003\017\000\000\000\000\000\000\003\017\000\000\000\000\003\017\000\000\003\017\000\000\000\000\003\017\000\000\000\000\003\017\003\017\003\017\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\003\017\003\017\003\017\003\017\000\000\003\017\000\000\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\017\003\017\003\017\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\000\000\000\000\000\000\000\000\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\003\017\000\000\003\017\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\003\017\000\000\000\000\000\000\000\000\003\017\000\000\000\000\003\017\000\000\003\017\003\017\000\000\003\017\003\017\031\014\003\017\000\000\000\000\000\000\000\000\000\000\000\000\003\017\000\000\003\017\003\017\000\000\018&\003\017\003\017\003\017\003\017\003\017\003\017\000\000\000\000\003\017\003\017\r2\000\000\000\000\003\017\003\017\000\000\000\000\003\017\003\017\003\017\003\017\002\253\000\000\002\253\000\000\002\253\000\000\000\000\000\000\002\253\000\000\000\000\002\253\000\000\002\253\000\000\000\000\002\253\000\000\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\002\253\002\253\002\253\002\253\000\000\002\253\000\000\002\253\000\000\000\000\000\000\000\000\000\000\000\000\002\253\002\253\002\253\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\000\000\000\000\000\000\000\000\000\000\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\002\253\002\253\002\253\002\253\002\253\002\253\002\253\000\000\002\253\000\000\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\002\253\000\000\000\000\000\000\000\000\002\253\000\000\000\000\002\253\000\000\002\253\002\253\000\000\002\253\002\253\002\253\002\253\000\000\000\000\000\000\000\000\000\000\000\000\002\253\000\000\002\253\002\253\000\000\r\002\002\253\002\253\002\253\002\253\002\253\002\253\000\000\000\000\002\253\002\253\r2\000\000\000\000\002\253\002\253\000\000\000\000\002\253\002\253\002\253\002\253\002\249\000\000\002\249\000\000\002\249\000\000\000\000\000\000\002\249\000\000\000\000\002\249\000\000\002\249\000\000\000\000\002\249\000\000\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\002\249\002\249\002\249\002\249\000\000\002\249\000\000\002\249\000\000\000\000\000\000\000\000\000\000\000\000\002\249\002\249\002\249\002\249\002\249\002\249\000\000\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\000\000\000\000\000\000\000\000\000\000\002\249\002\249\002\249\000\000\000\000\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\002\249\000\000\002\249\000\000\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\002\249\000\000\000\000\000\000\000\000\002\249\000\000\000\000\002\249\000\000\002\249\002\249\000\000\002\249\002\249\002\249\002\249\000\000\000\000\000\000\000\000\000\000\000\000\002\249\000\000\002\249\002\249\000\000\018&\002\249\002\249\002\249\002\249\002\249\002\249\000\000\000\000\002\249\002\249\r2\000\000\000\000\002\249\002\249\000\000\000\000\002\249\002\249\002\249\002\249\002\245\000\000\002\245\000\000\002\245\000\000\000\000\000\000\002\245\000\000\000\000\002\245\000\000\002\245\000\000\000\000\019\214\000\000\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\020~\021.\021Z\020\170\000\000\021\134\000\000\002\245\000\000\000\000\000\000\000\000\000\000\000\000\002\245\020\214\002\245\021\178\021\222\002\245\000\000\000\000\000\000\000\000\000\000\002\245\000\000\022\n\002\245\000\000\000\000\000\000\000\000\000\000\002\245\002\245\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\245\000\000\002\245\002\245\020\002\021\002\0226\022b\023\018\002\245\002\245\000\000\002\245\000\000\000\000\000\000\000\000\000\000\002\245\000\000\002\245\002\245\023>\000\000\000\000\000\000\000\000\002\245\000\000\000\000\002\245\000\000\002\245\023j\000\000\002\245\002\245\002\245\002\245\000\000\000\000\000\000\000\000\000\000\000\000\002\245\000\000\002\245\002\245\000\000\024\026\002\245\002\245\024f\022\142\002\245\002\245\000\000\000\000\002\245\023\150\002\245\000\000\000\000\022\186\022\230\000\000\000\000\002\245\002\245\023\194\023\238\003\r\000\000\003\r\000\000\003\r\000\000\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\000\000\000\000\019\214\000\000\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\020~\021.\021Z\020\170\000\000\021\134\000\000\003\r\000\000\000\000\000\000\000\000\000\000\000\000\003\r\020\214\003\r\021\178\021\222\003\r\000\000\000\000\000\000\000\000\000\000\003\r\000\000\022\n\003\r\000\000\000\000\000\000\000\000\000\000\003\r\003\r\000\242\000\000\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\020\002\021\002\0226\022b\023\018\003\r\003\r\000\000\003\r\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\023>\000\000\000\000\000\000\000\000\003\r\000\000\000\000\003\r\000\000\003\r\023j\000\000\003\r\003\r\031>\003\r\000\000\000\000\000\000\000\000\000\000\000\000\003\r\000\000\003\r\003\r\000\000\024\026\003\r\003\r\024f\022\142\003\r\003\r\000\000\000\000\003\r\023\150\003\r\000\000\000\000\022\186\022\230\000\000\000\000\003\r\003\r\023\194\023\238\002\241\000\000\002\241\000\000\002\241\000\000\000\000\000\000\002\241\000\000\000\000\002\241\000\000\002\241\000\000\000\000\002\241\000\000\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\002\241\002\241\002\241\002\241\000\000\002\241\000\000\002\241\000\000\000\000\000\000\000\000\000\000\000\000\002\241\002\241\002\241\002\241\002\241\002\241\000\000\000\000\000\000\000\000\000\000\002\241\000\000\002\241\002\241\000\000\000\000\000\000\000\000\000\000\002\241\002\241\002\241\000\000\000\000\000\000\000\000\000\000\000\000\002\241\000\000\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002\241\002\241\000\000\002\241\000\000\000\000\000\000\000\000\000\000\002\241\000\000\002\241\002\241\002\241\000\000\000\000\000\000\000\000\002\241\000\000\000\000\002\241\000\000\002\241\002\241\000\000\002\241\002\241\002\241\002\241\000\000\000\000\000\000\000\000\000\000\000\000\002\241\000\000\002\241\002\241\000\000\r\002\002\241\002\241\002\241\002\241\002\241\002\241\000\000\000\000\002\241\002\241\r2\000\000\000\000\002\241\002\241\000\000\000\000\002\241\002\241\002\241\002\241\002\237\000\000\002\237\000\000\002\237\000\000\000\000\000\000\002\237\000\000\000\000\002\237\000\000\002\237\000\000\000\000\002\237\000\000\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\002\237\002\237\002\237\002\237\000\000\002\237\000\000\002\237\000\000\000\000\000\000\000\000\000\000\000\000\002\237\002\237\002\237\002\237\002\237\002\237\000\000\000\000\000\000\000\000\000\000\002\237\000\000\002\237\002\237\000\000\000\000\000\000\000\000\000\000\002\237\002\237\002\237\000\000\000\000\000\000\000\000\000\000\000\000\002\237\000\000\002\237\002\237\002\237\002\237\002\237\002\237\002\237\002\237\002\237\000\000\002\237\000\000\000\000\000\000\000\000\000\000\002\237\000\000\002\237\002\237\002\237\000\000\000\000\000\000\000\000\002\237\000\000\000\000\002\237\000\000\002\237\002\237\000\000\002\237\002\237\002\237\002\237\000\000\000\000\000\000\000\000\000\000\000\000\002\237\000\000\002\237\002\237\000\000\018&\002\237\002\237\002\237\002\237\002\237\002\237\000\000\000\000\002\237\002\237\r2\000\000\000\000\002\237\002\237\000\000\000\000\002\237\002\237\002\237\002\237\002\233\000\000\002\233\000\000\002\233\000\000\000\000\000\000\002\233\000\000\000\000\002\233\000\000\002\233\000\000\000\000\019\214\000\000\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\020~\021.\021Z\020\170\000\000\021\134\000\000\002\233\000\000\000\000\000\000\000\000\000\000\000\000\002\233\020\214\002\233\021\178\021\222\002\233\000\000\000\000\000\000\000\000\000\000\002\233\000\000\022\n\002\233\000\000\000\000\000\000\000\000\000\000\002\233\002\233\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\233\000\000\002\233\002\233\020\002\021\002\0226\022b\023\018\002\233\002\233\000\000\002\233\000\000\000\000\000\000\000\000\000\000\002\233\000\000\002\233\002\233\023>\000\000\000\000\000\000\000\000\002\233\000\000\000\000\002\233\000\000\002\233\023j\000\000\002\233\002\233\002\233\002\233\000\000\000\000\000\000\000\000\000\000\000\000\002\233\000\000\002\233\002\233\000\000\024\026\002\233\002\233\024f\022\142\002\233\002\233\000\000\000\000\002\233\023\150\002\233\000\000\000\000\022\186\022\230\000\000\000\000\002\233\002\233\023\194\023\238\r\145\000\000\r\145\000\000\r\145\000\000\000\000\000\000\r\145\000\000\000\000\r\145\000\000\r\145\000\000\000\000\r\145\000\000\000\000\r\145\r\145\r\145\000\000\r\145\r\145\r\145\000\000\000\000\000\000\000\000\000\000\r\145\r\145\r\145\r\145\000\000\r\145\000\000\r\145\000\000\000\000\000\000\000\000\000\000\000\000\r\145\r\145\r\145\r\145\r\145\r\145\000\000\000\000\000\000\000\000\000\000\r\145\000\000\r\145\r\145\000\000\000\000\000\000\000\000\000\000\r\145\r\145\r\145\000\000\000\000\000\000\000\000\000\000\000\000\r\145\000\000\r\145\r\145\r\145\r\145\r\145\r\145\r\145\r\145\r\145\000\000\r\145\000\000\000\000\000\000\000\000\000\000\r\145\000\000\r\145\r\145\r\145\000\000\000\000\000\000\000\000\r\145\000\000\000\000\r\145\000\000\r\145\r\145\000\000\r\145\r\145\r\145\r\145\000\000\000\000\000\000\000\000\000\000\000\000\r\145\000\000\r\145\r\145\000\000\r\002\r\145\r\145\r\145\r\145\r\145\r\145\000\000\000\000\r\145\r\145\r2\000\000\000\000\r\145\r\145\000\000\000\000\r\145\r\145\r\145\r\145\r\141\000\000\r\141\000\000\r\141\000\000\000\000\000\000\r\141\000\000\000\000\r\141\000\000\r\141\000\000\000\000\r\141\000\000\000\000\r\141\r\141\r\141\000\000\r\141\r\141\r\141\000\000\000\000\000\000\000\000\000\000\r\141\r\141\r\141\r\141\000\000\r\141\000\000\r\141\000\000\000\000\000\000\000\000\000\000\000\000\r\141\r\141\r\141\r\141\r\141\r\141\000\000\000\000\000\000\000\000\000\000\r\141\000\000\r\141\r\141\000\000\000\000\000\000\000\000\000\000\r\141\r\141\r\141\000\000\000\000\000\000\000\000\000\000\000\000\r\141\000\000\r\141\r\141\r\141\r\141\r\141\r\141\r\141\r\141\r\141\000\000\r\141\000\000\000\000\000\000\000\000\000\000\r\141\000\000\r\141\r\141\r\141\000\000\000\000\000\000\000\000\r\141\000\000\000\000\r\141\000\000\r\141\r\141\000\000\r\141\r\141\r\141\r\141\000\000\000\000\000\000\000\000\000\000\000\000\r\141\000\000\r\141\r\141\000\000\018&\r\141\r\141\r\141\r\141\r\141\r\141\000\000\000\000\r\141\r\141\r2\000\000\000\000\r\141\r\141\000\000\000\000\r\141\r\141\r\141\r\141\r\137\000\000\r\137\000\000\r\137\000\000\000\000\000\000\r\137\000\000\000\000\r\137\000\000\r\137\000\000\000\000\019\214\000\000\000\000\r\137\r\137\r\137\000\000\r\137\r\137\r\137\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\r\137\000\000\000\000\000\000\000\000\000\000\000\000\r\137\020\214\r\137\021\178\021\222\r\137\000\000\000\000\000\000\000\000\000\000\r\137\000\000\022\n\r\137\000\000\000\000\000\000\000\000\000\000\r\137\r\137\000\242\000\000\000\000\000\000\000\000\000\000\000\000\r\137\000\000\r\137\r\137\020\002\021\002\0226\022b\023\018\r\137\r\137\000\000\r\137\000\000\000\000\000\000\000\000\000\000\r\137\000\000\r\137\r\137\023>\000\000\000\000\000\000\000\000\r\137\000\000\000\000\r\137\000\000\r\137\023j\000\000\r\137\r\137\r\137\r\137\000\000\000\000\000\000\000\000\000\000\000\000\r\137\000\000\r\137\r\137\000\000\r\137\r\137\r\137\r\137\022\142\r\137\r\137\000\000\000\000\r\137\023\150\r\137\000\000\000\000\022\186\022\230\000\000\000\000\r\137\r\137\023\194\023\238\ru\000\000\ru\000\000\ru\000\000\000\000\000\000\ru\000\000\000\000\ru\000\000\ru\000\000\000\000\ru\000\000\000\000\ru\ru\ru\000\000\ru\ru\ru\000\000\000\000\000\000\000\000\000\000\ru\ru\ru\ru\000\000\ru\000\000\ru\000\000\000\000\000\000\000\000\000\000\000\000\ru\ru\ru\ru\ru\ru\000\000\000\000\000\000\000\000\000\000\ru\000\000\ru\ru\000\000\000\000\000\000\000\000\000\000\ru\ru\ru\000\000\000\000\000\000\000\000\000\000\000\000\ru\000\000\ru\ru\ru\ru\ru\ru\ru\ru\ru\000\000\ru\000\000\000\000\000\000\000\000\000\000\ru\000\000\ru\ru\ru\000\000\000\000\000\000\000\000\ru\000\000\000\000\ru\000\000\ru\ru\000\000\ru\ru\ru\ru\000\000\000\000\000\000\000\000\000\000\000\000\ru\000\000\ru\ru\000\000\018&\ru\ru\ru\ru\ru\ru\000\000\000\000\ru\ru\r2\000\000\000\000\ru\ru\000\000\000\000\ru\ru\ru\ru\rq\000\000\rq\000\000\rq\000\000\000\000\000\000\rq\000\000\000\000\rq\000\000\rq\000\000\000\000\019\214\000\000\000\000\rq\rq\rq\000\000\rq\rq\rq\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\rq\000\000\000\000\000\000\000\000\000\000\000\000\rq\020\214\rq\021\178\021\222\rq\000\000\000\000\000\000\000\000\000\000\rq\000\000\022\n\rq\000\000\000\000\000\000\000\000\000\000\rq\rq\000\242\000\000\000\000\000\000\000\000\000\000\000\000\rq\000\000\rq\rq\020\002\021\002\0226\022b\023\018\rq\rq\000\000\rq\000\000\000\000\000\000\000\000\000\000\rq\000\000\rq\rq\023>\000\000\000\000\000\000\000\000\rq\000\000\000\000\rq\000\000\rq\023j\000\000\rq\rq\rq\rq\000\000\000\000\000\000\000\000\000\000\000\000\rq\000\000\rq\rq\000\000\rq\rq\rq\rq\022\142\rq\rq\000\000\000\000\rq\023\150\rq\000\000\000\000\022\186\022\230\000\000\000\000\rq\rq\023\194\023\238\004\137\000\000\004\137\000\000\004\137\000\000\000\000\000\000\004\137\000\000\000\000\004\137\000\000\004\137\000\000\000\000\004\137\000\000\000\000\004\137\004\137\004\137\000\000\004\137\004\137\004\137\000\000\000\000\000\000\000\000\000\000\004\137\004\137\004\137\004\137\000\000\004\137\000\000\004\137\000\000\000\000\000\000\000\000\000\000\000\000\004\137\004\137\004\137\004\137\004\137\004\137\000\000\000\000\000\000\000\000\000\000\004\137\000\000\004\137\004\137\000\000\000\000\000\000\000\000\000\000\004\137\004\137\004\137\000\000\000\000\000\000\000\000\000\000\000\000\004\137\000\000\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\004\137\000\000\004\137\000\000\000\000\000\000\000\000\000\000\004\137\000\000\004\137\004\137\004\137\000\000\000\000\000\000\000\000\004\137\000\000\000\000\004\137\000\000\004\137\004\137\000\000\004\137\004\137\004\137\004\137\000\000\000\000\000\000\000\000\000\000\000\000\004\137\000\000\004\137\004\137\000\000\018&\004\137\004\137\004\137\004\137\004\137\004\137\000\000\000\000\004\137\004\137\r2\000\000\000\000\004\137\004\137\000\000\000\000\004\137\004\137\004\137\004\137\004\133\000\000\004\133\000\000\004\133\000\000\000\000\000\000\004\133\000\000\000\000\004\133\000\000\004\133\000\000\000\000\019\214\000\000\000\000\004\133\004\133\004\133\000\000\004\133\004\133\004\133\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\004\133\000\000\000\000\000\000\000\000\000\000\000\000\004\133\020\214\004\133\021\178\021\222\004\133\000\000\000\000\000\000\000\000\000\000\004\133\000\000\022\n\004\133\000\000\000\000\000\000\000\000\000\000\004\133\004\133\000\242\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\004\133\004\133\020\002\021\002\0226\022b\023\018\004\133\004\133\000\000\004\133\000\000\000\000\000\000\000\000\000\000\004\133\000\000\004\133\004\133\023>\000\000\000\000\000\000\000\000\004\133\000\000\000\000\004\133\000\000\004\133\023j\000\000\004\133\004\133\004\133\004\133\000\000\000\000\000\000\000\000\000\000\000\000\004\133\000\000\004\133\004\133\000\000\024\026\004\133\004\133\024f\022\142\004\133\004\133\000\000\000\000\004\133\023\150\004\133\000\000\000\000\022\186\022\230\000\000\000\000\004\133\004\133\023\194\023\238\002\213\000\000\002\213\000\000\002\213\000\000\000\000\000\000\002\213\000\000\000\000\002\213\000\000\002\213\000\000\000\000\002\213\000\000\000\000\002\213\002\213\002\213\000\000\002\213\002\213\002\213\000\000\000\000\000\000\000\000\000\000\002\213\002\213\002\213\002\213\000\000\002\213\000\000\002\213\000\000\000\000\000\000\000\000\000\000\000\000\002\213\002\213\002\213\002\213\002\213\002\213\000\000\000\000\000\000\000\000\000\000\002\213\000\000\002\213\002\213\000\000\000\000\000\000\000\000\000\000\002\213\002\213\002\213\000\000\000\000\000\000\000\000\000\000\000\000\002\213\000\000\002\213\002\213\002\213\002\213\002\213\002\213\002\213\002\213\002\213\000\000\002\213\000\000\000\000\000\000\000\000\000\000\002\213\000\000\002\213\002\213\002\213\000\000\000\000\000\000\000\000\002\213\000\000\000\000\002\213\000\000\002\213\002\213\000\000\002\213\002\213\002\213\002\213\000\000\000\000\000\000\000\000\000\000\000\000\002\213\000\000\002\213\002\213\000\000\002\213\002\213\002\213\002\213\002\213\002\213\002\213\000\000\000\000\002\213\002\213\r2\000\000\000\000\002\213\002\213\000\000\000\000\002\213\002\213\002\213\002\213\002\229\000\000\002\229\000\000\002\229\000\000\000\000\000\000\002\229\000\000\000\000\002\229\000\000\002\229\000\000\000\000\002\229\000\000\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\002\229\002\229\002\229\002\229\000\000\002\229\000\000\002\229\000\000\000\000\000\000\000\000\000\000\000\000\002\229\002\229\002\229\002\229\002\229\002\229\000\000\000\000\000\000\000\000\000\000\002\229\000\000\002\229\002\229\000\000\000\000\000\000\000\000\000\000\002\229\002\229\002\229\000\000\000\000\000\000\000\000\000\000\000\000\002\229\000\000\002\229\002\229\002\229\002\229\002\229\002\229\002\229\002\229\002\229\000\000\002\229\000\000\000\000\000\000\000\000\000\000\002\229\000\000\002\229\002\229\002\229\000\000\000\000\000\000\000\000\002\229\000\000\000\000\002\229\000\000\002\229\002\229\000\000\002\229\002\229\002\229\002\229\000\000\000\000\000\000\000\000\000\000\000\000\002\229\000\000\002\229\002\229\000\000\r\002\002\229\002\229\002\229\002\229\002\229\002\229\000\000\000\000\002\229\002\229\r2\000\000\000\000\002\229\002\229\000\000\000\000\002\229\002\229\002\229\002\229\002\225\000\000\002\225\000\000\002\225\000\000\000\000\000\000\002\225\000\000\000\000\002\225\000\000\002\225\000\000\000\000\002\225\000\000\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\002\225\002\225\002\225\002\225\000\000\002\225\000\000\002\225\000\000\000\000\000\000\000\000\000\000\000\000\002\225\002\225\002\225\002\225\002\225\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\000\000\002\225\002\225\002\225\000\000\000\000\000\000\000\000\000\000\000\000\002\225\000\000\002\225\002\225\002\225\002\225\002\225\002\225\002\225\002\225\002\225\000\000\002\225\000\000\000\000\000\000\000\000\000\000\002\225\000\000\002\225\002\225\002\225\000\000\000\000\000\000\000\000\002\225\000\000\000\000\002\225\000\000\002\225\002\225\000\000\002\225\002\225\002\225\002\225\000\000\000\000\000\000\000\000\000\000\000\000\002\225\000\000\002\225\002\225\000\000\018&\002\225\002\225\002\225\002\225\002\225\002\225\000\000\000\000\002\225\002\225\r2\000\000\000\000\002\225\002\225\000\000\000\000\002\225\002\225\002\225\002\225\002\221\000\000\002\221\000\000\002\221\000\000\000\000\000\000\002\221\000\000\000\000\002\221\000\000\002\221\000\000\000\000\019\214\000\000\000\000\002\221\002\221\002\221\000\000\002\221\002\221\002\221\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\002\221\000\000\000\000\000\000\000\000\000\000\000\000\002\221\020\214\002\221\021\178\021\222\002\221\000\000\000\000\000\000\000\000\000\000\002\221\000\000\022\n\002\221\000\000\000\000\000\000\000\000\000\000\002\221\002\221\000\242\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\221\002\221\020\002\021\002\0226\022b\023\018\002\221\002\221\000\000\002\221\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\221\002\221\023>\000\000\000\000\000\000\000\000\002\221\000\000\000\000\002\221\000\000\002\221\023j\000\000\002\221\002\221\002\221\002\221\000\000\000\000\000\000\000\000\000\000\000\000\002\221\000\000\002\221\002\221\000\000\024\026\002\221\002\221\024f\022\142\002\221\002\221\000\000\000\000\002\221\023\150\002\221\000\000\000\000\022\186\022\230\000\000\000\000\002\221\002\221\023\194\023\238\015-\000\000\015-\000\000\015-\000\000\000\000\000\000\015-\000\000\000\000\015-\000\000\015-\000\000\000\000\015-\000\000\000\000\015-\015-\015-\000\000\015-\015-\015-\000\000\000\000\000\000\000\000\000\000\015-\015-\015-\015-\000\000\015-\000\000\015-\000\000\000\000\000\000\000\000\000\000\000\000\015-\015-\015-\015-\015-\015-\000\000\000\000\000\000\000\000\000\000\015-\000\000\015-\015-\000\000\000\000\000\000\000\000\000\000\015-\015-\015-\000\000\000\000\000\000\000\000\000\000\000\000\015-\000\000\015-\015-\015-\015-\015-\015-\015-\015-\015-\000\000\015-\000\000\000\000\000\000\000\000\000\000\015-\000\000\015-\015-\015-\000\000\000\000\000\000\000\000\015-\000\000\000\000\015-\000\000\015-\015-\000\000\015-\015-\015-\015-\000\000\000\000\000\000\000\000\000\000\000\000\015-\000\000\015-\015-\000\000\r\002\015-\015-\015-\015-\015-\015-\000\000\000\000\015-\015-\r2\000\000\000\000\015-\015-\000\000\000\000\015-\015-\015-\015-\r\193\000\000\r\193\000\000\r\193\000\000\000\000\000\000\r\193\000\000\000\000\r\193\000\000\r\193\000\000\000\000\r\193\000\000\000\000\r\193\r\193\r\193\000\000\r\193\r\193\r\193\000\000\000\000\000\000\000\000\000\000\r\193\r\193\r\193\r\193\000\000\r\193\000\000\r\193\000\000\000\000\000\000\000\000\000\000\000\000\r\193\r\193\r\193\r\193\r\193\r\193\000\000\000\000\000\000\000\000\000\000\r\193\000\000\r\193\r\193\000\000\000\000\000\000\000\000\000\000\r\193\r\193\r\193\000\000\000\000\000\000\000\000\000\000\000\000\r\193\000\000\r\193\r\193\r\193\r\193\r\193\r\193\r\193\r\193\r\193\000\000\r\193\000\000\000\000\000\000\000\000\000\000\r\193\000\000\r\193\r\193\r\193\000\000\000\000\000\000\000\000\r\193\000\000\000\000\r\193\000\000\r\193\r\193\000\000\r\193\r\193\r\193\r\193\000\000\000\000\000\000\000\000\000\000\000\000\r\193\000\000\r\193\r\193\000\000\r\002\r\193\r\193\r\193\r\193\r\193\r\193\000\000\000\000\r\193\r\193\r2\000\000\000\000\r\193\r\193\000\000\000\000\r\193\r\193\r\193\r\193\r\189\000\000\r\189\000\000\r\189\000\000\000\000\000\000\r\189\000\000\000\000\r\189\000\000\r\189\000\000\000\000\r\189\000\000\000\000\r\189\r\189\r\189\000\000\r\189\r\189\r\189\000\000\000\000\000\000\000\000\000\000\r\189\r\189\r\189\r\189\000\000\r\189\000\000\r\189\000\000\000\000\000\000\000\000\000\000\000\000\r\189\r\189\r\189\r\189\r\189\r\189\000\000\000\000\000\000\000\000\000\000\r\189\000\000\r\189\r\189\000\000\000\000\000\000\000\000\000\000\r\189\r\189\r\189\000\000\000\000\000\000\000\000\000\000\000\000\r\189\000\000\r\189\r\189\r\189\r\189\r\189\r\189\r\189\r\189\r\189\000\000\r\189\000\000\000\000\000\000\000\000\000\000\r\189\000\000\r\189\r\189\r\189\000\000\000\000\000\000\000\000\r\189\000\000\000\000\r\189\000\000\r\189\r\189\000\000\r\189\r\189\r\189\r\189\000\000\000\000\000\000\000\000\000\000\000\000\r\189\000\000\r\189\r\189\000\000\018&\r\189\r\189\r\189\r\189\r\189\r\189\000\000\000\000\r\189\r\189\r2\000\000\000\000\r\189\r\189\000\000\000\000\r\189\r\189\r\189\r\189\r\185\000\000\r\185\000\000\r\185\000\000\000\000\000\000\r\185\000\000\000\000\r\185\000\000\r\185\000\000\000\000\019\214\000\000\000\000\r\185\r\185\r\185\000\000\r\185\r\185\r\185\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\r\185\000\000\000\000\000\000\000\000\000\000\000\000\r\185\020\214\r\185\021\178\021\222\r\185\000\000\000\000\000\000\000\000\000\000\r\185\000\000\022\n\r\185\000\000\000\000\000\000\000\000\000\000\r\185\r\185\000\242\000\000\000\000\000\000\000\000\000\000\000\000\r\185\000\000\r\185\r\185\020\002\021\002\0226\022b\023\018\r\185\r\185\000\000\r\185\000\000\000\000\000\000\000\000\000\000\r\185\000\000\r\185\r\185\023>\000\000\000\000\000\000\000\000\r\185\000\000\000\000\r\185\000\000\r\185\023j\000\000\r\185\r\185\r\185\r\185\000\000\000\000\000\000\000\000\000\000\000\000\r\185\000\000\r\185\r\185\000\000\r\185\r\185\r\185\r\185\022\142\r\185\r\185\000\000\000\000\r\185\023\150\r\185\000\000\000\000\022\186\022\230\000\000\000\000\r\185\r\185\023\194\023\238\r\169\000\000\r\169\000\000\r\169\000\000\000\000\000\000\r\169\000\000\000\000\r\169\000\000\r\169\000\000\000\000\r\169\000\000\000\000\r\169\r\169\r\169\000\000\r\169\r\169\r\169\000\000\000\000\000\000\000\000\000\000\r\169\r\169\r\169\r\169\000\000\r\169\000\000\r\169\000\000\000\000\000\000\000\000\000\000\000\000\r\169\r\169\r\169\r\169\r\169\r\169\000\000\000\000\000\000\000\000\000\000\r\169\000\000\r\169\r\169\000\000\000\000\000\000\000\000\000\000\r\169\r\169\r\169\000\000\000\000\000\000\000\000\000\000\000\000\r\169\000\000\r\169\r\169\r\169\r\169\r\169\r\169\r\169\r\169\r\169\000\000\r\169\000\000\000\000\000\000\000\000\000\000\r\169\000\000\r\169\r\169\r\169\000\000\000\000\000\000\000\000\r\169\000\000\000\000\r\169\000\000\r\169\r\169\000\000\r\169\r\169\r\169\r\169\000\000\000\000\000\000\000\000\000\000\000\000\r\169\000\000\r\169\r\169\000\000\r\002\r\169\r\169\r\169\r\169\r\169\r\169\000\000\000\000\r\169\r\169\r2\000\000\000\000\r\169\r\169\000\000\000\000\r\169\r\169\r\169\r\169\r\165\000\000\r\165\000\000\r\165\000\000\000\000\000\000\r\165\000\000\000\000\r\165\000\000\r\165\000\000\000\000\r\165\000\000\000\000\r\165\r\165\r\165\000\000\r\165\r\165\r\165\000\000\000\000\000\000\000\000\000\000\r\165\r\165\r\165\r\165\000\000\r\165\000\000\r\165\000\000\000\000\000\000\000\000\000\000\000\000\r\165\r\165\r\165\r\165\r\165\r\165\000\000\000\000\000\000\000\000\000\000\r\165\000\000\r\165\r\165\000\000\000\000\000\000\000\000\000\000\r\165\r\165\r\165\000\000\000\000\000\000\000\000\000\000\000\000\r\165\000\000\r\165\r\165\r\165\r\165\r\165\r\165\r\165\r\165\r\165\000\000\r\165\000\000\000\000\000\000\000\000\000\000\r\165\000\000\r\165\r\165\r\165\000\000\000\000\000\000\000\000\r\165\000\000\000\000\r\165\000\000\r\165\r\165\000\000\r\165\r\165\r\165\r\165\000\000\000\000\000\000\000\000\000\000\000\000\r\165\000\000\r\165\r\165\000\000\018&\r\165\r\165\r\165\r\165\r\165\r\165\000\000\000\000\r\165\r\165\r2\000\000\000\000\r\165\r\165\000\000\000\000\r\165\r\165\r\165\r\165\r\161\000\000\r\161\000\000\r\161\000\000\000\000\000\000\r\161\000\000\000\000\r\161\000\000\r\161\000\000\000\000\019\214\000\000\000\000\r\161\r\161\r\161\000\000\r\161\r\161\r\161\000\000\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\r\161\000\000\000\000\000\000\000\000\000\000\000\000\r\161\020\214\r\161\021\178\021\222\r\161\000\000\000\000\000\000\000\000\000\000\r\161\000\000\022\n\r\161\000\000\000\000\000\000\000\000\000\000\r\161\r\161\000\242\000\000\000\000\000\000\000\000\000\000\000\000\r\161\000\000\r\161\r\161\020\002\021\002\0226\022b\023\018\r\161\r\161\000\000\r\161\000\000\000\000\000\000\000\000\000\000\r\161\000\000\r\161\r\161\023>\000\000\000\000\000\000\000\000\r\161\000\000\000\000\r\161\000\000\r\161\023j\000\000\r\161\r\161\r\161\r\161\000\000\000\000\000\000\000\000\000\000\000\000\r\161\000\000\r\161\r\161\000\000\r\161\r\161\r\161\r\161\022\142\r\161\r\161\000\000\000\000\r\161\023\150\r\161\000\000\000\000\022\186\022\230\000\000\000\000\r\161\r\161\023\194\023\238\002\217\000\000\002\217\000\000\002\217\000\000\000\000\000\000\002\217\000\000\000\000\002\217\000\000\002\217\000\000\000\000\002\217\000\000\000\000\002\217\002\217\002\217\000\000\002\217\002\217\002\217\000\000\000\000\000\000\000\000\000\000\002\217\002\217\002\217\002\217\000\000\002\217\000\000\002\217\000\000\000\000\000\000\000\000(\142\000\000\002\217\002\217\002\217\002\217\002\217\002\217\000\000\000\000\000\000\000\000\000\000\002\217\000\000\002\217\002\217\000\000\000\000\000\000\000\000\012\165\002\217\002\217\002\217\000\000\000\000\000\000\000\000\000\000\000\000\002\217\000\000\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\002\217\000\000\002\217\000\000\000\000\000\000\000\000\000\000\002\217\021Y\002\217\002\217\002\217\000\000\000\000\000\000\000\000\002\217\000\000\000\000\002\217\000\000\002\217\002\217\000\242\002\217\002\217\002\217\002\217\000\000\021Y\000\000\000\000\003\002\000\000\002\217\003\006\002\217\002\217\000\000\002\217\002\217\002\217\002\217\002\217\002\217\002\217\000\000\000\000\002\217\002\217\r2\003\018\000\000\002\217\002\217\000\000\000\000\002\217\002\217\002\217\002\217\000\006\000\000\000\000\000\250\003\194\003\198\003\202\tZ\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\t\134\000\000'\234\011\222*\210\003\030\007\253\011r'\238\001\234\000\000(\134\000\000\b\158\012\026\012\182\012\186\000\000\012\190\000\000\012\"'\242\012\202\000\000\b\162'\238\t\138\000\000(\026\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000(~\003\186\000\000\000\000\t\190\t\198(\150\000\000+F\t\206\t\214\t\230\017\002\017\210\003\202(\158\t\238(~\000\000\003\"\000\000\000\000\000\000(\150(\174\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\001\234+\234+\250\000\000\000\000\000\000\000\000\018\022\018r\018\178\n\006\n\n(\182\018\198(\238*\198\000\000\007\253\007\253\000\000\000\000\n\014\000\000\n\018\000\000\000\000,\006\000\000\t\150\000\000,\n\000\000\000\000\000\000\003\186\b\021\000\000)*)6\n\150\016\246\000\000,:\000\000\017\014\007\214\000\006-2\018\202\000\250\003\194\003\198\003\202\tZ\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\t\134\000\000\b\029\000\000\000\000\000\000\000\000\000\000'\238\001\234\000\000\000\000,J\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000'\242\012\202\000\000\b\162\000\000\t\138\000\000(\026\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000(~\003\186\000\000\000\000\t\190\t\198(\150\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000(\158\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000(\174\000\000\018\n6\206\t\242\t\246\000\000\t\250\n\0026\238\000\000\000\000\000\000\000\000\000\000\000\000\018\022\018r\018\178\n\006\n\n(\182\018\198(\238\000\000\000\0007\015#\030\000\000\000\000\n\014\000\000\n\018\000\000\000\000\000\000\000\000$&\000\000\000\000\003\170\000\000\000\000\000\000\005=\000\000\000\000)6\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\006\000\000\018\202\000\250\003\194\003\198\003\202\tZ\003\206\003\170\000\000\003\218\000\000\000\000\b\150\004n\t\134\000\0007>\000\000\000\000\000\000\000\000\000\000'\238\001\234\000\000$*\000\000\b\158\000\000\012\182\012\186\000\000\012\190\005=\000\000'\242\012\202\000\000\b\162\000\000\t\138$6(\0260\198\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000(~\003\186\000\000\000\000\t\190\t\198(\150\000\0000\210\t\206\t\214\t\230\017\002\017\210\000\000(\158\t\238\000\000\000\000\000\000\n\n\000\000\000\000\000\000(\174\000\000\018\n6\206\t\242\t\246\000\000\t\250\n\0026\2380\222\000\000\005=\000\000\000\000\000\000\018\022\018r\018\178\n\006\n\n(\182\018\198(\238\000\000\004v\b%\005=0r\000\000\n\014\000\000\n\018\000\000\001\202\b\178\003\202\014\234\000\000\003\170\000\000\b\182\000\000\000\000\b\150\001\n\000\000)6\n\150\016\246\003\182\000\000\000\000\017\014\007\214\001\234\000\000\018\202\000\000\001\014\001\018\001\022\t\026\001\030\000\000\001\"\000\000\000\000\001\206\000\000\000\000\000\000\000\000\000\000\t\030\001&\000\000\001*\011\202\000\000\000\000\t\022\001\210\001\190\0012\000\000\000\000\0016\000\000\003\186\017\017\000\000\n&\n*\000\000\000\000\000\000\n.\000\000\n6\nZ\n~\021Y\021A\t\238\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\nf\t\242\t\246\001N\nz\n\130\n\142\000\000\021Y\000\000\001R\003\002\000\000\000\000\003\006\017\017\n\006\n\n\000\000\000\000\011\n\001V\000\000\003\014\000\000\000\000\002\137\002\137\001Z\000\000\003\018\000\000\017\017\003\026\002\137\021A\017\017\026v\000\000\000\000\000\000\001\150\011\206\017\017\000\000\n\150\002\137\004v\001\154\017\017\001\158\007\214\001\162\001\166\000\n\000\000\001\170\000\000\001\174\001\178\000\185\003\030\003\198\003\202\000\185\021\149\003\170\000\000\019\030\000\000\000\000\b\150\002\137\000\000\000\000\000\185\000\000\000\185\000\000\000\185\002\137\000\185\001\234\000\000\0196\b\205\b\158\002\137\000\000\b\205\000\000\000\000\000\000\019>\000\185\000\000\000\000\b\162\000\000\t\138\000\000\000\185\000\000\000\000\000\000\000\000\000\185\000\000\t\182\000\000\001\190\000\000\000\185\000\000\000\000\000\185\003\186\003\"\002\137\t\190\t\198\000\185\000\185\000\185\t\206\t\214\t\230\000\000\019F\000\000\000\185\t\238\000\185\000\185\007\233\000\000\000\000\000\000\000\000\000\185\000\000\000\000\000\185\t\242\t\246\000\000\t\250\n\002\000\185\000\000\000\000\021\149\000\000\000\000\021\149\007\233\015^\021\149\n\006\n\n\000\185\000\000\000\185\000\000\000\000\000\185\000\185\000\000\012M\n\014\000\000\n\018\b\205\000\000\000\000\000\000\000\000\000\000\000\185\021\149\007\233\021\149\000\000\021\149\000\000\000\185\000\185\n\150\016\246\007\233\000\000\b\205\017\014\007\214\b\205\007\233\t~\000\185\000\209\000\185\003\198\003\202\000\209\000\000\003\170\000\000\019\030\007\233\012M\b\150\000\000\000\000\000\000\000\209\000\000\000\209\000\000\000\209\000\000\000\209\001\234\000\000\0196\000\000\b\158\012M\000\000\000\000\000\000\012M\017\198\019>\000\209\000\000\000\000\b\162\012M\t\138\000\000\000\209\007\233\000\000\012M\000\000\000\209\000\000\t\182\000\000\001\190\000\000\000\209\000\000\007\233\000\209\003\186\000\000\000\000\t\190\t\198\000\209\000\209\000\209\t\206\t\214\t\230\000\000\019F\000\000\000\209\t\238\000\209\000\209\000\000\015n\000\000\tN\003\202\000\209\000\000\000\000\000\209\t\242\t\246\tR\t\250\n\002\000\209\000\000\000\000\000\000\017j\000\000\000\000\000\000\000\000\001\234\n\006\n\n\000\209\000\000\000\209\002\137\000\000\000\209\000\209\000\000\000\000\n\014\000\000\n\018\000\000\000\000\002\137\000\000\000\000\000\000\000\209\000\000\000\000\000\000\002\137\015j\000\000\000\209\000\209\n\150\016\246\011\218\000\n\003\186\017\014\007\214\b\178\003\202\011\130\000\209\003\170\000\209\b\182\002\137\000\000\b\150\001\n\000\000\000\000\000\000\002\137\003\182\002\137\000\000\000\000\000\000\001\234\000\000\002\137\000\000\001\014\001\018\001\022\t\026\001\030\002\137\001\"\000\000\000\000\000\000\000\000\017N\000\000\000\000\000\000\t\030\001&\000\242\001*\011\202\000\000\000\000\t\022\000\000\001\190\0012\000\000\000\000\0016\000\000\003\186\000\000\000\000\n&\n*\000\000\002\137\000\000\n.\000\000\n6\nZ\n~\000\000\021\149\t\238\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\000\000\nf\t\242\t\246\001N\nz\n\130\n\142\000\000\b\209\000\000\001R\000\000\b\209\000\000\000\000\000\000\n\006\n\n\011\222\000\000\011\n\001V\011r\015\018\000\000\000\000\000\000\000\000\001Z\012\026\000\000\000\000\000\000\004v\000\000\012\"\000\000\000\000\001\230\000\000\000\000\001\150\011\206\000\000\000\000\n\150\000\000\000\000\001\154\000\000\001\158\007\214\001\162\001\166\000\000\000\000\001\170\001\234\001\174\001\178\006\209\000\000\b\178\003\202\006\209\000\000\003\170\000\000\rJ\000\000\000\000\b\150)r\000\000\021\149\006\209\000\000\021\149\000\000\006\209\021\149\006\209\001\234\000\000\r\158\004\026\000\000)\234\000\000\b\238\000\000\003\186\000\000\014\178\006\209\b\209\000\000\000\000\000\000*\002\000\000\006\209\021\149\000\000\021\149\t\002\021\149\000\000\014\230\000\000\001\190\000\000\006\209\000\000\b\209\006\209\003\186\b\209\000\000\n&\n*\006\209\006\209\017\r\n.\000\000\n6\000\000\015B\000\000\006\209\t\238\000\000\012\197\000\000\000\000\012\197\000\000\000\000\006\209\006\209\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\000\000\000\000\000\000\000\000+R\000\000\000\000\n\006\n\n\006\209$&\006\209\015R\003\170\006\209\006\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\197\000\000\017\r\000\000\025\1820\194\017\r\025\214\006\209\n\150\000\000\000\000\000\000\017\r\000\000\007\214\012\197\004v\000\006\017\r\000\000\006\209\003\194\003\198\003\202\000\000\003\206\003\170$*\003\218\000\000\000\000\b\150\000\000\017\242\000\000\000\000\000\000\014\241\000\000\014\241\014\241\000\000\001\234$6\000\0000\230\b\158\000\000\012\182\012\186\012\197\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\2100\242\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\n\n\t\190\t\198\000\000\012\197\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\2380\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\0000r\000\000\000\000\000\000\000\000\019V\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\000\n\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\241\000\000\000\000\000\000\000\000\000\000\n\150\016\246\014\241\000\000\000\000\017\014\007\214\000\006\000\000\018\202\021\161\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\017\242\000\000\000\000\000\000\014\233\000\000\014\233\014\233\021\161\001\234\000\000\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\021\161\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\021\161\003\186\000\000\000\000\t\190\t\198\021\161\021\161\000\242\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\021\161\021\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019V\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\021\161\000\000\000\000\n\014\000\000\n\018\000\000\000\000\000\000\000\000\000\000\000\000\021\161\000\000\000\000\014\233\000\000\000\000\000\000\000\000\000\000\n\150\016\246\014\233\000\000\000\000\017\014\007\214\000\006\000\000\018\202\007\233\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\017\242\000\000\000\000\000\000\014\225\000\000\014\225\014\225\007\233\001\234\000\000\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\007\233\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\007\233\003\186\000\000\000\000\t\190\t\198\007\233\t~\000\242\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\007\233\007\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\002\137\002\137\000\000\019V\018r\018\178\n\006\n\n\002\137\018\198\000\000\000\000\000\000\000\000\007\233\000\000\000\000\n\014\000\000\n\018\002\137\002\137\002\137\000\000\000\000\000\000\007\233\000\000\000\n\014\225\000\n\000\000\000\000\000\000\000\000\n\150\016\246\014\225\000\000\000\000\017\014\007\214\002\137\002\137\018\202\002\137\002\137\002\137\002\137\000\n\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\002\137\000\000\000\000\002\137\000\000\002\137\000\n\002\137\002\137\002\137\002\137\000\n\002\137\000\000\000\000\015Z\002\137\000\000\002\137\000\000\002\137\002\137#\174\000\000\002\137\002\137\002\137\000\000\002\137\002\137\002\137\002\137\002\137\002\137\000\000\002\137\002\137\002\137\000\000\002\137\002\137\002\137\002\137\002\137\002\137\002\137\002\137\002\137\002\137\002\137\000\000\000\000\002\137\000\000\002\137\000\000\000\000\000\000\002\137\002\137\002\137\000\000\002\137\002\137\002\137\002\137'\246\002\137\002\137\002\137\000\000\000\000\000\000\000\000\002\137\002\137\002\137\002\137\002\137\002\137\002\137\000\000\002\137$\026\000\000\000\000\000\000\002\137\000\000\000\000\002\137\000\006\002\137\000\000\011\157\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\002\137\000\000\b\150\000\000\t\194\002\137\002\137\000\000\000\000\000\000\002\137\002\137\000\000\001\234\002\137\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\242\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000'6\018r\018\178\n\006\n\n\000\000\018\198\000\000\011\222\000\000\000\000\000\000\011r\rV\n\014\000\000\n\018\000\000\000\000\012\026\000\000\000\000\000\000\004v\000\000\012\"'N\000\000\000\000\000\000\000\000\000\000\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\006\000\000\018\202\005U\003\194\003\198\003\202\005U\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\t\202\000\000\005U\000\000\000\000\000\000\005U\000\000\005U\001\234\000\000\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\005U\012\202$>\b\162\000\000\t\138\000\000\005U\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\005U\003\186\000\000\000\000\t\190\t\198\005U\005U\005U\t\206\t\214\t\230\017\002\017\210\000\000\005U\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000&\238\018r\018\178\n\006\n\n\005U\018\198\005U\000\000\000\000\005U\005U\000\000\011\157\n\014\000\000\n\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000$\202\005U\n\150\016\246'\006\000\000\000\000\017\014\007\214\000\006\000\000\018\202\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\t\210\000\000\000\000\000\000\000\242\000\000\n2\000\000\000\000\001\234\000\000\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\011\157\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\011\222\000\000\000\000\000\000\011r\rV\000\000\018\n\000\000\t\242\t\246\012\026\t\250\n\002\000\000\004v\000\000\012\"\000\000\000\000\000\000&\170\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000A\n\018\000\000\000\000\000A\000A\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000A\000\000\000A\n\150\016\246\000\000\n\209\000\000\017\014\007\214\000\000\000A\018\202\000\000\000\000\000A\000\000\000A\000A\000\000\000A\000\000\000\000\000\000\000A\000\000\000A\000\000\000A\000\000\000\000\000\000\000\000\000A\000A\000\000\000A\000A\000A\000A\000A\000A\000\000\000\000\000\000\000A\000\000\000\000\000A\000A\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000\000\000A\000A\000\000\000A\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000A\000A\000A\000A\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000A\000=\000A\000\000\000\000\000=\000=\000=\000\000\000=\000=\000\000\000=\000\000\000\000\000=\000\000\000=\000A\000A\000\000\n\205\000\000\000A\000A\000\000\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\000\000=\000=\000\000\000\000\000\000\000\000\000\000\000\000\000\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\197\000=\000\000\000\000\020\197\020\197\020\197\000\000\020\197\020\197\000\000\020\197\000\000\000\000\020\197\000\000\020\197\000=\000=\000\000\n\221\000\000\000=\000=\000\000\020\197\000=\000\000\000\000\020\197\000\000\020\197\020\197\000\000\020\197\000\000\000\000\000\000\020\197\000\000\020\197\000\000\020\197\000\000\000\000\000\000\000\000\020\197\020\197\000\000\020\197\020\197\020\197\020\197\020\197\020\197\000\000\000\000\000\000\020\197\000\000\000\000\020\197\020\197\000\000\000\000\000\000\020\197\020\197\020\197\020\197\020\197\000\000\000\000\020\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\197\000\000\020\197\020\197\000\000\020\197\020\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\197\020\197\020\197\020\197\020\197\000\000\020\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\197\020\193\020\197\000\000\000\000\020\193\020\193\020\193\000\000\020\193\020\193\000\000\020\193\000\000\000\000\020\193\000\000\020\193\020\197\020\197\000\000\n\217\000\000\020\197\020\197\000\000\020\193\020\197\000\000\000\000\020\193\000\000\020\193\020\193\000\000\020\193\000\000\000\000\000\000\020\193\000\000\020\193\000\000\020\193\000\000\000\000\000\000\000\000\020\193\020\193\000\000\020\193\020\193\020\193\020\193\020\193\020\193\000\000\000\000\000\000\020\193\000\000\000\000\020\193\020\193\000\000\000\000\000\000\020\193\020\193\020\193\020\193\020\193\000\000\000\000\020\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\193\000\000\020\193\020\193\000\000\020\193\020\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\193\020\193\020\193\020\193\020\193\000\000\020\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\193\000\006\020\193\000\000\017\r\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000 \018\020\193\020\193\000\000\000\000\000\000\020\193\020\193\000\000\001\234\020\193\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\017\r\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\250\018r\018\178\n\006\n\n\000\000\018\198\000\000\017\r\000\000\000\000\000\000\017\r\017\r\n\014\000\000\n\018\000\000\000\000\017\r\000\000\000\000\000\000\004v\000\000\017\r\"\018\000\000\000\000\000\000\000\000\000\000\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\006\000\000\018\202\011i\003\194\003\198\003\202\011i\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\".\000\000\011i\000\000\000\000\000\000\011i\000\000\011i\001\234\000\000\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\011i\012\202\000\000\b\162\000\000\t\138\000\000\011i\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\011i\003\186\000\000\000\000\t\190\t\198\011i\011i\000\000\t\206\t\214\t\230\017\002\017\210\000\000\011i\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011i\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"J\018r\018\178\n\006\n\n\011i\018\198\011i(.\000\000\011i\011i\000\000\000\000\n\014\000\000\n\018\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0001\170\000\000\000\000\011i\n\150\016\246\"b\000\000\000\000\017\014\007\214\000\006\000\000\018\202\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\"~\000\000\000\000\000\000\000\000\000\000\"\154\000\000\000\000\001\234\000\000\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\"\158\018r\018\178\n\006\n\n\000\000\018\198\000\000\001\025\000\000\000\000\000\000\000\000\000\000\n\014\000\000\n\018\000\014\000\018\000\022\000\026\000\030\000\000\000\000\000\"\000&\000*\000.\0002\001\025\0006\000:\n\150\016\246\000\000\000>\000\000\017\014\007\214\000B\000\000\018\202\000\000\000\000\000\000\000\000\000F\000\000\000\000\000\000\000\000\000\000\000\000\000J\001\025\000N\b\174\000R\000V\000Z\000^\000b\000f\001\025\000\000\000\000\000\000\000j\000n\001\025\000r\000v\000\000\000z\000\000\000\000\000\000\000\000\000\000\000\000\001\025\001\025\000\000\000\000\000\000\000\000\000\000\001\173\000~\000\000\000\000\000\000\000\000\000\130\000\134\000\000\000\000\000\000\000\000\000\000\000\138\000\142\000\146\000\000\000\000\000\000\000\000\000\000\001\173\000\000\000\000\000\000\000\000\000\000\001\025\000\150\000\154\000\158\000\162\000\000\000\166\000\170\000\000\000\174\000\000\000\000\001\025\000\178\000\182\000\186\000\000\000\000\000\000\000\000\000\000\000\000\000\190\000\006\000\194\000\198\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\202\b~\000\206\000\000\b\150\000\000\b\154\000\000\000\000\000\000\000\210\000\214\000\000\000\218\000\000\001\234\000\000\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\001\173\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002/\130\r\002\001\173\t\238\000\000\000\000\000\000\000\000\000\000\000\000\001\173\000\000\r2\018\n\000\000\t\242\t\246\000\000\t\250\n\002\001\173\000\000\000\000\000\000\000\000\000\000\000\000/\138\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\t\226\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000&f\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\t\254\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000&2\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\n\022\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000%\250\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\012\238\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000%~\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\r\006\000\000\000\000\b\150\000\000\r\030\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002%b\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000%j\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\015v\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000#*\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\018*\000\000\000\000\b\150\000\000\018B\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\030\154\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\162\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\t\254\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\162\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\018\238\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\n\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\019v\000\000\000\000\b\150\000\000\019\142\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\019\162\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\170\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\019\218\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\238\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\020\006\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\026\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\020B\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020V\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\020\130\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\150\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\020\174\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\194\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\020\218\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\238\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\021\006\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\026\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\0212\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021F\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\021^\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021r\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\021\138\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\158\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\021\182\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\202\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\021\226\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\246\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\022\014\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\"\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\022:\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022N\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\022f\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022z\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\022\146\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\166\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\022\190\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\210\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\022\234\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\254\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\023\022\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023*\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\023B\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023V\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\023n\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\130\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\023\154\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\174\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\023\198\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023\218\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\023\242\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\006\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\024\030\000\000\000\000\b\150\000\000\0246\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\024J\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024R\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\024j\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024~\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\027\230\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\027\250\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\028\030\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0282\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\028V\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028j\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\028\146\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\166\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\028\202\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\028\222\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\029\002\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\022\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\029B\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029V\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\029z\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\142\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\029\178\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\198\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\029\226\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\029\246\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\030\190\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\254\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\030\214\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\030\234\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\031\018\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031&\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000\031B\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031V\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\031\146\000\000\000\000\b\150\000\000\031\170\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\031\190\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\031\198\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000 *\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000 >\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000 n\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \130\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000 \162\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \182\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000 \214\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \234\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000!\006\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\026\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000!2\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000!r\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000!J\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000!^\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000!\134\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\154\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000!\182\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000!\202\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000\003\218\000\000\000\000\b\150\000\000%\174\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002\017\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000%\194\018r\018\178\n\006\n\n\000\000\018\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\014\000\006\n\018\000\000\000\000\003\194\003\198\003\202\000\000\003\206\003\170\000\000/\166\000\000\000\000\b\150\000\000/\190\n\150\016\246\000\000\000\000\000\000\017\014\007\214\000\000\001\234\018\202\000\000\000\000\b\158\000\000\012\182\012\186\000\000\012\190\000\000\000\000\000\000\012\202\000\000\b\162\000\000\t\138\000\000\000\000\000\000\000\000\012\206\012\210\000\000\012\214\t\182\012\226\012\230\r\174\015V\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\017\002/\210\000\000\000\000\t\238\000\000\001\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\n\000\000\t\242\t\246\000\000\t\250\n\002\000\000\000\000\000\000\000\000\000\000\000\000\001\169/\218\018r\018\178\n\006\n\n\015\137\018\198\000\000\000\000\015\137\015\137\000\000\000\000\015\137\n\014\015\137\n\018\000\000\015\137\000\000\000\000\000\000\000\000\015\137\015\137\001\185\015\137\015\137\000\000\015\137\000\000\015\137\n\150\016\246\000\000\000\000\015\137\017\014\007\214\000\000\015\137\018\202\000\000\000\000\000\000\000\000\001\185\000\000\000\000\000\000\015\137\000\000\015\137\000\000\000\000\015\137\000\000\015\137\000\000\000\000\000\000\000\000\000\000\015\137\000\000\000\000\015\137\015\137\000\000\000\000\015\137\015\137\000\000\015\137\000\000\015\137\000\000\001\169\015\137\000\000\000\000\000\000\011\137\000\000\000\000\000\000\011\137\015\137\000\000\015\137\015\137\015\137\000\000\015\137\015\137\015\137\000\000\011\137\000\000\000\000\018&\001\169\000\000\011\137\000\000\015\137\015\137\000\000\000\000\001\169\015\137\r2\015\137\000\000\000\000\000\000\011\137\000\000\000\000\001\169\n\226\000\000\000\000\011\137\001\185\000\000\000\000\015\137\015\137\015\137\000\000\015\137\015\137\000\000\015\137\000\000\015\137\011\137\015\137\000\000\015\137\0179\015\137\011\137\015\137\b\178\003\202\r\002\001\185\003\170\000\000\b\182\011\137\000\000\b\150\000\000\001\185\000\000\r2\0179\0179\011\137\0179\0179\000\000\001\234\001\185\000\000\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181\000\000\011\137\000\000\011\137\000\000\0179\011\137\t\002\000\000\000\000\t\022\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\186\000\000\001\181\n&\n*\000\000\000\000\0179\n.\011\137\n6\nZ\n~\005\145\005\145\t\238\000\000\002\218\000\000\000\000\000\000\005\145\000\000\000\000\0179\005\145\nf\t\242\t\246\000\000\nz\n\130\n\142\005\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\145\n\006\n\n\000\000\000\000\011\n\0179\000\000\0179\000\000\000\000\005\145\000\000\000\000\000\000\000\000\000\000\000\000\005\145\000\000\005\145\000\000\000\000\0179\0179\000\000\005\145\0179\0179\000\000\n\150\000\000\0179\005\145\0179\000\000\007\214\0175\0179\001\181\0179\b\178\003\202\000\000\000\000\003\170\000\000\b\182\000\000\000\000\b\150\000\000\000\000\000\000\000\000\0175\0175\000\000\0175\0175\000\000\001\234\018&\001\181(\178\000\000\000\000\000\000\b\238\000\000\000\000\001\181\000\000\r2\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\181\0175\000\000\t\002\000\000\000\000\011~\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\0175\n.\000\000\n6\nZ\n~\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\006\n\n\000\000\000\000\011\n\0175\000\000\0175\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0175\0175\000\000\000\000\0175\0175\000\000\n\150\000\000\0175\000\000\0175\021Q\007\214\000\000\0175\021Q\0175\000\000\021Q\021Q\000\000\000\000\021Q\021Q\000\000\000\000\021Q\021Q\000\000\000\000\021Q\021Q\021Q\000\000\021Q\021Q\021Q\000\000\021Q\021Q\021Q\000\000\021Q\021Q\021Q\000\000\000\000\000\000\000\000\021Q\000\000\000\000\000\000\021Q\000\000\000\000\021Q\021Q\021Q\000\000\021Q\021Q\021Q\000\000\021Q\021Q\021Q\021Q\000\000\021Q\021Q\021Q\000\000\021Q\021Q\021Q\021Q\021Q\021Q\000\000\021Q\021Q\021Q\000\000\021Q\021Q\021Q\021Q\021Q\021Q\000\000\021Q\021Q\021Q\021Q\021Q\021Q\002Z\021Q\000\000\000\000\002Z\021Q\021Q\000\000\002Z\000\000\021Q\000\000\000\000\000\000\021Q\000\000\000\000\000\000\021Q\000\000\021Q\021Q\021Q\021Q\021Q\021Q\021Q\021Q\021Q\021Q\000\000\021Q\021Q\000\000\000\000\000\000\021Q\000\000\021Q\000\000\021Q\021Q\021Q\002^\021Q\021Q\021Q\005\158\021Q\021Q\000\000\005\194\021Q\021Q\001\161\021Q\021Q\021Q\021Q\021Q\021Q\021Q\021Q\021Q\021\025\021Q\021Q\000\000\021\025\000\000\000\000\001\230\021\025\000\000\000\000\001\161\000\000\000\000\000\250\000\000\005\150\000\000\002\246\021\025\021\025\021\025\000\000\021\025\021\025\021\025\000\000\000\000\000\0001j\000\000\000\000\000\000\007\241\000\000'\238\000\000\000\000\021\025\000\000\000\000\000\000\000\000\000\000\000\000\021\025\021\025\021\0251n\000\000\021\025\000\000\000\000\000\000\004\0181\150\021\025\000\000\001\157\021\025\000\000\000\000\000\000\000\000\000\000\021\025\021\025\021\025\000\000(~\000\000\000\000\000\000\000\000\021\025(\150\021\025\021\025\001\233\001\157\000\000\000\000\000\000\021\025(\158\000\000\021\025\000\000\000\000\001\161\000\000\000\000\005\166(\174\000\000\000\000\021\025\000\000\000\000\001\233\000\000\000\000\000\000\000\000\021\025\000\000\021\025\021\025\000\000\021\025\021\025\000\000\r\002\001\161(\182\000\0002f\000\000\000\000\007\241\007\241\001\161\021\025\r2\021\025\000\000\021\025\021\025\000\000\014\153\021\025\001\161\000\000\014\153\000\000\021\025\001\230\014\153\021\025\021\0252v\021\025\000\000\021\025\021\025\014\153\000\000\000\000\014\153\014\153\014\153\000\000\014\153\014\153\014\153\000\000\000\000\001\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\153\000\000\000\000\000\000\000\000\000\000\000\000\014\153\014\153\014\153\001\233\000\000\014\153\018&\001\157\000\000\004\018\000\149\014\153\000\000\000\000\014\153\001\157\000\000\r2\000\000\000\149\014\153\014\153\014\153\000\000\000\149\001\157\r\002\001\233\000\000\014\153\0141\014\153\014\153\000\000\000\000\001\233\000\000\r2\014\153\000\000\000\000\014\153\001\229\000\000\000\000\001\233\000\000\005\166\000\000\000\000\000\149\014\153\000\000\000\000\000\000\0141\000\000\000\149\000\000\014\153\000\000\014\153\014\153\001\229\014\153\014\153\000\000\000\000\000\000\000\000\000\149\000\000\000\000\000\000\000\000\000\000\000\000\014\153\000\000\014\153\000\000\014\153\014\153\000\000\014\161\014\153\000\000\000\000\014\161\000\000\014\153\001\230\014\161\014\153\014\153\000\149\014\153\000\000\014\153\014\153\014\161\000\000\000\000\014\161\014\161\014\161\000\000\014\161\014\161\014\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0141\014\161\000\000\000\000\000\000\000\000\000\149\000\000\014\161\014\161\014\161\002n\000\000\014\161\000\000\000\000\000\000\004\018\000\149\014\161\001\229\000\149\014\161\000\149\000\000\000\000\000\000\000\149\014\161\014\161\014\161\000\000\000\149\000\000\000\000\000\000\000\000\014\161\0141\014\161\014\161\000\000\000\000\018&\001\229\000\000\014\161\000\000\000\000\014\161\000\000\000\000\001\229\000\000\r2\005\166\000\000\000\000\000\149\014\161\000\000\000\000\001\229\0141\000\000\000\149\000\000\014\161\000\000\014\161\014\161\000\000\014\161\014\161\000\000\000\000\000\000\000\000\000\149\000\000\000\000\000\000\000\000\000\000\000\000\014\161\000\000\014\161\000\000\014\161\014\161\000\000\014\157\014\161\000\000\000\000\014\157\000\000\014\161\001\230\014\157\014\161\014\161\000\149\014\161\000\000\014\161\014\161\014\157\000\000\000\000\014\157\014\157\014\157\000\000\014\157\014\157\014\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0141\014\157\000\000\000\000\000\000\000\000\000\149\000\000\014\157\014\157\014\157$\218\000\000\014\157\021Y\021A\000\000\004\018\000\153\014\157\000\000\000\149\014\157\000\149\000\000\000\000\000\000\000\153\014\157\014\157\014\157\000\000\000\153\000\000\000\000\021Y\000\000\014\157\003\002\014\157\014\157\003\006\000\000\000\000\000\000\000\000\014\157\000\000\000\000\014\157\tf\000\000\000\000\000\000\000\000\005\166\000\000\003\018\000\153\014\157\003\026\000\000\021A\000\000\000\000\000\153\000\000\014\157\000\000\014\157\014\157\000\000\014\157\014\157\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\014\157\000\000\014\157\003\030\014\157\014\157\000\000\014\149\014\157\000\000\000\000\014\149\000\000\014\157\001\230\014\149\014\157\014\157\000\153\014\157\000\000\014\157\014\157\014\149\000\000\000\000\014\149\014\149\014\149\000\000\014\149\014\149\014\149\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\149\000\000\000\000\000\000\000\000\000\153\000\000\014\149\014\149\014\149\002\022\000\000\014\149\000\000\003\"\000\000\004\018\000\000\014\149\000\000\000\153\014\149\000\153\000\000\000\000\000\000\000\000\014\149\014\149\014\149\000\000\t*\015\150\000\000\000\000\000\000\014\149\000\000\014\149\014\149\001\221\000\000\000\000\002\210\000\000\014\149\015\154\000\000\014\149\000\000\000\000\001\234\000\000\000\000\005\166\000\000\000\000\000\000\014\149\000\000\000\000\001\221\000\000\000\000\000\000\000\000\014\149\000\000\014\149\014\149\t>\014\149\014\149\000\000\000\000\000\000\000\000\015\146\000\000\001\246\000\000\000\000\000\000\000\000\014\149\003\186\014\149\000\000\014\149\014\149\000\000\000\000\014\149\000\000\000\000\000\157\000\000\014\149\000\157\000\157\014\149\014\149\000\000\014\149\000\000\014\149\014\149\000\157\000\000\000\000\000\157\000\157\000\157\000\000\000\157\000\157\000\157\000\000\0145\000\000\000\000\000\000\000\000\015\158\000\000\000\000\000\000\000\000\000\000\000\157\000\000\000\000\000\000\000\000\001\226\001\230\000\157\000\000\000\157\001\221\000\000\000\157\000\000\0145\000\000\000\157\000\000\000\157\000\000\000\000\000\157\000\000\000\000\000\000\001\234\002&\000\157\000\157\000\157\000\000\000\000\000\000\r\002\001\221\000\000\000\157\000\000\000\157\000\157\000\000\000\000\001\221\000\000\r2\000\157\000\157\000\000\000\157\000\000\000\000\002\182\001\221\004\018\000\157\000\000\000\000\002\178\000\157\003\186\003\234\003\246\000\000\000\000\000\149\000\000\000\157\004\002\000\157\000\157\000\000\000\157\000\157\000\149\000\000\000\000\000\000\000\000\000\149\000\000\0145\000\000\000\000\000\000\000\157\000\000\000\157\000\000\000\157\004\006\000\000\004\022\000\157\000\000\000\000\000\149$\170\000\157\000\149\000\149\000\157\000\157\000\000\000\157\000\149\000\157\000\000\000\149\000\000\000\000\000\149\000\149\000\149\000\000\000\149\000\149\000\149\000\000\0141\000\153\000\000\000\000\000\000\000\000\000\149\000\149\000\000\000\000\000\153\000\149\000\149\000\000\000\000\000\153\000\149\000\000\000\149\000\000\000\149\000\149\000\149\000\149\000\000\0141\000\000\000\149\000\000\000\149\000\000\000\149\000\149\000\000\000\000\000\000\000\149\000\000\000\149\000\149\000\149\000\153\000\000\000\000\000\000\000\149\000\000\000\149\000\153\000\149\000\149\000\000\000\000\000\000\000\149\000\000\000\149\000\149\000\149\000\149\000\000\000\153\000\149\000\149\000\000\000\149\000\000\000\149\002\170\000\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\149\000\149\000\149\000\149\021\029\000\149\000\149\000\000\021\029\000\153\000\000\000\000\021\029\000\000\0141\000\149\000\000\000\000\000\149\000\000\005\186\000\000\000\149\021\029\021\029\021\029\000\149\021\029\021\029\021\029\000\149\000\149\000\000\000\000\000\149\000\149\000\000\000\149\000\149\000\149\000\000\000\153\021\029\004\238\000\000\000\000\002\146\000\149\000\000\021\029\021\029\021\029\006R\000\149\021\029\000\149\000\153\000\000\000\153\000\153\021\029\000\000\000\149\021\029\000\149\000\000\000\0005\130\000\153\021\029\021\029\021\029\000\000\000\153\000\000\000\000\000\000\000\149\021\029\000\149\021\029\021\029\000\000\000\000\000\000\000\000\000\000\021\029\000\000\000\000\021\029\000\000\000\000\000\000\000\000\000\000\021\029\000\000\000\000\000\153\021\029\000\000\000\000\000\000\000\000\000\000\000\153\000\000\021\029\000\000\021\029\021\029\000\000\021\029\021\029\000\000\000\000\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\001\217\021\029\000\000\021\029\000\000\021\029\021\029\000\000\020q\021\029\000\000\000\000\020q\000\000\021\029\000\000\020q\021\029\021\029\000\153\021\029\001\217\021\029\021\029\005\186\000\000\000\000\020q\020q\020q\000\000\020q\020q\020q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\020q\000\000\000\000\000\000\000\000\000\153\000\000\020q\020q5\n\004\222\000\000\020q\000\000\000\000\001\234\002&\000\000\020q\001\209\000\153\020q\000\153\000\000\000\000\000\000\000\000\020q\020q\020q\000\000\000\000\000\000\000\000\000\000\000\000\020q\000\000\020q\020q\001\209\002\182\000\000\004\n\000\000\020q\000\000\002\178\020q\003\186\003\234\003\246\000\000\001\217\020q\000\000\000\000\004\002\020q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020q\000\000\020q\020q\000\000\020q\020q\000\000\000\000\000\000\018&\001\217\000\000\004\006\000\000\004\022\000\000\000\000\020q\001\217\020q\r2\020q\020q\005=\000\000\020q\000\000\005=\001\217\000\000\020q\005=\000\000\020q\004v\000\000\020q\000\000\020q\020q\000\000\000\000\005=\005=\005=\000\000\005=\005=\005=\000\000\000\000\001\209\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\005=\000\000\000\000\000\000\000\000\000\000\000\000\005=\005=\004n\000\000\000\000\005=\r\002\001\209\001\234\002&\000\000\005=\001\205\000\000\005=\001\209\000\000\r2\000\000\000\000\005=\005=\005=\000\000\000\000\001\209\000\000\000\000\000\000\005=\000\000\005=\005=\001\205\004\250\000\000\004\018\000\000\005=\000\000\002\178\005=\003\186\003\234\003\246\000\000\000\000\005=\000\000\000\000\004\002\005=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005=\000\000\005=\005=\000\000\005=\005=\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\022\000\000\000\000\005=\000\000\005=\000\000\005=\005=\019\193\000\000\005=\000\000\019\193\000\000\000\000\005=\019\193\000\000\005=\004v\000\000\005=\000\000\005=\005=\000\000\000\000\019\193\019\193\019\193\000\000\019\193\019\193\019\193\000\000\000\000\001\205\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\019\193\000\000\000\000\000\000\000\000\000\000\000\000\019\193\019\193\004n\000\000\000\000\019\193\018&\001\205\001\234\002&\000\000\019\193\001\197\000\000\019\193\001\205\000\000\r2\000\000\000\000\019\193\019\193\019\193\000\000\000\000\001\205\000\000\000\000\000\000\019\193\000\000\019\193\019\193\001\197\002\182\000\000\005\154\000\000\019\193\001\193\002\178\019\193\003\186\003\234\003\246\000\000\000\000\019\193\000\000\000\000\004\002\019\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\193\001\193\019\193\019\193\000\000\019\193\019\193\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\022\000\000\000\000\019\193\000\000\019\193\000\000\019\193\019\193\t\241\000\000\019\193\000\000\t\241\000\000\000\000\019\193\t\241\000\000\019\193\004v\000\000\019\193\000\000\019\193\019\193\000\000\000\000\t\241\t\241\t\241\000\000\t\241\t\241\t\241\000\000\000\000\001\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\241\000\000\000\000\000\000\000\000\000\000\000\000\t\241\t\241\t\241\000\000\000\000\t\241\r\002\001\197\000\000\004z\001\193\t\241\000\000\000\000\t\241\001\197\000\000\r2\000\000\000\000\t\241\t\241\t\241\000\000\000\000\001\197\000\000\000\000\000\000\t\241\000\000\t\241\t\241\018&\001\193\000\000\000\000\000\000\t\241\000\000\000\000\t\241\001\193\000\000\r2\000\000\000\000\t\241\000\000\000\000\000\000\t\241\001\193\000\000\000\000\000\000\000\000\000\000\000\000\t\241\000\000\t\241\t\241\000\000\t\241\t\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\241\000\000\t\241\000\000\t\241\t\241\019\209\000\000\t\241\000\000\019\209\000\000\000\000\t\241\019\209\000\000\t\241\000\000\000\000\t\241\000\000\t\241\t\241\000\000\000\000\019\209\019\209\019\209\000\000\019\209\019\209\019\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\019\209\000\000\000\000\000\000\000\000\000\000\000\000\019\209\019\209\004n\000\000\000\000\019\209\000\000\000\000\001\234\002&\000\000\019\209\000\000\000\000\019\209\000\000\000\000\000\000\000\000\000\000\019\209\019\209\019\209\000\000\000\000\000\000\000\000\000\000\000\000\019\209\000\000\019\209\019\209\000\000\002\182\000\000\005\190\000\000\019\209\000\000\002\178\019\209\003\186\003\234\003\246\000\000\000\000\019\209\000\000\000\000\004\002\019\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\209\000\000\019\209\019\209\000\000\019\209\019\209\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\022\000\000\000\000\019\209\000\000\019\209\000\000\019\209\019\209\019\225\000\000\019\209\000\000\019\225\000\000\000\000\019\209\019\225\000\000\019\209\004v\000\000\019\209\000\000\019\209\019\209\000\000\000\000\019\225\019\225\019\225\000\000\019\225\019\225\019\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\019\225\000\000\000\000\000\000\000\000\000\000\000\000\019\225\019\225\004n\000\000\000\000\019\225\000\000\000\000\001\234\002&\000\000\019\225\000\000\000\000\019\225\000\000\000\000\000\000\000\000\000\000\019\225\019\225\019\225\000\000\000\000\000\000\000\000\000\000\000\000\019\225\000\000\019\225\019\225\000\000\006\250\000\000\004\018\000\000\019\225\000\000\002\178\019\225\003\186\003\234\003\246\000\000\000\000\019\225\000\000\000\000\004\002\019\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\225\000\000\019\225\019\225\000\000\019\225\019\225\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\022\000\000\000\000\019\225\000\000\019\225\000\000\019\225\019\225\019\233\000\000\019\225\000\000\019\233\000\000\000\000\019\225\019\233\000\000\019\225\004v\000\000\019\225\000\000\019\225\019\225\000\000\000\000\019\233\019\233\019\233\000\000\019\233\019\233\019\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\226\001\230\000\000\000\000\000\000\019\233\000\000\000\000\000\000\000\000\000\000\000\000\019\233\019\233\005Z\000\000\000\000\019\233\000\000\000\000\001\234\002&\000\000\019\233\000\000\000\000\019\233\000\000\000\000\000\000\000\000\000\000\019\233\019\233\019\233\000\000\000\000\000\000\000\000\000\000\000\000\019\233\000\000\019\233\019\233\000\0004&\000\000\004\018\000\000\019\233\000\000\002\178\019\233\003\186\003\234\003\246\000\000\000\000\019\233\000\000\000\000\004\002\019\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\233\000\000\019\233\019\233\000\000\019\233\019\233\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\022\000\000\000\000\019\233\000\000\019\233\000\000\019\233\019\233\020\001\000\000\019\233\000\000\020\001\000\000\000\000\019\233\020\001\000\000\019\233\004v\000\000\019\233\000\000\019\233\019\233\000\000\000\000\020\001\020\001\020\001\000\000\020\001\020\001\020\001\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\153\020\001\000\000\000\000\000\000\000\153\000\000\000\000\020\001\020\001\004n\000\153\000\000\020\001\000\000\000\000\000\000\000\000\000\000\020\001\000\153\000\000\020\001\000\000\000\000\000\153\000\000\000\000\020\001\020\001\020\001\000\153\000\000\000\000\000\000\000\000\000\000\020\001\000\153\020\001\020\001\000\000\000\000\000\000\000\000\000\000\020\001\000\000\000\000\020\001\000\000\000\153\000\000\000\000\000\000\020\001\000\000\000\000\000\153\020\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\001\000\000\020\001\020\001\000\153\020\001\020\001\000\000\000\000\000\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\001\000\000\020\001\000\000\020\001\020\001\020\t\000\000\020\001\000\000\020\t\000\153\000\000\020\001\020\t\000\000\020\001\004v\000\000\020\001\000\000\020\001\020\001\000\153\000\000\020\t\020\t\020\t\006B\020\t\020\t\020\t\000\000\000\000\000\000\000\000\000\000\000\000\000\153\000\000\000\153\000\000\000\000\000\153\020\t\000\000\000\000\000\0005r\000\000\000\000\020\t\020\t\005Z\000\000\000\000\020\t\000\000\000\153\000\000\000\153\000\000\020\t\000\000\000\000\020\t\000\000\000\000\000\000\000\000\000\000\020\t\020\t\020\t\000\000\000\000\000\000\000\000\000\000\000\000\020\t\000\000\020\t\020\t\000\000\000\000\000\000\000\000\000\000\020\t\000\000\000\000\020\t\000\000\000\000\000\000\000\000\000\000\020\t\000\000\000\000\000\000\020\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\t\000\000\020\t\020\t\000\000\020\t\020\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\t\000\000\020\t\000\000\020\t\020\t\020\017\000\000\020\t\000\000\020\017\000\000\000\000\020\t\020\017\000\000\020\t\004v\000\000\020\t\000\000\020\t\020\t\000\000\000\000\020\017\020\017\020\017\000\000\020\017\020\017\020\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\020\017\000\000\000\000\000\000\000\000\000\000\000\000\020\017\020\017\004n\000\000\000\000\020\017\000\000\000\000\000\000\000\000\000\000\020\017\000\000\000\000\020\017\000\000\000\000\000\000\000\000\000\000\020\017\020\017\020\017\000\000\000\000\000\000\000\000\000\000\000\000\020\017\000\000\020\017\020\017\000\000\000\000\000\000\000\000\000\000\020\017\000\000\000\000\020\017\000\000\000\000\000\000\000\000\000\000\020\017\000\000\000\000\000\000\020\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\017\000\000\020\017\020\017\000\000\020\017\020\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\017\000\000\020\017\000\000\020\017\020\017\020\025\000\000\020\017\000\000\020\025\000\000\000\000\020\017\020\025\000\000\020\017\004v\000\000\020\017\000\000\020\017\020\017\000\000\000\000\020\025\020\025\020\025\000\000\020\025\020\025\020\025\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\025\000\000\000\000\000\000\000\000\000\000\000\000\020\025\020\025\005Z\000\000\000\000\020\025\000\000\000\000\000\000\000\000\000\000\020\025\000\000\000\000\020\025\000\000\000\000\000\000\000\000\000\000\020\025\020\025\020\025\000\000\000\000\000\000\000\000\000\000\000\000\020\025\000\000\020\025\020\025\000\000\000\000\000\000\000\000\000\000\020\025\000\000\000\000\020\025\000\000\000\000\000\000\000\000\000\000\020\025\000\000\000\000\000\000\020\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\025\000\000\020\025\020\025\000\000\020\025\020\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\025\000\000\020\025\000\000\020\025\020\025\019\241\000\000\020\025\000\000\019\241\000\000\000\000\020\025\019\241\000\000\020\025\004v\000\000\020\025\000\000\020\025\020\025\000\000\000\000\019\241\019\241\019\241\000\000\019\241\019\241\019\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\241\000\000\000\000\000\000\000\000\000\000\000\000\019\241\019\241\004n\000\000\000\000\019\241\000\000\000\000\000\000\000\000\000\000\019\241\000\000\000\000\019\241\000\000\000\000\000\000\000\000\000\000\019\241\019\241\019\241\000\000\000\000\000\000\000\000\000\000\000\000\019\241\000\000\019\241\019\241\000\000\000\000\000\000\000\000\000\000\019\241\000\000\000\000\019\241\000\000\000\000\000\000\000\000\000\000\019\241\000\000\000\000\000\000\019\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\241\000\000\019\241\019\241\000\000\019\241\019\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\241\000\000\019\241\000\000\019\241\019\241\019\249\000\000\019\241\000\000\019\249\000\000\000\000\019\241\019\249\000\000\019\241\004v\000\000\019\241\000\000\019\241\019\241\000\000\000\000\019\249\019\249\019\249\000\000\019\249\019\249\019\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\249\000\000\000\000\000\000\000\000\000\000\000\000\019\249\019\249\005Z\000\000\000\000\019\249\000\000\000\000\000\000\000\000\000\000\019\249\000\000\000\000\019\249\000\000\000\000\000\000\000\000\000\000\019\249\019\249\019\249\000\000\000\000\000\000\000\000\000\000\000\000\019\249\000\000\019\249\019\249\000\000\000\000\000\000\000\000\000\000\019\249\000\000\000\000\019\249\000\000\000\000\000\000\000\000\000\000\019\249\000\000\000\000\000\000\019\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\249\000\000\019\249\019\249\000\000\019\249\019\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\249\000\000\019\249\000\000\019\249\019\249\018\161\000\000\019\249\000\000\018\161\000\000\000\000\019\249\018\161\000\000\019\249\004v\000\000\019\249\000\000\019\249\019\249\000\000\000\000\018\161\018\161\018\161\000\000\018\161\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\000\000\018\161\018\161\004n\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\018\161\000\000\000\000\000\000\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\018\161\000\000\018\161\018\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\161\000\000\018\161\000\000\018\161\018\161\018\169\000\000\018\161\000\000\018\169\000\000\000\000\018\161\018\169\000\000\018\161\004v\000\000\018\161\000\000\018\161\018\161\000\000\000\000\018\169\018\169\018\169\000\000\018\169\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\000\000\018\169\018\169\005Z\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\018\169\000\000\000\000\000\000\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\018\169\000\000\018\169\018\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\169\000\000\018\169\000\000\018\169\018\169\018\177\000\000\018\169\000\000\018\177\000\000\000\000\018\169\018\177\000\000\018\169\004v\000\000\018\169\000\000\018\169\018\169\000\000\000\000\018\177\018\177\018\177\000\000\018\177\018\177\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\000\000\018\177\018\177\004n\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\018\177\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\018\177\018\177\018\177\000\000\000\000\000\000\000\000\000\000\000\000\018\177\000\000\018\177\018\177\000\000\000\000\000\000\000\000\000\000\018\177\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\018\177\000\000\000\000\000\000\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\177\000\000\018\177\018\177\000\000\018\177\018\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\177\000\000\018\177\000\000\018\177\018\177\018\185\000\000\018\177\000\000\018\185\000\000\000\000\018\177\018\185\000\000\018\177\004v\000\000\018\177\000\000\018\177\018\177\000\000\000\000\018\185\018\185\018\185\000\000\018\185\018\185\018\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\000\000\018\185\018\185\005Z\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\018\185\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\018\185\018\185\018\185\000\000\000\000\000\000\000\000\000\000\000\000\018\185\000\000\018\185\018\185\000\000\000\000\000\000\000\000\000\000\018\185\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\018\185\000\000\000\000\000\000\018\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\185\000\000\018\185\018\185\000\000\018\185\018\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\185\000\000\018\185\000\000\018\185\018\185\018\193\000\000\018\185\000\000\018\193\000\000\000\000\018\185\018\193\000\000\018\185\004v\000\000\018\185\000\000\018\185\018\185\000\000\000\000\018\193\018\193\018\193\000\000\018\193\018\193\018\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\018\193\000\000\000\000\000\000\000\000\000\000\000\000\018\193\018\193\004n\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\018\193\000\000\000\000\000\000\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\018\193\000\000\018\193\018\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\193\000\000\018\193\000\000\018\193\018\193\018\201\000\000\018\193\000\000\018\201\000\000\000\000\018\193\018\201\000\000\018\193\004v\000\000\018\193\000\000\018\193\018\193\000\000\000\000\018\201\018\201\018\201\000\000\018\201\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\000\000\018\201\018\201\005Z\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\018\201\000\000\000\000\000\000\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\018\201\000\000\018\201\018\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\201\000\000\018\201\000\000\018\201\018\201\018\209\000\000\018\201\000\000\018\209\000\000\000\000\018\201\018\209\000\000\018\201\004v\000\000\018\201\000\000\018\201\018\201\000\000\000\000\018\209\018\209\018\209\000\000\018\209\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\000\000\018\209\018\209\004n\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\018\209\000\000\000\000\000\000\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\018\209\000\000\018\209\018\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\209\000\000\018\209\000\000\018\209\018\209\018\217\000\000\018\209\000\000\018\217\000\000\000\000\018\209\018\217\000\000\018\209\004v\000\000\018\209\000\000\018\209\018\209\000\000\000\000\018\217\018\217\018\217\000\000\018\217\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\000\000\018\217\018\217\005Z\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\018\217\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\018\217\000\000\000\000\000\000\018\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\018\217\018\217\000\000\018\217\018\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\217\000\000\018\217\000\000\018\217\018\217\018\225\000\000\018\217\000\000\018\225\000\000\000\000\018\217\018\225\000\000\018\217\004v\000\000\018\217\000\000\018\217\018\217\000\000\000\000\018\225\018\225\018\225\000\000\018\225\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\000\000\018\225\018\225\004n\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\018\225\000\000\000\000\000\000\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\018\225\000\000\018\225\018\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\225\000\000\018\225\000\000\018\225\018\225\018\233\000\000\018\225\000\000\018\233\000\000\000\000\018\225\018\233\000\000\018\225\004v\000\000\018\225\000\000\018\225\018\225\000\000\000\000\018\233\018\233\018\233\000\000\018\233\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\000\000\018\233\018\233\005Z\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\018\233\000\000\000\000\000\000\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\018\233\000\000\018\233\018\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\233\000\000\018\233\000\000\018\233\018\233\018\241\000\000\018\233\000\000\018\241\000\000\000\000\018\233\018\241\000\000\018\233\004v\000\000\018\233\000\000\018\233\018\233\000\000\000\000\018\241\018\241\018\241\000\000\018\241\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\000\000\018\241\018\241\004n\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\018\241\000\000\000\000\000\000\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\018\241\000\000\018\241\018\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\241\000\000\018\241\000\000\018\241\018\241\018\249\000\000\018\241\000\000\018\249\000\000\000\000\018\241\018\249\000\000\018\241\004v\000\000\018\241\000\000\018\241\018\241\000\000\000\000\018\249\018\249\018\249\000\000\018\249\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\000\000\018\249\018\249\005Z\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\018\249\000\000\000\000\000\000\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\018\249\000\000\018\249\018\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\249\000\000\018\249\000\000\018\249\018\249\019\001\000\000\018\249\000\000\019\001\000\000\000\000\018\249\019\001\000\000\018\249\004v\000\000\018\249\000\000\018\249\018\249\000\000\000\000\019\001\019\001\019\001\000\000\019\001\019\001\019\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\019\001\000\000\000\000\000\000\000\000\000\000\000\000\019\001\019\001\004n\000\000\000\000\019\001\000\000\000\000\000\000\000\000\000\000\019\001\000\000\000\000\019\001\000\000\000\000\000\000\000\000\000\000\019\001\019\001\019\001\000\000\000\000\000\000\000\000\000\000\000\000\019\001\000\000\019\001\019\001\000\000\000\000\000\000\000\000\000\000\019\001\000\000\000\000\019\001\000\000\000\000\000\000\000\000\000\000\019\001\000\000\000\000\000\000\019\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\001\000\000\019\001\019\001\000\000\019\001\019\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\001\000\000\019\001\000\000\019\001\019\001\019\t\000\000\019\001\000\000\019\t\000\000\000\000\019\001\019\t\000\000\019\001\004v\000\000\019\001\000\000\019\001\019\001\000\000\000\000\019\t\019\t\019\t\000\000\019\t\019\t\019\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\t\000\000\000\000\000\000\000\000\000\000\000\000\019\t\019\t\005Z\000\000\000\000\019\t\000\000\000\000\000\000\000\000\000\000\019\t\000\000\000\000\019\t\000\000\000\000\000\000\000\000\000\000\019\t\019\t\019\t\000\000\000\000\000\000\000\000\000\000\000\000\019\t\000\000\019\t\019\t\000\000\000\000\000\000\000\000\000\000\019\t\000\000\000\000\019\t\000\000\000\000\000\000\000\000\000\000\019\t\000\000\000\000\000\000\019\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\t\000\000\019\t\019\t\000\000\019\t\019\t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\t\000\000\019\t\000\000\019\t\019\t\019\017\000\000\019\t\000\000\019\017\000\000\000\000\019\t\019\017\000\000\019\t\004v\000\000\019\t\000\000\019\t\019\t\000\000\000\000\019\017\019\017\019\017\000\000\019\017\019\017\019\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\019\017\000\000\000\000\000\000\000\000\000\000\000\000\019\017\019\017\004n\000\000\000\000\019\017\000\000\000\000\000\000\000\000\000\000\019\017\000\000\000\000\019\017\000\000\000\000\000\000\000\000\000\000\019\017\019\017\019\017\000\000\000\000\000\000\000\000\000\000\000\000\019\017\000\000\019\017\019\017\000\000\000\000\000\000\000\000\000\000\019\017\000\000\000\000\019\017\000\000\000\000\000\000\000\000\000\000\019\017\000\000\000\000\000\000\019\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\017\000\000\019\017\019\017\000\000\019\017\019\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\017\000\000\019\017\000\000\019\017\019\017\019\025\000\000\019\017\000\000\019\025\000\000\000\000\019\017\019\025\000\000\019\017\004v\000\000\019\017\000\000\019\017\019\017\000\000\000\000\019\025\019\025\019\025\000\000\019\025\019\025\019\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\025\000\000\000\000\000\000\000\000\000\000\000\000\019\025\019\025\005Z\000\000\000\000\019\025\000\000\000\000\000\000\000\000\000\000\019\025\000\000\000\000\019\025\000\000\000\000\000\000\000\000\000\000\019\025\019\025\019\025\000\000\000\000\000\000\000\000\000\000\000\000\019\025\000\000\019\025\019\025\000\000\000\000\000\000\000\000\000\000\019\025\000\000\000\000\019\025\000\000\000\000\000\000\000\000\000\000\019\025\000\000\000\000\000\000\019\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\025\000\000\019\025\019\025\000\000\019\025\019\025\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\025\000\000\019\025\000\000\019\025\019\025\019\217\000\000\019\025\000\000\019\217\000\000\000\000\019\025\019\217\000\000\019\025\004v\000\000\019\025\000\000\019\025\019\025\000\000\000\000\019\217\019\217\019\217\000\000\019\217\019\217\019\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\217\000\000\000\000\000\000\000\000\000\000\000\000\019\217\019\217\005Z\000\000\000\000\019\217\000\000\000\000\000\000\000\000\000\000\019\217\000\000\000\000\019\217\000\000\000\000\000\000\000\000\000\000\019\217\019\217\019\217\000\000\000\000\000\000\000\000\000\000\000\000\019\217\000\000\019\217\019\217\000\000\000\000\000\000\000\000\000\000\019\217\000\000\000\000\019\217\000\000\000\000\000\000\000\000\000\000\019\217\000\000\000\000\000\000\019\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\217\000\000\019\217\019\217\000\000\019\217\019\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\217\000\000\019\217\000\000\019\217\019\217\019\201\000\000\019\217\000\000\019\201\000\000\000\000\019\217\019\201\000\000\019\217\004v\000\000\019\217\000\000\019\217\019\217\000\000\000\000\019\201\019\201\019\201\000\000\019\201\019\201\019\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\201\000\000\000\000\000\000\000\000\000\000\000\000\019\201\019\201\005Z\000\000\000\000\019\201\000\000\000\000\000\000\000\000\000\000\019\201\000\000\000\000\019\201\000\000\000\000\000\000\000\000\000\000\019\201\019\201\019\201\000\000\000\000\000\000\000\000\000\000\000\000\019\201\000\000\019\201\019\201\000\000\000\000\000\000\000\000\000\000\019\201\000\000\000\000\019\201\000\000\000\000\000\000\000\000\000\000\019\201\000\000\000\000\000\000\019\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\201\000\000\019\201\019\201\000\000\019\201\019\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\201\000\000\019\201\000\000\019\201\019\201\019\161\000\000\019\201\000\000\019\161\000\000\000\000\019\201\019\161\000\000\019\201\004v\000\000\019\201\000\000\019\201\019\201\000\000\000\000\019\161\019\161\019\161\000\000\019\161\019\161\019\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\161\000\000\000\000\000\000\000\000\000\000\000\000\019\161\019\161\004n\000\000\000\000\019\161\000\000\000\000\000\000\000\000\000\000\019\161\000\000\000\000\019\161\000\000\000\000\000\000\000\000\000\000\019\161\019\161\019\161\000\000\000\000\000\000\000\000\000\000\000\000\019\161\000\000\019\161\019\161\000\000\000\000\000\000\000\000\000\000\019\161\000\000\000\000\019\161\000\000\000\000\000\000\000\000\000\000\019\161\000\000\000\000\000\000\019\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\161\000\000\019\161\019\161\000\000\019\161\019\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\161\000\000\019\161\000\000\019\161\019\161\019\169\000\000\019\161\000\000\019\169\000\000\000\000\019\161\019\169\000\000\019\161\004v\000\000\019\161\000\000\019\161\019\161\000\000\000\000\019\169\019\169\019\169\000\000\019\169\019\169\019\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\169\000\000\000\000\000\000\000\000\000\000\000\000\019\169\019\169\005Z\000\000\000\000\019\169\000\000\000\000\000\000\000\000\000\000\019\169\000\000\000\000\019\169\000\000\000\000\000\000\000\000\000\000\019\169\019\169\019\169\000\000\000\000\000\000\000\000\000\000\000\000\019\169\000\000\019\169\019\169\000\000\000\000\000\000\000\000\000\000\019\169\000\000\000\000\019\169\000\000\000\000\000\000\000\000\000\000\019\169\000\000\000\000\000\000\019\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\169\000\000\019\169\019\169\000\000\019\169\019\169\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\169\000\000\019\169\000\000\019\169\019\169\019\177\000\000\019\169\000\000\019\177\000\000\000\000\019\169\019\177\000\000\019\169\004v\000\000\019\169\000\000\019\169\019\169\000\000\000\000\019\177\019\177\019\177\000\000\019\177\019\177\019\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\177\000\000\000\000\000\000\000\000\000\000\000\000\019\177\019\177\004n\000\000\000\000\019\177\000\000\000\000\000\000\000\000\000\000\019\177\000\000\000\000\019\177\000\000\000\000\000\000\000\000\000\000\019\177\019\177\019\177\000\000\000\000\000\000\000\000\000\000\000\000\019\177\000\000\019\177\019\177\000\000\000\000\000\000\000\000\000\000\019\177\000\000\000\000\019\177\000\000\000\000\000\000\000\000\000\000\019\177\000\000\000\000\000\000\019\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\177\000\000\019\177\019\177\000\000\019\177\019\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\177\000\000\019\177\000\000\019\177\019\177\019\185\000\000\019\177\000\000\019\185\000\000\000\000\019\177\019\185\000\000\019\177\004v\000\000\019\177\000\000\019\177\019\177\000\000\000\000\019\185\019\185\019\185\000\000\019\185\019\185\019\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\185\000\000\000\000\000\000\000\000\000\000\000\000\019\185\019\185\005Z\000\000\000\000\019\185\000\000\000\000\000\000\000\000\000\000\019\185\000\000\000\000\019\185\000\000\000\000\000\000\000\000\000\000\019\185\019\185\019\185\000\000\000\000\000\000\000\000\000\000\000\000\019\185\000\000\019\185\019\185\000\000\000\000\000\000\000\000\000\000\019\185\000\000\000\000\019\185\000\000\000\000\000\000\000\000\000\000\019\185\000\000\000\000\000\000\019\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\185\000\000\019\185\019\185\000\000\019\185\019\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\185\000\000\019\185\000\000\019\185\019\185\019!\000\000\019\185\000\000\019!\000\000\000\000\019\185\019!\000\000\019\185\004v\000\000\019\185\000\000\019\185\019\185\000\000\000\000\019!\019!\019!\000\000\019!\019!\019!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019!\000\000\000\000\000\000\000\000\000\000\000\000\019!\019!\004n\000\000\000\000\019!\000\000\000\000\000\000\000\000\000\000\019!\000\000\000\000\019!\000\000\000\000\000\000\000\000\000\000\019!\019!\019!\000\000\000\000\000\000\000\000\000\000\000\000\019!\000\000\019!\019!\000\000\000\000\000\000\000\000\000\000\019!\000\000\000\000\019!\000\000\000\000\000\000\000\000\000\000\019!\000\000\000\000\000\000\019!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019!\000\000\019!\019!\000\000\019!\019!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019!\000\000\019!\000\000\019!\019!\019)\000\000\019!\000\000\019)\000\000\000\000\019!\019)\000\000\019!\004v\000\000\019!\000\000\019!\019!\000\000\000\000\019)\019)\019)\000\000\019)\019)\019)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019)\000\000\000\000\000\000\000\000\000\000\000\000\019)\019)\005Z\000\000\000\000\019)\000\000\000\000\000\000\000\000\000\000\019)\000\000\000\000\019)\000\000\000\000\000\000\000\000\000\000\019)\019)\019)\000\000\000\000\000\000\000\000\000\000\000\000\019)\000\000\019)\019)\000\000\000\000\000\000\000\000\000\000\019)\000\000\000\000\019)\000\000\000\000\000\000\000\000\000\000\019)\000\000\000\000\000\000\019)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019)\000\000\019)\019)\000\000\019)\019)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019)\000\000\019)\000\000\019)\019)\0191\000\000\019)\000\000\0191\000\000\000\000\019)\0191\000\000\019)\004v\000\000\019)\000\000\019)\019)\000\000\000\000\0191\0191\0191\000\000\0191\0191\0191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0191\000\000\000\000\000\000\000\000\000\000\000\000\0191\0191\004n\000\000\000\000\0191\000\000\000\000\000\000\000\000\000\000\0191\000\000\000\000\0191\000\000\000\000\000\000\000\000\000\000\0191\0191\0191\000\000\000\000\000\000\000\000\000\000\000\000\0191\000\000\0191\0191\000\000\000\000\000\000\000\000\000\000\0191\000\000\000\000\0191\000\000\000\000\000\000\000\000\000\000\0191\000\000\000\000\000\000\0191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0191\000\000\0191\0191\000\000\0191\0191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0191\000\000\0191\000\000\0191\0191\0199\000\000\0191\000\000\0199\000\000\000\000\0191\0199\000\000\0191\004v\000\000\0191\000\000\0191\0191\000\000\000\000\0199\0199\0199\000\000\0199\0199\0199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0199\000\000\000\000\000\000\000\000\000\000\000\000\0199\0199\005Z\000\000\000\000\0199\000\000\000\000\000\000\000\000\000\000\0199\000\000\000\000\0199\000\000\000\000\000\000\000\000\000\000\0199\0199\0199\000\000\000\000\000\000\000\000\000\000\000\000\0199\000\000\0199\0199\000\000\000\000\000\000\000\000\000\000\0199\000\000\000\000\0199\000\000\000\000\000\000\000\000\000\000\0199\000\000\000\000\000\000\0199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0199\000\000\0199\0199\000\000\0199\0199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0199\000\000\0199\000\000\0199\0199\019A\000\000\0199\000\000\019A\000\000\000\000\0199\019A\000\000\0199\004v\000\000\0199\000\000\0199\0199\000\000\000\000\019A\019A\019A\000\000\019A\019A\019A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019A\000\000\000\000\000\000\000\000\000\000\000\000\019A\019A\004n\000\000\000\000\019A\000\000\000\000\000\000\000\000\000\000\019A\000\000\000\000\019A\000\000\000\000\000\000\000\000\000\000\019A\019A\019A\000\000\000\000\000\000\000\000\000\000\000\000\019A\000\000\019A\019A\000\000\000\000\000\000\000\000\000\000\019A\000\000\000\000\019A\000\000\000\000\000\000\000\000\000\000\019A\000\000\000\000\000\000\019A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019A\000\000\019A\019A\000\000\019A\019A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019A\000\000\019A\000\000\019A\019A\019I\000\000\019A\000\000\019I\000\000\000\000\019A\019I\000\000\019A\004v\000\000\019A\000\000\019A\019A\000\000\000\000\019I\019I\019I\000\000\019I\019I\019I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019I\000\000\000\000\000\000\000\000\000\000\000\000\019I\019I\005Z\000\000\000\000\019I\000\000\000\000\000\000\000\000\000\000\019I\000\000\000\000\019I\000\000\000\000\000\000\000\000\000\000\019I\019I\019I\000\000\000\000\000\000\000\000\000\000\000\000\019I\000\000\019I\019I\000\000\000\000\000\000\000\000\000\000\019I\000\000\000\000\019I\000\000\000\000\000\000\000\000\000\000\019I\000\000\000\000\000\000\019I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019I\000\000\019I\019I\000\000\019I\019I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019I\000\000\019I\000\000\019I\019I\019Q\000\000\019I\000\000\019Q\000\000\000\000\019I\019Q\000\000\019I\004v\000\000\019I\000\000\019I\019I\000\000\000\000\019Q\019Q\019Q\000\000\019Q\019Q\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\000\000\000\000\000\000\000\000\000\000\000\000\019Q\019Q\004n\000\000\000\000\019Q\000\000\000\000\000\000\000\000\000\000\019Q\000\000\000\000\019Q\000\000\000\000\000\000\000\000\000\000\019Q\019Q\019Q\000\000\000\000\000\000\000\000\000\000\000\000\019Q\000\000\019Q\019Q\000\000\000\000\000\000\000\000\000\000\019Q\000\000\000\000\019Q\000\000\000\000\000\000\000\000\000\000\019Q\000\000\000\000\000\000\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\000\000\019Q\019Q\000\000\019Q\019Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Q\000\000\019Q\000\000\019Q\019Q\019Y\000\000\019Q\000\000\019Y\000\000\000\000\019Q\019Y\000\000\019Q\004v\000\000\019Q\000\000\019Q\019Q\000\000\000\000\019Y\019Y\019Y\000\000\019Y\019Y\019Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Y\000\000\000\000\000\000\000\000\000\000\000\000\019Y\019Y\005Z\000\000\000\000\019Y\000\000\000\000\000\000\000\000\000\000\019Y\000\000\000\000\019Y\000\000\000\000\000\000\000\000\000\000\019Y\019Y\019Y\000\000\000\000\000\000\000\000\000\000\000\000\019Y\000\000\019Y\019Y\000\000\000\000\000\000\000\000\000\000\019Y\000\000\000\000\019Y\000\000\000\000\000\000\000\000\000\000\019Y\000\000\000\000\000\000\019Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Y\000\000\019Y\019Y\000\000\019Y\019Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019Y\000\000\019Y\000\000\019Y\019Y\019a\000\000\019Y\000\000\019a\000\000\000\000\019Y\019a\000\000\019Y\004v\000\000\019Y\000\000\019Y\019Y\000\000\000\000\019a\019a\019a\000\000\019a\019a\019a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019a\000\000\000\000\000\000\000\000\000\000\000\000\019a\019a\004n\000\000\000\000\019a\000\000\000\000\000\000\000\000\000\000\019a\000\000\000\000\019a\000\000\000\000\000\000\000\000\000\000\019a\019a\019a\000\000\000\000\000\000\000\000\000\000\000\000\019a\000\000\019a\019a\000\000\000\000\000\000\000\000\000\000\019a\000\000\000\000\019a\000\000\000\000\000\000\000\000\000\000\019a\000\000\000\000\000\000\019a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019a\000\000\019a\019a\000\000\019a\019a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019a\000\000\019a\000\000\019a\019a\019i\000\000\019a\000\000\019i\000\000\000\000\019a\019i\000\000\019a\004v\000\000\019a\000\000\019a\019a\000\000\000\000\019i\019i\019i\000\000\019i\019i\019i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019i\000\000\000\000\000\000\000\000\000\000\000\000\019i\019i\005Z\000\000\000\000\019i\000\000\000\000\000\000\000\000\000\000\019i\000\000\000\000\019i\000\000\000\000\000\000\000\000\000\000\019i\019i\019i\000\000\000\000\000\000\000\000\000\000\000\000\019i\000\000\019i\019i\000\000\000\000\000\000\000\000\000\000\019i\000\000\000\000\019i\000\000\000\000\000\000\000\000\000\000\019i\000\000\000\000\000\000\019i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019i\000\000\019i\019i\000\000\019i\019i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019i\000\000\019i\000\000\019i\019i\019q\000\000\019i\000\000\019q\000\000\000\000\019i\019q\000\000\019i\004v\000\000\019i\000\000\019i\019i\000\000\000\000\019q\019q\019q\000\000\019q\019q\019q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019q\000\000\000\000\000\000\000\000\000\000\000\000\019q\019q\004n\000\000\000\000\019q\000\000\000\000\000\000\000\000\000\000\019q\000\000\000\000\019q\000\000\000\000\000\000\000\000\000\000\019q\019q\019q\000\000\000\000\000\000\000\000\000\000\000\000\019q\000\000\019q\019q\000\000\000\000\000\000\000\000\000\000\019q\000\000\000\000\019q\000\000\000\000\000\000\000\000\000\000\019q\000\000\000\000\000\000\019q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019q\000\000\019q\019q\000\000\019q\019q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019q\000\000\019q\000\000\019q\019q\019y\000\000\019q\000\000\019y\000\000\000\000\019q\019y\000\000\019q\004v\000\000\019q\000\000\019q\019q\000\000\000\000\019y\019y\019y\000\000\019y\019y\019y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019y\000\000\000\000\000\000\000\000\000\000\000\000\019y\019y\005Z\000\000\000\000\019y\000\000\000\000\000\000\000\000\000\000\019y\000\000\000\000\019y\000\000\000\000\000\000\000\000\000\000\019y\019y\019y\000\000\000\000\000\000\000\000\000\000\000\000\019y\000\000\019y\019y\000\000\000\000\000\000\000\000\000\000\019y\000\000\000\000\019y\000\000\000\000\000\000\000\000\000\000\019y\000\000\000\000\000\000\019y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019y\000\000\019y\019y\000\000\019y\019y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019y\000\000\019y\000\000\019y\019y\019\129\000\000\019y\000\000\019\129\000\000\000\000\019y\019\129\000\000\019y\004v\000\000\019y\000\000\019y\019y\000\000\000\000\019\129\019\129\019\129\000\000\019\129\019\129\019\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\019\129\000\000\000\000\000\000\000\000\000\000\000\000\019\129\019\129\004n\000\000\000\000\019\129\000\000\000\000\000\000\000\000\000\000\019\129\000\000\000\000\019\129\000\000\000\000\000\000\000\000\000\000\019\129\019\129\019\129\000\000\000\000\000\000\000\000\000\000\000\000\019\129\000\000\019\129\019\129\000\000\000\000\000\000\000\000\000\000\019\129\000\000\000\000\019\129\000\000\000\000\000\000\000\000\000\000\019\129\000\000\000\000\000\000\019\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\129\000\000\019\129\019\129\000\000\019\129\019\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\129\000\000\019\129\000\000\019\129\019\129\019\137\000\000\019\129\000\000\019\137\000\000\000\000\019\129\019\137\000\000\019\129\004v\000\000\019\129\000\000\019\129\019\129\000\000\000\000\019\137\019\137\019\137\000\000\019\137\019\137\019\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\019\137\000\000\000\000\000\000\000\000\000\000\000\000\019\137\019\137\005Z\000\000\000\000\019\137\000\000\000\000\000\000\000\000\000\000\019\137\000\000\000\000\019\137\000\000\000\000\000\000\000\000\000\000\019\137\019\137\019\137\000\000\000\000\000\000\000\000\000\000\000\000\019\137\000\000\019\137\019\137\000\000\000\000\000\000\000\000\000\000\019\137\000\000\000\000\019\137\000\000\000\000\000\000\000\000\000\000\019\137\000\000\000\000\000\000\019\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\137\000\000\019\137\019\137\000\000\019\137\019\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\137\000\000\019\137\000\000\019\137\019\137\019\145\000\000\019\137\000\000\019\145\000\000\000\000\019\137\019\145\000\000\019\137\004v\000\000\019\137\000\000\019\137\019\137\000\000\000\000\019\145\019\145\019\145\000\000\019\145\019\145\019\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\145\000\000\000\000\000\000\000\000\000\000\000\000\019\145\019\145\004n\000\000\000\000\019\145\000\000\000\000\000\000\000\000\000\000\019\145\000\000\000\000\019\145\000\000\000\000\000\000\000\000\000\000\019\145\019\145\019\145\000\000\000\000\000\000\000\000\000\000\000\000\019\145\000\000\019\145\019\145\000\000\000\000\000\000\000\000\000\000\019\145\000\000\000\000\019\145\000\000\000\000\000\000\000\000\000\000\019\145\000\000\000\000\000\000\019\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\145\000\000\019\145\019\145\000\000\019\145\019\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\145\000\000\019\145\000\000\019\145\019\145\019\153\000\000\019\145\000\000\019\153\000\000\000\000\019\145\019\153\000\000\019\145\004v\000\000\019\145\000\000\019\145\019\145\000\000\000\000\019\153\019\153\019\153\000\000\019\153\019\153\019\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\153\000\000\000\000\000\000\000\000\000\000\000\000\019\153\019\153\005Z\000\000\000\000\019\153\000\000\000\000\000\000\000\000\000\000\019\153\000\000\000\000\019\153\000\000\000\000\000\000\000\000\000\000\019\153\019\153\019\153\000\000\000\000\000\000\000\000\000\000\000\000\019\153\000\000\019\153\019\153\000\000\000\000\000\000\000\000\000\000\019\153\000\000\000\000\019\153\000\000\000\000\000\000\000\000\000\000\019\153\000\000\000\000\000\000\019\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\153\000\000\019\153\019\153\000\000\019\153\019\153\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\153\000\000\019\153\000\000\019\153\019\153\020Q\000\000\019\153\000\000\020Q\000\000\000\000\019\153\020Q\000\000\019\153\004v\000\000\019\153\000\000\019\153\019\153\000\000\000\000\020Q\020Q\020Q\000\000\020Q\020Q\020Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020Q\000\000\000\000\000\000\000\000\000\000\000\000\020Q\020Q\004n\000\000\000\000\020Q\000\000\000\000\000\000\000\000\000\000\020Q\000\000\000\000\020Q\000\000\000\000\000\000\000\000\000\000\020Q\020Q\020Q\000\000\000\000\000\000\000\000\000\000\000\000\020Q\000\000\020Q\020Q\000\000\000\000\000\000\000\000\000\000\020Q\000\000\000\000\020Q\000\000\000\000\000\000\000\000\000\000\020Q\000\000\000\000\000\000\020Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020Q\000\000\020Q\020Q\000\000\020Q\020Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020Q\000\000\020Q\000\000\020Q\020Q\020Y\000\000\020Q\000\000\020Y\000\000\000\000\020Q\020Y\000\000\020Q\004v\000\000\020Q\000\000\020Q\020Q\000\000\000\000\020Y\020Y\020Y\000\000\020Y\020Y\020Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020Y\000\000\000\000\000\000\000\000\000\000\000\000\020Y\020Y\005Z\000\000\000\000\020Y\000\000\000\000\000\000\000\000\000\000\020Y\000\000\000\000\020Y\000\000\000\000\000\000\000\000\000\000\020Y\020Y\020Y\000\000\000\000\000\000\000\000\000\000\000\000\020Y\000\000\020Y\020Y\000\000\000\000\000\000\000\000\000\000\020Y\000\000\000\000\020Y\000\000\000\000\000\000\000\000\000\000\020Y\000\000\000\000\000\000\020Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020Y\000\000\020Y\020Y\000\000\020Y\020Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020Y\000\000\020Y\000\000\020Y\020Y\020a\000\000\020Y\000\000\020a\000\000\000\000\020Y\020a\000\000\020Y\004v\000\000\020Y\000\000\020Y\020Y\000\000\000\000\020a\020a\020a\000\000\020a\020a\020a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020a\000\000\000\000\000\000\000\000\000\000\000\000\020a\020a\004n\000\000\000\000\020a\000\000\000\000\000\000\000\000\000\000\020a\000\000\000\000\020a\000\000\000\000\000\000\000\000\000\000\020a\020a\020a\000\000\000\000\000\000\000\000\000\000\000\000\020a\000\000\020a\020a\000\000\000\000\000\000\000\000\000\000\020a\000\000\000\000\020a\000\000\000\000\000\000\000\000\000\000\020a\000\000\000\000\000\000\020a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020a\000\000\020a\020a\000\000\020a\020a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020a\000\000\020a\000\000\020a\020a\020i\000\000\020a\000\000\020i\000\000\000\000\020a\020i\000\000\020a\004v\000\000\020a\000\000\020a\020a\000\000\000\000\020i\020i\020i\000\000\020i\020i\020i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020i\000\000\000\000\000\000\000\000\000\000\000\000\020i\020i\005Z\000\000\000\000\020i\000\000\000\000\000\000\000\000\000\000\020i\000\000\000\000\020i\000\000\000\000\000\000\000\000\000\000\020i\020i\020i\000\000\000\000\000\000\000\000\000\000\000\000\020i\000\000\020i\020i\000\000\000\000\000\000\000\000\000\000\020i\000\000\000\000\020i\000\000\000\000\000\000\000\000\000\000\020i\000\000\000\000\000\000\020i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020i\000\000\020i\020i\000\000\020i\020i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020i\000\000\020i\000\000\020i\020i\0201\000\000\020i\000\000\0201\000\000\000\000\020i\0201\000\000\020i\004v\000\000\020i\000\000\020i\020i\000\000\000\000\0201\0201\0201\000\000\0201\0201\0201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0201\000\000\000\000\000\000\000\000\000\000\000\000\0201\0201\004n\000\000\000\000\0201\000\000\000\000\000\000\000\000\000\000\0201\000\000\000\000\0201\000\000\000\000\000\000\000\000\000\000\0201\0201\0201\000\000\000\000\000\000\000\000\000\000\000\000\0201\000\000\0201\0201\000\000\000\000\000\000\000\000\000\000\0201\000\000\000\000\0201\000\000\000\000\000\000\000\000\000\000\0201\000\000\000\000\000\000\0201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0201\000\000\0201\0201\000\000\0201\0201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0201\000\000\0201\000\000\0201\0201\0209\000\000\0201\000\000\0209\000\000\000\000\0201\0209\000\000\0201\004v\000\000\0201\000\000\0201\0201\000\000\000\000\0209\0209\0209\000\000\0209\0209\0209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0209\000\000\000\000\000\000\000\000\000\000\000\000\0209\0209\005Z\000\000\000\000\0209\000\000\000\000\000\000\000\000\000\000\0209\000\000\000\000\0209\000\000\000\000\000\000\000\000\000\000\0209\0209\0209\000\000\000\000\000\000\000\000\000\000\000\000\0209\000\000\0209\0209\000\000\000\000\000\000\000\000\000\000\0209\000\000\000\000\0209\000\000\000\000\000\000\000\000\000\000\0209\000\000\000\000\000\000\0209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0209\000\000\0209\0209\000\000\0209\0209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0209\000\000\0209\000\000\0209\0209\020A\000\000\0209\000\000\020A\000\000\000\000\0209\020A\000\000\0209\004v\000\000\0209\000\000\0209\0209\000\000\000\000\020A\020A\020A\000\000\020A\020A\020A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020A\000\000\000\000\000\000\000\000\000\000\000\000\020A\020A\004n\000\000\000\000\020A\000\000\000\000\000\000\000\000\000\000\020A\000\000\000\000\020A\000\000\000\000\000\000\000\000\000\000\020A\020A\020A\000\000\000\000\000\000\000\000\000\000\000\000\020A\000\000\020A\020A\000\000\000\000\000\000\000\000\000\000\020A\000\000\000\000\020A\000\000\000\000\000\000\000\000\000\000\020A\000\000\000\000\000\000\020A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020A\000\000\020A\020A\000\000\020A\020A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020A\000\000\020A\000\000\020A\020A\020I\000\000\020A\000\000\020I\000\000\000\000\020A\020I\000\000\020A\004v\000\000\020A\000\000\020A\020A\000\000\000\000\020I\020I\020I\000\000\020I\020I\020I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020I\000\000\000\000\000\000\000\000\000\000\000\000\020I\020I\005Z\000\000\000\000\020I\000\000\000\000\000\000\000\000\000\000\020I\000\000\000\000\020I\000\000\000\000\000\000\000\000\000\000\020I\020I\020I\000\000\000\000\000\000\000\000\000\000\000\000\020I\000\000\020I\020I\000\000\000\000\000\000\000\000\000\000\020I\000\000\000\000\020I\000\000\000\000\000\000\000\000\000\000\020I\000\000\000\000\000\000\020I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020I\000\000\020I\020I\000\000\020I\020I\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020I\000\000\020I\000\000\020I\020I\019\197\000\000\020I\000\000\019\197\000\000\000\000\020I\019\197\000\000\020I\004v\000\000\020I\000\000\020I\020I\000\000\000\000\019\197\019\197\019\197\000\000\019\197\019\197\019\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\197\000\000\000\000\000\000\000\000\000\000\000\000\019\197\019\197\004\138\000\000\000\000\019\197\000\000\000\000\000\000\000\000\000\000\019\197\000\000\000\000\019\197\000\000\000\000\000\000\000\000\000\000\019\197\019\197\019\197\000\000\000\000\000\000\000\000\000\000\000\000\019\197\000\000\019\197\019\197\000\000\000\000\000\000\000\000\000\000\019\197\000\000\000\000\019\197\000\000\000\000\000\000\000\000\000\000\019\197\000\000\000\000\000\000\019\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\197\000\000\019\197\019\197\000\000\019\197\019\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\197\000\000\019\197\000\000\019\197\019\197\019\213\000\000\019\197\000\000\019\213\000\000\000\000\019\197\019\213\000\000\019\197\000\000\000\000\019\197\000\000\019\197\019\197\000\000\000\000\019\213\019\213\019\213\000\000\019\213\019\213\019\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\213\000\000\000\000\000\000\000\000\000\000\000\000\019\213\019\213\004\138\000\000\000\000\019\213\000\000\000\000\000\000\000\000\000\000\019\213\000\000\000\000\019\213\000\000\000\000\000\000\000\000\000\000\019\213\019\213\019\213\000\000\000\000\000\000\000\000\000\000\000\000\019\213\000\000\019\213\019\213\000\000\000\000\000\000\000\000\000\000\019\213\000\000\000\000\019\213\000\000\000\000\000\000\000\000\000\000\019\213\000\000\000\000\000\000\019\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\213\000\000\019\213\019\213\000\000\019\213\019\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\213\000\000\019\213\000\000\019\213\019\213\019\229\000\000\019\213\000\000\019\229\000\000\000\000\019\213\019\229\000\000\019\213\000\000\000\000\019\213\000\000\019\213\019\213\000\000\000\000\019\229\019\229\019\229\000\000\019\229\019\229\019\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\229\000\000\000\000\000\000\000\000\000\000\000\000\019\229\019\229\004\138\000\000\000\000\019\229\000\000\000\000\000\000\000\000\000\000\019\229\000\000\000\000\019\229\000\000\000\000\000\000\000\000\000\000\019\229\019\229\019\229\000\000\000\000\000\000\000\000\000\000\000\000\019\229\000\000\019\229\019\229\000\000\000\000\000\000\000\000\000\000\019\229\000\000\000\000\019\229\000\000\000\000\000\000\000\000\000\000\019\229\000\000\000\000\000\000\019\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\229\000\000\019\229\019\229\000\000\019\229\019\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\229\000\000\019\229\000\000\019\229\019\229\020\005\000\000\019\229\000\000\020\005\000\000\000\000\019\229\020\005\000\000\019\229\000\000\000\000\019\229\000\000\019\229\019\229\000\000\000\000\020\005\020\005\020\005\000\000\020\005\020\005\020\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\020\005\000\000\000\000\000\000\000\000\000\000\000\000\020\005\020\005\004\138\000\000\000\000\020\005\000\000\000\000\000\000\000\000\000\000\020\005\000\000\000\000\020\005\000\000\000\000\000\000\000\000\000\000\020\005\020\005\020\005\000\000\000\000\000\000\000\000\000\000\000\000\020\005\000\000\020\005\020\005\000\000\000\000\000\000\000\000\000\000\020\005\000\000\000\000\020\005\000\000\000\000\000\000\000\000\000\000\020\005\000\000\000\000\000\000\020\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\005\000\000\020\005\020\005\000\000\020\005\020\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\005\000\000\020\005\000\000\020\005\020\005\020\r\000\000\020\005\000\000\020\r\000\000\000\000\020\005\020\r\000\000\020\005\000\000\000\000\020\005\000\000\020\005\020\005\000\000\000\000\020\r\020\r\020\r\000\000\020\r\020\r\020\r\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\r\000\000\000\000\000\000\000\000\000\000\000\000\020\r\020\r\005v\000\000\000\000\020\r\000\000\000\000\000\000\000\000\000\000\020\r\000\000\000\000\020\r\000\000\000\000\000\000\000\000\000\000\020\r\020\r\020\r\000\000\000\000\000\000\000\000\000\000\000\000\020\r\000\000\020\r\020\r\000\000\000\000\000\000\000\000\000\000\020\r\000\000\000\000\020\r\000\000\000\000\000\000\000\000\000\000\020\r\000\000\000\000\000\000\020\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\r\000\000\020\r\020\r\000\000\020\r\020\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\r\000\000\020\r\000\000\020\r\020\r\020\021\000\000\020\r\000\000\020\021\000\000\000\000\020\r\020\021\000\000\020\r\000\000\000\000\020\r\000\000\020\r\020\r\000\000\000\000\020\021\020\021\020\021\000\000\020\021\020\021\020\021\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\021\000\000\000\000\000\000\000\000\000\000\000\000\020\021\020\021\004\138\000\000\000\000\020\021\000\000\000\000\000\000\000\000\000\000\020\021\000\000\000\000\020\021\000\000\000\000\000\000\000\000\000\000\020\021\020\021\020\021\000\000\000\000\000\000\000\000\000\000\000\000\020\021\000\000\020\021\020\021\000\000\000\000\000\000\000\000\000\000\020\021\000\000\000\000\020\021\000\000\000\000\000\000\000\000\000\000\020\021\000\000\000\000\000\000\020\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\021\000\000\020\021\020\021\000\000\020\021\020\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\021\000\000\020\021\000\000\020\021\020\021\020\029\000\000\020\021\000\000\020\029\000\000\000\000\020\021\020\029\000\000\020\021\000\000\000\000\020\021\000\000\020\021\020\021\000\000\000\000\020\029\020\029\020\029\000\000\020\029\020\029\020\029\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\029\000\000\000\000\000\000\000\000\000\000\000\000\020\029\020\029\005v\000\000\000\000\020\029\000\000\000\000\000\000\000\000\000\000\020\029\000\000\000\000\020\029\000\000\000\000\000\000\000\000\000\000\020\029\020\029\020\029\000\000\000\000\000\000\000\000\000\000\000\000\020\029\000\000\020\029\020\029\000\000\000\000\000\000\000\000\000\000\020\029\000\000\000\000\020\029\000\000\000\000\000\000\000\000\000\000\020\029\000\000\000\000\000\000\020\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\029\000\000\020\029\020\029\000\000\020\029\020\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\029\000\000\020\029\000\000\020\029\020\029\019\237\000\000\020\029\000\000\019\237\000\000\000\000\020\029\019\237\000\000\020\029\000\000\000\000\020\029\000\000\020\029\020\029\000\000\000\000\019\237\019\237\019\237\000\000\019\237\019\237\019\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\000\000\000\000\000\000\000\000\019\237\019\237\005v\000\000\000\000\019\237\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\019\237\000\000\000\000\000\000\000\000\000\000\019\237\019\237\019\237\000\000\000\000\000\000\000\000\000\000\000\000\019\237\000\000\019\237\019\237\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\019\237\000\000\000\000\000\000\000\000\000\000\019\237\000\000\000\000\000\000\019\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\237\000\000\019\237\019\237\000\000\019\237\019\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\237\000\000\019\237\000\000\019\237\019\237\019\245\000\000\019\237\000\000\019\245\000\000\000\000\019\237\019\245\000\000\019\237\000\000\000\000\019\237\000\000\019\237\019\237\000\000\000\000\019\245\019\245\019\245\000\000\019\245\019\245\019\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\245\000\000\000\000\000\000\000\000\000\000\000\000\019\245\019\245\004\138\000\000\000\000\019\245\000\000\000\000\000\000\000\000\000\000\019\245\000\000\000\000\019\245\000\000\000\000\000\000\000\000\000\000\019\245\019\245\019\245\000\000\000\000\000\000\000\000\000\000\000\000\019\245\000\000\019\245\019\245\000\000\000\000\000\000\000\000\000\000\019\245\000\000\000\000\019\245\000\000\000\000\000\000\000\000\000\000\019\245\000\000\000\000\000\000\019\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\245\000\000\019\245\019\245\000\000\019\245\019\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\245\000\000\019\245\000\000\019\245\019\245\019\253\000\000\019\245\000\000\019\253\000\000\000\000\019\245\019\253\000\000\019\245\000\000\000\000\019\245\000\000\019\245\019\245\000\000\000\000\019\253\019\253\019\253\000\000\019\253\019\253\019\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\253\000\000\000\000\000\000\000\000\000\000\000\000\019\253\019\253\005v\000\000\000\000\019\253\000\000\000\000\000\000\000\000\000\000\019\253\000\000\000\000\019\253\000\000\000\000\000\000\000\000\000\000\019\253\019\253\019\253\000\000\000\000\000\000\000\000\000\000\000\000\019\253\000\000\019\253\019\253\000\000\000\000\000\000\000\000\000\000\019\253\000\000\000\000\019\253\000\000\000\000\000\000\000\000\000\000\019\253\000\000\000\000\000\000\019\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\253\000\000\019\253\019\253\000\000\019\253\019\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\253\000\000\019\253\000\000\019\253\019\253\002A\000\000\019\253\000\000\002A\000\000\000\000\019\253\002A\000\000\019\253\000\000\000\000\019\253\000\000\019\253\019\253\000\000\000\000\002A\002A\002A\000\000\002A\002A\002A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\000\000\000\000\000\000\000\000\000\000\000\002A\002A\002A\000\000\000\000\002A\000\000\000\000\000\000\000\000\000\000\002A\000\000\000\000\002A\000\000\000\000\000\000\000\000\000\000\002A\002A\002A\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\000\002A\002A\000\000\000\000\000\000\000\000\000\000\002A\000\000\000\000\002A\000\000\000\000\000\000\000\000\000\000\002A\000\000\000\000\000\000\002A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\000\002A\002A\000\000\002A\002A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002A\000\000\002A\000\000\002A\002A\018\165\000\000\002A\000\000\018\165\000\000\000\000\002A\018\165\000\000\002A\000\000\000\000\005\254\000\000\002A\002A\000\000\000\000\018\165\018\165\018\165\000\000\018\165\018\165\018\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\018\165\000\000\000\000\000\000\000\000\000\000\000\000\018\165\018\165\004\138\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\018\165\018\165\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\018\165\000\000\000\000\000\000\018\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\018\165\000\000\018\165\018\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\165\000\000\018\165\000\000\018\165\018\165\018\173\000\000\018\165\000\000\018\173\000\000\000\000\018\165\018\173\000\000\018\165\000\000\000\000\018\165\000\000\018\165\018\165\000\000\000\000\018\173\018\173\018\173\000\000\018\173\018\173\018\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\000\000\018\173\018\173\005v\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\018\173\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\018\173\018\173\018\173\000\000\000\000\000\000\000\000\000\000\000\000\018\173\000\000\018\173\018\173\000\000\000\000\000\000\000\000\000\000\018\173\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\018\173\000\000\000\000\000\000\018\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\173\000\000\018\173\018\173\000\000\018\173\018\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\173\000\000\018\173\000\000\018\173\018\173\018\181\000\000\018\173\000\000\018\181\000\000\000\000\018\173\018\181\000\000\018\173\000\000\000\000\018\173\000\000\018\173\018\173\000\000\000\000\018\181\018\181\018\181\000\000\018\181\018\181\018\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\000\000\018\181\018\181\004\138\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\018\181\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\018\181\018\181\018\181\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000\000\018\181\018\181\000\000\000\000\000\000\000\000\000\000\018\181\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\018\181\000\000\000\000\000\000\018\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000\000\018\181\018\181\000\000\018\181\018\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\181\000\000\018\181\000\000\018\181\018\181\018\189\000\000\018\181\000\000\018\189\000\000\000\000\018\181\018\189\000\000\018\181\000\000\000\000\018\181\000\000\018\181\018\181\000\000\000\000\018\189\018\189\018\189\000\000\018\189\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\000\000\018\189\018\189\005v\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\018\189\000\000\000\000\000\000\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\018\189\000\000\018\189\018\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\189\000\000\018\189\000\000\018\189\018\189\018\197\000\000\018\189\000\000\018\197\000\000\000\000\018\189\018\197\000\000\018\189\000\000\000\000\018\189\000\000\018\189\018\189\000\000\000\000\018\197\018\197\018\197\000\000\018\197\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\000\000\018\197\018\197\004\138\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\018\197\000\000\000\000\000\000\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\018\197\000\000\018\197\018\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\197\000\000\018\197\000\000\018\197\018\197\018\205\000\000\018\197\000\000\018\205\000\000\000\000\018\197\018\205\000\000\018\197\000\000\000\000\018\197\000\000\018\197\018\197\000\000\000\000\018\205\018\205\018\205\000\000\018\205\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\000\000\018\205\018\205\005v\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\018\205\000\000\000\000\000\000\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\018\205\000\000\018\205\018\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\205\000\000\018\205\000\000\018\205\018\205\018\213\000\000\018\205\000\000\018\213\000\000\000\000\018\205\018\213\000\000\018\205\000\000\000\000\018\205\000\000\018\205\018\205\000\000\000\000\018\213\018\213\018\213\000\000\018\213\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\000\000\018\213\018\213\004\138\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\018\213\000\000\000\000\000\000\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\018\213\000\000\018\213\018\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\213\000\000\018\213\000\000\018\213\018\213\018\221\000\000\018\213\000\000\018\221\000\000\000\000\018\213\018\221\000\000\018\213\000\000\000\000\018\213\000\000\018\213\018\213\000\000\000\000\018\221\018\221\018\221\000\000\018\221\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\221\018\221\005v\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\018\221\000\000\000\000\000\000\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\018\221\000\000\018\221\018\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\221\000\000\018\221\000\000\018\221\018\221\018\229\000\000\018\221\000\000\018\229\000\000\000\000\018\221\018\229\000\000\018\221\000\000\000\000\018\221\000\000\018\221\018\221\000\000\000\000\018\229\018\229\018\229\000\000\018\229\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\000\000\018\229\018\229\004\138\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\018\229\000\000\000\000\000\000\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\018\229\000\000\018\229\018\229\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\229\000\000\018\229\000\000\018\229\018\229\018\237\000\000\018\229\000\000\018\237\000\000\000\000\018\229\018\237\000\000\018\229\000\000\000\000\018\229\000\000\018\229\018\229\000\000\000\000\018\237\018\237\018\237\000\000\018\237\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\000\000\018\237\018\237\005v\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\018\237\000\000\000\000\000\000\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\018\237\000\000\018\237\018\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\237\000\000\018\237\000\000\018\237\018\237\018\245\000\000\018\237\000\000\018\245\000\000\000\000\018\237\018\245\000\000\018\237\000\000\000\000\018\237\000\000\018\237\018\237\000\000\000\000\018\245\018\245\018\245\000\000\018\245\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\000\000\018\245\018\245\004\138\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\018\245\000\000\000\000\000\000\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\018\245\000\000\018\245\018\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\245\000\000\018\245\000\000\018\245\018\245\018\253\000\000\018\245\000\000\018\253\000\000\000\000\018\245\018\253\000\000\018\245\000\000\000\000\018\245\000\000\018\245\018\245\000\000\000\000\018\253\018\253\018\253\000\000\018\253\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\000\000\018\253\018\253\005v\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\018\253\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\018\253\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\018\253\000\000\018\253\018\253\000\000\000\000\000\000\000\000\000\000\018\253\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\018\253\000\000\000\000\000\000\018\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\253\000\000\018\253\018\253\000\000\018\253\018\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\253\000\000\018\253\000\000\018\253\018\253\019\005\000\000\018\253\000\000\019\005\000\000\000\000\018\253\019\005\000\000\018\253\000\000\000\000\018\253\000\000\018\253\018\253\000\000\000\000\019\005\019\005\019\005\000\000\019\005\019\005\019\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\019\005\000\000\000\000\000\000\000\000\000\000\000\000\019\005\019\005\004\138\000\000\000\000\019\005\000\000\000\000\000\000\000\000\000\000\019\005\000\000\000\000\019\005\000\000\000\000\000\000\000\000\000\000\019\005\019\005\019\005\000\000\000\000\000\000\000\000\000\000\000\000\019\005\000\000\019\005\019\005\000\000\000\000\000\000\000\000\000\000\019\005\000\000\000\000\019\005\000\000\000\000\000\000\000\000\000\000\019\005\000\000\000\000\000\000\019\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\005\000\000\019\005\019\005\000\000\019\005\019\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\005\000\000\019\005\000\000\019\005\019\005\019\r\000\000\019\005\000\000\019\r\000\000\000\000\019\005\019\r\000\000\019\005\000\000\000\000\019\005\000\000\019\005\019\005\000\000\000\000\019\r\019\r\019\r\000\000\019\r\019\r\019\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\r\000\000\000\000\000\000\000\000\000\000\000\000\019\r\019\r\005v\000\000\000\000\019\r\000\000\000\000\000\000\000\000\000\000\019\r\000\000\000\000\019\r\000\000\000\000\000\000\000\000\000\000\019\r\019\r\019\r\000\000\000\000\000\000\000\000\000\000\000\000\019\r\000\000\019\r\019\r\000\000\000\000\000\000\000\000\000\000\019\r\000\000\000\000\019\r\000\000\000\000\000\000\000\000\000\000\019\r\000\000\000\000\000\000\019\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\r\000\000\019\r\019\r\000\000\019\r\019\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\r\000\000\019\r\000\000\019\r\019\r\019\021\000\000\019\r\000\000\019\021\000\000\000\000\019\r\019\021\000\000\019\r\000\000\000\000\019\r\000\000\019\r\019\r\000\000\000\000\019\021\019\021\019\021\000\000\019\021\019\021\019\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\021\000\000\000\000\000\000\000\000\000\000\000\000\019\021\019\021\004\138\000\000\000\000\019\021\000\000\000\000\000\000\000\000\000\000\019\021\000\000\000\000\019\021\000\000\000\000\000\000\000\000\000\000\019\021\019\021\019\021\000\000\000\000\000\000\000\000\000\000\000\000\019\021\000\000\019\021\019\021\000\000\000\000\000\000\000\000\000\000\019\021\000\000\000\000\019\021\000\000\000\000\000\000\000\000\000\000\019\021\000\000\000\000\000\000\019\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\021\000\000\019\021\019\021\000\000\019\021\019\021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\021\000\000\019\021\000\000\019\021\019\021\019\029\000\000\019\021\000\000\019\029\000\000\000\000\019\021\019\029\000\000\019\021\000\000\000\000\019\021\000\000\019\021\019\021\000\000\000\000\019\029\019\029\019\029\000\000\019\029\019\029\019\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\000\000\019\029\019\029\005v\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\019\029\019\029\019\029\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\019\029\019\029\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\019\029\000\000\000\000\000\000\019\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\019\029\019\029\000\000\019\029\019\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\029\000\000\019\029\000\000\019\029\019\029\019\221\000\000\019\029\000\000\019\221\000\000\000\000\019\029\019\221\000\000\019\029\000\000\000\000\019\029\000\000\019\029\019\029\000\000\000\000\019\221\019\221\019\221\000\000\019\221\019\221\019\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\000\000\000\000\000\000\000\000\019\221\019\221\005v\000\000\000\000\019\221\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\019\221\000\000\000\000\000\000\000\000\000\000\019\221\019\221\019\221\000\000\000\000\000\000\000\000\000\000\000\000\019\221\000\000\019\221\019\221\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\019\221\000\000\000\000\000\000\000\000\000\000\019\221\000\000\000\000\000\000\019\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\221\000\000\019\221\019\221\000\000\019\221\019\221\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\221\000\000\019\221\000\000\019\221\019\221\019\205\000\000\019\221\000\000\019\205\000\000\000\000\019\221\019\205\000\000\019\221\000\000\000\000\019\221\000\000\019\221\019\221\000\000\000\000\019\205\019\205\019\205\000\000\019\205\019\205\019\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\205\000\000\000\000\000\000\000\000\000\000\000\000\019\205\019\205\005v\000\000\000\000\019\205\000\000\000\000\000\000\000\000\000\000\019\205\000\000\000\000\019\205\000\000\000\000\000\000\000\000\000\000\019\205\019\205\019\205\000\000\000\000\000\000\000\000\000\000\000\000\019\205\000\000\019\205\019\205\000\000\000\000\000\000\000\000\000\000\019\205\000\000\000\000\019\205\000\000\000\000\000\000\000\000\000\000\019\205\000\000\000\000\000\000\019\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\205\000\000\019\205\019\205\000\000\019\205\019\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\205\000\000\019\205\000\000\019\205\019\205\019\165\000\000\019\205\000\000\019\165\000\000\000\000\019\205\019\165\000\000\019\205\000\000\000\000\019\205\000\000\019\205\019\205\000\000\000\000\019\165\019\165\019\165\000\000\019\165\019\165\019\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\019\165\000\000\000\000\000\000\000\000\000\000\000\000\019\165\019\165\004\138\000\000\000\000\019\165\000\000\000\000\000\000\000\000\000\000\019\165\000\000\000\000\019\165\000\000\000\000\000\000\000\000\000\000\019\165\019\165\019\165\000\000\000\000\000\000\000\000\000\000\000\000\019\165\000\000\019\165\019\165\000\000\000\000\000\000\000\000\000\000\019\165\000\000\000\000\019\165\000\000\000\000\000\000\000\000\000\000\019\165\000\000\000\000\000\000\019\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\165\000\000\019\165\019\165\000\000\019\165\019\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\165\000\000\019\165\000\000\019\165\019\165\019\173\000\000\019\165\000\000\019\173\000\000\000\000\019\165\019\173\000\000\019\165\000\000\000\000\019\165\000\000\019\165\019\165\000\000\000\000\019\173\019\173\019\173\000\000\019\173\019\173\019\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\173\000\000\000\000\000\000\000\000\000\000\000\000\019\173\019\173\005v\000\000\000\000\019\173\000\000\000\000\000\000\000\000\000\000\019\173\000\000\000\000\019\173\000\000\000\000\000\000\000\000\000\000\019\173\019\173\019\173\000\000\000\000\000\000\000\000\000\000\000\000\019\173\000\000\019\173\019\173\000\000\000\000\000\000\000\000\000\000\019\173\000\000\000\000\019\173\000\000\000\000\000\000\000\000\000\000\019\173\000\000\000\000\000\000\019\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\173\000\000\019\173\019\173\000\000\019\173\019\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\173\000\000\019\173\000\000\019\173\019\173\019\181\000\000\019\173\000\000\019\181\000\000\000\000\019\173\019\181\000\000\019\173\000\000\000\000\019\173\000\000\019\173\019\173\000\000\000\000\019\181\019\181\019\181\000\000\019\181\019\181\019\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\181\000\000\000\000\000\000\000\000\000\000\000\000\019\181\019\181\004\138\000\000\000\000\019\181\000\000\000\000\000\000\000\000\000\000\019\181\000\000\000\000\019\181\000\000\000\000\000\000\000\000\000\000\019\181\019\181\019\181\000\000\000\000\000\000\000\000\000\000\000\000\019\181\000\000\019\181\019\181\000\000\000\000\000\000\000\000\000\000\019\181\000\000\000\000\019\181\000\000\000\000\000\000\000\000\000\000\019\181\000\000\000\000\000\000\019\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\181\000\000\019\181\019\181\000\000\019\181\019\181\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\181\000\000\019\181\000\000\019\181\019\181\019\189\000\000\019\181\000\000\019\189\000\000\000\000\019\181\019\189\000\000\019\181\000\000\000\000\019\181\000\000\019\181\019\181\000\000\000\000\019\189\019\189\019\189\000\000\019\189\019\189\019\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\189\000\000\000\000\000\000\000\000\000\000\000\000\019\189\019\189\005v\000\000\000\000\019\189\000\000\000\000\000\000\000\000\000\000\019\189\000\000\000\000\019\189\000\000\000\000\000\000\000\000\000\000\019\189\019\189\019\189\000\000\000\000\000\000\000\000\000\000\000\000\019\189\000\000\019\189\019\189\000\000\000\000\000\000\000\000\000\000\019\189\000\000\000\000\019\189\000\000\000\000\000\000\000\000\000\000\019\189\000\000\000\000\000\000\019\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\189\000\000\019\189\019\189\000\000\019\189\019\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\189\000\000\019\189\000\000\019\189\019\189\019%\000\000\019\189\000\000\019%\000\000\000\000\019\189\019%\000\000\019\189\000\000\000\000\019\189\000\000\019\189\019\189\000\000\000\000\019%\019%\019%\000\000\019%\019%\019%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019%\000\000\000\000\000\000\000\000\000\000\000\000\019%\019%\004\138\000\000\000\000\019%\000\000\000\000\000\000\000\000\000\000\019%\000\000\000\000\019%\000\000\000\000\000\000\000\000\000\000\019%\019%\019%\000\000\000\000\000\000\000\000\000\000\000\000\019%\000\000\019%\019%\000\000\000\000\000\000\000\000\000\000\019%\000\000\000\000\019%\000\000\000\000\000\000\000\000\000\000\019%\000\000\000\000\000\000\019%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019%\000\000\019%\019%\000\000\019%\019%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019%\000\000\019%\000\000\019%\019%\019-\000\000\019%\000\000\019-\000\000\000\000\019%\019-\000\000\019%\000\000\000\000\019%\000\000\019%\019%\000\000\000\000\019-\019-\019-\000\000\019-\019-\019-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019-\000\000\000\000\000\000\000\000\000\000\000\000\019-\019-\005v\000\000\000\000\019-\000\000\000\000\000\000\000\000\000\000\019-\000\000\000\000\019-\000\000\000\000\000\000\000\000\000\000\019-\019-\019-\000\000\000\000\000\000\000\000\000\000\000\000\019-\000\000\019-\019-\000\000\000\000\000\000\000\000\000\000\019-\000\000\000\000\019-\000\000\000\000\000\000\000\000\000\000\019-\000\000\000\000\000\000\019-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019-\000\000\019-\019-\000\000\019-\019-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019-\000\000\019-\000\000\019-\019-\0195\000\000\019-\000\000\0195\000\000\000\000\019-\0195\000\000\019-\000\000\000\000\019-\000\000\019-\019-\000\000\000\000\0195\0195\0195\000\000\0195\0195\0195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0195\000\000\000\000\000\000\000\000\000\000\000\000\0195\0195\004\138\000\000\000\000\0195\000\000\000\000\000\000\000\000\000\000\0195\000\000\000\000\0195\000\000\000\000\000\000\000\000\000\000\0195\0195\0195\000\000\000\000\000\000\000\000\000\000\000\000\0195\000\000\0195\0195\000\000\000\000\000\000\000\000\000\000\0195\000\000\000\000\0195\000\000\000\000\000\000\000\000\000\000\0195\000\000\000\000\000\000\0195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0195\000\000\0195\0195\000\000\0195\0195\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0195\000\000\0195\000\000\0195\0195\019=\000\000\0195\000\000\019=\000\000\000\000\0195\019=\000\000\0195\000\000\000\000\0195\000\000\0195\0195\000\000\000\000\019=\019=\019=\000\000\019=\019=\019=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019=\000\000\000\000\000\000\000\000\000\000\000\000\019=\019=\005v\000\000\000\000\019=\000\000\000\000\000\000\000\000\000\000\019=\000\000\000\000\019=\000\000\000\000\000\000\000\000\000\000\019=\019=\019=\000\000\000\000\000\000\000\000\000\000\000\000\019=\000\000\019=\019=\000\000\000\000\000\000\000\000\000\000\019=\000\000\000\000\019=\000\000\000\000\000\000\000\000\000\000\019=\000\000\000\000\000\000\019=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019=\000\000\019=\019=\000\000\019=\019=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019=\000\000\019=\000\000\019=\019=\019E\000\000\019=\000\000\019E\000\000\000\000\019=\019E\000\000\019=\000\000\000\000\019=\000\000\019=\019=\000\000\000\000\019E\019E\019E\000\000\019E\019E\019E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019E\000\000\000\000\000\000\000\000\000\000\000\000\019E\019E\004\138\000\000\000\000\019E\000\000\000\000\000\000\000\000\000\000\019E\000\000\000\000\019E\000\000\000\000\000\000\000\000\000\000\019E\019E\019E\000\000\000\000\000\000\000\000\000\000\000\000\019E\000\000\019E\019E\000\000\000\000\000\000\000\000\000\000\019E\000\000\000\000\019E\000\000\000\000\000\000\000\000\000\000\019E\000\000\000\000\000\000\019E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019E\000\000\019E\019E\000\000\019E\019E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019E\000\000\019E\000\000\019E\019E\019M\000\000\019E\000\000\019M\000\000\000\000\019E\019M\000\000\019E\000\000\000\000\019E\000\000\019E\019E\000\000\000\000\019M\019M\019M\000\000\019M\019M\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\000\000\000\000\000\000\000\000\000\000\000\019M\019M\005v\000\000\000\000\019M\000\000\000\000\000\000\000\000\000\000\019M\000\000\000\000\019M\000\000\000\000\000\000\000\000\000\000\019M\019M\019M\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\000\019M\019M\000\000\000\000\000\000\000\000\000\000\019M\000\000\000\000\019M\000\000\000\000\000\000\000\000\000\000\019M\000\000\000\000\000\000\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\000\019M\019M\000\000\019M\019M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019M\000\000\019M\000\000\019M\019M\019U\000\000\019M\000\000\019U\000\000\000\000\019M\019U\000\000\019M\000\000\000\000\019M\000\000\019M\019M\000\000\000\000\019U\019U\019U\000\000\019U\019U\019U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019U\000\000\000\000\000\000\000\000\000\000\000\000\019U\019U\004\138\000\000\000\000\019U\000\000\000\000\000\000\000\000\000\000\019U\000\000\000\000\019U\000\000\000\000\000\000\000\000\000\000\019U\019U\019U\000\000\000\000\000\000\000\000\000\000\000\000\019U\000\000\019U\019U\000\000\000\000\000\000\000\000\000\000\019U\000\000\000\000\019U\000\000\000\000\000\000\000\000\000\000\019U\000\000\000\000\000\000\019U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019U\000\000\019U\019U\000\000\019U\019U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019U\000\000\019U\000\000\019U\019U\019]\000\000\019U\000\000\019]\000\000\000\000\019U\019]\000\000\019U\000\000\000\000\019U\000\000\019U\019U\000\000\000\000\019]\019]\019]\000\000\019]\019]\019]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019]\000\000\000\000\000\000\000\000\000\000\000\000\019]\019]\005v\000\000\000\000\019]\000\000\000\000\000\000\000\000\000\000\019]\000\000\000\000\019]\000\000\000\000\000\000\000\000\000\000\019]\019]\019]\000\000\000\000\000\000\000\000\000\000\000\000\019]\000\000\019]\019]\000\000\000\000\000\000\000\000\000\000\019]\000\000\000\000\019]\000\000\000\000\000\000\000\000\000\000\019]\000\000\000\000\000\000\019]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019]\000\000\019]\019]\000\000\019]\019]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019]\000\000\019]\000\000\019]\019]\019e\000\000\019]\000\000\019e\000\000\000\000\019]\019e\000\000\019]\000\000\000\000\019]\000\000\019]\019]\000\000\000\000\019e\019e\019e\000\000\019e\019e\019e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019e\000\000\000\000\000\000\000\000\000\000\000\000\019e\019e\004\138\000\000\000\000\019e\000\000\000\000\000\000\000\000\000\000\019e\000\000\000\000\019e\000\000\000\000\000\000\000\000\000\000\019e\019e\019e\000\000\000\000\000\000\000\000\000\000\000\000\019e\000\000\019e\019e\000\000\000\000\000\000\000\000\000\000\019e\000\000\000\000\019e\000\000\000\000\000\000\000\000\000\000\019e\000\000\000\000\000\000\019e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019e\000\000\019e\019e\000\000\019e\019e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019e\000\000\019e\000\000\019e\019e\019m\000\000\019e\000\000\019m\000\000\000\000\019e\019m\000\000\019e\000\000\000\000\019e\000\000\019e\019e\000\000\000\000\019m\019m\019m\000\000\019m\019m\019m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019m\000\000\000\000\000\000\000\000\000\000\000\000\019m\019m\005v\000\000\000\000\019m\000\000\000\000\000\000\000\000\000\000\019m\000\000\000\000\019m\000\000\000\000\000\000\000\000\000\000\019m\019m\019m\000\000\000\000\000\000\000\000\000\000\000\000\019m\000\000\019m\019m\000\000\000\000\000\000\000\000\000\000\019m\000\000\000\000\019m\000\000\000\000\000\000\000\000\000\000\019m\000\000\000\000\000\000\019m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019m\000\000\019m\019m\000\000\019m\019m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019m\000\000\019m\000\000\019m\019m\019u\000\000\019m\000\000\019u\000\000\000\000\019m\019u\000\000\019m\000\000\000\000\019m\000\000\019m\019m\000\000\000\000\019u\019u\019u\000\000\019u\019u\019u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019u\000\000\000\000\000\000\000\000\000\000\000\000\019u\019u\004\138\000\000\000\000\019u\000\000\000\000\000\000\000\000\000\000\019u\000\000\000\000\019u\000\000\000\000\000\000\000\000\000\000\019u\019u\019u\000\000\000\000\000\000\000\000\000\000\000\000\019u\000\000\019u\019u\000\000\000\000\000\000\000\000\000\000\019u\000\000\000\000\019u\000\000\000\000\000\000\000\000\000\000\019u\000\000\000\000\000\000\019u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019u\000\000\019u\019u\000\000\019u\019u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019u\000\000\019u\000\000\019u\019u\019}\000\000\019u\000\000\019}\000\000\000\000\019u\019}\000\000\019u\000\000\000\000\019u\000\000\019u\019u\000\000\000\000\019}\019}\019}\000\000\019}\019}\019}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019}\000\000\000\000\000\000\000\000\000\000\000\000\019}\019}\005v\000\000\000\000\019}\000\000\000\000\000\000\000\000\000\000\019}\000\000\000\000\019}\000\000\000\000\000\000\000\000\000\000\019}\019}\019}\000\000\000\000\000\000\000\000\000\000\000\000\019}\000\000\019}\019}\000\000\000\000\000\000\000\000\000\000\019}\000\000\000\000\019}\000\000\000\000\000\000\000\000\000\000\019}\000\000\000\000\000\000\019}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019}\000\000\019}\019}\000\000\019}\019}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019}\000\000\019}\000\000\019}\019}\019\133\000\000\019}\000\000\019\133\000\000\000\000\019}\019\133\000\000\019}\000\000\000\000\019}\000\000\019}\019}\000\000\000\000\019\133\019\133\019\133\000\000\019\133\019\133\019\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\133\000\000\000\000\000\000\000\000\000\000\000\000\019\133\019\133\004\138\000\000\000\000\019\133\000\000\000\000\000\000\000\000\000\000\019\133\000\000\000\000\019\133\000\000\000\000\000\000\000\000\000\000\019\133\019\133\019\133\000\000\000\000\000\000\000\000\000\000\000\000\019\133\000\000\019\133\019\133\000\000\000\000\000\000\000\000\000\000\019\133\000\000\000\000\019\133\000\000\000\000\000\000\000\000\000\000\019\133\000\000\000\000\000\000\019\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\133\000\000\019\133\019\133\000\000\019\133\019\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\133\000\000\019\133\000\000\019\133\019\133\019\141\000\000\019\133\000\000\019\141\000\000\000\000\019\133\019\141\000\000\019\133\000\000\000\000\019\133\000\000\019\133\019\133\000\000\000\000\019\141\019\141\019\141\000\000\019\141\019\141\019\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\141\000\000\000\000\000\000\000\000\000\000\000\000\019\141\019\141\005v\000\000\000\000\019\141\000\000\000\000\000\000\000\000\000\000\019\141\000\000\000\000\019\141\000\000\000\000\000\000\000\000\000\000\019\141\019\141\019\141\000\000\000\000\000\000\000\000\000\000\000\000\019\141\000\000\019\141\019\141\000\000\000\000\000\000\000\000\000\000\019\141\000\000\000\000\019\141\000\000\000\000\000\000\000\000\000\000\019\141\000\000\000\000\000\000\019\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\141\000\000\019\141\019\141\000\000\019\141\019\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\141\000\000\019\141\000\000\019\141\019\141\019\149\000\000\019\141\000\000\019\149\000\000\000\000\019\141\019\149\000\000\019\141\000\000\000\000\019\141\000\000\019\141\019\141\000\000\000\000\019\149\019\149\019\149\000\000\019\149\019\149\019\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\149\000\000\000\000\000\000\000\000\000\000\000\000\019\149\019\149\004\138\000\000\000\000\019\149\000\000\000\000\000\000\000\000\000\000\019\149\000\000\000\000\019\149\000\000\000\000\000\000\000\000\000\000\019\149\019\149\019\149\000\000\000\000\000\000\000\000\000\000\000\000\019\149\000\000\019\149\019\149\000\000\000\000\000\000\000\000\000\000\019\149\000\000\000\000\019\149\000\000\000\000\000\000\000\000\000\000\019\149\000\000\000\000\000\000\019\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\149\000\000\019\149\019\149\000\000\019\149\019\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\149\000\000\019\149\000\000\019\149\019\149\019\157\000\000\019\149\000\000\019\157\000\000\000\000\019\149\019\157\000\000\019\149\000\000\000\000\019\149\000\000\019\149\019\149\000\000\000\000\019\157\019\157\019\157\000\000\019\157\019\157\019\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\157\000\000\000\000\000\000\000\000\000\000\000\000\019\157\019\157\005v\000\000\000\000\019\157\000\000\000\000\000\000\000\000\000\000\019\157\000\000\000\000\019\157\000\000\000\000\000\000\000\000\000\000\019\157\019\157\019\157\000\000\000\000\000\000\000\000\000\000\000\000\019\157\000\000\019\157\019\157\000\000\000\000\000\000\000\000\000\000\019\157\000\000\000\000\019\157\000\000\000\000\000\000\000\000\000\000\019\157\000\000\000\000\000\000\019\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\157\000\000\019\157\019\157\000\000\019\157\019\157\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\019\157\000\000\019\157\000\000\019\157\019\157\020U\000\000\019\157\000\000\020U\000\000\000\000\019\157\020U\000\000\019\157\000\000\000\000\019\157\000\000\019\157\019\157\000\000\000\000\020U\020U\020U\000\000\020U\020U\020U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020U\000\000\000\000\000\000\000\000\000\000\000\000\020U\020U\004\138\000\000\000\000\020U\000\000\000\000\000\000\000\000\000\000\020U\000\000\000\000\020U\000\000\000\000\000\000\000\000\000\000\020U\020U\020U\000\000\000\000\000\000\000\000\000\000\000\000\020U\000\000\020U\020U\000\000\000\000\000\000\000\000\000\000\020U\000\000\000\000\020U\000\000\000\000\000\000\000\000\000\000\020U\000\000\000\000\000\000\020U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020U\000\000\020U\020U\000\000\020U\020U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020U\000\000\020U\000\000\020U\020U\020]\000\000\020U\000\000\020]\000\000\000\000\020U\020]\000\000\020U\000\000\000\000\020U\000\000\020U\020U\000\000\000\000\020]\020]\020]\000\000\020]\020]\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\020]\000\000\000\000\000\000\000\000\000\000\000\000\020]\020]\005v\000\000\000\000\020]\000\000\000\000\000\000\000\000\000\000\020]\000\000\000\000\020]\000\000\000\000\000\000\000\000\000\000\020]\020]\020]\000\000\000\000\000\000\000\000\000\000\000\000\020]\000\000\020]\020]\000\000\000\000\000\000\000\000\000\000\020]\000\000\000\000\020]\000\000\000\000\000\000\000\000\000\000\020]\000\000\000\000\000\000\020]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020]\000\000\020]\020]\000\000\020]\020]\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\020]\000\000\020]\020]\020e\000\000\020]\000\000\020e\000\000\000\000\020]\020e\000\000\020]\000\000\000\000\020]\000\000\020]\020]\000\000\000\000\020e\020e\020e\000\000\020e\020e\020e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020e\000\000\000\000\000\000\000\000\000\000\000\000\020e\020e\004\138\000\000\000\000\020e\000\000\000\000\000\000\000\000\000\000\020e\000\000\000\000\020e\000\000\000\000\000\000\000\000\000\000\020e\020e\020e\000\000\000\000\000\000\000\000\000\000\000\000\020e\000\000\020e\020e\000\000\000\000\000\000\000\000\000\000\020e\000\000\000\000\020e\000\000\000\000\000\000\000\000\000\000\020e\000\000\000\000\000\000\020e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020e\000\000\020e\020e\000\000\020e\020e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020e\000\000\020e\000\000\020e\020e\020m\000\000\020e\000\000\020m\000\000\000\000\020e\020m\000\000\020e\000\000\000\000\020e\000\000\020e\020e\000\000\000\000\020m\020m\020m\000\000\020m\020m\020m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020m\000\000\000\000\000\000\000\000\000\000\000\000\020m\020m\005v\000\000\000\000\020m\000\000\000\000\000\000\000\000\000\000\020m\000\000\000\000\020m\000\000\000\000\000\000\000\000\000\000\020m\020m\020m\000\000\000\000\000\000\000\000\000\000\000\000\020m\000\000\020m\020m\000\000\000\000\000\000\000\000\000\000\020m\000\000\000\000\020m\000\000\000\000\000\000\000\000\000\000\020m\000\000\000\000\000\000\020m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020m\000\000\020m\020m\000\000\020m\020m\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020m\000\000\020m\000\000\020m\020m\0205\000\000\020m\000\000\0205\000\000\000\000\020m\0205\000\000\020m\000\000\000\000\020m\000\000\020m\020m\000\000\000\000\0205\0205\0205\000\000\0205\0205\0205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0205\000\000\000\000\000\000\000\000\000\000\000\000\0205\0205\004\138\000\000\000\000\0205\000\000\000\000\000\000\000\000\000\000\0205\000\000\000\000\0205\000\000\000\000\000\000\000\000\000\000\0205\0205\0205\000\000\000\000\000\000\000\000\000\000\000\000\0205\000\000\0205\0205\000\000\000\000\000\000\000\000\000\000\0205\000\000\000\000\0205\000\000\000\000\000\000\000\000\000\000\0205\000\000\000\000\000\000\0205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0205\000\000\0205\0205\000\000\0205\0205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0205\000\000\0205\000\000\0205\0205\020=\000\000\0205\000\000\020=\000\000\000\000\0205\020=\000\000\0205\000\000\000\000\0205\000\000\0205\0205\000\000\000\000\020=\020=\020=\000\000\020=\020=\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\020=\000\000\000\000\000\000\000\000\000\000\000\000\020=\020=\005v\000\000\000\000\020=\000\000\000\000\000\000\000\000\000\000\020=\000\000\000\000\020=\000\000\000\000\000\000\000\000\000\000\020=\020=\020=\000\000\000\000\000\000\000\000\000\000\000\000\020=\000\000\020=\020=\000\000\000\000\000\000\000\000\000\000\020=\000\000\000\000\020=\000\000\000\000\000\000\000\000\000\000\020=\000\000\000\000\000\000\020=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020=\000\000\020=\020=\000\000\020=\020=\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\020=\000\000\020=\020=\020E\000\000\020=\000\000\020E\000\000\000\000\020=\020E\000\000\020=\000\000\000\000\020=\000\000\020=\020=\000\000\000\000\020E\020E\020E\000\000\020E\020E\020E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020E\000\000\000\000\000\000\000\000\000\000\000\000\020E\020E\004\138\000\000\000\000\020E\000\000\000\000\000\000\000\000\000\000\020E\000\000\000\000\020E\000\000\000\000\000\000\000\000\000\000\020E\020E\020E\000\000\000\000\000\000\000\000\000\000\000\000\020E\000\000\020E\020E\000\000\000\000\000\000\000\000\000\000\020E\000\000\000\000\020E\000\000\000\000\000\000\000\000\000\000\020E\000\000\000\000\000\000\020E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020E\000\000\020E\020E\000\000\020E\020E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020E\000\000\020E\000\000\020E\020E\020M\000\000\020E\000\000\020M\000\000\000\000\020E\020M\000\000\020E\000\000\000\000\020E\000\000\020E\020E\000\000\000\000\020M\020M\020M\000\000\020M\020M\020M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020M\000\000\000\000\000\000\000\000\000\000\000\000\020M\020M\005v\000\000\000\000\020M\000\000\000\000\000\000\000\000\000\000\020M\000\000\000\000\020M\000\000\000\000\000\000\000\000\000\000\020M\020M\020M\000\000\000\000\000\000\000\000\000\000\000\000\020M\000\000\020M\020M\000\000\000\000\000\000\000\000\000\000\020M\000\000\000\000\020M\000\000\000\000\000\000\000\000\000\000\020M\000\000\b\178\003\202\020M\000\000\003\170\000\000\rJ\000\000\000\000\b\150\020M\000\000\020M\020M\000\000\020M\020M\000\000\000\000\000\000\001\234\000\000\r\158\000\000\000\000\000\000\000\000\b\238\020M\000\000\020M\014\178\020M\020M\000\000\000\000\020M\000\000\000\000\000\000\000\000\020M\000\000\t\002\020M\000\000\014\230\020M\001\190\020M\020M\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\017\r\n.\000\000\n6\000\000\015B\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\149\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\006\n\n\000\000\000\000\000\000\015R\000\000\000\000\000\000\000\000\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\r\000\000\000\000\000\000\017\r\017\r\t\233\n\150\000\000\000\000\t\233\017\r\000\000\007\214\t\233\000\000\000\000\017\r\007\149\000\000\000\000\000\000\t\233\000\000\000\000\t\233\t\233\t\233\000\000\t\233\t\233\t\233\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\233\000\000\000\000\000\000\000\000\000\000\000\000\t\233\t\233\t\233\000\000\000\000\000\000\000\000\000\000\000\000\002\222\000\000\t\233\000\000\000\000\t\233\000\000\000\000\000\000\000\000\000\000\t\233\t\233\t\233\000\000\000\000\000\000\000\000\000\000\000\000\t\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\233\t\233\000\000\t\233\000\000\000\000\000\000\000\000\000\000\t\233\000\000\000\000\000\000\000\000\000\000\001\202\t\253\t\253\000\000\000\000\t\253\t\233\t\253\t\233\t\233\t\253\t\233\t\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\253\t\253\000\000\t\233\000\000\t\233\000\000\t\253\t\233\000\000\000\000\t\233\000\000\001\206\000\000\000\000\t\233\000\000\000\000\000\000\000\000\000\000\000\000\t\253\t\233\t\233\t\253\001\210\t\253\000\000\000\000\000\000\t\253\000\000\t\253\t\253\t\253\t\253\t\253\000\000\000\000\000\000\t\253\000\000\t\253\t\253\t\253\000\000\000\000\t\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\253\t\253\t\253\000\000\t\253\t\253\t\253\000\000\001\202\n\001\n\001\000\000\000\000\n\001\000\000\n\001\t\253\t\253\n\001\000\000\t\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\001\n\001\000\000\000\000\000\000\000\000\000\000\n\001\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\t\253\000\000\000\000\000\000\000\000\000\000\t\253\n\001\000\000\000\000\n\001\001\210\n\001\000\000\000\000\000\000\n\001\000\000\n\001\n\001\n\001\n\001\n\001\000\000\000\000\000\000\n\001\000\000\n\001\n\001\n\001\000\000\000\000\n\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\001\n\001\n\001\000\000\n\001\n\001\n\001\000\000\001\202\t\249\t\249\000\000\000\000\t\249\000\000\t\249\n\001\n\001\t\249\000\000\n\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\249\t\249\000\000\000\000\000\000\000\000\000\000\t\249\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\n\001\000\000\000\000\000\000\000\000\000\000\n\001\t\249\000\000\000\000\t\249\001\210\t\249\000\000\000\000\000\000\t\249\000\000\t\249\t\249\t\249\t\249\t\249\000\000\000\000\000\000\t\249\000\000\t\249\t\249\t\249\000\000\000\000\t\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\249\t\249\t\249\000\000\t\249\t\249\t\249\000\000\007\209\007\209\007\209\000\000\000\000\007\209\000\000\007\209\t\249\t\249\007\209\000\000\t\249\000\000\000\000\000\000\000\000\007\209\000\000\000\000\000\000\007\209\000\000\000\000\000\000\000\000\000\000\000\000\007\209,\014\000\000\000\000\000\000,&\007\209\000\000\000\000\t\249\000\000\000\000\000\000\000\000\000\000\t\249\007\209\000\000\000\000\007\209\007\209\007\209\000\000\000\000\000\000\000\000\000\000\007\209\000\000\000\000\007\209\007\209\000\000\000\000\000\242\007\209\000\000\007\209\007\209\007\209\000\000\000\000\007\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\209\007\209\007\209\000\000\007\209\007\209\007\209\011\137\000\000\b\178\003\202\011\137\000\000\003\170\000\000\rJ\007\209\007\209\b\150\000\000\000\000\000\000\011\137\000\000\000\000\000\000\011\137\000\000\011\137\001\234\000\000\r\158\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\014\178\011\137\000\000\000\000\000\000\007\209\000\000\000\000\011\137\000\000\005)\007\209\t\002\000\000\000\000\014\230\000\000\001\190\000\000\000\000\000\000\000\000\011\137\003\186\000\000\000\000\n&\n*\011\137\011\137\000\000\n.\000\000\n6\000\000\015B\000\000\011\137\t\238\t)\000\000\000\000\000\000\t)\000\000\000\000\011\137\t)\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\t)\000\000\t)\000\000\t)\000\000\t)\n\006\n\n\011\137\000\000\011\137\005)\000\000\011\137\011\137\000\000\000\000\000\000\t)\000\000\000\000\000\000\016\146\000\000\000\000\t)\000\000\t)\000\000\000\000\005)\000\000\t)\005)\011\137\n\150\t)\000\000\000\000\t)\000\000\007\214\002\218\005)\000\000\t)\t)\t)\000\000\000\000\000\000\000\000\000\000\000\000\t)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t)\t)\000\000\t)\000\000\000\000\000\000\000\000\000\000\t)\000\000\b\178\003\202\000\000\000\000\003\170\000\000\rJ\000\000\000\000\b\150\t)\000\000\t)\t)\000\000\t)\t)\000\000\000\000\000\000\001\234\000\000\r\158\000\000\016\146\000\000\000\000\b\238\000\000\000\000\000\000\014\178\t)\000\000\000\000\t)\t)\000\000\000\000\000\000\000\000\000\000\000\000\t\002\t)\t)\014\230\000\000\001\190\t)\000\000\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\000\000\n.\000\000\n6\000\000\015B\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\006\n\n\000\000\b\178\003\202\015R\000\000\003\170\000\000\rJ\000\000\000\000\b\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\024\170\r\158\000\000\024\202\000\000\n\150\b\238\000\000\000\000\000\000\014\178\007\214\000\000\004v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\002\000\000\000\000\014\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\000\000\n.\000\000\n6\000\000\015B\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\006\n\n\000\000\000\000\000\000\015R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\015\218\000\000\000\000\000\000\011\137\001\202\001\226\001\230\011\137\000\000\000\000\026\246\000\000\000\000\027\022\000\000\n\150\000\000\000\000\011\137\000\000\000\000\007\214\011\137\004v\011\137\001\234\002&\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\011\137\001\206\000\000\000\000\000\000\000\000\000\000\011\137\000\000\016f\000\000\000\000\000\000\000\000\002.\001\210\002V\000\000\000\000\000\000\002\178\011\137\003\186\003\234\003\246\000\000\000\000\011\137\011\137\000\242\004\002\000\000\000\000\000\000\000\000\000\000\011\137\000\000\005\133\000\000\000\000\000\000\005\133\000\000\000\000\011\137\005\133\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\022\000\000\000\000\005\133\000\000\005\133\000\000\005\133\000\000\005\133\000\000\000\000\011\137\000\000\011\137\000\000\000\000\011\137\011\137\000\000\000\000\000\000\005\133\000\000\000\000\000\000\000\000\000\000\000\000\005\133\000\000\005\133\000\000\000\000\000\000\000\000\b\149\000\000\011\137\000\000\005\133\000\000\000\000\005\133\000\000\007\214\002\218\000\000\000\000\005\133\005\133\005\133\000\000\000\000\000\000\002\137\002\137\000\000\005\133\002\137\000\000\002\137\000\000\000\000\002\137\000\000\000\000\005\133\000\000\000\000\005\133\000\000\000\000\000\000\000\000\002\137\005\133\000\000\000\000\000\000\000\000\000\000\002\137\000\n\000\000\000\000\000\000\000\000\005\133\000\000\005\133\005\133\000\000\005\133\005\133\000\000\000\000\000\000\002\137\000\000\000\000\002\137\b\149\002\137\000\000\000\000\000\000\000\000\000\000\002\137\005\133\005\133\002\137\002\137\005\133\000\000\002\137\002\137\000\000\002\137\002\137\002\137\005\133\005\133\002\137\000\000\000\000\005\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\137\002\137\002\137\000\000\002\137\002\137\002\137\000\000\001\202\b\178\003\202\000\000\000\000\003\170\000\000\b\182\002\137\002\137\b\150\000\000\002\137\000\000\000\000\000\000\000\000\000\000\015\017\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\000\000\000\000\001\206\000\000\000\000\002\137\000\000\000\000\000\000\002\137\000\000\002\137\t\002\000\000\000\000\t\022\001\210\001\190\000\000\000\000\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\000\000\n.\000\000\n6\nZ\n~\000\000\000\000\t\238\005\133\000\000\000\000\000\000\005\133\000\000\000\000\000\000\005\133\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\005\133\000\000\005\133\000\000\005\133\000\000\005\133\n\006\n\n\000\000\000\000\011\n\000\000\000\000\001\226\001\230\000\000\000\000\000\000\005\133\000\000\000\000\000\000\000\000\000\000\000\000\005\133\000\000\005\133\000\000\015\017\000\000\000\000\b\153\001\234\002&\n\150\005\133\015\017\000\000\005\133\000\000\007\214\000\000\000\000\000\000\005\133\005\133\005\133\000\000\000\000\000\000\000\000\000\000\000\000\005\133\000\000\000\000\000\000\000\000\002\182\000\0003Z\000\000\005\133\000\000\002\178\005\133\003\186\003\234\003\246\000\000\000\000\005\133\000\000\000\000\004\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\133\000\000\005\133\005\133\000\000\005\133\005\133\000\000\t\029\000\000\000\000\000\000\t\029\004\006\b\153\004\022\t\029\000\000\000\0003\134\000\000\000\000\005\133\005\133\000\000\000\000\005\133\t\029\000\000\t\029\000\000\t\029\000\000\t\029\005\133\005\133\000\000\000\000\000\000\005\1333r\000\000\000\000\000\000\000\000\000\000\t\029\000\000\000\000\001\226\001\230\000\000\000\000\t\029\000\000\t\029\000\000\000\000\000\000\000\000\017f\000\000\000\000\000\000\t\029\000\000\000\000\t\029\000\000\001\234\002&\001\254\000\000\t\029\t\029\000\242\000\000\000\000\000\000\000\000\002\n\000\000\t\029\000\000)r\000\000\000\000\000\000\000\000\000\000\000\000\t\029\t\029\000\000\t\029\002\182\000\000,\186\000\000)\234\t\029\002\178\000\000\003\186\003\234\003\246\000\000\000\000\000\000\000\000 &,\202\t\029\000\000\t\029\t\029\000\000\t\029\t\029\030&\000\000\000\000\000\000\000\000\019\214\000\000\000\000\000\000\027\210\014\221\000\000\014\221\014\221\004\006\t\029\004\022\000\000\t\029\t\029\020~\021.\021Z\020\170\000\000\021\134\000\000\t\029\t\029\000\000\000\000\000\000\t\029\000\000\000\000\020\214\000\000\021\178\021\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\002\021\002\0226\022b\023\018\000\000\000\000\000\000\000\000\000\000 b\b\178\003\202\000\000\000\000\003\170\000\000\b\182\023>\000\000\b\150\000\000\000\000 R\000\000\000\000\011\006\000\000\n2\023j\000\000\001\234\000\000\000\000\030*\000\000\000\000\000\000\b\238\000\000\000\000\000\000\000\000\000\000 \150\000\000\024\026\014\221\000\000\024f\022\142\000\000\000\000\000\000\t\002\014\221\023\150\t\022 \202\001\190\022\186\022\230\000\000\000\000\000\000\003\186\023\194\023\238\n&\n*\000\000\000\000\000\000\n.\000\000\n6\nZ\n~\000\000\000\000\t\238\000\000\000\000\000\000\001\165\000\000\000\000\000\000\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\019\214\000\000\000\000\000\000\011]#f\000\000\001\165\011]\n\006\n\n\000\000\000\000\011\n\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\000\000\000\000\000\000\001\177\000\000\000\000\000\000\000\000\020\214\000\000\021\178\021\222\000\000\012.\000\000\000\000\n\150\019\214\012\146\000\000\022\n\000\000\007\214\000\000\001\177\000\000\000\000\000\000\000\000\000\242\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\000\000\020\002\021\002\0226\022b\023\018\000\000\000\000\020\214\000\000\021\178\021\222\000\000\000\000\000\000\000\000\000\000\011]&\018\023>\022\n\000\000\000\000\000\000\001\165\000\000\000\000\000\000\000\000\000\242\023j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\002\021\002\0226\022b\023\018\000\000\000\000\024\026\001\165#j\024f\022\142#v\000\000\000\000\000\000\001\165\023\150\023>\000\000\000\000\022\186\022\230\001\177\000\000\000\000\001\165\023\194\023\238\023j\000\000\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\153\000\000\000\000\024\026\001\177\000\000\024f\022\142\000\000\000\000\000\000\000\000\001\177\023\150\019\214\000\000\000\000\022\186\022\230\000\000\000\000\001\153\001\177\023\194\023\238\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\000\000\000\000\000\000\001\225\000\000\000\000\000\000\000\000\020\214\000\000\021\178\021\222\000\000\000\000\000\000\000\000\000\000\019\214\000\000\000\000\022\n\000\000\000\000\000\000\001\225\000\000\000\000\000\000\000\000\000\242\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\000\000\020\002\021\002\0226\022b\023\018\000\000\000\000\020\214\000\000\021\178\021\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023>\022\n\000\000\000\000\000\000\001\153\000\000\000\000\000\000\000\000\000\242\023j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\002\021\002\0226\022b\023\018\000\000\000\000\024\026\001\153\000\000\024f\022\142\000\000\000\000\000\000\000\000\001\153\023\150\023>\000\000\000\000\022\186\022\230\001\225\000\000\000\000\001\153\023\194\023\238\023j\000\000\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\213\000\000\000\000\024\026\001\225\000\000\024f\022\142\000\000\000\000\000\000\000\000\001\225\023\150\019\214\000\000\000\000\022\186\022\230\000\000\000\000\001\213\001\225\023\194\023\238\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\000\000\000\000\000\000\001\201\000\000\000\000\000\000\000\000\020\214\000\000\021\178\021\222\000\000\000\000\000\000\000\000\000\000\019\214\000\000\000\000\022\n\000\000\000\000\000\000\001\201\000\000\000\000\000\000\000\000\000\242\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\000\000\020\002\021\002\0226\022b\023\018\000\000\000\000\020\214\000\000\021\178\021\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\023>\022\n\000\000\000\000\000\000\001\213\000\000\000\000\000\000\000\000\000\242\023j\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\002\021\002\0226\022b\023\018\000\000\000\000\024\026\001\213\000\000\024f\022\142\000\000\000\000\000\000\000\000\001\213\023\150\023>\000\000\000\000\022\186\022\230\001\201\000\000\000\000\001\213\023\194\023\238\023j\000\000\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\189\000\000\000\000\024\026\001\201\000\000\024f\022\142\000\000\000\000\000\000\000\000\001\201\023\150\019\214\000\000\000\000\022\186\022\230\000\000\000\000\001\189\001\201\023\194\023\238\000\000\000\000\000\000\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\214\000\000\021\178\021\222\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\n\000\000\000\000\000\000\000\000\001\202\002\018\001\230\0022\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\002\021\002\0226\022b\023\018\000\000\001\2345\142\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\023>\001\206\000\000\000\000\000\000\001\189\000\000\002\194\000\000\000\000\000\000\023j\000\000\000\000\002\014\001\210\002V\000\000\000\000\000\000\002\178\000\000\003\186\003\234\003\246\000\000\000\000\000\000\024\026\001\189\004\002\024f\022\142\000\000\012\225\012\225\012\225\001\189\023\150\012\225\000\000\012\225\022\186\022\230\012\225\000\000\000\000\001\189\023\194\023\238\000\000%*\004\006\000\000\004\022\012\225\000\000\000\000\000\000\000\000\000\000\000\000\012\225\000\000\000\000\000\000\000\000\000\000\012\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\225\000\000\000\000\012\225\012\225\012\225\000\000\000\000\000\000\000\000\000\000\012\225\000\000\000\000\012\225\012\225\000\000\000\000\000\000\012\225\000\000\012\225\012\225\012\225\000\000\000\000\012\225\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\225\012\225\012\225\000\000\012\225\012\225\012\225\000\250\001\202\b\178\003\202\tZ\000\000\003\170\000\000\r\178\012\225\012\225\b\150\000\000\000\000\000\000\b\029\000\000\000\000\000\000\000\000\000\000'\238\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\000\000'\242\001\206\000\000\000\000\012\225\000\000\000\000(\026\000\000\000\000\012\225\t\002\000\000\000\000\024\154\001\210\001\190\000\000-\174\000\000\000\000(~\003\186\000\000\000\000\n&\n*(\150\000\000\000\000\n.\000\000\n6\nZ\014v\000\000(\158\t\238\000\000\000\000\000\000\001\137\000\000\000\000\000\000(\174\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\019\214\000\000\000\000\000\000\000\000\000\000\000\000\001\137\000\000\n\006\n\n(\182\000\000(\238\000\000\020~\021.\021Z\020\170\000\000\021\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\214\000\000\021\178\021\222\000\000\000\000\000\000)6\n\150\000\000\000\000\000\000\022\n\000\000\007\214\000\000\000\000\000\000\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\002\021\002\0226\022b\023\018\000\000\000\000\000\000\000\000\000\000\000\000\b\178\003\202\000\000\000\000\003\170\000\000\rJ\023>\000\000\b\150\000\000\000\000\001\137\000\000\000\000\000\000\000\000\000\000\023j\000\000\001\234\000\000\r\158\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\014\178\000\000\000\000\000\000\024\026\001\137\000\000\024f\022\142\000\000,V\000\000\t\002\001\137\023\150\015F\000\000\001\190\022\186\022\230\000\000\000\000\000\000\003\186\023\194\023\238\n&\n*\000\000\000\000\000\000\n.\000\000\n6\000\000\015B\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\b\178\003\202\000\000\000\000\003\170\000\000\rJ\n\006\n\n\b\150\000\000\000\000*\194\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r\158\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\014\178\000\000\000\000-b\000\000\n\150\000\000\000\000\000\000\000\000\000\000\007\214\t\002\000\000\000\000\014\230\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\000\000\n.\000\000\n6\000\000\015B\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\t\242\t\246\015\218\nz\n\130\n\142\011\137\000\000\b\178\003\202\011\137\000\000\003\170\000\000\rJ\n\006\n\n\b\150\000\000\000\000\015R\011\137\000\000\000\000\000\000\011\137\000\000\011\137\001\234\000\000\r\158\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\014\178\011\137\000\000+^\000\000\n\150\000\000\000\000\011\137\000\000\016f\007\214\t\002\000\000\000\000\014\230\000\000\001\190\000\000\000\000\000\000\000\000\011\137\003\186\000\000\000\000\n&\n*\011\137\011\137\000\242\n.\000\000\n6\000\000\015B\000\000\011\137\t\238\000\000\000\000\011\137\000\000\000\000\000\000\011\137\011\137\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\011\137\000\000\011\137\000\000\011\137\000\000\011\137\000\000\000\000\n\006\n\n\011\137\000\000\011\137\015R\000\000\011\137\011\137\000\000\011\137\000\000\000\000\000\000\000\000\000\000\000\000\011\137\011\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000+\190\011\137\n\150\000\000\011\137\000\000\000\000\000\000\007\214\002\218\011\137\011\137\000\242\000\000\011\137\000\000\000\000\000\000\000\000\011\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\137\000\000\000\000\011\137\000\000\000\000\000\000\000\000\000\000\011\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\n\011\137\000\000\011\137\011\137\003\182\011\137\011\137\000\000\000\000\000\000\000\000\000\000\000\000\001\014\001\018\001\022\001\026\001\030\011\137\001\"\011\137\000\000\000\000\011\137\000\000\000\000\011\137\000\000\000\000\001&\000\000\001*\001.\000\000\002\218\000\000\000\000\000\000\0012\011\137\011\137\0016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\225\000\000\000\000\020\253\t\225\000\000\000\000\020\253\t\225\000\000\000\000\001:\001>\001B\001F\001J\000\000\000\000\020\253\t\225\000\000\t\225\001N\t\225\020\253\t\225\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\253\t\225\000\000\001V\000\000\000\000\000\000\020\253\t\225\t\225\001Z\000\000\000\000\000\000\000\000\000\000\000\000\002~\020\253\t\225\000\000\020\253\t\225\001\1505\226\000\000\000\000\020\253\t\225\t\225\001\154\000\000\001\158\000\000\001\162\001\166\020\253\t\225\001\170\000\000\001\174\001\178\000\000\000\000\000\000\020\253\t\225\000\000\020\253\t\225\000\000\000\000\000\000\000\000\020\253\t\225\b\178\003\202\000\000\000\000\003\170\000\000\b\210\000\000\000\000\b\150\020\253\t\225\020\253\t\225\t\225\020\253\t\225\t\225\000\000\000\000\001\234\000\000\000\000\000\0006\198\000\000\000\000\b\238\000\000\t\225\000\000\t\225\000\000\000\000\t\225\000\000\020\253\t\225\000\000\000\000\000\000\000\000\000\000\t\002\000\000\000\000\t\022\000\000\001\190\000\000\t\225\t\225\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\000\000\n.\000\000\n6\nZ/\014\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\003\198\003\202\000\000\000\000\003\170\000\000\tY\n\006\n\n\b\150\tY\011\n\000\000\000\000\tY\n\129\000\000\000\000\000\000\000\000\001\234\000\000/\022\000\000\b\158\tY\000\000\000\000\000\000\tY\000\000\tY\000\000\000\000\000\000\b\162\n\150\t\138\000\000\000\000\000\000\000\000\007\214\000\000\tY\000\000\t\182\000\000\001\190\000\000\000\000\tY\000\000\tY\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\tY\000\000\000\000\000\000\t\238\000\000\tY\tY\tY\000\000\000\000\000\000\000\000\000\000\000\000\tY\t\242\t\246\000\000\t\250\n\002\b\178\003\202\000\000\tY\003\170\000\000\b\182\000\000\000\000\b\150\n\006\n\n\000\000\000\000\000\000\000\000\000\000\012B\000\000\000\000\001\234\n\014\000\000\n\018\tY\000\000\tY\b\238\000\000\tY\tY\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\150\016\246\000\000\000\000\t\002\017\014\007\214\t\022\000\000\001\190\000\000\tY\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\004v\000\000\000\000\n.\000\000\n6\nZ\n~\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\b\178\003\202\000\000\000\000\003\170\000\000\n\182\n\006\n\n\b\150\000\000\011\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\238\000\000\000\000\012\158\000\000\000\000\000\000\000\000\000\000\n\150\000\000\000\000\000\000\012\170\000\000\007\214\t\002\000\000\000\000\t\022\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\000\000\n.\000\000\n6\nZ\n\210\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\b\178\003\202\000\000\000\000\003\170\000\000\011:\n\006\n\n\b\150\000\000\011\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\012^\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\150\000\000\000\000\000\000\000\000\000\000\007\214\t\002\000\000\000\000\t\022\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\000\000\n.\000\000\n6\nZ\011V\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\b\178\003\202\000\000\000\000\003\170\000\000\011\226\n\006\n\n\b\150\000\000\011\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\011j\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\150\000\000\000\000\000\000\000\000\000\000\007\214\t\002\000\000\000\000\t\022\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\000\000\n.\000\000\n6\nZ\011\254\000\000\014\001\t\238\000\000\000\000\014\001\000\000\000\000\000\000\014\001\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\014\001\000\000\014\001\000\000\014\001\000\000\014\001\000\000\000\000\n\006\n\n\000\000\000\000\011\n\000\000\000\000\000\000\000\000\000\000\014\001\000\000\000\000\000\000\000\000\012\006\000\000\014\001\000\000\014\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\001\n\150\000\000\014\001\000\000\000\000\000\000\007\214\000\000\014\001\014\001\014\001\000\000\000\000\000\000\000\000\000\000\000\000\014\001\000\000\000\000\000\000\000\000\000\000\021\241\000\000\000\000\014\001\021\241\000\000\014\001\000\000\021\241\000\000\000\000\000\000\014\001\000\000\000\000\000\000\000\000\000\000\000\000\021\241\000\000\021\241\000\000\021\241\014\001\021\241\014\001\014\001\000\000\014\001\014\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\241\000\000\000\000\000\000\014\001\000\000\000\000\021\241\014\001\021\241\000\000\000\000\014\001\000\000\004\"\000\000\000\000\000\000\021\241\000\000\014\001\021\241\000\000\005\254\000\000\014\001\000\000\021\241\021\241\021\241\000\000\000\000\000\000\000\000\000\000\000\000\021\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\241\000\000\000\000\021\241\000\000\000\000\000\000\000\000\000\000\021\241\000\000\021\245\000\000\000\000\000\000\021\245\000\000\000\000\000\000\021\245\000\000\021\241\000\000\021\241\021\241\000\000\021\241\021\241\000\000\000\000\021\245\000\000\021\245\000\000\021\245\004.\021\245\000\000\000\000\000\000\000\000\000\000\000\000\021\241\000\000\000\000\000\000\021\241\000\000\021\245\000\000\000\000\001\226\001\230\000\000\021\241\021\245\000\000\021\245\000\000\021\241\000\000\000\000\004\"\000\000\000\000\000\000\021\245\000\000\000\000\021\245\000\000\001\234\002&\000\000\000\000\021\245\021\245\021\245\000\000\000\000\000\000\000\000\000\000\000\000\021\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\245\000\000\000\000\021\245\002\182\000\0003Z\000\000\000\000\021\245\002\178\t\141\003\186\003\234\003\246\t\141\000\000\000\000\000\000\t\141\004\002\021\245\000\000\021\245\021\245\000\000\021\245\021\245\000\000\000\000\t\141\000\000\t\141\000\000\t\141\004.\t\141\000\000\000\000\000\000\000\000\000\000\004\006\021\245\004\022\000\000\000\000\021\245\b]\t\141\000\000\000\000\000\000\000\000\000\000\021\245\t\141\000\000\t\141\000\000\021\245\000\000\000\000\004\"\000\000\000\000\000\000\t\141\000\0003r\t\141\000\000\000\000\000\000\000\000\000\000\t\141\t\141\t\141\000\000\000\000\000\000\000\000\000\000\000\000\t\141\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\141\000\000\000\000\t\141\000\000\000\000\000\000\000\000\000\000\t\141\000\000\000\000\000\000\003\198\003\202\000\000\000\000\003\170\000\000\000\000\000\000\t\141\b\150\t\141\t\141\000\000\t\141\t\141\n\169\000\000\000\000\000\000\000\000\001\234\000\000\004.\000\000\b\158\000\000\000\000\000\000\000\000\000\000\t\141\000\000\000\000\000\000\t\141\b\162\000\000\t\138\000\000\000\000\000\000\000\000\t\141\000\000\000\000\000\000\t\182\t\141\001\190\000\000\000\000\000\000\000\000\000\000\003\186\000\000\000\000\t\190\t\198\000\000\000\000\000\000\t\206\t\214\t\230\000\000\000\000\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\242\t\246\011\137\t\250\n\002\001\230\011\137\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\137\n\006\n\n\011\137\000\000\000\000\001\230\011\137\000\000\011\137\000\000\000\000\n\014\000\000\n\018\011\137\000\000\000\000\011\137\000\000\000\000\000\000\011\137\000\000\011\137\000\000\000\000\000\000\000\000\011\137\n\150\016\246\000\000\000\000\000\000\017\014\007\214\011\137\004\018\000\000\011\137\000\000\000\000\011\137\011\137\000\000\011\137\000\000\000\000\011\137\011\137\011\137\000\000\004\018\000\000\011\137\000\000\000\000\011\137\000\000\000\000\000\000\000\000\000\000\011\137\011\137\011\137\011\137\011\137\000\000\011\137\000\000\000\000\011\137\000\000\000\000\005\166\000\000\000\000\000\000\000\000\000\000\011\137\011\137\000\000\011\137\000\000\000\000\011\137\000\000\011\137\005\166\000\000\011\137\011\137\000\000\000\000\005i\000\000\000\000\001\230\005i\000\000\011\137\000\000\011\137\011\137\000\000\011\137\011\137\000\000\000\000\005i\000\000\011\137\000\000\005i\000\000\005i\011\137\000\000\011\137\002\218\000\000\000\000\000\000\000\000\011\137\000\000\011\137\000\000\005i\000\000\000\000\011\137\000\000\000\000\002\218\005i\000\000\011\137\000\000\011\137\000\000\000\000\000\000\000\000\004\018\000\000\005i\000\000\000\000\005i\000\000\000\000\000\000\000\000\000\000\005i\005i\005i\000\000\001\226\001\230\000\000\000\000\000\000\005i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005i\005i\000\000\005i\000\000\000\000\001\234\002&\000\000\005\166\000\000\000\000\000\000\000\000\000\000\000\000\005e\000\000\000\000\001\230\005e\005i\000\000\005i\000\000\000\000\005i\005i\011\137\000\000\000\000\005e\002\182\000\0003Z\005e\000\000\005e\002\178\005i\003\186\003\234\003\246\000\000\000\000\000\000\000\000\005i\004\002\000\000\005e\000\000\005i\000\000\000\000\002\218\000\000\005e\000\000\011\137\005i\000\000\000\000\000\000\000\000\000\000\004\018\000\000\005e\000\000\004\006\005e\004\022\000\000\000\000\000\000\ba\005e\005e\005e\000\000\000\000\000\000\000\000\000\000\000\000\005e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005e\005e3r\005e\000\000\000\000\000\000\000\000\000\000\005\166\b\178\003\202\000\000\000\000\003\170\000\000/&\000\000\000\000\b\150\000\000\005e\000\000\005e\000\000\000\000\005e\005e\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\238\000\000\005e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005e\000\000\000\000\000\000\000\000\005e\t\002\000\000\002\218\t\022\000\000\001\190\000\000\005e\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\000\000\n.\000\000\n6\nZ/B\000\000\005\193\t\238\000\000\000\000\005\193\000\000\000\000\000\000\005\193\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\005\193\000\000\005\193\000\000\005\193\000\000\005\193\000\000\000\000\n\006\n\n\000\000\000\000\011\n\000\000\000\000\000\000\000\000\000\000\005\193\000\000\000\000\000\000\000\000/J\000\000\005\193\005\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\n\005\193\n\150\000\000\005\193\000\000\000\000\000\000\007\214\000\000\005\193\005\193\000\242\000\000\001\014\001\018\001\022\001\026\001\030\005\193\001\"\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\193\000\000\001&\005\193\001*\001.\000\000\000\000\000\000\005\193\000\000\0012\000\000\000\000\0016\000\000\000\000\000\000\000\000\000\000\000\000\005\193\000\000\005\193\005\193\000\000\005\193\005\193\000\000\000\000\000\000\000\000\000\000\000\000\001:\001>\001B\001F\001J\005\193\000\000\005\193\000\000\000\000\005\193\001N\000\000\005\193\000\000\000\000\000\000\000\000\001R\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\193\005\193\000\000\001V\000\000\000\000\000\000\000\000\005\201\000\000\001Z\000\000\005\201\000\000\000\000\000\000\005\201\000\000\000\000\000\000\000\000\000\000\000\000\001\1505\254\000\000\000\000\005\201\000\000\005\201\001\154\005\201\001\158\005\201\001\162\001\166\000\000\000\000\001\170\000\000\001\174\001\178\000\000\000\000\000\000\000\000\005\201\000\000\000\000\000\000\000\000\000\000\000\000\005\201\005\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\201\000\000\000\000\005\201\000\000\000\000\000\000\000\000\000\000\005\201\005\201\000\000\000\000\000\000\000\000\b\178\003\202\000\000\005\201\003\170\000\000\r\206\000\000\000\000\b\150\000\000\000\000\005\201\000\000\000\000\005\201\000\000\000\000\000\000\000\000\001\234\005\201\000\000\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\000\000\000\000\005\201\000\000\005\201\005\201\000\000\005\201\005\201\000\000\000\000\000\000\t\002\000\000\000\000\t\022\000\000\001\190\000\000\000\000\005\201\000\000\005\201\003\186\000\000\005\201\n&\n*\005\201\000\000\000\000\n.\000\000\n6\nZ\r\234\000\000\000\000\t\238\000\000\000\000\005\201\002>\000\000\000\000\000\000\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\b\178\003\202\000\000\000\000\003\170\000\000\014\022\n\006\n\n\b\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\r\242\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\150\000\000\000\000\000\000\000\000\000\000\007\214\t\002\000\000\000\000\t\022\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\000\000\n.\000\000\n6\nZ\0142\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\b\178\003\202\000\000\000\000\003\170\000\000\014J\n\006\n\n\b\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\014:\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\150\000\000\000\000\000\000\000\000\000\000\007\214\t\002\000\000\000\000\t\022\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\000\000\n.\000\000\n6\nZ\014f\000\000\000\000\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\b\178\003\202\000\000\000\000\003\170\000\000\014\130\n\006\n\n\b\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\014n\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\150\000\000\000\000\000\000\000\000\000\000\007\214\t\002\000\000\000\000\t\022\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\000\000\n.\000\000\n6\nZ\014\158\000\000\tY\t\238\000\000\000\000\tY\000\000\000\000\000\000\tY\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\tY\000\000\tY\000\000\tY\000\000\tY\000\000\000\000\n\006\n\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tY\000\000\000\000\000\000\000\000\014\166\000\000\tY\000\000\tY\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tY\n\150\000\000\tY\000\000\000\000\000\000\007\214\000\000\tY\tY\tY\000\000\000\000\000\000\000\000\000\000\000\000\tY\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tY\000\000\000\000\tY\000\000\000\000\000\000\000\000\000\000\tY\000\000\000\000\021\237\000\000\000\000\000\000\021\237\000\000\000\000\000\000\021\237\tY\000\000\tY\tY\000\000\tY\tY\000\000\000\000\000\000\021\237\000\000\021\237\000\000\021\237\000\000\021\237\000\000\000\000\000\000\000\000\000\000\tY\000\000\000\000\000\000\tY\000\000\000\000\021\237\000\000\000\000\000\000\000\000\tY\004v\021\237\000\000\021\237\tY\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\237\000\000\000\000\021\237\000\000\000\000\000\000\000\000\000\000\021\237\021\237\021\237\000\000\000\000\000\000\000\000\000\000\000\000\021\237\000\000\000\000\000\000\000\000\000\000\021\233\000\000\000\000\021\237\021\233\000\000\021\237\000\000\021\233\000\000\000\000\000\000\021\237\000\000\000\000\000\000\000\000\000\000\000\000\021\233\000\000\021\233\000\000\021\233\021\237\021\233\021\237\021\237\000\000\021\237\021\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\233\000\000\000\000\000\000\000\000\000\000\000\000\021\233\021\237\021\233\000\000\000\000\021\237\000\000\000\000\000\000\000\000\000\000\021\233\000\000\021\237\021\233\000\000\005\254\000\000\021\237\000\000\021\233\021\233\021\233\000\000\000\000\000\000\000\000\000\000\000\000\021\233\000\000\000\000\000\000\000\000\000\000\014\005\000\000\000\000\021\233\014\005\000\000\021\233\000\000\014\005\000\000\000\000\000\000\021\233\000\000\000\000\000\000\000\000\000\000\000\000\014\005\000\000\014\005\000\000\014\005\021\233\014\005\021\233\021\233\000\000\021\233\021\233\000\000\000\000\000\000\000\000\000\000\000\000\000\000\014\005\000\000\000\000\000\000\016\006\000\000\000\000\014\005\021\233\014\005\000\000\000\000\021\233\000\000\000\000\000\000\000\000\000\000\014\005\000\000\021\233\014\005\000\000\000\000\000\000\021\233\000\000\014\005\014\005\000\242\000\000\000\000\000\000\000\000\000\000\000\000\014\005\b\178\003\202\000\000\000\000\003\170\000\000\r\178\000\000\014\005\b\150\000\000\014\005\000\000\000\000\000\000\n\133\000\000\014\005\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\238\000\000\014\005\000\000\014\005\014\005\000\000\014\005\014\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\002\000\000\000\000\t\022\014\005\001\190\000\000\000\000\014\005\000\000\000\000\003\186\014\005\000\000\n&\n*\000\000\000\000\000\000\n.\014\005\n6\nZ\014v\000\000\014\005\t\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\000\000\000\b\178\003\202\000\000\000\000\003\170\000\000\026\178\n\006\n\n\b\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\234\000\000\000\000\000\000\000\000\000\000\000\000\b\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\150\000\000\000\000\000\000\000\000\000\000\007\214\t\002\000\000\000\000\t\022\000\000\001\190\000\000\000\000\000\000\000\000\000\000\003\186\000\000\000\000\n&\n*\000\000\000\000\000\000\n.\000\000\n6\nZ\026\206\000\000\000\000\t\238\000\000\000\000\000\193\000\000\000\000\000\000\000\193\000\000\000\000\000\000\nf\t\242\t\246\000\000\nz\n\130\n\142\000\193\000\000\000\193\000\000\000\193\000\000\000\193\000\000\000\000\n\006\n\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\026\214\000\000\000\193\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\n\150\000\000\000\193\000\000\000\000\000\000\007\214\000\000\000\193\000\193\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\193\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\001\005\000\000\000\193\000\000\000\193\000\000\000\000\000\193\000\193\000\000\000\000\001\005\000\000\001\005\000\000\001\005\000\000\001\005\000\000\000\000\000\193\000\000\000\000\000\000\000\000\000\000\000\000\000\193\000\193\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\193\000\000\000\193\001\005\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\001\005\001\005\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001\005\000\000\001\005\001\005\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\000\000\201\000\000\001\005\000\000\001\005\000\000\000\000\001\005\001\005\000\000\000\000\000\201\000\000\000\201\000\000\000\201\000\000\000\201\000\000\000\000\001\005\000\000\000\000\000\000\000\000\000\000\000\000\001\005\001\005\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\001\005\000\000\001\005\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\201\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\201\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\197\000\000\000\201\000\000\000\201\000\000\000\000\000\201\000\201\000\000\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\197\000\000\000\000\000\201\000\000\000\000\000\000\000\000\000\000\000\000\000\201\000\201\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\201\000\000\000\201\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\197\000\197\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\197\000\000\000\197\000\197\000\000\000\000\tm\000\000\000\000\000\197\tm\000\000\000\197\000\000\tm\000\000\000\000\000\000\000\197\000\000\000\000\000\000\000\000\000\000\000\000\tm\000\000\tm\000\000\tm\000\197\tm\000\197\000\000\000\000\000\197\000\197\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tm\000\000\000\000\000\000\000\197\000\000\000\000\tm\000\000\tm\000\000\000\197\000\197\000\000\017f\000\000\000\000\000\000\tm\000\000\000\000\tm\000\000\000\197\000\000\000\197\000\000\tm\tm\000\242\000\000\000\000\000\000\000\000\000\000\000\000\tm\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tm\002\005\000\000\tm\000\000\002\005\000\000\000\000\000\000\tm\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\002\005\tm\002\005\tm\tm\000\000\tm\tm\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\002\005\000\000\000\000\000\000\000\000\002\005\tm\000\000\000\000\000\000\tm\000\000\b\149\000\000\000\000\000\000\002\005\000\000\tm\002\005\000\000\000\000\000\000\tm\000\000\002\005\002\005\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\012\177\000\000\000\000\000\000\012\177\000\000\002\005\000\000\002\005\000\000\000\000\002\005\002\005\000\000\000\000\012\177\000\000\012\177\000\000\012\177\b\149\012\177\000\000\000\000\002\005\000\000\000\000\000\000\000\000\000\000\000\000\002\005\002\005\000\000\012\177\000\000\000\000\002\005\000\000\000\000\000\000\012\177\000\000\000\000\000\000\002\005\012\177\000\000\000\000\000\000\000\000\000\000\012\177\000\000\000\000\012\177\000\000\000\000\000\000\000\000\000\000\012\177\012\177\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012\177\000\000\012\177\012\177\000\000\000\000\012\173\000\000\000\000\012\177\012\173\000\000\012\177\000\000\000\000\000\000\000\000\000\000\012\177\000\000\000\000\012\173\000\000\012\173\000\000\012\173\000\000\012\173\000\000\000\000\012\177\000\000\012\177\012\177\000\000\012\177\012\177\000\000\000\000\000\000\012\173\000\000\000\000\000\000\000\000\000\000\000\000\012\173\012\177\000\000\000\000\000\000\012\173\000\000\000\000\000\000\012\177\000\000\012\173\000\000\000\000\012\173\000\000\000\000\012\177\000\000\000\000\012\173\012\173\000\242\000\000\000\000\000\000\000\000\000\000\000\000\012\173\000\000\012\173\012\173\000\000\000\000\t\129\000\000\000\000\012\173\t\129\000\000\012\173\000\000\t\129\000\000\000\000\000\000\012\173\000\000\000\000\001\202\001\226\001\230\000\000\t\129\000\000\t\129\000\000\t\129\012\173\t\129\012\173\012\173\000\000\012\173\012\173\000\000\000\000\000\000\000\000\000\000\001\234\002&\t\129\000\000\000\000\000\000\012\173\000\000\000\000\t\129\000\000\015\202\000\000\001\206\012\173\000\000\000\000\000\000\000\000\000\000\t\129\000\000\012\173\t\129\000\000\000\000\002b\001\210\004\018\t\129\t\129\t\129\002\178\000\000\003\186\003\234\003\246\000\000\t\129\000\000\000\000\000\000\004\002\000\000\015\218\000\000\000\000\t\129\t}\000\000\t\129\000\000\t}\000\000\000\000\000\000\t\129\000\000\000\000\000\000\000\000\000\000\000\000\t}\004\006\t}\004\022\t}\t\129\t}\t\129\t\129\000\000\t\129\t\129\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t}\000\000\000\000\000\000\000\000\000\000\000\000\t}\t\129\016f\000\000\000\000\t\129\000\000\000\000\000\000\000\000\000\000\t}\000\000\t\129\t}\000\000\000\000\000\000\t\129\000\000\t}\t}\000\242\000\000\000\000\000\000\000\000\000\000\000\000\t}\000\000\000\000\000\000\000\000\000\000\021\249\000\000\000\000\t}\021\249\000\000\t}\000\000\021\249\000\000\000\000\000\000\t}\000\000\000\000\000\000\000\000\000\000\000\000\021\249\000\000\021\249\000\000\021\249\t}\021\249\t}\t}\000\000\t}\t}\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\249\000\000\000\000\000\000\000\000\000\000\000\000\021\249\t}\021\249\000\000\000\000\t}\000\000\000\000\000\000\000\000\000\000\021\249\000\000\t}\021\249\000\000\000\000\000\000\t}\000\000\021\249\021\249\000\242\000\000\000\000\000\000\000\000\000\000\000\000\021\249\000\000\000\000\000\000\000\000\000\000\ti\000\000\000\000\021\249\ti\000\000\021\249\000\000\ti\000\000\000\000\000\000\021\249\000\000\000\000\000\000\000\000\000\000\000\000\ti\000\000\ti\000\000\ti\021\249\ti\021\249\021\249\000\000\021\249\021\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ti\000\000\000\000\000\000\000\000\000\000\000\000\ti\021\249\015\202\000\000\000\000\021\249\000\000\000\000\000\000\000\000\000\000\ti\000\000\021\249\ti\000\000\000\000\000\000\021\249\000\000\ti\ti\ti\000\000\000\000\000\000\000\000\000\000\000\000\ti\000\000\000\000\000\000\000\000\000\000\015\218\000\000\000\000\ti\te\000\000\ti\000\000\te\000\000\000\000\000\000\ti\000\000\000\000\000\000\000\000\000\000\000\000\te\000\000\te\000\000\te\ti\te\ti\ti\000\000\ti\ti\000\000\000\000\000\000\000\000\000\000\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\000\000\te\ti\016f\000\000\000\000\ti\000\000\000\000\000\000\000\000\000\000\te\000\000\ti\te\000\000\000\000\000\000\ti\000\000\te\te\000\242\000\000\000\000\000\000\000\000\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\ty\000\000\000\000\te\ty\000\000\te\000\000\ty\000\000\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\000\000\ty\000\000\ty\000\000\ty\te\ty\te\te\000\000\te\te\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ty\000\000\000\000\000\000\000\000\000\000\000\000\ty\te\015\202\000\000\000\000\te\000\000\000\000\000\000\000\000\000\000\ty\000\000\te\ty\000\000\000\000\000\000\te\000\000\ty\ty\ty\000\000\000\000\000\000\000\000\000\000\000\000\ty\000\000\000\000\000\000\000\000\000\000\015\218\000\000\000\000\ty\tu\000\000\ty\000\000\tu\000\000\000\000\000\000\ty\000\000\000\000\000\000\000\000\000\000\000\000\tu\000\000\tu\000\000\tu\ty\tu\ty\ty\000\000\ty\ty\000\000\000\000\000\000\000\000\000\000\000\000\000\000\tu\000\000\000\000\000\000\000\000\000\000\000\000\tu\ty\016f\000\000\000\000\ty\000\000\000\000\000\000\000\000\000\000\tu\000\000\ty\tu\000\000\000\000\000\000\ty\000\000\tu\tu\000\242\000\000\000\000\000\000\000\000\000\000\000\000\tu\000\000\000\000\000\000\000\000\000\000\021\253\000\000\000\000\tu\021\253\000\000\tu\000\000\021\253\000\000\000\000\000\000\tu\000\000\000\000\000\000\000\000\000\000\000\000\021\253\000\000\021\253\000\000\021\253\tu\021\253\tu\tu\000\000\tu\tu\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021\253\000\000\000\000\000\000\000\000\000\000\000\000\021\253\tu\016f\000\000\000\000\tu\000\000\000\000\000\000\000\000\000\000\021\253\000\000\tu\021\253\000\000\000\000\000\000\tu\000\000\021\253\021\253\000\242\000\000\000\000\000\000\000\000\000\000\000\000\021\253\000\000\000\000\000\000\000\000\000\000\t\133\000\000\000\000\021\253\t\133\000\000\021\253\000\000\t\133\000\000\000\000\000\000\021\253\000\000\000\000\000\000\000\000\000\000\000\000\t\133\000\000\t\133\000\000\t\133\021\253\t\133\021\253\021\253\000\000\021\253\021\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\133\000\000\000\000\000\000\000\000\000\000\000\000\t\133\021\253\t\133\000\000\000\000\021\253\000\000\000\000\000\000\000\000\000\000\t\133\000\000\021\253\t\133\000\000\000\000\000\000\021\253\000\000\t\133\t\133\t\133\000\000\000\000\000\000\000\000\000\000\000\000\t\133\000\000\000\000\000\000\000\000\000\000\ta\000\000\000\000\t\133\ta\000\000\t\133\000\000\ta\000\000\000\000\000\000\t\133\000\000\000\000\000\000\000\000\000\000\000\000\ta\000\000\ta\000\000\ta\t\133\ta\t\133\t\133\000\000\t\133\t\133\000\000\000\000\000\000\000\000\000\000\000\000\000\000\ta\000\000\000\000\000\000\000\000\000\000\000\000\ta\t\133\015\202\000\000\000\000\t\133\000\000\000\000\000\000\000\000\000\000\ta\000\000\t\133\ta\000\000\000\000\000\000\016\166\000\000\ta\ta\ta\000\000\000\000\000\000\000\000\000\000\000\000\ta\000\000\000\000\000\000\000\000\000\000\015\218\000\000\000\000\ta\t]\000\000\ta\000\000\t]\000\000\000\000\000\000\ta\000\000\000\000\000\000\000\000\000\000\000\000\t]\000\000\t]\000\000\t]\ta\t]\ta\ta\000\000\ta\ta\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t]\000\000\000\000\000\000\000\000\000\000\000\000\t]\ta\016f\000\000\000\000\ta\000\000\000\000\000\000\000\000\000\000\t]\000\000\ta\t]\000\000\000\000\000\000\ta\000\000\t]\t]\000\242\000\000\000\000\000\000\000\000\000\000\000\000\t]\000\000\000\000\000\000\b\141\000\000\000\000\021Q\b\141\t]\000\000\000\000\t]\000\000\000\000\000\000\021Q\000\000\t]\b\141\000\000\b\141\000\000\b\141\000\000\b\141\000\000\000\000\000\000\000\000\t]\000\000\t]\t]\000\000\t]\t]\000\000\b\141\000\000\000\000\000\000\000\000\000\000\000\000\b\141\000\000\021Q\000\000\000\000\000\000\000\000\t]\000\000\021Q\000\000\t]\000\000\000\000\b\141\000\000\000\000\000\000\000\000\t]\b\141\b\141\b\141\000\000\t]\000\000\000\000\000\000\000\000\b\141\000\000\002R\000\000\000\000\000\000\005\177\000\000\000\000\b\141\005\177\000\000\002Z\000\000\000\000\000\000\000\000\000\000\021Q\000\000\000\000\005\177\000\000\000\000\000\000\005\177\000\000\005\177\000\000\000\000\b\141\000\000\b\141\b\141\000\000\b\141\b\141\000\000\000\000\000\000\005\177\000\000\000\000\000\000\000\000\000\000\000\000\005\177\002z\000\000\000\000\000\000\000\000\000\000\000\000,\190\b\141\000\000\005\177\000\000\000\000\005\177\000\000\000\000\000\000\000\000\000\000\005\177\005\177\b\141\000\000\000\000\000\000\000\000\000\000\000\000\005\177\000\000\000\000\000\000\000\000\000\000\007\233\000\000\000\000\005\177\007\233\000\000\005\177\000\000\000\000\000\000\000\000\000\000\005\177\000\000\000\000\007\233\000\000\000\000\000\000\007\233\000\000\007\233\000\000\000\000\005\177\000\000\005\177\005\177\000\000\005\177\005\177\000\000\000\000\000\000\007\233\000\000\000\000\007\233\000\000\000\000\000\000\007\233\005\177\000\000\000\000\000\000\007\233\005\177\004\"\000\000\005\177\000\000\007\233\000\000\000\000\007\233\007\233\000\000\007\233\000\000\000\000\007\233\t~\005\177\002\154\000\000\000\000\000\000\000\000\000\000\007\233\007\233\007\233\007\233\000\000\000\000\000\000\000\000\007\233\007\233\007\233\000\000\007\233\000\000\000\000\000\000\000\000\000\000\007\233\002)\000\000\000\000\007\233\002)\000\000\000\000\000\000\000\000\007\233\t~\007\233\014\137\007\233\000\000\002)\007\233\007\233\007\233\002)\000\000\002)\000\000\000\000\000\000\004.\000\000\007\233\000\000\007\233\000\000\000\000\000\000\000\000\002)\000\000\000\000\007\233\000\000\000\000\000\000\002).z\002)\000\000\007\233\000\000\000\000\007\233\000\000\007\233\000\000\002)\007\233\007\233\002)\000\000\000\000\000\000\000\000\000\000\002)\002)\002)\000\000\000\000\016\006\000\000\000\000\000\000\002)\000\000\000\000\000\000\007\233\000\000\000\000\000\000\000\000\002)\002)\000\000\002)\000\000\000\000\000\000\000\000\007\233\002)\0021\000\000\000\000\000\000\0021\000\000\000\000\000\000\000\000\000\000\000\000\002)\014\145\002)\000\000\0021\002)\002)\000\000\0021\000\000\0021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002)\000\000\000\000\000\000\000\000\0021\000\000\000\000\002)\000\000\000\000\000\000\0021\002)\0021\000\000\000\000\000\000\000\000\000\000\000\000\002)\000\000\0021\000\000\000\000\0021\000\000\000\000\000\000\000\000\000\000\0021\0021\0021\000\000\000\000\000\000\000\000\000\000\000\000\0021\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0021\0021\000\000\0021\000\000\000\000\000\000\000\000\000\000\0021\002-\000\000\000\000\000\000\002-\000\000\000\000\000\000\000\000\000\000\000\000\0021\014\141\0021\000\000\002-\0021\0021\000\000\002-\000\000\002-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0021\000\000\000\000\000\000\000\000\002-\000\000\000\000\0021\000\000\000\000\000\000\002-\0021\002-\000\000\000\000\000\000\000\000\000\000\000\000\0021\000\000\002-\000\000\000\000\002-\000\000\000\000\000\000\000\000\000\000\002-\002-\002-\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\002-\002-\000\000\002-\000\000\000\000\000\000\000\000\000\000\002-\002%\000\000\000\000\000\000\002%\000\000\000\000\000\000\000\000\000\000\000\000\002-\014\133\002-\000\000\002%\002-\002-\000\000\002%\000\000\002%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002-\000\000\000\000\000\000\000\000\002%\000\000\000\000\002-\000\000\000\000\000\000\002%\002-\002%\000\000\000\000\000\000\000\000\000\000\000\000\002-\000\000\002%\000\000\000\000\002%\000\000\000\000\000\000\000\000\000\000\002%\002%\002%\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\002%\002%\000\000\002%\020\225\000\000\000\000\000\000\020\225\002%\000\000\000\000\000\000\000\000\005a\000\000\000\000\001\230\005a\020\225\000\000\002%\000\000\002%\000\000\020\225\002%\002%\000\000\005a\000\000\000\000\000\000\005a\000\000\005a\000\000\000\000\020\225\002%\000\000\000\000\000\000\000\000\000\000\020\225\000\000\002%\005a\000\000\000\000\000\000\002%\000\000\000\000\005a\020\225\000\000\000\000\020\225\002%\000\000\000\000\000\000\004\018\020\225\005a\000\000\000\000\005a\000\000\000\000\000\000\000\000\020\225\005a\005a\005a\000\000\000\000\000\000\000\000\000\000\020\225\005a\000\000\020\225\000\000\000\000\000\000\000\000\000\000\020\225\005a\005a\000\000\005a\000\000\000\000\000\000\000\000\000\000\005\166\000\000\020\225\000\000\020\225\005]\000\000\020\225\001\230\005]\000\000\000\000\005a\000\000\005a\000\0006\198\005a\005a\000\000\005]\000\000\000\000\000\000\005]\000\000\005]\000\000\020\225\000\000\005a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005a\005]\000\000\000\000\000\000\005a\000\000\000\000\005]\000\000\000\000\000\000\000\000\005a\000\000\000\000\000\000\004\018\000\000\005]\000\000\000\000\005]\000\000\000\000\000\000\000\000\000\000\005]\005]\005]\000\000\000\000\000\000\000\000\000\000\000\000\005]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003M\005]\005]\000\000\005]&F\000\000\000\000\000\000\000\000\005\166\000\000\000\000\000\000\000\000\003M\003M\003M\003M\000\000\003M\000\000\005]\000\000\005]\000\000\000\000\005]\005]\000\000\003M\000\000\003M\003M\000\000\000\000\000\000\001U\000\000\000\000\005]\001U\003M\000\000\000\000\000\000\000\000\000\000\005]\000\000\000\000\003M\001U\005]\001U\000\000\001U\000\000\001U\000\000\000\000\005]\003M\003M\003M\003M\003M\000\000\000\000\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\003M\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\001U\000\000\003M\001U\000\000\000\000\000\000\000\000\000\000\001U\001U\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001U\019r\000\000\001U\003M\003M\000\000\000\000\000\000\001U\000\000\003M\001U\000\000\000\000\003M\003M\000\000\001U\000\000\000\000\003M\003M\000\000\001Q\000\000\000\000\000\000\001Q\000\000\001U\000\000\001U\001U\000\000\001U\001U\000\000\000\000\001Q\000\000\001Q\000\000\001Q\000\000\001Q\000\000\000\000\001U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001U\000\000\001Q\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\000\000\001U\001Q\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\000\000\000\000\000\000\000\000\000\000\001Q\001Q\000\242\000\000\000\000\000\000\000\000\000\000\000\000\001Q\000\000\000\000\001Q\b\145\000\000\000\000\021Q\b\145\001Q\000\000\000\000\001Q\000\000\000\000\000\000\021Q\000\000\001Q\b\145\000\000\b\145\000\000\b\145\000\000\b\145\000\000\000\000\000\000\000\000\001Q\000\000\001Q\001Q\000\000\001Q\001Q\000\000\b\145\000\000\000\000\000\000\000\000\000\000\000\000\b\145\000\000\021Q\001Q\000\000\000\000\000\000\000\000\000\000\021Q\000\000\001Q\000\000\000\000\b\145\000\000\000\000\000\000\000\000\000\000\b\145\b\145\b\145\000\000\001Q\000\000\000\000\000\000\000\000\b\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\145\0029\000\000\002Z$&\0029\000\000\003\170\000\000\021Q\000\000\000\000\000\000\000\000\000\000\000\000\0029\000\000\000\000\000\000\0029\b\145\0029\b\145\b\145\000\000\b\145\b\145\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0029\000\000\000\000\000\000\000\000\000\000\000\000\0029\000\000\000\000\000\000\000\000\b\145\000\000$*\000\000\000\000\000\000\0029\000\000\000\000\0029\000\000\000\000\000\000\b\145\000\000\0029\0029\000\000$6\000\000\000\000\000\000\000\000\000\000\0029\000\000\000\000\000\000\001E\000\000\000\000\002\161\001E\0029\000\000\000\000\0029\000\000\000\000\000\000\002\161\000\000\0029\001E\000\000\001E\000\000\001E\000\000\001E\000\000\000\000\000\000\n\n\0029\000\000\0029\000\000\000\000\0029\0029\000\000\001E\000\000\000\000\000\000\000\000\000\000\000\000\001E\000\000\002\161\0029\000\000\000\000\000\000\000\000\000\000\002\161\000\000\0029\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\001E\001E\001E\000\000\0029\000\000\000\000\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001E\005U\000\000\000\000\000\000\005U\000\000\000\000\000\000\002\161\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\000\000\005U\001E\005U\001E\001E\000\000\001E\001E\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000$>\000\000\000\000\000\000\000\000\005U\000\000\000\000\000\000\000\000\001E\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\005U\000\000\000\000\000\000\001E\000\000\005U\005U\005U\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\005U\000\000\000\000\000\000\000\000\000\000\005U\001\202\001\226\003\166\000\000\000\000\003\170\000\000\000\000\000\000\000\000\000\000\005U\000\000\005U.\130\000\000\005U\005U\000\000\000\000\000\000\001\234\002&\001\254\003\174\000\000\000\000\000\000\000\000\005U\000\000\000\000\002\n\000\000\001\206\000\000$\202\005U\000\000\011A\000\000\000\000\005U\011A\000\000\000\000\000\000\003\178\001\210\002V\005U\000\000\000\000\002\178\011A\003\186\003\234\003\246\011A\000\000\011A\000\000\000\0000R\000\0000\154\021Q\000\000\000\000\000\000\000\000\000\000\000\000\011A\000\000\000\000\000\000\000\000\000\000\000\000\011A\000\000\000\000\000\000\000\000\004\0060\166\004\022\000\000\000\000\000\000\011A\000\000\000\000\011A\000\000\000\000\000\000\n\n\000\000\011A\011A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011A\000\000\000\0000\178\000\000\000\000\000\000\000\000\000\000\011A\005U\000\000\011A\000\000\005U\000\000\000\000\000\000\011A\000\000\000\0000r\000\000\000\000\000\000\005U\000\000\000\000\000\000\005U\011A\005U\011A\011A\000\000\011A\011A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000$>\000\000\011A\000\000\000\000\005U\000\000\011A\000\000\003\150\011A\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\005U\000\000\000\000\000\000\011A\000\000\005U\005U\005U\001\202\001\226\003\166\000\000\000\000\003\170\005U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\005U\000\000\000\000\001\234\002&\001\254\005U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\005U\000\000\005U.\186\000\000\005U\005U\000\000\000\000\000\000\000\000\003\178\001\210\002V\000\000\000\000\000\000\002\178\b\241\003\186\003\234\003\246\b\241\000\000\000\000$\202\005U0R\000\0000V\000\000\005U\000\000\b\241\000\000\000\000\000\000\b\241\000\000\b\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\0060b\004\022\b\241\000\000\000\000\000\000\000\000\000\000\000\000\b\241\000\000\000\000\n\n\000\000\000\000\000\000\017f\000\000\000\000\000\000\b\241\r\209\000\000\b\241\000\000\000\0000n\000\000\000\000\b\241\b\241\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\241\r\209\r\209\000\000\r\209\r\2090r\000\000\000\000\b\241\b\241\000\000\b\241\000\000\000\000\000\000\000\000\000\000\b\241\b\249\000\000\000\000\000\000\b\249\000\000\000\000\000\000\000\000\r\209\000\000\b\241\000\000\b\241\000\000\b\249\b\241\b\241\000\000\b\249\000\000\b\249\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\209\000\000\000\000\000\000\000\000\b\249\000\000\000\000\b\241\000\000\000\000\000\000\b\249\000\000\000\000\000\000\000\000\r\209\000\000\017f\000\000\b\241\000\000\b\249\000\000\000\000\b\249\000\000\000\000\000\000\000\000\000\000\b\249\b\249\000\242\000\000\000\000\000\000\000\000\000\000\r\209\b\249\r\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\249\b\249\000\000\b\249\000\000\000\000\000\000\0116\r\209\b\249\b\245\r\209\r\209\000\000\b\245\000\000\r\209\000\000\r\209\006-\000\000\b\249\r\209\b\249\r\209\b\245\b\249\b\249\000\000\b\245\000\000\b\245\000\000\000\000\000\000\000\000\000\000\006-\006-\000\000\006-\006-\000\000\000\000\b\245\000\000\000\000\b\249\000\000\000\000\000\000\b\245\000\000\000\000\000\000\000\000\000\000\000\000\017f\000\000\b\249\000\000\b\245\000\000\006-\b\245\000\000\000\000\000\000\000\000\000\000\b\245\b\245\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\245\000\000\000\000\000\000\000\242\000\000\000\000\000\000\000\000\b\245\b\245\000\000\b\245\000\000\000\000\000\000\000\000\000\000\b\245\b\253\000\000\006-\000\000\b\253\000\000\000\000\000\000\000\000\000\000\000\000\b\245\000\000\b\245\000\000\b\253\b\245\b\245\000\000\b\253\000\000\b\253\000\000\000\000\000\000\006-\000\000\006-\000\000\000\000\000\000\000\000\000\000\000\000\b\253\000\000\000\000\b\245\000\000\000\000\000\000\b\253\006-\006-\000\000\000\000\011r\006-\017f\000\000\b\245\006-\b\253\006-\000\000\b\253\000\000\006-\000\000\006-\000\000\b\253\b\253\000\242\000\000\000\000\000\000\000\000\000\000\000\000\b\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\253\b\253\000\000\b\253\000\000\000\000\000\000\000\000\000\000\b\253\005U\000\000\000\000\000\000\005U\000\000\000\000\000\000\000\000\000\000\000\000\b\253\000\000\b\253\000\000\005U\b\253\b\253\000\000\005U\000\000\005U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000$>\b\253\000\000\000\000\000\000\005U\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\253\000\000\005U\000\000\000\000\005U\000\000\000\000\000\000\000\000\000\000\005U\005U\005U\000\000\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\000\000\000\000\000\000\n!\000\000\000\000\005U\n!\000\000\005U\000\000\000\000\000\000\000\000\000\000\005U\000\000\000\000\n!\000\000\000\000\000\000\n!\000\000\n!\000\000\000\000\005U\000\000\005U(\254\000\000\005U\005U\000\000\000\000\000\000\n!\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$\202\005U\000\000\n!\000\000\000\000\n!\000\000\000\000\000\000\000\000\000\000\n!\n!\000\242\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\n!\020\237\000\000\n!\003\202\020\237\000\0006\214\000\000\n!\000\000\000\0006\218\000\000\000\000\000\000\020\237\000\000\000\000\000\000\000\000\n!\020\237\n!0\190\000\000\n!\n!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\237\000\000\000\000\000\000\n!\000\000\000\000\020\237\000\000\000\000\000\000\000\000\n!\000\000\001\006\000\000\001\190\000\000\020\237\000\000\000\000\020\237\000\000\000\000\000\000\n!\000\000\020\237\020\209\000\000\000\000\003\202\020\209\000\0006\246\000\000\020\2376\222\000\0006\250\000\000\000\000\000\000\020\209\000\000\020\237\000\000\000\000\020\237\020\209\000\000\000\000\000\000\000\000\020\237\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\209\000\000\000\0006\226\020\237\000\000\020\237\020\209\000\000\020\237\000\000\000\000\000\000\000\000\001\006\000\000\001\190\000\000\020\209\000\000\000\000\020\209\000\000\000\000\000\000\000\000\000\000\020\209\021-\000\000\020\237\000\000\021-\000\000\000\000\000\000\020\2096\254\000\000\000\000\000\000\000\000\000\000\021-\000\000\020\209\000\000\021-\020\209\021-\000\000\000\000\000\000\000\000\020\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021-\000\000\000\0007\002\020\209\000\000\020\209\021-\000\000\020\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021-\000\000\000\000\021-\000\000\000\000\000\000\000\000\000\000\021-\021-\000\000\020\209\000\000\000\000\000\000\000\000\000\000\021-\000\000\000\000\000\000\000\000\000\000\015\218\000\000\000\000\021-\011m\000\000\021-\000\000\011m\000\000\000\000\000\000\021-\000\000\000\000\000\000\000\000\000\000\000\000\011m\000\000\000\000\000\000\011m\021-\011m\021-\003\162\000\000\021-\021-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011m\000\000\000\000\000\000\021-\000\000\000\000\011m\000\000\016f\000\000\000\000\021-\000\000\000\000\000\000\000\000\000\000\011m\000\000\000\000\011m\000\000\000\000\000\000\021-\000\000\011m\011m\000\242\000\000\000\000\000\000\000\000\000\000\000\000\011m\000\000\000\000\000\000\000\000\000\000\002=\000\000\000\000\011m\002=\000\000\011m\000\000\000\000\000\000\000\000\000\000\011m\000\000\000\000\002=\000\000\000\000\000\000\002=\000\000\002=\000\000\000\000\011m\000\000\011m\000\000\000\000\011m\011m\000\000\000\000\000\000\002=\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\011m\000\000\002=\000\000\000\000\002=\000\000\000\000\000\000\000\000\000\000\002=\002=\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\002=\n%\000\000\002=\000\000\n%\000\000\000\000\000\000\002=\000\000\000\000\000\000\000\000\000\000\000\000\n%\000\000\000\000\000\000\n%\002=\n%\002=\000\000\000\000\002=\002=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n%\000\000\000\000\000\000\002=\000\000\000\000\n%\000\000\000\000\000\000\000\000\002=\000\000\000\000\000\000\000\0000~\n%\000\000\000\000\n%\000\000\000\000\000\000\002=\000\000\n%\n%\000\242\001\202\002\018\001\230\0022\000\000\000\000\n%\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n%\003\182\000\000\n%\000\000\000\000\001\234\002f\001\254\n%\000\000\000\000\015\218\000\000\000\000\000\000\007\233\002\n\000\000\001\206\007\233\n%\000\000\n%\000\000\002\194\n%\n%\000\000\000\000\000\000\007\233\002\014\001\210\002V\007\233\000\000\007\233\002\178\n%\003\186\003\234\003\246\000\000\000\000\000\000\000\000\n%\004\002\000\000\007\233\000\000\000\000\000\000\000\000\000\000\000\000\007\233\000\000\016f\n%\000\000\000\000\000\000\017f\000\000\000\000\000\000\007\233\000\000\004\006\007\233\004\022\000\000\000\000\000\000\000\000\007\233\t~\000\242\000\000\000\000\000\000\000\000\000\000\000\000\007\233\000\000\000\000\000\000\000\000\000\000\002R\000\000\000\000\007\233\005\209\000\000\007\233\000\000\005\209\000\000\000\000\000\000\007\233\000\000\000\000\000\000$.\000\000\000\000\005\209\000\000\000\000\000\000\005\209\007\233\005\209\007\233\000\000\000\000\007\233\007\233\000\000\000\249\000\000\000\000\000\000\000\249\000\000\005\209\000\000\000\000\000\000\016\006\000\000\000\000\005\209\002z\000\249\000\000\000\000\007\233\000\249\000\000\000\249\000\0000~\005\209\000\000\007\233\005\209\000\000\000\000\000\000\007\233\000\000\005\209\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\249\005\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\209\000\249\000\000\005\209\000\249\000\000\000\000\000\000\000\000\005\209\000\249\000\249\000\242\000\000\000\000\000\000\000\000\000\000\000\000\000\249\000\000\005\209\000\000\005\209\000\000\000\000\005\209\005\209\000\249\000\253\000\000\000\249\000\000\000\253\000\000\000\000\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\005\209\000\253\000\249\000\253\000\249\000\000\000\000\000\249\000\249\000\000\000\000\000\000\000\000\000\000\002\154\000\000\000\253\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\000\000\000\000\249\000\000\000\000\000\000\000\000\000\000\000\253\021-\000\000\000\253\000\000\021-\000\000\000\249\000\000\000\253\000\253\000\242\001\202\001\226\001\230\000\000\021-\000\000\000\253\000\000\021-\000\000\021-\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\253\000\000\000\000\001\234\002&\021-\000\253\000\000\000\000\000\000\000\000\000\000\021-\000\000\000\000\000\000\001\206\000\000\000\253\000\000\000\253\000\000\000\000\000\253\000\253\000\000\021-\000\000\000\000\004\158\001\210\004\018\021-\021-\000\000\002\178\000\000\003\186\003\234\003\246\000\000\021-\000\000\000\000\000\253\004\002\000\000\000\000\000\000\000\000\021-\000\000\000\000\000\000\000\000\000\000\000\000\000\253\000\000\000\000\000\000\000\000\000\000\000\000\011\017\011\017\011\017\004\006\000\000\004\022\000\000\021-\000\000\021-\003\162\000\000\021-\021-\000\000\000\000\000\000\000\000\003\250\000\000\011i\011\017\011\017\011\017\011i\021-\000\000\000\000\000\000\000\0001\n\000\000\011\017\021-\011\017\011i\000\000\000\000\000\000\011i\000\000\011i\000\000\000\000\000\000\000\000\021-\011\017\011\017\011\017\000\000\000\000\000\000\011\017\011i\011\017\011\017\011\017\000\000\000\000\000\000\011i\000\000\011\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011i\000\000\000\000\011i\000\000\000\000\000\000\000\000\000\000\011i\011i\000\000\000\000\011\017\000\000\011\017\000\000\000\000\011i\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011i\n\025\000\000\011i\000\000\n\025\000\000\000\000\000\000\011i\000\000\000\000(\222\000\000\000\000\000\000\n\025\000\000\000\000\000\000\n\025\011i\n\025\011i(.\000\000\011i\011i\000\000\000\000\000\000\003\238\000\000\011\017\000\000\n\025\000\000\000\000\000\000\000\000\000\000\000\000\n\025\000\000\000\000\000\000\000\000\011i\000\000\000\000\000\000\000\000\000\000\n\025\000\000\000\000\n\025\000\000\000\000\000\000\000\000\000\000\n\025\n\025\000\000\001\202\002\018\001\230\0022\000\000\000\000\n\025\000\000\000\000\000\000\001m\000\000\000\000\000\000\001m\n\025\000\000\000\000\n\025\000\000\000\000\001\234\002\186\001\254\n\025\001m\000\000\001m\000\000\001m\000\000\001m\002\n\000\000\001\206\000\000\n\025\000\000\n\025\000\000\002\194\n\025\n\025\000\000\001m\000\000\000\000\002.\001\210\002V\000\000\001m\000\000\002\178\000\000\003\186\003\234\003\246\000\000\000\000\000\000\000\000\n\025\004\002\000\000\001m\000\000\000\000\000\000\000\000\000\000\001m\001m\000\242\000\000\000\000\000\000\020}\000\000\000\000\001m\020}\000\000\000\000\000\000\004\006\000\000\004\022\000\000\001m\000\000\000\000\020}\000\000\000\000\000\000\020}\000\000\020}\000\000\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\000\000\000\000\001m\020}\001m\001m\000\000\001m\001m\000\000\020}\000\000\000\000\000\000\000\000\n2\000\000\000\000\001\234\002&\001\254\020}\000\000\000\000\020}\000\000\000\000\000\000\001m\002\n\020}\001\206\000\000\000\000\000\000\000\000\000\000\002\194\000\000\020}\000\000\001m\000\000\000\000\002.\001\210\002V\000\000\020}\019\198\002\178\020}\003\186\003\234\003\246\000\000\000\000\020}\021-\000\000\004\002\000\000\021-\000\000\000\000\000\000\000\000\000\000\000\000\020}\000\000\020}\000\000\021-\020}\020}\000\000\021-\000\000\021-\000\000\000\000\004\006\000\000\004\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\021-\000\000\000\000\020}\000\000\000\000\000\000\021-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\146\000\000\000\000\000\000\000\000\021-\000\000\000\000\000\000\000\000\000\000\021-\021-\000\000\001\202\002\018\001\230\0022\000\000\007\210\021-\007\214\000\000\007\193\000\000\000\000\000\000\007\193\000\000\021-\000\000\000\000\000\000\000\000\000\000\001\234$\210\001\254\007\193\000\000\000\000\000\000\007\193\000\000\007\193\000\000\002\n\000\000\001\206\000\000\021-\000\000\021-\003\162\002\194\021-\021-\007\193\000\000\000\000\000\000\002.\001\210\002V\007\193\000\000\000\000\002\178\021-\003\186\003\234\003\246\000\0001F\000\000\007\193\021-\004\002\007\193\000\000\000\000\000\000\000\000\000\000\007\193\000\000\000\000\000\000\000\000\021-\000\000\000\000\000\000\007\193\000\000\000\000\000\000\000\000\000\000\004\006\007\185\004\022\007\193\000\000\007\185\007\193\000\000\000\000\000\000\000\000\000\000\007\193\000\000\000\000\000\000\007\185\007\169\000\000\000\000\007\185\007\169\007\185\000\000\007\193\000\000\007\193\000\000\000\000\007\193\007\193\000\000\007\169\000\000\000\000\007\185\007\169\000\000\007\169\000\000\000\000\000\000\007\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\193\007\169\000\000\007\185\000\000\000\000\007\185\000\000\007\169\000\000\000\000\000\000\007\185(V\000\000\000\000\000\000\000\000\000\000\007\169\000\000\007\185\007\169\000\000\000\000\000\000\000\000\000\000\007\169\000\000\007\185\000\000\000\000\007\185\000\000\000\000\000\000\007\169\000\000\007\185\000\000\000\000\000\000\000\000\007\217\000\000\007\169\000\000\007\217\007\169\000\000\007\185\000\000\007\185\000\000\007\169\007\185\007\185\000\000\007\217\000\000\000\000\000\000\007\217\000\000\007\217\000\000\007\169\000\000\007\169\000\000\000\000\007\169\007\169\000\000\000\000\000\000\007\185\007\217\000\000\000\000\000\000\000\000\000\000\000\000\007\217\000\000\000\000\000\000\000\000*\134\000\000\000\000\007\169\000\000\000\000\007\217\000\000\000\000\007\217\000\000\000\000\000\000\000\000\000\000\007\217-\130\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\217\000\000\000\000\000\000\000\000\000\000\015\218\000\000\000\000\007\217\t\r\000\000\007\217\000\000\t\r\000\000\000\000\000\000\007\217\000\000\000\000\000\000\000\000\000\000\000\000\t\r\000\000\000\000\000\000\t\r\007\217\t\r\007\217\000\000\000\000\007\217\007\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\r\011\r\011\r\011\r\000\000\000\000\000\000\t\r\000\000\016f\000\000\000\000\007\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\r\011\r\011\r\011\r-\242\000\000\t\r\t\r\000\242\000\000\000\000\000\000\011\r\000\000\011\r\t\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\r\000\000\000\000\011\r\011\r\011\r\000\000\000\000\000\000\011\r\000\000\011\r\011\r\011\r\022\001\022\001\022\001\000\000\000\000\011\r\000\000\t\r\000\000\t\r\000\000\000\000\t\r\t\r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\022\001\022\001\022\001\015\238\000\000\000\000\011\r\000\000\011\r\000\000\000\000\022\001\t\r\022\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\024\206\022\001\022\001\022\001\000\000\000\000\000\000\022\001\000\000\022\001\022\001\022\001\000\000\000\000\000\000\000\000\000\000\022\001\001\234\001\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\007\254\000\000\000\000\000\000\022\001\000\000\022\001\000\000\000\000\002\014\001\210\002V\000\000\000\000\000\000\002\178\000\000\003\186\003\234\003\246\001\202\001\226\001\230\025\218\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\001\234\001\238\001\254\000\000\000\000\000\000\004\006\000\000\004\022\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230\027\026\002\014\001\210\002V\000\000\000\000\000\000\002\178\000\000\003\186\003\234\003\246\000\000\000\000\000\000\000\000\000\000\004\002\001\234\001\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\022\000\000\000\000\002\014\001\210\002V\000\000\000\000\000\000\002\178\000\000\003\186\003\234\003\246\001\202\001\226\001\230+b\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\001\234\001\238\001\254\000\000\000\000\000\000\004\006\000\000\004\022\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\202\001\226\001\230+\194\002\014\001\210\002V\000\000\000\000\000\000\002\178\000\000\003\186\003\234\003\246\000\000\000\000\000\000\000\000\000\000\004\002\001\234\001\238\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\022\000\000\000\000\002\014\001\210\002V\001\202\002\142\001\230\002\178\000\000\003\186\003\234\003\246\000\000\000\000\000\000\000\000\000\000\004\002\000\000\000\000\000\000\000\000\001\202\004\218\001\230\001\234\002\162\001\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\004\006\000\000\004\022\000\000\001\234\004\230\001\254\000\000\000\000\000\000\000\000\000\000\002.\001\210\002V\002\n\000\000\001\206\002\178\000\000\003\186\003\234\003\246\000\000\000\000\000\000\0121\000\000\004\002\000\000\002.\001\210\002V\001\202\006>\001\230\002\178\000\000\003\186\003\234\003\246\000\000\000\000\000\000\0121\0121\004\002\0121\0121\000\000\004\006\000\000\004\022\000\000\001\234\006J\001\254\006=\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\n\000\000\001\206\004\006\000\000\004\022\0121\000\000\000\000\000\000\006=\006=\000\000\006=\006=\002.\001\210\002V\000\000\000\000\000\000\002\178\000\000\003\186\003\234\003\246\0121\000\000\012A\000\000\000\000\004\002\000\000\000\000\000\000\000\000\000\000\006=\000\000\000\000\000\000\000\000\000\000\0121\000\000\000\000\012A\012A\000\000\012A\012A\000\000\000\000\004\006\000\000\004\022\000\000\000\242\000\000\006M\000\000\000\000\000\000\000\000\000\000\000\000\0121\000\000\0121\000\000\000\000\000\000\000\000\012A\006=\000\000\000\000\006M\006M\000\000\006M\006M\000\000\0121\0121\000\000\000\000\011r\0121\000\000\000\000\000\000\0121\000\242\0121\000\000\000\000\006=\0121\006=\0121\000\000\000\000\000\000\006M\000\000\000\000\000\000\000\000\000\000\012A\000\000\000\000\000\000\006=\006=\000\000\000\000\011r\006=\000\000\000\000\000\000\006=\000\242\006=\006m\000\000\000\000\006=\000\000\006=\000\000\012A\000\000\012A\000\000\000\000\000\000\000\000\000\000\006M\000\000\000\000\006m\006m\000\000\006m\006m\000\000\011\222\012A\000\000\000\000\011r\012A\000\000\006]\000\000\012A\000\000\012A\000\000\000\000\006M\012A\006M\012A\000\000\000\000\000\000\006m\000\000\000\000\000\000\006]\006]\000\000\006]\006]\000\000\006M\006M\000\000\000\000\011r\006M\000\000\000\000\000\000\006M\000\242\006M\000\000\000\000\000\000\006M\000\000\006M\000\000\000\000\000\000\006]\000\000\000\000\000\000\000\000\000\000\006m\000\000\000\000\000\000\000\000\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\000\000\000\000\000\000\000\000\000\000\000\006m\000\000\006m\000\000\000\000\000\000\000\000\000\000\006]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006m\006m\000\000\000\000\011r\006m\000\000\000\000\000\000\006m\000\000\006m\000\000\000\000\006]\006m\006]\006m\t\017\000\000\000\000\000\000\t\017\000\000\000\000\000\000\000\000\000\000\001\2025n\001\230\006]\006]\t\017\000\000\011r\006]\t\017\000\000\t\017\006]\000\000\006]\000\000\000\000\000\000\006]\000\000\006]\001\2345z\001\254\t\017\000\000\000\000\000\000\000\000\000\000\000\000\t\017\002\n\015\202\001\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\017\000\000\002.\001\210\002V\000\000\t\017\t\017\002\178\000\000\003\186\003\234\003\246\000\000\000\000\t\017\000\000\000\000\004\002\000\000\000\000\000\000\000\250\000\000\t\017\000\000\tZ\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\201\000\000\000\000'\234\007\201\000\000\004\006\007\253\004\022'\238\000\000\t\017\000\000\t\017\000\000\007\201\t\017\t\017\000\000\007\201\000\000\007\201'\242\000\000\000\000\000\000\000\000\000\000\000\000(\026\000\000\007\177\000\000\000\000\007\201\007\177\000\000\t\017\000\000\000\000-\174\007\201\000\000(~\000\000\000\000\007\177\000\000\000\000(\150\007\177\000\000\007\177\000\000\000\000\007\201\000\000\000\000(\158\000\000\000\000\007\201\007\225\000\000\000\000\007\177\007\225(\174\000\000\000\000\007\201\000\000\007\177\000\000\000\000\000\000\000\000\007\225\000\000\007\201\000\000\007\225\000\000\007\225\000\000\000\000\007\177\000\000(\182\000\000(\238\000\000\007\177\007\253\007\253\000\000\007\225\000\000\000\000\000\000\007\201\007\177\007\201\007\225\000\250\007\201\007\201\000\000\tZ\000\000\007\177\000\000\000\000\000\000)6\000\000\000\000\007\225\000\0007>\000\000\000\000\000\000\007\225\000\000'\238\007\201\000\000\000\000\000\000\000\000\007\177\007\225\007\177\000\000\000\000\007\177\007\177'\2421\230\000\000\007\225\000\000\000\000\000\000(\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000-\174\007\177\000\000(~\000\000\000\000\007\225\000\000\007\225(\150\000\000\007\225\007\225\000\0002\154\000\000\000\000\000\000(\158\000\000\000\000\001\226\001\230\000\000\000\000\000\000\000\000(\174\000\000\000\0006\206\000\000\007\225\000\000\001\226\001\2306\238\000\000\000\000\000\000\000\000\001\234\002&\000\000\000\0003\022\000\000\000\000(\182\000\000(\238\000\000\000\000\b%\001\234\001\238\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\182\000\000\004\018\000\000\000\000\000\000\002\178)6\003\186\003\234\003\246\000\000\000\000$\206\000\000\004\018\004\002\000\000$B\002\178\000\000\003\186\003\234\003\246\000\000\000\000\000\000\000\000\000\000\004\002\000\000$B\000\000\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\022\000\000\000\000\000\000\000\000$\150\000\000\000\000\000\000\000\000\000\000\004\006\000\000\004\022\000\000\000\000\000\000\000\000$\150")) and lhs = - (16, "\000\014\000\r\000\012\000\011\000\n\000\t\000\b\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001\019\001\019\001\018\001\018\001\018\001\018\001\017\001\016\001\016\001\015\001\014\001\r\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\012\001\011\001\011\001\n\001\t\001\b\001\b\001\b\001\b\001\b\001\b\001\b\001\b\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\007\001\006\001\006\001\006\001\005\001\005\001\004\001\003\001\003\001\003\001\002\001\002\001\001\001\001\001\001\001\001\001\001\001\001\001\000\001\000\001\000\001\000\001\000\001\000\001\000\000\255\000\255\000\255\000\255\000\255\000\254\000\254\000\254\000\254\000\253\000\252\000\251\000\251\000\251\000\251\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\249\000\249\000\249\000\249\000\249\000\249\000\249\000\249\000\249\000\249\000\249\000\249\000\248\000\248\000\247\000\247\000\247\000\247\000\246\000\246\000\246\000\245\000\245\000\245\000\245\000\244\000\243\000\243\000\243\000\243\000\243\000\242\000\242\000\241\000\241\000\240\000\240\000\240\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\239\000\238\000\238\000\237\000\237\000\236\000\236\000\235\000\234\000\233\000\232\000\231\000\231\000\230\000\230\000\229\000\229\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\228\000\227\000\227\000\227\000\226\000\225\000\225\000\225\000\225\000\224\000\224\000\223\000\223\000\223\000\222\000\221\000\221\000\221\000\221\000\221\000\221\000\220\000\219\000\218\000\218\000\217\000\217\000\216\000\216\000\215\000\214\000\214\000\213\000\213\000\212\000\211\000\211\000\210\000\209\000\208\000\208\000\208\000\208\000\208\000\208\000\208\000\207\000\206\000\205\000\204\000\204\000\204\000\203\000\203\000\203\000\203\000\203\000\203\000\202\000\201\000\201\000\201\000\201\000\201\000\201\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\198\000\197\000\197\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\196\000\195\000\195\000\194\000\194\000\194\000\193\000\193\000\193\000\193\000\193\000\193\000\193\000\192\000\192\000\192\000\191\000\191\000\191\000\191\000\190\000\190\000\190\000\190\000\189\000\189\000\188\000\188\000\187\000\187\000\186\000\186\000\185\000\185\000\184\000\184\000\183\000\183\000\182\000\182\000\181\000\181\000\180\000\180\000\179\000\179\000\179\000\178\000\178\000\178\000\178\000\177\000\177\000\176\000\176\000\175\000\175\000\174\000\174\000\174\000\174\000\174\000\173\000\173\000\173\000\173\000\172\000\172\000\172\000\171\000\171\000\171\000\171\000\171\000\171\000\171\000\170\000\170\000\170\000\170\000\170\000\170\000\170\000\169\000\169\000\168\000\168\000\167\000\167\000\167\000\167\000\167\000\167\000\166\000\166\000\165\000\165\000\164\000\164\000\163\000\163\000\162\000\162\000\161\000\161\000\160\000\160\000\159\000\158\000\158\000\158\000\158\000\158\000\157\000\157\000\156\000\156\000\156\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\155\000\154\000\154\000\153\000\153\000\152\000\152\000\151\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\150\000\149\000\148\000\147\000\146\000\146\000\145\000\145\000\145\000\144\000\144\000\144\000\144\000\144\000\143\000\142\000\142\000\141\000\140\000\140\000\139\000\139\000\138\000\138\000\137\000\137\000\137\000\137\000\137\000\137\000\136\000\136\000\135\000\135\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\134\000\133\000\133\000\132\000\132\000\131\000\131\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\130\000\129\000\129\000\128\000\128\000\127\000\127\000~\000~\000~\000~\000}\000}\000|\000|\000{\000{\000z\000z\000z\000z\000y\000y\000x\000x\000w\000w\000v\000v\000u\000u\000t\000t\000s\000s\000s\000s\000r\000r\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000q\000p\000p\000p\000o\000n\000m\000l\000k\000j\000i\000h\000g\000f\000e\000d\000d\000d\000d\000d\000d\000d\000c\000c\000c\000c\000c\000c\000b\000b\000b\000b\000b\000b\000a\000a\000`\000`\000`\000`\000`\000_\000_\000^\000^\000]\000\\\000[\000[\000Z\000Z\000Z\000Z\000Z\000Y\000Y\000X\000X\000W\000W\000V\000V\000V\000U\000U\000U\000U\000U\000U\000T\000T\000T\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000R\000Q\000Q\000Q\000Q\000Q\000Q\000P\000P\000O\000O\000N\000N\000M\000M\000L\000L\000K\000K\000J\000J\000J\000J\000I\000I\000I\000H\000H\000G\000G\000F\000F\000E\000E\000D\000D\000C\000C\000B\000B\000A\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:\0009\0009\0009\0008\0007\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0006\0005\0005\0005\0005\0005\0005\0004\0004\0004\0004\0004\0003\0003\0003\0003\0003\0003\0003\0003\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0002\0001\0001\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\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/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000.\000.\000-\000-\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000+\000+\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000)\000)\000(\000(\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000&\000&\000&\000&\000%\000%\000$\000$\000$\000#\000#\000\"\000!\000!\000 \000 \000 \000\031\000\030\000\029\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\027\000\027\000\026\000\026\000\025\000\024\000\024\000\023\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\021\000\021\000\020\000\019\000\019\000\018\000\018\000\018\000\017\000\017\000\017\000\016\000\016\000\016\000\016\000\016\000\016\000\015\000\015") + (16, "\000\014\000\r\000\012\000\011\000\n\000\t\000\b\000\007\000\006\000\005\000\004\000\003\000\002\000\001\000\000\001\019\001\019\001\018\001\018\001\018\001\018\001\017\001\016\001\016\001\015\001\014\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\r\001\012\001\012\001\011\001\n\001\t\001\t\001\t\001\t\001\t\001\t\001\t\001\t\001\b\001\b\001\b\001\b\001\b\001\b\001\b\001\b\001\007\001\007\001\007\001\006\001\006\001\005\001\004\001\004\001\004\001\003\001\003\001\002\001\002\001\002\001\002\001\002\001\002\001\001\001\001\001\001\001\001\001\001\001\001\001\001\001\000\001\000\001\000\001\000\001\000\000\255\000\255\000\255\000\255\000\254\000\253\000\252\000\252\000\252\000\252\000\251\000\251\000\251\000\251\000\251\000\251\000\251\000\251\000\251\000\251\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\250\000\249\000\249\000\248\000\248\000\248\000\248\000\247\000\247\000\247\000\246\000\246\000\246\000\246\000\245\000\244\000\244\000\244\000\244\000\244\000\243\000\243\000\242\000\242\000\241\000\241\000\241\000\240\000\240\000\240\000\240\000\240\000\240\000\240\000\240\000\240\000\240\000\240\000\239\000\239\000\238\000\238\000\237\000\237\000\236\000\235\000\234\000\233\000\232\000\232\000\231\000\231\000\230\000\230\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\229\000\228\000\228\000\228\000\227\000\226\000\226\000\226\000\226\000\225\000\225\000\224\000\224\000\224\000\223\000\222\000\222\000\222\000\222\000\222\000\222\000\221\000\220\000\219\000\219\000\218\000\218\000\217\000\217\000\216\000\215\000\215\000\214\000\214\000\213\000\212\000\212\000\211\000\210\000\209\000\209\000\209\000\209\000\209\000\209\000\209\000\208\000\207\000\206\000\205\000\205\000\205\000\204\000\204\000\203\000\202\000\202\000\202\000\202\000\202\000\202\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\201\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\200\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\199\000\198\000\198\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\197\000\196\000\196\000\195\000\195\000\195\000\194\000\194\000\193\000\193\000\193\000\193\000\192\000\192\000\191\000\191\000\190\000\190\000\189\000\189\000\188\000\188\000\187\000\187\000\186\000\186\000\185\000\185\000\184\000\184\000\183\000\183\000\182\000\182\000\182\000\181\000\181\000\181\000\181\000\180\000\180\000\179\000\179\000\178\000\178\000\177\000\177\000\177\000\177\000\177\000\176\000\176\000\176\000\176\000\175\000\175\000\175\000\174\000\174\000\174\000\174\000\174\000\174\000\174\000\173\000\173\000\173\000\173\000\173\000\173\000\173\000\172\000\172\000\171\000\171\000\170\000\170\000\170\000\170\000\170\000\170\000\169\000\169\000\168\000\168\000\167\000\167\000\166\000\166\000\165\000\165\000\164\000\164\000\163\000\163\000\162\000\161\000\161\000\161\000\161\000\161\000\160\000\160\000\159\000\159\000\159\000\158\000\158\000\158\000\158\000\158\000\158\000\158\000\158\000\158\000\157\000\157\000\156\000\156\000\155\000\155\000\154\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\153\000\152\000\152\000\152\000\151\000\150\000\149\000\148\000\148\000\147\000\147\000\147\000\146\000\146\000\146\000\146\000\146\000\145\000\144\000\144\000\143\000\142\000\142\000\141\000\141\000\140\000\140\000\139\000\139\000\139\000\139\000\139\000\139\000\138\000\138\000\137\000\137\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\136\000\135\000\135\000\134\000\134\000\133\000\133\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\132\000\131\000\131\000\130\000\130\000\129\000\129\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\128\000\127\000\127\000~\000~\000}\000}\000|\000|\000|\000|\000{\000{\000z\000z\000y\000y\000x\000x\000w\000w\000v\000v\000v\000u\000u\000u\000u\000u\000t\000t\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000s\000r\000r\000r\000q\000p\000o\000n\000m\000l\000k\000j\000i\000h\000g\000f\000f\000f\000f\000f\000f\000f\000e\000e\000e\000e\000e\000e\000d\000d\000d\000d\000d\000d\000c\000c\000b\000b\000b\000b\000b\000a\000a\000a\000a\000a\000`\000`\000_\000_\000^\000]\000\\\000\\\000[\000[\000[\000[\000[\000Z\000Z\000Y\000Y\000X\000X\000W\000W\000W\000V\000V\000V\000V\000V\000V\000U\000U\000U\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000T\000S\000S\000S\000S\000S\000S\000R\000R\000R\000R\000R\000R\000Q\000Q\000P\000P\000O\000O\000N\000N\000M\000M\000L\000L\000K\000K\000K\000K\000J\000J\000J\000I\000I\000H\000H\000G\000G\000F\000F\000E\000E\000D\000D\000C\000C\000B\000B\000B\000B\000A\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:\0009\0008\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0007\0006\0006\0006\0006\0006\0006\0005\0005\0005\0005\0005\0004\0004\0004\0004\0004\0004\0004\0004\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0003\0002\0002\0001\0001\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\0000\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/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000/\000.\000.\000-\000-\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000,\000+\000+\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000*\000)\000)\000(\000(\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000'\000&\000&\000&\000&\000%\000%\000$\000$\000$\000#\000#\000\"\000!\000!\000 \000 \000 \000\031\000\030\000\029\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\028\000\027\000\027\000\026\000\026\000\025\000\024\000\024\000\023\000\022\000\022\000\022\000\022\000\022\000\021\000\021\000\021\000\021\000\020\000\019\000\019\000\018\000\018\000\018\000\017\000\017\000\017\000\016\000\016\000\016\000\016\000\016\000\016\000\015\000\015") and goto = - ((16, "\001\228\000\155\000\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\138\000\000\000\000\001_\001\146\000)\000P\000q\001\156\001T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\152\000\000\000\000\000\000\000\000\000\000\001\208\000\000\000\000\000\000\001\242\000\000\000\000\000\000\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 \003\"\004R\004\128\000\000\000\000\000\000\000\000\000\000\000\000\004d\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016R\000\000\001\206\000\000\002\158=T\004r\000\000\016R\005v\000\000\003\212\000\000\005Z\000\000\000\000\000\000\000\000=\180\000\000\000\000\019r\0178\005j\000]\004\194\000\000\001|\000t\006T\006\158\000\000\000\000\000\000\000\000!\"\006X\003\176\000\154\000\000\000\000\000\000\002\220\000\000\000\000\000\014\000\000\000\000\000\000\000\000\000\000\004>\000\000\005\156\000\000\007.\007X\000\000\000\000\006r\000\000\004\146\000\000\0072\005\142\000\000\007\134\000\000\000\000\000\000\000\000\000\031\000\000\000\000\000\000\006\170\000\000\007\178\006\228\000\000\001\192\003\252\b*\000\000\t.\t\162\000\000\000\000\011\210\016R\000\000=\216\016R\b\"\000\000\004|\003\144\002V\000\000\000\000\b\n\007 \021x\000\000\000\000\t\216>\146\t,\000\000\012\184\tZ\000\000\r\138\0154\214\"\000\000\214L\000\000\000\209\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\000\000\004\228>\224\bn\t\204\t\162\011 \011\236\000\000\000\000\000\000(\196\011|\000\000\000\000#\152\018\022\000\000\000\000\0008\000M\000\000\000\000\000\000\000\000\003\238\000\000\000\000\000\000\000\000?\004\000\000\b\238\000\000\012 \000\000\n\018\000\000GV\018@\000\000\012\136\000\000\000\000\012\192\000\000\n\178\000\000\000\000?d\000\000\000\000\000\000\000\000\000\000\000\173\012\230\149R\012\254\000\000\000\000J\206\r&\187`\rz\000\000\000\000R\188\r\214\000\000\197\190\014\020\000\000\000\000U\206\014.\000\000\001&\024\000\000\000\214^\001&\004x\000\000\000\000\000\000\000\000\214z\000\000\215\000\001&\001&\001&\000\000\000\000\197\212\014\136\000\000\000\000\127\140\014\160\000\000\000\000\000\000\000\000\015\020\000\000\000\000\000\000\n\236\000\000\000\000\015*\000\000\011 \000\000\000\000\000\173\000\000?\194\000\000\011\176\000\000\015\220\000\000\011\246\000\000\000\173\015|\000\000\000\173\000\000@\"\000\173\015\138\197\234\015\184\000\000\000\000\140&\015\194\000\000\000\000\198\022\015\202\000\000\000\000\142\148\015\224\000\000\015\240\199\002\015\244\000\000\000\000\143\218\016\002\000\000\000\000\199.\016\006\000\000\000\000\175\002\016\026\000\000\205\228\018j\000\000@F\000\173\016:\199P\016P\000\000\000\000\206 \016V\000\000\000\000\199|\016z\000\000\000\000\2062\016\128\000\000\016\144\199\166\016\178\000\000\000\000\206\146\016\182\000\000\000\000\200h\016\192\000\000\000\000\206\214\016\196\000\000\207\024\016\202\000\000\000\000\207\242\016\234\000\000\000\000\000\173\000\000\001&YD\000\000\000\000\001&k\206\000\000\000\000\r\212\017^\000\000\000\000\000\000\000\000\000\000\015\240\000\000\007\"\018\028\000\000Al\007\220\153\238\000\000\000\000\000\000\000\000\000\173\000\000\000\000\000\000\014\004\000\000\000\000\000\000\000\000\000\000\000\000\004x\018\016\000\000\000\000\000\000\000\173#\224\000\173A\148\000\173\000\000\000\000C\180\000\000\000\000\019\004\000\000\000\000\000\000\000\000*\194/`\017z\bz\017h\186\244\000\000\000\000\000\000\000\000A\242\000\173\000\000\187\152\000\000\000\000\000\000BL\000\173\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\006\000\000\017\160\tX\018j\000\000\000\000\000\000\000\000\005(\000\000\000\000\tl\000\223\000\000\t\178\007T\017\228\t\198\006V\0078\003\024\006 \t.\019.\004\188\004\224\000\b*\194\017\250\t\240\004\150\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006|/`B\188*\194Ct*\194D\022*\194\019b\019&\154z*\194CX\000\000\000\000\000\000\000\000\155\030*\194\200\238\000\000\000\0005\150\155\170*\194\018L\nJD\166\155\180\156\014\156\154\000\000\0013\000\000\000\000\000\000\019@D\222\000\173\019b\187\166\018\130\n\170\017\030\003\156\000\000\000\000\000\000\003\238\187\236\026\204\000\165\000\000\000\000\003\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\188\158\000\000\000\000\000\000E,\000\173\000\000\000\000\029\238\000\000\000\000\000\000\006@\000\000\000\000\000\000\000\000\000\000\000\000\019\248\188\228\000\000\018\134\n\192\188\242\000\000\000\000\000\000\003\244\000\000\189\150\003\244\000\000\189\226\000\000\000\000\000\000E\142\000\173\000\000\000\0008p\000\000\000\000\000\000\000\000\000\000\003\244\190\144\003\244\190\216\012\006\000\127\000\000\000\000\012<\000\000\000\000\000\000\012\138\000\000\\N\000\000\000\000\000\000^\030\000\000\004\238\000\000\000\000\000\000\000\000\000\000\003\244\000\000\1912\000\000\000\000\000\000F\n\000\173\000\000\000\000\128\238\000\000\000\000\003\244F\220\000\173\000\000\191B\003\244\011\152\000\000\003\244\000\000\000\000\003\244\000\000\156\154\000\000\000\000\000\000\003\244\156\238\000\000\000\000\000\000\003\244\000\000\000\000\003\244\000\000\003\244\000\000\000\141\019h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\157z\003\244\023@\000\000\000\000\018\142\n\230\023\248\024B\000\000\000\000\018\144\011\024\024\174\025(\000\000\156\144*\194\018\188\011$F \000\000\157N\000\000\000\000\020X\000\000\000\000\000\000*\194\018\204\011XGl\000\000\157\212\000\000\000\000\018\220\011Z\188\144\000\000\007\136\018\156\025j\000\000G\200\000\173\019\178\000\000\000\000\001R\000\000\000\000\019J\000\000\000\000\000\000\000\000\000\000\000\000\007\236\019P\020\012\026^GT\000\000\000\000\000\000H\024\000\173\000\000\192\"\000\000\000\000\000\000H<\000\173\000\000\000\000\164L\000\000\000\000\000\000\018\244\192r\003\244\000\000\000\000\000\000\192\244\000\000\000\000\000\000IT\000\173\000\000\000\000\208X\000\000\000\000\018\244\000\000\193\018\000\000\000\000\000\000Ix\000\173\000\000\000\000\208f\000\000\000\000\018\244\208\168\000\000\193\\\000\000\000\000\000\000I\170\000\173\000\000\000\000\208\182\000\000\000\000\018\244\159\016\020^\000\000J|K>K\134\003\244\027\026\000\000K\160\003\026\000\000\005\138\000\000\000\000\000\000\000\000\000\000\000\000\005B\0270\000\000L\000\006\242\000\000\b\244\000\000\000\000\159$\0208\000\000\000\000\020B\000\000\000\000\000\000\000\000\027\140\003\128\000\000\012\194\000\000\000\000\000\000\000\000\003\244\027\142\000\000L<\003\026\000\000M\004\003\244\028P\000\000M\030\003\026\005\138\000\000\000\000\000\000\000\000\000\000\000\000\208\248\029N\003\244\029\134\000\000MZ\003\026\000\000\159r\003\244\000\000\029\170\000\000M\186\003\026\000\000\005\138\000\000\000\000\000\000\000\000\000\000\030\n\019b\019h\019\132\011z\001\128\001\176\011\166\159\198*\194\019\146\011\170NF\000\000\000\000\005\198\007\160\000\000\007\194\011\210\000-\020<\000\000\000\000\007\252\000\000\005\218\t\252\007\248\000\238\021j\000\000\000\000\1604\000\000\160\130\020\252\000\000N|\000\173O\024\000\173\000\000\000o\006|\000\000\b\230\004n\000\000\000\000\t\b\007\186\tP\nf\000\000\000\000\019\244\000\000\000\000\000\000\000\000\000\000\000\000\t|\004n\000\000\006\196\000\000\000\000\tf\000\000\000\000\000\000\021\146\000\000\000\000\000\000\000\000\000\000\020\n\000\000\000\000\t\254\n\166\000\000\000\000\n\250\000\000\004n\000\000\004n\000\000\n\028\004n\000\000\np\004n\000\000\020\014\012\014\030p\020\018\012\016Llp\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\130\019\018\000\000\000\000\000\000\020\024\012 \003h\012:\000\216\000\000\004P\000\000\000,\001\176\000\000\002h\000\000\011\000\006\254\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000,\011n\004n\000\000\000\000\000\000GT\000\000Of\000\173\030\210q\186\000\000\000\000\000\000\134\128\000\000\000\000O\196*\194\020\028\012dP\242\000\000PV\020\030\012z\031D\020\"\012\142Q@\000\000\160\240\000\000\000\000\021\182\000\000\000\000\000\000*\194\020t\012\174Q\148\000\000\000\000\000\000\000\000\001\150\000\000\002\226\031\142\020\144\012\198\193j\000\000\000\021\000\000\000\000\001\220\215\022\001&\000\000\000\000 \020\150\012\228RB\000\000\020\164\012\246\194T\003\244 \178!>\020\170\r>\135\\\000\000\000\000\000\000\000\000\000\000\161r*\194\020\180\r\134R^\000\000\136\180\000\000\020\222\r\138R\228\000\000'\\\000\000\000\000\022v\000\000\000\000\000\000\000\000\000\000\137\232\000\000\142\028\000\000\000\000S&\020\232\r\228S\238\000\000S\184\000\000\000\000\161\200\000\000\000\000\022|\000\000\000\000\000\000*\194\020\236\r\232T\232\000\000\158\202\000\000\021\020\r\236T\248\000\000\165 \000\000\020\222!n\000\000\000\000\000\184\161\242*\194\021L\014\bU\006\000\000\021l\014\014V\"\000\000\000\184\162J*\194\021\166\014\018V0\000\000\021\168\014 V\240\000\000\000\184\000\000\000\000\173\016\000\000\163\"*\194\021\176\014$WZ\000\000\021\178\014\021\178\025z\146\190\000\173\000\000\001\168\021\198\026`\000\000\000\000\000\000\000\000\000\000\000\000\147&\005~\000\000\021\200\026\208\000\000\000\000\000\000\000\000\000\000\000\000\020\186\017`\000\000\021\206\003\026\000\000\021\208\021\228\t.\000\000\003b3\252\000\000\006\022\000\000\147\128\000\173\000\173\000\000\000\000\006\216\000\000\n4\000\000\005\028\006\216\006\216\000\000\021\2364\172\000\173\147\164\000\173\017\186\000\000\000\000\000\000\018\030\000\000\000\000\003\214\000\000\b\152\026\018\021\242\027d\025\190\000\000\000\000\0056\t\144\026\028\000\000\000\000\021\246\027l\025\198\000\000\017\130\027\140\000\187\022\n\025\144\000\155\004\208\022\014\026t\000\000\000\000\027R52\000\000\000\0005\244\000\000\018:\000\000\t\210\000\000\000\000\000\000\000\000\000\000\000\000\148\004\000\173\000\000\027V6n\000\000\000\0006\186\000\000\001D\022&\026\238\000\000\000\000\183\152\020\208\007\174\000\000\148\214\000\1737,\000\000\000\0007F\000\000\000\000\018\158\000\000\0064\000\000\000\000\000\000\000\000\000\000\000\000\021\232\000\000\000\000\183\250\022\012\tL\000\000\1490\000\1738\140\000\000\000\0008\248\000\000\000\000\02249D\018\196\000\000\022<\022>\0014\001`\022B\014\224\022H\026\2449\198\019\014\000\000\022N\022T\011&\000\000\002\200:\176\000\000\b \000\000\022du2}Z\006P\025\134\006\140\000\000l\188/\000\000\000\012F\000\000\000\000\012F\000\000\000\000\012F\011h\000\000\006\160\012F\026\248;\012\019,\000\000\012F\000\000<*\000\000\209\018\000\000\182\164\014\192\000\173\000\000\183\006\209.\000\000\184L\000\000\004\228\000\000\000\000\000\000\006\216\000\000\000\000\000\000\000\000\012F\000\000\000\000\019z\000\000\0070\014\246\019\160\000\000\022h;h\020\006\000\000\000\000\000\000\020\n\000\000\000\000\001B\000\000\012F\184\144\000\000\007\144\012F\205\202\000\000\020\134\0264\022z\027\138\025\228\000\000\206Z\020\192\026<\000\000\000\000\000\000@\246\019b\000\000\000\000\000\000\000\000\000\000\000\000\020\222\000\000\020\198\000\000\025\222\022\132\n\178\007\240\000\000\026N\022\134\n\174\000\000\014d\027z\027&\022\144\026b\000\000\000\000\000\000\000\000\000\000\000\000\022\196O\142\000\000\000\000\000\000\020\222\000\000\000\000\000\000\000\000\022\204TN\000\000\000\000\000\000\000\000\000\000\000\000\027\026\002\156\0156\026\026\005\196\022\142\000\000\022\160\000\000\000Q\000\000\000\000\000\000\000\000\000\000\000\000\000\000\026\028\b\250\022\168\000\000\022\170\000\000\004\172\014\204\027\148\027<\022\224\000\000\000\000\027(\003\012\001\250\000\000\000\000\000\000\000,\004n\000\000\209\184\000\000\000\000\003\244\000\000\1978\000\000\000\000\000\000\149\180\000\173\000\000\000\000\210Z\000\000\000\000\003\244\003\244\000\000\150\002\000\173\000\000\004\172\000\000\000\000\026\006\022\176\150\246\000\000\215\226\000\000\026\b\022\196\151\200\000\000\000\184\000\000\184\252\000\000\000\000\027\160\000\000\000\000\000\000*\194\026\022\022\200\151\214\000\000\216\154\000\000\026\030\022\212\152\150\000\000\000\184\000\000\153\000\000\000\000\000\000\000\000\000\000\000;\200\022\222\000\000\022\228\148v\000\000\000\000\001&\183h\000\000\000\000\000\000\000\000\000\000\150\158\000\173\025\222\200\190\025\224\000\000\000\000\210t\025\228\000\000\000\000\201\160\025\230\000\000\000\000\210\144\025\232\000\000\0154\011\192\000\000\000\000\012\006\000\000\000\000\000\000\015\178\026\026\026N\015\178\000\000\000\000\000\000\000\173\000\000\026\028\012\208\000\000\000\000\012\226\000\000\000\000\000\000\000\000\000\173\000\149\004B\r\026\000\000\000\000\rR\000\000\000\000\000\000\000\000\r\142\000\000\000\000\r\154\000\000\000\000\000\000\000\000\000\000\n&\027h\023\020\000\000\000\000\027V\000\244\002\030\000\000\000\000\000\000\000\000\b\162\015n\027\148\011N\027n\023H\000\000\000\000\027\\\001\024\b\140\000\0003\134\026<\026>\022\232\014\144\023V\000\000\022\234\015\016\023\168\000\000\026@\026B\023\026\026n\026R\018\178\007\030\000\000\023 \016\168\000\000\016\180\023\180\000\000\026\244\000\000\018\196\004n\023\204\026\190\023,\026\254\000\000\019~\007\164\023\244\026\196\000\000\000\000\027\004\026\030\027(\000\000\000\000\000\000\015\134\014\150\027V\027.\000\000\023\252\000\000\019\234\b\232\000\000\024\006\000\000\000\147\0206\t\208\000\000\000\000\012\026\000\000\000\000\026l\023V\016z\025\172\026p\023Z\028*\026\136\000\000\000\000\185j\024\016\026\226\023^\0286\026\144\000\000\000\000\185\180\024\020\026\234\000\000\000\000\000\000y\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024\026\000\000\026\140\023b\020\148\b\232\027\128\000\000\027\000\000\000\027\004\023d\011\226\000\000\015\242\000\000\011\150\027\212\0240\027\012\000\000\000\000\000\000\000\000\000\000\000\000\004n\000\000\000\000\153\002\000\173\026`\202\026\026b\000\000\000\000\210\216\026f\000\000\000\000\202N\026j\000\000\000\000\211\028\026l\000\000\026v\202r\026z\000\000\000\000\2112\026\128\000\000\000\000\202\198\026\134\000\000\000\000\211|\026\138\000\000\211\184\022\202\000\000\153J\000\173\026\144\203\138\026\146\000\000\000\000\211\204\026\148\000\000\000\000\203\170\026\150\000\000\000\000\211\224\026\152\000\000\026\156\203\222\026\160\000\000\000\000\212\150\026\162\000\000\000\000\203\254\026\164\000\000\000\000\212\232\026\166\000\000\001&\190\218\026\168\204&\026\170\000\000\000\000\212\252\026\172\000\000\000\000\204\194\026\176\000\000\000\000\2130\026\182\000\000\001&\213D\026\184\205\006\026\192\000\000\000\000\213\158\026\196\000\000\000\000\205n\026\198\000\000\000\000\213\224\026\202\000\000\012\152\000\000\000\000\000\173\000\000\000\000\000\000\000\000\000\000\153\190\000\000\014\030\000\000\0278\000\000\014(\000\000\000\173\027:\000\000\028\006\0248\000\000\000\000\000\000;\022\000\000<\240\000\000\000\000\000\000\000\000\000\000\t0\000\000\000\000\000\000\001\016\001T\000\000\000\000\000\000\000\000\000\000\016@\001T\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\183\000\000\000\000\000\000<\146\000\000\000\173\000\000\000z\000\000\000\000\000\000\001\134\000\000\000\000\000\000\001\220\000\000\000\000\000\000\000M\000\000\000,\000\000\000i\000\000\004n\000\000\000\019\000\000\000\000\000\000\186\168\003\244\000\000\000\000\005\238\000\000\000\000\000\000\000\000\012\130\005r\027D\004\n\000\000\000\000\000\000\000\000\000\000\000\000\027F\004\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0000R\000\000\024:\000\000\000\000\000\000\000\000\0060\bR\015L\"\180\000\000\000\000\024D+Z\000\000\000\000\000\000\024J7\224\000\000\000\000\000\000\000\000"), (16, "\011\026\004^\004q\004_\004`\002\157\002[\004a\r\029\002_\002\131\002\155\011\221\000\182\002\156\002\157\006F\002\158\000\200\r<\002\132\004\212\011\027\011:\011\026\004^\011\029\004_\004`\002\157\004\224\004a\b\164\0008\b\182\000\182\011\030\011;\002\159\004\184\000\200\002\171\002\172\002\177\011q\004\212\011\027\011:\004\128\002\134\011\029\002_\rT\006\160\004\224\004D\000\252\001\"\001\b\001\t\011\030\011;\001#\004\245\001\002\001\005\002[\rP\t\241\002_\002`\002_\011\031\002\224\000\201\004q\011>\002[\002\225\002\228\002_\002\131\004^\012W\004_\004`\002\157\004\245\004a\002[\000\193\002\150\002_\002\131\rX\004\014\011\031\000\204\rU\011\001\011>\n\199\004\212\003\024\0046\000\206\006H\002_\004,\012\r\004\031\004\224\011 \000\165\0040\006\160\001\002\rQ\rD\000\205\002\134\004\128\000\252\005\b\002_\004\129\t\202\000A\b\182\011!\001\002\001\005\002\134\002\178\011\003\004|\011 \000\157\rY\004d\011W\004\208\002_\n\201\004\245\011\224\011\225\005\b\001\006\002\179\012X\004,\002_\011!\r=\011\005\002\206\0040\011?\001\002\000<\r-\n\202\004d\0041\004\208\002_\n\204\011\255\rF\b:\011\b\011\228\t\000\000\167\011@\001`\001\b\001\t\001r\011X\001a\011?\003P\0042\004D\011\006\011$\001$\bj\004\186\011%\001(\001)\011'\011Y\001\002\011,\004\129\011@\004F\004J\t\175\b,\005\b\005\r\012\b\0041\005\014\000\193\005&\011$\0118\007\201\001!\011%\004\209\004\187\011'\000\193\004d\011,\004\208\002_\012\023\005'\002\204\002\206\004\211\005\r\000q\002\157\005\014\0119\005&\002\205\0118\002\206\011\026\004^\004\209\004_\004`\002\157\0008\004a\r\027\r.\0008\005'\006L\002\206\004\211\000;\001\b\005)\005\n\0119\012\005\004\212\011\027\011:\011\026\004^\011\029\004_\004`\002\157\004\224\004a\011I\001`\001\b\001\t\011\030\011;\001a\000@\002[\005)\b*\002_\002\131\004\212\011\027\r\"\005\r\004}\011\029\005\014\002[\005&\004\224\002_\002\131\000\193\r/\004\209\011\030\011;\000n\004\245\rH\r6\001\002\004q\005'\001$\002\206\004\211\011\031\001(\001)\002[\011>\001\002\002_\002`\000\144\000\252\004^\004\019\004_\004`\002\157\004\245\004a\001\002\001\005\004q\004o\004J\n\147\bk\011\031\002[\005)\011\007\002_\002`\004\212\012\011\012\012\b/\rL\n\149\006\160\b\149\n\199\004\224\011 \004\128\r7\004\192\002_\rI\011\175\005%\b\215\012\011\012\012\005\b\002[\001\002\006\160\002_\002\131\011!\011\228\t\000\n\199\004u\011\003\000\160\011 \004\128\b/\004d\002_\004\208\002_\bp\004\245\r8\002\145\005\b\011\228\t\000\001(\nH\n\201\011!\001\002\011\005\000\206\n7\011?\rM\000\212\004\031\002_\004d\001$\004\208\002_\004\178\001(\001)\r9\n\202\001\002\n8\n\201\011@\n\204\nO\004\191\000[\n\244\011V\011?\004|\000\144\nJ\011\006\011$\001\b\000\193\004\129\011%\011L\n\202\011'\011n\001r\011,\n\204\011@\003R\000\146\n\220\r\011\005\b\005\r\nL\000_\005\014\000\148\005&\011$\0118\012\t\004\129\011%\004\209\000\193\011'\r$\004d\011,\004\208\002_\000c\005'\000:\002\206\004\211\005\r\000>\nM\005\014\0119\005&\011X\0118\011m\011\026\004^\004\209\004_\004`\002\157\002[\004a\011A\002_\002\131\005'\011Y\002\206\004\211\012\n\001\b\005)\005\n\0119\002\144\004\212\011\027\011:\011\026\004^\011\029\004_\004`\002\157\004\224\004a\007C\001`\001\b\001\t\011\030\011;\001a\002[\001\b\005)\002_\002`\002\153\004\212\011\027\011:\005\r\bk\011\029\005\014\007L\005&\004\224\002_\002\131\001&\001'\004\209\011\030\011;\000x\004\245\rl\004`\002\157\r\b\005'\r\n\002\206\004\211\011\031\004q\n\199\000\148\011\176\011Z\011[\002\155\002\145\000\252\002\156\002\157\001(\002\158\b\174\004\245\001\002\001\002\001\005\000\254\011\\\011]\006a\007W\011\031\004}\005)\001\002\011C\000\144\004~\006g\011^\t\000\002\159\004\184\002\224\002\171\002\172\002\177\011 \003\202\002\228\004\130\n\201\000\252\t\241\004\128\b\220\002_\002_\005\b\006\252\001\002\001\005\002_\002\131\011!\rt\004`\002\157\011Z\011[\n\202\011 \004\185\000\206\004d\n\204\004\208\002_\n\004\n\211\0008\002\145\005\b\011\\\011]\001(\b\177\001\b\011!\001\002\011\221\011j\n7\011?\000\216\011^\t\000\np\004d\001$\004\208\002_\007(\001(\001)\002\145\002\b\001\002\n8\001(\011@\n\005\n?\001\002\000\170\001&\001'\011?\001\007\001\b\001\t\001r\011$\001\n\004q\003\170\011%\nN\n7\011'\0008\004\129\011,\b\179\011@\rm\002\178\004\208\002_\t\244\005\r\002\206\0126\005\014\n8\005&\011$\0118\n9\000w\011%\004\209\002\179\011'\b\216\002_\011,\000\146\006\160\000\149\005'\nJ\002\206\004\211\005\r\000\148\004r\005\014\0119\005&\004\128\0118\000v\002_\002\011\004\209\011\026\004^\0116\004_\004`\002\157\nL\004a\005'\000\184\002\206\004\211\bN\b\030\005)\000\252\0119\004\186\rw\rx\000\193\004\212\rz\001\002\001\005\ru\011\029\004\208\002_\002[\004\224\nM\002_\002`\004q\007\199\011\030\r|\005)\004\014\005%\002\145\012\150\006E\006M\001(\001\011\011\224\011\225\001\002\002\230\000\194\004,\002\204\002\190\000\144\002\228\011\139\0040\003\173\001\002\000\127\002\205\004\245\002\206\r`\004`\002\157\000\139\011K\011\247\004\129\011\031\001\012\011\228\t\000\b\154\001(\001)\006\160\004\128\001\002\nr\002_\001`\001\b\001\t\006h\000\144\001a\004\014\000\193\011\003\011r\n\154\011\026\004^\000\252\004_\004`\002\157\r\139\004a\004,\002\155\001\002\001\005\001_\0041\0040\000\252\001\002\011 \011\005\r\131\004%\004\212\r\132\001\002\001\005\004&\011\029\000\206\005\b\000\228\004\224\011d\004\031\0042\011!\002a\011\030\r\140\000\193\004^\002\176\004_\004`\002\157\004d\004a\004\208\002_\rb\011\006\002\224\001?\007\201\001\224\001@\006Q\002\228\001A\001B\004\212\r\127\b\223\004\129\004\245\0041\001`\001\b\001\t\004\224\000\193\001a\n\028\011\031\n\158\004\014\t\158\b\222\004O\n7\002U\011@\000\146\000\197\000\147\0042\t\241\b\224\004,\002_\000\148\b/\n7\011$\0040\n8\001\002\011%\002Q\n>\011'\000\144\004\245\011,\000\142\005%\b\178\rc\n8\004\208\002_\005\r\nW\011 \005\014\000\146\005&\000\186\0118\000\156\b+\001$\004\209\000\148\005\b\001(\001)\002\190\000\252\001\002\011!\005'\003\186\002\206\004\211\000\193\001\002\001\005\000\164\0119\004d\000\206\004\208\002_\0041\002O\004\031\011\026\004^\000n\004_\004`\002\157\b\225\004a\r\144\002[\001r\006\160\002_\002`\005)\005\b\001r\0042\000\193\004\"\003\172\004\212\011\027\011o\b\177\011R\011\029\002\206\000\163\011@\004\224\004d\004,\004\208\002_\0116\011\030\011;\0040\002[\001\002\011$\002_\002`\n\199\011%\006\160\004q\011'\002[\001$\011,\002_\002`\001(\001)\004%\004q\001\002\005\r\004B\004&\005\014\004\245\005&\006\160\0118\005\n\0048\004q\004\209\b\179\011\031\n3\n\199\000\146\001\002\000\192\000\208\005'\bb\002\206\004\211\000\148\n\199\004|\n\201\0119\0041\b\166\000\206\000\169\000\144\004\128\004\018\004\031\002_\005\r\n@\b\170\005\014\000\190\005&\004\128\b4\n\202\002_\000\211\004\209\005)\n\204\b\173\011 \004q\n\208\004\128\n\201\005'\002_\002\206\004\211\002[\000\189\005\b\002_\002`\n\201\011\026\004^\011!\004_\004`\002\157\012+\004a\n\202\012=\000\234\001\251\004d\n\204\004\208\002_\003T\n\205\n\202\r\131\005)\004\212\r\132\n\204\006\160\t\179\011\029\n\215\b\181\n\199\004\224\011?\004\128\000\193\002\224\002_\011\030\r\135\004\014\n\138\002\228\004M\002[\004\129\004|\002_\002`\000\144\011@\006\160\001\b\004,\000\196\004\129\012\020\004\014\n:\0040\004K\001\002\011$\b\196\000\193\004\245\011%\004\129\003\\\011'\004,\001r\011,\n\201\011\031\003\183\0040\004%\001\002\n\199\005\r\004z\004&\005\014\003W\005&\004\014\0118\000\146\004\015\000\199\004\209\n\202\004%\000\193\000\193\000\148\n\204\004&\004,\005'\n\250\002\206\004\211\006\160\0040\001\249\001\002\0119\0041\006\160\004\129\004}\011+\011 \004q\002[\004q\000\210\002_\002`\n\201\b\208\b\210\b\212\005\b\0041\002R\b/\0042\005)\011!\011\026\004^\t\012\004_\004`\002\157\006\162\004a\n\202\004d\005%\004\208\002_\n\204\0042\000\144\r&\011\012\006\160\to\b/\004\212\011\027\0041\r\138\t\153\011\029\t\174\004%\004\128\004\224\004\128\002_\004&\002_\t\193\011\030\011E\000\146\004%\000\215\012P\000\226\0042\0043\011@\000\148\001\007\001\b\001\t\002\145\000\233\001\n\002\031\001(\001\015\000\193\011$\001\002\012\024\nw\011%\001\029\004\245\011'\nP\004}\011,\001\007\001\b\001\t\004\014\011\031\001\n\004$\005\r\001\017\000\167\005\014\004<\005&\002\017\0118\001\218\004,\n\194\004\209\000\241\004\014\t\198\0040\004(\001\002\t\241\0008\005'\002_\002\206\004\211\012\n\b\177\004,\006\160\0119\011\221\012\130\004\129\0040\004\129\001\002\000\244\002\224\011 \001\007\001\b\001\t\n\162\002\228\001\n\n.\004q\001\015\002_\005\b\004\014\005)\004%\004*\001\029\011!\b\171\004&\001\027\004=\001\222\000\193\000\146\004,\001-\004d\0041\004\208\002_\0040\000\148\001\002\004\014\b\179\004;\0045\n:\001\011\011\236\001\027\b\177\0012\001\002\0041\011H\004,\0042\000\144\t\178\t\129\002>\0040\004\128\001\002\t\147\002_\011\221\t\203\001\011\r(\002G\011@\001\219\0042\001\012\011`\000\206\002\206\001(\001)\011/\004\031\001\002\011$\n{\nX\004%\011%\b/\0041\011'\004&\001r\011,\001\027\001\012\003\185\b\179\0008\001(\001)\005\r\005%\001\002\005\014\002J\005&\004\014\0118\0042\004H\0041\004\209\001\011\012\002\002M\t\192\0012\b\182\004@\004,\005'\004\014\002\206\004\211\004R\0040\001\002\001\002\0119\006\160\0042\b\177\011\224\011\225\004,\002Y\000\144\001>\004\129\001\012\0040\000\193\001\002\001(\001)\n<\001?\001\002\002_\001@\005)\000\193\001A\001B\011\237\012\000\001\007\001\b\001\t\011\228\t\000\001\n\004q\004\014\001\015\000\144\004U\001?\001r\n:\001@\001\029\006V\001A\001B\0041\004,\000\146\b\179\0011\002}\001Y\0040\001\022\001\002\000\148\000\193\001s\002\254\002\157\0041\000\144\001\007\001\b\001\t\0042\000\193\001\n\011\224\011\225\001\015\004%\001Y\001>\011*\012V\004&\001\029\004\128\0056\0042\002_\001?\011\221\b\196\001@\006\161\000\193\001A\001B\011\237\012\000\001\007\001\b\001\t\011\228\t\000\001\n\002\141\000\206\001\015\b/\0041\012\137\004\031\004\014\b/\001\029\004x\002\185\002\155\001\027\001\021\002\156\002\157\005%\002\158\001Y\004,\011\221\005%\001r\0042\001s\0040\006^\001\002\000\146\003&\001;\001\011\012\017\000\193\000\144\0012\000\148\n\189\002\159\002\186\002_\002\171\002\172\002\177\b\211\b\210\b\212\004%\001\027\001r\011\221\001r\004+\006p\003,\006\145\004\129\000\146\001\012\001z\0033\004\014\001(\001)\004\132\000\148\001\002\001\011\012\141\000\144\n\213\0012\002\187\002_\004,\0041\bw\002\157\001\027\004%\0040\000\193\001\002\000\146\004I\001\127\003?\003F\t\206\002\188\002\234\000\148\000\193\004\014\001\012\0042\b\130\001\011\001(\001)\b\196\0012\001\002\003\250\000\144\bB\004,\t\017\001\007\001\b\001\t\000\193\0040\001\n\001\002\001\020\001\015\011\224\011\225\001\236\000n\004%\001>\001\029\001\012\003\253\004L\004\001\001(\001)\0041\001?\001\002\002\191\001@\b\196\000\193\001A\001B\011\237\012\000\001\237\000\193\000\144\011\228\t\000\n\247\004\t\002\005\002\179\0042\0008\002_\011\224\011\225\000\146\012Y\001\134\001>\011\213\b\210\b\212\0041\000\148\006\136\002\157\001Y\001?\000\193\000\193\001@\000\144\001s\001A\001B\011\237\012\000\004Y\004\\\r\005\011\228\t\000\0042\011\224\011\225\000\193\004l\000\144\001>\002\193\000\146\001\025\001\138\001\027\011\216\b\210\b\212\001?\000\148\004n\001@\000\144\001Y\001A\001B\011\226\011\227\000\193\001s\000\193\011\228\t\000\001\011\001\007\001\b\001\t\0012\000\144\001\n\001/\004\152\001\015\001\242\012X\001\236\000\146\002\204\002\217\001\029\000\193\bH\004\157\001Y\000\148\000\144\002\211\b\196\002\206\001s\001\012\b)\004\160\bV\001(\001)\b\196\001\237\001\002\006\138\002\157\001\007\001\b\001\t\002\003\006\160\001\n\002\190\004\172\001\015\000\193\000\193\001\236\007C\b]\000\146\001\029\002\221\004\014\000\193\004\183\b\133\0016\000\148\b\196\001\007\001\b\001\t\td\b/\001\n\004,\000\193\001\015\001\237\004\196\001\236\0040\n\206\001\002\001\029\001\238\tj\000\146\004\200\003\200\011\230\b\210\b\212\001\027\0019\000\148\b\196\000\193\001>\011\233\b\210\b\212\001\237\000\146\t\197\b\231\b\182\001?\000\193\002\001\001@\000\148\001\011\001A\001B\001\252\0012\000\146\000\193\b\236\b\191\t\000\001\242\001r\004\206\000\148\b\196\011\241\b\210\b\212\001\027\0041\b\196\000\146\000\193\b\240\t\006\t\222\002\157\001\012\000\144\000\148\001Y\001(\001)\000\144\000\193\001\002\001s\001\011\000\146\0042\t\216\0012\001\027\011\244\b\210\b\212\000\148\001\242\004\216\000\193\004\222\001\007\001\b\001\t\t\212\001j\001\n\004\014\000\193\001\015\b\136\001\011\001\253\006\160\001\012\0012\001\029\001G\001(\001)\004,\001\242\001\002\011\249\b\210\b\212\0040\000\206\001\002\011\252\b\210\b\212\n\b\006\160\001\255\0008\b/\001i\001\012\006\160\n1\001>\001(\001)\000\193\004\241\001\002\005\000\b/\005\006\001?\0111\004\014\001@\tu\b\141\001A\001B\001\252\001\007\001\b\001\t\011\026\005\019\001\n\004,\005\023\001\015\005\030\b/\001\253\0040\t{\001\002\001\029\005\"\0041\005-\001>\001M\000\193\r\131\000\193\b/\r\132\001Y\001\027\001?\011\029\0051\001@\001s\001\255\001A\001B\001\252\0042\b/\011\030\000\146\t\188\r\016\001>\011f\000\146\001\011\r\020\000\148\012\030\0012\012I\001?\000\148\002_\001@\001\242\001\002\001A\001B\001\252\t\194\0041\001Y\n\251\005=\001Q\t\199\000\193\001s\000\193\004\014\000\193\001\012\b\144\011\031\0116\001(\001)\005A\005H\001\002\0042\005L\004,\001\027\000\193\001Y\005S\000\193\0040\000\193\001\002\001s\001\007\001\b\001\t\001T\000\193\001\n\000\193\005W\001\015\004\014\001\011\001\236\b\147\005^\0012\001\029\001X\005b\000\193\012\"\001\242\011 \004,\005i\001\007\001\b\001\t\001\002\0040\001\n\001\002\012\015\001\015\001\241\0116\t\135\r4\001\012\011!\001\029\005m\001(\001)\001>\005t\001\002\0041\005x\005\127\001\007\001\b\001\t\001?\000\193\001\n\001@\005\131\001\015\001A\001B\n\228\001m\005\138\r\134\001\029\t\141\0042\000\193\000\193\t\224\005\142\000\193\005\149\001q\b/\012Q\000\193\001v\0041\005\153\005\160\t\238\t\000\001\030\011#\001\027\005\164\001Y\001}\000\193\r\024\006\160\b/\001s\011\192\000\193\011$\012\139\0042\000\193\011%\001>\n\181\011'\001\011\000\193\011,\005\171\0012\001\027\001?\n\206\005\175\001@\001\242\0116\001A\001B\001\252\005\182\005\186\0118\000\193\005\193\011P\t\000\000\193\006\160\001\011\000\193\000\193\001\012\0012\005\197\001\027\001(\001)\004\014\000\193\001\002\b\168\012S\0119\002\155\000\193\001Y\002\156\002\157\005\204\002\158\004,\001s\000\193\001\011\000\193\001\012\0040\0012\001\002\001(\001)\000\193\000\193\001\002\001\007\001\b\001\t\006\160\000\193\001\n\002\159\003\017\001\015\002\171\002\172\002\177\005\208\001\136\t\204\001\029\001\012\0116\005\215\001\141\001(\001)\011\220\t\000\001\002\000\193\001\154\005\219\005\226\002\155\000\193\001>\002\156\002\157\001\030\002\158\005\230\000\193\000\193\005\237\001?\000\193\0041\001@\b/\012\152\001A\001B\001\252\001\149\t\233\000\193\012G\012Z\001\153\001>\002\159\004\184\001\157\002\171\002\172\002\177\0042\r5\001?\0120\000\193\001@\005\241\001\161\001A\001B\t\234\001\002\b/\001Y\006\160\001\170\005\248\001\165\001>\001s\005\252\006\003\006\160\001\027\001\169\006\007\001\173\001?\t\246\006\014\001@\006\018\000\193\001A\001B\001\129\001\177\001Y\000\193\002\178\006\025\006\029\001\011\001s\006*\0060\0012\000\193\000\193\001\007\001\b\001\t\001\191\0067\001\n\002\179\000\193\001\015\002_\000\193\012^\t\000\001Y\001\186\001\029\006;\001\190\006\160\001s\001\012\001\007\001\b\001\t\001(\001)\001\n\006?\001\002\001\015\006\174\006\178\006\188\006\192\001\030\001\194\001\029\006\202\001\198\000\193\002\178\006\206\001\007\001\b\001\t\001\143\001\207\001\n\004\014\000\193\001\015\t\156\t\249\000\193\000\193\001\030\002\179\001\029\000\193\002_\n'\004,\000\193\001\202\000\193\001\206\0014\0040\006\160\001\002\001\210\006\217\001\214\000\193\000\193\001\217\001\030\000\193\000\193\006\221\006\231\006\235\006\160\002\204\001>\001\027\000\193\001\180\006\245\006\249\007\005\001\221\002\205\001?\002\206\001\235\001@\011\r\000\193\001A\001B\001\129\007\t\001\245\001\011\nG\001\027\007\019\0012\000\193\007\023\002\n\000\193\000\193\000\193\000\193\007!\0041\004^\000\193\004_\004`\002\157\000\193\004a\001\011\002\023\001\027\001Y\0012\002\030\001\012\006\160\002\204\001s\001(\001)\0042\004\212\001\002\007%\007-\002\205\011\138\002\206\004\014\001\011\004\224\t\186\002=\0012\006\160\001\012\000\193\007\179\nK\001(\001)\004,\011\015\001\002\000\193\000\193\000\193\0040\0071\001\002\002A\007\\\nq\000\193\000\193\000\193\001\012\001\007\001\b\001\t\001(\001)\001\n\004\245\001\002\012\171\002L\000\193\001\007\001\b\001\t\006\160\000\193\001\n\002S\000\193\001\015\002X\001>\004\014\t^\000\193\012*\001\029\007d\007j\006\160\001?\004\014\007n\001@\0125\004,\001A\001B\001\129\007s\0041\0040\001>\001\002\004,\n\148\007y\007}\000\193\000\193\0040\001?\001\002\000n\001@\tZ\t\224\001A\001B\001\129\0042\002|\007\133\001>\n\174\001Y\005\b\007\137\006\160\002\137\007\159\001s\001?\000\193\007\165\001@\000\193\t\227\001A\001B\001\129\007\185\004d\003\019\004\208\002_\001Y\006\160\002\140\003\011\002\184\0041\001s\003\023\003%\003+\001\027\001\007\001\b\001\t\0041\n\185\001\n\007\191\001\011\001\015\007\195\001Y\012\187\000\193\000\193\0042\001\029\001s\000\193\001\011\n\219\0032\005\n\0012\0042\000\193\0039\t\251\004\014\003>\007\208\012<\000\193\000\193\007\212\001\012\007\221\003E\003S\001(\001)\004,\006\160\001\002\006\160\003O\001\012\0040\000\193\001\002\001(\001)\005\r\000\193\001\002\005\014\000\193\005&\003U\n\248\000\193\003]\007\225\004\209\007\234\007\238\007\246\000\193\001\007\001\b\001\t\t\n\005'\001\n\002\206\004\211\001\015\003u\n\252\001\007\001\b\001\t\004\014\001\029\001\n\012O\001\027\001\015\000\167\000\193\003\195\007\250\000\193\003\189\001\029\004,\b\001\0041\003\192\b\007\b\011\0040\005)\001\002\t\001\001\011\006\160\b\152\001?\0012\001>\001@\000\193\t\224\001A\001B\000\193\0042\000\193\001?\004\014\003\249\001@\012U\t\224\001A\001B\t\234\004\000\011\000\004\012\011\004\001\012\004,\n&\006\160\001(\001)\006\160\0040\001\002\001\002\004\024\012\242\000\193\n\143\000\193\000\193\000\193\b\016\b\022\0041\004\026\001\027\001Y\004^\004/\004_\004`\002\157\001s\004a\b\026\004?\001\027\b\"\b&\004\014\b2\b@\012\129\0042\001\011\000\193\004E\004\212\0012\bF\000\193\bT\004,\000\193\000\193\001\011\004\224\b[\0040\0012\001\002\0041\004X\011\172\004[\011\016\bl\004k\001>\004\151\004\156\001\012\004\159\004\166\b~\001(\001)\001?\b\153\001\002\001@\0042\001\012\001A\001B\t\252\001(\001)\b\159\004\245\001\002\001\007\001\b\001\t\011\023\b\185\001\n\011&\b\204\001\015\b\206\b\253\t\002\000\193\000\193\t\024\001\029\t\029\0041\001\007\001\b\001\t\001Y\004\171\001\n\t*\000\193\001\015\001s\000\193\000\193\t.\000\193\000\193\001\029\t<\tF\004\182\0042\tJ\004\195\000\193\tS\000\193\tW\001>\t\224\004\199\tb\000\193\004\205\th\ts\ty\001?\004\215\001>\001@\bm\005\b\001A\001B\t\234\t\133\t\224\001?\000\193\n\157\001@\t\139\000\193\001A\001B\t\234\t\152\004d\004\221\004\208\002_\004\228\000\193\004\240\004\250\004\255\t\166\n\167\001\027\000\193\t\173\001Y\000\193\t\177\000\193\000\193\000\193\001s\t\183\000\193\t\190\000\193\001Y\t\196\t\221\005\005\001\027\001\011\001s\000\193\t\237\0012\t\245\005\n\006\163\000\193\001\007\001\b\001\t\000\193\000\193\001\n\t\248\000\193\001\015\001\011\000\193\n\000\000\193\0012\n\r\001\029\000\193\005\018\001\012\000\193\000\193\000\193\001(\001)\n\019\n\030\001\002\005\r\n)\n;\005\014\000\193\005&\005\022\001\030\006\160\001\012\000\193\004\209\n-\001(\001)\000\193\nB\001\002\012\189\nR\005'\n\\\002\206\004\211\004^\000\193\004_\004`\002\157\000\193\004a\nc\000\193\ng\006\160\005\029\005!\000\193\006\160\000\193\005,\0050\000\193\000\193\004\212\n\132\005<\005@\006\160\000\193\005)\000\193\n\172\004\224\005G\001>\n\249\n\177\001\027\n\216\t1\000\193\n\182\005K\001?\n\212\000\193\001@\n\188\000\193\001A\001B\t\234\001>\006\160\005R\n\196\001\011\n\254\000\193\000\193\0012\001?\000\193\000\193\001@\004\245\011\018\001A\001B\t\234\005V\011)\011.\000\193\0114\005]\011S\000\193\001Y\006\160\000\193\005a\000\193\001\012\001s\011U\006\160\001(\001)\011a\011c\001\002\000\193\011\143\000\193\004^\001Y\004_\004`\002\157\011<\004a\001s\011\149\011F\011\163\000\193\001\007\001\b\001\t\005h\011\169\001\n\000\193\011i\004\212\011\181\000\193\000\193\011\183\000\193\012\029\012!\000\193\004\224\005\b\000\193\006\160\005l\000\193\005s\t%\004^\006\160\004_\004`\002\157\000\193\004a\000\193\012\004\004d\001b\004\208\002_\006\160\012'\001>\000\193\012-\005w\005~\004\212\000\193\000\193\0129\001?\004\245\000\193\001@\005\130\004\224\001A\001B\001\129\006\160\012\019\000\193\t$\006\160\005\137\000\193\000\193\012\031\006\160\000\193\012]\005\n\012a\006\160\012i\006\160\012\128\012\136\006\160\000\193\004^\000\193\004_\004`\002\157\001Y\004a\000\193\004\245\006\160\005\141\001s\000\193\006\160\006\160\000\193\005\148\000\193\000\193\006\160\004\212\005\r\006\160\005\152\005\014\001\011\005&\005\159\012#\004\224\005\163\005\b\004\209\005\170\0121\005\174\t!\005\181\005\185\005\192\005\196\005'\000\193\002\206\004\211\000\193\0127\004d\005\203\004\208\002_\000\193\001\012\001\007\001\b\001\t\001(\001)\001\n\005\207\001\002\004^\004\245\004_\004`\002\157\012>\004a\005\b\005\214\012M\005)\000\193\005\218\000\193\012R\000\193\005\225\000\193\000\193\012g\004\212\012o\005\n\004d\012}\004\208\002_\005\229\b\216\004\224\005\236\005\240\005\247\005\251\006\002\012\143\t \b\242\006\006\r\026\r}\001\007\001\b\001\t\006\r\r\136\001\n\006\017\r\141\001\015\006\024\006\028\005\r\006$\006)\005\014\001\029\005&\006/\005\n\0066\005\b\004\245\004\209\001?\006:\006B\001@\006G\006d\001A\001B\005'\006s\002\206\004\211\006\151\004d\006\173\004\208\002_\006\177\006\187\006\191\006\201\006\205\003K\006\216\006\220\005\r\006\230\006\234\005\014\006\244\005&\006\248\001\011\007\004\007\b\001h\004\209\007\018\005)\007\022\007 \007$\007,\0070\007=\005'\007[\002\206\004\211\005\n\007c\007i\007m\007r\007x\007|\007\132\007\136\005\b\001\012\007\153\007\158\001\027\001(\001)\007\164\007\184\001\002\007\190\007\194\007\207\007\211\007\220\007\224\004d\005)\004\208\002_\007\233\005\r\007\237\001\011\005\014\007\245\005&\0012\007\249\b\000\b\003\b\006\004\209\004^\b\n\004_\004`\002\157\b\015\004a\b\018\005'\b\021\002\206\004\211\b\025\b!\b%\b.\b1\001\012\b?\005\n\004\212\001(\001)\bE\bS\001\002\bZ\be\bn\004\224\b}\b\158\b\161\b\162\b\184\b\252\t\t\b\203\005)\b\229\b\238\001?\t\004\t\r\001@\t\023\t\028\001A\001B\005\r\t)\b\248\005\014\t-\005&\002\155\t;\tE\002\156\002\157\004\209\002\158\004\245\tI\tR\tV\t\\\ta\tg\005'\tr\002\206\004\211\tx\t\132\t\138\b\251\t\151\t\160\t\162\t\165\001>\002\159\002\160\t\176\002\171\002\172\002\177\t\172\t\189\001?\t\182\t\184\001@\t\187\t\201\001A\001B\003Q\005)\t\200\t\220\001\007\001\b\001\t\t\228\t\232\001\n\t\231\t\236\001\015\t\247\n[\001\007\001\b\001\t\t\255\001\029\001\n\n\002\n\t\001\015\005\b\n\017\n\024\001Y\n#\nZ\001\029\nS\nT\001s\nY\n]\n^\nd\ni\nm\004d\n\127\004\208\002_\n\134\n\183\n\207\n\217\011\025\003\167\011\019\011\020\011\024\002\155\011(\0117\002\156\002\157\0112\002\158\003\180\0113\001\007\001\b\001\t\0115\011N\001\n\011T\011b\001\015\011g\011h\011l\011\142\011\148\005\n\001\029\011\157\002\178\002\159\002\186\011\162\002\171\002\172\002\177\011\168\011\203\011\198\001\027\011\202\011\206\011\210\011\223\012\003\002\179\012\007\012\018\002_\012\022\001\027\012 \012\028\012,\012&\012(\005\r\003\206\001\011\005\014\0123\005&\0012\012@\002\187\012:\012?\004\209\012B\001\011\012E\012D\012L\0012\012K\012\\\005'\012`\002\206\004\211\012b\002\188\003\204\012c\012q\001\012\012j\012k\012p\001(\001)\012\127\012\131\001\002\012\133\012\145\001\012\001\027\012\142\012\144\001(\001)\012\163\012\158\001\002\012\162\005)\012\166\012\170\001\007\001\b\001\t\000n\012\179\001\n\012\174\001\011\001\015\012\178\003\210\0012\012\182\002\204\012\186\001\029\002\191\012\200\012\195\012\199\012\203\012\207\002\205\012\216\002\206\012\211\012\215\012\219\012\223\012\234\012\229\012\233\002\179\012\237\001\012\002_\012\241\012\252\001(\001)\001>\012\247\001\002\012\251\012\255\003\213\r\003\r\018\r\023\001?\r\025\001>\001@\rg\ro\001A\001B\003\171\000\000\000\000\001?\000\000\000\000\001@\003\221\000\000\001A\001B\003\184\000\000\000\000\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001\027\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\001Y\000\000\000\000\001>\000\000\000\000\001s\000\000\000\000\001\011\000\000\000\000\001?\0012\002\204\001@\000\000\000\000\001A\001B\003\171\000\000\000\000\002\211\002\155\002\206\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001Y\000\000\000\000\000\000\002\159\002\186\001s\002\171\002\172\002\177\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\187\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\002\188\003\225\002\155\003\227\000\000\002\156\002\157\001?\002\158\000\000\001@\000\000\000\000\001A\001B\003\216\004^\000\000\004_\004`\002\157\003\235\004a\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\170\000n\002\171\002\172\002\177\000\000\004\212\000\000\003\231\000\000\000\000\000\000\001Y\001\027\002\191\004\224\000\000\000\000\001s\000\000\000\000\000\000\t\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\179\001\027\001\011\002_\000\000\000\000\0012\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\004\245\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\004\212\000\000\001\012\000\000\000\000\003\242\001(\001)\000\000\004\224\001\002\000\000\000\000\002\193\000\000\000\000\bz\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\004^\000\000\004_\004`\002\157\000\000\004a\000\000\002\178\000\000\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\004\212\002\204\005\b\000\000\002\179\000\000\000\000\002_\000\000\004\224\002\211\000\000\002\206\000\000\000\000\000\000\007\168\001>\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\171\001>\000\000\004^\000\000\004_\004`\002\157\004\245\004a\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\239\005\b\005\n\000\000\000\000\004\212\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\004\224\001s\000\000\004d\000\000\004\208\002_\007_\004^\000\000\004_\004`\002\157\001Y\004a\002\204\000\000\000\000\005\r\001s\000\000\005\014\000\000\005&\002\205\000\000\002\206\000\000\004\212\004\209\000\000\000\000\000\000\004\245\000\000\000\000\005\b\004\224\005'\005\n\002\206\004\211\000\000\000\000\007D\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\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\005)\005\r\004\245\000\000\005\014\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\004^\000\000\004_\004`\002\157\000\000\004a\005\n\005'\000\000\002\206\004\211\005\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004d\004\224\004\208\002_\000\000\000\000\000\000\000\000\000\000\005\r\005)\000\000\005\014\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\005\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\004\245\000\000\005\n\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005)\000\000\000\000\000\000\000\000\000\000\004\212\005\r\000\000\000\000\005\014\000\000\005&\000\000\005\n\004\224\000\000\000\000\004\209\000\000\000\000\000\000\007:\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\005\b\000\000\000\000\000\000\000\000\000\000\012r\000\000\000\000\005\r\000\000\000\000\005\014\004\245\005&\000\000\004d\000\000\004\208\002_\004\209\004^\005)\004_\004`\002\157\000\000\004a\000\000\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012s\004\212\012t\000\000\000\000\004^\000\000\004_\004`\002\157\004\224\004a\005\n\000\000\000\000\000\000\000\000\0079\000\000\005)\000\000\000\000\000\000\000\000\000\000\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\b\004\224\000\000\000\000\000\000\012u\000\000\000\000\005\012\006J\004\245\000\000\005\014\007B\005&\000\000\004d\000\000\004\208\002_\004\209\004^\000\000\004_\004`\002\157\000\000\004a\000\000\005'\000\000\002\206\004\211\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\004\212\000\000\000\000\012v\004^\000\000\004_\004`\002\157\004\224\004a\005\n\000\000\000\000\000\000\000\000\0058\000\000\005)\000\000\012w\012x\000\000\012y\004\212\000\000\000\000\000\000\000\000\005\b\000\000\000\000\000\000\004\224\000\000\000\000\000\000\000\000\000\000\000\000\0057\005\r\004\245\000\000\005\014\004d\005&\004\208\002_\000\000\000\000\012\149\004\209\005\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\004\245\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\012{\000\000\005\n\000\000\012|\000\000\000\000\012~\000\000\000\000\012\132\012\134\005)\000\000\011\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\b\000\000\012\146\005\n\000\000\000\000\000\000\000\000\000\000\005\r\r\131\000\000\005\014\r\132\005&\000\000\004d\011\029\004\208\002_\004\209\000\000\000\000\012\147\005\b\000\000\000\000\011\030\000\000\005'\000\000\002\206\004\211\005\r\000\000\000\000\005\014\000\000\005&\000\000\004d\000\000\004\208\002_\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\005'\000\000\002\206\004\211\000\000\000\000\005)\000\000\000\000\000\000\011\031\002\155\000\000\000\000\006N\002\157\004^\002\158\004_\004`\002\157\000\000\004a\005\n\000\000\000\000\000\000\000\000\000\000\005\r\005)\000\000\005\014\000\000\005&\000\000\004\212\000\000\006k\002\186\004\209\002\171\002\172\002\177\000\000\004\224\000\000\000\000\000\000\005'\011 \002\206\004\211\005\r\000\000\000\000\005\014\000\000\005&\000\000\000\000\001\007\001\b\001\t\004\209\000\000\001\n\011!\000\000\001\162\000\000\003q\000\000\005'\000\000\002\206\004\211\000\000\004\245\005)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006v\003v\000\000\000\000\r\133\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\005)\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\011#\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\011$\000\000\006\137\000\000\011%\000\000\000\000\011'\002\191\000\000\011,\000\000\004\212\005\b\000\000\000\000\004^\006Y\004_\004`\002\157\004\224\004a\000\000\002\179\0118\000\000\002_\006U\004d\000\000\004\208\002_\000\000\000\000\000\000\004\212\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\178\004\224\0119\000\000\000\000\000\000\000\000\000\000\006X\000\000\004\245\000\000\000\000\001\027\000\000\000\000\000\000\006\158\006\159\003w\000\000\005\n\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\004\245\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006J\000\000\000\000\005\014\006K\005&\002\204\000\000\001\012\000\000\000\000\004\209\001(\001)\000\000\002\211\001\002\002\206\000\000\005\b\005'\000\000\002\206\004\211\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\005\b\004\212\001?\000\000\000\000\001@\000\000\005)\001A\001B\004\224\000\000\000\000\000\000\000\000\000\000\004d\006]\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\001>\004^\000\000\004_\004`\002\157\000\000\004a\001Y\001?\000\000\000\000\001@\000\000\004\245\001A\001B\002\014\000\000\000\000\000\000\004\212\000\000\005\n\000\000\000\000\000\000\000\000\000\000\005\r\004\224\000\000\005\014\000\000\005&\000\000\000\000\006`\000\000\000\000\004\209\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\005'\001s\002\206\004\211\005\r\000\000\000\000\005\014\000\000\005&\000\000\000\000\000\000\000\000\004\245\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\005\b\002\206\004\211\002\155\000\000\005)\006N\002\157\004^\002\158\004_\004`\002\157\000\000\004a\000\000\004d\000\000\004\208\002_\000\000\004^\000\000\004_\004`\002\157\000\000\004a\004\212\005)\006k\002\186\000\000\002\171\002\172\002\177\000\000\004\224\000\000\000\000\000\000\004\212\000\000\000\000\006c\000\000\000\000\000\000\000\000\005\b\004\224\000\000\005\n\000\000\000\000\000\000\000\000\006f\000\000\000\000\000\000\000\000\000\000\003q\000\000\004d\000\000\004\208\002_\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006v\003v\005\r\004\245\000\000\005\014\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\137\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\005\b\005\r\005)\000\000\005\014\000\000\005&\000\000\000\000\000\000\000\000\002\179\004\209\005\b\002_\000\000\004d\000\000\004\208\002_\000\000\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\004^\000\000\004_\004`\002\157\004^\004a\004_\004`\002\157\000\000\004a\000\000\000\000\006\158\t\005\003w\005)\005\n\000\000\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\224\000\000\005\n\000\000\000\000\0074\000\000\006j\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\005\r\000\000\000\000\005\014\000\000\005&\002\204\000\000\000\000\000\000\004\212\004\209\0075\005\r\004\245\002\211\005\014\002\206\005&\004\224\005'\000\000\002\206\004\211\004\209\000\000\006o\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005)\004^\004\245\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\005)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\212\000\000\000\000\005\b\000\000\000\000\000\000\000\000\004c\004\224\000\000\004^\000\000\004_\004`\002\157\006r\004a\000\000\004d\000\000\004\208\002_\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\224\005\b\004\245\000\000\000\000\000\000\000\000\006u\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\0077\000\000\000\000\000\000\000\000\000\000\000\000\004\245\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\024\000\000\000\000\005\r\000\000\000\000\005\014\001\026\005&\000\000\000\000\005\n\000\000\000\000\004\209\000\000\000\000\000\000\000\000\004\209\005\b\000\000\000\000\005'\000\000\002\206\004\211\000\000\004\210\000\000\002\206\004\211\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\005\r\000\000\000\000\005\014\000\000\005&\000\000\000\000\000\000\000\000\005\b\004\209\005)\004^\000\000\004_\004`\002\157\000\000\004a\005'\000\000\002\206\004\211\000\000\000\000\004d\000\000\004\208\002_\000\000\005\n\000\000\004\212\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\004\224\000\000\000\000\000\000\000\000\000\000\000\000\006x\005)\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001\215\000\000\005\r\005\n\000\000\005\014\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\002\155\004\245\000\000\002\156\002\157\000\000\002\158\005'\001\012\002\206\004\211\000\000\001(\001)\000\000\006\148\001\002\000\000\005\r\000\000\000\000\005\014\000\000\005&\006\154\000\000\000\000\002\159\004\184\004\209\002\171\002\172\002\177\000\000\000\000\000\000\000\000\005)\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\004\185\000\000\000\000\005\b\001\029\000\000\000\000\000\000\000\000\000\000\005)\004^\000\000\004_\004`\002\157\000\000\004a\000\000\004d\000\000\004\208\002_\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004\212\000\000\000\000\006\140\000\000\000\000\000\000\000\000\000\000\004\224\000\000\004^\000\000\004_\004`\002\157\006\144\004a\000\000\000\000\000\000\000\000\000\000\000\000\005\n\000\000\000\000\001Y\000\000\000\000\000\000\004\212\000\000\002\178\000\000\004^\000\000\004_\004`\002\157\004\224\004a\004\245\001\027\000\000\000\000\000\000\006\147\000\000\002\179\000\000\000\000\002_\000\000\005\r\000\000\000\000\005\014\000\000\005&\000\000\000\000\001\011\000\000\004\174\004\209\0012\000\000\000\000\000\000\000\000\000\000\000\000\004\245\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\004\186\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\005\b\000\000\005)\004^\000\000\004_\004`\002\157\011\026\004a\000\000\000\000\000\000\000\000\006E\006M\004d\000\000\004\208\002_\000\000\000\000\000\000\004\212\002\204\000\000\000\000\r\131\000\000\000\000\r\132\005\b\004\224\002\205\011\029\002\206\000\000\000\000\000\000\006\150\000\000\000\000\000\000\000\000\011\030\000\000\000\000\004d\000\000\004\208\002_\001>\005\n\000\000\000\000\004c\000\000\000\000\006\155\000\000\001?\000\000\000\000\001@\000\000\004\245\001A\001B\002\014\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\011\031\000\000\005\r\005\n\000\000\005\014\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\004^\001Y\004_\004`\002\157\000\000\004a\001s\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\r\004\212\000\000\005\014\000\000\005&\000\000\011 \000\000\000\000\004\224\004\209\005\b\000\000\000\000\000\000\000\000\006\153\000\000\005)\005'\000\000\002\206\004\211\011!\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\004\209\004^\000\000\004_\004`\002\157\000\000\004a\004\245\004\218\000\000\002\206\004\211\000\000\r\137\005)\000\000\000\000\000\000\000\000\000\000\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\004\224\000\000\000\000\000\000\000\000\011#\000\000\006\157\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\011$\000\000\000\000\000\000\011%\000\000\000\000\011'\000\000\000\000\011,\004\212\005\r\000\000\000\000\005\014\004\245\005&\000\000\000\000\004\224\005\b\000\000\004\209\000\000\0118\000\000\006\211\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\004^\0119\004_\004`\002\157\000\000\004a\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005)\000\000\000\000\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\004\224\000\000\005\b\000\000\000\000\000\000\000\000\006\225\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\004\212\005\r\000\000\000\000\005\014\004\245\005&\000\000\000\000\004\224\000\000\005\b\004\209\000\000\000\000\000\000\006\239\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\005\n\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\004\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005)\000\000\000\000\000\000\004\212\005\r\000\000\000\000\005\014\000\000\005&\000\000\005\n\004\224\005\b\000\000\004\209\000\000\000\000\000\000\007>\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\r\000\000\000\000\005\014\004\245\005&\000\000\000\000\000\000\005\b\000\000\004\209\000\000\005)\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\005\n\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\005)\000\000\000\000\004\212\005\r\000\000\000\000\005\014\000\000\005&\000\000\005\n\004\224\004\212\005\b\004\209\000\000\000\000\000\000\007@\000\000\000\000\004\224\000\000\005'\000\000\002\206\004\211\000\000\007G\004d\000\000\004\208\002_\000\000\000\000\004^\000\000\004_\004`\002\157\005\r\004a\000\000\005\014\004\245\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\005)\004\245\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\0074\005\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\005)\000\000\000\000\004\212\000\000\005\r\000\000\000\000\005\014\000\000\005&\000\000\004\224\000\000\005\b\000\000\004\209\000\000\000\000\007J\000\000\000\000\t\149\000\000\005\b\005'\000\000\002\206\004\211\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\004\245\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\005)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\004c\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\004\224\000\000\000\000\000\000\000\000\000\000\004d\007\171\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\r\000\000\000\000\005\014\000\000\005&\000\000\000\000\000\000\005\b\005\r\004\209\000\000\005\014\004\245\005&\000\000\011\026\000\000\004c\005'\004\209\002\206\004\211\000\000\004d\000\000\004\208\002_\0076\005'\000\000\002\206\004\211\000\000\004d\000\000\004\208\002_\rz\000\000\000\000\004^\011\029\004_\004`\002\157\000\000\004a\000\000\005)\000\000\000\000\011\030\000\000\000\000\000\000\000\000\000\000\000\000\005)\005\n\004\212\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\004\224\000\000\004\210\005\b\002\206\004\211\000\000\007\174\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\011\031\004d\005\r\004\208\002_\005\014\000\000\005&\000\000\000\000\000\000\004\212\000\000\004\209\000\000\004\245\000\000\000\000\000\000\000\000\004\224\000\000\005'\004\209\002\206\004\211\000\000\b\151\000\000\000\000\000\000\000\000\004\210\000\000\002\206\004\211\000\000\005\n\000\000\000\000\011 \000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\005)\004\245\000\000\000\000\000\000\011!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\212\000\000\005\r\000\000\000\000\005\014\000\000\005&\000\000\004\224\005\b\000\000\000\000\004\209\000\000\000\000\b\156\004^\r{\004_\004`\002\157\005'\004a\002\206\004\211\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\212\011#\000\000\000\000\000\000\004\245\000\000\000\000\000\000\004\224\000\000\005\b\000\000\011$\000\000\005)\b\176\011%\000\000\000\000\011'\000\000\000\000\011,\000\000\005\n\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0118\000\000\000\000\004^\004\245\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\r\000\000\000\000\005\014\0119\005&\004\212\000\000\005\n\000\000\005\b\004\209\000\000\000\000\000\000\004\224\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\004d\000\000\004\208\002_\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\005\r\001\015\000\000\005\014\000\000\005&\000\000\000\000\001\029\005\b\004\245\004\209\005)\004^\000\000\004_\004`\002\157\000\000\004a\005'\000\000\002\206\004\211\005\n\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\004\212\000\000\000\000\000\000\000\000\b\199\000\000\000\000\000\000\004\224\000\000\000\000\000\000\000\000\000\000\000\000\b\255\005)\000\000\000\000\000\000\005\r\000\000\000\000\005\014\b\202\005&\000\000\005\n\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\005\b\000\000\000\000\000\000\005'\004\245\002\206\004\211\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\005\r\000\000\000\000\005\014\000\000\005&\001\011\000\000\000\000\000\000\0012\004\209\000\000\005)\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\005\b\000\000\000\000\000\000\000\000\000\000\005)\000\000\012r\004^\000\000\004_\004`\002\157\000\000\004a\004d\006J\004\208\002_\005\014\t\019\005&\000\000\000\000\000\000\000\000\000\000\004\209\004\212\004^\000\000\004_\004`\002\157\000\000\004a\005'\004\224\002\206\004\211\000\000\012s\000\000\012t\t3\000\000\000\000\000\000\000\000\004\212\000\000\005\n\001>\000\000\000\000\000\000\000\000\000\000\004\224\000\000\000\000\001?\000\000\000\000\001@\t6\005)\001A\001B\000\000\004\245\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\012u\001\n\005\r\000\000\001\015\005\014\000\000\005&\000\000\000\000\000\000\001\029\004\245\004\209\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\005'\b\207\002\206\004\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n1\000\000\000\000\000\000\012v\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\005\b\005)\000\000\000\000\000\000\012w\012x\000\000\012y\000\000\000\000\000\000\000\000\004\212\000\000\000\000\004d\000\000\004\208\002_\000\000\005\b\004\224\000\000\000\000\000\000\000\000\000\000\000\000\t\210\001\027\000\000\000\000\001\007\001\b\001\t\012\148\004d\001\n\004\208\002_\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001\011\000\000\000\000\005\n\0012\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012{\000\000\000\000\000\000\012|\000\000\000\000\012~\000\000\005\n\012\132\012\134\001\012\000\000\000\000\000\000\001(\001)\005\r\000\000\001\002\005\014\000\000\005&\000\000\012\146\000\000\000\000\004^\004\209\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\005'\005\r\002\206\004\211\005\014\000\000\005&\000\000\012\147\000\000\004\212\000\000\004\209\005\b\000\000\000\000\001\027\000\000\000\000\004\224\000\000\005'\000\000\002\206\004\211\000\000\nl\000\000\000\000\004d\005)\004\208\002_\000\000\000\000\001\011\000\000\000\000\001>\0012\004^\000\000\004_\004`\002\157\000\000\004a\001?\000\000\000\000\001@\005)\004\245\001A\001B\n6\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\005\n\001(\001)\000\000\tA\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\004^\001s\004_\004`\002\157\000\000\004a\000\000\005\r\000\000\000\000\005\014\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\004\212\000\000\000\000\000\000\000\000\005\b\000\000\000\000\005'\004\224\002\206\004\211\000\000\000\000\000\000\000\000\no\000\000\000\000\001>\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\nC\000\000\005)\nF\000\000\004^\004\245\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004c\000\000\005\n\000\000\000\000\000\000\004\212\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\004\224\004d\000\000\004\208\002_\000\000\000\000\n~\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\005\r\000\000\000\000\005\014\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\004\212\000\000\000\000\005\b\004\245\000\000\000\000\000\000\005'\004\224\002\206\004\211\000\000\000\000\000\000\000\000\n\129\000\000\000\000\004d\000\000\004\208\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\004^\005)\004_\004`\002\157\004\245\004a\000\000\000\000\000\000\000\000\000\000\004\209\004^\000\000\004_\004`\002\157\005\n\004a\004\212\004\210\000\000\002\206\004\211\000\000\000\000\005\b\000\000\004\224\000\000\000\000\000\000\004\212\000\000\000\000\n\142\000\000\000\000\000\000\000\000\000\000\004\224\004d\000\000\004\208\002_\000\000\005\r\n\145\000\000\005\014\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\004\245\000\000\000\000\005\b\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\000\000\004\245\000\000\000\000\000\000\005\n\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\011\026\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\r\131\005\r\000\000\r\132\005\014\000\000\005&\011\029\000\000\005\n\000\000\000\000\004\209\000\000\005\b\000\000\000\000\011\030\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\005\b\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\005\r\000\000\000\000\005\014\004d\005&\004\208\002_\000\000\000\000\000\000\004\209\005)\000\000\011\031\002\155\000\000\000\000\002\156\002\157\005'\002\158\002\206\004\211\000\000\000\000\000\000\005\n\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\005\n\000\000\002\159\002\203\000\000\002\171\002\172\002\177\000\000\004\212\005)\000\000\000\000\000\000\011 \000\000\000\000\005\r\004\224\000\000\005\014\000\000\005&\000\000\000\000\n\166\000\000\000\000\004\209\000\000\005\r\011!\000\000\005\014\000\000\005&\000\000\005'\000\000\002\206\004\211\004\209\000\000\004^\000\000\004_\004`\002\157\000\000\004a\005'\004\245\002\206\004\211\000\000\000\000\r\142\000\000\000\000\000\000\000\000\000\000\000\000\004\212\000\000\000\000\000\000\005)\000\000\000\000\000\000\000\000\004\224\000\000\000\000\000\000\000\000\011#\000\000\n\169\005)\004^\000\000\004_\004`\002\157\000\000\004a\000\000\011$\000\000\000\000\000\000\011%\000\000\000\000\011'\002\178\000\000\011,\000\000\004\212\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\004\224\005\b\000\000\002\179\0118\000\000\002_\n\173\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\0119\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\002\155\000\000\000\000\006N\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\000\000\005\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006k\002\186\000\000\002\171\002\172\002\177\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\005\r\000\000\000\000\005\014\000\000\005&\002\205\000\000\002\206\000\000\005\b\004\209\000\000\003q\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\005\n\000\000\004d\000\000\004\208\002_\006v\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\000\000\000\000\000\000\000\000\000\000\000\000\005)\000\000\000\000\000\000\005\r\000\000\000\000\005\014\000\000\005&\000\000\000\000\005\n\000\000\000\000\004\209\000\000\000\000\000\000\006\137\000\000\000\000\000\000\000\000\005'\002\191\002\206\004\211\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\002\179\005\r\001\029\002_\005\014\000\000\005&\000\000\000\000\001\007\001\b\001\t\004\209\005)\001\n\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\002\155\n\192\000\000\006N\002\157\004^\002\158\004_\004`\002\157\000\000\004a\006\158\n\184\003w\000\000\000\000\000\000\000\000\000\000\b\216\000\000\000\000\000\000\000\000\004\212\005)\006k\002\186\000\000\002\171\002\172\002\177\000\000\004\224\000\000\000\000\000\000\000\000\000\000\000\000\r\030\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\002\204\000\000\001\007\001\b\001\t\000\000\000\000\001\n\003q\002\211\001\015\002\206\000\000\000\000\001\011\004\245\000\000\001\029\0012\000\000\000\000\000\000\000\000\000\000\000\000\006v\003v\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\001\012\006\137\001\029\000\000\001(\001)\000\000\002\191\001\002\000\000\000\000\000\000\005\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\179\001\027\000\000\002_\000\000\004d\000\000\004\208\002_\b\199\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001>\001\011\n\229\000\000\000\000\0012\000\000\000\000\000\000\001?\011\180\000\000\001@\000\000\000\000\001A\001B\n6\006\158\n\218\003w\000\000\005\n\000\000\000\000\000\000\000\000\000\000\001\012\000\000\001\027\001?\001(\001)\001@\000\000\001\002\001A\001B\000\000\000\000\b\244\000\000\000\000\001Y\000\000\001\007\001\b\001\t\001\011\001s\001\n\005\r\0012\001\015\005\014\000\000\005&\002\204\000\000\000\000\001\029\000\000\004\209\000\000\000\000\b\247\002\211\000\000\002\206\000\000\000\000\005'\000\000\002\206\004\211\001\012\000\000\000\000\n\231\001(\001)\000\000\000\000\001\002\004^\000\000\004_\004`\002\157\000\000\004a\001>\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001?\005)\000\000\001@\004\212\000\000\001A\001B\nC\000\000\000\000\n\255\000\000\004\224\000\000\000\000\000\000\000\000\000\000\000\000\r \000\000\000\000\000\000\n\234\r@\000\000\000\000\001(\001)\001\027\000\000\001\002\001\005\000\000\001Y\000\000\000\000\000\000\001>\000\000\001s\001\007\001\b\001\t\000\000\004\245\001\n\001?\001\011\001\015\001@\000\000\0012\001A\001B\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\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\012\000\000\000\000\000\000\001(\001)\000\000\001Y\001\002\000\000\000\000\000\000\000\000\b\207\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001?\001\015\000\000\n\237\000\000\000\000\001A\001B\001\029\005\b\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n8\000\000\n\242\000\000\n\239\000\000\004d\000\000\004\208\002_\000\000\001\027\000\000\000\000\000\000\000\000\001Y\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\001\011\000\000\000\000\001?\0012\000\000\001@\000\000\000\000\001A\001B\rA\005\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\001\012\000\000\001\027\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001Y\000\000\000\000\000\000\005\r\000\000\001s\005\014\000\000\005&\001\011\000\000\000\000\000\000\0012\004\209\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\005'\001\015\002\206\004\211\001\011\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\005)\001\012\001\007\001\b\001\t\001(\001)\001\n\001?\001\002\001\015\001@\011\190\000\000\001A\001B\r\007\001\029\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001>\001\027\001s\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\r\004\000\000\000\000\001\011\001\007\001\b\001\t\0012\000\000\001\n\001?\000\000\001\015\001@\000\000\000\000\001A\001B\000\000\001\029\000\000\000\000\000\000\001\027\000\000\000\000\000\000\001Y\000\000\000\000\001\012\000\000\000\000\001s\001(\001)\000\000\000\000\001\002\000\000\000\000\001\027\001\011\000\000\000\000\011\186\0012\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\001\011\000\000\000\000\000\000\0012\000\000\001\029\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\001\027\000\000\001(\001)\000\000\001>\001\002\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\001\015\001\011\001A\001B\002\012\0012\000\000\001\029\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\001>\000\000\001\012\001\027\000\000\001Y\001(\001)\000\000\001?\001\002\001s\001@\000\000\000\000\001A\001B\001\223\001>\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\142\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001\012\001s\001\027\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001Y\011\026\000\000\000\000\001>\000\000\001s\001\027\001\011\000\000\000\000\000\000\0012\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001C\000\000\011\027\000\000\000\000\001\011\011\029\000\000\000\000\0012\000\000\000\000\000\000\000\000\001\012\000\000\011\030\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001Y\000\000\000\000\001>\000\000\001\012\001s\000\000\000\000\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\001\139\001\007\001\b\001\t\000\000\011\031\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001Y\000\000\001\015\000\000\001>\000\000\001s\000\000\000\000\001\029\000\000\000\000\000\000\001?\000\000\000\000\001@\001\246\011 \001A\001B\001\145\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\011!\000\000\001A\001B\001\182\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\001\015\000\000\000\000\000\000\000\000\001s\000\000\001\029\000\000\000\000\001\027\000\000\000\000\000\000\000\000\011\"\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\001\011\001\027\000\000\011#\0012\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\011$\001\015\000\000\000\000\011%\001\011\000\000\011'\001\029\0012\011,\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\0118\000\000\000\000\000\000\000\000\000\000\000\000\001\012\001\027\000\000\000\000\001(\001)\000\000\000\000\001\002\004^\000\000\004_\004`\002\157\0119\004a\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\224\000\000\000\000\000\000\000\000\000\000\001>\000\000\001\027\001\012\000\000\t\144\000\000\001(\001)\001?\000\000\001\002\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001>\001\011\000\000\000\000\000\000\0012\000\000\004\245\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\016\000\000\000\000\000\000\000\000\000\000\004^\001Y\004_\004`\002\157\001\012\004a\001\250\000\000\001(\001)\000\000\000\000\001\002\004^\000\000\004_\004`\002\157\000\000\004a\001Y\000\000\000\000\001>\000\000\000\000\001s\000\000\bh\000\000\000\000\000\000\001?\004\212\000\000\001@\bq\000\000\001A\001B\002&\000\000\004\224\005\b\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\t~\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\004\212\tO\001Y\001>\000\000\000\000\000\000\000\000\001s\004\224\004\245\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002-\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004^\005\n\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\001Y\000\000\004\212\000\000\000\000\000\000\001s\000\000\000\000\004c\000\000\004\224\000\000\000\000\000\000\000\000\t\146\000\000\005&\000\000\000\000\000\000\tl\005\b\004\209\bt\000\000\004\208\002_\002\131\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\004d\000\000\004\208\002_\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\155\005\b\000\000\002\156\002\157\000\000\002\158\000\000\000\000\005)\000\000\000\000\000\000\000\000\bk\000\000\000\000\004d\000\000\004\208\002_\005\n\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\004\209\000\000\005\b\001\029\t8\005\n\t\128\000\000\005&\004\210\000\000\002\206\004\211\002\187\004\209\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\005'\000\000\002\206\004\211\001\007\001\b\001\t\002\188\003 \001\n\000\000\000\000\001\015\000\000\000\000\011\151\000\000\005&\000\000\001\029\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\005)\005\n\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\002\191\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\005)\000\000\tn\000\000\005&\002\179\001\029\001\011\002_\000\000\004\209\0012\000\000\000\000\000\000\000\000\000\000\000\000\003C\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\002\193\001\011\000\000\000\000\005)\0012\000\000\000\000\001\007\001\b\001\t\002\155\000\000\001\n\002\156\002\157\001\015\002\158\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\001\012\000\000\000\000\001\027\001(\001)\000\000\000\000\001\002\002\204\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\211\000\000\002\206\000\000\001\011\000\000\000\000\001>\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\0034\000\000\001@\000\000\000\000\001A\001B\002\136\000\000\002\187\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\002\188\003 \000\000\001>\001\027\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001?\000\000\001s\001@\000\000\000\000\001A\001B\002\166\000\000\000\000\001\011\001\007\001\b\001\t\0012\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\002\191\000\000\000\000\001Y\000\000\000\000\001\012\000\000\001>\001s\001(\001)\000\000\000\000\001\002\000\000\002\179\001?\000\000\002_\001@\000\000\000\000\001A\001B\002\199\000\000\000\000\000\000\003C\000\000\000\000\002\155\000\000\000\000\003\159\002\157\000\000\002\158\000\000\000\000\001\007\001\b\001\t\002\155\000\000\001\n\002\156\002\157\001\140\002\158\000\000\001Y\000\000\000\000\000\000\002\193\000\000\001s\002\159\004\137\000\000\002\171\002\172\002\177\001\027\000\000\000\000\000\000\000\000\001>\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\001?\000\000\000\000\001@\000\000\001\011\001A\001B\002\241\0012\000\000\000\000\000\000\003q\002\204\000\000\000\000\003@\000\000\001\007\001\b\001\t\000\000\002\211\001\n\002\206\002\187\001\015\000\000\000\000\007\169\003v\001\012\000\000\001\029\001Y\001(\001)\000\000\000\000\001\002\001s\000\000\002\188\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\007\001\b\001\t\000\000\000\000\001\n\000\000\001\011\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\002\191\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\002\191\000\000\000\000\000\000\002\179\001\029\001\012\002_\000\000\001>\001(\001)\000\000\000\000\001\002\000\000\002\179\001\027\001?\002_\000\000\001@\000\000\000\000\001A\001B\002\249\000\000\000\000\003C\000\000\000\000\000\000\000\000\007\172\007\177\001\011\000\000\000\000\000\000\0012\000\000\000\000\003w\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\002\193\001\027\000\000\001s\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\027\001\011\000\000\000\000\001?\0012\002\204\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\002\211\000\000\002\206\002\204\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\002\211\001\012\002\206\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001>\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\001\015\001@\000\000\000\000\001A\001B\003M\001\029\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\001>\000\000\000\000\000\000\001Y\000\000\001\007\001\b\001\t\001?\001s\001\n\001@\000\000\001\015\001A\001B\003d\001>\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001\027\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001\027\001\011\001s\000\000\000\000\0012\000\000\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\011\000\000\000\000\000\000\0012\000\000\001\027\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\002\155\000\000\000\000\002\156\002\157\000\000\002\158\001\011\000\000\001\012\000\000\0012\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001>\000\000\001J\000\000\000\000\000\000\002\187\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003}\001>\000\000\000\000\000\000\000\000\002\188\003\178\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\138\000\000\000\000\000\000\000\000\000\000\000\000\002\155\001>\001Y\002\156\002\157\000\000\002\158\000\000\001s\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\152\003\187\001Y\000\000\000\000\000\000\000\000\002\191\001s\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\002\179\002\158\000\000\002_\001Y\000\000\000\000\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\001\011\001\007\001\b\001\t\000\000\002\187\001\n\002\159\002\186\001\015\002\171\002\172\002\177\000\000\000\000\000\000\001\029\000\000\000\000\003\191\000\000\000\000\002\188\003\165\000\000\002\193\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000n\001\n\000\000\000\000\001\015\002\188\003\165\000\000\000\000\002\204\000\000\001\029\000\000\002\191\000\000\000\000\000\000\000\000\002\211\000\000\002\206\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\179\000\000\001\n\002_\001\027\001\015\000\000\000n\000\000\000\000\000\000\000\000\001\029\004^\000\000\004_\004`\002\157\001?\004a\002\191\001@\000\000\001\011\001A\001B\000\000\0012\000\000\000\000\000\000\000\000\003\176\000\000\000\000\000\000\002\179\000\000\000\000\002_\002\193\000\000\bx\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\001\027\001Y\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\174\000\000\000\000\001\011\000\000\000\000\000\000\0012\002\193\002\204\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\002\211\000\000\002\206\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\0012\001\002\000\000\000\000\000\000\001\007\001\b\001\t\002\204\001>\001\n\002\159\002\186\001\015\002\171\002\172\002\177\002\211\001?\002\206\001\029\001@\000\000\001\012\001A\001B\003\169\001(\001)\000\000\004c\001\002\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\002\187\004d\000\000\004\208\002_\001\029\000\000\000\000\001Y\000\000\000\000\000\000\001>\000\000\001s\000\000\000\000\002\188\003\211\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\003\182\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001>\001\n\000\000\001\027\001\015\000\000\000\000\000\000\000\000\001?\000\000\001\029\001@\000\000\001Y\001A\001B\003\208\000\000\002\191\001s\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\002\179\004\209\000\000\002_\000\000\000\000\000\000\000\000\000\000\001Y\004\210\000\000\002\206\004\211\001\012\001s\000\000\001\011\001(\001)\000\000\0012\001\002\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\003\217\003\219\000\000\000\000\000\000\000\000\000\000\000\000\002\193\000\000\000\000\000\000\001\012\000\000\001\027\000\000\001(\001)\002\159\002\186\001\002\002\171\002\172\002\177\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\011\001\015\000\000\000\000\0012\000\000\000\000\000\000\001\029\000\000\004\002\000\000\002\204\001>\000\000\000\000\000\000\000\000\000\000\002\187\000\000\002\211\001?\002\206\000\000\001@\000\000\001\012\001A\001B\003\215\001(\001)\000\000\000\000\001\002\002\188\003 \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\001?\000\000\000\000\001@\000\000\001Y\001A\001B\003\229\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\027\001\015\002\191\000\000\000\000\000\000\000\000\000\000\001\029\001Y\000\000\000\000\000\000\001>\000\000\001s\000\000\000\000\002\179\001\011\000\000\002_\001?\0012\000\000\001@\000\000\000\000\001A\001B\003\237\003C\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\011\026\000\000\000\000\001\012\001\029\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001Y\002\193\000\000\000\000\000\000\000\000\001s\000\000\011\027\000\000\000\000\000\000\011\029\000\000\004^\000\000\004_\004`\002\157\000\000\004a\001\027\011\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\212\000\000\000\000\000\000\002\204\000\000\001\011\000\000\000\000\004\224\0012\000\000\000\000\002\211\000\000\002\206\000\000\000\000\000\000\001>\007\141\000\000\000\000\000\000\011\031\000\000\001\027\000\000\001?\000\000\000\000\001@\000\000\001\012\001A\001B\004\028\001(\001)\000\000\000\000\001\002\004\245\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\001Y\011 \000\000\000\000\000\000\000\000\001s\000\000\000\000\001\012\004\212\000\000\000\000\001(\001)\000\000\000\000\001\002\011!\004\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\140\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\005\b\000\000\000\000\000\000\001?\000\000\000\000\001@\011=\000\000\001A\001B\004\030\004\245\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\011#\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\001>\002\158\000\000\011$\000\000\001Y\000\000\011%\000\000\001?\011'\001s\001@\011,\000\000\001A\001B\004\139\005\n\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\0118\000\000\000\000\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\005\b\002\158\000\000\000\000\000\000\001Y\000\000\000\000\004\153\000\000\0119\001s\006\165\000\000\005&\000\000\004d\002\187\004\208\002_\004\209\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\005'\000\000\002\206\004\211\000\000\002\188\003 \000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\005\n\000\000\000\000\000\000\002\187\000\000\000\000\005)\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\002\188\003 \000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\000\000\000\000\006\165\000\000\005&\000\000\004\173\000\000\000\000\000\000\004\209\002\179\000\000\000\000\002_\002\187\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\003C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\003 \002\191\000\000\000\000\000\000\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\005)\002\179\002\193\000\000\002_\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\003C\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\191\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\204\000\000\002\193\000\000\002\179\004\197\000\000\002_\000\000\002\211\000\000\002\206\000\000\000\000\002\187\000\000\000\000\003C\000\000\004\217\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\187\000\000\001P\002\188\003 \000\000\002\155\000\000\000\000\002\156\002\157\002\204\002\158\000\000\000\000\000\000\002\193\002\188\003 \000\000\002\211\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\004^\000\000\004_\004`\002\157\000\000\004a\000\000\002\191\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\000\000\004\223\004\212\000\000\002\191\002\211\002\179\002\206\000\000\002_\002\187\004\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003C\002\179\000\000\006\168\002_\000\000\000\000\000\000\002\188\003 \000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\004\245\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\002\193\004a\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\002\191\001(\001)\000\000\004\212\001\002\000\000\000\000\000\000\000\000\000\000\002\155\002\204\004\224\002\156\002\157\002\179\002\158\000\000\002_\000\000\002\211\000\000\002\206\004\244\000\000\002\204\000\000\000\000\003C\000\000\000\000\000\000\005\b\000\000\002\211\000\000\002\206\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\004\245\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\002\193\000\000\011\026\000\000\000\000\000\000\000\000\004\242\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\002\187\001@\000\000\000\000\001A\001B\000\000\000\000\011\027\000\000\000\000\000\000\011\029\005\n\000\000\000\000\000\000\002\188\003 \000\000\000\000\002\204\011\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\211\000\000\002\206\001Y\005\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\165\000\000\005&\000\000\004d\000\000\004\208\002_\004\209\000\000\000\000\000\000\011\031\000\000\000\000\002\191\000\000\005'\002\155\002\206\004\211\002\156\002\157\000\000\002\158\000\000\002\155\000\000\000\000\002\156\002\157\002\179\002\158\002\155\002_\000\000\002\156\002\157\000\000\002\158\005\n\000\000\000\000\000\000\003C\002\159\002\186\005)\002\171\002\172\002\177\000\000\011 \002\159\002\186\000\000\002\171\002\172\002\177\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\011!\005\001\002\193\000\000\006\165\000\000\005&\000\000\000\000\005\007\002\187\000\000\004\209\000\000\000\000\000\000\005\020\000\000\002\187\000\000\000\000\005'\000\000\002\206\004\211\002\187\000\000\002\188\003 \011G\000\000\000\000\000\000\000\000\000\000\002\188\003 \000\000\000\000\002\204\000\000\000\000\002\188\003 \000\000\000\000\011#\000\000\002\211\000\000\002\206\005)\000\000\000\000\000\000\000\000\000\000\000\000\011$\000\000\000\000\000\000\011%\000\000\000\000\011'\000\000\000\000\011,\000\000\000\000\002\191\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\191\001W\000\000\000\000\0118\000\000\000\000\002\191\002\179\000\000\000\000\002_\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\003C\000\000\002\179\000\000\0119\002_\002\155\000\000\003C\002\156\002\157\000\000\002\158\002\155\000\000\003C\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\193\000\000\000\000\000\000\000\000\000\000\002\159\002\186\002\193\002\171\002\172\002\177\000\000\002\159\002\186\002\193\002\171\002\172\002\177\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\024\000\000\000\000\000\000\000\000\000\000\002\204\005\031\000\000\002\187\000\000\000\000\000\000\000\000\002\204\002\211\002\187\002\206\001\011\000\000\000\000\002\204\000\000\002\211\000\000\002\206\002\188\003 \000\000\000\000\002\211\000\000\002\206\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\002\155\000\000\001\002\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\000\000\000\000\002\191\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\000\000\003C\000\000\000\000\000\000\005#\002\155\000\000\003C\002\156\002\157\000\000\002\158\000\000\002\187\000\000\000\000\000\000\002\155\000\000\001?\002\156\002\157\001@\002\158\000\000\001A\001B\002\193\000\000\000\000\002\188\003 \002\159\002\186\002\193\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\001Y\000\000\000\000\005.\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\002\187\000\000\000\000\0052\000\000\002\204\000\000\002\211\002\191\002\206\000\000\000\000\002\187\000\000\002\211\000\000\002\206\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\002\188\003 \000\000\000\000\000\000\000\000\002\155\000\000\003C\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\002\159\002\186\002\193\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\000\000\000\000\000\000\005>\000\000\002\179\003C\000\000\002_\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\002\204\003C\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\211\000\000\002\206\002\188\003 \000\000\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\002\193\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005B\000\000\002\204\000\000\000\000\002\191\000\000\000\000\000\000\002\187\000\000\002\211\000\000\002\206\002\204\000\000\002\155\000\000\000\000\002\156\002\157\002\179\002\158\002\211\002_\002\206\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\159\002\186\001\n\002\171\002\172\002\177\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\005I\000\000\002\191\000\000\000\000\000\000\000\000\001\227\000\000\002\187\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\002\188\003 \000\000\000\000\002\204\003C\000\000\000\000\000\000\005M\000\000\000\000\000\000\002\211\000\000\002\206\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\193\000\000\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\005T\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\002\187\000\000\000\000\000\000\000\000\000\000\002\179\000\000\002\155\002_\000\000\002\156\002\157\000\000\002\158\002\204\000\000\002\188\003 \003C\000\000\000\000\000\000\001\012\002\211\002\191\002\206\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\179\000\000\000\000\002_\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\000\000\005X\002\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\002\193\000\000\002\204\000\000\000\000\002\188\003 \000\000\000\000\003C\000\000\002\211\000\000\002\206\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\002\193\002\204\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\211\000\000\002\206\002\191\001h\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\179\002\159\002\186\002_\002\171\002\172\002\177\000\000\002\204\000\000\000\000\005_\000\000\003C\000\000\000\000\000\000\002\211\000\000\002\206\002\187\000\000\000\000\000\000\000\000\000\000\005c\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\187\000\000\002\188\003 \000\000\002\193\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\002\188\003 \000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\002\204\000\000\000\000\005j\002\191\000\000\000\000\000\000\000\000\002\211\000\000\002\206\002\187\000\000\000\000\000\000\000\000\000\000\005n\002\191\002\179\000\000\000\000\002_\000\000\000\000\000\000\002\187\000\000\002\188\003 \000\000\000\000\003C\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\000\000\000\000\002\188\003 \000\000\000\000\003C\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\193\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\191\000\000\002\193\000\000\002\159\002\223\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\002\191\002\179\002\159\002\186\002_\002\171\002\172\002\177\000\000\002\204\000\000\000\000\000\000\000\000\003C\000\000\002\179\000\000\002\211\002_\002\206\000\000\000\000\000\000\002\204\000\000\000\000\005u\000\000\003C\000\000\000\000\000\000\002\211\000\000\002\206\002\187\000\000\000\000\000\000\002\155\002\193\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\002\188\003 \000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\002\211\000\000\002\206\000\000\000\000\005y\002\204\000\000\000\000\000\000\002\191\000\000\000\000\002\179\002\187\002\211\002_\002\206\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\002\179\000\000\000\000\002_\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\002\193\000\000\000\000\000\000\005\128\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\002\204\002\179\000\000\000\000\002_\000\000\002\188\003 \000\000\002\205\000\000\002\206\000\000\002\204\003C\000\000\005\132\002\155\000\000\000\000\002\156\002\157\002\211\002\158\002\206\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\002\193\002\188\003 \002\159\002\227\000\000\002\171\002\172\002\177\002\191\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\005\139\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\187\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\005\143\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\178\000\000\000\000\002\193\002\204\000\000\002\188\003 \000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\179\000\000\000\000\002_\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\000\000\000\000\005\150\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\002\193\002_\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\005\154\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\002\204\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\002\205\000\000\002\206\002\204\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\005\161\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\187\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\005\165\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\193\002\204\000\000\002\188\003 \000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\000\000\000\000\005\172\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\002\193\002_\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\005\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\005\183\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\187\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\005\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\193\002\204\000\000\002\188\003 \000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\000\000\000\000\005\194\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\002\193\002_\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\005\198\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\005\205\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\187\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\005\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\193\002\204\000\000\002\188\003 \000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\000\000\000\000\005\216\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\002\193\002_\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\005\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\005\227\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\187\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\005\231\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\193\002\204\000\000\002\188\003 \000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\000\000\000\000\005\238\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\002\193\002_\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\005\242\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\005\249\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\187\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\005\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\193\002\204\000\000\002\188\003 \000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\000\000\000\000\006\004\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\002\193\002_\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\006\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\006\015\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\187\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\006\019\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\193\002\204\000\000\002\188\003 \000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\000\000\000\000\006\026\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\002\193\002_\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\006\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\006+\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\187\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\0061\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\001\007\001\b\001\t\002\155\000\000\001\n\002\156\002\157\001\015\002\158\000\000\000\000\000\000\002\193\002\204\001\029\002\188\003 \000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\000\000\000\000\0068\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\002\193\002_\000\000\002\188\003 \000\000\000\000\001\027\000\000\000\000\000\000\003C\000\000\006<\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\187\000\000\001\n\000\000\001\011\001\015\000\000\000\000\0012\000\000\000\000\000\000\001\029\000\000\000\000\002\204\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\003C\000\000\000\000\000\000\001\007\001\b\001\t\002\191\002\211\001\n\002\206\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\002\179\000\000\000\000\002_\002\193\001\027\001\007\001\b\001\t\000\000\000\000\001\n\000\000\003C\001\015\000\000\000\000\000\000\001>\000\000\000\000\001\029\000\000\000\000\001\011\000\000\000\000\001?\0012\000\000\001@\000\000\000\000\001A\001B\006S\000\000\000\000\000\000\000\000\002\193\002\204\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\211\001\012\002\206\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001Y\000\000\000\000\000\000\001\027\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\001\231\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\211\000\000\002\206\0012\000\000\001\027\001\007\001\b\001\t\000\000\000\000\001\n\000\000\004^\001\015\004_\004`\002\157\000\000\004a\000\000\001\029\000\000\000\000\001\011\000\000\001\012\000\000\0012\001>\001(\001)\000\000\004\212\001\002\000\000\000\000\000\000\001?\000\000\000\000\001@\004\224\000\000\001A\001B\006[\000\000\000\000\000\000\000\000\001\012\000\000\006\167\000\000\001(\001)\000\000\000\000\001\002\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\001Y\004a\004\245\000\000\000\000\000\000\001s\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\001>\001\027\001(\001)\000\000\000\000\001\002\0074\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\006m\000\000\000\000\001\011\000\000\000\000\000\000\0012\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\203\001?\000\000\000\000\001@\000\000\000\000\001A\001B\006~\000\000\001Y\005\b\000\000\001\012\000\000\000\000\001s\001(\001)\000\000\000\000\001\002\002\155\000\000\000\000\002\156\002\157\004d\002\158\004\208\002_\000\000\000\000\000\000\000\000\001Y\000\000\001?\000\000\000\000\001@\001s\000\000\001A\001B\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\000\000\000\000\004c\000\000\000\000\000\000\000\000\000\000\001h\000\000\006\175\000\000\000\000\001>\000\000\000\000\000\000\000\000\004d\002\187\004\208\002_\001?\000\000\000\000\001@\000\000\000\000\001A\001B\006\142\000\000\006\165\000\000\005&\000\000\002\188\003 \000\000\002\155\004\209\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\001Y\000\000\000\000\0077\000\000\000\000\001s\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\004^\000\000\004_\004`\002\157\000\000\004a\005)\002\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\179\004\212\000\000\000\000\004\209\002\179\000\000\000\000\002_\002\187\004\224\000\000\000\000\004\210\000\000\002\206\004\211\000\000\003C\002\155\000\000\006\182\002\156\002\157\000\000\002\158\002\188\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\004\245\000\000\002\193\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\006\189\000\000\000\000\004\212\000\000\000\000\000\000\000\000\000\000\002\187\000\000\002\204\004\224\000\000\000\000\002\179\000\000\000\000\002_\000\000\002\211\000\000\002\206\006\196\000\000\000\000\002\188\003 \003C\000\000\002\155\000\000\005\b\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\002\193\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\193\000\000\005\n\000\000\002\179\000\000\000\000\002_\000\000\002\187\002\204\000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\002\211\000\000\002\206\000\000\005\b\000\000\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\165\000\000\005&\000\000\004d\000\000\004\208\002_\004\209\002\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\005\n\000\000\000\000\000\000\000\000\000\000\002\204\005)\000\000\000\000\000\000\002\179\000\000\000\000\002_\002\211\002\155\002\206\000\000\002\156\002\157\000\000\002\158\000\000\003C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\165\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\005'\002\193\002\206\004\211\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\005)\002\159\002\186\000\000\002\171\002\172\002\177\004^\002\204\004_\004`\002\157\000\000\004a\002\188\003 \000\000\002\211\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\006\207\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\004b\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\002\188\003 \000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\006\218\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\002\193\002_\000\000\002\188\003 \000\000\004^\000\000\004_\004`\002\157\003C\004a\006\222\000\000\004c\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\004d\002\158\004\208\002_\004\142\000\000\002\204\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\006\232\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\187\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\002\193\002\188\003 \000\000\000\000\004\209\000\000\000\000\000\000\003C\000\000\000\000\000\000\006\236\004\210\000\000\002\206\004\211\000\000\000\000\000\000\000\000\002\187\000\000\000\000\004c\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\193\002\204\000\000\002\188\003 \004d\000\000\004\208\002_\002\191\002\211\000\000\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\000\000\000\000\006\246\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\002\193\002_\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\004^\006\250\004_\004`\002\157\004\209\004a\000\000\000\000\000\000\002\187\000\000\000\000\000\000\004\210\000\000\002\206\004\211\000\000\000\000\004\212\000\000\000\000\000\000\000\000\002\204\002\193\002\188\003 \004\224\000\000\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\000\000\006\255\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\002\204\003C\000\000\000\000\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\002\179\002\158\000\000\002_\002\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\155\000\000\000\000\002\156\002\157\005\b\002\158\000\000\000\000\000\000\002\193\002\204\000\000\000\000\000\000\000\000\000\000\007\006\000\000\000\000\002\211\004d\002\206\004\208\002_\000\000\002\187\002\159\002\186\000\000\002\171\002\172\002\177\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\002\188\003 \000\000\000\000\002\204\000\000\000\000\000\000\000\000\007\n\004\212\000\000\000\000\002\211\005\n\002\206\000\000\000\000\002\187\004\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\r\000\000\000\000\000\000\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\006\165\000\000\005&\000\000\000\000\004\245\000\000\000\000\004\209\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\003C\002\155\000\000\000\000\002\156\002\157\002\191\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005)\002\179\000\000\000\000\002_\000\000\002\193\002\159\004\184\000\000\002\171\002\172\002\177\000\000\003C\000\000\000\000\000\000\005\b\002\155\000\000\000\000\002\156\002\157\004^\002\158\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\002\193\000\000\002\204\004\212\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\211\004\224\002\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\027\000\000\000\000\000\000\000\000\000\000\005\n\007\020\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\002\187\000\000\000\000\000\000\000\000\000\000\004\245\002\211\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\003 \000\000\000\000\000\000\002\178\006\165\000\000\005&\002\155\000\000\000\000\002\156\002\157\004\209\002\158\000\000\000\000\000\000\000\000\000\000\002\179\000\000\005'\002_\002\206\004\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\191\000\000\000\000\000\000\000\000\005\b\000\000\002\155\000\000\005)\002\156\002\157\000\000\002\158\000\000\000\000\002\179\007\024\n\197\002_\000\000\004d\000\000\004\208\002_\000\000\002\187\000\000\000\000\003C\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\002\193\005\n\000\000\007\"\000\000\000\000\000\000\002\205\000\000\002\206\000\000\000\000\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\210\000\000\000\000\000\000\000\000\000\000\002\188\003 \002\191\000\000\000\000\006\165\000\000\005&\002\204\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\002\211\002\179\002\206\000\000\002_\005'\002\155\002\206\004\211\002\156\002\157\000\000\002\158\000\000\003C\000\000\000\000\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\191\000\000\000\000\000\000\000\000\000\000\002\159\002\186\005)\002\171\002\172\002\177\000\000\000\000\002\193\000\000\002\179\000\000\000\000\002_\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\003C\000\000\007&\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\000\000\007.\002\155\000\000\000\000\002\156\002\157\002\204\002\158\000\000\002\187\000\000\002\193\002\188\003 \000\000\002\211\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\003 \002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\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\204\000\000\000\000\000\000\000\000\0072\000\000\000\000\002\191\002\211\000\000\002\206\000\000\000\000\002\187\004^\000\000\004_\004`\002\157\000\000\004a\002\191\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\002\188\003 \000\000\000\000\004\212\000\000\003C\002\179\000\000\000\000\002_\000\000\000\000\004\224\000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\007O\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\002\193\004a\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\002\191\000\000\004\245\002\193\004\212\000\000\000\000\000\000\000\000\000\000\000\000\004\212\000\000\004\224\000\000\000\000\002\179\000\000\000\000\002_\004\224\000\000\000\000\000\000\007R\000\000\002\204\000\000\000\000\003C\000\000\007U\000\000\000\000\000\000\002\211\000\000\002\206\002\155\000\000\002\204\002\156\002\157\012r\002\158\000\000\004\245\000\000\000\000\002\211\000\000\002\206\000\000\004\245\000\000\000\000\002\193\000\000\000\000\000\000\000\000\000\000\005\b\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\012s\004d\012t\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007]\000\000\000\000\002\204\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\002\211\000\000\002\206\000\000\005\b\000\000\000\000\000\000\000\000\000\000\000\000\005\b\005\n\012u\002\188\003 \000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\004d\000\000\004\208\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\006\165\000\000\005&\000\000\000\000\000\000\002\155\012v\004\209\002\156\002\157\005\n\002\158\002\191\000\000\000\000\000\000\005'\005\n\002\206\004\211\000\000\000\000\000\000\012w\012x\000\000\012y\000\000\002\179\000\000\000\000\002_\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\003C\000\000\006\165\000\000\005&\005)\000\000\000\000\000\000\006\165\004\209\005&\000\000\012z\000\000\000\000\007e\004\209\000\000\005'\000\000\002\206\004\211\000\000\000\000\002\187\005'\002\193\002\206\004\211\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\012{\002\188\003 \000\000\012|\000\000\000\000\012~\005)\000\000\012\132\012\134\000\000\000\000\000\000\005)\002\159\002\186\000\000\002\171\002\172\002\177\000\000\002\204\002\155\012\146\000\000\002\156\002\157\000\000\002\158\000\000\002\211\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\007k\000\000\000\000\000\000\002\191\012\147\000\000\000\000\000\000\002\187\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\003C\000\000\007o\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\002\155\002_\000\000\002\156\002\157\000\000\002\158\000\000\000\000\002\204\000\000\003C\000\000\007t\000\000\000\000\000\000\002\191\002\211\000\000\002\206\000\000\002\187\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\179\000\000\000\000\002_\000\000\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\000\000\007z\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\193\000\000\002\204\000\000\000\000\002\188\003 \000\000\000\000\000\000\002\191\002\211\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\179\000\000\002\155\002_\000\000\002\156\002\157\000\000\002\158\000\000\000\000\002\204\000\000\003C\000\000\000\000\000\000\000\000\000\000\007~\002\211\000\000\002\206\002\191\000\000\000\000\000\000\000\000\002\187\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\002\193\000\000\002_\000\000\000\000\002\188\003 \004^\000\000\004_\004`\002\157\003C\004a\007\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\004\212\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\004\224\002\204\000\000\002\193\002\188\003 \000\000\000\000\000\000\000\000\002\211\007\144\002\206\002\191\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\004\245\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\003C\000\000\007\138\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\155\002\187\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\003C\000\000\002\159\004\184\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\b\000\000\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\002\193\004a\002\204\000\000\000\000\004d\000\000\004\208\002_\000\000\002\191\002\211\000\000\002\206\000\000\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\224\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\000\000\000\000\007\147\000\000\002\204\000\000\003C\000\000\005\n\000\000\000\000\000\000\000\000\002\211\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\193\000\000\000\000\000\000\002\178\000\000\000\000\000\000\006\165\000\000\005&\002\155\000\000\000\000\002\156\002\157\004\209\002\158\000\000\000\000\002\179\000\000\000\000\002_\000\000\005'\002\155\002\206\004\211\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\211\000\000\002\206\000\000\000\000\005\b\000\000\002\159\002\186\005)\002\171\002\172\002\177\000\000\000\000\n\197\004^\007\160\004_\004`\002\157\004d\004a\004\208\002_\000\000\002\187\000\000\000\000\000\000\000\000\000\000\007\166\000\000\000\000\000\000\004\212\000\000\000\000\000\000\000\000\002\187\000\000\002\188\003 \004\224\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\000\000\b7\005\n\002\188\003 \002\205\000\000\002\206\000\000\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\209\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\006\165\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\002\191\002\179\000\000\000\000\002_\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\003C\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\003C\000\000\001p\000\000\000\000\002\155\005)\005\b\002\156\002\157\000\000\002\158\002\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\002\193\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\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\007\186\002\211\005\n\002\206\000\000\000\000\000\000\002\204\000\000\002\187\000\000\000\000\000\000\000\000\000\000\000\000\002\211\002\155\002\206\000\000\002\156\002\157\000\000\002\158\000\000\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\b9\000\000\005&\000\000\000\000\000\000\001\011\000\000\004\209\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\005'\002\155\002\206\004\211\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\007\192\002\191\000\000\001(\001)\000\000\000\000\001\002\000\000\002\187\000\000\002\159\002\186\005)\002\171\002\172\002\177\002\179\000\000\002\155\002_\000\000\002\156\002\157\000\000\002\158\002\188\003 \000\000\000\000\003C\000\000\000\000\000\000\000\000\000\000\007\196\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\002\187\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\002\193\000\000\000\000\000\000\000\000\002\188\003 \002\159\002\245\000\000\002\171\002\172\002\177\002\191\007\209\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\187\000\000\000\000\000\000\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\002\204\000\000\000\000\002\188\003 \003C\000\000\000\000\000\000\002\211\000\000\002\206\002\191\001Y\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\002\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\007\213\000\000\002\191\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\002\179\002\158\002\178\002_\000\000\002\193\002\204\000\000\002\188\003 \000\000\000\000\000\000\003C\000\000\002\211\000\000\002\206\002\179\000\000\000\000\002_\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\002\193\000\000\002\204\000\000\000\000\000\000\000\000\007\222\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\002\188\003 \000\000\000\000\002\204\000\000\000\000\000\000\003C\000\000\007\226\000\000\000\000\002\211\000\000\002\206\000\000\000\000\000\000\002\187\000\000\000\000\002\204\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\002\205\000\000\002\206\000\000\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\007\235\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\187\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\007\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\193\002\204\000\000\002\188\003 \000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\000\000\000\000\007\247\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\002\193\002_\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\007\251\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\b\002\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\187\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\b\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\193\002\204\000\000\002\188\003 \000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\000\000\000\000\b\012\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\002\193\002_\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\b\017\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\b\023\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\187\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\004^\b\027\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\002\187\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\193\002\204\000\000\002\188\003 \004\146\000\000\000\000\000\000\002\191\002\211\000\000\002\206\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\204\003C\000\000\000\000\000\000\b#\000\000\000\000\000\000\002\211\002\191\002\206\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\002\193\002_\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\b'\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004^\002\187\004_\004`\002\157\002\155\004a\000\000\002\156\002\157\000\000\002\158\004c\000\000\000\000\000\000\002\204\002\193\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\211\002\191\002\206\004d\004\207\004\208\002_\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\004^\000\000\004_\004`\002\157\000\000\004a\002\204\003C\000\000\b3\000\000\000\000\000\000\000\000\002\191\002\211\000\000\002\206\002\187\004\212\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\004\224\002\158\002\179\000\000\000\000\002_\002\193\002\188\003 \000\000\000\000\bK\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\004\209\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\004\210\000\000\002\206\004\211\002\193\002\204\000\000\000\000\004c\bA\000\000\000\000\000\000\002\191\002\211\000\000\002\206\000\000\002\187\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\002\179\000\000\000\000\002_\000\000\000\000\002\188\003 \000\000\000\000\000\000\000\000\002\204\003C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\211\000\000\002\206\002\155\000\000\005\b\002\156\002\157\004^\002\158\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\002\193\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\002\191\002\159\002\186\000\000\002\171\002\172\002\177\000\000\004\219\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\000\000\004\209\000\000\000\000\000\000\bG\002\204\005\n\003C\000\000\004\210\000\000\002\206\004\211\002\187\002\211\004^\002\206\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\003 \000\000\000\000\002\193\004\212\000\000\000\000\000\000\bM\000\000\005&\000\000\000\000\004\224\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b_\005'\002\155\002\206\004\211\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\002\191\000\000\000\000\004\245\000\000\004c\002\211\000\000\002\206\000\000\002\159\002\186\005)\002\171\002\172\002\177\002\179\000\000\000\000\002_\000\000\004d\002\155\004\208\002_\002\156\002\157\000\000\002\158\003C\000\000\000\000\000\000\000\000\000\000\bU\000\000\004^\000\000\004_\004`\002\157\000\000\004a\002\187\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\002\193\000\000\000\000\000\000\000\000\002\188\003 \005\b\002\155\000\000\004\234\002\156\002\157\000\000\002\158\000\000\000\000\000\000\b\\\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\002\204\002\171\002\172\002\177\000\000\004\209\000\000\002\188\003 \002\211\000\000\002\206\002\191\000\000\004\210\000\000\002\206\004\211\000\000\000\000\000\000\000\000\005\n\b\127\000\000\001\007\001\b\001\t\002\179\000\000\001\n\002_\002\187\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\003C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\003 \002\191\000\000\000\000\000\000\ba\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\004c\002\179\002\193\000\000\002_\000\000\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\003C\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005)\000\000\000\000\002\204\000\000\002\193\000\000\002\179\001\027\000\000\002_\000\000\002\211\000\000\002\206\000\000\000\000\000\000\002\155\000\000\003C\002\156\002\157\000\000\002\158\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\002\204\000\000\000\000\002\159\002\186\002\193\002\171\002\172\002\177\002\211\000\000\002\206\001\012\000\000\000\000\004\209\001(\001)\002\159\002\186\001\002\002\171\002\172\002\177\004\210\000\000\002\206\004\211\t\025\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\002\187\000\000\000\000\000\000\000\000\002\204\t\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\211\002\187\002\206\002\188\003 \002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\t#\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\002\187\001A\001B\b\241\000\000\001\007\001\b\001\t\002\191\000\000\001\n\000\000\000\000\001\152\000\000\000\000\000\000\002\188\003 \000\000\000\000\000\000\000\000\002\191\002\179\000\000\000\000\002_\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\003C\000\000\002\179\000\000\000\000\002_\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\003C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\179\000\000\002\193\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\000\000\t+\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\002\187\000\000\000\000\000\000\001\011\002\211\000\000\002\206\000\000\000\000\002\155\002\204\002\193\002\156\002\157\000\000\002\158\002\188\003 \000\000\002\211\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\002\159\002\186\001\002\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\211\000\000\002\206\002\191\t/\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\000\000\000\000\002\179\002\159\002\186\002_\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\188\003 \003C\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\t=\001?\000\000\000\000\001@\000\000\000\000\001A\001B\002\187\000\000\000\000\000\000\000\000\002\193\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\188\003 \000\000\002\191\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\004^\tG\004_\004`\002\157\002\179\004a\000\000\002_\000\000\002\187\002\204\000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\002\211\000\000\002\206\000\000\000\000\000\000\000\000\002\188\003 \004\236\002\191\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\002\193\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\003C\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\001\007\001\b\001\t\002\191\000\000\001\n\002\159\002\186\001\160\002\171\002\172\002\177\000\000\000\000\002\204\000\000\000\000\tK\002\193\002\179\000\000\000\000\002_\002\211\000\000\002\206\002\187\000\000\000\000\000\000\000\000\tT\003C\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\002\188\003 \000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\004c\002\204\000\000\002\188\003 \002\193\000\000\000\000\000\000\000\000\002\211\000\000\002\206\000\000\000\000\000\000\004d\000\000\004\208\002_\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\tX\000\000\002\191\000\000\002\179\001\011\002\211\002_\002\206\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003C\002\179\002\155\000\000\002_\002\156\002\157\000\000\002\158\002\188\003 \000\000\000\000\000\000\003C\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\002\193\000\000\002\159\002\186\004\209\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\004\210\002\193\002\206\004\211\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\191\tc\001\168\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\002\204\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\002\211\000\000\002\206\000\000\000\000\002\204\000\000\002\188\003 \003C\000\000\000\000\000\000\000\000\002\211\001?\002\206\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\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\001Y\002\191\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\179\000\000\000\000\002_\000\000\000\000\002\204\000\000\000\000\000\000\ti\001\011\000\000\003C\000\000\002\211\000\000\002\206\000\000\002\187\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\188\003 \001\012\000\000\002\193\000\000\001(\001)\000\000\tt\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\003 \000\000\000\000\000\000\000\000\002\204\000\000\000\000\002\191\tz\000\000\000\000\000\000\000\000\002\211\000\000\002\206\000\000\002\187\000\000\000\000\000\000\000\000\000\000\002\179\000\000\002\155\002_\000\000\002\156\002\157\000\000\002\158\000\000\000\000\002\188\003 \003C\000\000\001?\000\000\000\000\001@\002\191\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\179\000\000\000\000\002_\000\000\002\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\001Y\000\000\000\000\000\000\t\134\002\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\179\001\015\000\000\002_\002\193\000\000\002\204\000\000\001\029\002\188\003 \000\000\000\000\003C\000\000\002\211\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\002\193\002\204\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\211\000\000\002\206\002\191\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\179\002\159\002\186\002_\002\171\002\172\002\177\000\000\002\204\001\027\000\000\t\140\000\000\003C\000\000\000\000\000\000\002\211\000\000\002\206\002\187\000\000\000\000\000\000\000\000\000\000\t\167\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\002\187\000\000\002\188\003 \000\000\002\193\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\002\188\003 \000\000\001\012\001\029\000\000\000\000\001(\001)\000\000\000\000\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\002\204\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\002\211\000\000\002\206\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\191\002\179\001\n\000\000\002_\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\003C\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\003C\001\027\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\t\226\002\193\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\011\001\015\000\000\000\000\0012\000\000\000\000\002\193\001\029\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\001\015\000\000\000\000\000\000\000\000\001s\000\000\001\029\001\012\000\000\002\204\000\000\001(\001)\001\027\000\000\001\002\000\000\000\000\002\211\000\000\002\206\000\000\000\000\000\000\002\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\211\000\000\002\206\0012\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\001\027\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\001\027\001\011\000\000\000\000\001?\0012\000\000\001@\000\000\000\000\001A\001B\n\015\000\000\000\000\000\000\000\000\000\000\000\000\001\011\001\007\001\b\001\t\0012\000\000\001\n\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\001\012\001>\001\027\000\000\001(\001)\000\000\000\000\001\002\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\n\027\000\000\000\000\001\011\001\007\001\b\001\t\0012\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001>\000\000\001\012\000\000\000\000\001s\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\n5\001>\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\001\015\001@\000\000\001\011\001A\001B\nE\001\029\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001Y\000\000\001F\000\000\000\000\000\000\001s\000\000\000\000\001H\000\000\000\000\000\000\000\000\000\000\001\012\000\000\001\027\001Y\001(\001)\000\000\001>\001\002\001s\000\000\011\185\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001\011\001A\001B\nz\0012\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\000\000\000\000\001\027\001\012\000\000\000\000\001Y\001(\001)\000\000\000\000\001\002\001s\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\001\011\001\007\001\b\001\t\0012\000\000\001\n\001?\000\000\001\015\001@\000\000\000\000\001A\001B\000\000\001\029\001\011\000\000\000\000\000\000\001I\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\011\186\000\000\001\012\000\000\001>\001\027\001(\001)\000\000\000\000\001\002\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\n\140\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\027\001\015\000\000\000\000\001Y\001>\000\000\001\012\001\029\000\000\001s\001(\001)\000\000\001?\001\002\000\000\001@\000\000\001\011\001A\001B\n\164\0012\000\000\000\000\000\000\000\000\000\000\002\155\000\000\001?\002\156\002\157\001@\002\158\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\001Y\001(\001)\000\000\000\000\001\002\001s\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\001?\011\144\000\000\001@\000\000\000\000\001A\001B\011~\000\000\002\187\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\0012\000\000\000\000\000\000\000\000\000\000\002\188\003 \000\000\001>\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001?\000\000\001s\001@\000\000\001\012\001A\001B\011\136\001(\001)\000\000\000\000\001\002\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\191\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\002\159\002\186\000\000\002\171\002\172\002\177\002\179\002\159\002\186\002_\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\000\000\011\150\000\000\001>\000\000\000\000\000\000\000\000\011\164\000\000\002\187\000\000\001?\000\000\000\000\001@\000\000\002\187\001A\001B\011\194\000\000\002\193\000\000\000\000\000\000\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\002\155\001s\000\000\002\156\002\157\000\000\002\158\002\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\211\000\000\002\206\002\191\000\000\000\000\000\000\000\000\000\000\000\000\002\191\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\000\000\003C\000\000\000\000\000\000\011\170\002\155\000\000\003C\002\156\002\157\000\000\002\158\000\000\002\187\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\002\193\000\000\001\029\002\188\003 \002\159\002\186\002\193\002\171\002\172\002\177\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\007\001\b\001\t\000\000\000\000\001\n\000\000\011\174\001\015\000\000\000\000\000\000\000\000\000\000\002\204\001\029\002\187\000\000\000\000\000\000\000\000\002\204\000\000\002\211\002\191\002\206\000\000\000\000\000\000\000\000\002\211\000\000\002\206\002\188\003 \000\000\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\003C\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\001\011\000\000\000\000\000\000\0012\001\029\000\000\000\000\000\000\002\191\000\000\000\000\002\193\000\000\001\007\001\b\001\t\001\027\000\000\001\n\000\000\000\000\001\015\000\000\000\000\002\179\000\000\001\012\002_\001\029\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\003C\000\000\0012\000\000\000\000\000\000\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\002\211\000\000\002\206\000\000\000\000\001\012\000\000\002\193\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\027\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\001\011\000\000\004\212\000\000\0012\001\027\001?\000\000\002\204\001@\000\000\004\224\001A\001B\012\154\000\000\000\000\002\211\000\000\002\206\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001\012\0012\000\000\000\000\001(\001)\001>\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001Y\001?\000\000\004\245\001@\000\000\001s\001A\001B\012\191\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\001s\004\212\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\004\224\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\005\b\000\000\001A\001B\r\021\000\000\000\000\000\000\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\001?\000\000\tL\001@\000\000\000\000\001A\001B\000\000\000\000\004^\001Y\004_\004`\002\157\002\155\004a\001s\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\212\000\000\005\n\000\000\000\000\001Y\000\000\000\000\000\000\004\224\000\000\001\248\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\003\029\000\000\000\000\000\000\000\000\000\000\000\000\002\155\000\000\005\b\002\156\002\157\tY\002\158\005&\000\000\000\000\000\000\000\000\004\245\004\209\000\000\000\000\002\187\000\000\004d\000\000\004\208\002_\005'\000\000\002\206\004\211\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\188\003\b\000\000\000\000\000\000\003\026\000\000\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\005\n\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\002\155\004a\005\b\002\156\002\157\000\000\002\158\002\191\002\188\003\b\000\000\000\000\000\000\000\000\000\000\004\212\000\000\tN\004d\005&\004\208\002_\000\000\002\179\004\224\004\209\002_\002\159\002\186\000\000\002\171\002\172\002\177\000\000\005'\000\000\002\206\004\211\003\006\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\191\000\000\005\n\000\000\000\000\004\245\000\000\000\000\000\000\002\187\000\000\002\193\005)\000\000\000\000\000\000\002\179\002\159\002\186\002_\002\171\002\172\002\177\000\000\000\000\000\000\002\188\003\b\003\n\000\000\000\000\000\000\000\000\000\000\000\000\t?\000\000\005&\004^\000\000\004_\004`\002\157\004\209\004a\000\000\000\000\000\000\002\204\000\000\000\000\002\187\005'\000\000\002\206\004\211\002\193\002\211\004\212\002\206\002\155\000\000\000\000\002\156\002\157\005\b\002\158\004\224\002\188\003\b\002\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004d\005)\004\208\002_\000\000\002\179\002\159\002\186\002_\002\171\002\172\002\177\002\204\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\002\211\000\000\002\206\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\191\000\000\000\000\000\000\000\000\005\n\000\000\000\000\000\000\002\187\000\000\000\000\000\000\000\000\002\193\000\000\002\179\000\000\000\000\002_\002\159\002\186\000\000\002\171\002\172\002\177\002\188\003 \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t\031\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\005\b\000\000\000\000\002\204\000\000\000\000\002\187\005'\002\193\002\206\004\211\000\000\002\211\000\000\002\206\000\000\004d\000\000\004\208\002_\000\000\000\000\002\191\002\188\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\005)\002\179\000\000\000\000\002_\000\000\000\000\000\000\002\204\000\000\000\000\000\000\000\000\000\000\t7\005\n\000\000\002\211\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\002\193\000\000\000\000\000\000\000\000\002\179\000\000\t\026\002_\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\003B\005\003\000\000\000\000\000\000\000\000\005'\002\155\002\206\004\211\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\155\000\000\002\204\002\156\002\157\000\000\002\158\000\000\000\000\000\000\002\193\002\211\000\000\002\206\t\b\000\000\000\000\002\159\004\184\005)\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\002\204\004\185\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\211\000\000\002\206\000\000\000\000\002\187\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\004c\002\188\003\178\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\002\187\004\212\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\004\224\002\158\002\178\000\000\000\000\000\000\000\000\002\188\003\232\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\000\000\002\179\006D\000\000\002_\002\159\004\184\000\000\002\171\002\172\002\177\002\179\000\000\000\000\002_\000\000\004\245\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\000\000\000\000\000\000\001\029\000\000\002\191\000\000\004\185\000\000\000\000\000\000\000\000\000\000\004\186\004\209\000\000\003\188\000\000\000\000\000\000\000\000\002\179\002\193\004\210\002_\002\206\004\211\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\015\000\000\000\000\000\000\006E\006M\000\000\001\029\000\000\000\000\000\000\000\000\005\b\000\000\002\204\000\000\000\000\000\000\003\240\000\000\000\000\000\000\000\000\002\205\002\204\002\206\002\193\000\000\004d\000\000\004\208\002_\000\000\002\211\000\000\002\206\002\178\000\000\001\027\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\001\011\000\000\004\212\000\000\0012\000\000\002\204\005\n\000\000\000\000\000\000\004\224\000\000\000\000\000\000\002\211\000\000\002\206\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\004\186\000\000\000\000\001\011\b\138\000\000\005&\0012\004\245\000\000\000\000\004^\004\209\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\006E\006M\000\000\000\000\001\012\004\212\000\000\000\000\001(\001)\002\204\000\000\001\002\000\000\004\224\000\000\000\000\000\000\000\000\002\205\000\000\002\206\000\000\000\000\000\000\005)\000\000\000\000\004^\001>\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\001?\000\000\000\000\001@\005\b\000\000\001A\001B\000\000\004\245\004\212\004^\000\000\004_\004`\002\157\000\000\004a\000\000\004\224\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\001>\004\212\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001?\004\224\004\023\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\004^\005\n\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\b\000\000\000\000\000\000\004\245\001Y\004\212\000\000\000\000\000\000\000\000\004\025\000\000\000\000\000\000\004\224\004d\000\000\004\208\002_\007^\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\005\b\000\000\000\000\000\000\000\000\004\245\000\000\000\000\000\000\005\n\000\000\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\005\b\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\004d\000\000\004\208\002_\000\000\0078\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\004^\005\n\004_\004`\002\157\000\000\004a\000\000\005'\000\000\002\206\004\211\000\000\000\000\005\b\000\000\000\000\000\000\000\000\000\000\004\212\004^\005\n\004_\004`\002\157\000\000\004a\000\000\004\224\004d\000\000\004\208\002_\006\164\000\000\005&\000\000\005)\000\000\000\000\004\212\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\224\005'\000\000\002\206\004\211\005\025\000\000\005&\000\000\000\000\000\000\000\000\004\245\004\209\000\000\004^\005\n\004_\004`\002\157\000\000\004a\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\005)\000\000\004\245\000\000\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\224\000\000\000\000\000\000\000\000\005$\000\000\005&\005)\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\005\b\000\000\000\000\000\000\000\000\004\245\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\005\b\000\000\000\000\005)\000\000\004\212\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\004\224\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\000\000\002\159\003o\000\000\002\171\002\172\002\177\004^\000\000\004_\004`\002\157\005\b\004a\000\000\004\245\000\000\000\000\000\000\000\000\005\n\000\000\000\000\000\000\000\000\000\000\000\000\004\212\004d\000\000\004\208\002_\0053\000\000\005&\000\000\004\224\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\005C\000\000\005&\004^\000\000\004_\004`\002\157\004\209\004a\000\000\005\n\000\000\000\000\000\000\000\000\004\245\005'\000\000\002\206\004\211\000\000\005\b\004\212\000\000\000\000\005)\004^\000\000\004_\004`\002\157\004\224\004a\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\002\178\005N\000\000\005&\005)\000\000\000\000\000\000\004^\004\209\004_\004`\002\157\005\t\004a\000\000\002\179\000\000\005'\002_\002\206\004\211\004\245\000\000\000\000\000\000\000\000\000\000\004\212\000\000\000\000\005\n\000\000\005\b\000\000\000\000\000\000\004\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005)\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\005Y\000\000\005&\000\000\000\000\000\000\004\245\000\000\004\209\000\000\000\000\000\000\000\000\004\212\000\000\000\000\000\000\005'\005\b\002\206\004\211\005\n\004\224\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\002\205\000\000\002\206\000\000\004c\000\000\001\007\001\b\001\t\005)\000\000\001\n\000\000\000\000\001\015\000\000\005d\004\245\005&\000\000\004d\001\029\004\208\002_\004\209\000\000\000\000\000\000\005\b\000\000\000\000\000\000\005\n\005'\000\000\002\206\004\211\004^\000\000\004_\004`\002\157\000\000\004a\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\212\004^\000\000\004_\004`\002\157\005)\004a\005o\004\224\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\005\b\004\212\000\000\005\n\000\000\005'\000\000\002\206\004\211\000\000\004\224\000\000\000\000\000\000\001\027\000\000\004d\000\000\004\208\002_\004\209\000\000\004\245\000\000\000\000\000\000\000\000\000\000\000\000\004\210\000\000\002\206\004\211\001\011\000\000\005)\005z\0012\005&\000\000\000\000\000\000\000\000\004\245\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\005'\000\000\002\206\004\211\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\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\005\b\005)\000\000\005\133\000\000\005&\004^\000\000\004_\004`\002\157\004\209\004a\000\000\000\000\000\000\004d\000\000\004\208\002_\005'\005\b\002\206\004\211\000\000\000\000\004\212\004^\000\000\004_\004`\002\157\000\000\004a\000\000\004\224\000\000\004d\000\000\004\208\002_\000\000\001>\000\000\000\000\000\000\000\000\004\212\000\000\000\000\005)\001?\005\n\000\000\001@\000\000\004\224\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\005\n\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\005\144\001Y\005&\000\000\004\245\000\000\000\000\b\201\004\209\000\000\000\000\000\000\000\000\004\212\000\000\000\000\000\000\005'\000\000\002\206\004\211\005\155\004\224\005&\004^\000\000\004_\004`\002\157\004\209\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\005\b\004\212\000\000\000\000\005)\000\000\000\000\000\000\000\000\000\000\004\224\000\000\004\245\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\005\b\000\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\004d\000\000\004\208\002_\000\000\000\000\004\245\000\000\004^\000\000\004_\004`\002\157\000\000\004a\005\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\004\212\000\000\000\000\000\000\000\000\000\000\000\000\005\b\005\n\004\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\166\000\000\005&\004d\000\000\004\208\002_\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\005\b\002\206\004\211\005\177\004\245\005&\004^\000\000\004_\004`\002\157\004\209\004a\000\000\000\000\000\000\004d\000\000\004\208\002_\005'\005\n\002\206\004\211\000\000\000\000\004\212\000\000\000\000\005)\000\000\000\000\000\000\000\000\000\000\004\224\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\005)\000\000\005\n\000\000\005\188\000\000\005&\004\212\000\000\000\000\000\000\000\000\004\209\000\000\005\b\000\000\004\224\000\000\004\245\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\005\199\000\000\005&\004^\000\000\004_\004`\002\157\004\209\004a\000\000\000\000\000\000\000\000\004\245\000\000\005)\005'\000\000\002\206\004\211\000\000\000\000\004\212\004^\000\000\004_\004`\002\157\000\000\004a\005\n\004\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\b\004\212\000\000\000\000\005)\000\000\000\000\000\000\000\000\000\000\004\224\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\005\210\004\245\005&\004^\000\000\004_\004`\002\157\004\209\004a\005\b\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\004\245\004\212\000\000\000\000\004d\000\000\004\208\002_\000\000\005\n\004\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\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\005\b\005\n\000\000\005\221\004\245\005&\004^\000\000\004_\004`\002\157\004\209\004a\000\000\000\000\000\000\004d\000\000\004\208\002_\005'\005\b\002\206\004\211\000\000\000\000\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\232\004\224\005&\004d\000\000\004\208\002_\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005)\005'\005\n\002\206\004\211\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\005\b\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\005\n\000\000\000\000\000\000\004\212\000\000\000\000\004d\005)\004\208\002_\000\000\005\243\004\224\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\005\254\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\005\n\000\000\000\000\004\245\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\005\b\000\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\004d\000\000\004\208\002_\000\000\006\t\000\000\005&\004^\005)\004_\004`\002\157\004\209\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\004\212\000\000\000\000\000\000\000\000\000\000\000\000\005\b\005\n\004\224\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\004d\005)\004\208\002_\000\000\000\000\000\000\000\000\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\224\006\020\004\245\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\005\n\002\206\004\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\004^\000\000\004_\004`\002\157\004^\004a\004_\004`\002\157\000\000\004a\005)\000\000\000\000\000\000\006\031\000\000\005&\000\000\004\212\000\000\000\000\000\000\004\209\004\212\005\b\000\000\000\000\004\224\000\000\000\000\000\000\005'\004\224\002\206\004\211\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\002\155\004a\005\b\006A\002\157\000\000\002\158\004\245\005)\000\000\000\000\000\000\004\245\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\005\n\005(\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\n\000\000\0062\000\000\005&\000\000\000\000\002\187\000\000\000\000\004\209\000\000\000\000\005\b\000\000\000\000\000\000\000\000\005\b\005'\000\000\002\206\004\211\000\000\002\188\002\234\000\000\000\000\000\000\004d\000\000\004\208\002_\006=\004d\005&\004\208\002_\000\000\000\000\004^\004\209\004_\004`\002\157\000\000\004a\000\000\000\000\005)\005'\000\000\002\206\004\211\000\000\000n\000\000\000\000\000\000\000\000\004\212\000\000\000\000\004c\000\000\005\n\000\000\000\000\002\191\004\224\005\n\000\000\004^\000\000\004_\004`\002\157\000\000\004a\004d\005)\004\208\002_\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\000\000\004\212\000\000\000\000\000\000\000\000\000\000\006\180\000\000\005&\004\224\004\245\006\194\000\000\005&\004\209\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\005'\000\000\002\206\004\211\002\193\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\005)\000\000\000\000\000\000\000\000\005)\000\000\000\000\000\000\000\000\004\212\004\209\000\000\000\000\000\000\000\000\002\204\005\b\000\000\004\224\004\210\000\000\002\206\004\211\000\000\002\211\000\000\002\206\004^\000\000\004_\004`\002\157\004d\004a\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\212\005\b\000\000\000\000\004\245\001\007\001\b\001\t\000\000\004\224\001\n\000\000\000\000\001\176\000\000\000\000\000\000\004d\000\000\004\208\002_\005\n\000\000\004^\000\000\004_\004`\002\157\000\000\004a\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\245\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\224\005\n\006\208\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\005\b\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\004\245\006\223\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\005)\005\b\005'\000\000\002\206\004\211\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\005\n\000\000\004d\000\000\004\208\002_\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\005)\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004\212\001\002\005\b\000\000\000\000\000\000\006\237\000\000\005&\004\224\000\000\005\n\000\000\000\000\004\209\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\005'\000\000\002\206\004\211\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\006\251\000\000\005&\000\000\004\212\000\000\000\000\000\000\004\209\005)\005\n\000\000\000\000\004\224\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\004^\000\000\004_\004`\002\157\004^\004a\004_\004`\002\157\000\000\004a\000\000\007\011\000\000\005&\004\245\005)\000\000\000\000\004\212\004\209\000\000\000\000\000\000\004\212\000\000\001Y\005\b\004\224\005'\000\000\002\206\004\211\004\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\005)\000\000\004\245\000\000\000\000\000\000\000\000\004\245\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\b\004\224\000\000\000\000\005\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\000\000\007\025\000\000\005&\004\212\000\000\000\000\000\000\000\000\004\209\005\b\000\000\000\000\004\224\000\000\005\b\005\n\000\000\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\005)\007'\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\005\b\000\000\000\000\000\000\005\n\000\000\000\000\000\000\005'\005\n\002\206\004\211\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\0073\005)\005&\004\212\000\000\007\128\000\000\005&\004\209\000\000\000\000\005\b\004\224\004\209\000\000\005\n\000\000\005'\000\000\002\206\004\211\000\000\005'\000\000\002\206\004\211\000\000\004d\000\000\004\208\002_\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\245\000\000\005)\007p\000\000\005&\004\212\005)\000\000\000\000\000\000\004\209\000\000\002\155\000\000\004\224\003\159\002\157\005\n\002\158\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\004\137\000\000\002\171\002\172\002\177\000\000\000\000\004\245\000\000\005)\007\127\000\000\005&\000\000\000\000\000\000\000\000\000\000\004\209\005\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\003q\000\000\000\000\004d\000\000\004\208\002_\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\007\169\003v\000\000\004^\000\000\004_\004`\002\157\005)\004a\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\b\004\224\000\000\000\000\005\n\004\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\224\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\004^\000\000\004_\004`\002\157\004\245\004a\000\000\007\139\000\000\005&\000\000\000\000\000\000\002\179\000\000\004\209\002_\004\245\000\000\004\212\000\000\000\000\005\n\000\000\005'\000\000\002\206\004\211\004\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\007\176\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003w\000\000\005)\007\167\004\212\005&\000\000\000\000\000\000\004\245\000\000\004\209\005\b\004\224\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\005\b\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\004d\000\000\004\208\002_\000\000\004\245\002\211\000\000\002\206\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\005\n\000\000\000\000\000\000\000\000\005\b\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\004^\000\000\004_\004`\002\157\000\000\004a\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\197\004\212\005&\000\000\000\000\000\000\000\000\000\000\004\209\005\b\004\224\000\000\000\000\007\214\000\000\005&\000\000\005'\000\000\002\206\004\211\004\209\000\000\000\000\005\n\004d\000\000\004\208\002_\000\000\005'\000\000\002\206\004\211\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\004\245\000\000\000\000\000\000\005)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\212\000\000\007\227\000\000\005&\005)\005\n\000\000\000\000\004\224\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\240\000\000\005&\004\245\004\212\000\000\000\000\000\000\004\209\005\b\005)\000\000\000\000\004\224\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\004^\004a\004_\004`\002\157\000\000\004a\000\000\004\245\005)\000\000\000\000\000\000\000\000\000\000\004\212\000\000\000\000\000\000\000\000\004\212\000\000\000\000\005\n\004\224\005\b\000\000\000\000\000\000\004\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\007\252\004\245\005&\000\000\000\000\000\000\004\245\000\000\004\209\000\000\000\000\000\000\005\b\004\212\000\000\000\000\000\000\005'\000\000\002\206\004\211\005\n\004\224\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n\229\005)\000\000\000\000\000\000\000\000\000\000\000\000\b\029\004\245\005&\000\000\000\000\000\000\000\000\005\b\004\209\000\000\005\n\000\000\005\b\000\000\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\004d\000\000\004\208\002_\000\000\004d\000\000\004\208\002_\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n\229\000\000\b\r\000\000\005&\000\000\005)\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\n\005'\005\b\002\206\004\211\005\n\000\000\000\000\000\000\000\000\n\231\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001\011\000\000\005)\000\000\b\028\000\000\005&\000\000\000\000\b(\002\155\005&\004\209\002\156\002\157\000\000\002\158\004\209\000\000\000\000\000\000\005'\000\000\002\206\004\211\005\n\005'\n\234\002\206\004\211\n\231\001(\001)\000\000\n\146\001\002\001\005\002\159\004\184\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\005)\000\000\000\000\000\000\000\000\005)\000\000\t0\002\155\005&\000\000\002\156\002\157\000\000\002\158\004\209\000\000\004\185\000\000\000\000\000\000\000\000\000\000\000\000\005'\n\234\002\206\004\211\000\000\001(\001)\000\000\n\170\001\002\001\005\002\159\004\184\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\001?\000\000\000\000\n\237\000\000\005)\001A\001B\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n\229\004\185\000\000\n8\000\000\n\241\000\000\n\239\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\002\178\001\002\000\000\001Y\011\188\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\179\001?\n\229\002_\n\237\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n8\000\000\n\240\000\000\n\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\178\000\000\000\000\001Y\000\000\000\000\000\000\004^\004\186\004_\004`\002\157\n\231\004a\000\000\000\000\002\179\001?\000\000\002_\001@\000\000\000\000\001A\001B\000\000\000\000\004\212\000\000\000\000\000\000\001\011\000\000\000\000\006E\006M\004\224\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\n\231\000\000\000\000\000\000\000\000\000\000\011\186\002\205\000\000\002\206\000\000\004\186\n\234\000\000\000\000\000\000\001(\001)\000\000\001\011\001\002\001\005\000\000\004\245\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n\229\000\000\000\000\000\000\000\000\006E\006M\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\234\002\204\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\002\205\000\000\002\206\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\n\229\000\000\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\b\000\000\001?\000\000\000\000\n\237\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\004d\000\000\004\208\002_\000\000\n8\000\000\n\238\000\000\n\239\n\231\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\001Y\000\000\n\237\000\000\000\000\001A\001B\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\005\n\000\000\000\000\n8\000\000\011\n\000\000\n\239\000\000\000\000\000\000\n\231\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\n\234\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\001\011\000\000\000\000\011\171\000\000\005&\000\000\000\000\000\000\000\000\002\155\004\209\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\005'\000\000\002\206\004\211\000\000\000\000\000\000\n\234\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\005\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\002\155\000\000\005)\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001?\000\000\000\000\n\237\000\000\000\000\001A\001B\002\187\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\n8\000\000\012f\000\000\n\239\000\000\002\188\r\\\000\000\r^\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\001?\000\000\000\000\n\237\000\000\000\000\001A\001B\000\000\002\187\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001L\n8\000\000\012n\000\000\n\239\000\000\001N\002\188\011\133\000\000\000\000\002\155\000\000\002\191\002\156\002\157\001Y\002\158\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\191\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\179\000\000\002\193\002_\000\000\002\187\000\000\000\000\000\000\001\027\000\000\000\000\002\187\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\002\188\011w\000\000\000\000\000\000\000\000\001\011\002\188\003\018\000\000\001O\000\000\000\000\000\000\000\000\000\000\000\000\002\204\002\193\000\000\000\000\000\000\000\000\000\000\000\000\003\014\002\211\000\000\002\206\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\002\188\003\016\002\191\000\000\002\155\000\000\000\000\002\156\002\157\002\191\002\158\002\155\000\000\002\204\002\156\002\157\000\000\002\158\002\179\000\000\000\000\002_\002\211\000\000\002\206\002\179\000\000\000\000\002_\000\000\000\000\002\159\004\184\000\000\002\171\002\172\002\177\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\191\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\155\000\000\000\000\002\156\002\157\002\193\002\158\002\179\000\000\004\185\002_\001?\002\193\000\000\001@\000\000\000\000\001A\001B\002\187\002\159\002\186\000\000\002\171\002\172\002\177\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\002\188\003\r\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\001Y\002\193\000\000\002\204\000\000\002\211\000\000\002\206\002\187\000\000\000\000\000\000\002\211\000\000\002\206\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\003\002\002\178\000\000\000\000\000\000\000\000\002\188\002\189\002\191\000\000\002\155\000\000\002\204\002\156\002\157\000\000\002\158\002\179\000\000\000\000\002_\002\211\000\000\002\206\002\179\000\000\000\000\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\191\000\000\000\000\000\000\000\000\002\155\000\000\002\191\002\156\002\157\000\000\002\158\000\000\000\000\000\000\004\186\002\179\000\000\000\000\002_\000\000\002\193\000\000\002\179\000\000\000\000\002_\000\000\002\187\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\t\016\006M\000\000\000\000\002\188\002\192\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\000\000\002\193\000\000\002\204\000\000\002\205\000\000\002\206\002\193\000\000\000\000\002\187\002\211\000\000\002\206\000\000\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\188\002\208\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002\155\002\204\000\000\002\156\002\157\000\000\002\158\000\000\002\204\000\000\002\211\000\000\002\206\002\179\000\000\000\000\002_\002\211\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\191\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\179\000\000\002\193\002_\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\002\210\012\226\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\002\155\002\204\002\193\002\156\002\157\000\000\002\158\000\000\002\187\000\000\002\211\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\188\002\255\002\159\002\186\000\000\002\171\002\172\002\177\002\191\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\002\211\002\179\002\206\000\000\002_\002\187\000\000\000\000\000\000\000\000\000\000\000\000\001\011\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\002\188\002\247\000\000\000\000\000\000\000\000\000\000\000\000\002\188\002\252\000\000\000\000\000\000\000\000\000\000\002\179\000\000\001\012\002_\002\193\000\000\001(\001)\000\000\000\000\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\002\155\000\000\002\191\002\156\002\157\004^\002\158\004_\004`\002\157\002\191\004a\000\000\002\193\002\204\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\002\211\000\000\002\206\002\179\002\159\002\186\002_\002\171\002\172\002\177\004^\006-\004_\004`\002\157\000\000\004a\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\001?\000\000\002\204\001@\000\000\000\000\001A\001B\000\000\000\000\002\193\002\211\003q\002\206\007Y\000\000\000\000\000\000\002\193\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\003r\003v\000\000\000\000\000\000\000\000\001h\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\000\000\000\000\002\187\000\000\002\204\002\211\002\155\002\206\000\000\002\156\002\157\000\000\002\158\002\211\000\000\002\206\000\000\000\000\000\000\002\188\003t\002\155\000\000\002\191\002\156\002\157\000\000\002\158\004c\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\179\000\000\000\000\002_\000\000\004d\000\000\004\208\002_\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\004c\000\000\002\155\000\000\000\000\002\156\002\157\002\191\002\158\002\155\003q\000\000\002\156\002\157\000\000\002\158\004d\000\000\004\208\002_\000\000\000\000\003w\002\179\000\000\003q\002_\003\131\003v\002\159\002\186\000\000\002\171\002\172\002\177\000\000\002\159\004\184\000\000\002\171\002\172\002\177\003\144\003v\004^\000\000\004_\004`\002\157\000\000\004a\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\003q\002\193\000\000\004\209\000\000\004\185\000\000\002\211\000\000\002\206\002\191\007\162\004\210\000\000\002\206\004\211\000\000\003\158\003v\000\000\000\000\000\000\000\000\000\000\000\000\002\191\002\179\000\000\000\000\002_\000\000\004\209\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\004\210\002\179\002\206\004\211\002_\000\000\000\000\002\211\000\000\002\206\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\191\000\000\002\155\003w\000\000\002\156\002\157\002\178\002\158\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\179\000\000\003w\002_\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\204\004c\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\211\000\000\002\206\000\000\000\000\003w\002\204\000\000\004d\000\000\004\208\002_\000\000\002\187\004\186\002\211\000\000\002\206\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\002\188\004\201\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\188\006M\000\000\002\204\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\002\211\003q\002\206\000\000\000\000\000\000\000\000\002\205\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\132\003v\002\155\000\000\002\191\002\156\002\157\000\000\002\158\000\000\002\155\000\000\000\000\002\156\002\157\004\209\002\158\000\000\000\000\000\000\002\179\000\000\000\000\002_\004\210\000\000\002\206\004\211\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\002\191\000\000\000\000\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\193\002\179\000\000\002\187\002_\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\188\006\134\000\000\000\000\000\000\000\000\000\000\000\000\002\188\007\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\002\155\003w\000\000\002\156\002\157\000\000\002\158\002\211\000\000\002\206\000\000\000\000\000\000\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\191\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\191\000\000\000\000\000\000\000\000\000\000\002\204\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\002\211\002\179\002\206\000\000\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\187\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\188\007\203\000\000\002\193\000\000\000\000\002\155\000\000\000\000\002\156\002\157\002\193\002\158\002\159\002\186\000\000\002\171\002\172\002\177\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\159\002\186\000\000\002\171\002\172\002\177\000\000\002\204\000\000\000\000\000\000\002\191\000\000\000\000\002\187\002\204\002\211\000\000\002\206\000\000\000\000\002\187\000\000\000\000\002\211\000\000\002\206\002\179\000\000\000\000\002_\002\188\007\216\000\000\002\187\000\000\000\000\000\000\002\188\007\229\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\002\188\t\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\002\193\000\000\002\159\002\186\000\000\002\171\002\172\002\177\002\191\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\002\191\000\000\000\000\002\179\000\000\000\000\002_\000\000\002\187\002\204\000\000\000\000\000\000\000\000\000\000\000\000\002\179\000\000\002\211\002_\002\206\000\000\001\007\001\b\001\t\002\188\011\132\001\n\000\000\000\000\001S\000\000\000\000\001\007\001\b\001\t\002\193\001U\001\n\000\000\000\000\001l\000\000\002\193\001\007\001\b\001\t\000\000\001n\001\n\000\000\000\000\001\148\000\000\000\000\000\000\002\193\000\000\000\000\001\150\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\002\191\000\000\001\n\000\000\002\204\001\156\000\000\000\000\000\000\000\000\000\000\002\204\001\158\002\211\000\000\002\206\002\179\000\000\000\000\002_\002\211\000\000\002\206\000\000\002\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\211\000\000\002\206\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\002\193\001\011\000\000\000\000\001\027\001V\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\001o\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001\027\001\151\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\002\204\000\000\001\012\000\000\000\000\000\000\001(\001)\001\011\002\211\001\002\002\206\001\159\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\164\000\000\000\000\000\000\000\000\001\012\000\000\001\166\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\172\000\000\000\000\000\000\000\000\000\000\000\000\001\174\000\000\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\185\001A\001B\000\000\000\000\000\000\001?\001\187\000\000\001@\000\000\000\000\001A\001B\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\001\193\001A\001B\000\000\000\000\000\000\000\000\001\195\001Y\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001\027\001?\001\n\001Y\001@\001\201\000\000\001A\001B\000\000\000\000\000\000\001\203\000\000\001Y\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001\027\001\167\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\001\027\000\000\001\011\000\000\000\000\000\000\001\175\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\011\000\000\000\000\001\027\001\188\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\011\000\000\001\027\000\000\001\196\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\011\001\209\000\000\000\000\001\204\000\000\001\012\000\000\001\211\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\011\197\000\000\001A\001B\000\000\000\000\000\000\011\199\004^\001Y\004_\004`\002\157\001?\004a\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\000\000\001Y\000\000\000\000\001\027\001?\000\000\bh\001@\000\000\000\000\001A\001B\000\000\000\000\bq\000\000\000\000\001Y\000\000\000\000\000\000\bh\001\011\000\000\000\000\001?\001\212\000\000\001@\bq\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\tB\000\000\001\027\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\br\001Y\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\011\200\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\011\205\000\000\000\000\000\000\000\000\000\000\000\000\011\207\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\004c\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\004c\bt\000\000\004\208\002_\002\131\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\bt\000\000\004\208\002_\002\131\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\012\157\000\000\000\000\000\000\000\000\000\000\000\000\012\159\000\000\000\000\000\000\000\000\000\000\000\000\001Y\bk\001\027\000\000\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\012\165\000\000\001A\001B\bk\000\000\000\000\012\167\000\000\001\011\001\007\001\b\001\t\011\208\000\000\001\n\000\000\000\000\012\173\000\000\000\000\000\000\000\000\004\209\000\000\012\175\000\000\000\000\000\000\000\000\000\000\001Y\004\210\000\000\002\206\004\211\001\012\000\000\004\209\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\004\210\000\000\002\206\004\211\001\027\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\012\181\000\000\000\000\000\000\000\000\000\000\000\000\012\183\000\000\000\000\001\011\000\000\000\000\000\000\012\160\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\027\001\011\001\012\000\000\000\000\012\168\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001\011\001A\001B\000\000\012\176\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001\027\000\000\000\000\000\000\001\012\000\000\000\000\001Y\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\001\011\000\000\012\194\000\000\012\184\000\000\000\000\000\000\000\000\012\196\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\012\202\000\000\001A\001B\000\000\000\000\000\000\012\204\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\012\210\000\000\001A\001B\000\000\001Y\000\000\012\212\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\012\218\001@\000\000\000\000\001A\001B\000\000\012\220\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001Y\000\000\001\n\000\000\001\027\012\228\000\000\000\000\000\000\000\000\000\000\000\000\012\230\000\000\000\000\000\000\000\000\000\000\001Y\000\000\001\027\000\000\000\000\001\011\000\000\001?\000\000\012\197\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\012\205\000\000\000\000\001\027\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001Y\000\000\001\027\000\000\000\000\001\011\001\012\000\000\000\000\012\213\001(\001)\000\000\000\000\001\002\001\007\001\b\001\t\000\000\000\000\001\n\001\011\001\027\012\236\000\000\012\221\000\000\000\000\000\000\000\000\012\238\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\012\231\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\012\246\000\000\000\000\000\000\000\000\000\000\001?\012\248\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\001\027\001\007\001\b\001\t\000\000\001?\001\n\000\000\001@\012\254\000\000\001A\001B\000\000\001Y\000\000\r\000\000\000\000\000\001\011\000\000\001?\000\000\012\239\001@\000\000\000\000\001A\001B\004^\000\000\004_\004`\002\157\001\027\004a\000\000\000\000\000\000\002\155\001Y\001?\002\156\002\157\001@\002\158\001\012\001A\001B\000\000\001(\001)\000\000\001\011\001\002\000\000\001Y\012\249\t\021\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\159\004\184\001\199\002\171\002\172\002\177\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001\027\000\000\001\002\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\189\001\007\001\b\001\t\000\000\000\000\001\n\001\011\000\000\001\197\000\000\r\001\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\002\159\004\184\001\002\002\171\002\172\002\177\000\000\000\000\000\000\001\007\001\b\001\t\000\000\004c\001\n\001?\001Y\001\205\001@\000\000\000\000\001A\001B\002\178\000\000\000\000\001\011\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\001\213\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\001\011\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001\007\001\b\001\t\000\000\011\r\001\n\000\000\001\012\001\216\000\000\000\000\001(\001)\000\000\000\000\001\002\001\012\000\000\000\000\002\178\001(\001)\000\000\000\000\001\002\000\000\001Y\000\000\000\000\000\000\004\209\000\000\000\000\000\000\000\000\002\179\000\000\001\011\002_\004\210\002\204\002\206\004\211\000\000\000\000\000\000\000\000\000\000\000\000\002\205\001?\002\206\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\011\014\000\000\001(\001)\000\000\001\011\001\002\000\000\000\000\000\000\011\r\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\001Y\001A\001B\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\000\000\001\007\001\b\001\t\002\204\000\000\001\n\001Y\000\000\001\220\000\000\000\000\000\000\002\205\000\000\002\206\001Y\000\000\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\001?\011\022\001\002\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\155\000\000\000\000\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\000\000\001?\001Y\000\000\001@\000\000\000\000\001A\001B\002\159\003\129\000\000\002\171\002\172\002\177\000\000\002\159\003\142\000\000\002\171\002\172\002\177\002\155\000\000\000\000\002\156\002\157\000\000\002\158\002\155\000\000\000\000\002\156\002\157\001?\002\158\001Y\001@\000\000\000\000\001A\001B\000\000\001\011\000\000\000\000\000\000\000\000\000\000\002\159\003\146\000\000\002\171\002\172\002\177\000\000\002\159\003\156\000\000\002\171\002\172\002\177\002\155\000\000\000\000\002\156\002\157\000\000\002\158\001Y\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\159\003\244\n\225\002\171\002\172\002\177\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\002\178\n\232\000\000\000\000\000\000\002\155\000\000\002\178\002\156\002\157\000\000\002\158\000\000\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\000\000\000\000\002\159\006\130\000\000\002\171\002\172\002\177\000\000\001?\002\178\000\000\001@\000\000\000\000\001A\001B\002\178\000\000\000\000\000\000\000\000\000\000\000\000\002\155\000\000\002\179\002\156\002\157\002_\002\158\000\000\000\000\002\179\000\000\000\000\002_\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\002\178\002\159\011u\001\011\002\171\002\172\002\177\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\002\179\001\011\000\000\002_\002\204\000\000\002\205\000\000\002\206\000\000\000\000\000\000\000\000\002\205\001\012\002\206\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\000\000\001\012\000\000\000\000\002\178\001(\001)\000\000\000\000\001\002\002\204\000\000\002\155\000\000\000\000\002\156\002\157\002\204\002\158\002\205\002\179\002\206\000\000\002_\000\000\000\000\002\205\000\000\002\206\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\159\011\130\011\201\002\171\002\172\002\177\000\000\000\000\001\007\001\b\001\t\002\204\000\000\001\n\002\178\000\000\011\209\000\000\000\000\000\000\002\205\001?\002\206\000\000\001@\000\000\000\000\001A\001B\000\000\002\179\000\000\000\000\002_\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\012\161\000\000\000\000\000\000\001Y\000\000\002\204\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\206\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\012\169\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\002\178\000\000\012\177\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\204\000\000\000\000\000\000\002\179\001\011\000\000\002_\000\000\002\205\000\000\002\206\000\000\000\000\000\000\000\000\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\012\185\000\000\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\012\208\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\012\198\001\012\001\007\001\b\001\t\001(\001)\001\n\001\011\001\002\012\206\000\000\000\000\000\000\002\204\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\002\205\001?\002\206\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\001\012\000\000\000\000\001?\001(\001)\001@\000\000\001\002\001A\001B\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\001\011\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\000\000\001\002\000\000\001\007\001\b\001\t\001\011\000\000\001\n\000\000\000\000\012\214\000\000\000\000\000\000\000\000\001\011\000\000\001?\001Y\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\001?\000\000\001\002\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\012\222\001Y\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\012\232\000\000\001Y\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\012\240\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\000\000\001@\000\000\001Y\001A\001B\000\000\000\000\001?\001\011\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\012\244\000\000\000\000\000\000\000\000\000\000\012\224\000\000\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\001Y\001\002\012\250\000\000\000\000\000\000\000\000\001\011\000\000\000\000\001Y\000\000\000\000\000\000\000\000\000\000\000\000\001\011\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001\012\r\002\000\000\000\000\001(\001)\000\000\000\000\001\002\001\011\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\011\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\001\011\000\000\000\000\001Y\000\000\000\000\001\007\001\b\001\t\001?\000\000\001\n\001@\000\000\000\000\001A\001B\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\001\012\000\000\000\000\000\000\001(\001)\001\011\000\000\001\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001Y\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\001Y\001?\000\000\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\001\011\000\000\001\002\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\001Y\000\000\000\000\000\000\001\007\001\b\001\t\001\011\000\000\001\n\001h\000\000\000\000\001\012\000\000\000\000\001\011\001(\001)\000\000\001?\001\002\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\001\011\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\000\000\001\002\001\012\001\007\001\b\001\t\001(\001)\001\n\000\000\001\002\000\000\001?\000\000\001Y\001@\001\012\000\000\001A\001B\001(\001)\000\000\000\000\001\002\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\000\000\001\n\000\000\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\000\000\001?\001\n\001Y\001@\000\000\000\000\001A\001B\001\007\001\b\001\t\001\011\004^\001\n\004_\004`\002\157\000\000\004a\000\000\000\000\001?\001\011\000\000\001@\000\000\000\000\001A\001B\000\000\001?\000\000\000\000\001@\000\000\001\229\001A\001B\001\012\000\000\000\000\011\146\001(\001)\001?\000\000\001\002\001@\000\000\001\012\001A\001B\000\000\001(\001)\000\000\001\225\001\002\000\000\000\000\000\000\000\000\001\011\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\001g\000\000\000\000\000\000\000\000\000\000\001\007\001\b\001\t\001\011\001\012\001\n\000\000\000\000\001(\001)\000\000\000\000\001\002\000\000\000\000\001\011\000\000\000\000\000\000\004^\000\000\004_\004`\002\157\000\000\004a\001?\001\011\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\001?\001\002\000\000\001@\000\000\001\012\001A\001B\000\000\001(\001)\011\166\004c\001\002\000\000\000\000\000\000\001\012\000\000\000\000\000\000\001(\001)\000\000\001f\001\002\000\000\000\000\004d\000\000\004\208\002_\000\000\000\000\000\000\004\190\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\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\001?\001\011\000\000\001@\000\000\000\000\001A\001B\000\000\b\214\000\000\000\000\001?\000\000\000\000\001@\000\000\000\000\001A\001B\000\000\000\000\000\000\000\000\001?\000\000\000\000\001@\001\012\000\000\001A\001B\001(\001)\000\000\b\221\001\002\000\000\004c\004\209\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\219\004\210\000\000\002\206\004\211\000\000\000\000\004d\000\000\004\208\002_\000\000\b\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\001@\000\000\000\000\001A\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\004\209\000\000\000\000\000\000\000\000\b\250\000\000\000\000\000\000\004\210\000\000\002\206\004\211")) + ((16, "\002\158\001\031\000G\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\022\000)\001\003\000\164\000\226\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\242\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\000\000\000\000\000\000\000\000\000\000\000\001V\001\174\003H\003\164\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\003\\\000\000\001\016\000\000\001\226F,\003n\000\000\003\\\000\000\002\130\000\000\004\026\000\000\000\000\000\000\000\000Fh\000\000\000\000\012\202\016\128\003\148\000\000\004\184\000\000\000\000\004\216\004\224\000\000\000\000G\016\000\000\006\012\000\000\007\000\000\000\005$\000\000\007\\\000\000K\236\003\\\005X\000\000\005\242\001\b\006\210\000\000\001\226\004\178\006\240\007\016\000\000\000\000\000\000\000\000\018\138\006\178\004\206\005:\000\000\000\000\000\000\b\004\000\000\000\000\000\003\000\000\000\000\000\000\000\000\000\000\005\016\000\000\007\142\000\000\0050\000\000\007\150\005\172\000\000\007\230\000\000\000\000\000\000\000\000\000\t\000\000\000\000\000\000\006\172\000\000\b\016\006\230\000\000\000b\003\158\b\026\000\000\t\218\b\226\000\000\000\000\011\204\003\\\000\000\000$\003\228\023\172\000\000\000\000\bj\006\244\024\024\000\000\000\000\nhGN\t\200\000\000\012\b\n\016\000\000\012T\014\188\220D\000\000\220\166\000\000\002\012\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\002PG\138\t\136\019\242\n*\011`\011\132\000\000\000\000\000\000K\022\n\154\000\000\000\000\014x\016\170\000\000\000\000\000)\003@\000\000\000\000\000\000\000\000\002P\000\000\000\000\000\000\000\000H0\000\000\b\218\000\000\011\018\000\000\b\236\000\000\001(\017f\000\000\011:\000\000\000\000\011^\000\000\tj\000\000\000\000Hl\000\000\000\000\000\000\000\000\000\000\000\218\0112\198\252\011\218\000\000\000\000\003.\011\246\206\026\012\018\000\000\000\000\022\024\012\030\000\000\206h\012&\000\000\000\000E,\012D\000\000\000\0298\254\000\000\220\220\000\029\003\156\000\000\000\000\000\000\000\000\221(\000\000\221R\000\029\000\029\000\029\000\000\000\000\207\144\012~\000\000\000\000\130R\012\224\000\000\000\000\000\000\000\000\rh\000\000\000\000\000\000\t\200\000\000\000\000\r|\000\000\t\246\000\000\000\000\000\218\000\000H\200\000\000\t\254\000\000\r\202\000\000\n$\000\000\000\218\r\164\000\000\000\218\000\000IP\000\218\r\188\207\168\r\234\000\000\000\000\131\228\r\250\000\000\000\000\207\218\014\"\000\000\000\000\134\146\014T\000\000\014\162\207\236\014\206\000\000\000\000\137\130\015\018\000\000\000\000\208(\0150\000\000\000\000\140\b\015>\000\000\170\148\017\208\000\000I\170\000\218\015j\208P\015\172\000\000\000\000\174\214\015\216\000\000\000\000\209\n\016\014\000\000\000\000\179\248\016(\000\000\016@\209^\016j\000\000\000\000\182\006\016\130\000\000\000\000\209\162\016\144\000\000\000\000\186^\016\168\000\000\196x\016\196\000\000\000\000\197v\016\228\000\000\000\000\000\218\000\000\000\029\168\230\000\000\000\000\000\029\201\022\000\000\000\000\012\252\017T\000\000\000\000\000\000\000\000\000\000\015b\000\000\007$\018\028\000\000J\142\007T\162,\000\000\000\000\000\000\000\000\000\218\000\000\000\000\000\000\014\026\000\000\000\000\000\000\000\000\000\000\000\000\0022\018 \000\000\000\000\000\000\000\218J\202\000\218J\254\000\218\000\000\000\000\163V\000\000\000\000\019\012\000\000\000\000\000\000\000\000\031\1803\166\017\176\007n\017\134\195R\000\000\000\000\000\000\000\000K\174\000\218\000\000\195\252\000\000\000\000\000\000L\144\000\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000*\234\000\000\017\180\b\186\018^\000\000\000\000\000\000\000\000\n\170\000\000\000\000\t\138\000\175\000\000\t\218\006\236\017\192\t\240\b@\b\226\000\164\004d\t\218\019&\000\186\005\196\000\152\031\180\018\n\n\018\000\231\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\1903\166L\216\031\180M2\031\180M\190\031\180\019\150\019\028\163p\031\180\\$\000\000\000\000\000\000\000\000\164\b\031\180w\030\000\000\000\000C\026\164V\031\180\018X\n\020N,!\140\000\000\018\226\011F\198,\000\000\000\000\000\000\001\137\000\000\198:\001\137\000\000\198J\000\000\000\000\000\000O*\000\218\000\000\000\0000\028\000\000\000\000\000\000\000\000\000\000\001\137\1998\001\137\199V*\234\003\012\000\000\000\000\n,\000\000\000\000\000\000\n\142\000\000@T\000\000\000\000\000\000v\182\000\000\000\239\000\000\000\000\000\000\000\000\000\000\001\137\000\000\200&\000\000\000\000\000\000O\208\000\218\000\000\000\000\153\014\000\000\000\000\001\137P\012\000\218\000\000\200>\001\137\006\210\000\000\001\137\000\000\000\000\001\137\000\000\165D\000\000\000\000\000\000\001\137\165\158\000\000\000\000\000\000\001\137\000\000\000\000\001\137\000\000\001\137\000\000\005B\019\212\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\166H\001\137\024x\000\000\000\000\019 \011R\025\000\025\136\000\000\000\000\019`\011`\025\186\026B\000\000\166$\031\180\019z\011hQ\000\000\000\166t\000\000\000\000\021\030\000\000\000\000\000\000\031\180\019\188\011\176Q\178\000\000\166\152\000\000\000\000\019\198\011\184\167j\000\000\000X\001\192\019\018\019\140\000\000\000\000QD\019\170\000\000\000\218\000\000\000\218\000\000\000\000\000\000\005\158\000\000\000\000\000\000\000\000\000\000\002X\020\216\026\202Q\214\000\000\000\000\000\000R*\000\218\000\000\200\202\000\000\000\000\000\000Rh\000\218\000\000\000\000\174~\000\000\000\000\000\000\019\186\201T\001\137\000\000\000\000\000\000\201x\000\000\000\000\000\000S\n\000\218\000\000\000\000\189\234\000\000\000\000\019\186\000\000\201\204\000\000\000\000\000\000S\146\000\218\000\000\000\000\192\216\000\000\000\000\019\186\204\220\000\000\202\020\000\000\000\000\000\000S\188\000\218\000\000\000\000\215\172\000\000\000\000\019\186T\200\021\n\000\000T\004\002t\000\000\202\160\002\164\000\000\020\232\000\000\000\000\000\000\000\000\0276\0056\000\000\n\168\000\000\000\000\000\000\000\000\000\000\000\000\005N\027\236\019\194\000\000\000\000TT\019\196\000\000\000\218\000\000\203J\003r\000\000\022\236\0276\000\000\000\000\027\162\020\b\020\012\020\020\011\192\003\224\005N\011\222\167L\031\180\020 \011\232UP\000\000\000\000\015\204\000\131\000\000\000\000\011\244\000W\000\131\000\000\017@\020>\000\000\000\000\019\228\000\000\000\000\023\214\019\230\000\000\t\134\006\204\t\190\b\240\021\236\000\000\000\000\168\030\000\000\168l\021p\000\000T|\000\218U\192\000\218\000\000\004\132\001\206\000\000\024\228\019\252\000\000\t\134\000\000\000\000\020j\000\000\000\000\000\000\000\000\000\000\025Z\020\002\000\000\t\134\026\136\020\n\000\000\t\134\000\000\000\000\029\204\t\134\000\000\001\004\000\000\000\000\006\186\000\000\000\000\000\000\022\014\000\000\000\000\t\134\000\000\000\000#\190\020\018\000\000\t\134\t\134\000\000\t\134\000\0004x\t\134\000\0008^\t\134\000\000\020X\011\248\028\160\020Z\011\250LRM\210\000\000\000\000\000\000\000\000\000\000\000\000\000\000\t(\019p\000\000\000\000\000\000\020^\012\022\005\196\012\030\004\186\000\000\006 \000\000\001\002\005N\000\000\001\236\000\000A\\\020 \000\000\000\000\t\134\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\002Fz\t\134\000\000\000\000\000\000Q\214\000\000U\232\000\218\028\254yV\000\000\000\000\000\000\134J\000\000\000\000V\140\031\180\020d\012*V\186\000\000W\184\020r\0124\029l\020~\012LX\b\000\000\169\024\000\000\000\000\022\024\000\000\000\000\000\000\031\180\020\140\012TXP\000\000\000\000\000\000\000\000\n(\000\000\n\156\029\134\020\142\012\\\169f\000\000\138\000\000\000\000\000\007f\221d\000\029\000\000\030R\020\144\012bY\012\000\000\020\146\012f\203h\001\137\030l\031R\020\152\012z\151\206\000\000\000\000\000\000\000\000\000\000\169\236\031\180\020\156\012\128Y$\000\000\175\130\000\000\020\158\012\130Z(\000\000\tv\000\000\000\000\0224\000\000\000\000\000\000\000\000\000\000\186\176\000\000\194\224\000\000\000\000Y\230\020\162\012\140Z\178\000\000ZH\000\000\000\000\170<\000\000\000\000\0228\000\000\000\000\000\000\031\180\020\168\012\142[\188\000\000\221\162\000\000\020\170\012\176\\\000\000\000\222\014\000\000\020f\031\160\000\000\000\000\005\022\170F\031\180\020\178\012\178\\H\000\000\020\180\012\198\\\140\000\000\005\022\171H\031\180\020\182\012\210]T\000\000\020\184\012\218]\152\000\000\005\022\000\000\000\000\222`\000\000\171z\031\180\020\190\012\220]\220\000\000\020\200\012\232^ \000\000\005\022 8\007J R\000\000\000\000\172\020\031\180\020\210\r\014^\164\000\000\020\212\r\016^\232\000\000\005\022\172.\031\180\020\220\r4_,\000\000\020\222\r:_p\000\000\005\022\172v\031\180\020\228\rF_\244\000\000\020\232\rZ`8\000\000\005\022\173t\031\180\020\236\r^`|\000\000\020\238\r``\192\000\000\005\022\173~\031\180\020\240\rdaD\000\000\020\242\rna\136\000\000\005\022\173\224\031\180\020\246\rva\204\000\000\020\248\rxb\016\000\000\005\022\174.\031\180\020\250\r\128b\148\000\000\020\252\r\148b\216\000\000\005\022\174\162\031\180\021\004\r\150c\028\000\000\021\n\r\154c`\000\000\005\022\175V\031\180\021\012\r\156c\228\000\000\021\018\r\164d(\000\000\005\022\175\226\031\180\021\020\r\168dl\000\000\021\022\r\184d\176\000\000\005\022\176\012\031\180\021\024\r\192e4\000\000\021\030\r\194ex\000\000\005\022\176V\031\180\021 \r\196e\188\000\000\021&\r\206f\000\000\000\005\022\176\164\031\180\021(\r\208f\132\000\000\021,\r\210f\200\000\000\005\022\1770\031\180\021.\r\214g\012\000\000\0210\r\216gP\000\000\005\022\177\228\031\180\0214\r\222g\212\000\000\0218\r\226h\024\000\000\005\022\1782\031\180\021<\r\242h\\\000\000\021>\014\006h\160\000\000\005\022\178|\031\180\021L\014\ni$\000\000\021P\014\012ih\000\000\005\022\178\166\031\180\021R\014\"i\172\000\000\021^\014&i\240\000\000\005\022\179\b\031\180\021`\014.jt\000\000\021b\014Bj\184\000\000\005\022\1792\031\180\021d\014Lj\252\000\000\021f\014Pk@\000\000\005\022\1804\031\180\021h\014tk\196\000\000\021j\014\132l\b\000\000\005\022\180~\000\000\000\000\023\000\000\000\000\000\000\000\031\180\021n\014\154lL\000\000\222\166\000\000\021v\014\160l\144\000\000\005\022\180\234\031\180\021~\014\180m\020\000\000\021\128\014\184mX\000\000\005\022\014\186!~\1810\021D\000\000\"\006W\014\021F\000\000\"R\000\000\000\218\"l\000\000\"\170\006\028\000\000l\254\021N\000\000#T\000\000\000\218$ \000\000\021R\000\000$~\000\000\000\000m\198\021Z\000\000$\168\000\000\000\218%0\000\000\000\218%\128\000\000n*\021b\000\000%\238\000\000\000\218&\176\000\000\000\000\002\178nN\021n\000\000\000\218o\016\021x\000\000\000\218ot\021z\000\000\000\218\000\000'J\000\000\000\000\000\000\000\000\000\000'd\000\000'\184o\152\021|\000\000'\216\000\000\000\218(\152\000\000)\030\006d\000\000p0\021~\000\000)\162\000\000\000\218*b\000\000\021\130\000\000*|\000\000\000\000pT\021\132\000\000+H\000\000\000\218+\168\000\000\000\218,0\000\000p\214\021\134\000\000,\128\000\000\000\218,\238\000\000\000\000\000\000-\024\000\000\021\136q|\021\138\000\000-\176\000\000\000\218.d\000\000\000\000.\240\000\000\019\186/\026\000\000\203\238\000\000\000\000\000\000q\146\000\218\000\000\000\000\215\240\000\000\000\000\019\186\204>\001\137\n\190\000\000\011\004.\254r\020\021\140\000\000/\136\000\000\000\218/\178\000\0000Z\007\138\000\000r8\021\142\000\0000\254\000\000\000\2181\138\000\000\021\146\000\0001\180\000\000\000\000r\186\021\150\000\0002<\000\000\000\2182\236\000\000\000\2183\156\000\000r\208\021\154\000\0003\234\000\000\000\2184V\000\000\000\000\000\0004\164\000\000\000\000\005V\007\026\000\000\000\000\000\000\005\022\005\022s\250\000\000\000\000\000\000\181D\031\180\021\222\014\188t\146\000\000\021\224\014\190u\004\000\000\005\022tZ\000\000\000\000\182T\031\180\021\230\014\200u\174\000\000\021\232\014\220vn\000\000\005\022v`\000\000\000\000\182\128\031\180\021\240\014\246v\250\000\000\021\244\014\248w\164\000\000\005\022\n\2065>\000\000\000\000\182\200\031\180\021\246\014\250xN\000\000\021\252\015\000x\146\000\000\005\0225\204\000\000\000\000\183T\031\180\022\004\015\bx\214\000\000\022\b\015\018y\128\000\000\005\0226&\000\000\000\000\183~\031\180\022\012\015\024y\158\000\000\022\014\015\026z*\000\000\005\022\000\000\000\000z\132\000\000\000\000\184.\031\180\022 \015 z\212\000\000\022$\015&{~\000\000\005\022{\194\000\000\000\000\184\162\031\180\022&\0156|l\000\000\022*\0158|\136\000\000\005\022|\204\000\000\000\000\185\002\031\180\0228\015B}v\000\000\022:\015N}\186\000\000\005\022\000\000\1850\031\180\022<\015R~z\000\000\022>\015`~\190\000\000\005\022\000\000\023\218\000\000\000\000\005\022\000\000\022>\000\000\000\0006\128\000\0007\012\000\000\000\000\000\000\000\000\000\000\000\0007z\000\000\000\0007\212\000\000\000\000\000\000\000\000~\154\000\000\000\000\127\b\000\000\000\000\127\132\000\000\000\000\000\000\222\228\000\000\022B\015f\128H\000\000\005\022\000\000\185\\\031\180\022F\015n\128\204\000\000\185\138\031\180\022H\015\134\129\026\000\000\022J\015\148\129\140\000\000\005\022\022N\015\166\129\156\000\000\186\132\031\180\022P\015\180\130\168\000\000\022R\015\190\130\198\000\000\005\022\005\022\186\222\031\180\022X\015\196\131\026\000\000\022\\\015\212\131t\000\000\005\022\000\000\000\000\000\000\131\202\000\000\000\000\132\030\000\000\000\000\1878\000\000\000\000\023\244\000\000\000\000\000\000\031\180\022b\015\222\132\184\000\000\222\238\000\000\022h\015\224\133\012\000\000\005\022\000\000\019\18684\000\000\000\0008\228\000\000WH\000\000\000\000M\210\000\000\000\000\133~\031\180\022t\015\234\133\226\002X\187j\031\180\022z\015\240\134T\000\000\022\130\015\252\134\174\000\000\005\022\001H\000\000\001\204\205,\205:\001\137\187\180\031\180\022\132\015\254\135 \000\000\022\136\016\002\135\232\000\000\005\022\205H\001\137\188\186\031\180\022\138\016\004\135\246\000\000\022\140\016\012\136\190\000\000\005\022\2060\001\137\188\236\031\180\022\144\016\028\137\018\000\000\022\148\016 \1370\000\000\005\022\001\137\1896\031\180\022\154\016$\137\218\000\000\022\156\016(\138L\000\000\005\022\189\128\031\180\022\160\016*\139\012\022\168\189\244\031\180\022\172\0168\139\028\000\000\022\174\016>\139\142\000\000\005\022\022\178\016B\140N\022\186\190\164\031\180\022\190\016H\140^\000\000\022\194\016f\140\208\000\000\005\022\005\022\190\238\031\180\022\196\016l\141\144\000\000\022\200\016n\141\160\000\000\005\022\000\000\000\000\000\000\022\180\000\000\000\000\000\000\022\212\016\142\142\018\007\194\022\180\000\000\000\000\000\000\000\000\006$\022\180\000\000\142l\031\180\022\214\016\146\143\030\tD\022\180\000\000\022\216\016\148\143\164\nj\022\180\000\000\000\000\000\000\000\000\bF\022\180\000\000\143v\031\180\022\218\016\170\144l\n\174\022\180\000\000\000\000\022\220\016\174\144\186\011\214\022\180\000\000\000\000\000\000\t\026\022\180\000\000\024B\000\000\000\000\142\154\000\000\005\234\000\000\003,\000\000\023\198\000\000\006D\000\000\000\000\000\000\000\000\000\000\t(\000\000\000\000\000\000\000\000\000\000\000\000\022\230\016\182\145@\000\000\000\000K\226\t\134\000\000Q\140\t\134\000\000p>\t\134\000\000\005\022\000\000y\228\t\134\000\000z\168\t\134\000\000~\226\t\134\000\000\001\0029D\000\000\016\190\006`\001\0029\158\000\000\022\236\016\194\012\n\023\146\022\178\000\000\000\000\001\022\007x\001\002\139n\022\180\000\000\b\n\001\002\t\134\b \001\002\000\000:\012\000\000\001&\000\000\000\000\bz\001\002\000\000\022\250\016\198\011\198\000\000\000\000\000\000\000\000\000\000\023\0301\218\001#\000\000\000\000\000\000\000\0004\190\000\000\191<\000\000\tx\016\204\000\000\016\208\000\000\000\000\000\000\000\000\000\000\003\"\000\000\000\000\222\142\000\029\000\000\000\000\223&\223\\\000f\000\000\001\146\000\000\000\000\005\022\000\000\t\218\003\\\023.\000\000\011\140\000\000\000\000\000\000I\020\000\000\223t\000\029\005\022\000\000\223\206\000\029\005\022\016\214\000\000:T\000\000\000\000\016\244\024.\000\000;J\011(\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\176\000\000;\186\000\000\223\240\000\000\023\b\016\250\145\194\000\000\005\022\023\n\017\004\146D\000\000\005\022\000\000\000\000\146\146\000\000\000\000\000\000\191Z\031\180\023\012\017\028\147\004\000\000\023\014\017 \147\020\000\000\005\022\000\000<&\000\000\000\000\023\028\017*\148\146\000\000\000\000\000\000\005\022\000\000\000\000\023\030\017T\148\236\000\000\023\"\017\\\149\188\000\000\005\022\000\000\024\136\000\000\000\000\000\000\000\000\023(\017`\149\212\r\026\022\180\000\000\023.\017d\150.\r\\\022\180\000\000\000\000\000\000\tL\022\180\000\000\0230\017h\150\136\rf\022\180\000\000\0232\017\130\150\216\r~\022\180\000\000\000\000\000\000\000\000\n\022\022\180\000\000\0236\017\152\151\192\r\188\022\180\000\000\0238\017\168\151\220\014f\022\180\000\000\000\000\000\000\000\000\nX\022\180\000\000\000\000\023<\017\182\b\200\001\002\000\000\142h\t\134\000\000\000\000\000\000\152\020\023\"\000\000\000\000\000\218\000\000\152\148\023$\000\000\000\000\000\218\000\000\152\188\023&\000\000\000\000\000\218\000\000\023j\017\184\153\222\000\000\b\164\000\000\023l\023n\017\186\t \001\002\000\000\017\222\t>\001n\000\000\023p\023r\017\228\023\158\024^\144\146\t\134\011P\000\000\017\234\rP\r\144\003,\011p\023\222\017\240\014\006\004\128\r\"\023\224\000\000\000\000\004\192\rB\000\000\t\226\004\164\206~\001\137=\014\000\000\011Z\001\222\000\000\000\000\011\190\000\000\000\000\000\000\023~\017\248\016P\000\000\020h\000\000\154\"\011.\000\000\024L\024R\000\000\rJ\000\000\023\140\017\250\014\180\023\174\0022\000\000\000\000\000\000\000\000\017\254\r\132\000\000\018\006\r\176\000\000\016\n\000\000\000\218\023\144\023\156\018\n\025V\000\000\023\174\000F\000\000\000\000\000\000\015*\000\000\000\000\000\000\001\003\018\016\023|\154N\000\218\000\000\004\012\018:\024`\000\000\000\000\000\000\000\000\000\000\000\000\154v\000\218\000\000\018F\024\212\000\000\000\000\000\000\000\000\000\000\000\000\020\200\r\184\000\000\018P\000\160\000\000\018\\\018`\006\168\000\000\002\128=\144\000\000\004T\000\000\154\200\000\218\000\218\000\000\000\000\001(\000\000\016j\000\000\002\166\001(\001(\000\000\018f=\226\000\218\155\176\000\218\015|\000\000\000\000\000\000\016T\000\000\000\000\0044\000\000\002\212\024\018\018h\025h\023\192\000\000\000\000\003^\007r\024\024\000\000\000\000\018j\025|\023\212\000\000>X\000\253\018\136\023\158\0002\005R\018\140\024\130\000\000\000\000\025d=(\000\000\000\000>\220\000\000\016\174\000\000\011\254\000\000\000\000\000\000\000\000\000\000\000\000\156&\000\218\000\000\025f?*\000\000\000\000?\182\000\000\001\025\018\162\025\012\000\000\000\000\156\224\021P\tB\000\000\156x\000\218?\232\000\000\000\000@\226\000\000\000\000\017\b\000\000\b\242\000\000\000\000\000\000\000\000\000\000\000\000\021\176\000\000\000\000\156\250\022x\011\000\000\000\157h\000\218A6\000\000\000\000A\150\000\000\000\000\018\168A\234\017\140\000\000\018\174\018\178\000\145\000\218\018\206\r\026\018\212\025\020Cb\017\156\000\000\018\220\018\246\017f\000\000\003\148B\178\000\000\000\018\000\000\018\250\210\014\210^\004>\023\172\004\220\000\000\028@\023\218\000\000\002\030\000\000\000\000\002\030\000\000\000\000\002\030\017v\000\000\005t\002\030\025\028C\184\018z\000\000\002\030\000\000\b(\000\000\202\232\000\000N\168\014B\000\218\000\000\192\028\215\030\000\000\192l\000\000\002P\000\000\000\000\000\000\001(\000\000\000\000\000\000\000\000\002\030\000\000\000\000\018\204\000\000\0072\005\004\019\004\000\000\019\002C\250\019\028\000\000\000\000\000\000\0190\000\000\000\000\004d\000\000\002\030\192\188\000\000\t\004\002\030\142\216\000\000\019\162\024V\019\016\025\176\024\b\000\000\169z\019\170\024`\000\000\000\000\000\000\003\188\020\b\000\000\000\000\000\000\000\000\000\000\000\000\020f\000\000\019\176\000\000\024\004\019\026\t\254\001\236\000\000\024\130\019\028\n\192\000\000\004z\025\178\025X\019\196\024\140\000\000\000\000\000\000\000\000\000\000\000\000\019\216*v\000\000\000\000\000\000\020f\000\000\000\000\000\000\000\000\019\2222\240\000\000\000\000\000\000\000\000\000\000\000\000\025J\000\161\015\022\024J\007\170\019P\000\000\019T\000\000\001\006\000\000\000\000\000\000\000\000\000\000\000\000\000\000\024T\007\228\019V\000\000\019X\000\000\001\184\014\134\025\204\025v\019\236\000\000\000\000\025b\001\228\005\222\000\000\000\000\000\000\001\002\t\134\000\000\216h\000\000\000\000\001\137\000\000\207,\000\000\000\000\000\000\157\166\000\218\000\000\000\000\216x\000\000\000\000\001\137\001\137\000\000\158L\000\218\000\000\b\012\000\000\000\000\024@\019Z\158\172\000\000\224*\000\000\024B\019\\\159t\000\000\005\022\000\000\193f\000\000\000\000\025\220\000\000\000\000\000\000\031\180\024J\019^\159\130\000\000\224\194\000\000\024L\019d\160J\000\000\005\022\000\000\160\158\000\000\000\000\000\000\000\000\000\000\160\226\000\218\024\014\210\194\024\020\000\000\000\000\215@\024\022\000\000\000\000\211\016\024\026\000\000\000\000\216\176\024\"\000\000\014\188\005\186\000\000\000\000\006L\000\000\000\000\000\000\015~\024J\024\146\015~\000\000\000\000\000\000\000\218\000\000\024T\t\244\000\000\000\000\011\020\000\000\000\000\000\000\000\000\000\218\000s\002\246\011L\000\000\000\000\011b\000\000\000\000\000\000\000\000\011\228\000\000\000\000\011\250\000\000\000\000\000\000\000\000\000\000\t\156\025\172\020\"\000\000\000\000\025\152\003D\005.\000\000\000\000\000\000\000\000\003\190\014\210\025\204\n\156\025\178\020$\000\000\000\000\025\158\003\234\007\132\000\000Z\014\024|\024~\019h\b\\\020.\000\000\019\160\011\158\0202\000\000\024\128\024\130\019\166\024\174\024^\151\222\t\176\000\000\019\168\000\133\000\000\014\170\020>\000\000\025,\000\000\153\140\t\134\020j\024\248\019\174\025<\000\000\154\130\n\218\020n\025\004\000\000\000\000\025B\024b\000\000\000\000\tx\019\b\014n\020\136\000\000\163\026\n\222\000\000\020\146\000\000\005\138\165h\024b\000\000\t\134\000\000\r(\000\000\000\000\024\166\019\222\017$\023\174\024\170\019\228\026h\024\192\000\000\000\000\193\148\020\152\025\022\020\000\026r\024\202\000\000\000\000\193\244\020\190\025 \000\000\000\000\000\000\146X\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\020\196\000\000\024\202\020\014\167\158\011\170\015\"\000\000\025<\000\000\025B\020\016\011\026\000\000\015\224\000\000\n\232\026\018\020\226\025H\000\000\000\000\000\000\000\000\000\000\000\000\t\134\000\000\000\000Dd\020\018\000\000\0200\216\014\000\000\000\000\000\029\216\200\000\000\000\000\000\000\000\000\000\218\000\000\161B\000\218\024\156\211&\024\158\000\000\000\000\2172\024\162\000\000\000\000\211Z\024\164\000\000\000\000\217f\024\168\000\000\024\170\211z\024\182\000\000\000\000\217\138\024\184\000\000\000\000\212z\024\186\000\000\000\000\217\214\024\192\000\000\218\012\022\160\000\000\161\148\000\218\024\194\212\156\024\196\000\000\000\000\218\"\024\198\000\000\000\000\212\208\024\200\000\000\000\000\218t\024\202\000\000\024\208\2132\024\216\000\000\000\000\218\136\024\232\000\000\000\000\213\186\024\234\000\000\000\000\218\184\024\236\000\000\000\029\218\228\024\240\213\238\024\244\000\000\000\000\219P\024\246\000\000\000\000\214b\024\248\000\000\000\000\219d\025\000\000\000\000\029\219\216\025\002\214\158\025\004\000\000\000\000\220\006\025\n\000\000\000\000\214\226\025\012\000\000\000\000\2202\025\014\000\000\011\020\000\000\000\000\000\218\000\000\000\000\000\000\000\000\000\000\162\004\000\000\011\234\000\000\025|\000\000\012 \000\000\000\218\025\128\000\000\015\184\020\234\000\000\000\000\000\000E\b\000\000E\148\000\000\000\000\000\000\000\000\000\000\b\140\000\000\000\000\000\000\001\216\000\007\000\000\000\000\000\000\000\000\000\000\011F\000\007\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\154\000\000\000\000\000\000EF\000\000\000\218\000\000\023L\000\000\000\000\000\000\000q\000\000\000\000\000\000\007\n\000\000\000\000\000\000\002z\000\000\001\002\000\000\0180\000\000\t\134\000\000\000\195\000\000\000\000\000\000\1954\001\137\000\000\000\000\003\028\000\000\000\000\000\000\000\000\t(\005\200\025\132\000@\000\000\000\000\000\000\000\000\000\000\000\000\025\134\005\180\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000:\232\000\000\020\246\000\000\000\000\000\000\000\000\006~\007\162: s\236\000\000\000\000\021\004\146\146\000\000\000\000\000\000\021\b\163H\000\000\000\000\000\000\000\000"), (16, "\011j\004E\t\020\004F\004G\002\169\011\166\004H\r\166\001.\001\020\001\021\0008\003\237\001/\001l\001\020\001\021\0008\002\242\001m\004\187\011k\011\138\000\204\002\240\011m\000\204\004X\000\216\012\031\004\199\000\216\n\227\001\b\003\237\002g\011n\011\139\002k\002l\rk\001\014\001\017\002\167\002g\n\229\002g\002k\002\143\002k\002l\r\167\r\150\bx\r\186\004G\002\169\0008\002\144\t!\t#\t%\000\222\004\220\0008\004\015\000\217\nU\011\023\002\202\011\193\004\019\011o\001\014\004h\002\188\011\142\002k\001\020\001l\001\020\001\021\012G\003\239\001m\002\146\004\011\0044\012\135\002g\012\153\003\235\002k\002l\000<\011j\004E\004\015\004F\004G\002\169\nV\004H\004\019\t(\001\014\r\151\n\136\000@\000\220\011\025\001\020\000\221\011p\001\014\011\156\004\187\011k\011\138\004\020\000\209\011m\011\023\n\137\004\239\000\209\004\199\n\160\000n\011\026\011q\001\020\011n\011\139\011\028\002\156\000q\002\169\011X\011\170\011\171\004K\0010\004\183\002k\002m\0014\0015\0010\004i\001\014\004\020\0014\0015\011\172\011\173\001\014\004\021\004\030\004\220\011\143\001\020\012\"\012#\011\025\002\165\011\174\tH\011o\t-\002g\004\031\011\142\002k\002l\011\144\001\019\001\020\001\021\004/\004\030\001\022\003b\011\026\001\152\012A\006\239\011t\011\028\012&\tH\011u\011D\r\187\011w\004\183\002k\011|\001\n\001\019\001\020\001\021\006\239\011Q\001\022\004\244\001\014\001\027\004\245\011p\005\r\002\157\011\136\0010\001)\0014\004\184\0014\0015\001\014\004\239\001\014\006\239\000\143\006\239\005\014\011q\002\218\004\186\001l\001\020\001\021\000;\011\137\001m\b\022\011S\004K\000:\004\183\002k\006\239\001\b\004d\002\157\n3\ri\003e\0014\001\020\001\014\001\017\001\014\011\186\005\016\t\031\011\143\011U\011j\004E\r{\004F\004G\002\169\002\157\004H\rf\000A\0014\011\018\002g\011\144\001\014\002k\002l\011\155\006\239\000[\000>\004\187\011k\011\138\001\023\011t\011m\000\240\001'\011u\011V\004\199\011w\nm\004$\011|\002\157\011n\011\139\004d\0014\b\254\001\014\004\244\001\014\011\023\004\245\001\023\005\r\t\002\011\136\001>\001\024\n\002\004\184\011\167\0014\0015\n\136\000\179\001\014\t/\t\031\005\014\004\220\002\218\004\186\0012\0013\011\189\000\143\011\137\n\145\011o\n\137\001\024\000_\011\142\n\144\0014\0015\006\239\003`\001\014\011\153\000c\000\145\011\025\rY\000\209\r|\b\024\005\016\011\168\000\147\000x\011j\004E\002\020\004F\004G\002\169\004d\004H\t\001\0010\011\026\n\006\011\169\0014\0015\011\028\t\001\001\014\011p\011,\001~\004\187\011k\rp\b{\004\t\011m\001K\002\157\004\239\001L\004\199\0014\001M\001N\011q\001\014\011n\011\139\004\015\004e\001J\011G\000\209\r}\004\019\004K\001\014\004\183\002k\001K\r\132\001\014\001L\000\143\t\003\001M\001N\003_\n\139\bz\b\024\001e\t\003\004\220\011\143\r\174\004G\002\169\r\158\001\b\002\023\000\182\011o\011{\000\209\003\177\004X\001\014\001\017\011\144\001\019\001\020\001\021\003b\001e\001\022\b\187\nB\001V\001\127\002k\011t\004\020\004e\rV\011u\rX\r\133\011w\003\180\006\239\011|\000\147\001\019\001\020\001\021\011\170\011\171\001\022\004\244\012\031\001\027\004\245\011p\005\r\t\031\011\136\006d\001)\r\159\004\184\011\172\011\173\004h\004\239\by\002k\001\b\r\134\005\014\011q\002\218\004\186\011\174\tH\001\014\001\017\011\137\001*\003a\000\209\004K\011j\004\183\002k\r\176\001\b\012J\003j\012\002\011\145\000\209\r\135\001\020\001\014\001\017\004e\012V\005\016\001\018\011\143\004f\011j\004E\011k\004F\004G\002\169\011m\004H\b\188\nE\002\236\002\218\000\145\011\144\000\148\002\237\002\240\011n\001\236\011\030\000\147\004\187\011k\011\138\001\023\011t\011m\n\161\001'\011u\t\020\004\199\011w\rr\b~\011|\004i\011n\011\139\n\136\003\208\000w\r\177\004\244\004\183\002k\004\245\001\023\005\r\n\020\011\136\001>\001\024\011o\004\184\n\137\0014\0015\n\136\n\138\001\014\001\b\002\202\005\014\004\220\002\218\004\186\003a\012Y\001\014\001\017\011\137\000\232\011o\n\137\001\024\001\b\012\000\n\143\0014\0015\012\"\012#\001\014\001\014\001\017\002\202\000v\t$\t#\t%\003a\005\016\004X\011p\000\143\011j\004E\006h\004F\004G\002\169\002g\004H\0129\002k\002l\001\b\012&\tH\n\139\011q\t\001\000\127\011p\001\014\001\017\004\187\011k\011\138\012M\012N\011m\001K\002\157\004\239\001L\004\199\0014\001M\001N\011q\001\014\011n\011\139\011\023\b\228\001J\000\139\000\187\004h\011r\004K\002k\004\183\002k\001K\012&\tH\001L\n\136\001-\001M\001N\001\141\011\134\011s\000\155\001e\t\003\004\220\011\143\001l\001\020\001\021\003\237\n\137\001m\011t\011o\n\168\002]\011u\011\147\000\143\011w\011\144\011\025\011|\000\222\n\153\001e\011\129\012O\004\006\n\192\001\127\002g\011t\002\202\002k\002l\011u\011\136\003a\011w\011\026\001k\011|\001\b\n\159\011\028\000\189\012M\012N\011#\004\244\001\014\001\017\004\245\011p\005\r\n\155\011\136\011\137\004i\000\145\004\184\000\146\n\025\011\023\004\239\004\"\011W\000\147\002k\005\014\011q\002\218\004\186\012&\tH\n\155\n\157\011\137\r\194\004G\002\169\004K\006\239\004\183\002k\011j\004E\000\162\004F\004G\002\169\000\161\004H\011K\n\030\t2\n\157\011\134\005\016\011S\011\143\n\158\006\239\r\197\r\198\011\025\004\187\r\200\011\134\002g\0008\011m\002k\002l\002g\011\144\004\199\002k\002\143\004X\011U\n\158\011n\r\202\011\026\t\001\000\192\011t\002\162\011\028\002\236\011u\n\132\011 \011w\003\192\002\240\011|\000\145\0010\000\157\b\185\011\023\0014\0015\004\244\000\147\001\014\004\245\004\220\005\r\011V\011\136\004V\004\030\002\146\004\184\t\001\011o\000\206\002g\003d\004\\\002k\002\143\005\014\004h\002\218\004\186\002k\006\239\012K\t\003\011\137\003$\000\210\011j\004E\004X\004F\004G\002\169\r\217\004H\011\025\002g\b\191\000\143\002k\002l\b\137\006\241\n\194\012\150\005\016\r\209\t\031\004\187\r\210\011p\000\170\002\146\011m\011\026\t\003\t\020\000\209\004\199\011\028\012L\004\239\004(\011\029\011n\r\218\bm\011q\r\195\011\023\004\183\002k\004j\003\n\002\169\004X\004h\000\176\004K\002k\004\183\002k\011j\004E\011\030\004F\004G\002\169\000\213\004H\000\209\004\220\004i\005\012\r\205\002g\002\236\t\031\002k\002\143\011o\0065\002\240\004\187\011k\011\191\000\209\004X\011m\012\151\011\190\011\025\011\144\004\199\012\023\t#\t%\004)\004Y\011n\011\139\002\202\004h\000\209\011t\002k\003\205\003\237\011u\t\020\011\026\011w\002\236\r\138\011|\011\028\b\186\006x\002\240\011'\002g\011p\004\244\002k\002\143\004\245\004\220\005\r\011\168\011\136\b\233\004i\004\239\004\184\004h\011o\0008\002k\011q\000\145\000\143\000\166\005\014\011\169\002\218\004\186\003a\000\147\000\209\004K\011\137\004\183\002k\011j\004E\000\178\004F\004G\002\169\006\239\004H\b\186\002a\nB\r\222\r\154\002k\012\026\t#\t%\n\127\005\016\r\209\002k\004\187\r\210\011p\004i\003\239\011m\004'\004\011\012\213\011\144\004\199\000\186\000\143\004\239\001\014\004,\011n\r\213\004\015\011q\b~\011t\000\224\001\014\004\019\011u\001\014\000\185\011w\006\239\004K\011|\004\183\002k\005\012\004i\000\222\000\143\006\239\004\244\000\228\004\006\004\245\004\220\005\r\r\155\011\136\004\167\002k\011\143\004\184\000\227\011o\004X\b\131\001\019\001\020\001\021\000\246\005\014\001\022\002\218\004\186\0115\011\144\002g\000\222\011\137\002k\002l\011\180\004\006\004\020\r\139\006\240\002\218\011t\000\191\004\021\004\030\011u\000\143\002\007\011w\tV\002\236\011|\000\145\005\016\000\168\006\200\002\240\004\031\011p\004\244\000\147\b\245\004\245\011\023\005\r\004h\011\136\000\209\002k\004\239\004\184\002\005\000\143\011j\004E\011q\004F\004G\002\169\005\014\004H\002\218\004\186\n\169\002+\b\157\004K\011\137\004\183\002k\nB\004X\012Z\002k\004\187\011k\000\209\rt\000\145\011m\000\172\r\216\004X\000\209\004\199\011\025\000\147\0117\005\016\n\234\011n\011\149\000\222\001\019\001\020\001\021\002[\004\006\001\022\nB\011\144\001\027\002k\000\145\011\026\000\208\001\023\000\209\001)\011\028\012L\000\147\011t\011J\b\250\000\212\011u\004\220\004h\011w\004i\002k\011|\b\198\002\169\b\253\011o\004X\005\029\004h\004\244\000\209\002k\004\245\011:\005\r\011\219\011\136\0014\0015\000\189\004\184\001\014\001\017\000\209\007\146\n\139\000\145\000\143\000\215\005\014\012\031\002\218\004\186\011\162\000\147\002\218\000\143\011\137\004E\012`\004F\004G\002\169\n\238\004H\004X\011p\001\014\011S\t\005\b\177\b~\000\145\004h\000\231\000\226\002k\004\239\005\016\001'\000\147\007\146\011\176\011q\002\218\001\019\001\020\001\021\007\131\011U\001\022\b\145\004i\001\027\004K\t\180\004\183\002k\001\023\012.\001)\000\222\001>\004i\001K\003\249\004\006\011=\t\222\004X\001M\001N\004h\011\152\007\132\002k\001\019\001\020\001\021\000\143\011V\001\022\002^\n\137\004X\011B\001\024\011?\011\144\002J\0014\0015\002g\rv\001\014\002k\002\143\b~\0008\001e\011t\000\245\002g\012\031\011u\002k\002l\011w\004i\002\236\011|\005\012\n\001\t)\n\218\002\240\004h\t\027\004\244\002k\006\239\004\245\t:\005\r\012x\011\136\000\143\n\005\000\145\004\184\0019\004h\001'\003\250\002k\011\023\000\147\000\145\005\014\001=\002\218\004\186\004J\012\"\012#\000\147\011\137\004i\001J\000\143\t\031\001\023\012D\000\143\002\029\001>\t\198\001K\012\143\004K\001L\004\183\002k\001M\001N\012/\012B\005\016\000\253\000\209\012&\tH\000\143\001\019\001\020\001\021\000\143\011\025\001\022\001\024\004X\001\027\001\023\0014\0015\006\187\002\169\001\014\001)\t\216\000\222\004i\001e\002S\011\127\004\006\011\026\001\127\b\151\007\134\000\145\011\028\001G\b~\001\000\011\\\004i\t\020\000\147\012m\001\024\001\019\001\020\001\021\0014\0015\001\022\005\012\001\014\001\027\006\189\002\169\012\145\011z\b~\000\143\001)\004h\b~\003\237\002k\012\031\b\165\002V\004\184\000\222\012\"\012#\000\143\012\200\004\006\001J\005\012\004\185\002Y\002\218\004\186\000\145\002g\001\134\001K\002k\002\143\001L\r\130\000\147\001M\001N\012/\012B\001'\002e\002\137\012&\tH\012(\t#\t%\t\031\012\031\000\145\004\014\001\139\000\209\000\145\t\031\001\146\001\234\000\147\001\023\012S\001K\000\147\001>\001L\001e\0008\001M\001N\004\154\001\127\t@\004\014\000\145\012\127\001\150\012\142\000\145\001'\002\229\003\239\000\147\004i\004\011\011\194\000\147\007\155\001\024\006\239\002k\002\143\0014\0015\000\209\004\015\001\014\tC\001\023\012\204\n!\004\019\001>\001\014\rS\000\209\001\019\001\020\001\021\006\239\b~\001\022\007K\002\236\001\027\002k\002\143\n6\n\242\002\240\n\199\001)\000\209\000\209\005\012\006\239\001\024\000\145\007\166\002\233\0014\0015\t\020\000\143\001\014\000\147\001\019\001\020\001\021\001\"\000\145\001\022\003\190\b~\001\027\012\"\012#\001\248\000\147\004\020\001J\001)\b~\007w\006\239\004\021\004\030\005\012\000\143\001K\t\020\b\172\001L\001!\012\031\001M\001N\012/\012B\004\031\001\249\t\020\012&\tH\001\019\001\020\001\021\002\017\tN\001\022\000\143\001 \001\027\012\"\012#\001\248\b~\002\153\001J\001)\012+\t#\t%\001'\001e\001%\002\197\001K\n\015\001\127\001L\001;\0032\001M\001N\012/\012B\000\143\001\249\0038\012&\tH\001\023\003?\n\021\002\015\001>\012d\0123\t#\t%\001B\004\014\001'\004\014\001\014\t\031\r\131\t\031\0126\t#\t%\001e\001\019\001\020\001\021\t\020\001\127\001\022\001E\001\024\012\249\001\023\012\193\0014\0015\001>\t\020\001\014\003K\n\203\001~\001\254\003R\000\145\t\031\t8\003\218\001\019\001\020\001\021\001'\000\147\001\022\b\243\t\006\001\027\000\209\t\031\001\248\001\024\001v\003\221\001)\0014\0015\000\209\003\225\001\014\000\145\001\023\n+\000\209\003\233\001>\004@\004C\000\147\n'\000\209\001\254\0008\001\249\000\209\012;\t#\t%\012\"\012#\001\250\004S\000\145\001J\r^\004U\012>\t#\t%\001\024\000\147\004\128\001K\0014\0015\001L\004\133\001\014\001M\001N\012$\012%\t\015\tH\t\169\012&\tH\004\014\004\136\000\145\000\209\rb\004\148\001J\000\209\b~\004\159\000\147\000\209\004\171\001\023\004\175\001K\006\239\r\t\001L\001'\001e\001M\001N\002\b\004\181\001\127\000\209\004\191\004\197\001S\t\175\000\209\006\239\004\216\004\231\t\186\006\239\000\209\001\023\000\209\000\209\001\024\001>\001u\001J\0014\0015\t\192\001\254\001\014\001e\004\237\004\250\001K\000\209\001\127\001L\001Y\000\209\001M\001N\002\b\004\254\001]\000\209\006\239\001\024\001`\005\005\000\209\0014\0015\005\t\005\020\001\014\001\019\001\020\001\021\t\204\005\024\001\022\000\209\001d\001\027\012\152\000\209\001\248\006\239\001e\000\209\001)\006\239\000\209\001\127\000\209\001\019\001\020\001\021\005$\005(\001\022\n\029\t\006\001\027\000\209\n\026\002\t\000\209\000\209\001\249\001)\001y\001K\000\209\000\209\001L\002\r\005/\001M\001N\0053\n\031\001\019\001\020\001\021\n;\005:\001\022\001J\002\011\001\174\000\209\000\209\n\019\t\006\n\130\005>\001K\005E\005I\001L\005P\000\209\001M\001N\002\b\005T\r@\000\209\012\151\005[\005_\000\209\000\209\nG\005f\001\019\001\020\001\021\000\209\001}\001\022\001'\t\210\001\027\005j\005q\002\t\005u\005|\b~\001)\001e\005\128\001\130\005\135\nJ\001\127\000\209\000\209\nx\001\023\001'\005\139\001\137\001>\011\005\005\146\005\150\005\157\002\011\001\254\n\024\t\006\005\161\005\168\005\172\000\209\005\179\005\183\000\209\001\023\005\190\b~\005\194\001>\000\209\012\138\b~\001\024\000\222\001\254\005\201\0014\0015\nY\000\209\001\014\000\209\000\209\b~\000\209\005\205\001\148\005\212\005\216\000\209\011\182\001\023\001\024\000\209\000\209\001\190\0014\0015\000\209\005\223\001\014\005\227\001\019\001\020\001\021\005\234\001'\001\022\000\209\000\209\001\027\000\209\000\209\001\248\b~\005\238\000\209\001)\000\209\001\024\005\245\001\153\005\249\0014\0015\001\023\000\209\001\014\012Q\001>\000\209\000\209\000\209\001\166\001J\001\254\001\253\000\209\000\209\000\209\006\000\000\209\000\209\001K\012r\000\209\001L\000\209\006\004\001M\001N\002\b\001\014\001\024\001J\000\209\001\161\0014\0015\006\017\012\194\001\014\006\023\001K\001\165\000\209\001L\000\209\000\209\001M\001N\0114\006\030\011\134\006\"\006&\006\253\007\001\001e\000\209\006\239\000\209\007\011\001\127\001\169\000\209\001\019\001\020\001\021\001'\001K\001\022\007\015\001L\001\027\000\209\001M\001N\001e\b~\000\209\001)\000\209\001\127\003\237\007\025\007\029\007(\001\023\001\173\007,\011\134\001>\nL\0076\001J\n1\002\169\001\254\007:\000\209\t\031\007D\007H\001K\001e\007T\001L\000\209\007X\001M\001N\002\b\n?\tH\rg\001\024\007b\007f\000\209\0014\0015\000\209\007p\001\014\001\019\001\020\001\021\001\182\007t\001\022\007|\000\209\001\027\000\209\000\209\000\209\000\209\007\128\001e\001)\007\171\000\209\012\202\001\127\007\179\001\019\001\020\001\021\n\152\001\177\001\022\000\209\001'\001\027\003\239\000\189\007\185\004\011\0046\001*\001)\011\160\tH\007\189\000\209\000\209\000\209\006\239\004\015\000\209\012\230\001\023\007\194\000\209\004\019\001>\001\014\001J\000\209\007\200\001*\000\209\000\209\001\181\007\204\000\209\001K\007\212\000\209\001L\t\031\001\155\001M\001N\002\b\007\216\000\209\000\209\001\185\001\024\007\238\007\244\000\209\0014\0015\001\189\b\b\001\014\000\209\b\014\000\209\001'\006\239\012\030\tH\b\018\b\031\000\209\b#\b,\000\209\001e\004\020\b0\000\209\011\134\001\127\001\203\004\021\004\030\001\023\b9\001'\b=\001>\bE\000\209\bI\bP\001\019\001\020\001\021\004\031\000\209\001\022\bV\n\141\001\027\bZ\002k\b_\001\023\000\209\be\001)\001>\n\156\006\239\001\024\000\209\001\198\001J\0014\0015\000\209\t\031\001\014\000\209\bi\003\237\001K\bq\bu\001L\001*\000\209\001M\001N\nM\001\024\000\209\000\209\001\202\0014\0015\001@\000\209\001\014\b\129\000\209\b\143\b\149\001\019\001\020\001\021\000\209\000\209\001\022\000\209\000\209\001\027\n\193\b\163\000\209\b\170\001e\t\031\001)\b\205\001\206\001\127\000\209\b\232\000\209\b\238\000\209\t\t\000\209\000\209\t\028\001J\t\030\001\210\006\239\tE\000\209\001'\001*\000\209\001K\000\209\006\239\001L\000\209\001\219\001M\001N\001\141\001\192\tJ\003\239\001J\t]\003\240\004-\001\023\n\228\tb\000\209\001>\001K\000\209\000\209\001L\004\015\001\214\001M\001N\001\141\to\004\019\ts\001\014\t\129\001e\t\139\t\143\001\218\000\209\001\127\000\209\000\209\011\r\001\024\001\222\002k\012\177\0014\0015\001'\011%\001\014\000\209\002k\000\209\001e\001\226\t\152\000\209\003\237\001\127\t\156\000\209\t\167\000\209\t\173\000\209\t\184\001\023\000\209\001\229\000\209\001>\004E\000\209\004F\004G\002\169\004\020\004H\t\190\012\178\n\254\012\179\004\021\004\030\001\233\r\162\001\247\000\209\011\t\t\202\000\209\004\187\012\157\tH\001\024\000\209\004\031\t\208\0014\0015\002\001\004\199\001\014\001J\t\221\t\249\n\000\000\209\t\227\000\209\006\239\000\209\001K\000\209\000\209\001L\002\022\012\180\001M\001N\001\141\001\019\001\020\001\021\n\004\002#\001\022\n\n\003\239\003W\n\017\004\011\r\163\n\023\004\220\000\209\001)\n0\n>\000\209\nF\000\209\004\015\000\209\nI\000\209\nQ\001e\004\019\n^\001\014\006\239\001\127\002*\011\218\002I\001J\012\181\000\209\002M\004E\002X\004F\004G\002\169\001K\004H\003Y\001L\000\209\nd\001M\001N\001\141\012\182\012\183\no\000\209\012\184\006\239\004\187\nz\000n\002_\000\209\000\209\000\209\n\140\003^\n~\004\199\006\239\n\147\n\163\n\173\004\239\004\020\b\002\002d\011+\001e\006\239\004\021\004\030\000\209\001\127\012\212\000\209\001'\n\179\000\209\n\183\004K\000\209\004\183\002k\004\031\000\209\000\209\t\163\000\209\t\159\n\212\004\220\000\209\n\252\000\209\001\023\011I\000\209\011\001\001>\012\186\001\019\001\020\001\021\012\187\002\136\001\022\012\189\011H\001\029\012\195\012\197\011(\002\149\004\241\011\006\001\230\012\137\000\209\011$\002k\003\031\002\152\001\024\000\209\012\209\006\239\0014\0015\000\209\006\239\001\014\011\012\006\239\011\020\000\209\011L\000\209\011N\000n\000\209\000\209\000\209\006\239\004\244\011b\012\210\004\245\011P\005\r\011y\011~\004\239\006\239\003\023\004\184\006\239\000\209\011T\000\209\001\019\001\020\001\021\006\239\005\014\001\022\002\218\004\186\001\027\004K\000\209\004\183\002k\000\209\002\196\001)\000\209\011\163\000\209\011\165\011\177\011\179\011\223\011\229\011\243\001J\003#\011\249\001'\012_\006\239\006\239\000\209\005\016\001K\000\209\006\239\001L\006\239\000\209\001M\001N\003_\004\241\006\239\0031\n3\001\023\001\019\001\020\001\021\001\231\000\209\001\022\000\209\011`\001\027\012c\000\209\011g\012i\012o\011v\001)\012{\000\209\006\239\n5\006\239\001e\000\209\000\209\011\132\004\244\001\127\001\024\004\245\0037\005\r\0014\0015\006\239\011\140\001\014\004\184\011\150\006\239\001'\012\156\006\239\003>\012\160\011\185\005\014\n3\002\218\004\186\000\209\003E\000\209\000\209\000\209\000\209\000\209\000\209\012\168\001\023\000\209\006\239\000\209\001>\006\239\012\191\012\199\012\218\nw\001\019\001\020\001\021\012F\012U\001\022\005\016\003J\001\027\012a\006\239\012e\003Q\012\220\006\239\001)\003X\012s\001\024\001'\006\239\000\209\0014\0015\000\209\000\209\001\014\006\239\000\209\006\239\001K\003\\\tR\001L\003\130\003\185\001M\001N\001\023\012y\003\182\012\128\001>\003\199\003\203\tI\n3\b\231\001\019\001\020\001\021\003\217\000\209\001\022\012\139\000\209\001\027\003\224\003\238\012\144\003\241\003\245\012\166\001)\003\255\001e\001\024\n\223\004\001\000\209\0014\0015\004\012\004\018\001\014\004\024\000\209\000\209\000\209\004\028\001J\012\174\004+\0042\012\188\004?\004B\001'\004R\001K\004`\004\127\001L\000\209\n3\001M\001N\003_\004\132\012\206\001\019\001\020\001\021\rh\004\135\001\022\001\023\004\142\001\\\r\203\001>\004\147\004\158\004\170\004\174\n\237\r\214\004\180\r\219\004\190\004\196\004\203\004\215\004\225\001e\004\230\004\236\006\242\001J\001\127\004\249\004\253\005\004\005\b\001\024\001'\005\019\001K\0014\0015\001L\005\023\001\014\001M\001N\003_\005#\005'\001\019\001\020\001\021\005.\0052\001\022\001\023\0059\001\027\005=\001>\005D\005H\005O\005S\001)\005Z\005^\005e\005i\001\019\001\020\001\021\005p\001e\001\022\005t\005{\001\027\001\127\005\127\005\134\005\138\005\145\001\024\001)\005\149\005\156\0014\0015\005\160\005\167\001\014\005\171\005\178\005\182\n3\005\189\001J\005\193\002\167\005\200\005\204\002\168\002\169\001*\002\170\001K\001\023\005\211\001L\005\215\005\222\001M\001N\003_\r\011\n\247\005\226\005\233\005\237\005\244\005\248\005\255\006\003\006\011\006\016\002\171\003\211\003\212\006\022\002\183\002\184\002\189\006\029\006!\001\024\001'\006)\006-\0014\0015\001e\0068\001\014\006?\001J\001\127\004E\006E\004F\004G\002\169\006P\004H\001K\001\023\001'\001L\006Z\001>\001M\001N\003_\006^\006b\006p\006{\004\187\006\130\006\136\006\147\006\166\006\160\006\192\006\203\001\023\006\210\004\199\006\216\001>\006\227\006\252\007\000\001\024\r\146\007\n\007\014\0014\0015\001e\007\024\001\014\007\028\007'\001\127\004E\007+\004F\004G\002\169\0075\004H\0079\001\024\007C\007G\001K\0014\0015\001L\004\220\001\014\001M\001N\007S\004\187\007W\007a\004E\007e\004F\004G\002\169\002\190\004H\004\199\007o\007s\007{\007\127\007\140\007\170\011\255\007\178\007\184\007\188\r\148\007\193\007\199\007\203\002\191\001e\007\211\002k\007\215\001J\007\232\007\237\007\131\004E\007\243\004F\004G\002\169\001K\004H\b\007\001L\004\220\b\r\001M\001N\003_\b\017\b\030\001J\b\"\b+\b/\004\187\b8\004\239\b<\003\237\001K\bD\bH\001L\bO\004\199\001M\001N\001\141\bR\bU\bY\011\252\b^\004K\001e\004\183\002k\ba\bd\001\127\bh\bp\004E\bt\004F\004G\002\169\b}\004H\b\128\b\142\b\148\b\162\b\169\001e\b\180\b\189\004\220\b\204\001\127\002\216\b\237\004\187\b\240\004\239\b\241\b\248\004\241\t\b\002\217\tD\002\218\004\199\t6\tL\t\\\ta\tn\tr\tv\t\128\004K\t\138\004\183\002k\t\142\t\151\004J\t\155\003\239\t\161\t\166\003\244\003\246\t\172\t\183\t\189\004\244\t\201\t\207\004\245\t\220\005\r\004\015\004K\004\220\004\183\002k\004\184\004\019\004E\001\014\004F\004G\002\169\004\241\004H\005\014\004\239\002\218\004\186\t\231\t\237\t\243\t\248\n\003\t\255\n\016\n\t\n\011\004\187\n\014\n\028\n\027\n/\004K\n:\004\183\002k\n9\004\199\n=\nH\n\172\007\133\004\244\005\016\tj\004\245\nP\005\r\nS\nZ\003\237\nb\ni\004\184\004\020\nt\n\171\n\164\n\165\n\170\004\021\004\030\005\014\004\239\002\218\004\186\004\241\n\174\n\175\n\180\004\220\n\185\n\189\n\207\004\031\004E\004\184\004F\004G\002\169\004K\004H\004\183\002k\n\214\004\185\011\007\002\218\004\186\011\031\011)\005\016\011i\011c\011d\004\187\004\244\011h\011x\004\245\004E\005\r\004F\004G\002\169\004\199\004H\004\184\011\135\003\237\011\130\011\131\ti\011\133\004\241\011\158\005\014\011\164\002\218\004\186\004\187\003\239\011\178\011\183\004\011\004\r\011\184\011\188\011\222\011\228\004\199\004\239\011\237\011\242\011\248\004\015\012\r\tf\004\220\012\b\012\012\004\019\012\016\001\014\004\244\005\016\012\020\004\245\004K\005\r\004\183\002k\012!\012E\012I\004\184\012T\012X\012b\012^\012n\012h\012j\004\220\005\014\012u\002\218\004\186\004E\012\130\004F\004G\002\169\012|\004H\012\129\012\132\012\133\012\148\012\155\003\239\012\159\004\241\004\023\004\025\012\161\012\162\012\176\004\187\004\020\012\169\012\170\012\175\005\016\004\015\004\021\004\030\012\190\004\199\004\239\004\019\012\196\001\014\012\208\012\205\te\012\207\012\241\012\236\004\031\012\240\012\244\004\244\012\248\r\001\004\245\004K\005\r\004\183\002k\012\252\r\000\r\004\004\184\004\239\r\b\r\022\r\017\r\021\r\025\r\029\004\220\005\014\r&\002\218\004\186\004E\r!\004F\004G\002\169\004K\004H\004\183\002k\r%\r)\r-\004\020\r8\004\241\r3\r7\r;\004\021\004\030\004\187\r?\rJ\rE\003\237\005\016\rI\rM\rQ\r`\004\199\re\004\031\r\181\r\189\000\000\000\000\tQ\000\000\004\241\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\000\000\000\000\000\000\002\167\004\184\004\239\002\168\002\169\000\000\002\170\000\000\000\000\004\220\005\014\000\000\002\218\004\186\000\000\004\244\000\000\000\000\004\245\004K\005\r\004\183\002k\000\000\000\000\000\000\004\184\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\005\014\000\000\002\218\004\186\005\016\000\000\003\239\000\000\000\000\004\027\004\029\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\004E\004\015\004F\004G\002\169\000\000\004H\004\019\002\199\001\014\005\016\000\000\000\000\000\000\000\000\000\000\004\239\000\000\000\000\000\000\004\187\000\000\000\000\003\194\000\000\000\000\002\200\003\196\000\000\004\244\004\199\000\000\004\245\004K\005\r\004\183\002k\tO\000\000\000\000\004\184\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\005\014\001\022\002\218\004\186\003\198\000\000\004\020\000\000\000n\000\000\000\000\001)\004\021\004\030\004\220\003\206\000\000\000\000\004\241\000\000\000\000\002\203\000\000\000\000\000\000\000\000\004\031\000\000\000\000\005\016\004E\000\000\004F\004G\002\169\000\000\004H\000\000\002\191\000\000\000\000\002k\003\200\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\000\000\000\000\000\000\000\000\004\184\007\131\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\000\000\004\239\002\205\000\000\004E\000\000\004F\004G\002\169\001'\004H\000\000\011\027\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\005\016\004\187\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\000\000\004\199\000\000\000\000\000\000\000\000\002\216\000\000\b\201\000\000\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002\218\004E\004\241\004F\004G\002\169\001\024\004H\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\004\220\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004J\004\199\004\244\000\000\000\000\004\245\000\000\005\r\007\247\000\000\000\000\000\000\000\000\004\184\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\005\014\000\000\002\218\004\186\004E\000\000\004F\004G\002\169\000\000\004H\000\000\004\220\000\000\000\000\000\000\001J\004E\000\000\004F\004G\002\169\000\000\004H\004\187\001K\004\239\000\000\001L\005\016\000\000\001M\001N\003\005\004\199\007\134\000\000\004\187\000\000\000\000\000\000\007\174\000\000\004K\000\000\004\183\002k\004\199\000\000\000\000\000\000\000\000\000\000\000\000\007\147\000\000\000\000\000\000\000\000\000\000\001e\000\000\000\000\000\000\000\000\001\127\000\000\004\220\000\000\000\000\004\184\000\000\000\000\004\239\000\000\000\000\000\000\004\241\000\000\004\185\004\220\002\218\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\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\244\000\000\003\237\004\245\000\000\005\r\000\000\000\000\000\000\000\000\000\000\004\184\004E\000\000\004F\004G\002\169\004\241\004H\000\000\005\014\004\239\002\218\004\186\000\000\004E\000\000\004F\004G\002\169\000\000\004H\004\187\000\000\004\239\000\000\000\000\000\000\004K\000\000\004\183\002k\004\199\000\000\000\000\004\187\000\000\004\244\000\000\005\016\004\245\004K\005\r\004\183\002k\004\199\000\000\000\000\004\184\000\000\000\000\000\000\007\137\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\004\241\003\239\000\000\004\220\004\011\004!\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\004\015\004\220\000\000\000\000\000\000\000\000\004\019\000\000\001\014\005\016\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\000\000\000\000\000\000\000\000\004\184\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\005\014\000\000\002\218\004\186\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\004\239\002\218\004\186\000\000\004E\004\020\004F\004G\002\169\000\000\004H\004\021\004\030\004\239\000\000\005\016\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\004\187\004\031\000\000\000\000\005\016\000\000\004K\000\000\004\183\002k\004\199\000\000\000\000\000\000\000\000\000\000\000\000\007\136\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\004\241\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\004\187\004\241\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\000\000\000\000\000\000\000\004\243\006f\000\000\004\150\004\245\007\145\005\r\000\000\000\000\000\000\000\000\000\000\004\184\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\005\014\000\000\002\218\004\186\004\184\004\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\004\239\000\000\005\016\000\000\004E\000\000\004F\004G\002\169\000\000\004H\004\187\000\000\000\000\000\000\005\016\000\000\004K\000\000\004\183\002k\004\199\000\000\000\000\004\187\000\000\000\000\000\000\005\031\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\000\000\000\004\239\000\000\005\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004J\000\000\004\241\000\000\000\000\004\220\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\004K\004\220\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\000\000\000\000\004\241\000\000\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\239\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\000\000\004\239\000\000\005\016\004\184\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\005\014\004\184\002\218\004\186\000\000\004K\000\000\004\183\002k\000\000\004\193\000\000\002\218\004\186\002\167\000\000\000\000\006m\002\169\000\000\002\170\002\167\000\000\000\000\002\168\002\169\004\241\002\170\000\000\005\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\006\157\000\000\002\198\000\000\002\183\002\184\002\189\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\004\244\000\000\000\000\004\245\003)\005\r\000\000\000\000\000\000\000\000\000\000\004\184\000\000\004\244\000\000\000\000\004\245\000\000\005\r\003~\005\014\000\000\002\218\004\186\004\184\000\000\002\167\002\199\000\000\002\168\002\169\000\000\002\170\005\014\000\000\002\218\004\186\006\169\003\131\000\000\000\000\000\000\000\000\000\000\000\000\002\200\003\020\000\000\000\000\005\016\006V\000\000\000\000\002\171\004\160\003\212\000\000\002\183\002\184\002\189\000\000\000\000\005\016\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\006\188\004E\000\000\004F\004G\002\169\002\203\004H\004\187\004\161\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\004\199\000\000\000\000\004\187\000\000\002\191\000\000\006/\002k\000\000\000\000\000\000\002\191\004\199\000\000\002k\000\000\000\000\000\000\000\000\0062\000\000\001\019\001\020\001\021\000\000\000\000\001\022\002\167\000\000\006>\002\168\002\169\004\220\002\170\000\000\000\000\001)\000\000\000\000\006\237\006\238\003\132\000\000\000\000\000\000\004\220\000\000\000\000\000\000\002\205\000\000\000\000\000\000\000\000\002\171\002\190\003\029\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\006B\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\002\216\000\000\002\223\000\000\002\218\000\000\000\000\004\239\000\000\002\223\000\000\002\218\004E\000\000\004F\004G\002\169\000\000\004H\000\000\004\239\000\000\001'\000\000\004K\004\162\004\183\002k\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\001\023\004\199\000\000\000\000\001>\000\000\000\000\000\000\006:\000\000\006W\006i\000\000\000\000\000\000\000\000\000\000\004\241\000\000\000\000\002\216\000\000\000\000\000\000\002\190\000\000\000\000\000\000\001\024\002\217\004\241\002\218\0014\0015\004\220\000\000\001\014\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\006j\000\000\000\000\000\000\004\184\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\005\014\000\000\002\218\004\186\004\184\000\000\004E\000\000\004F\004G\002\169\000\000\004H\005\014\003\237\002\218\004\186\000\000\000\000\000\000\000\000\000\000\000\000\001J\000\000\000\000\004\187\000\000\004\239\005\016\000\000\000\000\001K\000\000\000\000\001L\004\199\000\000\001M\001N\006K\000\000\005\016\006=\000\000\004K\000\000\004\183\002k\002\216\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\002\217\004H\002\218\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\004\220\000\000\000\000\001\127\004\187\004E\000\000\004F\004G\002\169\004\241\004H\000\000\000\000\004\199\000\000\003\239\000\000\000\000\0041\0043\006A\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\015\000\000\000\000\000\000\000\000\004\199\004\019\000\000\001\014\000\000\004\244\000\000\006G\004\245\000\000\005\r\000\000\004\220\000\000\000\000\000\000\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\004\239\002\218\004\186\000\000\000\000\000\000\000\000\004\220\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\004K\004H\004\183\002k\000\000\000\000\004\020\000\000\000\000\000\000\000\000\005\016\004\021\004\030\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\199\004\031\000\000\000\000\000\000\004\239\000\000\006J\000\000\004\241\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\004\239\000\000\000\000\000\000\004\187\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\004\244\004\199\000\000\004\245\004K\005\r\004\183\002k\006M\000\000\002\167\004\184\000\000\002\168\002\169\000\000\002\170\004\241\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\004\220\000\000\000\000\002\171\004\241\002\172\000\000\002\183\002\184\002\189\000\000\000\000\004\187\004\244\000\000\005\016\004\245\000\000\005\r\000\000\000\000\004\239\004\199\000\000\004\184\000\000\000\000\000\000\000\000\006R\000\000\000\000\000\000\005\014\004\244\002\218\004\186\004\245\004K\005\r\004\183\002k\000\000\000\000\000\000\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\004\220\002\218\004\186\000\000\000\000\000\000\004\239\005\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\005\016\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\002\190\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\004\187\000\000\000\000\004\241\004\184\000\000\000\000\004\239\002\191\000\000\004\199\002k\000\000\005\014\000\000\002\218\004\186\006U\000\000\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\000\000\000\000\005\016\004\220\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\004E\004\241\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\004\187\000\000\000\000\000\000\000\000\005\016\002\216\000\000\000\000\000\000\004\199\004\244\000\000\004\187\004\245\002\217\005\r\002\218\000\000\000\000\000\000\000\000\004\184\004\199\000\000\000\000\000\000\004\239\000\000\000\000\006l\005\014\000\000\002\218\004\186\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\004\220\004K\000\000\004\183\002k\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\004\220\004H\000\000\006\153\005\016\000\000\002\171\004\160\003\212\000\000\002\183\002\184\002\189\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\000\000\004\199\000\000\000\000\000\000\000\000\000\000\000\000\006r\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\239\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\004\220\000\000\000\000\004\239\000\000\004\184\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\004\241\000\000\005\016\000\000\002\190\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\241\000\000\000\000\000\000\000\000\000\000\000\000\004\239\002\191\004\199\000\000\002k\000\000\000\000\000\000\000\000\006u\006f\000\000\000\000\004\245\006g\005\r\000\000\004K\000\000\004\183\002k\004\184\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\005\014\000\000\002\218\004\186\004\184\004\220\000\000\000\000\000\000\000\000\004\162\000\000\000\000\005\014\000\000\002\218\004\186\001\019\001\020\001\021\000\000\004\241\001\022\000\000\000\000\006\129\000\000\000\000\000\000\005\016\000\000\000\000\001)\000\000\000\000\000\000\006W\006i\000\000\000\000\000\000\000\000\005\016\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\002\217\005\r\002\218\000\000\000\000\000\000\000\000\004\184\006\133\000\000\000\000\004\239\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\004E\000\000\004F\004G\002\169\006\154\004H\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\005\016\000\000\000\000\000\000\001'\004\199\000\000\000\000\000\000\000\000\000\000\000\000\006}\000\000\000\000\000\000\000\000\004\241\000\000\000\000\000\000\000\000\000\000\001\023\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\004\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\001\024\005\r\000\000\000\000\0014\0015\000\000\004\184\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\011j\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\004\187\000\000\000\000\000\000\000\000\005\016\000\000\000\000\004\239\000\000\004\199\011k\000\000\004\187\000\000\011m\000\000\006\128\000\000\000\000\000\000\000\000\001J\004\199\000\000\004K\011n\004\183\002k\000\000\006\132\001K\000\000\000\000\001L\000\000\000\000\001M\001N\006\142\000\000\000\000\000\000\004\220\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\004\220\000\000\000\000\004\241\000\000\000\000\011o\000\000\000\000\000\000\001e\000\000\000\000\000\000\000\000\001\127\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\004E\000\000\004F\004G\002\169\004\184\004H\000\000\011p\004\239\000\000\000\000\000\000\000\000\005\014\002\199\002\218\004\186\000\000\000\000\004\187\000\000\004\239\000\000\000\000\011q\004K\000\000\004\183\002k\004\199\000\000\000\000\002\200\002\246\000\000\000\000\006\138\000\000\004K\000\000\004\183\002k\005\016\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\011\141\000\000\000\000\000\000\000\000\004\241\000\000\000\000\004\220\000n\000\000\000\000\000\000\004\187\000\000\011s\000\000\000\000\004\241\000\000\000\000\000\000\002\203\004\199\000\000\000\000\000\000\011t\000\000\000\000\006\141\011u\000\000\000\000\011w\004\244\000\000\011|\004\245\002\191\005\r\000\000\002k\000\000\000\000\000\000\004\184\000\000\004\244\000\000\000\000\004\245\011\136\005\r\000\000\005\014\004\220\002\218\004\186\004\184\000\000\004E\000\000\004F\004G\002\169\000\000\004H\005\014\004\239\002\218\004\186\000\000\011\137\000\000\000\000\000\000\002\205\000\000\000\000\000\000\004\187\000\000\000\000\005\016\000\000\004K\000\000\004\183\002k\000\000\004\199\000\000\000\000\000\000\000\000\000\000\005\016\006\144\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\002\216\000\000\000\000\004\239\000\000\000\000\004\241\004\187\000\000\002\223\004\220\002\218\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\004K\000\000\004\183\002k\006\149\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\004E\000\000\004F\004G\002\169\004\184\004H\002\167\004\220\000\000\002\168\002\169\004\241\002\170\005\014\000\000\002\218\004\186\000\000\000\000\004\187\004E\000\000\004F\004G\002\169\000\000\004H\000\000\004\239\004\199\000\000\000\000\000\000\002\171\000\000\002\182\006\152\002\183\002\184\002\189\004\187\004\244\005\016\000\000\004\245\004K\005\r\004\183\002k\000\000\004\199\000\000\004\184\000\000\000\000\000\000\000\000\006\156\000\000\000\000\000\000\005\014\004\220\002\218\004\186\000\000\000\000\000\000\004\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\000\000\000\000\004\220\000\000\004K\000\000\004\183\002k\000\000\005\016\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\004\187\000\000\000\000\004\241\004\184\000\000\000\000\004\239\000\000\000\000\004\199\000\000\000\000\005\014\002\190\002\218\004\186\006\162\000\000\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\004\239\000\000\000\000\002\191\000\000\004\244\002k\000\000\004\245\000\000\005\r\000\000\000\000\000\000\005\016\004\220\004\184\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\004\241\000\000\000\000\005\016\000\000\000\000\000\000\000\000\000\000\004\244\000\000\004\187\004\245\000\000\005\r\000\000\000\000\000\000\000\000\000\000\004\184\004\199\000\000\000\000\000\000\004\239\000\000\002\216\006\165\005\014\004\244\002\218\004\186\004\245\000\000\005\r\002\217\000\000\002\218\000\000\000\000\004\184\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\004\220\000\000\000\000\000\000\005\016\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\004\241\000\000\000\000\005\016\000\000\004\187\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\004\199\006\233\000\000\000\000\002\171\004\160\003\212\006\168\002\183\002\184\002\189\004\187\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\004\199\000\000\000\000\004\239\000\000\004\184\000\000\006\171\000\000\000\000\000\000\000\000\004\220\000\000\005\014\004\161\002\218\004\186\000\000\000\000\004K\000\000\004\183\002k\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\004\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\016\000\000\004\187\004E\000\000\004F\004G\002\169\000\000\004H\000\000\004\241\004\199\000\000\000\000\000\000\000\000\000\000\000\000\006\194\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\004\239\000\000\000\000\004\199\000\000\000\000\000\000\002\190\000\000\000\000\006\197\004\244\000\000\000\000\004\245\004\220\005\r\004K\000\000\004\183\002k\004\239\004\184\000\000\002\191\000\000\002\167\002k\000\000\002\168\002\169\005\014\002\170\002\218\004\186\000\000\004\220\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\002\171\000\000\002\215\000\000\002\183\002\184\002\189\005\016\000\000\000\000\004\162\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\004\241\006\209\000\000\000\000\004\239\000\000\000\000\000\000\001)\004\244\000\000\000\000\004\245\000\000\005\r\000\000\000\000\006W\006i\000\000\004\184\004K\000\000\004\183\002k\004\239\000\000\002\216\000\000\005\014\004\244\002\218\004\186\004\245\000\000\005\r\002\217\000\000\002\218\006\213\000\000\004\184\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\004\241\000\000\000\000\005\016\000\000\000\000\006\234\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\004\241\000\000\002\190\005\016\001'\000\000\000\000\000\000\000\000\004\244\000\000\004\187\004\245\000\000\005\r\000\000\000\000\000\000\000\000\002\191\004\184\004\199\002k\001\023\000\000\000\000\000\000\001>\006\205\005\014\004\244\002\218\004\186\004\245\000\000\005\r\000\000\000\000\000\000\000\000\000\000\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\001\024\002\218\004\186\004\220\0014\0015\000\000\005\016\001\014\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\016\000\000\004\187\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\004\199\000\000\000\000\002\216\000\000\000\000\000\000\006\208\000\000\000\000\000\000\004\187\002\217\000\000\002\218\000\000\000\000\000\000\001\019\001\020\001\021\004\199\001J\001\022\004\239\000\000\000\000\000\000\006\212\000\000\000\000\001K\000\000\004\220\001L\000\000\000\000\001M\001N\006\222\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\220\t)\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\001e\000\000\000\000\000\000\000\000\001\127\000\000\000\000\000\000\004\241\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\000\000\000\004\239\000\000\006\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\004K\000\000\004\183\002k\004\239\004\184\000\000\000\000\000\000\000\000\000\000\004\220\000\000\001\023\005\014\000\000\002\218\004\186\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\004E\011j\004F\004G\002\169\001\024\004H\005\016\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\000\000\000\000\004\241\004\187\000\000\000\000\011k\000\000\000\000\000\000\011m\004\244\000\000\004\199\004\245\000\000\005\r\000\000\000\000\004\239\006\221\011n\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\004\244\002\218\004\186\004\245\004K\005\r\004\183\002k\000\000\000\000\000\000\004\184\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\011o\000\000\001K\005\016\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\t0\004\241\004E\000\000\004F\004G\002\169\004E\004H\004F\004G\002\169\005\016\004H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\t1\000\000\000\000\000\000\011p\000\000\004\244\004\199\000\000\004\245\000\000\005\r\t\218\004\239\006\224\000\000\004E\004\184\004F\004G\002\169\011q\004H\000\000\000\000\000\000\005\014\000\000\002\218\004\186\004K\000\000\004\183\002k\000\000\000\000\004\187\000\000\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\000\000\000\011\151\000\000\006\229\000\000\005\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\011s\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\011t\004\220\000\000\000\000\011u\000\000\000\000\011w\000\000\000\000\011|\000\000\004\187\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\004\199\004\239\000\000\011\136\000\000\004\184\004J\006\232\000\000\004E\000\000\004F\004G\002\169\005\014\004H\002\218\004\186\004K\000\000\004\183\002k\000\000\004K\011\137\004\183\002k\000\000\000\000\004\187\001\019\001\020\001\021\004\220\000\000\001\022\000\000\000\000\001\027\004\199\004\239\000\000\000\000\005\016\003\237\001)\006\236\000\000\000\000\000\000\000\000\000\000\004\241\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\220\000\000\000\000\000\000\t\023\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\004E\005\r\004F\004G\002\169\004\241\004H\004\184\004\239\000\000\t\026\000\000\004\184\000\000\000\000\000\000\005\014\000\000\002\218\004\186\004\187\004\185\000\000\002\218\004\186\004K\000\000\004\183\002k\003\239\004\199\001'\004\011\0049\000\000\004\244\000\000\007\"\004\245\000\000\005\r\000\000\000\000\004\015\000\000\005\016\004\184\004\239\000\000\004\019\001\023\001\014\000\000\000\000\001>\005\014\000\000\002\218\004\186\004\241\000\000\000\000\000\000\004\220\004K\000\000\004\183\002k\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\001\024\000\000\000\000\000\000\0014\0015\005\016\000\000\001\014\000\000\000\000\004\244\000\000\004\187\004\245\000\000\005\r\000\000\000\000\004\020\004\241\000\000\004\184\004\199\000\000\004\021\004\030\000\000\000\000\000\000\0070\005\014\000\000\002\218\004\186\000\000\000\000\000\000\004E\004\031\004F\004G\002\169\000\000\004H\000\000\004\239\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\004\220\000\000\004\187\000\000\005\016\004\184\001J\004K\000\000\004\183\002k\000\000\004\199\000\000\005\014\001K\002\218\004\186\001L\007>\000\000\001M\001N\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\005\016\000\000\004\220\000\000\004\187\000\000\000\000\001e\000\000\000\000\000\000\000\000\t \000\000\004\199\000\000\000\000\000\000\004\239\000\000\000\000\007\141\000\000\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\004K\000\000\004\183\002k\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\220\005\014\000\000\002\218\004\186\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\004\239\000\000\000\000\000\000\000\000\000\000\004\241\000\000\000\000\000\000\000\000\004\187\000\000\000\000\005\016\000\000\000\000\004K\000\000\004\183\002k\004\199\000\000\000\000\000\000\000\000\000\000\000\000\007\143\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\000\000\000\000\004\239\004E\004\184\004F\004G\002\169\004\241\004H\000\000\004\220\000\000\005\014\000\000\002\218\004\186\000\000\000\000\004K\000\000\004\183\002k\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\000\000\000\004\244\000\000\007\150\004\245\005\016\005\r\000\000\000\000\000\000\000\000\004E\004\184\004F\004G\002\169\004\241\004H\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\004\220\000\000\004\187\000\000\000\000\000\000\004\239\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\000\000\000\004\244\000\000\007\153\004\245\005\016\005\r\004K\000\000\004\183\002k\000\000\004\184\000\000\004E\000\000\004F\004G\002\169\000\000\004H\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\004\220\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\000\000\004\199\004\239\000\000\000\000\000\000\000\000\005\016\007\250\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\004\220\000\000\000\000\000\000\000\000\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\239\005\014\003\237\002\218\004\186\000\000\004\241\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\004K\004H\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\016\000\000\004\187\001\019\001\020\001\021\004\244\000\000\001\022\004\245\000\000\005\r\004\199\000\000\000\000\000\000\000\000\004\184\004\239\007\253\000\000\004\241\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\004E\000\000\004F\004G\002\169\004K\004H\004\183\002k\001n\000\000\000\000\000\000\003\239\000\000\004\220\004\011\004<\000\000\000\000\004\187\004\244\000\000\000\000\004\245\005\016\005\r\004\015\000\000\000\000\004\199\000\000\004\184\004\019\000\000\001\014\000\000\b\230\000\000\004\241\000\000\005\014\000\000\002\218\004\186\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\220\000\000\004\187\000\000\000\000\000\000\004\244\005\016\000\000\004\245\000\000\005\r\004\199\004\239\000\000\000\000\001\023\004\184\004\020\b\235\000\000\000\000\000\000\000\000\004\021\004\030\005\014\000\000\002\218\004\186\004K\000\000\004\183\002k\000\000\000\000\000\000\004E\004\031\004F\004G\002\169\000\000\004H\001\024\004\220\011j\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\005\016\000\000\004\187\000\000\000\000\000\000\004\239\000\000\000\000\004\241\r\209\000\000\004\199\r\210\000\000\000\000\000\000\011m\004E\t\000\004F\004G\002\169\004K\004H\004\183\002k\000\000\011n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\244\000\000\000\000\004\245\000\000\005\r\004\220\000\000\000\000\004\199\000\000\004\184\004\239\000\000\000\000\000\000\tG\000\000\004\241\000\000\005\014\001K\002\218\004\186\001L\011o\000\000\001M\001N\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\004\244\005\016\000\000\004\245\011j\005\r\000\000\000\000\001t\000\000\000\000\004\184\000\000\000\000\000\000\004\241\000\000\000\000\011p\004\239\005\014\000\000\002\218\004\186\000\000\000\000\r\200\000\000\000\000\000\000\011m\000\000\000\000\000\000\000\000\011q\004K\000\000\004\183\002k\000\000\011n\000\000\000\000\000\000\004\244\000\000\000\000\004\245\005\016\005\r\000\000\000\000\000\000\002\167\004\239\004\184\006m\002\169\000\000\002\170\r\212\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\004\241\000\000\004K\000\000\004\183\002k\000\000\011o\000\000\000\000\011s\006\157\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\011t\000\000\005\016\000\000\011u\000\000\000\000\011w\004\244\000\000\011|\004\245\000\000\005\r\004\241\000\000\000\000\000\000\004E\004\184\004F\004G\002\169\003~\004H\011\136\011p\000\000\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\006\169\003\131\011q\004\244\000\000\011\137\004\245\004\199\005\r\000\000\000\000\000\000\000\000\000\000\004\184\000\000\005\016\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\r\201\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\006\188\004\220\000\000\000\000\000\000\000\000\002\203\000\000\011s\000\000\000\000\000\000\004\187\005\016\000\000\002\167\000\000\000\000\002\168\002\169\011t\002\170\004\199\002\191\011u\000\000\002k\011w\000\000\tx\011|\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\002\171\000\000\002\198\011\136\002\183\002\184\002\189\000\000\000\000\004\187\000\000\000\000\003&\004\220\000\000\000\000\006\237\tM\003\132\004\199\004\239\000\000\000\000\000\000\011\137\000\000\t{\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\220\002\200\003\020\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\004E\002\218\004F\004G\002\169\004\241\004H\000\000\004\239\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\004\187\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\004\199\002\203\000\000\004\187\000\000\006f\000\000\n%\004\245\tX\005\r\000\000\000\000\004\199\000\000\000\000\004\184\004\239\002\191\000\000\n\188\002k\000\000\000\000\000\000\005\014\000\000\002\218\004\186\004\241\000\000\000\000\000\000\004\220\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\004\220\000\000\001\022\000\000\000\000\001\027\000\000\000\000\005\016\000\000\002\205\000\000\001)\004\244\000\000\000\000\004\245\000\000\005\r\000\000\000\000\000\000\004\241\000\000\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\n\130\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\002\216\004\239\000\000\000\000\000\000\004\244\001)\000\000\004\245\002\223\005\r\002\218\000\000\000\000\004\239\005\016\004\184\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\001'\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\004\241\000\000\005\016\000\000\001\023\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\004\241\000\000\000\000\000\000\002\171\004\160\003\212\000\000\002\183\002\184\002\189\000\000\000\000\001'\000\000\000\000\000\000\004\244\000\000\001\024\004\245\000\000\005\r\0014\0015\000\000\000\000\001\014\004\184\000\000\004\244\000\000\001\023\004\245\000\000\005\r\001>\005\014\000\000\002\218\004\186\004\184\000\000\004E\000\000\004F\004G\002\169\000\000\004H\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\000\000\000\000\001\024\000\000\000\000\004\187\0014\0015\005\016\000\000\001\014\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\000\000\000\000\000\005\016\n\191\001J\004E\000\000\004F\004G\002\169\000\000\004H\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\n\135\000\000\000\000\002\190\004\187\000\000\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\000\000\000\000\000\002\191\n\206\000\000\002k\001J\000\000\000\000\001e\000\000\000\000\000\000\000\000\001\127\001K\000\000\000\000\001L\000\000\000\000\001M\001N\n\148\000\000\000\000\n\151\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\011]\004H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001e\004\239\000\000\000\000\000\000\001\127\004\187\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\004\199\004H\004K\000\000\004\183\002k\000\000\n\209\000\000\000\000\000\000\002\216\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\002\217\000\000\002\218\000\000\004\239\004\199\000\000\000\000\000\000\000\000\000\000\000\000\n\222\004\220\000\000\000\000\004\241\011_\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\000\000\000\000\004\241\002\171\004\184\002\235\000\000\002\183\002\184\002\189\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\004\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\004K\000\000\004\183\002k\005\016\004\184\000\000\000\000\004\239\004E\000\000\004F\004G\002\169\005\014\004H\002\218\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\004\187\000\000\000\000\000\000\000\000\004\241\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\000\005\016\000\000\000\000\n\225\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\004\241\000\000\000\000\002\190\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\004\187\004\220\000\000\000\000\004\184\000\000\000\000\000\000\002\191\000\000\004\199\002k\000\000\005\014\000\000\002\218\004\186\n\246\004\244\000\000\000\000\004\245\000\000\005\r\000\000\000\000\000\000\000\000\004E\004\184\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\005\014\000\000\002\218\004\186\005\016\004\220\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\237\000\000\004\199\000\000\000\000\000\000\004\239\000\000\000\000\n\249\000\000\005\016\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\004K\000\000\004\183\002k\002\216\000\000\000\000\000\000\000\000\000\000\000\000\004\187\004\220\002\217\000\000\002\218\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\000\004\239\000\000\000\000\n\253\000\000\000\000\000\000\000\000\000\000\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\003\239\000\000\000\000\004_\004b\000\000\004\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\015\000\000\004\244\000\000\000\000\004\245\004\019\005\r\001\014\000\000\000\000\004\239\000\000\004\184\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\004\244\001\027\000\000\004\245\000\000\005\r\000\000\005\016\001)\004\239\004\020\004\184\000\000\000\000\000\000\000\000\004\021\004\030\004\241\000\000\005\014\000\000\002\218\004\186\000\000\000\000\004K\000\000\004\183\002k\004\031\000\000\000\000\011\016\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\004\244\005\016\000\000\004\245\000\000\005\r\000\000\000\000\000\000\000\000\000\000\004\184\004\241\000\000\000\000\000\000\000\000\000\000\000\000\t\134\005\014\000\000\002\218\004\186\000\000\002\167\000\000\000\000\006m\002\169\000\000\002\170\001'\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\000\000\005\016\000\000\001\023\006\157\004\184\002\198\001>\002\183\002\184\002\189\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\002\167\000\000\000\000\006m\002\169\000\000\002\170\000\000\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\003~\001\014\000\000\000\000\000\000\005\016\000\000\000\000\000\000\006\157\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\006\169\003\131\000\000\000\000\000\000\001\019\001\020\001\021\000\000\004J\001\022\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\003~\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001J\000\000\006\188\000\000\000\000\000\000\006\169\003\131\002\203\001K\000\000\000\000\001L\000\000\000\000\001M\001N\n\135\000\000\000\000\000\000\001\019\001\020\001\021\000\000\002\191\001\022\000\000\002k\001\027\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\001e\006\188\000\000\000\000\000\000\001\127\000\000\002\203\000\000\000\000\000\000\001'\000\000\000\000\000\000\000\000\006\237\011\b\003\132\000\000\004\184\000\000\000\000\t\023\002\191\000\000\000\000\002k\000\000\004\185\001\023\002\218\004\186\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\012\217\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\002\216\004H\001\024\006\237\011*\003\132\0014\0015\001'\002\223\001\014\002\218\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\004\199\001\022\001\023\000\000\001c\000\000\001>\rl\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\002\216\000\000\000\000\000\000\000\000\000\000\001)\000\000\000\000\002\223\000\000\002\218\001\024\000\000\000\000\004\220\0014\0015\000\000\000\000\001\014\001J\004E\000\000\004F\004G\002\169\000\000\004H\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\n\148\000\000\000\000\011O\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\000\000\000\000\000\000\000\rn\000\000\000\000\000\000\000\000\000\000\001e\000\000\000\000\000\000\000\000\001\127\000\000\000\000\r\142\001J\000\000\004\239\000\000\001'\000\000\000\000\000\000\000\000\001K\001\023\004\220\001L\000\000\000\000\001M\001N\000\000\000\000\004K\000\000\004\183\002k\001\023\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\001\024\000\000\001\027\000\000\0014\0015\001e\000\000\001\014\001)\000\000\t \000\000\001\024\000\000\004\241\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\000\000\004\239\000\000\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\004\244\000\000\000\000\004\245\000\000\005\r\004K\000\000\004\183\002k\000\000\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\001K\000\000\000\000\001L\001J\000\000\001M\001N\000\000\000\000\001'\003\237\000\000\001K\004\241\000\000\001L\000\000\000\000\001M\001N\r\143\000\000\005\016\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\000\000\001e\000\000\001\019\001\020\001\021\001'\000\000\001\022\000\000\004\244\001\027\000\000\004\245\001e\005\r\000\000\000\000\001)\001\127\000\000\004\184\000\000\001\024\000\000\001\023\000\000\0014\0015\001>\005\014\001\014\002\218\004\186\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\003\239\001)\000\000\004\011\004l\001\024\000\000\000\000\000\000\0014\0015\005\016\000\000\001\014\004\015\000\000\001\019\001\020\001\021\000\000\004\019\001\022\001\014\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\001J\000\000\000\000\000\000\000\000\001'\000\000\000\000\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\rU\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\000\000\001J\004\020\000\000\000\000\000\000\000\000\001'\004\021\004\030\001K\000\000\000\000\001L\000\000\001e\001M\001N\rR\000\000\001\127\000\000\004\031\001\024\000\000\000\000\001\023\0014\0015\000\000\001>\001\014\000\000\001\019\001\020\001\021\000\000\001'\001\022\000\000\000\000\001\027\000\000\000\000\000\000\001e\000\000\000\000\001)\000\000\001\127\000\000\000\000\000\000\001\024\000\000\001\023\000\000\0014\0015\001>\000\000\001\014\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\001\024\001J\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\012\229\000\000\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\001J\001\027\000\000\000\000\001'\000\000\000\000\000\000\001)\001K\000\000\000\000\001L\001e\000\000\001M\001N\002\024\001\127\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\000\000\000\000\001J\001\019\001\020\001\021\001'\000\000\001\022\000\000\000\000\001K\000\000\000\000\001L\000\000\001e\001M\001N\001\235\000\000\001\127\000\000\001\024\000\000\001\023\000\000\0014\0015\001>\000\000\001\014\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\t)\001\027\000\000\000\000\000\000\000\000\001e\000\000\001)\000\000\000\000\001\127\001'\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\001J\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001)\001K\000\000\000\000\001L\000\000\001\024\001M\001N\001\154\0014\0015\000\000\000\000\001\014\000\000\001\023\000\000\000\000\000\000\000\000\000\000\001J\000\000\000\000\000\000\000\000\001'\000\000\000\000\000\000\001K\000\000\000\000\001L\000\000\001e\001M\001N\001O\000\000\001\127\000\000\000\000\001\024\000\000\001\023\000\000\0014\0015\001>\000\000\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\001e\000\000\001J\000\000\000\000\001\127\001'\000\000\001\024\000\000\000\000\001K\0014\0015\001L\000\000\001\014\001M\001N\001\151\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\000\000\000\000\000\000\000\000\001e\000\000\001)\001K\000\000\001\127\001L\001\024\000\000\001M\001N\0014\0015\t<\000\000\001\014\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\001J\001\027\000\000\000\000\000\000\000\000\000\000\002\002\001)\001K\000\000\000\000\001L\000\000\t?\001M\001N\001\157\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\000\000\000\000\000\000\001\019\001\020\001\021\001)\000\000\001\022\000\000\000\000\001$\000\000\000\000\000\000\000\000\001e\001J\001&\000\000\000\000\001\127\001'\000\000\000\000\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\001\194\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\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\001e\000\000\000\000\000\000\000\000\001\127\000\000\000\000\001\024\000\000\001\023\000\000\0014\0015\001>\000\000\001\014\001'\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\000\000\000\000\001'\000\000\000\000\000\000\001)\000\000\000\000\001\023\000\000\001\024\000\000\001>\000\000\0014\0015\000\000\000\000\001\014\000\000\001\023\001\019\001\020\001\021\001\227\000\000\001\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\001J\000\000\001\014\000\000\000\000\000\000\001\024\000\000\000\000\001K\0014\0015\001L\000\000\001\014\001M\001N\000\000\000\000\000\000\000\000\000\000\004E\003\237\004F\004G\002\169\000\000\004H\000\000\001J\000\000\000\000\000\000\000\000\001'\000\000\000\000\000\000\001K\000\000\000\000\001L\000\000\001e\001M\001N\002\026\000\000\002\006\000\000\000\000\b\199\000\000\001\023\000\000\001J\000\000\001>\000\000\000\000\001\019\001\020\001\021\000\000\001K\001\022\000\000\001L\001\027\000\000\001M\001N\002\028\001e\000\000\001)\001K\000\000\001\127\001L\000\000\001\024\001M\001N\001\023\0014\0015\000\000\004E\001\014\004F\004G\002\169\003\239\004H\000\000\004\011\b\209\000\000\001e\000\000\000\000\000\000\000\000\001\127\000\000\000\000\004\015\004\187\000\000\000\000\001e\001\024\004\019\000\000\001\014\0014\0015\004\199\000\000\001\014\000\000\000\000\012\227\000\000\000\000\000\000\000\000\000\000\t\213\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\001J\000\000\004J\000\000\001'\000\000\000\000\000\000\004\220\001K\004\187\000\000\001L\000\000\000\000\001M\001N\0022\004\020\004K\004\199\004\183\002k\001\023\004\021\004\030\000\000\001>\000\000\000\000\000\000\t\195\000\000\000\000\000\000\000\000\000\000\000\000\004\031\000\000\001K\000\000\000\000\001L\001e\000\000\001M\001N\000\000\001\127\000\000\001\024\000\000\004\220\000\000\0014\0015\000\000\000\000\001\014\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\004\239\004E\000\000\004F\004G\002\169\012\223\004H\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\004\199\000\000\000\000\000\000\004\184\000\000\000\000\000\000\000\000\000\000\004I\t\177\000\000\004\185\000\000\002\218\004\186\000\000\000\000\000\000\000\000\000\000\000\000\001J\004\239\002\167\000\000\000\000\002\168\002\169\004\241\002\170\001K\004\220\000\000\001L\000\000\000\000\001M\001N\0029\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\t\215\000\000\005\r\000\000\001e\000\000\000\000\000\000\004\184\001\127\000\000\000\000\004\241\000\000\000\000\t}\000\000\005\014\000\000\002\218\004\186\001\019\001\020\001\021\002\199\000\000\001\022\000\000\000\000\001\027\000\000\004\239\001\019\001\020\001\021\000\000\001)\001\022\000\000\000\000\0115\004J\002\200\003,\000\000\t\197\005\016\005\r\004K\000\000\004\183\002k\000\000\004\184\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\005\014\000\000\002\218\004\186\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001)\004\241\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\005\016\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\002\191\000\000\001\027\002k\000\000\001'\000\000\000\000\000\000\001)\000\000\000\000\t\179\003O\005\r\000\000\0117\000\000\000\000\000\000\004\184\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\005\014\004\184\002\218\004\186\000\000\000\000\001\023\000\000\000\000\002\205\004\185\000\000\002\218\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001'\000\000\001\024\000\000\000\000\000\000\0014\0015\005\016\000\000\001\014\000\000\000\000\011:\000\000\000\000\000\000\0014\0015\001\023\000\000\001\014\001\017\001>\000\000\002\216\000\000\001\019\001\020\001\021\000\000\001'\001\022\000\000\002\223\001\027\002\218\000\000\000\000\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\001\024\000\000\000\000\001\023\0014\0015\000\000\001>\001\014\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\001J\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001)\001K\000\000\000\000\001L\000\000\001\024\001M\001N\002\148\0014\0015\001K\000\000\001\014\011=\000\000\000\000\001M\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\137\000\000\011A\000\000\011?\001e\001J\000\000\000\000\000\000\001\127\001'\000\000\000\000\000\000\001K\001e\000\000\001L\000\000\000\000\001M\001N\002\178\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\000\000\000\000\001J\000\000\000\000\000\000\001'\000\000\000\000\000\000\000\000\001K\000\000\000\000\001L\001e\000\000\001M\001N\002\211\001\127\000\000\000\000\001\024\000\000\001\023\000\000\0014\0015\001>\000\000\001\014\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\000\000\000\000\000\000\001\127\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\002\171\001\014\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\003[\000\000\001J\003@\000\000\000\000\000\000\001)\000\000\000\000\000\000\001K\002\199\000\000\001L\000\000\000\000\001M\001N\002\253\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\200\003,\001J\000\000\000\000\000\000\000\000\000\000\000\000\002\167\000\000\001K\002\168\002\169\001L\002\170\001e\001M\001N\003\005\000\000\001\127\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\003\172\002\169\000\000\002\170\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\002\203\000\000\001e\003\237\000\000\001'\000\000\001\127\000\000\000\000\002\171\000\000\004q\000\000\002\183\002\184\002\189\002\191\003L\000\000\002k\000\000\000\000\000\000\001\023\000\000\000\000\002\199\001>\000\000\003O\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\000\000\000\000\003~\002\200\003,\000\000\001)\000\000\000\000\000\000\001\024\000\000\000\000\002\205\0014\0015\000\000\000\000\001\014\000\000\007\248\003\131\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\000\000\003\239\000\000\000\000\004\011\b\212\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\015\002\203\000\000\000\000\002\216\000\000\004\019\000\000\001\014\000\000\000\000\000\000\000\000\002\223\000\000\002\218\000\000\000\000\002\191\002\203\000\000\002k\000\000\000\000\000\000\000\000\001J\000\000\000\000\000\000\000\000\003O\001'\000\000\000\000\001K\002\191\000\000\001L\002k\000\000\001M\001N\003]\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\004\020\001>\002\205\001\019\001\020\001\021\004\021\004\030\001\022\001'\000\000\001\027\007\251\b\000\000\000\000\000\001e\000\000\001)\003\132\004\031\001\127\000\000\000\000\000\000\001\024\000\000\000\000\001\023\0014\0015\000\000\001>\001\014\000\000\000\000\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002\218\000\000\000\000\000\000\000\000\000\000\001\024\002\216\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\002\223\000\000\002\218\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001)\001J\000\000\000\000\001'\000\000\001\019\001\020\001\021\000\000\001K\001\022\000\000\001L\001\027\000\000\001M\001N\003q\000\000\000\000\001)\000\000\001\023\000\000\000\000\000\000\001>\000\000\000\000\000\000\000\000\001J\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\001K\000\000\000\000\001L\001e\000\000\001M\001N\003x\001\127\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\001'\000\000\000\000\000\000\001e\000\000\000\000\000\000\000\000\001\127\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\003\202\001\023\000\000\001'\000\000\001>\002\199\001)\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\000\000\001\023\001J\002\200\003\176\001>\001)\000\000\001\024\000\000\000\000\001K\0014\0015\001L\000\000\001\014\001M\001N\003\138\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\003\178\000\000\000\000\000\000\tP\001e\002\203\002\171\004\160\003\212\001\127\002\183\002\184\002\189\000\000\000\000\000\000\001'\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\001J\000\000\000\000\000\000\000\000\000\000\000\000\001\023\001'\001K\004\161\001>\001L\000\000\000\000\001M\001N\003\151\000\000\002\167\000\000\001J\002\168\002\169\000\000\002\170\003\181\001\023\000\000\000\000\001K\001>\002\205\001L\000\000\001\024\001M\001N\003\165\0014\0015\000\000\000\000\001\014\001e\000\000\002\171\000\000\002\198\001\127\002\183\002\184\002\189\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\001e\000\000\000\000\000\000\002\216\001\127\000\000\003\226\000\000\000\000\002\190\000\000\000\000\002\223\000\000\002\218\002\199\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\002\191\000\000\000\000\002k\000\000\001J\001)\002\200\003,\000\000\000\000\001\019\001\020\001\021\001K\000\000\001\022\001L\000\000\001\027\001M\001N\003\204\000\000\000\000\001J\001)\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001K\000\000\000\000\001L\000\000\004\162\001M\001N\004\003\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\002\203\000\000\000\000\001\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006W\006i\000\000\002\191\001e\000\000\002k\000\000\000\000\001\127\002\216\000\000\000\000\001'\000\000\000\000\003O\000\000\000\000\002\217\004E\002\218\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\001\023\001'\000\000\000\000\001>\000\000\000\000\000\000\004\187\002\205\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\004\199\000\000\001\023\000\000\000\000\000\000\001>\000\000\000\000\000\000\001\024\007\220\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\002\216\000\000\001\024\000\000\000\000\004\220\0014\0015\000\000\002\223\001\014\002\218\000\000\000\000\000\000\001\019\001\020\001\021\004\129\000\000\001\022\000\000\000\000\006,\000\000\000\000\000\000\002\199\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\003\172\002\169\000\000\002\170\000\000\001J\002\200\003,\000\000\000\000\000\000\000\000\000\000\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\004\005\000\000\002\171\001J\004q\004\239\002\183\002\184\002\189\000\000\000\000\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\004s\000\000\004K\000\000\004\183\002k\000\000\001e\002\203\000\000\000\000\004E\001\127\004F\004G\002\169\003~\004H\000\000\000\000\000\000\001'\000\000\000\000\000\000\002\191\000\000\001e\002k\000\000\000\000\004\187\001\127\000\000\007\248\003\131\004\241\000\000\003O\000\000\001\023\004\199\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\002\167\007\219\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\000\000\002\205\000\000\000\000\000\000\000\000\001\024\006\244\000\000\005\r\0014\0015\004\220\000\000\001\014\004\184\002\171\002\203\002\198\000\000\002\183\002\184\002\189\000\000\005\014\002\167\002\218\004\186\002\168\002\169\000\000\002\170\000\000\000\000\002\191\000\000\000\000\002k\002\216\000\000\000\000\000\000\004\137\000\000\000\000\000\000\000\000\002\223\000\000\002\218\000\000\002\199\002\171\005\016\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\007\255\000\000\000\000\001J\002\200\003,\003\132\000\000\004\239\000\000\000\000\000\000\001K\004\149\000\000\001L\000\000\000\000\001M\001N\0060\000\000\002\199\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\000\000\002\216\000\000\000\000\001e\002\203\000\000\000\000\000\000\001\127\002\223\002\167\002\218\000\000\002\168\002\169\004\241\002\170\000\000\000\000\000\000\000\000\002\191\002\167\000\000\002k\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\000\000\003O\000\000\000\000\002\171\000\000\002\198\002\203\002\183\002\184\002\189\000\000\000\000\000\000\000\000\006\244\002\171\005\r\002\198\000\000\002\183\002\184\002\189\004\184\002\191\000\000\002\205\002k\000\000\000\000\004\172\000\000\005\014\000\000\002\218\004\186\000\000\003O\000\000\002\199\000\000\000\000\004\192\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\000\000\005\016\002\205\002\216\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\002\223\000\000\002\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\002\216\000\000\002\203\000\000\000\000\000\000\012\177\004\187\000\000\002\223\000\000\002\218\000\000\000\000\002\203\000\000\000\000\004\199\000\000\002\191\002\167\000\000\002k\002\168\002\169\000\000\002\170\000\000\006\247\000\000\000\000\002\191\003O\000\000\002k\000\000\004E\000\000\004F\004G\002\169\012\178\004H\012\179\003O\000\000\000\000\002\171\000\000\002\198\004\220\002\183\002\184\002\189\000\000\000\000\004\187\002\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\002\205\000\000\000\000\000\000\004\198\000\000\000\000\000\000\004\219\000\000\012\180\000\000\000\000\002\199\000\000\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\002\216\002\170\000\000\000\000\000\000\004\220\002\200\003,\000\000\002\223\000\000\002\218\002\216\000\000\000\000\000\000\000\000\004\239\000\000\000\000\000\000\002\223\002\171\002\218\002\198\012\181\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\012\182\012\183\000\000\000\000\012\184\000\000\004\217\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\239\002\191\004\241\000\000\002k\000\000\000\000\000\000\012\211\002\200\003,\000\000\000\000\000\000\003O\000\000\000\000\004K\000\000\004\183\002k\000\000\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\186\006\244\000\000\005\r\012\187\002\205\000\000\012\189\000\000\004\184\012\195\012\197\000\000\000\000\000\000\000\000\000\000\004\241\005\014\002\203\002\218\004\186\000\000\000\000\000\000\012\209\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\002\191\000\000\000\000\002k\000\000\000\000\002\216\000\000\000\000\000\000\012\210\005\016\000\000\003O\006\244\002\223\005\r\002\218\000\000\002\171\000\000\002\198\004\184\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\005\014\002\170\002\218\004\186\000\000\000\000\000\000\002\205\000\000\000\000\000\000\000\000\000\000\004E\004\232\004F\004G\002\169\000\000\004H\000\000\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\005\016\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\002\200\003,\b\183\002\216\000\000\000\000\000\000\004\238\000\000\000\000\b\192\000\000\002\223\000\000\002\218\000\000\002\199\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\t\148\000\000\000\000\004\251\002\203\000\000\000\000\000\000\000\000\000\000\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\000\000\003O\000\000\000\000\004\255\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\004J\000\000\002k\002\205\000\000\000\000\000\000\000\000\002\200\003,\000\000\000\000\003O\000\000\000\000\000\000\000\000\b\195\002\203\004\183\002k\002\143\000\000\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\002\205\002k\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003O\002\223\000\000\002\218\002\203\000\000\000\000\002\171\000\000\002\198\b\186\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\002\216\000\000\000\000\000\000\000\000\000\000\000\000\005\006\003O\002\223\000\000\002\218\000\000\000\000\000\000\002\171\002\199\002\198\004\184\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\004\185\002\170\002\218\004\186\000\000\000\000\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\n\000\000\000\000\000\000\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\000\000\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\021\000\000\000\000\002\203\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\003O\005\025\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\216\000\000\000\000\000\000\000\000\005%\003O\000\000\000\000\002\223\002\203\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005)\003O\000\000\000\000\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\0050\000\000\000\000\002\203\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\200\003,\002\216\000\000\000\000\000\000\003O\0054\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\002\199\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\216\000\000\000\000\000\000\000\000\005;\003O\000\000\000\000\002\223\002\203\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005?\003O\000\000\000\000\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005F\000\000\000\000\002\203\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\200\003,\002\216\000\000\000\000\000\000\003O\005J\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\002\199\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\216\000\000\000\000\000\000\000\000\005Q\003O\000\000\000\000\002\223\002\203\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005U\003O\000\000\000\000\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\\\000\000\000\000\002\203\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\200\003,\002\216\000\000\000\000\000\000\003O\005`\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\002\199\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\216\000\000\000\000\000\000\000\000\005g\003O\000\000\000\000\002\223\002\203\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005k\003O\000\000\000\000\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005r\000\000\000\000\002\203\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\200\003,\002\216\000\000\000\000\000\000\003O\005v\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\002\199\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\216\000\000\000\000\000\000\000\000\005}\003O\000\000\000\000\002\223\002\203\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\129\003O\000\000\000\000\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\136\000\000\000\000\002\203\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\200\003,\002\216\000\000\000\000\000\000\003O\005\140\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\002\199\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\216\000\000\000\000\000\000\000\000\005\147\003O\000\000\000\000\002\223\002\203\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\151\003O\000\000\000\000\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\158\000\000\000\000\002\203\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\200\003,\002\216\000\000\000\000\000\000\003O\005\162\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\002\199\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\216\000\000\000\000\000\000\000\000\005\169\003O\000\000\000\000\002\223\002\203\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\173\003O\000\000\000\000\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\180\000\000\000\000\002\203\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\200\003,\002\216\000\000\000\000\000\000\003O\005\184\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\002\199\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\216\000\000\000\000\000\000\000\000\005\191\003O\000\000\000\000\002\223\002\203\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\195\003O\000\000\000\000\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\202\000\000\000\000\002\203\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\200\003,\002\216\000\000\000\000\000\000\003O\005\206\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\002\199\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\216\000\000\000\000\000\000\000\000\005\213\003O\000\000\000\000\002\223\002\203\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\217\003O\000\000\000\000\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\224\000\000\000\000\002\203\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\200\003,\002\216\000\000\000\000\000\000\003O\005\228\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\002\199\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\216\000\000\000\000\000\000\000\000\005\235\003O\000\000\000\000\002\223\002\203\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\239\003O\000\000\000\000\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\005\246\000\000\000\000\002\203\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\200\003,\002\216\000\000\000\000\000\000\003O\005\250\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\002\199\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\216\000\000\000\000\000\000\000\000\006\001\003O\000\000\000\000\002\223\002\203\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\006\005\003O\000\000\000\000\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\006\018\000\000\000\000\002\203\002\223\000\000\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\200\003,\002\216\000\000\000\000\000\000\003O\006\024\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\002\199\001\019\001\020\001\021\002\167\000\000\001\022\002\168\002\169\0067\002\170\002\191\000\000\000\000\002k\002\205\001)\000\000\002\200\003,\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\000\000\000\000\002\216\000\000\000\000\000\000\000\000\006\031\003O\000\000\000\000\002\223\002\203\002\218\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\002\205\002\200\003,\002\216\000\000\001'\000\000\000\000\006#\003O\000\000\000\000\002\223\000\000\002\218\000\000\000\000\002\199\001\019\001\020\001\021\000\000\000\000\001\022\001\023\000\000\006D\000\000\001>\000\000\000\000\000\000\000\000\001)\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\002\191\000\000\000\000\002k\000\000\000\000\001\019\001\020\001\021\002\216\000\000\001\022\000\000\003O\006O\000\000\000\000\002\203\002\223\000\000\002\218\001)\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\006Y\000\000\002\191\000\000\000\000\002k\002\205\001)\000\000\000\000\000\000\001'\000\000\000\000\000\000\003O\000\000\000\000\000\000\000\000\001J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001K\001\023\000\000\001L\000\000\001>\001M\001N\006;\000\000\000\000\002\205\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002\218\000\000\000\000\000\000\001\024\000\000\000\000\001'\0014\0015\001e\000\000\001\014\000\000\000\000\001\127\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\216\000\000\001'\001\023\000\000\000\000\000\000\001>\000\000\002\223\000\000\002\218\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\006]\001\023\000\000\000\000\000\000\001>\000\000\001)\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\001J\000\000\000\000\000\000\000\000\000\000\001\024\000\000\000\000\001K\0014\0015\001L\000\000\001\014\001M\001N\006H\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\006a\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\001e\006o\000\000\000\000\000\000\001\127\001J\000\000\001)\000\000\000\000\000\000\001'\000\000\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\006S\001J\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\001K\000\000\001>\001L\000\000\000\000\001M\001N\006[\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\000\000\000\000\000\000\001\127\000\000\000\000\000\000\001\024\000\000\000\000\001'\0014\0015\000\000\000\000\001\014\001e\001\019\001\020\001\021\000\000\001\127\001\022\000\000\000\000\006z\000\000\000\000\001'\001\023\000\000\000\000\001)\001>\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\006\135\000\000\000\000\000\000\001\023\000\000\000\000\001)\001>\000\000\000\000\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\001J\000\000\000\000\000\000\003\237\000\000\001\024\000\000\000\000\001K\0014\0015\001L\000\000\001\014\001M\001N\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\001\019\001\020\001\021\000\000\001'\001\022\000\000\000\000\006\146\000\000\000\000\000\000\000\000\001e\000\000\001)\000\000\000\000\001\127\001J\000\000\000\000\001'\001\023\000\000\000\000\000\000\001>\001K\000\000\000\000\001L\000\000\000\000\001M\001N\006c\001J\000\000\000\000\000\000\001\023\000\000\000\000\003\239\001>\001K\004\011\b\215\001L\000\000\001\024\001M\001N\006s\0014\0015\000\000\004\015\001\014\000\000\000\000\000\000\001e\004\019\000\000\001\014\000\000\001\127\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\001e\000\000\001\019\001\020\001\021\001\127\001'\001\022\000\000\000\000\006\159\000\000\000\000\001\019\001\020\001\021\000\000\001)\001\022\000\000\000\000\001\027\000\000\000\000\000\000\001\023\000\000\000\000\001)\001>\000\000\004\020\001J\000\000\000\000\000\000\000\000\004\021\004\030\000\000\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\006~\001J\004\031\000\000\001\024\000\000\000\000\000\000\0014\0015\001K\000\000\001\014\001L\000\000\000\000\001M\001N\006\139\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\001\019\001\020\001\021\001\127\000\000\001\022\000\000\000\000\006\191\000\000\000\000\001'\000\000\000\000\000\000\001)\001e\000\000\001\019\001\020\001\021\001\127\001'\001\022\000\000\000\000\006\202\000\000\000\000\000\000\001\023\000\000\000\000\001)\001>\000\000\000\000\001J\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\001K\000\000\000\000\001L\000\000\000\000\001M\001N\006\150\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\001e\000\000\001\019\001\020\001\021\001\127\001'\001\022\000\000\000\000\006\215\000\000\000\000\001\019\001\020\001\021\000\000\001)\001\022\000\000\000\000\006\226\000\000\000\000\001'\001\023\000\000\000\000\001)\001>\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001J\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\001K\000\000\001J\001L\000\000\001\024\001M\001N\006\163\0014\0015\001K\000\000\001\014\001L\000\000\000\000\001M\001N\006\177\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\001e\000\000\000\000\000\000\000\000\001\127\001'\000\000\000\000\000\000\000\000\001e\000\000\000\000\000\000\000\000\001\127\001'\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\000\000\000\000\001J\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\001K\000\000\000\000\001L\000\000\000\000\001M\001N\006\195\001J\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\001K\000\000\001\014\001L\011j\001\024\001M\001N\006\206\0014\0015\000\000\004E\001\014\004F\004G\002\169\001e\004H\000\000\000\000\000\000\001\127\r\209\000\000\000\000\r\210\000\000\000\000\000\000\011m\000\000\004\187\000\000\000\000\001e\000\000\000\000\000\000\000\000\001\127\011n\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\246\000\000\000\000\001J\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\001K\004H\001J\001L\000\000\000\000\001M\001N\006\219\000\000\004\220\001K\011o\000\000\001L\004\187\000\000\001M\001N\006\230\000\000\000\000\000\000\002\167\000\000\004\199\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\000\000\001e\007\005\000\000\000\000\000\000\001\127\000\000\000\000\000\000\000\000\000\000\001e\000\000\000\000\000\000\002\171\001\127\002\198\011p\002\183\002\184\002\189\000\000\004\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011q\004\239\000\000\000\000\000\000\000\000\006\254\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\002\199\002\170\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\r\211\000\000\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\011s\000\000\000\000\000\000\004\239\000\000\000\000\004\241\000\000\000\000\000\000\000\000\011t\000\000\000\000\000\000\011u\000\000\007\002\011w\000\000\004K\011|\004\183\002k\000\000\000\000\002\199\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\011\136\000\000\000\000\006\244\000\000\005\r\000\000\000\000\002\200\003,\000\000\004\184\002\191\002\167\000\000\002k\002\168\002\169\004\241\002\170\005\014\011\137\002\218\004\186\000\000\003O\000\000\000\000\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\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\005\016\002\205\006\244\002\203\005\r\000\000\000\000\000\000\000\000\000\000\004\184\000\000\000\000\000\000\000\000\000\000\000\000\007\012\000\000\005\014\002\191\002\218\004\186\002k\000\000\000\000\002\199\000\000\000\000\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\002\223\005\016\002\218\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\002\205\004H\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\000\002\171\002\203\002\198\000\000\002\183\002\184\002\189\007\019\002\216\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\002\223\002\191\002\218\000\000\002k\000\000\000\000\000\000\000\000\007\016\000\000\000\000\004\220\000\000\003O\000\000\000\000\000\000\002\199\002\171\000\000\002\239\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\002\200\003,\000\000\002\205\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\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\239\b\183\000\000\002\216\000\000\000\000\007\026\002\203\000\000\b\192\000\000\000\000\002\223\000\000\002\218\002\199\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\000\000\003O\002\167\t\135\000\000\002\168\002\169\002\190\002\170\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\002\205\002k\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\006\244\000\000\005\r\000\000\000\000\000\000\000\000\007\030\004\184\000\000\002\191\004J\000\000\002k\000\000\002\216\002\199\005\014\000\000\002\218\004\186\000\000\000\000\003O\002\223\000\000\002\218\000\000\b\195\000\000\004\183\002k\002\143\000\000\002\200\003,\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\005\016\000\000\002\205\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\217\000\000\002\218\000\000\000\000\000\000\002\171\000\000\002\198\b\186\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\002\203\002\170\000\000\000\000\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\007)\000\000\002\223\002\191\002\218\000\000\002k\000\000\002\171\002\199\002\198\004\184\002\183\002\184\002\189\002\167\003O\000\000\002\168\002\169\004\185\002\170\002\218\004\186\000\000\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\000\000\007-\000\000\000\000\000\000\000\000\000\000\000\000\002\205\002\171\002\199\002\198\000\000\002\183\002\184\002\189\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\200\003,\000\000\000\000\000\000\000\000\000\000\0077\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\002\199\002\216\004E\000\000\004F\004G\002\169\000\000\004H\000\000\002\223\002\191\002\218\000\000\002k\000\000\000\000\000\000\002\200\003,\000\000\000\000\000\000\002\167\003O\000\000\002\168\002\169\002\203\002\170\000\000\000\000\004v\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\002\205\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\003O\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\007;\000\000\000\000\002\191\000\000\000\000\002k\002\205\000\000\002\199\002\216\000\000\000\000\000\000\000\000\007E\003O\000\000\000\000\002\223\000\000\002\218\000\000\000\000\002\199\000\000\000\000\002\200\003,\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\002\205\002\200\003,\002\216\000\000\000\000\000\000\000\000\000\000\004J\000\000\000\000\002\223\003\237\002\218\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\004K\000\000\004\183\002k\002\203\000\000\000\000\000\000\000\000\000\000\004E\002\216\004F\004G\002\169\000\000\004H\000\000\007I\002\203\002\223\002\191\002\218\000\000\002k\000\000\000\000\002\199\000\000\000\000\004\187\000\000\000\000\000\000\003O\000\000\002\191\000\000\000\000\002k\004\199\000\000\000\000\000\000\000\000\002\200\003,\000\000\000\000\003O\002\167\007N\000\000\002\168\002\169\000\000\002\170\000\000\003\239\002\205\000\000\004\011\b\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\015\004\220\002\205\004\184\000\000\002\171\004\019\002\198\001\014\002\183\002\184\002\189\004\185\003\237\002\218\004\186\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\007U\000\000\002\223\002\191\002\218\000\000\002k\000\000\002\216\002\199\000\000\000\000\000\000\000\000\000\000\000\000\003O\002\223\000\000\002\218\000\000\000\000\000\000\004\020\000\000\000\000\000\000\002\200\003,\004\021\004\030\004\239\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\002\205\000\000\004\031\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\003\239\000\000\000\000\004\011\b\223\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\004E\004\015\004F\004G\002\169\002\203\004H\004\019\000\000\001\014\000\000\000\000\002\216\000\000\000\000\000\000\004\241\000\000\000\000\007Y\004\187\002\223\002\191\002\218\000\000\002k\000\000\000\000\002\199\000\000\004\199\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\000\000\000\000\007\\\000\000\000\000\000\000\000\000\002\200\003,\000\000\006\244\000\000\005\r\000\000\000\000\000\000\004\020\000\000\004\184\000\000\000\000\002\205\004\021\004\030\004\220\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\000\000\004\031\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\002\203\002\170\000\000\000\000\000\000\005\016\000\000\002\216\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\223\002\191\002\218\000\000\002k\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\003O\000\000\000\000\000\000\004\239\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\004E\000\000\004F\004G\002\169\007c\004H\000\000\004K\000\000\004\183\002k\002\205\000\000\002\199\000\000\000\000\000\000\000\000\007g\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\000\000\004\199\000\000\002\200\003,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007j\004\241\000\000\000\000\000\000\002\200\003,\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002\218\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\244\002\203\005\r\000\000\000\000\000\000\000\000\000\000\004\184\000\000\002\167\000\000\000\000\002\168\002\169\002\203\002\170\005\014\002\191\002\218\004\186\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003O\002\191\000\000\000\000\002k\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\167\003O\005\016\002\168\002\169\004\239\002\170\000\000\000\000\000\000\000\000\000\000\002\205\000\000\000\000\000\000\000\000\000\000\000\000\007q\000\000\000\000\004K\000\000\004\183\002k\002\205\002\171\002\199\002\198\000\000\002\183\002\184\002\189\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\200\003,\000\000\002\216\000\000\000\000\000\000\007u\000\000\000\000\004\241\000\000\002\223\000\000\002\218\000\000\002\199\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002\218\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\244\002\203\005\r\000\000\000\000\000\000\000\000\002\167\004\184\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\005\014\002\191\002\218\004\186\002k\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\003O\000\000\000\000\002\171\002\203\002\198\000\000\002\183\002\184\002\189\002\167\000\000\004\187\002\168\002\169\005\016\002\170\000\000\000\000\000\000\000\000\002\191\004\199\000\000\002k\002\205\000\000\000\000\000\000\007}\000\000\000\000\000\000\007\158\003O\000\000\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\004\220\002\200\003,\000\000\002\205\000\000\000\000\002\216\007\129\000\000\000\000\000\000\004\187\000\000\000\000\000\000\002\223\002\199\002\218\000\000\000\000\000\000\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\237\000\000\000\000\007\161\000\000\002\200\003,\000\000\000\000\000\000\000\000\002\216\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\002\223\000\000\002\218\000\000\004E\004\220\004F\004G\002\169\000\000\004H\004\239\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\003O\000\000\000\000\004K\002\203\004\183\002k\000\000\000\000\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007\164\002\191\000\000\000\000\002k\002\205\003\239\000\000\000\000\004\011\b\226\000\000\000\000\000\000\003O\000\000\000\000\004\241\000\000\000\000\004\015\004\239\004\220\000\000\000\000\000\000\004\019\000\000\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004K\002\205\004\183\002k\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\244\002\223\005\r\002\218\000\000\000\000\000\000\002\167\004\184\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\004\241\000\000\004\020\000\000\002\216\000\000\000\000\000\000\004\021\004\030\000\000\004\239\002\171\002\223\002\198\002\218\002\183\002\184\002\189\000\000\000\000\000\000\004\031\000\000\005\016\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\006\244\000\000\005\r\000\000\000\000\007\172\000\000\000\000\004\184\000\000\000\000\000\000\000\000\000\000\002\199\000\000\000\000\005\014\002\167\002\218\004\186\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\004\241\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\171\005\016\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\006\244\002\170\005\r\000\000\000\000\000\000\000\000\000\000\004\184\007\180\000\000\000\000\000\000\000\000\002\203\000\000\000\000\005\014\002\199\002\218\004\186\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\002\191\000\000\000\000\002k\000\000\002\200\003,\000\000\000\000\000\000\000\000\000\000\000\000\003O\000\000\005\016\000\000\007\186\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\002\199\002\170\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\002\205\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\000\000\002\171\002\203\002\198\000\000\002\183\002\184\002\189\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\007\190\002\216\000\000\000\000\000\000\003O\000\000\000\000\007\195\002\199\002\223\000\000\002\218\000\000\002\203\000\000\000\000\002\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\002\205\002\191\000\000\000\000\002k\002\200\003,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001|\000\000\000\000\000\000\000\000\002\216\000\000\002\205\000\000\002\203\000\000\000\000\000\000\000\000\002\223\000\000\002\218\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\002\167\000\000\002k\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\000\000\003O\000\000\000\000\002\167\000\000\002\216\002\168\002\169\003O\002\170\000\000\000\000\000\000\000\000\002\223\002\171\002\218\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\002\205\000\000\000\000\000\000\000\000\002\171\000\000\002\198\002\205\002\183\002\184\002\189\000\000\000\000\000\000\000\000\007\201\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\002\199\002\170\000\000\000\000\000\000\000\000\007\205\000\000\000\000\001\023\000\000\000\000\002\216\000\000\000\000\002\199\000\000\000\000\002\200\003,\002\216\002\223\002\171\002\218\002\198\000\000\002\183\002\184\002\189\002\223\000\000\002\218\000\000\002\200\003,\000\000\000\000\001\024\000\000\000\000\002\167\0014\0015\002\168\002\169\001\014\002\170\000\000\007\213\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\002\200\003,\002\203\000\000\002\191\000\000\000\000\002k\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\003O\007\217\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\002\199\004\187\001\019\001\020\001\021\003O\001K\001\022\000\000\001L\001\164\004\199\001M\001N\000\000\002\205\000\000\002\203\002\200\003,\000\000\000\000\007\223\004E\000\000\004F\004G\002\169\000\000\004H\002\205\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\001e\000\000\004\187\004\220\000\000\000\000\003O\000\000\000\000\000\000\000\000\002\216\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\002\203\002\218\007\226\000\000\000\000\002\216\000\000\000\000\000\000\000\000\002\205\000\000\000\000\000\000\002\223\000\000\002\218\002\191\000\000\000\000\002k\000\000\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\004\239\002\170\000\000\001\023\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\205\002\223\000\000\002\218\000\000\004K\000\000\004\183\002k\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\002\167\000\000\001\014\002\168\002\169\004\239\002\170\000\000\000\000\000\000\000\000\007\239\002\216\000\000\004\241\000\000\000\000\000\000\000\000\000\000\002\199\002\223\004K\002\218\004\183\002k\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\244\000\000\005\r\000\000\000\000\000\000\007\245\000\000\004\184\004\241\004E\000\000\004F\004G\002\169\002\199\004H\005\014\001K\002\218\004\186\001L\000\000\000\000\001M\001N\000\000\000\000\000\000\000\000\004\187\000\000\000\000\002\200\003,\002\203\000\000\000\000\000\000\000\000\004\199\000\000\006\244\000\000\005\r\000\000\005\016\000\000\000\000\000\000\004\184\b\134\002\191\001e\000\000\002k\000\000\000\000\000\000\005\014\002\167\002\218\004\186\002\168\002\169\003O\002\170\000\000\000\000\000\000\000\000\000\000\000\000\004\220\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\171\005\016\002\198\002\205\002\183\002\184\002\189\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\000\000\004E\b\t\004F\004G\002\169\002\167\004H\000\000\002\168\002\169\002\199\002\170\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\002\205\000\000\004\239\000\000\002\223\000\000\002\218\000\000\002\200\003,\004z\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\004K\000\000\004\183\002k\000\000\001\019\001\020\001\021\000\000\000\000\001\022\002\167\000\000\001\172\002\168\002\169\000\000\002\170\002\216\b\015\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\002\199\002\218\000\000\000\000\000\000\002\203\004\241\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\002\200\003,\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003O\b\019\000\000\000\000\b\136\002\167\005\r\000\000\002\168\002\169\002\199\002\170\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\004J\002\218\004\186\002\205\000\000\002\203\002\200\003,\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\004K\000\000\004\183\002k\000\000\002\191\000\000\000\000\002k\001\023\000\000\005\016\000\000\000\000\000\000\000\000\000\000\000\000\003O\b \000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\002\223\002\203\002\218\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\002\205\000\000\001\014\002\200\003,\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003O\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\167\000\000\004\184\002\168\002\169\000\000\002\170\002\216\000\000\000\000\000\000\004\185\000\000\002\218\004\186\002\205\002\223\002\203\002\218\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\191\001K\000\000\002k\001L\000\000\000\000\001M\001N\000\000\000\000\000\000\b$\003O\000\000\000\000\000\000\000\000\002\216\b-\000\000\002\199\000\000\000\000\000\000\000\000\000\000\002\223\002\199\002\218\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\002\205\002\200\003,\000\000\000\000\000\000\000\000\000\000\002\200\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\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\191\002\167\000\000\002k\002\168\002\169\003O\002\170\000\000\000\000\000\000\000\000\b1\003O\000\000\000\000\002\167\000\000\000\000\002\168\002\169\002\199\002\170\000\000\000\000\000\000\000\000\000\000\002\171\000\000\002\198\002\205\002\183\002\184\002\189\000\000\000\000\000\000\002\205\002\200\003,\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\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\002\199\000\000\001\019\001\020\001\021\002\216\b>\001\022\000\000\000\000\001\180\000\000\002\216\000\000\002\223\002\199\002\218\000\000\002\200\003,\002\203\002\223\000\000\002\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\000\000\002\191\002\167\000\000\002k\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\002\203\002\170\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\002\205\000\000\002\203\000\000\002\191\000\000\000\000\002k\000\000\002\171\004\160\003\212\000\000\002\183\002\184\002\189\bF\003O\000\000\002\191\002\167\000\000\002k\002\168\002\169\002\199\002\170\000\000\000\000\000\000\000\000\000\000\003O\001\023\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\002\205\002\200\003,\000\000\002\223\002\171\002\218\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\002\205\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\bJ\000\000\000\000\000\000\000\000\000\000\002\216\000\000\000\000\002\199\000\000\000\000\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\002\223\002\191\002\218\002\190\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\167\003O\000\000\002\168\002\169\000\000\002\170\002\191\002\167\000\000\002k\002\168\002\169\000\000\002\170\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\002\205\002\171\002\203\002\198\000\000\002\183\002\184\002\189\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\002\191\004\162\000\000\002k\000\000\000\000\001e\000\000\bQ\000\000\000\000\000\000\000\000\003O\000\000\000\000\bW\002\199\002\216\000\000\002\167\000\000\000\000\002\168\002\169\002\199\002\170\002\223\004\163\002\218\000\000\000\000\000\000\000\000\000\000\002\200\003,\002\216\002\205\000\000\000\000\000\000\000\000\002\200\003,\000\000\002\217\002\171\002\218\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\237\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\002\216\000\000\000\000\000\000\002\203\000\000\000\000\002\199\000\000\002\223\000\000\002\218\002\203\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\002\191\001\188\000\000\002k\002\200\003,\000\000\000\000\002\191\000\000\000\000\002k\000\000\003O\000\000\000\000\000\000\000\000\000\000\000\000\002\167\003O\000\000\002\168\002\169\000\000\002\170\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\003\239\000\000\002\205\b\247\b\251\000\000\000\000\000\000\000\000\000\000\002\205\002\171\002\203\002\198\004\015\002\183\002\184\002\189\000\000\002\171\004\019\002\198\001\014\002\183\002\184\002\189\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\b`\000\000\002\216\000\000\000\000\003O\000\000\000\000\bf\002\199\002\216\002\223\002\167\002\218\000\000\002\168\002\169\002\199\002\170\002\223\000\000\002\218\000\000\000\000\000\000\000\000\001\023\002\200\003,\000\000\002\205\004\020\000\000\000\000\000\000\002\200\003,\004\021\004\030\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\004\031\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\bj\000\000\002\216\000\000\000\000\000\000\002\203\000\000\000\000\002\199\000\000\002\223\000\000\002\218\002\203\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\002\200\003,\000\000\000\000\002\191\000\000\000\000\002k\000\000\003O\000\000\000\000\000\000\000\000\000\000\000\000\002\167\003O\000\000\002\168\002\169\000\000\002\170\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\001K\002\205\000\000\001L\000\000\000\000\001M\001N\000\000\002\205\002\171\002\203\002\198\000\000\002\183\002\184\002\189\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\001e\br\000\000\002\216\000\000\000\000\003O\000\000\000\000\bv\002\199\002\216\002\223\002\167\002\218\000\000\002\168\002\169\002\199\002\170\002\223\000\000\002\218\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\002\205\000\000\000\000\000\000\000\000\002\200\003,\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\b\130\000\000\002\216\000\000\000\000\000\000\002\203\000\000\000\000\002\199\000\000\002\223\004\187\002\218\002\203\004E\000\000\004F\004G\002\169\000\000\004H\004\199\002\191\000\000\000\000\002k\002\200\003,\000\000\000\000\002\191\000\000\b\154\002k\000\000\003O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003O\b\183\002\167\003\237\000\000\002\168\002\169\000\000\002\170\b\192\000\000\004\220\000\000\000\000\000\000\000\000\000\000\002\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\203\000\000\002\171\004\160\003\212\000\000\002\183\002\184\002\189\000\000\002\167\000\000\b\193\002\168\002\169\000\000\002\170\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\000\000\002\216\000\000\000\000\003O\000\000\000\000\000\000\000\000\002\216\002\223\002\171\002\218\002\198\000\000\002\183\002\184\002\189\002\223\004\239\002\218\003\239\000\000\000\000\004\011\t\225\000\000\000\000\004E\002\205\004F\004G\002\169\000\000\004H\004\015\004K\b\144\004\183\002k\000\000\004\019\004J\001\014\000\000\000\000\002\199\000\000\004\187\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\004\199\b\195\000\000\004\183\002k\002\143\002\200\003,\002\216\000\000\000\000\b\174\004\241\000\000\000\000\002\190\000\000\002\223\000\000\002\218\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\004\020\002\191\004\220\000\000\002k\000\000\004\021\004\030\000\000\000\000\000\000\b\186\000\000\000\000\b\156\b\150\005\r\000\000\000\000\002\203\004\031\000\000\004\184\000\000\002\199\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\002\191\000\000\000\000\002k\011]\000\000\002\200\003,\000\000\004\184\000\000\000\000\000\000\003O\000\000\000\000\000\000\000\000\004\185\000\000\002\218\004\186\000\000\000\000\005\016\000\000\002\167\004\239\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\216\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\002\217\002\203\002\218\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\167\011^\002\191\002\168\002\169\002k\002\170\000\000\000\000\000\000\002\216\000\000\000\000\004\241\b\164\003O\000\000\000\000\000\000\002\223\000\000\002\218\000\000\002\199\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\003\237\000\000\000\000\002\205\002\200\003,\000\000\000\000\000\000\b\176\000\000\005\r\000\000\000\000\000\000\000\000\b\171\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\005\014\000\000\002\218\004\186\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\002\216\000\000\000\000\002\200\003,\000\000\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\000\000\005\016\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\002\191\000\000\000\000\002k\000\000\000\000\003\239\000\000\000\000\004\011\n\r\000\000\000\000\003O\000\000\000\000\000\000\000\000\b\206\000\000\004\015\000\000\002\203\000\000\000\000\000\000\004\019\002\199\001\014\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\002\205\002\191\000\000\000\000\002k\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\020\002\216\000\000\002\205\000\000\000\000\004\021\004\030\000\000\t^\002\223\000\000\002\218\000\000\000\000\002\203\000\000\000\000\002\199\000\000\004\031\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\012\177\000\000\002\191\000\000\000\000\002k\002\200\003,\000\000\000\000\002\216\000\000\000\000\000\000\000\000\003O\000\000\000\000\002\171\002\223\002\198\002\218\002\183\002\184\002\189\000\000\000\000\000\000\000\000\011j\002\167\000\000\000\000\002\168\002\169\012\178\002\170\012\179\000\000\000\000\002\205\000\000\000\000\000\000\tc\000\000\000\000\000\000\r\209\000\000\002\203\r\210\000\000\002\199\000\000\011m\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\011n\002\191\000\000\000\000\002k\002\200\003,\012\180\000\000\000\000\000\000\002\216\000\000\000\000\003O\000\000\000\000\th\000\000\000\000\002\223\002\167\002\218\000\000\002\168\002\169\002\199\002\170\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\011o\000\000\000\000\002\205\000\000\000\000\000\000\000\000\002\200\003,\000\000\012\181\002\171\002\203\002\198\000\000\002\183\002\184\002\189\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\012\182\012\183\002\191\000\000\012\184\002k\000\000\000\000\000\000\000\000\tp\000\000\002\216\011p\000\000\003O\000\000\000\000\tt\002\199\000\000\002\223\000\000\002\218\002\203\000\000\000\000\002\199\000\000\000\000\011q\000\000\012\185\000\000\000\000\000\000\000\000\002\200\003,\000\000\002\205\002\191\000\000\000\000\002k\002\200\003,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003O\000\000\r\215\000\000\012\186\000\000\000\000\000\000\012\187\000\000\000\000\012\189\000\000\000\000\012\195\012\197\000\000\000\000\000\000\000\000\000\000\011s\000\000\002\216\000\000\002\205\000\000\002\203\000\000\012\209\000\000\000\000\002\223\011t\002\218\002\203\000\000\011u\000\000\000\000\011w\000\000\000\000\011|\002\191\002\167\000\000\002k\002\168\002\169\012\210\002\170\002\191\000\000\000\000\002k\000\000\003O\011\136\000\000\002\167\000\000\002\216\002\168\002\169\003O\002\170\000\000\000\000\000\000\000\000\002\223\002\171\002\218\002\198\000\000\002\183\002\184\002\189\011\137\000\000\000\000\002\205\000\000\000\000\000\000\000\000\002\171\000\000\002\198\002\205\002\183\002\184\002\189\000\000\000\000\000\000\000\000\t\130\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\002\199\002\170\000\000\000\000\000\000\000\000\t\140\000\000\000\000\000\000\000\000\000\000\002\216\000\000\000\000\002\199\000\000\000\000\002\200\003,\002\216\002\223\002\171\002\218\002\198\000\000\002\183\002\184\002\189\002\223\000\000\002\218\000\000\002\200\003,\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\t\144\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\002\200\003,\002\203\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003O\t\153\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\203\002\200\003,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\003O\002\170\000\000\000\000\000\000\002\216\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\223\002\203\002\218\000\000\000\000\000\000\002\216\000\000\002\171\000\000\002\198\002\205\002\183\002\184\002\189\002\223\000\000\002\218\002\191\000\000\002\171\002k\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\003O\000\000\000\000\t\157\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\002\199\002\170\000\000\t\168\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\002\199\002\205\002\223\000\000\002\218\000\000\002\200\003,\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\002\200\003,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\t\174\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\002\199\000\000\002\223\000\000\002\218\002\203\000\000\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\203\002\200\003,\000\000\000\000\002\191\002\167\000\000\002k\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\002\191\003O\t\185\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\000\000\003O\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\002\205\000\000\002\203\002\200\003,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\000\000\000\000\t\191\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\002\199\000\000\000\000\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\002\223\002\203\002\218\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\205\002\223\000\000\002\218\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003O\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\004E\002\203\004F\004G\002\169\000\000\004H\002\167\002\216\000\000\002\168\002\169\000\000\002\170\000\000\000\000\002\205\002\223\002\191\002\218\002\171\002k\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\004\182\003O\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\001\019\001\020\001\021\t\203\000\000\001\022\000\000\000\000\t\230\000\000\002\216\000\000\002\199\002\205\000\000\001)\000\000\t\209\000\000\002\223\000\000\002\218\003\237\000\000\000\000\000\000\002\199\000\000\000\000\000\000\002\200\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\002\200\003,\000\000\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002\218\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\t\236\000\000\002\203\000\000\000\000\000\000\000\000\001)\000\000\004J\000\000\000\000\001\019\001\020\001\021\001'\002\203\001\022\000\000\002\191\t\242\003\239\002k\000\000\004\011\012l\004K\001)\004\183\002k\000\000\000\000\003O\002\191\001\023\004\015\002k\000\000\001>\000\000\000\000\004\019\000\000\001\014\000\000\002\167\003O\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\000\000\002\205\000\000\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\002\205\002\171\000\000\003\001\000\000\002\183\002\184\002\189\001'\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\020\000\000\000\000\000\000\000\000\002\216\004\021\004\030\000\000\001\023\001'\000\000\004\184\001>\002\223\000\000\002\218\000\000\000\000\002\216\004\031\004\185\000\000\002\218\004\186\000\000\000\000\000\000\002\223\001\023\002\218\000\000\000\000\001>\000\000\001J\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\001K\001\014\000\000\001L\000\000\000\000\001M\001N\t\233\000\000\000\000\000\000\000\000\001\024\000\000\000\000\002\167\0014\0015\002\168\002\169\001\014\002\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\237\000\000\000\000\001e\002\190\000\000\000\000\000\000\001\127\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\002\191\000\000\001J\002k\000\000\001\019\001\020\001\021\000\000\000\000\001\022\001K\000\000\001\027\001L\000\000\t\250\001M\001N\t\239\001)\000\000\001J\000\000\000\000\002\199\000\000\001\019\001\020\001\021\000\000\001K\001\022\000\000\001L\001\027\000\000\001M\001N\t\245\000\000\000\000\001)\002\200\003,\000\000\001e\001\019\001\020\001\021\003\239\001\127\001\022\004\011\012w\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\004\015\000\000\001e\000\000\000\000\000\000\004\019\001\127\001\014\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\217\000\000\002\218\002\203\001\019\001\020\001\021\000\000\001'\001\022\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\003\237\001)\002\191\000\000\000\000\002k\000\000\000\000\000\000\001\023\000\000\000\000\001'\001>\000\000\003O\004\020\000\000\000\000\000\000\000\000\000\000\004\021\004\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\023\001'\000\000\000\000\001>\004\031\001\024\000\000\000\000\002\205\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\003\239\000\000\001'\004\011\012~\000\000\002\216\000\000\001\024\000\000\000\000\000\000\0014\0015\004\015\002\223\001\014\002\218\000\000\000\000\004\019\001\023\001\014\000\000\000\000\001>\000\000\000\000\001J\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\001K\000\000\001\027\001L\000\000\000\000\001M\001N\003]\001)\000\000\000\000\001\024\001J\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\n`\004\020\000\000\001J\000\000\001e\000\000\004\021\004\030\000\000\001\127\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\nl\004\031\000\000\001\019\001\020\001\021\000\000\001e\001\022\000\000\000\000\001\027\001\127\000\000\000\000\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\001J\000\000\000\000\001e\000\000\000\000\000\000\001'\001\127\001K\000\000\000\000\001L\000\000\000\000\001M\001N\n\134\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\001\023\000\000\001\027\000\000\001>\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\001e\000\000\000\000\000\000\000\000\001\127\000\000\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\002\167\000\000\001'\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\001\023\000\000\000\000\n\226\001>\000\000\002\171\004\160\003\212\000\000\002\183\002\184\002\189\000\000\000\000\000\000\n\250\000\000\000\000\002\171\004\160\003\212\001'\002\183\002\184\002\189\000\000\000\000\001\024\000\000\000\000\001J\0014\0015\000\000\000\000\001\014\000\000\004\161\000\000\001K\001\023\000\000\001L\000\000\001>\001M\001N\n\150\000\000\000\000\004\161\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\000\000\000\000\000\000\000\000\000\000\001\024\001)\000\000\000\000\0014\0015\001e\000\000\001\014\000\000\000\000\001\127\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\001J\001\022\000\000\000\000\001\027\000\000\000\000\000\000\000\000\001K\000\000\001)\001L\002\190\000\000\001M\001N\n\202\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\190\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001J\000\000\002\191\001e\000\000\002k\000\000\000\000\001\127\001K\000\000\001'\001L\000\000\000\000\001M\001N\n\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\162\000\000\001\023\000\000\000\000\000\000\001>\000\000\000\000\000\000\001\019\001\020\001\021\004\162\001'\001\022\001e\000\000\001\027\000\000\000\000\001\127\000\000\000\000\000\000\001)\006W\006i\000\000\000\000\001\024\000\000\000\000\001\023\0014\0015\002\216\001>\001\014\006W\006i\000\000\000\000\000\000\000\000\002\217\000\000\002\218\000\000\002\216\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\002\217\000\000\002\218\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001J\000\000\000\000\000\000\000\000\001'\000\000\000\000\000\000\001K\000\000\011\224\001L\000\000\000\000\001M\001N\n\244\000\000\000\000\002\199\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\000\000\000\000\001J\000\000\000\000\000\000\000\000\000\000\000\000\002\200\003,\001K\000\000\000\000\001L\001e\000\000\001M\001N\011\206\001\127\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\002\167\000\000\001\014\002\168\002\169\000\000\002\170\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\001e\000\000\000\000\000\000\000\000\001\127\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\230\003O\000\000\001J\000\000\000\000\000\000\011\244\000\000\002\199\000\000\000\000\001K\000\000\000\000\001L\002\199\000\000\001M\001N\011\216\000\000\000\000\000\000\000\000\000\000\002\205\002\200\003,\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\000\000\000\000\000\000\001\127\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\191\002\167\000\000\002k\002\168\002\169\003O\002\170\000\000\000\000\000\000\000\000\011\250\003O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\000\000\000\000\002\171\000\000\002\198\002\205\002\183\002\184\002\189\000\000\000\000\000\000\002\205\002\200\003,\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\000\000\000\000\011\254\000\000\000\000\000\000\001)\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\002\216\000\000\002\223\000\000\002\218\000\000\002\200\003,\002\203\002\223\000\000\002\218\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\002\191\000\000\000\000\002k\000\000\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\003O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\001'\000\000\001\019\001\020\001\021\000\000\000\000\001\022\002\205\000\000\001\027\000\000\002\191\000\000\000\000\002k\000\000\001)\000\000\001\023\000\000\000\000\000\000\001>\000\000\003O\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\216\000\000\001\024\001'\000\000\002\205\0014\0015\000\000\002\223\001\014\002\218\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\001\023\000\000\000\000\000\000\001>\000\000\001)\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\027\002\216\000\000\001'\000\000\000\000\000\000\001)\000\000\001\024\002\223\000\000\002\218\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\000\000\001\023\001J\000\000\000\000\001>\000\000\000\000\000\000\000\000\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\012\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\001'\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\000\000\000\000\001J\001\127\000\000\000\000\000\000\000\000\000\000\001\023\001'\001K\000\000\001>\001L\000\000\000\000\001M\001N\012\232\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\001J\000\000\001\014\001e\000\000\000\000\000\000\000\000\001\127\001K\000\000\000\000\001L\011j\001\024\001M\001N\r\r\0014\0015\000\000\004E\001\014\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\r\209\000\000\004E\r\210\004F\004G\002\169\011m\004H\004\187\000\000\000\000\001e\000\000\000\000\000\000\003\237\001\127\011n\004\199\000\000\000\000\004\187\000\000\001J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\199\001K\000\000\000\000\001L\000\000\000\000\001M\001N\rc\000\000\000\000\001J\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\220\001K\011o\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\000\000\000\000\004\220\000\000\000\000\001e\000\000\000\000\000\000\000\000\001\127\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\003\239\001e\000\000\004\011\012\141\000\000\002\004\000\000\011p\000\000\000\000\004\187\000\000\000\000\004\015\000\000\000\000\000\000\000\000\000\000\004\019\004\199\001\014\000\000\000\000\011q\004\239\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\004\239\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\004\187\r\220\000\000\000\000\t\145\000\000\004K\000\000\004\183\002k\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\020\000\000\011s\000\000\000\000\000\000\004\021\004\030\000\000\004\241\000\000\000\000\000\000\000\000\011t\000\000\000\000\000\000\011u\000\000\004\031\011w\004\241\000\000\011|\004\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\011\136\000\000\000\000\011\231\000\000\005\r\000\000\000\000\004\239\000\000\000\000\004\184\000\000\000\000\000\000\000\000\t\158\000\000\005\r\000\000\005\014\011\137\002\218\004\186\004\184\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\004\239\002\170\005\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\000\000\005\016\000\000\004K\000\000\004\183\002k\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\003\018\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\t\147\002\170\005\r\000\000\000\000\000\000\004\241\000\000\004\184\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\002\171\000\000\002\198\003\237\002\183\002\184\002\189\000\000\002\200\003\020\000\000\000\000\003\022\000\000\000\000\000\000\000\000\t\132\000\000\005\r\000\000\000\000\000\000\000\000\005\016\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\002\199\002\218\004\186\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\002\203\002\200\003\020\000\000\000\000\000\000\002\167\000\000\004\187\002\168\002\169\005\016\002\170\000\000\000\000\000\000\000\000\002\191\004\199\000\000\002k\000\000\003\239\000\000\000\000\012\147\012\149\000\000\004E\000\000\004F\004G\002\169\002\171\004H\002\198\004\015\002\183\002\184\002\189\000\000\000\000\004\019\000\000\001\014\002\203\002\167\000\000\004\187\002\168\002\169\004\220\002\170\000\000\000\000\002\205\000\000\000\000\004\199\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\002\199\000\000\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\200\003,\000\000\000\000\004\020\004\220\002\216\000\000\000\000\000\000\004\021\004\030\000\000\000\000\002\205\002\223\000\000\002\218\000\000\000\000\000\000\000\000\002\199\000\000\004\031\000\000\004\239\000\000\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\200\003,\000\000\004K\002\203\004\183\002k\000\000\000\000\000\000\004E\002\216\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\002\223\002\191\002\218\000\000\002k\002\167\004\239\000\000\002\168\002\169\004\187\002\170\000\000\000\000\t|\000\000\000\000\004\241\000\000\000\000\004\199\000\000\000\000\004K\002\203\004\183\002k\000\000\000\000\000\000\000\000\000\000\002\171\004\160\003\212\000\000\002\183\002\184\002\189\002\205\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\td\000\000\005\r\004\220\003N\000\000\000\000\004\241\004\184\000\000\000\000\000\000\000\000\000\000\004\161\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\000\000\002\216\000\000\000\000\002\205\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002\218\003\237\000\000\t_\000\000\005\r\000\000\000\000\000\000\005\016\000\000\004\184\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\005\014\001\022\002\218\004\186\001\027\000\000\000\000\004\239\000\000\002\216\000\000\001)\000\000\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002\218\000\000\002\190\000\000\004K\000\000\004\183\002k\000\000\005\016\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\002\191\001\022\000\000\002k\001\027\000\000\000\000\000\000\000\000\000\000\000\000\001)\000\000\003\239\000\000\000\000\004\011\012\192\000\000\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\015\000\000\000\000\000\000\000\000\000\000\004\019\000\000\001\014\000\000\000\000\000\000\004\162\000\000\000\000\000\000\000\000\001'\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\217\000\000\005\r\000\000\000\000\001\019\001\020\001\021\004\184\000\000\001\022\001\023\000\000\tU\006i\001>\000\000\005\014\000\000\002\218\004\186\000\000\004E\002\216\004F\004G\002\169\000\000\004H\004\020\000\000\001'\002\217\000\000\002\218\004\021\004\030\000\000\000\000\001\024\000\000\001\239\004\187\0014\0015\000\000\005\016\001\014\000\000\004\031\001\023\000\000\004\199\000\000\001>\000\000\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\001\024\000\000\000\000\000\000\0014\0015\000\000\004\220\001\014\000\000\002\171\004\160\003\212\000\000\002\183\002\184\002\189\000\000\000\000\000\000\002\171\004\160\003\212\001J\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\001K\001\023\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\004\161\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\001\024\001J\000\000\000\000\0014\0015\001e\004\239\001\014\004\187\001K\003\254\000\000\001L\000\000\000\000\001M\001N\000\000\004\199\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\004E\000\000\004F\004G\002\169\004E\004H\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\001e\002\190\000\000\000\000\004\187\004\000\000\000\004\220\000\000\004\187\000\000\002\190\000\000\004\241\004\199\000\000\000\000\000\000\002\191\004\199\000\000\002k\000\000\000\000\000\000\000\000\001K\000\000\002\191\001L\000\000\002k\001M\001N\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\211\000\000\007\173\004\220\005\r\000\000\000\000\000\000\004\220\000\000\004\184\000\000\000\000\004\162\000\000\000\000\000\000\001t\000\000\005\014\000\000\002\218\004\186\011]\004\239\000\000\000\000\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\164\006i\004K\000\000\004\183\002k\000\000\000\000\000\000\005\016\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\217\002\216\002\218\000\000\000\000\000\000\004\239\000\000\000\000\000\000\002\217\004\239\002\218\000\000\000\000\000\000\004E\004\241\004F\004G\002\169\000\000\004H\004K\000\000\004\183\002k\011f\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\001\023\004E\000\000\004F\004G\002\169\004\199\004H\000\000\000\000\007\135\000\000\005\r\000\000\000\000\000\000\000\000\004\241\004\184\000\000\000\000\004\187\004\241\000\000\000\000\000\000\000\000\005\014\001\024\002\218\004\186\004\199\0014\0015\000\000\000\000\001\014\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\006\243\000\000\005\r\000\000\000\000\005\000\005\016\005\r\004\184\000\000\000\000\000\000\000\000\004\184\004\220\000\000\000\000\005\014\000\000\002\218\004\186\000\000\005\014\000\000\002\218\004\186\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\005\016\004H\004\187\001K\004\239\005\016\001L\000\000\000\000\001M\001N\000\000\004\199\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\004\199\000\000\000\000\000\000\004\239\000\000\004E\000\000\004F\004G\002\169\000\000\004H\001e\000\000\000\000\000\000\000\000\000\000\000\000\004\220\004K\000\000\004\183\002k\000\000\004\187\000\000\000\000\000\000\004\241\000\000\000\000\004\220\000\000\000\000\004\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\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\011\000\000\005\r\000\000\000\000\000\000\004\220\000\000\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\004\239\002\218\004\186\000\000\000\000\000\000\000\000\005\026\000\000\005\r\000\000\000\000\000\000\004\239\000\000\004\184\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\005\014\000\000\002\218\004\186\005\016\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\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\239\000\000\004\241\004E\005\016\004F\004G\002\169\004E\004H\004F\004G\002\169\000\000\004H\004\241\000\000\004K\000\000\004\183\002k\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\199\000\000\005*\000\000\005\r\004\199\000\000\000\000\000\000\000\000\004\184\000\000\000\000\000\000\000\000\0055\000\000\005\r\004\241\005\014\000\000\002\218\004\186\004\184\004E\000\000\004F\004G\002\169\000\000\004H\000\000\005\014\004\220\002\218\004\186\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\005\016\000\000\000\000\005@\000\000\005\r\004\199\000\000\000\000\000\000\000\000\004\184\000\000\005\016\000\000\004E\000\000\004F\004G\002\169\005\014\004H\002\218\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\004\199\004\239\000\000\000\000\005\016\000\000\004\239\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\004K\000\000\004\183\002k\000\000\004K\000\000\004\183\002k\000\000\004E\000\000\004F\004G\002\169\004\220\004H\000\000\000\000\002\171\000\000\003|\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\004\241\000\000\000\000\004\239\000\000\004\241\004\199\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\201\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005K\000\000\005\r\000\000\000\000\005V\004\220\005\r\004\184\004\239\000\000\000\000\000\000\004\184\000\000\000\000\000\000\005\014\000\000\002\218\004\186\004\241\005\014\000\000\002\218\004\186\004K\000\000\004\183\002k\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\005\016\000\000\000\000\002\190\000\000\005\016\000\000\004\187\005a\004E\005\r\004F\004G\002\169\004\241\004H\004\184\004\199\000\000\000\000\002\191\004\239\000\000\002k\000\000\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\023\004K\004\194\004\183\002k\000\000\000\000\000\000\000\000\000\000\005l\000\000\005\r\004\220\000\000\000\000\000\000\005\016\004\184\000\000\004E\000\000\004F\004G\002\169\000\000\004H\005\014\001\024\002\218\004\186\000\000\0014\0015\000\000\004\241\001\014\000\000\000\000\000\000\004\187\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\004\199\000\000\000\000\000\000\000\000\000\000\005\016\000\000\002\216\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\002\217\005w\002\218\005\r\004\199\000\000\000\000\004\239\000\000\004\184\000\000\004E\000\000\004F\004G\002\169\004\220\004H\005\014\000\000\002\218\004\186\000\000\000\000\004K\000\000\004\183\002k\000\000\004J\000\000\004\187\001K\000\000\000\000\001L\000\000\004\220\001M\001N\000\000\004\199\000\000\000\000\000\000\000\000\004K\005\016\004\183\002k\004E\000\000\004F\004G\002\169\000\000\004H\000\000\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\000\000\004\187\000\000\000\000\000\000\004\220\000\000\000\000\004\239\000\000\000\000\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\130\000\000\005\r\004K\000\000\004\183\002k\004\239\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\004\220\000\000\004K\000\000\004\183\002k\000\000\004E\004\184\004F\004G\002\169\000\000\004H\000\000\004\241\000\000\004\185\000\000\002\218\004\186\000\000\004\239\000\000\005\016\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\004\199\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\005\141\000\000\005\r\000\000\000\000\000\000\000\000\000\000\004\184\000\000\000\000\000\000\000\000\004\239\000\000\000\000\000\000\005\014\000\000\002\218\004\186\005\152\004\220\005\r\000\000\004\241\000\000\000\000\000\000\004\184\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\005\016\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\005\163\000\000\005\r\000\000\000\000\000\000\004\241\000\000\004\184\005\016\000\000\004\187\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\004\199\000\000\000\000\000\000\004\239\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\005\174\000\000\005\r\004K\000\000\004\183\002k\005\016\004\184\000\000\000\000\004\187\000\000\000\000\000\000\004\220\000\000\005\014\000\000\002\218\004\186\004\199\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\016\000\000\004\187\004E\000\000\004F\004G\002\169\004\220\004H\000\000\000\000\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\005\185\000\000\005\r\000\000\000\000\000\000\004\239\000\000\004\184\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\004\220\000\000\004K\000\000\004\183\002k\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\220\000\000\000\000\004\239\005\016\000\000\004\187\004E\000\000\004F\004G\002\169\000\000\004H\000\000\004\241\004\199\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\199\000\000\000\000\004\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\196\004\220\005\r\000\000\000\000\000\000\004\241\000\000\004\184\004K\000\000\004\183\002k\004\239\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\004\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\005\207\000\000\005\r\000\000\004\241\000\000\000\000\005\016\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\004\239\000\000\004\241\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\209\000\000\005\218\000\000\005\r\004K\000\000\004\183\002k\004\239\004\184\005\016\000\000\000\000\004E\000\000\004F\004G\002\169\005\014\004H\002\218\004\186\005\229\000\000\005\r\004K\000\000\004\183\002k\000\000\004\184\000\000\000\000\004\187\000\000\000\000\000\000\000\000\004\241\005\014\000\000\002\218\004\186\004\199\000\000\000\000\000\000\005\016\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\016\000\000\004\187\005\240\000\000\005\r\000\000\000\000\004\220\000\000\000\000\004\184\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\005\251\000\000\005\r\000\000\000\000\001\023\000\000\000\000\004\184\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\005\014\004H\002\218\004\186\004\220\000\000\000\000\000\000\005\016\000\000\000\000\000\000\000\000\000\000\000\000\004\187\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\004\199\000\000\000\000\004\239\005\016\002\167\000\000\000\000\006(\002\169\000\000\002\170\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\004K\004H\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\171\004\220\002\198\004\187\002\183\002\184\002\189\000\000\004\239\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\000\000\000\000\004K\000\000\004\183\002k\000\000\001K\000\000\000\000\001L\000\000\002\199\001M\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\000\000\002\200\002\246\006\006\000\000\005\r\000\000\004\241\000\000\000\000\004\239\004\184\000\000\001e\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000n\000\000\000\000\000\000\001\019\001\020\001\021\000\000\006\025\001\022\005\r\000\000\001\217\002\203\000\000\000\000\004\184\005\016\000\000\000\000\000\000\000\000\000\000\004\239\000\000\005\014\000\000\002\218\004\186\004\241\002\191\000\000\000\000\002k\000\000\004E\000\000\004F\004G\002\169\004K\004H\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\016\004\187\000\000\004E\000\000\004F\004G\002\169\006$\004H\005\r\004\199\000\000\000\000\002\205\000\000\004\184\000\000\000\000\000\000\004\241\000\000\000\000\004\187\000\000\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\004\199\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\004\220\004H\000\000\000\000\000\000\000\000\000\000\002\216\000\000\007\003\005\016\005\r\001\023\000\000\000\000\004\187\002\223\004\184\002\218\000\000\000\000\000\000\004\220\000\000\000\000\004\199\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\000\000\000\000\000\000\005\016\000\000\000\000\004\220\000\000\000\000\004\239\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\004\239\000\000\004\187\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\004\199\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\004\187\000\000\000\000\000\000\000\000\001K\004\241\000\000\001L\000\000\004\199\001M\001N\004\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\004\241\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\007\017\001e\005\r\000\000\004\220\000\000\000\000\000\000\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\007\031\000\000\005\r\004\241\000\000\000\000\000\000\004E\004\184\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\004\239\000\000\005\016\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007.\004\199\005\r\004K\000\000\004\183\002k\004\239\004\184\000\000\005\016\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\004E\000\000\004F\004G\002\169\004\220\004H\000\000\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\016\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\241\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007<\000\000\005\r\000\000\000\000\000\000\000\000\004E\004\184\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\005\014\000\000\002\218\004\186\007J\004\220\005\r\000\000\004\239\000\000\004\187\000\000\004\184\004E\000\000\004F\004G\002\169\000\000\004H\004\199\005\014\000\000\002\218\004\186\004K\000\000\004\183\002k\005\016\000\000\000\000\000\000\004\187\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\004\199\000\000\000\000\000\000\000\000\000\000\000\000\005\016\000\000\000\000\004\220\000\000\004\187\000\000\000\000\004E\004\241\004F\004G\002\169\000\000\004H\004\199\004\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\220\000\000\004\187\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\004\199\000\000\000\000\000\000\007Z\000\000\005\r\000\000\000\000\000\000\004\220\000\000\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\004\239\000\000\000\000\004\241\000\000\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\004\239\005\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\007h\000\000\005\r\000\000\004K\000\000\004\183\002k\004\184\004\239\000\000\000\000\000\000\000\000\000\000\004\241\000\000\005\014\000\000\002\218\004\186\000\000\001\019\001\020\001\021\000\000\004K\001\022\004\183\002k\001\225\000\000\004\239\004E\000\000\004F\004G\002\169\004\241\004H\000\000\000\000\000\000\000\000\000\000\000\000\005\016\000\000\007v\004K\005\r\004\183\002k\004\187\000\000\004E\004\184\004F\004G\002\169\004\241\004H\000\000\004\199\000\000\005\014\000\000\002\218\004\186\000\000\000\000\007\130\000\000\005\r\000\000\000\000\000\000\000\000\004E\004\184\004F\004G\002\169\004\241\004H\004\209\000\000\000\000\005\014\000\000\002\218\004\186\000\000\007\207\005\016\005\r\004\220\000\000\004\187\000\000\000\000\004\184\000\000\000\000\000\000\000\000\000\000\000\000\004\199\000\000\005\014\000\000\002\218\004\186\000\000\000\000\007\191\005\016\005\r\000\000\000\000\000\000\000\000\004E\004\184\004F\004G\002\169\001\023\004H\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\005\016\000\000\004\220\000\000\004\187\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\004\199\004H\000\000\001\024\004\239\000\000\000\000\0014\0015\005\016\000\000\001\014\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\004\199\004J\000\000\000\000\000\000\000\000\000\000\004E\004\220\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\004\239\000\000\000\000\004\187\000\000\000\000\004\241\000\000\000\000\004\220\000\000\000\000\000\000\004\199\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\000\000\000\000\000\000\000\000\007\206\000\000\005\r\000\000\000\000\000\000\004\239\004\220\004\184\000\000\000\000\000\000\004\241\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\001e\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\004\184\004\239\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\185\000\000\002\218\004\186\000\000\000\000\007\218\005\016\005\r\004K\000\000\004\183\002k\000\000\004\184\000\000\000\000\000\000\004\241\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\004\239\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\004\241\000\000\000\000\004K\000\000\004\183\002k\000\000\007\246\005\016\005\r\000\000\000\000\004\187\000\000\000\000\004\184\000\000\004E\000\000\004F\004G\002\169\004\199\004H\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\b\020\000\000\005\r\000\000\004\241\004\187\000\000\000\000\004\184\000\000\000\000\000\000\000\000\000\000\000\000\004\199\000\000\005\014\000\000\002\218\004\186\005\016\004E\004\220\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b%\000\000\005\r\000\000\000\000\004\187\000\000\000\000\004\184\005\016\000\000\004\220\000\000\000\000\000\000\004\199\000\000\005\014\000\000\002\218\004\186\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\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\187\000\000\000\000\000\000\005\016\004\239\004\220\000\000\000\000\000\000\004\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\004\239\000\000\000\000\002\167\000\000\000\000\002\168\002\169\004E\002\170\004F\004G\002\169\004\220\004H\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\004\241\000\000\004\187\000\000\002\171\000\000\003\142\000\000\002\183\002\184\002\189\004\239\004\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\004\241\000\000\000\000\004K\000\000\004\183\002k\000\000\b2\000\000\005\r\000\000\000\000\000\000\000\000\000\000\004\184\000\000\000\000\000\000\004\220\000\000\000\000\004\239\000\000\005\014\000\000\002\218\004\186\000\000\000\000\000\000\000\000\b?\000\000\005\r\000\000\004\241\000\000\000\000\004K\004\184\004\183\002k\000\000\004E\000\000\004F\004G\002\169\005\014\004H\002\218\004\186\005\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\187\000\000\000\000\000\000\000\000\bK\000\000\005\r\000\000\004\241\004\199\002\190\000\000\004\184\005\016\000\000\004\239\004E\000\000\004F\004G\002\169\005\014\004H\002\218\004\186\000\000\000\000\002\191\000\000\000\000\002k\000\000\004K\000\000\004\183\002k\004\187\000\000\000\000\000\000\000\000\bl\004\220\005\r\000\000\000\000\004\199\000\000\000\000\004\184\005\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\000\000\001\019\001\020\001\021\004\241\000\000\001\022\000\000\004E\001\027\004F\004G\002\169\000\000\004H\000\000\001)\004\220\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\016\000\000\000\000\004\187\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\\\004\199\005\r\002\216\004\239\000\000\000\000\000\000\004\184\000\000\000\000\000\000\002\217\000\000\002\218\000\000\000\000\005\014\000\000\002\218\004\186\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\220\000\000\000\000\000\000\000\000\000\000\000\000\004\239\000\000\000\000\000\000\000\000\005\016\000\000\000\000\000\000\000\000\001'\000\000\000\000\000\000\004\241\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001>\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\0115\000\000\000\000\000\000\bk\000\000\005\r\000\000\004\241\000\000\000\000\004\239\004\184\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\005\014\001\014\002\218\004\186\000\000\000\000\000\000\004K\000\000\004\183\002k\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\0115\bw\000\000\005\r\000\000\000\000\000\000\000\000\000\000\004\184\005\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\005\014\000\000\002\218\004\186\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\001J\001\022\002\167\0117\0115\002\168\002\169\000\000\002\170\001K\000\000\005\016\001L\000\000\000\000\001M\001N\000\000\000\000\tu\000\000\005\r\001\023\000\000\000\000\000\000\000\000\004\184\000\000\002\171\000\000\003\155\000\000\002\183\002\184\002\189\005\014\000\000\002\218\004\186\000\000\000\000\000\000\0117\001e\000\000\000\000\000\000\000\000\t\025\011:\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\001\017\000\000\000\000\001\023\000\000\000\000\005\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\0117\000\000\000\000\000\000\000\000\000\000\000\000\011:\000\000\000\000\004\187\0014\0015\000\000\000\000\001\014\001\017\000\000\000\000\001\023\004\199\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\0115\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001K\000\000\000\000\011=\000\000\002\190\001M\001N\000\000\011:\000\000\000\000\000\000\0014\0015\004\220\000\000\001\014\001\017\n\137\000\000\011@\002\191\011?\000\000\002k\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\001e\001\022\000\000\000\000\0115\001K\000\000\000\000\011=\000\000\000\000\001M\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\137\000\000\011>\000\000\011?\000\000\000\000\000\000\000\000\000\000\000\000\0117\000\000\000\000\000\000\000\000\001e\004\239\000\000\000\000\000\000\001K\000\000\000\000\011=\000\000\000\000\001M\001N\000\000\001\023\000\000\000\000\000\000\004K\000\000\004\183\002k\002\216\000\000\n\137\000\000\011Z\000\000\011?\000\000\000\000\002\217\000\000\002\218\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\011:\0117\000\000\000\000\0014\0015\000\000\000\000\001\014\001\017\004\241\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\011\251\000\000\005\r\000\000\000\000\011:\000\000\000\000\004\184\0014\0015\004\211\000\000\001\014\001\017\000\000\000\000\005\014\000\000\002\218\004\186\000\000\000\000\002\167\000\000\000\000\002\168\002\169\001K\002\170\000\000\011=\000\000\000\000\001M\001N\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\005\016\n\137\000\000\012\165\002\171\011?\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\001K\000\000\000\000\011=\000\000\000\000\001M\001N\000\000\002\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\n\137\000\000\012\173\000\000\011?\002\199\000\000\000\000\002\200\r\170\004J\r\172\000\000\000\000\000\000\000\000\001e\000\000\000\000\000\000\000\000\000\000\000\000\002\200\011\213\000\000\000\000\004K\002\167\004\183\002k\002\168\002\169\000\000\002\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\000\002\167\000\000\002\203\002\168\002\169\002\171\002\170\002\198\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\002\203\002\170\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\191\000\000\000\000\002k\000\000\002\171\002\199\002\198\000\000\002\183\002\184\002\189\000\000\000\000\001\019\001\020\001\021\000\000\004\184\001\022\000\000\000\000\001\228\002\205\002\200\011\199\000\000\004\185\002\199\002\218\004\186\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\003\026\000\000\000\000\000\000\000\000\000\000\002\200\003\030\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\200\003\028\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\002\223\000\000\002\218\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\002\191\002\218\000\000\002k\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\002\203\002\170\000\000\002\167\000\000\002\191\002\168\002\169\002k\002\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\001\023\000\000\002k\002\205\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\001\019\001\020\001\021\000\000\002\205\001\022\000\000\001\024\001\232\000\000\000\000\0014\0015\000\000\000\000\001\014\002\205\000\000\002\199\002\216\000\000\000\000\000\000\000\000\000\000\000\000\002\199\000\000\002\223\000\000\002\218\000\000\000\000\000\000\000\000\000\000\002\200\003\025\000\000\000\000\000\000\002\216\000\000\000\000\002\200\003\014\000\000\000\000\000\000\000\000\002\223\000\000\002\218\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001K\000\000\002\203\001L\000\000\002\167\001M\001N\002\168\002\169\002\203\002\170\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\191\002\167\000\000\002k\002\168\002\169\000\000\002\170\002\191\001\023\000\000\002k\000\000\002\171\000\000\002\198\001e\002\183\002\184\002\189\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\001\024\002\205\000\000\000\000\0014\0015\000\000\000\000\001\014\002\205\000\000\002\199\000\000\000\000\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\199\000\000\000\000\002\200\002\201\000\000\000\000\000\000\000\000\000\000\002\200\002\204\002\216\000\000\000\000\000\000\000\000\000\000\002\200\002\220\002\216\002\223\000\000\002\218\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002\218\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001R\000\000\001K\000\000\002\203\001L\000\000\001T\001M\001N\000\000\002\203\000\000\000\000\002\167\000\000\000\000\002\168\002\169\002\203\002\170\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\191\002\167\000\000\002k\002\168\002\169\000\000\002\170\002\191\001e\000\000\002k\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\171\000\000\002\198\002\205\002\183\002\184\002\189\000\000\000\000\000\000\002\205\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\002\199\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\002\199\000\000\000\000\002\200\002\222\002\216\000\000\001\023\000\000\000\000\000\000\001U\002\216\000\000\002\223\000\000\002\218\000\000\002\200\003\011\002\216\002\223\000\000\002\218\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002\218\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\002\167\001\014\000\000\002\168\002\169\002\203\002\170\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\002\203\000\000\002\191\000\000\000\000\002k\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\002\191\000\000\002\171\002k\002\198\000\000\002\183\002\184\002\189\000\000\000\000\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\205\000\000\002\199\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\002\199\002\205\000\000\000\000\000\000\000\000\002\200\003\003\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\002\200\003\b\000\000\000\000\000\000\002\216\000\000\001e\000\000\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002\218\002\171\000\000\002\198\002\216\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\223\000\000\002\218\002\203\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\002\203\000\000\000\000\000\000\000\000\002\191\000\000\003~\002k\000\000\000\000\000\000\000\000\000\000\000\000\002\167\000\000\002\191\002\168\002\169\002k\002\170\000\000\000\000\000\000\003\127\003\131\000\000\001\243\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\002\171\002\205\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\002\167\000\000\002\199\002\168\002\169\002\216\002\170\000\000\000\000\000\000\000\000\000\000\002\191\000\000\002\223\002k\002\218\002\216\000\000\003~\002\200\003\129\000\000\001\023\000\000\000\000\002\223\002\171\002\218\002\198\000\000\002\183\002\184\002\189\000\000\000\000\002\167\003\144\003\131\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\000\000\000\000\003\132\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\003~\000\000\002\171\002\203\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\003\157\003\131\002\191\002\203\000\000\002k\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\223\003~\002\218\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\003\171\003\131\000\000\000\000\002\205\000\000\000\000\001K\000\000\002\203\001L\000\000\000\000\001M\001N\000\000\000\000\000\000\002\171\000\000\002\198\003\132\002\183\002\184\002\189\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\002\216\001t\0111\000\000\002\203\000\000\000\000\000\000\000\000\002\223\000\000\002\218\002\199\000\000\000\000\000\000\000\000\000\000\002\216\000\000\000\000\002\191\003\132\000\000\002k\000\000\000\000\002\223\000\000\002\218\002\200\003\179\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\003\132\000\000\002\216\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\223\000\000\002\218\000\000\000\000\002\203\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\002\216\002\199\000\000\000\000\001\023\000\000\000\000\000\000\000\000\002\223\000\000\002\218\000\000\000\000\000\000\000\000\002\199\000\000\000\000\002\200\003\207\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\001\024\002\205\002\200\004\176\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\167\000\000\002\203\002\168\002\169\000\000\002\170\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\203\002\223\002\191\002\218\003~\002k\000\000\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\191\000\000\000\000\002k\000\000\006\183\003\131\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\205\000\000\000\000\000\000\000\000\001e\000\000\002\167\002\200\006\185\002\168\002\169\002\203\002\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\002\223\002k\002\218\002\171\000\000\003\159\002\216\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\002\223\002\167\002\218\000\000\002\168\002\169\002\203\002\170\002\167\000\000\000\000\002\168\002\169\000\000\002\170\002\167\000\000\000\000\002\168\002\169\003\132\002\170\000\000\002\191\000\000\000\000\002k\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\171\000\000\002\198\000\000\002\183\002\184\002\189\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\216\000\000\000\000\002\205\000\000\002\199\000\000\000\000\000\000\002\223\000\000\002\218\002\199\000\000\000\000\000\000\000\000\000\000\000\000\002\199\000\000\000\000\000\000\002\200\b@\000\000\000\000\002\190\000\000\000\000\002\200\b\026\000\000\000\000\000\000\000\000\000\000\002\200\b'\000\000\002\216\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\002\223\000\000\002\218\000\000\000\000\000\000\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\203\000\000\000\000\001\019\001\020\001\021\002\167\002\203\001\022\002\168\002\169\001X\002\170\000\000\002\203\000\000\000\000\002\191\001Z\000\000\002k\000\000\000\000\000\000\002\191\000\000\000\000\002k\000\000\000\000\000\000\002\191\000\000\002\171\002k\002\198\000\000\002\183\002\184\002\189\000\000\000\000\001\019\001\020\001\021\002\167\000\000\001\022\002\168\002\169\001_\002\170\002\216\000\000\000\000\002\205\000\000\001a\000\000\000\000\000\000\002\217\002\205\002\218\000\000\000\000\000\000\000\000\002\199\002\205\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\200\b4\000\000\000\000\001'\000\000\002\216\000\000\000\000\000\000\000\000\000\000\000\000\002\216\000\000\002\223\000\000\002\218\000\000\000\000\002\216\002\199\002\223\001\023\002\218\000\000\000\000\001[\000\000\002\223\000\000\002\218\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\200\n#\000\000\000\000\001'\002\203\000\000\002\167\000\000\000\000\002\168\002\169\001\024\002\170\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\002\191\001\023\000\000\002k\000\000\001b\000\000\000\000\000\000\000\000\000\000\000\000\002\171\000\000\002\198\000\000\002\183\002\184\002\189\000\000\000\000\000\000\002\203\000\000\000\000\000\000\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\002\205\002\191\000\000\000\000\002k\001\019\001\020\001\021\000\000\002\199\001\022\000\000\000\000\001x\000\000\000\000\000\000\001\019\001\020\001\021\001z\000\000\001\022\001K\000\000\001\160\001L\002\200\011\212\001M\001N\000\000\001\162\000\000\000\000\000\000\000\000\002\216\000\000\002\205\000\000\000\000\001\019\001\020\001\021\000\000\002\223\001\022\002\218\000\000\001\168\001\019\001\020\001\021\000\000\000\000\001\022\001\170\001e\001\176\000\000\000\000\001K\000\000\000\000\001L\001\178\000\000\001M\001N\000\000\002\203\000\000\000\000\000\000\000\000\002\216\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\002\223\001\022\002\218\002\191\001\184\000\000\002k\001'\000\000\000\000\000\000\001\186\001e\000\000\000\000\000\000\001\019\001\020\001\021\001'\000\000\001\022\000\000\000\000\001\197\000\000\001\023\000\000\000\000\000\000\001{\001\199\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\002\205\001\163\000\000\001'\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001'\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\001\023\000\000\000\000\001\024\001\171\000\000\000\000\0014\0015\001\023\000\000\001\014\000\000\001\179\000\000\002\216\000\000\000\000\000\000\000\000\001'\000\000\000\000\000\000\002\223\000\000\002\218\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\001\024\000\000\001\023\001'\0014\0015\001\187\000\000\001\014\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\205\000\000\000\000\000\000\000\000\001\023\000\000\001\207\001K\001\200\000\000\001L\000\000\001\024\001M\001N\000\000\0014\0015\000\000\001K\001\014\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\000\000\000\000\000\000\001\024\001\019\001\020\001\021\0014\0015\001\022\000\000\001\014\001\213\001e\000\000\001K\000\000\000\000\001L\001\215\000\000\001M\001N\000\000\001K\001e\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\001\221\000\000\000\000\001'\001e\000\000\000\000\001\223\001K\000\000\000\000\001L\000\000\001e\001M\001N\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\001\208\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\002\167\000\000\000\000\002\168\002\169\001e\002\170\001'\000\000\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\000\000\001e\001\023\002\171\004\160\003\212\001\216\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\002\167\001'\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\001\023\000\000\001\014\000\000\001\224\000\000\000\000\002\171\004\160\003\212\000\000\002\183\002\184\002\189\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001K\000\000\000\000\001L\000\000\001\024\001M\001N\000\000\0014\0015\000\000\000\000\001\014\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\012\007\000\000\000\000\000\000\000\000\000\000\000\000\012\t\000\000\000\000\000\000\000\000\001e\000\000\000\000\000\000\000\000\000\000\002\190\001K\000\000\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\002\191\001\022\000\000\002k\012\015\000\000\000\000\001\019\001\020\001\021\000\000\012\017\001\022\000\000\000\000\012\235\000\000\000\000\001K\001e\000\000\001L\012\237\002\190\001M\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\011\021\002\191\012\243\000\000\002k\001'\000\000\000\000\000\000\012\245\001\019\001\020\001\021\000\000\001e\001\022\000\000\000\000\012\251\000\000\000\000\000\000\000\000\000\000\001\023\012\253\000\000\000\000\012\n\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\216\000\000\000\000\000\000\011\021\000\000\000\000\000\000\001'\002\217\000\000\002\218\000\000\000\000\000\000\000\000\001\024\000\000\000\000\001'\0014\0015\000\000\000\000\001\014\011\"\000\000\001\023\000\000\000\000\000\000\012\018\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\002\216\000\000\012\238\000\000\000\000\001'\000\000\000\000\000\000\002\217\000\000\002\218\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\001'\000\000\001\014\001\023\011!\001\024\000\000\012\246\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\012\254\000\000\000\000\001K\000\000\000\000\001L\000\000\001\024\001M\001N\000\000\0014\0015\000\000\000\000\001\014\000\000\001\019\001\020\001\021\000\000\000\000\001\022\001\024\000\000\r\003\000\000\0014\0015\000\000\000\000\001\014\r\005\000\000\001\019\001\020\001\021\001e\000\000\001\022\000\000\001K\r\016\000\000\001L\000\000\000\000\001M\001N\r\018\000\000\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\r\024\000\000\000\000\000\000\000\000\000\000\000\000\r\026\001e\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\000\000\001e\000\000\000\000\000\000\000\000\000\000\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\001'\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\001e\001\022\000\000\000\000\r \000\000\000\000\000\000\001'\000\000\001\023\r\"\000\000\000\000\r\006\000\000\001e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\r\019\000\000\000\000\001'\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\001\024\000\000\r\027\000\000\0014\0015\000\000\000\000\001\014\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\r(\000\000\000\000\000\000\000\000\000\000\000\000\r*\000\000\001\024\000\000\001'\000\000\0014\0015\000\000\000\000\001\014\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\r2\000\000\000\000\000\000\001\023\000\000\000\000\r4\r#\000\000\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001K\000\000\000\000\001L\001\024\000\000\001M\001N\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\000\000\000\000\001e\000\000\000\000\000\000\001\019\001\020\001\021\001'\001K\001\022\000\000\001L\r:\000\000\001M\001N\000\000\001e\000\000\r<\000\000\000\000\000\000\000\000\000\000\000\000\001\023\000\000\000\000\000\000\r+\000\000\000\000\001'\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\rD\001e\000\000\000\000\000\000\000\000\000\000\rF\000\000\000\000\001\023\000\000\001\024\000\000\r5\001K\0014\0015\001L\000\000\001\014\001M\001N\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\rL\000\000\000\000\000\000\001\024\000\000\000\000\rN\0014\0015\000\000\000\000\001\014\000\000\000\000\001'\001e\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\0118\000\000\000\000\000\000\001\023\000\000\000\000\000\000\r=\001\019\001\020\001\021\000\000\000\000\001\022\001'\000\000\012\011\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\000\000\000\000\000\000\001\024\000\000\001\023\000\000\0014\0015\rG\000\000\001\014\000\000\000\000\000\000\000\000\001K\000\000\000\000\001L\001'\000\000\001M\001N\000\000\001e\002\167\000\000\000\000\002\168\002\169\000\000\002\170\001\024\000\000\000\000\000\000\0014\0015\001\023\000\000\001\014\000\000\rO\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001e\000\000\002\171\000\000\003\169\000\000\002\183\002\184\002\189\002\167\000\000\000\000\002\168\002\169\000\000\002\170\001\024\000\000\001\023\000\000\0014\0015\000\000\001K\001\014\000\000\001L\000\000\000\000\001M\001N\000\000\001\019\001\020\001\021\001\023\002\171\001\022\006\181\000\000\002\183\002\184\002\189\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\001K\001\014\000\000\001L\000\000\001e\001M\001N\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\002\167\000\000\001\014\002\168\002\169\000\000\002\170\000\000\002\167\000\000\000\000\002\168\002\169\000\000\002\170\000\000\000\000\000\000\001K\001e\000\000\001L\000\000\000\000\001M\001N\000\000\002\171\000\000\011\197\002\190\002\183\002\184\002\189\000\000\002\171\000\000\011\210\000\000\002\183\002\184\002\189\000\000\000\000\001\019\001\020\001\021\002\191\001K\001\022\002k\001L\012\019\001e\001M\001N\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\002\190\001K\000\000\000\000\001L\001\023\000\000\001M\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\191\000\000\001e\002k\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\024\000\000\000\000\001e\0014\0015\000\000\000\000\001\014\000\000\000\000\012\222\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\012\239\000\000\000\000\000\000\000\000\002\216\000\000\002\190\000\000\000\000\000\000\000\000\000\000\000\000\002\217\002\190\002\218\000\000\001\019\001\020\001\021\000\000\000\000\001\022\002\191\000\000\012\247\002k\000\000\000\000\000\000\000\000\002\191\001\023\000\000\002k\001\019\001\020\001\021\002\216\000\000\001\022\000\000\000\000\012\255\001\023\000\000\000\000\002\217\000\000\002\218\001K\000\000\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\001\024\001\019\001\020\001\021\0014\0015\001\022\000\000\001\014\r\007\000\000\012\225\000\000\012\223\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\023\002\216\000\000\001\019\001\020\001\021\000\000\000\000\001\022\002\216\002\217\r\030\002\218\000\000\001\019\001\020\001\021\000\000\002\217\001\022\002\218\000\000\r\020\000\000\000\000\000\000\001\023\000\000\001\024\000\000\000\000\000\000\0014\0015\001K\000\000\001\014\001L\000\000\000\000\001M\001N\000\000\000\000\001\023\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\001\024\001\019\001\020\001\021\0014\0015\001\022\000\000\001\014\r\028\000\000\001\019\001\020\001\021\000\000\001e\001\022\000\000\001\024\r$\000\000\000\000\0014\0015\000\000\000\000\001\014\012\223\001\023\000\000\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\r,\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\001\023\001\024\001\019\001\020\001\021\0014\0015\001\022\000\000\001\014\000\000\001\023\000\000\000\000\000\000\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\000\000\001e\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\001K\000\000\001\014\001L\r0\001\024\001M\001N\000\000\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\001e\001\023\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\001\023\000\000\r6\000\000\001\019\001\020\001\021\001e\000\000\001\022\001K\000\000\r>\001L\000\000\000\000\001M\001N\001\024\000\000\000\000\000\000\0014\0015\001\023\000\000\001\014\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\001K\000\000\000\000\001L\000\000\000\000\001M\001N\001e\001\023\000\000\001K\000\000\000\000\001L\001\024\000\000\001M\001N\0014\0015\000\000\000\000\001\014\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\000\000\000\000\r.\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\001e\000\000\001\019\001\020\001\021\000\000\001K\001\022\000\000\001L\rH\000\000\001M\001N\000\000\rB\001K\001\023\000\000\001L\000\000\000\000\001M\001N\001\019\001\020\001\021\001\023\000\000\001\022\000\000\000\000\rP\001\019\001\020\001\021\000\000\000\000\001\022\000\000\001K\001e\000\000\001L\000\000\001\024\001M\001N\000\000\0014\0015\001e\000\000\001\014\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\001K\001\014\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\000\000\000\000\000\000\001e\000\000\000\000\000\000\000\000\000\000\000\000\001\019\001\020\001\021\001\023\000\000\001\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001t\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\023\001\019\001\020\001\021\000\000\001\024\001\022\000\000\001K\0014\0015\001L\000\000\001\014\001M\001N\000\000\000\000\001K\000\000\000\000\001L\001\023\000\000\001M\001N\000\000\000\000\001\024\000\000\000\000\001\023\0014\0015\000\000\000\000\001\014\000\000\000\000\001\019\001\020\001\021\000\000\001e\001\022\000\000\000\000\000\000\000\000\000\000\001\024\000\000\000\000\001e\0014\0015\000\000\000\000\001\014\001\024\001\019\001\020\001\021\0014\0015\001\022\000\000\001\014\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\001K\000\000\000\000\001L\001\023\000\000\001M\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\001K\000\000\000\000\001L\000\000\000\000\001M\001N\001\023\001\024\000\000\000\000\001t\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\000\000\001K\004\234\000\000\001L\000\000\000\000\001M\001N\000\000\001K\000\000\000\000\001L\001e\001\024\001M\001N\000\000\0014\0015\000\000\000\000\001\014\000\000\001\023\004E\000\000\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\001e\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\001\241\001\023\000\000\000\000\000\000\000\000\000\000\000\000\001\024\000\000\001\023\004\240\0014\0015\001K\000\000\001\014\001L\000\000\000\000\001M\001N\004E\000\000\004F\004G\002\169\000\000\004H\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\001\024\000\000\000\000\001K\0014\0015\001L\000\000\001\014\001M\001N\001\237\000\000\004J\005\015\001\019\001\020\001\021\000\000\004E\001\022\004F\004G\002\169\000\000\004H\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\001i\000\000\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\006\020\004E\000\000\004F\004G\002\169\004E\004H\004F\004G\002\169\000\000\004H\001K\000\000\000\000\001L\000\000\004J\001M\001N\000\000\001K\000\000\000\000\001L\000\000\001s\001M\001N\000\000\007\168\000\000\000\000\000\000\004K\007\241\004\183\002k\000\000\000\000\000\000\001\019\001\020\001\021\000\000\000\000\001\022\001r\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\184\004\166\000\000\004J\000\000\000\000\000\000\000\000\000\000\004\185\000\000\002\218\004\186\001\019\001\020\001\021\001\023\000\000\001\022\000\000\004K\000\000\004\183\002k\000\000\001\019\001\020\001\021\000\000\000\000\001\022\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004J\000\000\000\000\000\000\000\000\000\000\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\004\184\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\004\185\000\000\002\218\004\186\000\000\000\000\004J\001\019\001\020\001\021\000\000\004J\001\022\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\004K\000\000\004\183\002k\000\000\004K\001\023\004\183\002k\004\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\185\000\000\002\218\004\186\004E\tZ\004F\004G\002\169\000\000\004H\001K\000\000\000\000\001L\001\023\001\024\001M\001N\000\000\0014\0015\000\000\000\000\001\014\000\000\004\184\001\023\000\000\000\000\000\000\000\000\000\000\000\000\011\226\004\185\000\000\002\218\004\186\000\000\000\000\000\000\000\000\001\024\000\000\000\000\t'\0014\0015\000\000\000\000\001\014\000\000\000\000\000\000\001\024\000\000\004\184\000\000\0014\0015\000\000\004\184\001\014\000\000\000\000\004\185\000\000\002\218\004\186\000\000\004\185\001\023\002\218\004\186\000\000\000\000\000\000\000\000\000\000\004E\000\000\004F\004G\002\169\000\000\004H\001K\000\000\000\000\001L\000\000\000\000\001M\001N\000\000\000\000\000\000\000\000\004J\001\024\000\000\000\000\000\000\0014\0015\000\000\000\000\001\014\000\000\011\246\000\000\000\000\000\000\001K\000\000\004K\001L\004\183\002k\001M\001N\t.\000\000\000\000\000\000\001K\000\000\004J\001L\000\000\000\000\001M\001N\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004K\000\000\004\183\002k\t,\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\000\000\000\000\000\000\000\000\000\000\000\000\000\001K\000\000\000\000\001L\000\000\000\000\001M\001N\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\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\185\000\000\002\218\004\186\004J\000\000\tB\000\000\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\184\004K\000\000\004\183\002k\000\000\000\000\000\000\000\000\004\185\000\000\002\218\004\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\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\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\184\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\185\000\000\002\218\004\186")) and semantic_action = [| @@ -1833,9 +1845,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5318 "src/ocaml/preprocess/parser_raw.mly" +# 5317 "src/ocaml/preprocess/parser_raw.mly" ( "+" ) -# 1839 "src/ocaml/preprocess/parser_raw.ml" +# 1851 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1858,9 +1870,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5319 "src/ocaml/preprocess/parser_raw.mly" +# 5318 "src/ocaml/preprocess/parser_raw.mly" ( "+." ) -# 1864 "src/ocaml/preprocess/parser_raw.ml" +# 1876 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1883,9 +1895,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4529 "src/ocaml/preprocess/parser_raw.mly" +# 4541 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 1889 "src/ocaml/preprocess/parser_raw.ml" +# 1901 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -1936,15 +1948,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 1942 "src/ocaml/preprocess/parser_raw.ml" +# 1954 "src/ocaml/preprocess/parser_raw.ml" in -# 4532 "src/ocaml/preprocess/parser_raw.mly" +# 4544 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_alias(ty, Some tyvar, None) ) -# 1948 "src/ocaml/preprocess/parser_raw.ml" +# 1960 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_ty_ in @@ -1952,15 +1964,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 1958 "src/ocaml/preprocess/parser_raw.ml" +# 1970 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4534 "src/ocaml/preprocess/parser_raw.mly" +# 4546 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 1964 "src/ocaml/preprocess/parser_raw.ml" +# 1976 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -2036,28 +2048,28 @@ module Tables = struct let name = let (_endpos__2_, _2) = (_endpos__2_inlined1_, _2_inlined1) in let _1 = -# 4232 "src/ocaml/preprocess/parser_raw.mly" +# 4206 "src/ocaml/preprocess/parser_raw.mly" ( Some _2 ) -# 2042 "src/ocaml/preprocess/parser_raw.ml" +# 2054 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2051 "src/ocaml/preprocess/parser_raw.ml" +# 2063 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos_aliased_type_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4553 "src/ocaml/preprocess/parser_raw.mly" ( let name = Option.map (fun x -> mkloc x name.loc) name.txt in mktyp ~loc:_sloc (Ptyp_alias (aliased_type, name, Some jkind)) ) -# 2061 "src/ocaml/preprocess/parser_raw.ml" +# 2073 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -2125,27 +2137,27 @@ module Tables = struct let _v = let name = let _1 = -# 4234 "src/ocaml/preprocess/parser_raw.mly" +# 4208 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 2131 "src/ocaml/preprocess/parser_raw.ml" +# 2143 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2139 "src/ocaml/preprocess/parser_raw.ml" +# 2151 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos_aliased_type_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4541 "src/ocaml/preprocess/parser_raw.mly" +# 4553 "src/ocaml/preprocess/parser_raw.mly" ( let name = Option.map (fun x -> mkloc x name.loc) name.txt in mktyp ~loc:_sloc (Ptyp_alias (aliased_type, name, Some jkind)) ) -# 2149 "src/ocaml/preprocess/parser_raw.ml" +# 2161 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -2194,30 +2206,30 @@ module Tables = struct let attrs2 = let _1 = _1_inlined2 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2200 "src/ocaml/preprocess/parser_raw.ml" +# 2212 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2209 "src/ocaml/preprocess/parser_raw.ml" +# 2221 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3437 "src/ocaml/preprocess/parser_raw.mly" +# 3418 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in mklb ~loc:_sloc false body attrs ) -# 2221 "src/ocaml/preprocess/parser_raw.ml" +# 2233 "src/ocaml/preprocess/parser_raw.ml" : (Parser_types.let_binding)) in { @@ -2241,9 +2253,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5190 "src/ocaml/preprocess/parser_raw.mly" +# 5189 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2247 "src/ocaml/preprocess/parser_raw.ml" +# 2259 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2266,9 +2278,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5191 "src/ocaml/preprocess/parser_raw.mly" +# 5190 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 2272 "src/ocaml/preprocess/parser_raw.ml" +# 2284 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2292,7 +2304,7 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined1 : (Parsetree.modalities) = Obj.magic _1_inlined1 in + let _1_inlined1 : (Parsetree.modes) = 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 @@ -2301,16 +2313,16 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4708 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 2307 "src/ocaml/preprocess/parser_raw.ml" +# 4684 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 2319 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4711 "src/ocaml/preprocess/parser_raw.mly" - (_2) -# 2313 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modalities)) +# 4688 "src/ocaml/preprocess/parser_raw.mly" + (_2) +# 2325 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modes)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2334,7 +2346,7 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in + let _1_inlined1 : (Parsetree.modalities) = 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 @@ -2343,16 +2355,100 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4672 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 2349 "src/ocaml/preprocess/parser_raw.ml" +# 4711 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 2361 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4676 "src/ocaml/preprocess/parser_raw.mly" - (_2) -# 2355 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modes)) +# 4714 "src/ocaml/preprocess/parser_raw.mly" + (_2) +# 2367 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.modalities)) + 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 = type_; + MenhirLib.EngineTypes.startp = _startpos_type__; + MenhirLib.EngineTypes.endp = _endpos_type__; + MenhirLib.EngineTypes.next = _menhir_stack; + } = _menhir_stack in + let type_ : (Parsetree.core_type) = Obj.magic type_ in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_type__ in + let _endpos = _endpos_type__ in + let _v : (Parsetree.core_type) = +# 4879 "src/ocaml/preprocess/parser_raw.mly" + ( type_ ) +# 2393 "src/ocaml/preprocess/parser_raw.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 = + let _1 = + let _1 = + let tid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1308 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 2425 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = +# 4921 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 2431 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4883 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_constr (tid, tys) ) +# 2436 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1345 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 2445 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4900 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 2451 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2365,36 +2461,61 @@ 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; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; 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 = ty; + MenhirLib.EngineTypes.startp = _startpos_ty_; + MenhirLib.EngineTypes.endp = _endpos_ty_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 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__1_ in - let _endpos = _endpos__1_inlined1_ in + let _startpos = _startpos_ty_ in + let _endpos = _endpos__1_ in let _v = - let _2 = - let _1 = _1_inlined1 in + let _1 = + let _1 = + let tid = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1308 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 2491 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = +# 4923 "src/ocaml/preprocess/parser_raw.mly" + ( [ ty ] ) +# 2497 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4883 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_constr (tid, tys) ) +# 2502 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos__1_ = _startpos_ty_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4672 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 2391 "src/ocaml/preprocess/parser_raw.ml" +# 1345 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 2512 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4693 "src/ocaml/preprocess/parser_raw.mly" - (_2) -# 2397 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modes)) +# 4900 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 2518 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -2406,21 +2527,92 @@ module Tables = struct (fun _menhir_env -> let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = type_; - MenhirLib.EngineTypes.startp = _startpos_type__; - MenhirLib.EngineTypes.endp = _endpos_type__; - 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 = _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 type_ : (Parsetree.core_type) = Obj.magic type_ 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_type__ in - let _endpos = _endpos_type__ in - let _v : (Parsetree.core_type) = -# 4882 "src/ocaml/preprocess/parser_raw.mly" - ( type_ ) -# 2423 "src/ocaml/preprocess/parser_raw.ml" - in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined1_ in + let _v = + 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 + +# 1308 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 2573 "src/ocaml/preprocess/parser_raw.ml" + + in + let tys = + let tys = + let xs = +# 264 "" + ( List.rev xs ) +# 2581 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1490 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 2586 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4927 "src/ocaml/preprocess/parser_raw.mly" + ( tys ) +# 2592 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4883 "src/ocaml/preprocess/parser_raw.mly" + ( Ptyp_constr (tid, tys) ) +# 2598 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1345 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_sloc _1 ) +# 2608 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 4900 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 2614 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -2449,35 +2641,37 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2455 "src/ocaml/preprocess/parser_raw.ml" +# 2647 "src/ocaml/preprocess/parser_raw.ml" in + let (_endpos_tid_, _startpos_tid_) = (_endpos__1_, _startpos__1_) in let tys = -# 4922 "src/ocaml/preprocess/parser_raw.mly" +# 4921 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 2461 "src/ocaml/preprocess/parser_raw.ml" +# 2654 "src/ocaml/preprocess/parser_raw.ml" in + let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in # 4886 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_constr (tid, tys) ) -# 2466 "src/ocaml/preprocess/parser_raw.ml" + ( unboxed_type _loc_tid_ tid.txt tys ) +# 2660 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2475 "src/ocaml/preprocess/parser_raw.ml" +# 2669 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4903 "src/ocaml/preprocess/parser_raw.mly" +# 4900 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2481 "src/ocaml/preprocess/parser_raw.ml" +# 2675 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -2515,246 +2709,22 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 2521 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = -# 4924 "src/ocaml/preprocess/parser_raw.mly" - ( [ ty ] ) -# 2527 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4886 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_constr (tid, tys) ) -# 2532 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos__1_ = _startpos_ty_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 2542 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 4903 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 2548 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - 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 = - 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 - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 2603 "src/ocaml/preprocess/parser_raw.ml" - - in - let tys = - let tys = - let xs = -# 264 "" - ( List.rev xs ) -# 2611 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1478 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 2616 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4928 "src/ocaml/preprocess/parser_raw.mly" - ( tys ) -# 2622 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4886 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_constr (tid, tys) ) -# 2628 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__1_inlined1_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 2638 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 4903 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 2644 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - 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 = - let _1 = - let _1 = - let tid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 2677 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_tid_, _startpos_tid_) = (_endpos__1_, _startpos__1_) in - let tys = -# 4922 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 2684 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in - -# 4889 "src/ocaml/preprocess/parser_raw.mly" - ( unboxed_type _loc_tid_ tid.txt tys ) -# 2690 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 2699 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 4903 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 2705 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.core_type)) - 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 = - let _1 = - let _1 = - let tid = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2745 "src/ocaml/preprocess/parser_raw.ml" +# 2715 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_tid_, _startpos_tid_) = (_endpos__1_, _startpos__1_) in let tys = -# 4924 "src/ocaml/preprocess/parser_raw.mly" +# 4923 "src/ocaml/preprocess/parser_raw.mly" ( [ ty ] ) -# 2752 "src/ocaml/preprocess/parser_raw.ml" +# 2722 "src/ocaml/preprocess/parser_raw.ml" in let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in -# 4889 "src/ocaml/preprocess/parser_raw.mly" +# 4886 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_type _loc_tid_ tid.txt tys ) -# 2758 "src/ocaml/preprocess/parser_raw.ml" +# 2728 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_ty_ in @@ -2762,15 +2732,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2768 "src/ocaml/preprocess/parser_raw.ml" +# 2738 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4903 "src/ocaml/preprocess/parser_raw.mly" +# 4900 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2774 "src/ocaml/preprocess/parser_raw.ml" +# 2744 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -2823,9 +2793,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2829 "src/ocaml/preprocess/parser_raw.ml" +# 2799 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_tid_, _startpos_tid_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in @@ -2834,25 +2804,25 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 2838 "src/ocaml/preprocess/parser_raw.ml" +# 2808 "src/ocaml/preprocess/parser_raw.ml" in -# 1478 "src/ocaml/preprocess/parser_raw.mly" +# 1490 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 2843 "src/ocaml/preprocess/parser_raw.ml" +# 2813 "src/ocaml/preprocess/parser_raw.ml" in -# 4928 "src/ocaml/preprocess/parser_raw.mly" +# 4927 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 2849 "src/ocaml/preprocess/parser_raw.ml" +# 2819 "src/ocaml/preprocess/parser_raw.ml" in let _loc_tid_ = (_startpos_tid_, _endpos_tid_) in -# 4889 "src/ocaml/preprocess/parser_raw.mly" +# 4886 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_type _loc_tid_ tid.txt tys ) -# 2856 "src/ocaml/preprocess/parser_raw.ml" +# 2826 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -2860,15 +2830,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2866 "src/ocaml/preprocess/parser_raw.ml" +# 2836 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4903 "src/ocaml/preprocess/parser_raw.mly" +# 4900 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2872 "src/ocaml/preprocess/parser_raw.ml" +# 2842 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -2906,20 +2876,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2912 "src/ocaml/preprocess/parser_raw.ml" +# 2882 "src/ocaml/preprocess/parser_raw.ml" in let tys = -# 4922 "src/ocaml/preprocess/parser_raw.mly" +# 4921 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 2918 "src/ocaml/preprocess/parser_raw.ml" +# 2888 "src/ocaml/preprocess/parser_raw.ml" in -# 4893 "src/ocaml/preprocess/parser_raw.mly" +# 4890 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_class (cid, tys) ) -# 2923 "src/ocaml/preprocess/parser_raw.ml" +# 2893 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos__2_ in @@ -2927,15 +2897,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 2933 "src/ocaml/preprocess/parser_raw.ml" +# 2903 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4903 "src/ocaml/preprocess/parser_raw.mly" +# 4900 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 2939 "src/ocaml/preprocess/parser_raw.ml" +# 2909 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -2980,20 +2950,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 2986 "src/ocaml/preprocess/parser_raw.ml" +# 2956 "src/ocaml/preprocess/parser_raw.ml" in let tys = -# 4924 "src/ocaml/preprocess/parser_raw.mly" +# 4923 "src/ocaml/preprocess/parser_raw.mly" ( [ ty ] ) -# 2992 "src/ocaml/preprocess/parser_raw.ml" +# 2962 "src/ocaml/preprocess/parser_raw.ml" in -# 4893 "src/ocaml/preprocess/parser_raw.mly" +# 4890 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_class (cid, tys) ) -# 2997 "src/ocaml/preprocess/parser_raw.ml" +# 2967 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_ty_ in @@ -3001,15 +2971,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3007 "src/ocaml/preprocess/parser_raw.ml" +# 2977 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4903 "src/ocaml/preprocess/parser_raw.mly" +# 4900 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3013 "src/ocaml/preprocess/parser_raw.ml" +# 2983 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -3069,9 +3039,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3075 "src/ocaml/preprocess/parser_raw.ml" +# 3045 "src/ocaml/preprocess/parser_raw.ml" in let tys = @@ -3079,24 +3049,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 3083 "src/ocaml/preprocess/parser_raw.ml" +# 3053 "src/ocaml/preprocess/parser_raw.ml" in -# 1478 "src/ocaml/preprocess/parser_raw.mly" +# 1490 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 3088 "src/ocaml/preprocess/parser_raw.ml" +# 3058 "src/ocaml/preprocess/parser_raw.ml" in -# 4928 "src/ocaml/preprocess/parser_raw.mly" +# 4927 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 3094 "src/ocaml/preprocess/parser_raw.ml" +# 3064 "src/ocaml/preprocess/parser_raw.ml" in -# 4893 "src/ocaml/preprocess/parser_raw.mly" +# 4890 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_class (cid, tys) ) -# 3100 "src/ocaml/preprocess/parser_raw.ml" +# 3070 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -3104,15 +3074,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3110 "src/ocaml/preprocess/parser_raw.ml" +# 3080 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4903 "src/ocaml/preprocess/parser_raw.mly" +# 4900 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3116 "src/ocaml/preprocess/parser_raw.ml" +# 3086 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -3157,15 +3127,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3163 "src/ocaml/preprocess/parser_raw.ml" +# 3133 "src/ocaml/preprocess/parser_raw.ml" in -# 4897 "src/ocaml/preprocess/parser_raw.mly" +# 4894 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_open (mod_ident, type_) ) -# 3169 "src/ocaml/preprocess/parser_raw.ml" +# 3139 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_type__ in @@ -3173,15 +3143,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3179 "src/ocaml/preprocess/parser_raw.ml" +# 3149 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4903 "src/ocaml/preprocess/parser_raw.mly" +# 4900 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3185 "src/ocaml/preprocess/parser_raw.ml" +# 3155 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -3214,24 +3184,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 4899 "src/ocaml/preprocess/parser_raw.mly" +# 4896 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_var (ident, None) ) -# 3220 "src/ocaml/preprocess/parser_raw.ml" +# 3190 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ident_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3229 "src/ocaml/preprocess/parser_raw.ml" +# 3199 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4903 "src/ocaml/preprocess/parser_raw.mly" +# 4900 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3235 "src/ocaml/preprocess/parser_raw.ml" +# 3205 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -3257,23 +3227,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 4901 "src/ocaml/preprocess/parser_raw.mly" +# 4898 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_any None ) -# 3263 "src/ocaml/preprocess/parser_raw.ml" +# 3233 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 3271 "src/ocaml/preprocess/parser_raw.ml" +# 3241 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4903 "src/ocaml/preprocess/parser_raw.mly" +# 4900 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3277 "src/ocaml/preprocess/parser_raw.ml" +# 3247 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -3336,9 +3306,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4905 "src/ocaml/preprocess/parser_raw.mly" +# 4902 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (name, Some jkind)) ) -# 3342 "src/ocaml/preprocess/parser_raw.ml" +# 3312 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -3394,9 +3364,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4907 "src/ocaml/preprocess/parser_raw.mly" +# 4904 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 3400 "src/ocaml/preprocess/parser_raw.ml" +# 3370 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type)) + 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 = jkind; + MenhirLib.EngineTypes.startp = _startpos_jkind_; + MenhirLib.EngineTypes.endp = _endpos_jkind_; + 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 jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in + let _3 : unit = 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 = + let _endpos = _endpos__5_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + ( +# 4906 "src/ocaml/preprocess/parser_raw.mly" + ( mktyp ~loc:_loc (Ptyp_of_kind jkind) ) +# 3428 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -3422,23 +3450,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 5386 "src/ocaml/preprocess/parser_raw.mly" +# 5385 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3428 "src/ocaml/preprocess/parser_raw.ml" +# 3456 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1326 "src/ocaml/preprocess/parser_raw.mly" +# 1338 "src/ocaml/preprocess/parser_raw.mly" ( mkloc _1 (make_loc _sloc) ) -# 3436 "src/ocaml/preprocess/parser_raw.ml" +# 3464 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5388 "src/ocaml/preprocess/parser_raw.mly" +# 5387 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3442 "src/ocaml/preprocess/parser_raw.ml" +# 3470 "src/ocaml/preprocess/parser_raw.ml" : (string Location.loc)) in { @@ -3478,24 +3506,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 5387 "src/ocaml/preprocess/parser_raw.mly" +# 5386 "src/ocaml/preprocess/parser_raw.mly" ( _1 ^ "." ^ _3.txt ) -# 3484 "src/ocaml/preprocess/parser_raw.ml" +# 3512 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1326 "src/ocaml/preprocess/parser_raw.mly" +# 1338 "src/ocaml/preprocess/parser_raw.mly" ( mkloc _1 (make_loc _sloc) ) -# 3493 "src/ocaml/preprocess/parser_raw.ml" +# 3521 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5388 "src/ocaml/preprocess/parser_raw.mly" +# 5387 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3499 "src/ocaml/preprocess/parser_raw.ml" +# 3527 "src/ocaml/preprocess/parser_raw.ml" : (string Location.loc)) in { @@ -3519,11 +3547,11 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.payload) = -# 5443 "src/ocaml/preprocess/parser_raw.mly" +# 5442 "src/ocaml/preprocess/parser_raw.mly" ( Builtin_attributes.mark_payload_attrs_used _1; _1 ) -# 3527 "src/ocaml/preprocess/parser_raw.ml" +# 3555 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3571,9 +3599,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5392 "src/ocaml/preprocess/parser_raw.mly" +# 5391 "src/ocaml/preprocess/parser_raw.mly" ( mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 3577 "src/ocaml/preprocess/parser_raw.ml" +# 3605 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.attribute)) in { @@ -3597,9 +3625,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.class_expr) = -# 2397 "src/ocaml/preprocess/parser_raw.mly" +# 2424 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3603 "src/ocaml/preprocess/parser_raw.ml" +# 3631 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3639,18 +3667,18 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3645 "src/ocaml/preprocess/parser_raw.ml" +# 3673 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2399 "src/ocaml/preprocess/parser_raw.mly" +# 2426 "src/ocaml/preprocess/parser_raw.mly" ( wrap_class_attrs ~loc:_sloc _3 _2 ) -# 3654 "src/ocaml/preprocess/parser_raw.ml" +# 3682 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr)) in { @@ -3692,9 +3720,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2401 "src/ocaml/preprocess/parser_raw.mly" +# 2428 "src/ocaml/preprocess/parser_raw.mly" ( class_of_let_bindings ~loc:_sloc _1 _3 ) -# 3698 "src/ocaml/preprocess/parser_raw.ml" +# 3726 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr)) in { @@ -3759,34 +3787,34 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3765 "src/ocaml/preprocess/parser_raw.ml" +# 3793 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in let _4 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3774 "src/ocaml/preprocess/parser_raw.ml" +# 3802 "src/ocaml/preprocess/parser_raw.ml" in let _3 = -# 5310 "src/ocaml/preprocess/parser_raw.mly" +# 5309 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 3780 "src/ocaml/preprocess/parser_raw.ml" +# 3808 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2403 "src/ocaml/preprocess/parser_raw.mly" +# 2430 "src/ocaml/preprocess/parser_raw.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)) ) -# 3790 "src/ocaml/preprocess/parser_raw.ml" +# 3818 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr)) in { @@ -3858,34 +3886,34 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 3864 "src/ocaml/preprocess/parser_raw.ml" +# 3892 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3873 "src/ocaml/preprocess/parser_raw.ml" +# 3901 "src/ocaml/preprocess/parser_raw.ml" in let _3 = -# 5311 "src/ocaml/preprocess/parser_raw.mly" +# 5310 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 3879 "src/ocaml/preprocess/parser_raw.ml" +# 3907 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2403 "src/ocaml/preprocess/parser_raw.mly" +# 2430 "src/ocaml/preprocess/parser_raw.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)) ) -# 3889 "src/ocaml/preprocess/parser_raw.ml" +# 3917 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr)) in { @@ -3916,9 +3944,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.class_expr) = -# 2407 "src/ocaml/preprocess/parser_raw.mly" +# 2434 "src/ocaml/preprocess/parser_raw.mly" ( Cl.attr _1 _2 ) -# 3922 "src/ocaml/preprocess/parser_raw.ml" +# 3950 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -3954,18 +3982,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 3958 "src/ocaml/preprocess/parser_raw.ml" +# 3986 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 3963 "src/ocaml/preprocess/parser_raw.ml" +# 3991 "src/ocaml/preprocess/parser_raw.ml" in -# 2410 "src/ocaml/preprocess/parser_raw.mly" +# 2437 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_apply(_1, _2) ) -# 3969 "src/ocaml/preprocess/parser_raw.ml" +# 3997 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -3973,15 +4001,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1349 "src/ocaml/preprocess/parser_raw.mly" +# 1361 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 3979 "src/ocaml/preprocess/parser_raw.ml" +# 4007 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2413 "src/ocaml/preprocess/parser_raw.mly" +# 2440 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 3985 "src/ocaml/preprocess/parser_raw.ml" +# 4013 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr)) in { @@ -4007,23 +4035,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 2412 "src/ocaml/preprocess/parser_raw.mly" +# 2439 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_extension _1 ) -# 4013 "src/ocaml/preprocess/parser_raw.ml" +# 4041 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1349 "src/ocaml/preprocess/parser_raw.mly" +# 1361 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4021 "src/ocaml/preprocess/parser_raw.ml" +# 4049 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2413 "src/ocaml/preprocess/parser_raw.mly" +# 2440 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4027 "src/ocaml/preprocess/parser_raw.ml" +# 4055 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr)) in { @@ -4078,33 +4106,33 @@ module Tables = struct let _6 = let _1 = _1_inlined2 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4084 "src/ocaml/preprocess/parser_raw.ml" +# 4112 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__6_ = _endpos__1_inlined2_ in let _3 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4093 "src/ocaml/preprocess/parser_raw.ml" +# 4121 "src/ocaml/preprocess/parser_raw.ml" in let _2 = -# 5310 "src/ocaml/preprocess/parser_raw.mly" +# 5309 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 4099 "src/ocaml/preprocess/parser_raw.ml" +# 4127 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2467 "src/ocaml/preprocess/parser_raw.mly" +# 2494 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) -# 4108 "src/ocaml/preprocess/parser_raw.ml" +# 4136 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_field)) in { @@ -4166,33 +4194,33 @@ module Tables = struct let _6 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4172 "src/ocaml/preprocess/parser_raw.ml" +# 4200 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__6_ = _endpos__1_inlined3_ in let _3 = let _1 = _1_inlined2 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4181 "src/ocaml/preprocess/parser_raw.ml" +# 4209 "src/ocaml/preprocess/parser_raw.ml" in let _2 = -# 5311 "src/ocaml/preprocess/parser_raw.mly" +# 5310 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 4187 "src/ocaml/preprocess/parser_raw.ml" +# 4215 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2467 "src/ocaml/preprocess/parser_raw.mly" +# 2494 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_inherit (_2, _4, self)) ~attrs:(_3@_6) ~docs ) -# 4196 "src/ocaml/preprocess/parser_raw.ml" +# 4224 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_field)) in { @@ -4234,9 +4262,9 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4240 "src/ocaml/preprocess/parser_raw.ml" +# 4268 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__1_inlined1_ in @@ -4244,11 +4272,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2470 "src/ocaml/preprocess/parser_raw.mly" +# 2497 "src/ocaml/preprocess/parser_raw.mly" ( let v, attrs = _2 in let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_val v) ~attrs:(attrs@_3) ~docs ) -# 4252 "src/ocaml/preprocess/parser_raw.ml" +# 4280 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_field)) in { @@ -4290,9 +4318,9 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4296 "src/ocaml/preprocess/parser_raw.ml" +# 4324 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__1_inlined1_ in @@ -4300,11 +4328,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2474 "src/ocaml/preprocess/parser_raw.mly" +# 2501 "src/ocaml/preprocess/parser_raw.mly" ( let meth, attrs = _2 in let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_method meth) ~attrs:(attrs@_3) ~docs ) -# 4308 "src/ocaml/preprocess/parser_raw.ml" +# 4336 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_field)) in { @@ -4352,28 +4380,28 @@ module Tables = struct let _4 = let _1 = _1_inlined2 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4358 "src/ocaml/preprocess/parser_raw.ml" +# 4386 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4367 "src/ocaml/preprocess/parser_raw.ml" +# 4395 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2478 "src/ocaml/preprocess/parser_raw.mly" +# 2505 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_constraint _3) ~attrs:(_2@_4) ~docs ) -# 4377 "src/ocaml/preprocess/parser_raw.ml" +# 4405 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_field)) in { @@ -4421,28 +4449,28 @@ module Tables = struct let _4 = let _1 = _1_inlined2 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4427 "src/ocaml/preprocess/parser_raw.ml" +# 4455 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4436 "src/ocaml/preprocess/parser_raw.ml" +# 4464 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2481 "src/ocaml/preprocess/parser_raw.mly" +# 2508 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_initializer _3) ~attrs:(_2@_4) ~docs ) -# 4446 "src/ocaml/preprocess/parser_raw.ml" +# 4474 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_field)) in { @@ -4476,9 +4504,9 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4482 "src/ocaml/preprocess/parser_raw.ml" +# 4510 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -4486,10 +4514,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2484 "src/ocaml/preprocess/parser_raw.mly" +# 2511 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkcf ~loc:_sloc (Pcf_extension _1) ~attrs:_2 ~docs ) -# 4493 "src/ocaml/preprocess/parser_raw.ml" +# 4521 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_field)) in { @@ -4515,23 +4543,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 2487 "src/ocaml/preprocess/parser_raw.mly" +# 2514 "src/ocaml/preprocess/parser_raw.mly" ( Pcf_attribute _1 ) -# 4521 "src/ocaml/preprocess/parser_raw.ml" +# 4549 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1347 "src/ocaml/preprocess/parser_raw.mly" +# 1359 "src/ocaml/preprocess/parser_raw.mly" ( mkcf ~loc:_sloc _1 ) -# 4529 "src/ocaml/preprocess/parser_raw.ml" +# 4557 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2488 "src/ocaml/preprocess/parser_raw.mly" +# 2515 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4535 "src/ocaml/preprocess/parser_raw.ml" +# 4563 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_field)) in { @@ -4562,9 +4590,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.class_expr) = -# 2377 "src/ocaml/preprocess/parser_raw.mly" +# 2404 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 4568 "src/ocaml/preprocess/parser_raw.ml" +# 4596 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4610,24 +4638,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 2380 "src/ocaml/preprocess/parser_raw.mly" +# 2407 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constraint(_4, _2) ) -# 4616 "src/ocaml/preprocess/parser_raw.ml" +# 4644 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1349 "src/ocaml/preprocess/parser_raw.mly" +# 1361 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4625 "src/ocaml/preprocess/parser_raw.ml" +# 4653 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2383 "src/ocaml/preprocess/parser_raw.mly" +# 2410 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4631 "src/ocaml/preprocess/parser_raw.ml" +# 4659 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr)) in { @@ -4660,24 +4688,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 2382 "src/ocaml/preprocess/parser_raw.mly" +# 2409 "src/ocaml/preprocess/parser_raw.mly" ( let (l,o,p) = _1 in Pcl_fun(l, o, p, _2) ) -# 4666 "src/ocaml/preprocess/parser_raw.ml" +# 4694 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1349 "src/ocaml/preprocess/parser_raw.mly" +# 1361 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4675 "src/ocaml/preprocess/parser_raw.ml" +# 4703 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2383 "src/ocaml/preprocess/parser_raw.mly" +# 2410 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4681 "src/ocaml/preprocess/parser_raw.ml" +# 4709 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr)) in { @@ -4717,24 +4745,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 2444 "src/ocaml/preprocess/parser_raw.mly" +# 2471 "src/ocaml/preprocess/parser_raw.mly" ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) -# 4723 "src/ocaml/preprocess/parser_raw.ml" +# 4751 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_e_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1349 "src/ocaml/preprocess/parser_raw.mly" +# 1361 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4732 "src/ocaml/preprocess/parser_raw.ml" +# 4760 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2445 "src/ocaml/preprocess/parser_raw.mly" +# 2472 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4738 "src/ocaml/preprocess/parser_raw.ml" +# 4766 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr)) in { @@ -4767,24 +4795,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 2444 "src/ocaml/preprocess/parser_raw.mly" +# 2471 "src/ocaml/preprocess/parser_raw.mly" ( let (l,o,p) = _1 in Pcl_fun(l, o, p, e) ) -# 4773 "src/ocaml/preprocess/parser_raw.ml" +# 4801 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_e_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1349 "src/ocaml/preprocess/parser_raw.mly" +# 1361 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 4782 "src/ocaml/preprocess/parser_raw.ml" +# 4810 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2445 "src/ocaml/preprocess/parser_raw.mly" +# 2472 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4788 "src/ocaml/preprocess/parser_raw.ml" +# 4816 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr)) in { @@ -4808,9 +4836,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5180 "src/ocaml/preprocess/parser_raw.mly" +# 5179 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 4814 "src/ocaml/preprocess/parser_raw.ml" +# 4842 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4851,9 +4879,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2453 "src/ocaml/preprocess/parser_raw.mly" +# 2480 "src/ocaml/preprocess/parser_raw.mly" ( reloc_pat ~loc:_sloc _2 ) -# 4857 "src/ocaml/preprocess/parser_raw.ml" +# 4885 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -4909,9 +4937,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2455 "src/ocaml/preprocess/parser_raw.mly" +# 2482 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_with_modes ~loc:_sloc ~pat:_2 ~cty:(Some _4) ~modes:[] ) -# 4915 "src/ocaml/preprocess/parser_raw.ml" +# 4943 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -4932,9 +4960,9 @@ module Tables = struct let _symbolstartpos = _endpos in let _sloc = (_symbolstartpos, _endpos) in ( -# 2457 "src/ocaml/preprocess/parser_raw.mly" +# 2484 "src/ocaml/preprocess/parser_raw.mly" ( ghpat ~loc:_sloc Ppat_any ) -# 4938 "src/ocaml/preprocess/parser_raw.ml" +# 4966 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -4972,9 +5000,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.core_type) = -# 2584 "src/ocaml/preprocess/parser_raw.mly" +# 2611 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 4978 "src/ocaml/preprocess/parser_raw.ml" +# 5006 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -4992,24 +5020,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 2585 "src/ocaml/preprocess/parser_raw.mly" +# 2612 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_any None ) -# 4998 "src/ocaml/preprocess/parser_raw.ml" +# 5026 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__0_ in let _endpos = _endpos__1_ in let _symbolstartpos = _endpos in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 5007 "src/ocaml/preprocess/parser_raw.ml" +# 5035 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2586 "src/ocaml/preprocess/parser_raw.mly" +# 2613 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5013 "src/ocaml/preprocess/parser_raw.ml" +# 5041 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -5057,28 +5085,28 @@ module Tables = struct let _4 = let _1 = _1_inlined2 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5063 "src/ocaml/preprocess/parser_raw.ml" +# 5091 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5072 "src/ocaml/preprocess/parser_raw.ml" +# 5100 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2594 "src/ocaml/preprocess/parser_raw.mly" +# 2621 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_inherit _3) ~attrs:(_2@_4) ~docs ) -# 5082 "src/ocaml/preprocess/parser_raw.ml" +# 5110 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type_field)) in { @@ -5137,9 +5165,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _3 : unit = Obj.magic _3 in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 5143 "src/ocaml/preprocess/parser_raw.ml" +# 5171 "src/ocaml/preprocess/parser_raw.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 @@ -5151,9 +5179,9 @@ module Tables = struct let _4 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5157 "src/ocaml/preprocess/parser_raw.ml" +# 5185 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined3_ in @@ -5161,44 +5189,44 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let label = let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5167 "src/ocaml/preprocess/parser_raw.ml" +# 5195 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5175 "src/ocaml/preprocess/parser_raw.ml" +# 5203 "src/ocaml/preprocess/parser_raw.ml" in -# 2619 "src/ocaml/preprocess/parser_raw.mly" +# 2646 "src/ocaml/preprocess/parser_raw.mly" ( let mut, virt = flags in label, mut, virt, ty ) -# 5184 "src/ocaml/preprocess/parser_raw.ml" +# 5212 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5192 "src/ocaml/preprocess/parser_raw.ml" +# 5220 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2597 "src/ocaml/preprocess/parser_raw.mly" +# 2624 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_val _3) ~attrs:(_2@_4) ~docs ) -# 5202 "src/ocaml/preprocess/parser_raw.ml" +# 5230 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type_field)) in { @@ -5257,9 +5285,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 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 5263 "src/ocaml/preprocess/parser_raw.ml" +# 5291 "src/ocaml/preprocess/parser_raw.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 @@ -5271,53 +5299,53 @@ module Tables = struct let _7 = let _1 = _1_inlined4 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5277 "src/ocaml/preprocess/parser_raw.ml" +# 5305 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__7_ = _endpos__1_inlined4_ in let _6 = let _1 = _1_inlined3 in -# 4495 "src/ocaml/preprocess/parser_raw.mly" +# 4474 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5286 "src/ocaml/preprocess/parser_raw.ml" +# 5314 "src/ocaml/preprocess/parser_raw.ml" in let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5294 "src/ocaml/preprocess/parser_raw.ml" +# 5322 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5302 "src/ocaml/preprocess/parser_raw.ml" +# 5330 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5310 "src/ocaml/preprocess/parser_raw.ml" +# 5338 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2601 "src/ocaml/preprocess/parser_raw.mly" +# 2628 "src/ocaml/preprocess/parser_raw.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 ) -# 5321 "src/ocaml/preprocess/parser_raw.ml" +# 5349 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type_field)) in { @@ -5365,28 +5393,28 @@ module Tables = struct let _4 = let _1 = _1_inlined2 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5371 "src/ocaml/preprocess/parser_raw.ml" +# 5399 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5380 "src/ocaml/preprocess/parser_raw.ml" +# 5408 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2605 "src/ocaml/preprocess/parser_raw.mly" +# 2632 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_constraint _3) ~attrs:(_2@_4) ~docs ) -# 5390 "src/ocaml/preprocess/parser_raw.ml" +# 5418 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type_field)) in { @@ -5420,9 +5448,9 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5426 "src/ocaml/preprocess/parser_raw.ml" +# 5454 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -5430,10 +5458,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2608 "src/ocaml/preprocess/parser_raw.mly" +# 2635 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mkctf ~loc:_sloc (Pctf_extension _1) ~attrs:_2 ~docs ) -# 5437 "src/ocaml/preprocess/parser_raw.ml" +# 5465 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type_field)) in { @@ -5459,23 +5487,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 2611 "src/ocaml/preprocess/parser_raw.mly" +# 2638 "src/ocaml/preprocess/parser_raw.mly" ( Pctf_attribute _1 ) -# 5465 "src/ocaml/preprocess/parser_raw.ml" +# 5493 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1345 "src/ocaml/preprocess/parser_raw.mly" +# 1357 "src/ocaml/preprocess/parser_raw.mly" ( mkctf ~loc:_sloc _1 ) -# 5473 "src/ocaml/preprocess/parser_raw.ml" +# 5501 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2612 "src/ocaml/preprocess/parser_raw.mly" +# 2639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5479 "src/ocaml/preprocess/parser_raw.ml" +# 5507 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type_field)) in { @@ -5506,42 +5534,42 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5512 "src/ocaml/preprocess/parser_raw.ml" +# 5540 "src/ocaml/preprocess/parser_raw.ml" in let tys = let tys = -# 2570 "src/ocaml/preprocess/parser_raw.mly" +# 2597 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 5519 "src/ocaml/preprocess/parser_raw.ml" +# 5547 "src/ocaml/preprocess/parser_raw.ml" in -# 2576 "src/ocaml/preprocess/parser_raw.mly" +# 2603 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 5524 "src/ocaml/preprocess/parser_raw.ml" +# 5552 "src/ocaml/preprocess/parser_raw.ml" in -# 2551 "src/ocaml/preprocess/parser_raw.mly" +# 2578 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_constr (cid, tys) ) -# 5530 "src/ocaml/preprocess/parser_raw.ml" +# 5558 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1343 "src/ocaml/preprocess/parser_raw.mly" +# 1355 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 5539 "src/ocaml/preprocess/parser_raw.ml" +# 5567 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2554 "src/ocaml/preprocess/parser_raw.mly" +# 2581 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5545 "src/ocaml/preprocess/parser_raw.ml" +# 5573 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type)) in { @@ -5594,9 +5622,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5600 "src/ocaml/preprocess/parser_raw.ml" +# 5628 "src/ocaml/preprocess/parser_raw.ml" in let tys = @@ -5605,30 +5633,30 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 5609 "src/ocaml/preprocess/parser_raw.ml" +# 5637 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 5614 "src/ocaml/preprocess/parser_raw.ml" +# 5642 "src/ocaml/preprocess/parser_raw.ml" in -# 2572 "src/ocaml/preprocess/parser_raw.mly" +# 2599 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 5620 "src/ocaml/preprocess/parser_raw.ml" +# 5648 "src/ocaml/preprocess/parser_raw.ml" in -# 2576 "src/ocaml/preprocess/parser_raw.mly" +# 2603 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 5626 "src/ocaml/preprocess/parser_raw.ml" +# 5654 "src/ocaml/preprocess/parser_raw.ml" in -# 2551 "src/ocaml/preprocess/parser_raw.mly" +# 2578 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_constr (cid, tys) ) -# 5632 "src/ocaml/preprocess/parser_raw.ml" +# 5660 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -5636,15 +5664,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1343 "src/ocaml/preprocess/parser_raw.mly" +# 1355 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 5642 "src/ocaml/preprocess/parser_raw.ml" +# 5670 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2554 "src/ocaml/preprocess/parser_raw.mly" +# 2581 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5648 "src/ocaml/preprocess/parser_raw.ml" +# 5676 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type)) in { @@ -5670,23 +5698,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 2553 "src/ocaml/preprocess/parser_raw.mly" +# 2580 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_extension _1 ) -# 5676 "src/ocaml/preprocess/parser_raw.ml" +# 5704 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1343 "src/ocaml/preprocess/parser_raw.mly" +# 1355 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 5684 "src/ocaml/preprocess/parser_raw.ml" +# 5712 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2554 "src/ocaml/preprocess/parser_raw.mly" +# 2581 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5690 "src/ocaml/preprocess/parser_raw.ml" +# 5718 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type)) in { @@ -5745,44 +5773,44 @@ module Tables = struct let _1 = # 271 "" ( List.flatten xss ) -# 5749 "src/ocaml/preprocess/parser_raw.ml" +# 5777 "src/ocaml/preprocess/parser_raw.ml" in -# 2590 "src/ocaml/preprocess/parser_raw.mly" +# 2617 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5754 "src/ocaml/preprocess/parser_raw.ml" +# 5782 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1291 "src/ocaml/preprocess/parser_raw.mly" +# 1303 "src/ocaml/preprocess/parser_raw.mly" ( extra_csig _startpos _endpos _1 ) -# 5763 "src/ocaml/preprocess/parser_raw.ml" +# 5791 "src/ocaml/preprocess/parser_raw.ml" in -# 2580 "src/ocaml/preprocess/parser_raw.mly" +# 2607 "src/ocaml/preprocess/parser_raw.mly" ( Csig.mk _1 _2 ) -# 5769 "src/ocaml/preprocess/parser_raw.ml" +# 5797 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5777 "src/ocaml/preprocess/parser_raw.ml" +# 5805 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2556 "src/ocaml/preprocess/parser_raw.mly" +# 2583 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc ~attrs:_2 (Pcty_signature _3) ) -# 5786 "src/ocaml/preprocess/parser_raw.ml" +# 5814 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type)) in { @@ -5813,9 +5841,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.class_type) = -# 2562 "src/ocaml/preprocess/parser_raw.mly" +# 2589 "src/ocaml/preprocess/parser_raw.mly" ( Cty.attr _1 _2 ) -# 5819 "src/ocaml/preprocess/parser_raw.ml" +# 5847 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -5879,34 +5907,34 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5885 "src/ocaml/preprocess/parser_raw.ml" +# 5913 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in let _4 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5894 "src/ocaml/preprocess/parser_raw.ml" +# 5922 "src/ocaml/preprocess/parser_raw.ml" in let _3 = -# 5310 "src/ocaml/preprocess/parser_raw.mly" +# 5309 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 5900 "src/ocaml/preprocess/parser_raw.ml" +# 5928 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2564 "src/ocaml/preprocess/parser_raw.mly" +# 2591 "src/ocaml/preprocess/parser_raw.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)) ) -# 5910 "src/ocaml/preprocess/parser_raw.ml" +# 5938 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type)) in { @@ -5978,34 +6006,34 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 5984 "src/ocaml/preprocess/parser_raw.ml" +# 6012 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 5993 "src/ocaml/preprocess/parser_raw.ml" +# 6021 "src/ocaml/preprocess/parser_raw.ml" in let _3 = -# 5311 "src/ocaml/preprocess/parser_raw.mly" +# 5310 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 5999 "src/ocaml/preprocess/parser_raw.ml" +# 6027 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2564 "src/ocaml/preprocess/parser_raw.mly" +# 2591 "src/ocaml/preprocess/parser_raw.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)) ) -# 6009 "src/ocaml/preprocess/parser_raw.ml" +# 6037 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type)) in { @@ -6043,9 +6071,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.class_expr) = -# 2417 "src/ocaml/preprocess/parser_raw.mly" +# 2444 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 6049 "src/ocaml/preprocess/parser_raw.ml" +# 6077 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6075,42 +6103,42 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 6081 "src/ocaml/preprocess/parser_raw.ml" +# 6109 "src/ocaml/preprocess/parser_raw.ml" in let tys = let tys = -# 2570 "src/ocaml/preprocess/parser_raw.mly" +# 2597 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 6088 "src/ocaml/preprocess/parser_raw.ml" +# 6116 "src/ocaml/preprocess/parser_raw.ml" in -# 2576 "src/ocaml/preprocess/parser_raw.mly" +# 2603 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 6093 "src/ocaml/preprocess/parser_raw.ml" +# 6121 "src/ocaml/preprocess/parser_raw.ml" in -# 2424 "src/ocaml/preprocess/parser_raw.mly" +# 2451 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constr(cid, tys) ) -# 6099 "src/ocaml/preprocess/parser_raw.ml" +# 6127 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1349 "src/ocaml/preprocess/parser_raw.mly" +# 1361 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 6108 "src/ocaml/preprocess/parser_raw.ml" +# 6136 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2435 "src/ocaml/preprocess/parser_raw.mly" +# 2462 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6114 "src/ocaml/preprocess/parser_raw.ml" +# 6142 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr)) in { @@ -6163,9 +6191,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 6169 "src/ocaml/preprocess/parser_raw.ml" +# 6197 "src/ocaml/preprocess/parser_raw.ml" in let tys = @@ -6174,30 +6202,30 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 6178 "src/ocaml/preprocess/parser_raw.ml" +# 6206 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6183 "src/ocaml/preprocess/parser_raw.ml" +# 6211 "src/ocaml/preprocess/parser_raw.ml" in -# 2572 "src/ocaml/preprocess/parser_raw.mly" +# 2599 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 6189 "src/ocaml/preprocess/parser_raw.ml" +# 6217 "src/ocaml/preprocess/parser_raw.ml" in -# 2576 "src/ocaml/preprocess/parser_raw.mly" +# 2603 "src/ocaml/preprocess/parser_raw.mly" ( tys ) -# 6195 "src/ocaml/preprocess/parser_raw.ml" +# 6223 "src/ocaml/preprocess/parser_raw.ml" in -# 2424 "src/ocaml/preprocess/parser_raw.mly" +# 2451 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constr(cid, tys) ) -# 6201 "src/ocaml/preprocess/parser_raw.ml" +# 6229 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -6205,15 +6233,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1349 "src/ocaml/preprocess/parser_raw.mly" +# 1361 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 6211 "src/ocaml/preprocess/parser_raw.ml" +# 6239 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2435 "src/ocaml/preprocess/parser_raw.mly" +# 2462 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6217 "src/ocaml/preprocess/parser_raw.ml" +# 6245 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr)) in { @@ -6267,24 +6295,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 2430 "src/ocaml/preprocess/parser_raw.mly" +# 2457 "src/ocaml/preprocess/parser_raw.mly" ( Pcl_constraint(_2, _4) ) -# 6273 "src/ocaml/preprocess/parser_raw.ml" +# 6301 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1349 "src/ocaml/preprocess/parser_raw.mly" +# 1361 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc _1 ) -# 6282 "src/ocaml/preprocess/parser_raw.ml" +# 6310 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2435 "src/ocaml/preprocess/parser_raw.mly" +# 2462 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6288 "src/ocaml/preprocess/parser_raw.ml" +# 6316 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr)) in { @@ -6343,44 +6371,44 @@ module Tables = struct let _1 = # 271 "" ( List.flatten xss ) -# 6347 "src/ocaml/preprocess/parser_raw.ml" +# 6375 "src/ocaml/preprocess/parser_raw.ml" in -# 2461 "src/ocaml/preprocess/parser_raw.mly" +# 2488 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6352 "src/ocaml/preprocess/parser_raw.ml" +# 6380 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1290 "src/ocaml/preprocess/parser_raw.mly" +# 1302 "src/ocaml/preprocess/parser_raw.mly" ( extra_cstr _startpos _endpos _1 ) -# 6361 "src/ocaml/preprocess/parser_raw.ml" +# 6389 "src/ocaml/preprocess/parser_raw.ml" in -# 2449 "src/ocaml/preprocess/parser_raw.mly" +# 2476 "src/ocaml/preprocess/parser_raw.mly" ( Cstr.mk _1 _2 ) -# 6367 "src/ocaml/preprocess/parser_raw.ml" +# 6395 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6375 "src/ocaml/preprocess/parser_raw.ml" +# 6403 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2437 "src/ocaml/preprocess/parser_raw.mly" +# 2464 "src/ocaml/preprocess/parser_raw.mly" ( mkclass ~loc:_sloc ~attrs:_2 (Pcl_structure _3) ) -# 6384 "src/ocaml/preprocess/parser_raw.ml" +# 6412 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr)) in { @@ -6404,9 +6432,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.class_type) = -# 2539 "src/ocaml/preprocess/parser_raw.mly" +# 2566 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6410 "src/ocaml/preprocess/parser_raw.ml" +# 6438 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6454,20 +6482,20 @@ module Tables = struct let _1 = let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 6460 "src/ocaml/preprocess/parser_raw.ml" +# 6488 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6465 "src/ocaml/preprocess/parser_raw.ml" +# 6493 "src/ocaml/preprocess/parser_raw.ml" in -# 2545 "src/ocaml/preprocess/parser_raw.mly" +# 2572 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_arrow(label, domain, codomain) ) -# 6471 "src/ocaml/preprocess/parser_raw.ml" +# 6499 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -6475,15 +6503,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1343 "src/ocaml/preprocess/parser_raw.mly" +# 1355 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 6481 "src/ocaml/preprocess/parser_raw.ml" +# 6509 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2546 "src/ocaml/preprocess/parser_raw.mly" +# 2573 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6487 "src/ocaml/preprocess/parser_raw.ml" +# 6515 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type)) in { @@ -6531,9 +6559,9 @@ module Tables = struct let domain : (Parsetree.core_type) = Obj.magic domain in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 6537 "src/ocaml/preprocess/parser_raw.ml" +# 6565 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -6543,20 +6571,20 @@ module Tables = struct let _1 = let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 6549 "src/ocaml/preprocess/parser_raw.ml" +# 6577 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6554 "src/ocaml/preprocess/parser_raw.ml" +# 6582 "src/ocaml/preprocess/parser_raw.ml" in -# 2545 "src/ocaml/preprocess/parser_raw.mly" +# 2572 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_arrow(label, domain, codomain) ) -# 6560 "src/ocaml/preprocess/parser_raw.ml" +# 6588 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -6564,15 +6592,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1343 "src/ocaml/preprocess/parser_raw.mly" +# 1355 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 6570 "src/ocaml/preprocess/parser_raw.ml" +# 6598 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2546 "src/ocaml/preprocess/parser_raw.mly" +# 2573 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6576 "src/ocaml/preprocess/parser_raw.ml" +# 6604 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type)) in { @@ -6613,14 +6641,14 @@ module Tables = struct let _1 = let _1 = let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 6619 "src/ocaml/preprocess/parser_raw.ml" +# 6647 "src/ocaml/preprocess/parser_raw.ml" in -# 2545 "src/ocaml/preprocess/parser_raw.mly" +# 2572 "src/ocaml/preprocess/parser_raw.mly" ( Pcty_arrow(label, domain, codomain) ) -# 6624 "src/ocaml/preprocess/parser_raw.ml" +# 6652 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_domain_) in @@ -6628,15 +6656,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1343 "src/ocaml/preprocess/parser_raw.mly" +# 1355 "src/ocaml/preprocess/parser_raw.mly" ( mkcty ~loc:_sloc _1 ) -# 6634 "src/ocaml/preprocess/parser_raw.ml" +# 6662 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2546 "src/ocaml/preprocess/parser_raw.mly" +# 2573 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6640 "src/ocaml/preprocess/parser_raw.ml" +# 6668 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type)) in { @@ -6720,9 +6748,9 @@ module Tables = struct let csig : (Parsetree.class_type) = Obj.magic csig in let _8 : unit = Obj.magic _8 in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 6726 "src/ocaml/preprocess/parser_raw.ml" +# 6754 "src/ocaml/preprocess/parser_raw.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 @@ -6739,9 +6767,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6745 "src/ocaml/preprocess/parser_raw.ml" +# 6773 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -6751,24 +6779,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 6757 "src/ocaml/preprocess/parser_raw.ml" +# 6785 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6765 "src/ocaml/preprocess/parser_raw.ml" +# 6793 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2686 "src/ocaml/preprocess/parser_raw.mly" +# 2713 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -6776,19 +6804,19 @@ module Tables = struct ext, Ci.mk id csig ~virt ~params ~attrs ~loc ~docs ) -# 6780 "src/ocaml/preprocess/parser_raw.ml" +# 6808 "src/ocaml/preprocess/parser_raw.ml" in -# 1547 "src/ocaml/preprocess/parser_raw.mly" +# 1559 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 6786 "src/ocaml/preprocess/parser_raw.ml" +# 6814 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2674 "src/ocaml/preprocess/parser_raw.mly" +# 2701 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6792 "src/ocaml/preprocess/parser_raw.ml" +# 6820 "src/ocaml/preprocess/parser_raw.ml" : (string Location.loc option * Parsetree.class_type_declaration list)) in { @@ -6812,9 +6840,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5177 "src/ocaml/preprocess/parser_raw.mly" +# 5176 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6818 "src/ocaml/preprocess/parser_raw.ml" +# 6846 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -6848,18 +6876,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 6852 "src/ocaml/preprocess/parser_raw.ml" +# 6880 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6857 "src/ocaml/preprocess/parser_raw.ml" +# 6885 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3147 "src/ocaml/preprocess/parser_raw.mly" +# 3123 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_for _2 ) -# 6863 "src/ocaml/preprocess/parser_raw.ml" +# 6891 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause)) in { @@ -6893,20 +6921,20 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6899 "src/ocaml/preprocess/parser_raw.ml" +# 6927 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6904 "src/ocaml/preprocess/parser_raw.ml" +# 6932 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3149 "src/ocaml/preprocess/parser_raw.mly" +# 3125 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_when _2 ) -# 6910 "src/ocaml/preprocess/parser_raw.ml" +# 6938 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause)) in { @@ -6968,18 +6996,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 6972 "src/ocaml/preprocess/parser_raw.ml" +# 7000 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6977 "src/ocaml/preprocess/parser_raw.ml" +# 7005 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 6983 "src/ocaml/preprocess/parser_raw.ml" +# 7011 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -6988,22 +7016,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 6994 "src/ocaml/preprocess/parser_raw.ml" +# 7022 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7000 "src/ocaml/preprocess/parser_raw.ml" +# 7028 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -7016,31 +7044,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7020 "src/ocaml/preprocess/parser_raw.ml" +# 7048 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7026 "src/ocaml/preprocess/parser_raw.ml" +# 7054 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7032 "src/ocaml/preprocess/parser_raw.ml" +# 7060 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7038 "src/ocaml/preprocess/parser_raw.ml" +# 7066 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3149 "src/ocaml/preprocess/parser_raw.mly" +# 3125 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_when _2 ) -# 7044 "src/ocaml/preprocess/parser_raw.ml" +# 7072 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause)) in { @@ -7111,18 +7139,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 7115 "src/ocaml/preprocess/parser_raw.ml" +# 7143 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7120 "src/ocaml/preprocess/parser_raw.ml" +# 7148 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7126 "src/ocaml/preprocess/parser_raw.ml" +# 7154 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -7131,22 +7159,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7137 "src/ocaml/preprocess/parser_raw.ml" +# 7165 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7143 "src/ocaml/preprocess/parser_raw.ml" +# 7171 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -7159,7 +7187,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7163 "src/ocaml/preprocess/parser_raw.ml" +# 7191 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -7167,33 +7195,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 7173 "src/ocaml/preprocess/parser_raw.ml" +# 7201 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7179 "src/ocaml/preprocess/parser_raw.ml" +# 7207 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7185 "src/ocaml/preprocess/parser_raw.ml" +# 7213 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7191 "src/ocaml/preprocess/parser_raw.ml" +# 7219 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3149 "src/ocaml/preprocess/parser_raw.mly" +# 3125 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_when _2 ) -# 7197 "src/ocaml/preprocess/parser_raw.ml" +# 7225 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause)) in { @@ -7232,14 +7260,14 @@ module Tables = struct let _endpos = _endpos__3_ in let _v = let _1 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7238 "src/ocaml/preprocess/parser_raw.ml" +# 7266 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3128 "src/ocaml/preprocess/parser_raw.mly" +# 3104 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_cb_pattern = _2 ; pcomp_cb_iterator = _3 ; pcomp_cb_attributes = _1 } ) -# 7243 "src/ocaml/preprocess/parser_raw.ml" +# 7271 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause_binding)) in { @@ -7294,14 +7322,14 @@ module Tables = struct let _5 = let _1 = _1_inlined2 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7300 "src/ocaml/preprocess/parser_raw.ml" +# 7328 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7305 "src/ocaml/preprocess/parser_raw.ml" +# 7333 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in @@ -7311,16 +7339,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4650 "src/ocaml/preprocess/parser_raw.mly" +# 4662 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 7317 "src/ocaml/preprocess/parser_raw.ml" +# 7345 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7324 "src/ocaml/preprocess/parser_raw.ml" +# 7352 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -7329,7 +7357,7 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3135 "src/ocaml/preprocess/parser_raw.mly" +# 3111 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -7338,7 +7366,7 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7342 "src/ocaml/preprocess/parser_raw.ml" +# 7370 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause_binding)) in { @@ -7421,18 +7449,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 7425 "src/ocaml/preprocess/parser_raw.ml" +# 7453 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7430 "src/ocaml/preprocess/parser_raw.ml" +# 7458 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7436 "src/ocaml/preprocess/parser_raw.ml" +# 7464 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -7441,22 +7469,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7447 "src/ocaml/preprocess/parser_raw.ml" +# 7475 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7453 "src/ocaml/preprocess/parser_raw.ml" +# 7481 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -7469,25 +7497,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7473 "src/ocaml/preprocess/parser_raw.ml" +# 7501 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7479 "src/ocaml/preprocess/parser_raw.ml" +# 7507 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7485 "src/ocaml/preprocess/parser_raw.ml" +# 7513 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7491 "src/ocaml/preprocess/parser_raw.ml" +# 7519 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos_xs_ in @@ -7497,16 +7525,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4650 "src/ocaml/preprocess/parser_raw.mly" +# 4662 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 7503 "src/ocaml/preprocess/parser_raw.ml" +# 7531 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7510 "src/ocaml/preprocess/parser_raw.ml" +# 7538 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -7515,7 +7543,7 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3135 "src/ocaml/preprocess/parser_raw.mly" +# 3111 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -7524,7 +7552,7 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7528 "src/ocaml/preprocess/parser_raw.ml" +# 7556 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause_binding)) in { @@ -7616,18 +7644,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 7620 "src/ocaml/preprocess/parser_raw.ml" +# 7648 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7625 "src/ocaml/preprocess/parser_raw.ml" +# 7653 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7631 "src/ocaml/preprocess/parser_raw.ml" +# 7659 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -7636,22 +7664,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7642 "src/ocaml/preprocess/parser_raw.ml" +# 7670 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7648 "src/ocaml/preprocess/parser_raw.ml" +# 7676 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -7664,7 +7692,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7668 "src/ocaml/preprocess/parser_raw.ml" +# 7696 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -7672,27 +7700,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 7678 "src/ocaml/preprocess/parser_raw.ml" +# 7706 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7684 "src/ocaml/preprocess/parser_raw.ml" +# 7712 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7690 "src/ocaml/preprocess/parser_raw.ml" +# 7718 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7696 "src/ocaml/preprocess/parser_raw.ml" +# 7724 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos_xs_ in @@ -7702,16 +7730,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4650 "src/ocaml/preprocess/parser_raw.mly" +# 4662 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 7708 "src/ocaml/preprocess/parser_raw.ml" +# 7736 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7715 "src/ocaml/preprocess/parser_raw.ml" +# 7743 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -7720,7 +7748,7 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3135 "src/ocaml/preprocess/parser_raw.mly" +# 3111 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -7729,7 +7757,7 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7733 "src/ocaml/preprocess/parser_raw.ml" +# 7761 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause_binding)) in { @@ -7784,14 +7812,14 @@ module Tables = struct let _5 = let _1 = _1_inlined2 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7790 "src/ocaml/preprocess/parser_raw.ml" +# 7818 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7795 "src/ocaml/preprocess/parser_raw.ml" +# 7823 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in @@ -7801,16 +7829,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 4664 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 7807 "src/ocaml/preprocess/parser_raw.ml" +# 7835 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7814 "src/ocaml/preprocess/parser_raw.ml" +# 7842 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -7819,7 +7847,7 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3135 "src/ocaml/preprocess/parser_raw.mly" +# 3111 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -7828,7 +7856,7 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 7832 "src/ocaml/preprocess/parser_raw.ml" +# 7860 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause_binding)) in { @@ -7911,18 +7939,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 7915 "src/ocaml/preprocess/parser_raw.ml" +# 7943 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7920 "src/ocaml/preprocess/parser_raw.ml" +# 7948 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 7926 "src/ocaml/preprocess/parser_raw.ml" +# 7954 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -7931,22 +7959,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7937 "src/ocaml/preprocess/parser_raw.ml" +# 7965 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 7943 "src/ocaml/preprocess/parser_raw.ml" +# 7971 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -7959,25 +7987,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 7963 "src/ocaml/preprocess/parser_raw.ml" +# 7991 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7969 "src/ocaml/preprocess/parser_raw.ml" +# 7997 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7975 "src/ocaml/preprocess/parser_raw.ml" +# 8003 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 7981 "src/ocaml/preprocess/parser_raw.ml" +# 8009 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos_xs_ in @@ -7987,16 +8015,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 4664 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 7993 "src/ocaml/preprocess/parser_raw.ml" +# 8021 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8000 "src/ocaml/preprocess/parser_raw.ml" +# 8028 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -8005,7 +8033,7 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3135 "src/ocaml/preprocess/parser_raw.mly" +# 3111 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -8014,7 +8042,7 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 8018 "src/ocaml/preprocess/parser_raw.ml" +# 8046 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause_binding)) in { @@ -8106,18 +8134,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 8110 "src/ocaml/preprocess/parser_raw.ml" +# 8138 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8115 "src/ocaml/preprocess/parser_raw.ml" +# 8143 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8121 "src/ocaml/preprocess/parser_raw.ml" +# 8149 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -8126,22 +8154,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8132 "src/ocaml/preprocess/parser_raw.ml" +# 8160 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8138 "src/ocaml/preprocess/parser_raw.ml" +# 8166 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -8154,7 +8182,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8158 "src/ocaml/preprocess/parser_raw.ml" +# 8186 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -8162,27 +8190,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 8168 "src/ocaml/preprocess/parser_raw.ml" +# 8196 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8174 "src/ocaml/preprocess/parser_raw.ml" +# 8202 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8180 "src/ocaml/preprocess/parser_raw.ml" +# 8208 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8186 "src/ocaml/preprocess/parser_raw.ml" +# 8214 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos_xs_ in @@ -8192,16 +8220,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 4664 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 8198 "src/ocaml/preprocess/parser_raw.ml" +# 8226 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8205 "src/ocaml/preprocess/parser_raw.ml" +# 8233 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -8210,7 +8238,7 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3135 "src/ocaml/preprocess/parser_raw.mly" +# 3111 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -8219,7 +8247,7 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 8223 "src/ocaml/preprocess/parser_raw.ml" +# 8251 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause_binding)) in { @@ -8274,14 +8302,14 @@ module Tables = struct let _5 = let _1 = _1_inlined2 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8280 "src/ocaml/preprocess/parser_raw.ml" +# 8308 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8285 "src/ocaml/preprocess/parser_raw.ml" +# 8313 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in @@ -8291,16 +8319,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4654 "src/ocaml/preprocess/parser_raw.mly" +# 4666 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 8297 "src/ocaml/preprocess/parser_raw.ml" +# 8325 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8304 "src/ocaml/preprocess/parser_raw.ml" +# 8332 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -8309,7 +8337,7 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3135 "src/ocaml/preprocess/parser_raw.mly" +# 3111 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -8318,7 +8346,7 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 8322 "src/ocaml/preprocess/parser_raw.ml" +# 8350 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause_binding)) in { @@ -8401,18 +8429,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 8405 "src/ocaml/preprocess/parser_raw.ml" +# 8433 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8410 "src/ocaml/preprocess/parser_raw.ml" +# 8438 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8416 "src/ocaml/preprocess/parser_raw.ml" +# 8444 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -8421,22 +8449,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8427 "src/ocaml/preprocess/parser_raw.ml" +# 8455 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8433 "src/ocaml/preprocess/parser_raw.ml" +# 8461 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -8449,25 +8477,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8453 "src/ocaml/preprocess/parser_raw.ml" +# 8481 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8459 "src/ocaml/preprocess/parser_raw.ml" +# 8487 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8465 "src/ocaml/preprocess/parser_raw.ml" +# 8493 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8471 "src/ocaml/preprocess/parser_raw.ml" +# 8499 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos_xs_ in @@ -8477,16 +8505,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4654 "src/ocaml/preprocess/parser_raw.mly" +# 4666 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 8483 "src/ocaml/preprocess/parser_raw.ml" +# 8511 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8490 "src/ocaml/preprocess/parser_raw.ml" +# 8518 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -8495,7 +8523,7 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3135 "src/ocaml/preprocess/parser_raw.mly" +# 3111 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -8504,7 +8532,7 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 8508 "src/ocaml/preprocess/parser_raw.ml" +# 8536 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause_binding)) in { @@ -8596,18 +8624,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 8600 "src/ocaml/preprocess/parser_raw.ml" +# 8628 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8605 "src/ocaml/preprocess/parser_raw.ml" +# 8633 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8611 "src/ocaml/preprocess/parser_raw.ml" +# 8639 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -8616,22 +8644,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8622 "src/ocaml/preprocess/parser_raw.ml" +# 8650 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8628 "src/ocaml/preprocess/parser_raw.ml" +# 8656 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -8644,7 +8672,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8648 "src/ocaml/preprocess/parser_raw.ml" +# 8676 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -8652,27 +8680,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 8658 "src/ocaml/preprocess/parser_raw.ml" +# 8686 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8664 "src/ocaml/preprocess/parser_raw.ml" +# 8692 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8670 "src/ocaml/preprocess/parser_raw.ml" +# 8698 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8676 "src/ocaml/preprocess/parser_raw.ml" +# 8704 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos_xs_ in @@ -8682,16 +8710,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4654 "src/ocaml/preprocess/parser_raw.mly" +# 4666 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 8688 "src/ocaml/preprocess/parser_raw.ml" +# 8716 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in let _1 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8695 "src/ocaml/preprocess/parser_raw.ml" +# 8723 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -8700,7 +8728,7 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3135 "src/ocaml/preprocess/parser_raw.mly" +# 3111 "src/ocaml/preprocess/parser_raw.mly" ( let expr = mkexp_constraint ~loc:_sloc ~exp:_5 ~cty:None ~modes:[_2] in @@ -8709,7 +8737,7 @@ module Tables = struct ; pcomp_cb_attributes = _1 } ) -# 8713 "src/ocaml/preprocess/parser_raw.ml" +# 8741 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause_binding)) in { @@ -8757,33 +8785,33 @@ module Tables = struct let _4 = let _1 = _1_inlined2 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8763 "src/ocaml/preprocess/parser_raw.ml" +# 8791 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8768 "src/ocaml/preprocess/parser_raw.ml" +# 8796 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8776 "src/ocaml/preprocess/parser_raw.ml" +# 8804 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8781 "src/ocaml/preprocess/parser_raw.ml" +# 8809 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3121 "src/ocaml/preprocess/parser_raw.mly" +# 3097 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 8787 "src/ocaml/preprocess/parser_raw.ml" +# 8815 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_iterator)) in { @@ -8859,18 +8887,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 8863 "src/ocaml/preprocess/parser_raw.ml" +# 8891 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8868 "src/ocaml/preprocess/parser_raw.ml" +# 8896 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 8874 "src/ocaml/preprocess/parser_raw.ml" +# 8902 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -8879,22 +8907,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8885 "src/ocaml/preprocess/parser_raw.ml" +# 8913 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 8891 "src/ocaml/preprocess/parser_raw.ml" +# 8919 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -8907,44 +8935,44 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 8911 "src/ocaml/preprocess/parser_raw.ml" +# 8939 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8917 "src/ocaml/preprocess/parser_raw.ml" +# 8945 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8923 "src/ocaml/preprocess/parser_raw.ml" +# 8951 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8929 "src/ocaml/preprocess/parser_raw.ml" +# 8957 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8937 "src/ocaml/preprocess/parser_raw.ml" +# 8965 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 8942 "src/ocaml/preprocess/parser_raw.ml" +# 8970 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3121 "src/ocaml/preprocess/parser_raw.mly" +# 3097 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 8948 "src/ocaml/preprocess/parser_raw.ml" +# 8976 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_iterator)) in { @@ -9029,18 +9057,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 9033 "src/ocaml/preprocess/parser_raw.ml" +# 9061 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9038 "src/ocaml/preprocess/parser_raw.ml" +# 9066 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9044 "src/ocaml/preprocess/parser_raw.ml" +# 9072 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -9049,22 +9077,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9055 "src/ocaml/preprocess/parser_raw.ml" +# 9083 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 9061 "src/ocaml/preprocess/parser_raw.ml" +# 9089 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -9077,7 +9105,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 9081 "src/ocaml/preprocess/parser_raw.ml" +# 9109 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -9085,46 +9113,46 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 9091 "src/ocaml/preprocess/parser_raw.ml" +# 9119 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9097 "src/ocaml/preprocess/parser_raw.ml" +# 9125 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9103 "src/ocaml/preprocess/parser_raw.ml" +# 9131 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9109 "src/ocaml/preprocess/parser_raw.ml" +# 9137 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9117 "src/ocaml/preprocess/parser_raw.ml" +# 9145 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9122 "src/ocaml/preprocess/parser_raw.ml" +# 9150 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3121 "src/ocaml/preprocess/parser_raw.mly" +# 3097 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 9128 "src/ocaml/preprocess/parser_raw.ml" +# 9156 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_iterator)) in { @@ -9193,14 +9221,14 @@ module Tables = struct let _4 = let _1 = _1_inlined4 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9199 "src/ocaml/preprocess/parser_raw.ml" +# 9227 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9204 "src/ocaml/preprocess/parser_raw.ml" +# 9232 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -9213,18 +9241,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 9217 "src/ocaml/preprocess/parser_raw.ml" +# 9245 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9222 "src/ocaml/preprocess/parser_raw.ml" +# 9250 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9228 "src/ocaml/preprocess/parser_raw.ml" +# 9256 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -9233,22 +9261,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9239 "src/ocaml/preprocess/parser_raw.ml" +# 9267 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 9245 "src/ocaml/preprocess/parser_raw.ml" +# 9273 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -9261,31 +9289,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 9265 "src/ocaml/preprocess/parser_raw.ml" +# 9293 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9271 "src/ocaml/preprocess/parser_raw.ml" +# 9299 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9277 "src/ocaml/preprocess/parser_raw.ml" +# 9305 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9283 "src/ocaml/preprocess/parser_raw.ml" +# 9311 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3121 "src/ocaml/preprocess/parser_raw.mly" +# 3097 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 9289 "src/ocaml/preprocess/parser_raw.ml" +# 9317 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_iterator)) in { @@ -9382,18 +9410,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 9386 "src/ocaml/preprocess/parser_raw.ml" +# 9414 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9391 "src/ocaml/preprocess/parser_raw.ml" +# 9419 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9397 "src/ocaml/preprocess/parser_raw.ml" +# 9425 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -9402,22 +9430,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9408 "src/ocaml/preprocess/parser_raw.ml" +# 9436 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 9414 "src/ocaml/preprocess/parser_raw.ml" +# 9442 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -9430,25 +9458,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 9434 "src/ocaml/preprocess/parser_raw.ml" +# 9462 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9440 "src/ocaml/preprocess/parser_raw.ml" +# 9468 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9446 "src/ocaml/preprocess/parser_raw.ml" +# 9474 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9452 "src/ocaml/preprocess/parser_raw.ml" +# 9480 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -9461,18 +9489,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 9465 "src/ocaml/preprocess/parser_raw.ml" +# 9493 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9470 "src/ocaml/preprocess/parser_raw.ml" +# 9498 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9476 "src/ocaml/preprocess/parser_raw.ml" +# 9504 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -9481,22 +9509,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9487 "src/ocaml/preprocess/parser_raw.ml" +# 9515 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 9493 "src/ocaml/preprocess/parser_raw.ml" +# 9521 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -9509,31 +9537,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 9513 "src/ocaml/preprocess/parser_raw.ml" +# 9541 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9519 "src/ocaml/preprocess/parser_raw.ml" +# 9547 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9525 "src/ocaml/preprocess/parser_raw.ml" +# 9553 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9531 "src/ocaml/preprocess/parser_raw.ml" +# 9559 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3121 "src/ocaml/preprocess/parser_raw.mly" +# 3097 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 9537 "src/ocaml/preprocess/parser_raw.ml" +# 9565 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_iterator)) in { @@ -9639,18 +9667,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 9643 "src/ocaml/preprocess/parser_raw.ml" +# 9671 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9648 "src/ocaml/preprocess/parser_raw.ml" +# 9676 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9654 "src/ocaml/preprocess/parser_raw.ml" +# 9682 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -9659,22 +9687,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9665 "src/ocaml/preprocess/parser_raw.ml" +# 9693 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 9671 "src/ocaml/preprocess/parser_raw.ml" +# 9699 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -9687,7 +9715,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 9691 "src/ocaml/preprocess/parser_raw.ml" +# 9719 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -9695,27 +9723,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 9701 "src/ocaml/preprocess/parser_raw.ml" +# 9729 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9707 "src/ocaml/preprocess/parser_raw.ml" +# 9735 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9713 "src/ocaml/preprocess/parser_raw.ml" +# 9741 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9719 "src/ocaml/preprocess/parser_raw.ml" +# 9747 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -9728,18 +9756,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 9732 "src/ocaml/preprocess/parser_raw.ml" +# 9760 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9737 "src/ocaml/preprocess/parser_raw.ml" +# 9765 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9743 "src/ocaml/preprocess/parser_raw.ml" +# 9771 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -9748,22 +9776,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9754 "src/ocaml/preprocess/parser_raw.ml" +# 9782 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 9760 "src/ocaml/preprocess/parser_raw.ml" +# 9788 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -9776,31 +9804,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 9780 "src/ocaml/preprocess/parser_raw.ml" +# 9808 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9786 "src/ocaml/preprocess/parser_raw.ml" +# 9814 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9792 "src/ocaml/preprocess/parser_raw.ml" +# 9820 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9798 "src/ocaml/preprocess/parser_raw.ml" +# 9826 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3121 "src/ocaml/preprocess/parser_raw.mly" +# 3097 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 9804 "src/ocaml/preprocess/parser_raw.ml" +# 9832 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_iterator)) in { @@ -9876,14 +9904,14 @@ module Tables = struct let _4 = let _1 = _1_inlined5 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9882 "src/ocaml/preprocess/parser_raw.ml" +# 9910 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9887 "src/ocaml/preprocess/parser_raw.ml" +# 9915 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -9898,18 +9926,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 9902 "src/ocaml/preprocess/parser_raw.ml" +# 9930 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9907 "src/ocaml/preprocess/parser_raw.ml" +# 9935 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 9913 "src/ocaml/preprocess/parser_raw.ml" +# 9941 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -9918,22 +9946,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9924 "src/ocaml/preprocess/parser_raw.ml" +# 9952 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 9930 "src/ocaml/preprocess/parser_raw.ml" +# 9958 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -9946,7 +9974,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 9950 "src/ocaml/preprocess/parser_raw.ml" +# 9978 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -9954,33 +9982,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 9960 "src/ocaml/preprocess/parser_raw.ml" +# 9988 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9966 "src/ocaml/preprocess/parser_raw.ml" +# 9994 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9972 "src/ocaml/preprocess/parser_raw.ml" +# 10000 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 9978 "src/ocaml/preprocess/parser_raw.ml" +# 10006 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3121 "src/ocaml/preprocess/parser_raw.mly" +# 3097 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 9984 "src/ocaml/preprocess/parser_raw.ml" +# 10012 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_iterator)) in { @@ -10084,18 +10112,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 10088 "src/ocaml/preprocess/parser_raw.ml" +# 10116 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10093 "src/ocaml/preprocess/parser_raw.ml" +# 10121 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10099 "src/ocaml/preprocess/parser_raw.ml" +# 10127 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -10104,22 +10132,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10110 "src/ocaml/preprocess/parser_raw.ml" +# 10138 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 10116 "src/ocaml/preprocess/parser_raw.ml" +# 10144 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -10132,25 +10160,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 10136 "src/ocaml/preprocess/parser_raw.ml" +# 10164 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10142 "src/ocaml/preprocess/parser_raw.ml" +# 10170 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10148 "src/ocaml/preprocess/parser_raw.ml" +# 10176 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10154 "src/ocaml/preprocess/parser_raw.ml" +# 10182 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -10165,18 +10193,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 10169 "src/ocaml/preprocess/parser_raw.ml" +# 10197 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10174 "src/ocaml/preprocess/parser_raw.ml" +# 10202 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10180 "src/ocaml/preprocess/parser_raw.ml" +# 10208 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -10185,22 +10213,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10191 "src/ocaml/preprocess/parser_raw.ml" +# 10219 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 10197 "src/ocaml/preprocess/parser_raw.ml" +# 10225 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -10213,7 +10241,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 10217 "src/ocaml/preprocess/parser_raw.ml" +# 10245 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -10221,33 +10249,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 10227 "src/ocaml/preprocess/parser_raw.ml" +# 10255 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10233 "src/ocaml/preprocess/parser_raw.ml" +# 10261 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10239 "src/ocaml/preprocess/parser_raw.ml" +# 10267 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10245 "src/ocaml/preprocess/parser_raw.ml" +# 10273 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3121 "src/ocaml/preprocess/parser_raw.mly" +# 3097 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 10251 "src/ocaml/preprocess/parser_raw.ml" +# 10279 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_iterator)) in { @@ -10360,18 +10388,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 10364 "src/ocaml/preprocess/parser_raw.ml" +# 10392 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10369 "src/ocaml/preprocess/parser_raw.ml" +# 10397 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10375 "src/ocaml/preprocess/parser_raw.ml" +# 10403 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -10380,22 +10408,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10386 "src/ocaml/preprocess/parser_raw.ml" +# 10414 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 10392 "src/ocaml/preprocess/parser_raw.ml" +# 10420 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -10408,7 +10436,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 10412 "src/ocaml/preprocess/parser_raw.ml" +# 10440 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -10416,27 +10444,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 10422 "src/ocaml/preprocess/parser_raw.ml" +# 10450 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10428 "src/ocaml/preprocess/parser_raw.ml" +# 10456 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10434 "src/ocaml/preprocess/parser_raw.ml" +# 10462 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10440 "src/ocaml/preprocess/parser_raw.ml" +# 10468 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -10451,18 +10479,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 10455 "src/ocaml/preprocess/parser_raw.ml" +# 10483 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10460 "src/ocaml/preprocess/parser_raw.ml" +# 10488 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10466 "src/ocaml/preprocess/parser_raw.ml" +# 10494 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -10471,22 +10499,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10477 "src/ocaml/preprocess/parser_raw.ml" +# 10505 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 10483 "src/ocaml/preprocess/parser_raw.ml" +# 10511 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -10499,7 +10527,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 10503 "src/ocaml/preprocess/parser_raw.ml" +# 10531 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -10507,33 +10535,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 10513 "src/ocaml/preprocess/parser_raw.ml" +# 10541 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10519 "src/ocaml/preprocess/parser_raw.ml" +# 10547 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10525 "src/ocaml/preprocess/parser_raw.ml" +# 10553 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10531 "src/ocaml/preprocess/parser_raw.ml" +# 10559 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3121 "src/ocaml/preprocess/parser_raw.mly" +# 3097 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_range { start = _2 ; stop = _4 ; direction = _3 } ) -# 10537 "src/ocaml/preprocess/parser_raw.ml" +# 10565 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_iterator)) in { @@ -10567,20 +10595,20 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10573 "src/ocaml/preprocess/parser_raw.ml" +# 10601 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10578 "src/ocaml/preprocess/parser_raw.ml" +# 10606 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3123 "src/ocaml/preprocess/parser_raw.mly" +# 3099 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_in _2 ) -# 10584 "src/ocaml/preprocess/parser_raw.ml" +# 10612 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_iterator)) in { @@ -10642,18 +10670,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 10646 "src/ocaml/preprocess/parser_raw.ml" +# 10674 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10651 "src/ocaml/preprocess/parser_raw.ml" +# 10679 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10657 "src/ocaml/preprocess/parser_raw.ml" +# 10685 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -10662,22 +10690,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10668 "src/ocaml/preprocess/parser_raw.ml" +# 10696 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 10674 "src/ocaml/preprocess/parser_raw.ml" +# 10702 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -10690,31 +10718,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 10694 "src/ocaml/preprocess/parser_raw.ml" +# 10722 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10700 "src/ocaml/preprocess/parser_raw.ml" +# 10728 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10706 "src/ocaml/preprocess/parser_raw.ml" +# 10734 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10712 "src/ocaml/preprocess/parser_raw.ml" +# 10740 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3123 "src/ocaml/preprocess/parser_raw.mly" +# 3099 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_in _2 ) -# 10718 "src/ocaml/preprocess/parser_raw.ml" +# 10746 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_iterator)) in { @@ -10785,18 +10813,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 10789 "src/ocaml/preprocess/parser_raw.ml" +# 10817 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10794 "src/ocaml/preprocess/parser_raw.ml" +# 10822 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 10800 "src/ocaml/preprocess/parser_raw.ml" +# 10828 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -10805,22 +10833,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10811 "src/ocaml/preprocess/parser_raw.ml" +# 10839 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 10817 "src/ocaml/preprocess/parser_raw.ml" +# 10845 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -10833,7 +10861,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 10837 "src/ocaml/preprocess/parser_raw.ml" +# 10865 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -10841,33 +10869,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 10847 "src/ocaml/preprocess/parser_raw.ml" +# 10875 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10853 "src/ocaml/preprocess/parser_raw.ml" +# 10881 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10859 "src/ocaml/preprocess/parser_raw.ml" +# 10887 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10865 "src/ocaml/preprocess/parser_raw.ml" +# 10893 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3123 "src/ocaml/preprocess/parser_raw.mly" +# 3099 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_in _2 ) -# 10871 "src/ocaml/preprocess/parser_raw.ml" +# 10899 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_iterator)) in { @@ -10891,9 +10919,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5033 "src/ocaml/preprocess/parser_raw.mly" +# 5032 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10897 "src/ocaml/preprocess/parser_raw.ml" +# 10925 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10916,9 +10944,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5034 "src/ocaml/preprocess/parser_raw.mly" +# 5033 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 10922 "src/ocaml/preprocess/parser_raw.ml" +# 10950 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10948,9 +10976,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 5122 "src/ocaml/preprocess/parser_raw.mly" +# 5121 "src/ocaml/preprocess/parser_raw.mly" ( "[]" ) -# 10954 "src/ocaml/preprocess/parser_raw.ml" +# 10982 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -10980,9 +11008,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 5123 "src/ocaml/preprocess/parser_raw.mly" +# 5122 "src/ocaml/preprocess/parser_raw.mly" ( "()" ) -# 10986 "src/ocaml/preprocess/parser_raw.ml" +# 11014 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11005,9 +11033,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5124 "src/ocaml/preprocess/parser_raw.mly" +# 5123 "src/ocaml/preprocess/parser_raw.mly" ( "false" ) -# 11011 "src/ocaml/preprocess/parser_raw.ml" +# 11039 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11030,9 +11058,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5125 "src/ocaml/preprocess/parser_raw.mly" +# 5124 "src/ocaml/preprocess/parser_raw.mly" ( "true" ) -# 11036 "src/ocaml/preprocess/parser_raw.ml" +# 11064 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11051,17 +11079,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1155 "src/ocaml/preprocess/parser_raw.mly" +# 1167 "src/ocaml/preprocess/parser_raw.mly" (string) -# 11057 "src/ocaml/preprocess/parser_raw.ml" +# 11085 "src/ocaml/preprocess/parser_raw.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) = -# 5128 "src/ocaml/preprocess/parser_raw.mly" +# 5127 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11065 "src/ocaml/preprocess/parser_raw.ml" +# 11093 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11099,14 +11127,14 @@ module Tables = struct let _endpos = _endpos__3_ in let _v = let _1 = -# 5119 "src/ocaml/preprocess/parser_raw.mly" +# 5118 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 11105 "src/ocaml/preprocess/parser_raw.ml" +# 11133 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5129 "src/ocaml/preprocess/parser_raw.mly" +# 5128 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11110 "src/ocaml/preprocess/parser_raw.ml" +# 11138 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -11130,9 +11158,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5130 "src/ocaml/preprocess/parser_raw.mly" +# 5129 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11136 "src/ocaml/preprocess/parser_raw.ml" +# 11164 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11155,9 +11183,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5133 "src/ocaml/preprocess/parser_raw.mly" +# 5132 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11161 "src/ocaml/preprocess/parser_raw.ml" +# 11189 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11209,14 +11237,14 @@ module Tables = struct let _endpos = _endpos__3_ in let _v = let _3 = -# 5119 "src/ocaml/preprocess/parser_raw.mly" +# 5118 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 11215 "src/ocaml/preprocess/parser_raw.ml" +# 11243 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5134 "src/ocaml/preprocess/parser_raw.mly" +# 5133 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 11220 "src/ocaml/preprocess/parser_raw.ml" +# 11248 "src/ocaml/preprocess/parser_raw.ml" : (Longident.t)) in { @@ -11255,14 +11283,14 @@ module Tables = struct let _endpos = _endpos__3_ in let _v = let _1 = -# 5119 "src/ocaml/preprocess/parser_raw.mly" +# 5118 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 11261 "src/ocaml/preprocess/parser_raw.ml" +# 11289 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5135 "src/ocaml/preprocess/parser_raw.mly" +# 5134 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 11266 "src/ocaml/preprocess/parser_raw.ml" +# 11294 "src/ocaml/preprocess/parser_raw.ml" : (Longident.t)) in { @@ -11286,9 +11314,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5136 "src/ocaml/preprocess/parser_raw.mly" +# 5135 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 11292 "src/ocaml/preprocess/parser_raw.ml" +# 11320 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11325,9 +11353,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.core_type * Parsetree.core_type) = -# 2630 "src/ocaml/preprocess/parser_raw.mly" +# 2657 "src/ocaml/preprocess/parser_raw.mly" ( _1, _3 ) -# 11331 "src/ocaml/preprocess/parser_raw.ml" +# 11359 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11362,9 +11390,9 @@ module Tables = struct let xs = let x = let gbl = -# 5267 "src/ocaml/preprocess/parser_raw.mly" +# 5266 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 11368 "src/ocaml/preprocess/parser_raw.ml" +# 11396 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos_m1_ in @@ -11374,36 +11402,36 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4344 "src/ocaml/preprocess/parser_raw.mly" +# 4318 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 11383 "src/ocaml/preprocess/parser_raw.ml" +# 11411 "src/ocaml/preprocess/parser_raw.ml" in -# 1434 "src/ocaml/preprocess/parser_raw.mly" +# 1446 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 11389 "src/ocaml/preprocess/parser_raw.ml" +# 11417 "src/ocaml/preprocess/parser_raw.ml" in # 264 "" ( List.rev xs ) -# 11395 "src/ocaml/preprocess/parser_raw.ml" +# 11423 "src/ocaml/preprocess/parser_raw.ml" in -# 1454 "src/ocaml/preprocess/parser_raw.mly" +# 1466 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11401 "src/ocaml/preprocess/parser_raw.ml" +# 11429 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4352 "src/ocaml/preprocess/parser_raw.mly" +# 4326 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 11407 "src/ocaml/preprocess/parser_raw.ml" +# 11435 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constructor_arguments)) in { @@ -11450,9 +11478,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5268 "src/ocaml/preprocess/parser_raw.mly" +# 5267 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 11456 "src/ocaml/preprocess/parser_raw.ml" +# 11484 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in @@ -11463,36 +11491,36 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4344 "src/ocaml/preprocess/parser_raw.mly" +# 4318 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 11472 "src/ocaml/preprocess/parser_raw.ml" +# 11500 "src/ocaml/preprocess/parser_raw.ml" in -# 1434 "src/ocaml/preprocess/parser_raw.mly" +# 1446 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 11478 "src/ocaml/preprocess/parser_raw.ml" +# 11506 "src/ocaml/preprocess/parser_raw.ml" in # 264 "" ( List.rev xs ) -# 11484 "src/ocaml/preprocess/parser_raw.ml" +# 11512 "src/ocaml/preprocess/parser_raw.ml" in -# 1454 "src/ocaml/preprocess/parser_raw.mly" +# 1466 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11490 "src/ocaml/preprocess/parser_raw.ml" +# 11518 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4352 "src/ocaml/preprocess/parser_raw.mly" +# 4326 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 11496 "src/ocaml/preprocess/parser_raw.ml" +# 11524 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constructor_arguments)) in { @@ -11543,9 +11571,9 @@ module Tables = struct let x = let _endpos__0_ = _endpos__2_ in let gbl = -# 5267 "src/ocaml/preprocess/parser_raw.mly" +# 5266 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 11549 "src/ocaml/preprocess/parser_raw.ml" +# 11577 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos_m1_ in @@ -11555,36 +11583,36 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4344 "src/ocaml/preprocess/parser_raw.mly" +# 4318 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 11564 "src/ocaml/preprocess/parser_raw.ml" +# 11592 "src/ocaml/preprocess/parser_raw.ml" in -# 1438 "src/ocaml/preprocess/parser_raw.mly" +# 1450 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 11570 "src/ocaml/preprocess/parser_raw.ml" +# 11598 "src/ocaml/preprocess/parser_raw.ml" in # 264 "" ( List.rev xs ) -# 11576 "src/ocaml/preprocess/parser_raw.ml" +# 11604 "src/ocaml/preprocess/parser_raw.ml" in -# 1454 "src/ocaml/preprocess/parser_raw.mly" +# 1466 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11582 "src/ocaml/preprocess/parser_raw.ml" +# 11610 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4352 "src/ocaml/preprocess/parser_raw.mly" +# 4326 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 11588 "src/ocaml/preprocess/parser_raw.ml" +# 11616 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constructor_arguments)) in { @@ -11645,9 +11673,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5268 "src/ocaml/preprocess/parser_raw.mly" +# 5267 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 11651 "src/ocaml/preprocess/parser_raw.ml" +# 11679 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in @@ -11658,36 +11686,36 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4344 "src/ocaml/preprocess/parser_raw.mly" +# 4318 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 11667 "src/ocaml/preprocess/parser_raw.ml" +# 11695 "src/ocaml/preprocess/parser_raw.ml" in -# 1438 "src/ocaml/preprocess/parser_raw.mly" +# 1450 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 11673 "src/ocaml/preprocess/parser_raw.ml" +# 11701 "src/ocaml/preprocess/parser_raw.ml" in # 264 "" ( List.rev xs ) -# 11679 "src/ocaml/preprocess/parser_raw.ml" +# 11707 "src/ocaml/preprocess/parser_raw.ml" in -# 1454 "src/ocaml/preprocess/parser_raw.mly" +# 1466 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 11685 "src/ocaml/preprocess/parser_raw.ml" +# 11713 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4352 "src/ocaml/preprocess/parser_raw.mly" +# 4326 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_tuple tys ) -# 11691 "src/ocaml/preprocess/parser_raw.ml" +# 11719 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constructor_arguments)) in { @@ -11725,9 +11753,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.constructor_arguments) = -# 4354 "src/ocaml/preprocess/parser_raw.mly" +# 4328 "src/ocaml/preprocess/parser_raw.mly" ( Pcstr_record _2 ) -# 11731 "src/ocaml/preprocess/parser_raw.ml" +# 11759 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11750,9 +11778,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constructor_declaration list) = -# 4261 "src/ocaml/preprocess/parser_raw.mly" +# 4235 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 11756 "src/ocaml/preprocess/parser_raw.ml" +# 11784 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11776,14 +11804,14 @@ module Tables = struct let _endpos = _endpos_xs_ in let _v = let cs = -# 1539 "src/ocaml/preprocess/parser_raw.mly" +# 1551 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 11782 "src/ocaml/preprocess/parser_raw.ml" +# 11810 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4263 "src/ocaml/preprocess/parser_raw.mly" +# 4237 "src/ocaml/preprocess/parser_raw.mly" ( cs ) -# 11787 "src/ocaml/preprocess/parser_raw.ml" +# 11815 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constructor_declaration list)) in { @@ -11808,14 +11836,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 4520 "src/ocaml/preprocess/parser_raw.mly" +# 4532 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11814 "src/ocaml/preprocess/parser_raw.ml" +# 11842 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4510 "src/ocaml/preprocess/parser_raw.mly" +# 4518 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11819 "src/ocaml/preprocess/parser_raw.ml" +# 11847 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -11846,9 +11874,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type) = -# 4512 "src/ocaml/preprocess/parser_raw.mly" +# 4520 "src/ocaml/preprocess/parser_raw.mly" ( Typ.attr _1 _2 ) -# 11852 "src/ocaml/preprocess/parser_raw.ml" +# 11880 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11871,9 +11899,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4877 "src/ocaml/preprocess/parser_raw.mly" +# 4874 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11877 "src/ocaml/preprocess/parser_raw.ml" +# 11905 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11896,9 +11924,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4877 "src/ocaml/preprocess/parser_raw.mly" +# 4874 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11902 "src/ocaml/preprocess/parser_raw.ml" +# 11930 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11921,9 +11949,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4877 "src/ocaml/preprocess/parser_raw.mly" +# 4874 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 11927 "src/ocaml/preprocess/parser_raw.ml" +# 11955 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -11960,9 +11988,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.core_type) = -# 4828 "src/ocaml/preprocess/parser_raw.mly" +# 4825 "src/ocaml/preprocess/parser_raw.mly" ( type_ ) -# 11966 "src/ocaml/preprocess/parser_raw.ml" +# 11994 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12026,11 +12054,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 12034 "src/ocaml/preprocess/parser_raw.ml" +# 12062 "src/ocaml/preprocess/parser_raw.ml" in let attrs = @@ -12038,24 +12066,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12044 "src/ocaml/preprocess/parser_raw.ml" +# 12072 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 12050 "src/ocaml/preprocess/parser_raw.ml" +# 12078 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4830 "src/ocaml/preprocess/parser_raw.mly" +# 4827 "src/ocaml/preprocess/parser_raw.mly" ( wrap_typ_attrs ~loc:_sloc (reloc_typ ~loc:_sloc package_type) attrs ) -# 12059 "src/ocaml/preprocess/parser_raw.ml" +# 12087 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -12095,24 +12123,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 4833 "src/ocaml/preprocess/parser_raw.mly" +# 4830 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant([ field ], Closed, None) ) -# 12101 "src/ocaml/preprocess/parser_raw.ml" +# 12129 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 12110 "src/ocaml/preprocess/parser_raw.ml" +# 12138 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4852 "src/ocaml/preprocess/parser_raw.mly" +# 4849 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12116 "src/ocaml/preprocess/parser_raw.ml" +# 12144 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -12164,24 +12192,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 12168 "src/ocaml/preprocess/parser_raw.ml" +# 12196 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12173 "src/ocaml/preprocess/parser_raw.ml" +# 12201 "src/ocaml/preprocess/parser_raw.ml" in -# 4948 "src/ocaml/preprocess/parser_raw.mly" +# 4947 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12179 "src/ocaml/preprocess/parser_raw.ml" +# 12207 "src/ocaml/preprocess/parser_raw.ml" in -# 4835 "src/ocaml/preprocess/parser_raw.mly" +# 4832 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant(fields, Closed, None) ) -# 12185 "src/ocaml/preprocess/parser_raw.ml" +# 12213 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -12189,15 +12217,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 12195 "src/ocaml/preprocess/parser_raw.ml" +# 12223 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4852 "src/ocaml/preprocess/parser_raw.mly" +# 4849 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12201 "src/ocaml/preprocess/parser_raw.ml" +# 12229 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -12256,24 +12284,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 12260 "src/ocaml/preprocess/parser_raw.ml" +# 12288 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12265 "src/ocaml/preprocess/parser_raw.ml" +# 12293 "src/ocaml/preprocess/parser_raw.ml" in -# 4948 "src/ocaml/preprocess/parser_raw.mly" +# 4947 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12271 "src/ocaml/preprocess/parser_raw.ml" +# 12299 "src/ocaml/preprocess/parser_raw.ml" in -# 4837 "src/ocaml/preprocess/parser_raw.mly" +# 4834 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant(field :: fields, Closed, None) ) -# 12277 "src/ocaml/preprocess/parser_raw.ml" +# 12305 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -12281,15 +12309,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 12287 "src/ocaml/preprocess/parser_raw.ml" +# 12315 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4852 "src/ocaml/preprocess/parser_raw.mly" +# 4849 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12293 "src/ocaml/preprocess/parser_raw.ml" +# 12321 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -12341,24 +12369,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 12345 "src/ocaml/preprocess/parser_raw.ml" +# 12373 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12350 "src/ocaml/preprocess/parser_raw.ml" +# 12378 "src/ocaml/preprocess/parser_raw.ml" in -# 4948 "src/ocaml/preprocess/parser_raw.mly" +# 4947 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12356 "src/ocaml/preprocess/parser_raw.ml" +# 12384 "src/ocaml/preprocess/parser_raw.ml" in -# 4839 "src/ocaml/preprocess/parser_raw.mly" +# 4836 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant(fields, Open, None) ) -# 12362 "src/ocaml/preprocess/parser_raw.ml" +# 12390 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -12366,15 +12394,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 12372 "src/ocaml/preprocess/parser_raw.ml" +# 12400 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4852 "src/ocaml/preprocess/parser_raw.mly" +# 4849 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12378 "src/ocaml/preprocess/parser_raw.ml" +# 12406 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -12407,24 +12435,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 4841 "src/ocaml/preprocess/parser_raw.mly" +# 4838 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant([], Open, None) ) -# 12413 "src/ocaml/preprocess/parser_raw.ml" +# 12441 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 12422 "src/ocaml/preprocess/parser_raw.ml" +# 12450 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4852 "src/ocaml/preprocess/parser_raw.mly" +# 4849 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12428 "src/ocaml/preprocess/parser_raw.ml" +# 12456 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -12476,24 +12504,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 12480 "src/ocaml/preprocess/parser_raw.ml" +# 12508 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12485 "src/ocaml/preprocess/parser_raw.ml" +# 12513 "src/ocaml/preprocess/parser_raw.ml" in -# 4948 "src/ocaml/preprocess/parser_raw.mly" +# 4947 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12491 "src/ocaml/preprocess/parser_raw.ml" +# 12519 "src/ocaml/preprocess/parser_raw.ml" in -# 4843 "src/ocaml/preprocess/parser_raw.mly" +# 4840 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant(fields, Closed, Some []) ) -# 12497 "src/ocaml/preprocess/parser_raw.ml" +# 12525 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -12501,15 +12529,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 12507 "src/ocaml/preprocess/parser_raw.ml" +# 12535 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4852 "src/ocaml/preprocess/parser_raw.mly" +# 4849 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12513 "src/ocaml/preprocess/parser_raw.ml" +# 12541 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -12576,18 +12604,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 12580 "src/ocaml/preprocess/parser_raw.ml" +# 12608 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12585 "src/ocaml/preprocess/parser_raw.ml" +# 12613 "src/ocaml/preprocess/parser_raw.ml" in -# 4976 "src/ocaml/preprocess/parser_raw.mly" +# 4975 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12591 "src/ocaml/preprocess/parser_raw.ml" +# 12619 "src/ocaml/preprocess/parser_raw.ml" in let fields = @@ -12595,24 +12623,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 12599 "src/ocaml/preprocess/parser_raw.ml" +# 12627 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12604 "src/ocaml/preprocess/parser_raw.ml" +# 12632 "src/ocaml/preprocess/parser_raw.ml" in -# 4948 "src/ocaml/preprocess/parser_raw.mly" +# 4947 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12610 "src/ocaml/preprocess/parser_raw.ml" +# 12638 "src/ocaml/preprocess/parser_raw.ml" in -# 4848 "src/ocaml/preprocess/parser_raw.mly" +# 4845 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_variant(fields, Closed, Some tags) ) -# 12616 "src/ocaml/preprocess/parser_raw.ml" +# 12644 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__6_ in @@ -12620,15 +12648,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 12626 "src/ocaml/preprocess/parser_raw.ml" +# 12654 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4852 "src/ocaml/preprocess/parser_raw.mly" +# 4849 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12632 "src/ocaml/preprocess/parser_raw.ml" +# 12660 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -12687,24 +12715,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 12691 "src/ocaml/preprocess/parser_raw.ml" +# 12719 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12696 "src/ocaml/preprocess/parser_raw.ml" +# 12724 "src/ocaml/preprocess/parser_raw.ml" in -# 4781 "src/ocaml/preprocess/parser_raw.mly" +# 4778 "src/ocaml/preprocess/parser_raw.mly" ( (None, ty1) :: ltys ) -# 12702 "src/ocaml/preprocess/parser_raw.ml" +# 12730 "src/ocaml/preprocess/parser_raw.ml" in -# 4850 "src/ocaml/preprocess/parser_raw.mly" +# 4847 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_unboxed_tuple _2 ) -# 12708 "src/ocaml/preprocess/parser_raw.ml" +# 12736 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -12712,15 +12740,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 12718 "src/ocaml/preprocess/parser_raw.ml" +# 12746 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4852 "src/ocaml/preprocess/parser_raw.mly" +# 4849 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12724 "src/ocaml/preprocess/parser_raw.ml" +# 12752 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -12781,9 +12809,9 @@ module Tables = struct let ty1 : (Parsetree.core_type) = Obj.magic ty1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 12787 "src/ocaml/preprocess/parser_raw.ml" +# 12815 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -12797,24 +12825,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 12801 "src/ocaml/preprocess/parser_raw.ml" +# 12829 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 12806 "src/ocaml/preprocess/parser_raw.ml" +# 12834 "src/ocaml/preprocess/parser_raw.ml" in -# 4787 "src/ocaml/preprocess/parser_raw.mly" +# 4784 "src/ocaml/preprocess/parser_raw.mly" ( (Some label, ty1) :: ltys ) -# 12812 "src/ocaml/preprocess/parser_raw.ml" +# 12840 "src/ocaml/preprocess/parser_raw.ml" in -# 4850 "src/ocaml/preprocess/parser_raw.mly" +# 4847 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_unboxed_tuple _2 ) -# 12818 "src/ocaml/preprocess/parser_raw.ml" +# 12846 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -12822,15 +12850,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 12828 "src/ocaml/preprocess/parser_raw.ml" +# 12856 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4852 "src/ocaml/preprocess/parser_raw.mly" +# 4849 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 12834 "src/ocaml/preprocess/parser_raw.ml" +# 12862 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -12854,9 +12882,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.direction_flag) = -# 5243 "src/ocaml/preprocess/parser_raw.mly" +# 5242 "src/ocaml/preprocess/parser_raw.mly" ( Upto ) -# 12860 "src/ocaml/preprocess/parser_raw.ml" +# 12888 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12879,9 +12907,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.direction_flag) = -# 5244 "src/ocaml/preprocess/parser_raw.mly" +# 5243 "src/ocaml/preprocess/parser_raw.mly" ( Downto ) -# 12885 "src/ocaml/preprocess/parser_raw.ml" +# 12913 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12897,9 +12925,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (string Location.loc option) = -# 5412 "src/ocaml/preprocess/parser_raw.mly" +# 5411 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 12903 "src/ocaml/preprocess/parser_raw.ml" +# 12931 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12929,9 +12957,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string Location.loc option) = -# 5413 "src/ocaml/preprocess/parser_raw.mly" +# 5412 "src/ocaml/preprocess/parser_raw.mly" ( Some _2 ) -# 12935 "src/ocaml/preprocess/parser_raw.ml" +# 12963 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12975,9 +13003,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.extension) = -# 5425 "src/ocaml/preprocess/parser_raw.mly" +# 5424 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _3) ) -# 12981 "src/ocaml/preprocess/parser_raw.ml" +# 13009 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -12996,9 +13024,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1143 "src/ocaml/preprocess/parser_raw.mly" +# 1155 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 13002 "src/ocaml/preprocess/parser_raw.ml" +# 13030 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -13008,9 +13036,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5427 "src/ocaml/preprocess/parser_raw.mly" +# 5426 "src/ocaml/preprocess/parser_raw.mly" ( mk_quotedext ~loc:_sloc _1 ) -# 13014 "src/ocaml/preprocess/parser_raw.ml" +# 13042 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.extension)) in { @@ -13065,9 +13093,9 @@ module Tables = struct let attrs = let _1 = _1_inlined3 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13071 "src/ocaml/preprocess/parser_raw.ml" +# 13099 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined3_ in @@ -13077,9 +13105,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 13083 "src/ocaml/preprocess/parser_raw.ml" +# 13111 "src/ocaml/preprocess/parser_raw.ml" in let cid = @@ -13088,19 +13116,19 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 13094 "src/ocaml/preprocess/parser_raw.ml" +# 13122 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4426 "src/ocaml/preprocess/parser_raw.mly" +# 4400 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info ) -# 13104 "src/ocaml/preprocess/parser_raw.ml" +# 13132 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.extension_constructor)) in { @@ -13148,9 +13176,9 @@ module Tables = struct let attrs = let _1 = _1_inlined2 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13154 "src/ocaml/preprocess/parser_raw.ml" +# 13182 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined2_ in @@ -13160,9 +13188,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 13166 "src/ocaml/preprocess/parser_raw.ml" +# 13194 "src/ocaml/preprocess/parser_raw.ml" in let cid = @@ -13170,25 +13198,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 13176 "src/ocaml/preprocess/parser_raw.ml" +# 13204 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_cid_ = _startpos__1_ in let _1 = -# 5217 "src/ocaml/preprocess/parser_raw.mly" +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 13183 "src/ocaml/preprocess/parser_raw.ml" +# 13211 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos_cid_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4426 "src/ocaml/preprocess/parser_raw.mly" +# 4400 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in Te.rebind cid lid ~attrs ~loc:(make_loc _sloc) ~info ) -# 13192 "src/ocaml/preprocess/parser_raw.ml" +# 13220 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.extension_constructor)) in { @@ -13214,24 +13242,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 4868 "src/ocaml/preprocess/parser_raw.mly" +# 4865 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_extension ext ) -# 13220 "src/ocaml/preprocess/parser_raw.ml" +# 13248 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ext_, _startpos_ext_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 13229 "src/ocaml/preprocess/parser_raw.ml" +# 13257 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4870 "src/ocaml/preprocess/parser_raw.mly" +# 4867 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13235 "src/ocaml/preprocess/parser_raw.ml" +# 13263 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -13280,10 +13308,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5400 "src/ocaml/preprocess/parser_raw.mly" +# 5399 "src/ocaml/preprocess/parser_raw.mly" ( mark_symbol_docs _sloc; mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 13287 "src/ocaml/preprocess/parser_raw.ml" +# 13315 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.attribute)) in { @@ -13301,14 +13329,14 @@ module Tables = struct let _endpos = _startpos in let _v = let params = -# 2570 "src/ocaml/preprocess/parser_raw.mly" +# 2597 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 13307 "src/ocaml/preprocess/parser_raw.ml" +# 13335 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2388 "src/ocaml/preprocess/parser_raw.mly" +# 2415 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 13312 "src/ocaml/preprocess/parser_raw.ml" +# 13340 "src/ocaml/preprocess/parser_raw.ml" : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) in { @@ -13351,24 +13379,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 13355 "src/ocaml/preprocess/parser_raw.ml" +# 13383 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13360 "src/ocaml/preprocess/parser_raw.ml" +# 13388 "src/ocaml/preprocess/parser_raw.ml" in -# 2572 "src/ocaml/preprocess/parser_raw.mly" +# 2599 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 13366 "src/ocaml/preprocess/parser_raw.ml" +# 13394 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2388 "src/ocaml/preprocess/parser_raw.mly" +# 2415 "src/ocaml/preprocess/parser_raw.mly" ( params ) -# 13372 "src/ocaml/preprocess/parser_raw.ml" +# 13400 "src/ocaml/preprocess/parser_raw.ml" : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) in { @@ -13441,36 +13469,36 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13447 "src/ocaml/preprocess/parser_raw.ml" +# 13475 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13453 "src/ocaml/preprocess/parser_raw.ml" +# 13481 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2944 "src/ocaml/preprocess/parser_raw.mly" +# 2920 "src/ocaml/preprocess/parser_raw.mly" ( mkfunction _3 body_constraint _6 ~loc:_sloc ~attrs:_2 ) -# 13462 "src/ocaml/preprocess/parser_raw.ml" +# 13490 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13468 "src/ocaml/preprocess/parser_raw.ml" +# 13496 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2945 "src/ocaml/preprocess/parser_raw.mly" +# 2921 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13474 "src/ocaml/preprocess/parser_raw.ml" +# 13502 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -13552,24 +13580,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13558 "src/ocaml/preprocess/parser_raw.ml" +# 13586 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13564 "src/ocaml/preprocess/parser_raw.ml" +# 13592 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2944 "src/ocaml/preprocess/parser_raw.mly" +# 2920 "src/ocaml/preprocess/parser_raw.mly" ( mkfunction _3 body_constraint _6 ~loc:_sloc ~attrs:_2 ) -# 13573 "src/ocaml/preprocess/parser_raw.ml" +# 13601 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos__6_ in @@ -13577,21 +13605,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 13583 "src/ocaml/preprocess/parser_raw.ml" +# 13611 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13589 "src/ocaml/preprocess/parser_raw.ml" +# 13617 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2945 "src/ocaml/preprocess/parser_raw.mly" +# 2921 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13595 "src/ocaml/preprocess/parser_raw.ml" +# 13623 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -13641,18 +13669,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 13645 "src/ocaml/preprocess/parser_raw.ml" +# 13673 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13650 "src/ocaml/preprocess/parser_raw.ml" +# 13678 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 13656 "src/ocaml/preprocess/parser_raw.ml" +# 13684 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -13661,22 +13689,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13667 "src/ocaml/preprocess/parser_raw.ml" +# 13695 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13673 "src/ocaml/preprocess/parser_raw.ml" +# 13701 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3491 "src/ocaml/preprocess/parser_raw.mly" +# 3472 "src/ocaml/preprocess/parser_raw.mly" ( let ext, attrs = _2 in match ext with | None -> Pfunction_cases (_3, make_loc _sloc, attrs) @@ -13686,7 +13714,7 @@ module Tables = struct let function_ = mkfunction [] empty_body_constraint cases ~loc:_sloc ~attrs:_2 in Pfunction_body function_ ) -# 13690 "src/ocaml/preprocess/parser_raw.ml" +# 13718 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.function_body)) in { @@ -13710,9 +13738,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.function_body) = -# 3501 "src/ocaml/preprocess/parser_raw.mly" +# 3482 "src/ocaml/preprocess/parser_raw.mly" ( Pfunction_body _1 ) -# 13716 "src/ocaml/preprocess/parser_raw.ml" +# 13744 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13735,9 +13763,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = -# 2949 "src/ocaml/preprocess/parser_raw.mly" +# 2925 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13741 "src/ocaml/preprocess/parser_raw.ml" +# 13769 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -13815,24 +13843,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13821 "src/ocaml/preprocess/parser_raw.ml" +# 13849 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13827 "src/ocaml/preprocess/parser_raw.ml" +# 13855 "src/ocaml/preprocess/parser_raw.ml" in -# 2994 "src/ocaml/preprocess/parser_raw.mly" +# 2970 "src/ocaml/preprocess/parser_raw.mly" ( let name, modes = _4 in let body = maybe_pmod_constraint modes _5 in Pexp_letmodule(name, body, (merloc _endpos__6_ _7)), _3 ) -# 13836 "src/ocaml/preprocess/parser_raw.ml" +# 13864 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__7_ in @@ -13840,10 +13868,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13847 "src/ocaml/preprocess/parser_raw.ml" +# 13875 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -13930,9 +13958,9 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13936 "src/ocaml/preprocess/parser_raw.ml" +# 13964 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__1_inlined1_ in @@ -13941,19 +13969,19 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 13947 "src/ocaml/preprocess/parser_raw.ml" +# 13975 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4325 "src/ocaml/preprocess/parser_raw.mly" +# 4299 "src/ocaml/preprocess/parser_raw.mly" ( let vars, args, res = _2 in Te.decl _1 ~vars ~args ?res ~attrs:_3 ~loc:(make_loc _sloc) ) -# 13957 "src/ocaml/preprocess/parser_raw.ml" +# 13985 "src/ocaml/preprocess/parser_raw.ml" in let _3 = @@ -13961,21 +13989,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 13967 "src/ocaml/preprocess/parser_raw.ml" +# 13995 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 13973 "src/ocaml/preprocess/parser_raw.ml" +# 14001 "src/ocaml/preprocess/parser_raw.ml" in -# 2999 "src/ocaml/preprocess/parser_raw.mly" +# 2975 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_letexception(_4, _6), _3 ) -# 13979 "src/ocaml/preprocess/parser_raw.ml" +# 14007 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__6_ in @@ -13983,10 +14011,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 13990 "src/ocaml/preprocess/parser_raw.ml" +# 14018 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -14058,28 +14086,28 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14064 "src/ocaml/preprocess/parser_raw.ml" +# 14092 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14070 "src/ocaml/preprocess/parser_raw.ml" +# 14098 "src/ocaml/preprocess/parser_raw.ml" in let _3 = -# 5310 "src/ocaml/preprocess/parser_raw.mly" +# 5309 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 14076 "src/ocaml/preprocess/parser_raw.ml" +# 14104 "src/ocaml/preprocess/parser_raw.ml" in -# 3001 "src/ocaml/preprocess/parser_raw.mly" +# 2977 "src/ocaml/preprocess/parser_raw.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, (merloc _endpos__6_ _7)), _4 ) -# 14083 "src/ocaml/preprocess/parser_raw.ml" +# 14111 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__7_ in @@ -14087,10 +14115,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 14094 "src/ocaml/preprocess/parser_raw.ml" +# 14122 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -14169,28 +14197,28 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14175 "src/ocaml/preprocess/parser_raw.ml" +# 14203 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14181 "src/ocaml/preprocess/parser_raw.ml" +# 14209 "src/ocaml/preprocess/parser_raw.ml" in let _3 = -# 5311 "src/ocaml/preprocess/parser_raw.mly" +# 5310 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 14187 "src/ocaml/preprocess/parser_raw.ml" +# 14215 "src/ocaml/preprocess/parser_raw.ml" in -# 3001 "src/ocaml/preprocess/parser_raw.mly" +# 2977 "src/ocaml/preprocess/parser_raw.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, (merloc _endpos__6_ _7)), _4 ) -# 14194 "src/ocaml/preprocess/parser_raw.ml" +# 14222 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__7_ in @@ -14198,10 +14226,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 14205 "src/ocaml/preprocess/parser_raw.ml" +# 14233 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -14266,18 +14294,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 14270 "src/ocaml/preprocess/parser_raw.ml" +# 14298 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14275 "src/ocaml/preprocess/parser_raw.ml" +# 14303 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14281 "src/ocaml/preprocess/parser_raw.ml" +# 14309 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -14285,21 +14313,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14291 "src/ocaml/preprocess/parser_raw.ml" +# 14319 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14297 "src/ocaml/preprocess/parser_raw.ml" +# 14325 "src/ocaml/preprocess/parser_raw.ml" in -# 3005 "src/ocaml/preprocess/parser_raw.mly" +# 2981 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_match(_3, _5), _2 ) -# 14303 "src/ocaml/preprocess/parser_raw.ml" +# 14331 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -14307,10 +14335,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 14314 "src/ocaml/preprocess/parser_raw.ml" +# 14342 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -14375,18 +14403,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 14379 "src/ocaml/preprocess/parser_raw.ml" +# 14407 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14384 "src/ocaml/preprocess/parser_raw.ml" +# 14412 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14390 "src/ocaml/preprocess/parser_raw.ml" +# 14418 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -14394,21 +14422,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14400 "src/ocaml/preprocess/parser_raw.ml" +# 14428 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14406 "src/ocaml/preprocess/parser_raw.ml" +# 14434 "src/ocaml/preprocess/parser_raw.ml" in -# 3007 "src/ocaml/preprocess/parser_raw.mly" +# 2983 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_try(_3, _5), _2 ) -# 14412 "src/ocaml/preprocess/parser_raw.ml" +# 14440 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -14416,10 +14444,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 14423 "src/ocaml/preprocess/parser_raw.ml" +# 14451 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -14482,14 +14510,14 @@ module Tables = struct let _5 = let _1 = _1_inlined3 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14488 "src/ocaml/preprocess/parser_raw.ml" +# 14516 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14493 "src/ocaml/preprocess/parser_raw.ml" +# 14521 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -14497,21 +14525,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14503 "src/ocaml/preprocess/parser_raw.ml" +# 14531 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14509 "src/ocaml/preprocess/parser_raw.ml" +# 14537 "src/ocaml/preprocess/parser_raw.ml" in -# 3013 "src/ocaml/preprocess/parser_raw.mly" +# 2989 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_overwrite(_3, (merloc _endpos__4_ _5)), _2 ) -# 14515 "src/ocaml/preprocess/parser_raw.ml" +# 14543 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -14519,10 +14547,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 14526 "src/ocaml/preprocess/parser_raw.ml" +# 14554 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -14613,18 +14641,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 14617 "src/ocaml/preprocess/parser_raw.ml" +# 14645 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14622 "src/ocaml/preprocess/parser_raw.ml" +# 14650 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14628 "src/ocaml/preprocess/parser_raw.ml" +# 14656 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -14633,22 +14661,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14639 "src/ocaml/preprocess/parser_raw.ml" +# 14667 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14645 "src/ocaml/preprocess/parser_raw.ml" +# 14673 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -14661,25 +14689,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 14665 "src/ocaml/preprocess/parser_raw.ml" +# 14693 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14671 "src/ocaml/preprocess/parser_raw.ml" +# 14699 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14677 "src/ocaml/preprocess/parser_raw.ml" +# 14705 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14683 "src/ocaml/preprocess/parser_raw.ml" +# 14711 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -14687,21 +14715,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14693 "src/ocaml/preprocess/parser_raw.ml" +# 14721 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14699 "src/ocaml/preprocess/parser_raw.ml" +# 14727 "src/ocaml/preprocess/parser_raw.ml" in -# 3013 "src/ocaml/preprocess/parser_raw.mly" +# 2989 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_overwrite(_3, (merloc _endpos__4_ _5)), _2 ) -# 14705 "src/ocaml/preprocess/parser_raw.ml" +# 14733 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -14709,10 +14737,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 14716 "src/ocaml/preprocess/parser_raw.ml" +# 14744 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -14812,18 +14840,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 14816 "src/ocaml/preprocess/parser_raw.ml" +# 14844 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14821 "src/ocaml/preprocess/parser_raw.ml" +# 14849 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 14827 "src/ocaml/preprocess/parser_raw.ml" +# 14855 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -14832,22 +14860,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14838 "src/ocaml/preprocess/parser_raw.ml" +# 14866 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14844 "src/ocaml/preprocess/parser_raw.ml" +# 14872 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -14860,7 +14888,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 14864 "src/ocaml/preprocess/parser_raw.ml" +# 14892 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -14868,27 +14896,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 14874 "src/ocaml/preprocess/parser_raw.ml" +# 14902 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14880 "src/ocaml/preprocess/parser_raw.ml" +# 14908 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14886 "src/ocaml/preprocess/parser_raw.ml" +# 14914 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14892 "src/ocaml/preprocess/parser_raw.ml" +# 14920 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -14896,21 +14924,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 14902 "src/ocaml/preprocess/parser_raw.ml" +# 14930 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 14908 "src/ocaml/preprocess/parser_raw.ml" +# 14936 "src/ocaml/preprocess/parser_raw.ml" in -# 3013 "src/ocaml/preprocess/parser_raw.mly" +# 2989 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_overwrite(_3, (merloc _endpos__4_ _5)), _2 ) -# 14914 "src/ocaml/preprocess/parser_raw.ml" +# 14942 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -14918,10 +14946,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 14925 "src/ocaml/preprocess/parser_raw.ml" +# 14953 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -14998,27 +15026,27 @@ module Tables = struct let _7 = let _1 = _1_inlined4 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15004 "src/ocaml/preprocess/parser_raw.ml" +# 15032 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15009 "src/ocaml/preprocess/parser_raw.ml" +# 15037 "src/ocaml/preprocess/parser_raw.ml" in let _5 = let _1 = _1_inlined3 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15017 "src/ocaml/preprocess/parser_raw.ml" +# 15045 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15022 "src/ocaml/preprocess/parser_raw.ml" +# 15050 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -15026,21 +15054,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15032 "src/ocaml/preprocess/parser_raw.ml" +# 15060 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15038 "src/ocaml/preprocess/parser_raw.ml" +# 15066 "src/ocaml/preprocess/parser_raw.ml" in -# 3015 "src/ocaml/preprocess/parser_raw.mly" +# 2991 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 15044 "src/ocaml/preprocess/parser_raw.ml" +# 15072 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -15048,10 +15076,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 15055 "src/ocaml/preprocess/parser_raw.ml" +# 15083 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -15156,18 +15184,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 15160 "src/ocaml/preprocess/parser_raw.ml" +# 15188 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15165 "src/ocaml/preprocess/parser_raw.ml" +# 15193 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15171 "src/ocaml/preprocess/parser_raw.ml" +# 15199 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -15176,22 +15204,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15182 "src/ocaml/preprocess/parser_raw.ml" +# 15210 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15188 "src/ocaml/preprocess/parser_raw.ml" +# 15216 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -15204,38 +15232,38 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15208 "src/ocaml/preprocess/parser_raw.ml" +# 15236 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15214 "src/ocaml/preprocess/parser_raw.ml" +# 15242 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15220 "src/ocaml/preprocess/parser_raw.ml" +# 15248 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15226 "src/ocaml/preprocess/parser_raw.ml" +# 15254 "src/ocaml/preprocess/parser_raw.ml" in let _5 = let _1 = _1_inlined3 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15234 "src/ocaml/preprocess/parser_raw.ml" +# 15262 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15239 "src/ocaml/preprocess/parser_raw.ml" +# 15267 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -15243,21 +15271,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15249 "src/ocaml/preprocess/parser_raw.ml" +# 15277 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15255 "src/ocaml/preprocess/parser_raw.ml" +# 15283 "src/ocaml/preprocess/parser_raw.ml" in -# 3015 "src/ocaml/preprocess/parser_raw.mly" +# 2991 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 15261 "src/ocaml/preprocess/parser_raw.ml" +# 15289 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -15265,10 +15293,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 15272 "src/ocaml/preprocess/parser_raw.ml" +# 15300 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -15382,18 +15410,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 15386 "src/ocaml/preprocess/parser_raw.ml" +# 15414 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15391 "src/ocaml/preprocess/parser_raw.ml" +# 15419 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15397 "src/ocaml/preprocess/parser_raw.ml" +# 15425 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -15402,22 +15430,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15408 "src/ocaml/preprocess/parser_raw.ml" +# 15436 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15414 "src/ocaml/preprocess/parser_raw.ml" +# 15442 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -15430,7 +15458,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15434 "src/ocaml/preprocess/parser_raw.ml" +# 15462 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -15438,40 +15466,40 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 15444 "src/ocaml/preprocess/parser_raw.ml" +# 15472 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15450 "src/ocaml/preprocess/parser_raw.ml" +# 15478 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15456 "src/ocaml/preprocess/parser_raw.ml" +# 15484 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15462 "src/ocaml/preprocess/parser_raw.ml" +# 15490 "src/ocaml/preprocess/parser_raw.ml" in let _5 = let _1 = _1_inlined3 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15470 "src/ocaml/preprocess/parser_raw.ml" +# 15498 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15475 "src/ocaml/preprocess/parser_raw.ml" +# 15503 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -15479,21 +15507,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15485 "src/ocaml/preprocess/parser_raw.ml" +# 15513 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15491 "src/ocaml/preprocess/parser_raw.ml" +# 15519 "src/ocaml/preprocess/parser_raw.ml" in -# 3015 "src/ocaml/preprocess/parser_raw.mly" +# 2991 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 15497 "src/ocaml/preprocess/parser_raw.ml" +# 15525 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -15501,10 +15529,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 15508 "src/ocaml/preprocess/parser_raw.ml" +# 15536 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -15602,14 +15630,14 @@ module Tables = struct let _7 = let _1 = _1_inlined6 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15608 "src/ocaml/preprocess/parser_raw.ml" +# 15636 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15613 "src/ocaml/preprocess/parser_raw.ml" +# 15641 "src/ocaml/preprocess/parser_raw.ml" in let _5 = @@ -15622,18 +15650,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 15626 "src/ocaml/preprocess/parser_raw.ml" +# 15654 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15631 "src/ocaml/preprocess/parser_raw.ml" +# 15659 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15637 "src/ocaml/preprocess/parser_raw.ml" +# 15665 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -15642,22 +15670,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15648 "src/ocaml/preprocess/parser_raw.ml" +# 15676 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15654 "src/ocaml/preprocess/parser_raw.ml" +# 15682 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -15670,25 +15698,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15674 "src/ocaml/preprocess/parser_raw.ml" +# 15702 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15680 "src/ocaml/preprocess/parser_raw.ml" +# 15708 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15686 "src/ocaml/preprocess/parser_raw.ml" +# 15714 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15692 "src/ocaml/preprocess/parser_raw.ml" +# 15720 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -15696,21 +15724,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15702 "src/ocaml/preprocess/parser_raw.ml" +# 15730 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15708 "src/ocaml/preprocess/parser_raw.ml" +# 15736 "src/ocaml/preprocess/parser_raw.ml" in -# 3015 "src/ocaml/preprocess/parser_raw.mly" +# 2991 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 15714 "src/ocaml/preprocess/parser_raw.ml" +# 15742 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined6_ in @@ -15718,10 +15746,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 15725 "src/ocaml/preprocess/parser_raw.ml" +# 15753 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -15847,18 +15875,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 15851 "src/ocaml/preprocess/parser_raw.ml" +# 15879 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15856 "src/ocaml/preprocess/parser_raw.ml" +# 15884 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15862 "src/ocaml/preprocess/parser_raw.ml" +# 15890 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -15867,22 +15895,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15873 "src/ocaml/preprocess/parser_raw.ml" +# 15901 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15879 "src/ocaml/preprocess/parser_raw.ml" +# 15907 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -15895,25 +15923,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15899 "src/ocaml/preprocess/parser_raw.ml" +# 15927 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15905 "src/ocaml/preprocess/parser_raw.ml" +# 15933 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15911 "src/ocaml/preprocess/parser_raw.ml" +# 15939 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15917 "src/ocaml/preprocess/parser_raw.ml" +# 15945 "src/ocaml/preprocess/parser_raw.ml" in let _5 = @@ -15926,18 +15954,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 15930 "src/ocaml/preprocess/parser_raw.ml" +# 15958 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15935 "src/ocaml/preprocess/parser_raw.ml" +# 15963 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 15941 "src/ocaml/preprocess/parser_raw.ml" +# 15969 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -15946,22 +15974,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15952 "src/ocaml/preprocess/parser_raw.ml" +# 15980 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 15958 "src/ocaml/preprocess/parser_raw.ml" +# 15986 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -15974,25 +16002,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 15978 "src/ocaml/preprocess/parser_raw.ml" +# 16006 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15984 "src/ocaml/preprocess/parser_raw.ml" +# 16012 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15990 "src/ocaml/preprocess/parser_raw.ml" +# 16018 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 15996 "src/ocaml/preprocess/parser_raw.ml" +# 16024 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -16000,21 +16028,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16006 "src/ocaml/preprocess/parser_raw.ml" +# 16034 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16012 "src/ocaml/preprocess/parser_raw.ml" +# 16040 "src/ocaml/preprocess/parser_raw.ml" in -# 3015 "src/ocaml/preprocess/parser_raw.mly" +# 2991 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 16018 "src/ocaml/preprocess/parser_raw.ml" +# 16046 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_inlined1_ in @@ -16022,10 +16050,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 16029 "src/ocaml/preprocess/parser_raw.ml" +# 16057 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -16160,18 +16188,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 16164 "src/ocaml/preprocess/parser_raw.ml" +# 16192 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16169 "src/ocaml/preprocess/parser_raw.ml" +# 16197 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16175 "src/ocaml/preprocess/parser_raw.ml" +# 16203 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -16180,22 +16208,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16186 "src/ocaml/preprocess/parser_raw.ml" +# 16214 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16192 "src/ocaml/preprocess/parser_raw.ml" +# 16220 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -16208,7 +16236,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16212 "src/ocaml/preprocess/parser_raw.ml" +# 16240 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -16216,27 +16244,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 16222 "src/ocaml/preprocess/parser_raw.ml" +# 16250 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16228 "src/ocaml/preprocess/parser_raw.ml" +# 16256 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16234 "src/ocaml/preprocess/parser_raw.ml" +# 16262 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16240 "src/ocaml/preprocess/parser_raw.ml" +# 16268 "src/ocaml/preprocess/parser_raw.ml" in let _5 = @@ -16249,18 +16277,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 16253 "src/ocaml/preprocess/parser_raw.ml" +# 16281 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16258 "src/ocaml/preprocess/parser_raw.ml" +# 16286 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16264 "src/ocaml/preprocess/parser_raw.ml" +# 16292 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -16269,22 +16297,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16275 "src/ocaml/preprocess/parser_raw.ml" +# 16303 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16281 "src/ocaml/preprocess/parser_raw.ml" +# 16309 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -16297,25 +16325,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16301 "src/ocaml/preprocess/parser_raw.ml" +# 16329 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16307 "src/ocaml/preprocess/parser_raw.ml" +# 16335 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16313 "src/ocaml/preprocess/parser_raw.ml" +# 16341 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16319 "src/ocaml/preprocess/parser_raw.ml" +# 16347 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -16323,21 +16351,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16329 "src/ocaml/preprocess/parser_raw.ml" +# 16357 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16335 "src/ocaml/preprocess/parser_raw.ml" +# 16363 "src/ocaml/preprocess/parser_raw.ml" in -# 3015 "src/ocaml/preprocess/parser_raw.mly" +# 2991 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 16341 "src/ocaml/preprocess/parser_raw.ml" +# 16369 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_inlined1_ in @@ -16345,10 +16373,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 16352 "src/ocaml/preprocess/parser_raw.ml" +# 16380 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -16453,14 +16481,14 @@ module Tables = struct let _7 = let _1 = _1_inlined7 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16459 "src/ocaml/preprocess/parser_raw.ml" +# 16487 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16464 "src/ocaml/preprocess/parser_raw.ml" +# 16492 "src/ocaml/preprocess/parser_raw.ml" in let _5 = @@ -16475,18 +16503,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 16479 "src/ocaml/preprocess/parser_raw.ml" +# 16507 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16484 "src/ocaml/preprocess/parser_raw.ml" +# 16512 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16490 "src/ocaml/preprocess/parser_raw.ml" +# 16518 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -16495,22 +16523,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16501 "src/ocaml/preprocess/parser_raw.ml" +# 16529 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16507 "src/ocaml/preprocess/parser_raw.ml" +# 16535 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -16523,7 +16551,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16527 "src/ocaml/preprocess/parser_raw.ml" +# 16555 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -16531,27 +16559,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 16537 "src/ocaml/preprocess/parser_raw.ml" +# 16565 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16543 "src/ocaml/preprocess/parser_raw.ml" +# 16571 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16549 "src/ocaml/preprocess/parser_raw.ml" +# 16577 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16555 "src/ocaml/preprocess/parser_raw.ml" +# 16583 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -16559,21 +16587,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16565 "src/ocaml/preprocess/parser_raw.ml" +# 16593 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16571 "src/ocaml/preprocess/parser_raw.ml" +# 16599 "src/ocaml/preprocess/parser_raw.ml" in -# 3015 "src/ocaml/preprocess/parser_raw.mly" +# 2991 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 16577 "src/ocaml/preprocess/parser_raw.ml" +# 16605 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined7_ in @@ -16581,10 +16609,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 16588 "src/ocaml/preprocess/parser_raw.ml" +# 16616 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -16717,18 +16745,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 16721 "src/ocaml/preprocess/parser_raw.ml" +# 16749 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16726 "src/ocaml/preprocess/parser_raw.ml" +# 16754 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16732 "src/ocaml/preprocess/parser_raw.ml" +# 16760 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -16737,22 +16765,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16743 "src/ocaml/preprocess/parser_raw.ml" +# 16771 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16749 "src/ocaml/preprocess/parser_raw.ml" +# 16777 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -16765,25 +16793,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16769 "src/ocaml/preprocess/parser_raw.ml" +# 16797 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16775 "src/ocaml/preprocess/parser_raw.ml" +# 16803 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16781 "src/ocaml/preprocess/parser_raw.ml" +# 16809 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16787 "src/ocaml/preprocess/parser_raw.ml" +# 16815 "src/ocaml/preprocess/parser_raw.ml" in let _5 = @@ -16798,18 +16826,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 16802 "src/ocaml/preprocess/parser_raw.ml" +# 16830 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16807 "src/ocaml/preprocess/parser_raw.ml" +# 16835 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 16813 "src/ocaml/preprocess/parser_raw.ml" +# 16841 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -16818,22 +16846,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16824 "src/ocaml/preprocess/parser_raw.ml" +# 16852 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16830 "src/ocaml/preprocess/parser_raw.ml" +# 16858 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -16846,7 +16874,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 16850 "src/ocaml/preprocess/parser_raw.ml" +# 16878 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -16854,27 +16882,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 16860 "src/ocaml/preprocess/parser_raw.ml" +# 16888 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16866 "src/ocaml/preprocess/parser_raw.ml" +# 16894 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16872 "src/ocaml/preprocess/parser_raw.ml" +# 16900 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16878 "src/ocaml/preprocess/parser_raw.ml" +# 16906 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -16882,21 +16910,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 16888 "src/ocaml/preprocess/parser_raw.ml" +# 16916 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 16894 "src/ocaml/preprocess/parser_raw.ml" +# 16922 "src/ocaml/preprocess/parser_raw.ml" in -# 3015 "src/ocaml/preprocess/parser_raw.mly" +# 2991 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 16900 "src/ocaml/preprocess/parser_raw.ml" +# 16928 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_inlined1_ in @@ -16904,10 +16932,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 16911 "src/ocaml/preprocess/parser_raw.ml" +# 16939 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -17049,18 +17077,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 17053 "src/ocaml/preprocess/parser_raw.ml" +# 17081 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17058 "src/ocaml/preprocess/parser_raw.ml" +# 17086 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17064 "src/ocaml/preprocess/parser_raw.ml" +# 17092 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -17069,22 +17097,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17075 "src/ocaml/preprocess/parser_raw.ml" +# 17103 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17081 "src/ocaml/preprocess/parser_raw.ml" +# 17109 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -17097,7 +17125,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17101 "src/ocaml/preprocess/parser_raw.ml" +# 17129 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -17105,27 +17133,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 17111 "src/ocaml/preprocess/parser_raw.ml" +# 17139 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17117 "src/ocaml/preprocess/parser_raw.ml" +# 17145 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17123 "src/ocaml/preprocess/parser_raw.ml" +# 17151 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17129 "src/ocaml/preprocess/parser_raw.ml" +# 17157 "src/ocaml/preprocess/parser_raw.ml" in let _5 = @@ -17140,18 +17168,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 17144 "src/ocaml/preprocess/parser_raw.ml" +# 17172 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17149 "src/ocaml/preprocess/parser_raw.ml" +# 17177 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17155 "src/ocaml/preprocess/parser_raw.ml" +# 17183 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -17160,22 +17188,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17166 "src/ocaml/preprocess/parser_raw.ml" +# 17194 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17172 "src/ocaml/preprocess/parser_raw.ml" +# 17200 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -17188,7 +17216,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17192 "src/ocaml/preprocess/parser_raw.ml" +# 17220 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -17196,27 +17224,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 17202 "src/ocaml/preprocess/parser_raw.ml" +# 17230 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17208 "src/ocaml/preprocess/parser_raw.ml" +# 17236 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17214 "src/ocaml/preprocess/parser_raw.ml" +# 17242 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17220 "src/ocaml/preprocess/parser_raw.ml" +# 17248 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -17224,21 +17252,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17230 "src/ocaml/preprocess/parser_raw.ml" +# 17258 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17236 "src/ocaml/preprocess/parser_raw.ml" +# 17264 "src/ocaml/preprocess/parser_raw.ml" in -# 3015 "src/ocaml/preprocess/parser_raw.mly" +# 2991 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), Some (merloc _endpos__6_ _7)), _2 ) -# 17242 "src/ocaml/preprocess/parser_raw.ml" +# 17270 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_inlined1_ in @@ -17246,10 +17274,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 17253 "src/ocaml/preprocess/parser_raw.ml" +# 17281 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -17312,14 +17340,14 @@ module Tables = struct let _5 = let _1 = _1_inlined3 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17318 "src/ocaml/preprocess/parser_raw.ml" +# 17346 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17323 "src/ocaml/preprocess/parser_raw.ml" +# 17351 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -17327,21 +17355,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17333 "src/ocaml/preprocess/parser_raw.ml" +# 17361 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17339 "src/ocaml/preprocess/parser_raw.ml" +# 17367 "src/ocaml/preprocess/parser_raw.ml" in -# 3017 "src/ocaml/preprocess/parser_raw.mly" +# 2993 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), None), _2 ) -# 17345 "src/ocaml/preprocess/parser_raw.ml" +# 17373 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -17349,10 +17377,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 17356 "src/ocaml/preprocess/parser_raw.ml" +# 17384 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -17443,18 +17471,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 17447 "src/ocaml/preprocess/parser_raw.ml" +# 17475 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17452 "src/ocaml/preprocess/parser_raw.ml" +# 17480 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17458 "src/ocaml/preprocess/parser_raw.ml" +# 17486 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -17463,22 +17491,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17469 "src/ocaml/preprocess/parser_raw.ml" +# 17497 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17475 "src/ocaml/preprocess/parser_raw.ml" +# 17503 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -17491,25 +17519,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17495 "src/ocaml/preprocess/parser_raw.ml" +# 17523 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17501 "src/ocaml/preprocess/parser_raw.ml" +# 17529 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17507 "src/ocaml/preprocess/parser_raw.ml" +# 17535 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17513 "src/ocaml/preprocess/parser_raw.ml" +# 17541 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -17517,21 +17545,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17523 "src/ocaml/preprocess/parser_raw.ml" +# 17551 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17529 "src/ocaml/preprocess/parser_raw.ml" +# 17557 "src/ocaml/preprocess/parser_raw.ml" in -# 3017 "src/ocaml/preprocess/parser_raw.mly" +# 2993 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), None), _2 ) -# 17535 "src/ocaml/preprocess/parser_raw.ml" +# 17563 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -17539,10 +17567,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 17546 "src/ocaml/preprocess/parser_raw.ml" +# 17574 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -17642,18 +17670,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 17646 "src/ocaml/preprocess/parser_raw.ml" +# 17674 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17651 "src/ocaml/preprocess/parser_raw.ml" +# 17679 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 17657 "src/ocaml/preprocess/parser_raw.ml" +# 17685 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -17662,22 +17690,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17668 "src/ocaml/preprocess/parser_raw.ml" +# 17696 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17674 "src/ocaml/preprocess/parser_raw.ml" +# 17702 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -17690,7 +17718,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 17694 "src/ocaml/preprocess/parser_raw.ml" +# 17722 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -17698,27 +17726,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 17704 "src/ocaml/preprocess/parser_raw.ml" +# 17732 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17710 "src/ocaml/preprocess/parser_raw.ml" +# 17738 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17716 "src/ocaml/preprocess/parser_raw.ml" +# 17744 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17722 "src/ocaml/preprocess/parser_raw.ml" +# 17750 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -17726,21 +17754,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17732 "src/ocaml/preprocess/parser_raw.ml" +# 17760 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17738 "src/ocaml/preprocess/parser_raw.ml" +# 17766 "src/ocaml/preprocess/parser_raw.ml" in -# 3017 "src/ocaml/preprocess/parser_raw.mly" +# 2993 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ifthenelse(_3, (merloc _endpos__4_ _5), None), _2 ) -# 17744 "src/ocaml/preprocess/parser_raw.ml" +# 17772 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -17748,10 +17776,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 17755 "src/ocaml/preprocess/parser_raw.ml" +# 17783 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -17823,21 +17851,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17829 "src/ocaml/preprocess/parser_raw.ml" +# 17857 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17835 "src/ocaml/preprocess/parser_raw.ml" +# 17863 "src/ocaml/preprocess/parser_raw.ml" in -# 3019 "src/ocaml/preprocess/parser_raw.mly" +# 2995 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_while(_3, (merloc _endpos__4_ _5)), _2 ) -# 17841 "src/ocaml/preprocess/parser_raw.ml" +# 17869 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__6_ in @@ -17845,10 +17873,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 17852 "src/ocaml/preprocess/parser_raw.ml" +# 17880 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -17948,21 +17976,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 17954 "src/ocaml/preprocess/parser_raw.ml" +# 17982 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 17960 "src/ocaml/preprocess/parser_raw.ml" +# 17988 "src/ocaml/preprocess/parser_raw.ml" in -# 3026 "src/ocaml/preprocess/parser_raw.mly" +# 3002 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_for(_3, (merloc _endpos__4_ _5), (merloc _endpos__6_ _7), _6, (merloc _endpos__8_ _9)), _2 ) -# 17966 "src/ocaml/preprocess/parser_raw.ml" +# 17994 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__10_ in @@ -17970,10 +17998,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 17977 "src/ocaml/preprocess/parser_raw.ml" +# 18005 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -18024,21 +18052,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18030 "src/ocaml/preprocess/parser_raw.ml" +# 18058 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18036 "src/ocaml/preprocess/parser_raw.ml" +# 18064 "src/ocaml/preprocess/parser_raw.ml" in -# 3028 "src/ocaml/preprocess/parser_raw.mly" +# 3004 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_assert _3, _2 ) -# 18042 "src/ocaml/preprocess/parser_raw.ml" +# 18070 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -18046,10 +18074,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 18053 "src/ocaml/preprocess/parser_raw.ml" +# 18081 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -18100,21 +18128,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18106 "src/ocaml/preprocess/parser_raw.ml" +# 18134 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18112 "src/ocaml/preprocess/parser_raw.ml" +# 18140 "src/ocaml/preprocess/parser_raw.ml" in -# 3030 "src/ocaml/preprocess/parser_raw.mly" +# 3006 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_lazy _3, _2 ) -# 18118 "src/ocaml/preprocess/parser_raw.ml" +# 18146 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -18122,10 +18150,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 18129 "src/ocaml/preprocess/parser_raw.ml" +# 18157 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -18160,22 +18188,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18166 "src/ocaml/preprocess/parser_raw.ml" +# 18194 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18171 "src/ocaml/preprocess/parser_raw.ml" +# 18199 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3032 "src/ocaml/preprocess/parser_raw.mly" +# 3008 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuminus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 18179 "src/ocaml/preprocess/parser_raw.ml" +# 18207 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -18183,10 +18211,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 18190 "src/ocaml/preprocess/parser_raw.ml" +# 18218 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -18249,18 +18277,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 18253 "src/ocaml/preprocess/parser_raw.ml" +# 18281 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18258 "src/ocaml/preprocess/parser_raw.ml" +# 18286 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18264 "src/ocaml/preprocess/parser_raw.ml" +# 18292 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -18269,22 +18297,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18275 "src/ocaml/preprocess/parser_raw.ml" +# 18303 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18281 "src/ocaml/preprocess/parser_raw.ml" +# 18309 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -18297,33 +18325,33 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18301 "src/ocaml/preprocess/parser_raw.ml" +# 18329 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18307 "src/ocaml/preprocess/parser_raw.ml" +# 18335 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18313 "src/ocaml/preprocess/parser_raw.ml" +# 18341 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18319 "src/ocaml/preprocess/parser_raw.ml" +# 18347 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3032 "src/ocaml/preprocess/parser_raw.mly" +# 3008 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuminus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 18327 "src/ocaml/preprocess/parser_raw.ml" +# 18355 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -18331,10 +18359,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 18338 "src/ocaml/preprocess/parser_raw.ml" +# 18366 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -18406,18 +18434,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 18410 "src/ocaml/preprocess/parser_raw.ml" +# 18438 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18415 "src/ocaml/preprocess/parser_raw.ml" +# 18443 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18421 "src/ocaml/preprocess/parser_raw.ml" +# 18449 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -18426,22 +18454,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18432 "src/ocaml/preprocess/parser_raw.ml" +# 18460 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18438 "src/ocaml/preprocess/parser_raw.ml" +# 18466 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -18454,7 +18482,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18458 "src/ocaml/preprocess/parser_raw.ml" +# 18486 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -18462,35 +18490,35 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 18468 "src/ocaml/preprocess/parser_raw.ml" +# 18496 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18474 "src/ocaml/preprocess/parser_raw.ml" +# 18502 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18480 "src/ocaml/preprocess/parser_raw.ml" +# 18508 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18486 "src/ocaml/preprocess/parser_raw.ml" +# 18514 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3032 "src/ocaml/preprocess/parser_raw.mly" +# 3008 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuminus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 18494 "src/ocaml/preprocess/parser_raw.ml" +# 18522 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -18498,10 +18526,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 18505 "src/ocaml/preprocess/parser_raw.ml" +# 18533 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -18536,22 +18564,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18542 "src/ocaml/preprocess/parser_raw.ml" +# 18570 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18547 "src/ocaml/preprocess/parser_raw.ml" +# 18575 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3035 "src/ocaml/preprocess/parser_raw.mly" +# 3011 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuplus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 18555 "src/ocaml/preprocess/parser_raw.ml" +# 18583 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -18559,10 +18587,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 18566 "src/ocaml/preprocess/parser_raw.ml" +# 18594 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -18625,18 +18653,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 18629 "src/ocaml/preprocess/parser_raw.ml" +# 18657 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18634 "src/ocaml/preprocess/parser_raw.ml" +# 18662 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18640 "src/ocaml/preprocess/parser_raw.ml" +# 18668 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -18645,22 +18673,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18651 "src/ocaml/preprocess/parser_raw.ml" +# 18679 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18657 "src/ocaml/preprocess/parser_raw.ml" +# 18685 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -18673,33 +18701,33 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18677 "src/ocaml/preprocess/parser_raw.ml" +# 18705 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18683 "src/ocaml/preprocess/parser_raw.ml" +# 18711 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18689 "src/ocaml/preprocess/parser_raw.ml" +# 18717 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18695 "src/ocaml/preprocess/parser_raw.ml" +# 18723 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3035 "src/ocaml/preprocess/parser_raw.mly" +# 3011 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuplus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 18703 "src/ocaml/preprocess/parser_raw.ml" +# 18731 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -18707,10 +18735,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 18714 "src/ocaml/preprocess/parser_raw.ml" +# 18742 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -18782,18 +18810,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 18786 "src/ocaml/preprocess/parser_raw.ml" +# 18814 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18791 "src/ocaml/preprocess/parser_raw.ml" +# 18819 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18797 "src/ocaml/preprocess/parser_raw.ml" +# 18825 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -18802,22 +18830,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18808 "src/ocaml/preprocess/parser_raw.ml" +# 18836 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 18814 "src/ocaml/preprocess/parser_raw.ml" +# 18842 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -18830,7 +18858,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 18834 "src/ocaml/preprocess/parser_raw.ml" +# 18862 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -18838,35 +18866,35 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 18844 "src/ocaml/preprocess/parser_raw.ml" +# 18872 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18850 "src/ocaml/preprocess/parser_raw.ml" +# 18878 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18856 "src/ocaml/preprocess/parser_raw.ml" +# 18884 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18862 "src/ocaml/preprocess/parser_raw.ml" +# 18890 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 3035 "src/ocaml/preprocess/parser_raw.mly" +# 3011 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = mkuplus ~oploc:_loc__1_ _1 _2 in desc, (None, attrs) ) -# 18870 "src/ocaml/preprocess/parser_raw.ml" +# 18898 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -18874,10 +18902,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2951 "src/ocaml/preprocess/parser_raw.mly" +# 2927 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 18881 "src/ocaml/preprocess/parser_raw.ml" +# 18909 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -18901,9 +18929,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = -# 2954 "src/ocaml/preprocess/parser_raw.mly" +# 2930 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18907 "src/ocaml/preprocess/parser_raw.ml" +# 18935 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -18938,12 +18966,12 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 18942 "src/ocaml/preprocess/parser_raw.ml" +# 18970 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 18947 "src/ocaml/preprocess/parser_raw.ml" +# 18975 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -18951,15 +18979,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3040 "src/ocaml/preprocess/parser_raw.mly" +# 3016 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_apply(_1, _2)) ) -# 18957 "src/ocaml/preprocess/parser_raw.ml" +# 18985 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 18963 "src/ocaml/preprocess/parser_raw.ml" +# 18991 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -18996,21 +19024,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 19002 "src/ocaml/preprocess/parser_raw.ml" +# 19030 "src/ocaml/preprocess/parser_raw.ml" in -# 3041 "src/ocaml/preprocess/parser_raw.mly" +# 3017 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19008 "src/ocaml/preprocess/parser_raw.ml" +# 19036 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19014 "src/ocaml/preprocess/parser_raw.ml" +# 19042 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -19039,12 +19067,12 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 19043 "src/ocaml/preprocess/parser_raw.ml" +# 19071 "src/ocaml/preprocess/parser_raw.ml" in -# 3628 "src/ocaml/preprocess/parser_raw.mly" +# 3609 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19048 "src/ocaml/preprocess/parser_raw.ml" +# 19076 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_xs_) in @@ -19052,15 +19080,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3043 "src/ocaml/preprocess/parser_raw.mly" +# 3019 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_tuple _1) ) -# 19058 "src/ocaml/preprocess/parser_raw.ml" +# 19086 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19064 "src/ocaml/preprocess/parser_raw.ml" +# 19092 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -19099,36 +19127,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 19105 "src/ocaml/preprocess/parser_raw.ml" +# 19133 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3046 "src/ocaml/preprocess/parser_raw.mly" +# 3022 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_construct(_1, Some _2)) ) -# 19114 "src/ocaml/preprocess/parser_raw.ml" +# 19142 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19120 "src/ocaml/preprocess/parser_raw.ml" +# 19148 "src/ocaml/preprocess/parser_raw.ml" in -# 3047 "src/ocaml/preprocess/parser_raw.mly" +# 3023 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19126 "src/ocaml/preprocess/parser_raw.ml" +# 19154 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19132 "src/ocaml/preprocess/parser_raw.ml" +# 19160 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -19176,45 +19204,45 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 19182 "src/ocaml/preprocess/parser_raw.ml" +# 19210 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3046 "src/ocaml/preprocess/parser_raw.mly" +# 3022 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_construct(_1, Some _2)) ) -# 19191 "src/ocaml/preprocess/parser_raw.ml" +# 19219 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 19200 "src/ocaml/preprocess/parser_raw.ml" +# 19228 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19206 "src/ocaml/preprocess/parser_raw.ml" +# 19234 "src/ocaml/preprocess/parser_raw.ml" in -# 3047 "src/ocaml/preprocess/parser_raw.mly" +# 3023 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19212 "src/ocaml/preprocess/parser_raw.ml" +# 19240 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19218 "src/ocaml/preprocess/parser_raw.ml" +# 19246 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -19250,15 +19278,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3049 "src/ocaml/preprocess/parser_raw.mly" +# 3025 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_variant(_1, Some _2)) ) -# 19256 "src/ocaml/preprocess/parser_raw.ml" +# 19284 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19262 "src/ocaml/preprocess/parser_raw.ml" +# 19290 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -19291,9 +19319,9 @@ module Tables = struct } = _menhir_stack in let _1 : (Parsetree.expression) = Obj.magic _1 in let op : ( -# 1066 "src/ocaml/preprocess/parser_raw.mly" +# 1078 "src/ocaml/preprocess/parser_raw.mly" (string) -# 19297 "src/ocaml/preprocess/parser_raw.ml" +# 19325 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -19303,46 +19331,46 @@ module Tables = struct let _1 = let e2 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19309 "src/ocaml/preprocess/parser_raw.ml" +# 19337 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19314 "src/ocaml/preprocess/parser_raw.ml" +# 19342 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_ in let op = let _1 = -# 5089 "src/ocaml/preprocess/parser_raw.mly" +# 5088 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 19322 "src/ocaml/preprocess/parser_raw.ml" +# 19350 "src/ocaml/preprocess/parser_raw.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 -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19331 "src/ocaml/preprocess/parser_raw.ml" +# 19359 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19340 "src/ocaml/preprocess/parser_raw.ml" +# 19368 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19346 "src/ocaml/preprocess/parser_raw.ml" +# 19374 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -19396,9 +19424,9 @@ module Tables = struct let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1066 "src/ocaml/preprocess/parser_raw.mly" +# 1078 "src/ocaml/preprocess/parser_raw.mly" (string) -# 19402 "src/ocaml/preprocess/parser_raw.ml" +# 19430 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -19415,18 +19443,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 19419 "src/ocaml/preprocess/parser_raw.ml" +# 19447 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19424 "src/ocaml/preprocess/parser_raw.ml" +# 19452 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19430 "src/ocaml/preprocess/parser_raw.ml" +# 19458 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -19435,22 +19463,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19441 "src/ocaml/preprocess/parser_raw.ml" +# 19469 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19447 "src/ocaml/preprocess/parser_raw.ml" +# 19475 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -19463,57 +19491,57 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19467 "src/ocaml/preprocess/parser_raw.ml" +# 19495 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19473 "src/ocaml/preprocess/parser_raw.ml" +# 19501 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19479 "src/ocaml/preprocess/parser_raw.ml" +# 19507 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19485 "src/ocaml/preprocess/parser_raw.ml" +# 19513 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5089 "src/ocaml/preprocess/parser_raw.mly" +# 5088 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 19493 "src/ocaml/preprocess/parser_raw.ml" +# 19521 "src/ocaml/preprocess/parser_raw.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 -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19502 "src/ocaml/preprocess/parser_raw.ml" +# 19530 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19511 "src/ocaml/preprocess/parser_raw.ml" +# 19539 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19517 "src/ocaml/preprocess/parser_raw.ml" +# 19545 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -19574,9 +19602,9 @@ module Tables = struct let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1066 "src/ocaml/preprocess/parser_raw.mly" +# 1078 "src/ocaml/preprocess/parser_raw.mly" (string) -# 19580 "src/ocaml/preprocess/parser_raw.ml" +# 19608 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -19595,18 +19623,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 19599 "src/ocaml/preprocess/parser_raw.ml" +# 19627 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19604 "src/ocaml/preprocess/parser_raw.ml" +# 19632 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19610 "src/ocaml/preprocess/parser_raw.ml" +# 19638 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -19615,22 +19643,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19621 "src/ocaml/preprocess/parser_raw.ml" +# 19649 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19627 "src/ocaml/preprocess/parser_raw.ml" +# 19655 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -19643,7 +19671,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19647 "src/ocaml/preprocess/parser_raw.ml" +# 19675 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -19651,59 +19679,59 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 19657 "src/ocaml/preprocess/parser_raw.ml" +# 19685 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19663 "src/ocaml/preprocess/parser_raw.ml" +# 19691 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19669 "src/ocaml/preprocess/parser_raw.ml" +# 19697 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19675 "src/ocaml/preprocess/parser_raw.ml" +# 19703 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5089 "src/ocaml/preprocess/parser_raw.mly" +# 5088 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 19683 "src/ocaml/preprocess/parser_raw.ml" +# 19711 "src/ocaml/preprocess/parser_raw.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 -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19692 "src/ocaml/preprocess/parser_raw.ml" +# 19720 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19701 "src/ocaml/preprocess/parser_raw.ml" +# 19729 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19707 "src/ocaml/preprocess/parser_raw.ml" +# 19735 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -19745,45 +19773,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19751 "src/ocaml/preprocess/parser_raw.ml" +# 19779 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19756 "src/ocaml/preprocess/parser_raw.ml" +# 19784 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5090 "src/ocaml/preprocess/parser_raw.mly" ("@") -# 19764 "src/ocaml/preprocess/parser_raw.ml" +# 19792 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19772 "src/ocaml/preprocess/parser_raw.ml" +# 19800 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19781 "src/ocaml/preprocess/parser_raw.ml" +# 19809 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19787 "src/ocaml/preprocess/parser_raw.ml" +# 19815 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -19853,18 +19881,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 19857 "src/ocaml/preprocess/parser_raw.ml" +# 19885 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19862 "src/ocaml/preprocess/parser_raw.ml" +# 19890 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 19868 "src/ocaml/preprocess/parser_raw.ml" +# 19896 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -19873,22 +19901,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19879 "src/ocaml/preprocess/parser_raw.ml" +# 19907 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 19885 "src/ocaml/preprocess/parser_raw.ml" +# 19913 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -19901,56 +19929,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 19905 "src/ocaml/preprocess/parser_raw.ml" +# 19933 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19911 "src/ocaml/preprocess/parser_raw.ml" +# 19939 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19917 "src/ocaml/preprocess/parser_raw.ml" +# 19945 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19923 "src/ocaml/preprocess/parser_raw.ml" +# 19951 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5090 "src/ocaml/preprocess/parser_raw.mly" ("@") -# 19931 "src/ocaml/preprocess/parser_raw.ml" +# 19959 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 19939 "src/ocaml/preprocess/parser_raw.ml" +# 19967 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 19948 "src/ocaml/preprocess/parser_raw.ml" +# 19976 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 19954 "src/ocaml/preprocess/parser_raw.ml" +# 19982 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -20029,18 +20057,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 20033 "src/ocaml/preprocess/parser_raw.ml" +# 20061 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20038 "src/ocaml/preprocess/parser_raw.ml" +# 20066 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20044 "src/ocaml/preprocess/parser_raw.ml" +# 20072 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -20049,22 +20077,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20055 "src/ocaml/preprocess/parser_raw.ml" +# 20083 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20061 "src/ocaml/preprocess/parser_raw.ml" +# 20089 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -20077,7 +20105,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20081 "src/ocaml/preprocess/parser_raw.ml" +# 20109 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -20085,58 +20113,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 20091 "src/ocaml/preprocess/parser_raw.ml" +# 20119 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20097 "src/ocaml/preprocess/parser_raw.ml" +# 20125 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20103 "src/ocaml/preprocess/parser_raw.ml" +# 20131 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20109 "src/ocaml/preprocess/parser_raw.ml" +# 20137 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5090 "src/ocaml/preprocess/parser_raw.mly" ("@") -# 20117 "src/ocaml/preprocess/parser_raw.ml" +# 20145 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 20125 "src/ocaml/preprocess/parser_raw.ml" +# 20153 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 20134 "src/ocaml/preprocess/parser_raw.ml" +# 20162 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20140 "src/ocaml/preprocess/parser_raw.ml" +# 20168 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -20178,45 +20206,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20184 "src/ocaml/preprocess/parser_raw.ml" +# 20212 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20189 "src/ocaml/preprocess/parser_raw.ml" +# 20217 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5092 "src/ocaml/preprocess/parser_raw.mly" +# 5091 "src/ocaml/preprocess/parser_raw.mly" ("@@") -# 20197 "src/ocaml/preprocess/parser_raw.ml" +# 20225 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 20205 "src/ocaml/preprocess/parser_raw.ml" +# 20233 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 20214 "src/ocaml/preprocess/parser_raw.ml" +# 20242 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20220 "src/ocaml/preprocess/parser_raw.ml" +# 20248 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -20286,18 +20314,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 20290 "src/ocaml/preprocess/parser_raw.ml" +# 20318 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20295 "src/ocaml/preprocess/parser_raw.ml" +# 20323 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20301 "src/ocaml/preprocess/parser_raw.ml" +# 20329 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -20306,22 +20334,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20312 "src/ocaml/preprocess/parser_raw.ml" +# 20340 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20318 "src/ocaml/preprocess/parser_raw.ml" +# 20346 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -20334,56 +20362,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20338 "src/ocaml/preprocess/parser_raw.ml" +# 20366 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20344 "src/ocaml/preprocess/parser_raw.ml" +# 20372 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20350 "src/ocaml/preprocess/parser_raw.ml" +# 20378 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20356 "src/ocaml/preprocess/parser_raw.ml" +# 20384 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5092 "src/ocaml/preprocess/parser_raw.mly" +# 5091 "src/ocaml/preprocess/parser_raw.mly" ("@@") -# 20364 "src/ocaml/preprocess/parser_raw.ml" +# 20392 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 20372 "src/ocaml/preprocess/parser_raw.ml" +# 20400 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 20381 "src/ocaml/preprocess/parser_raw.ml" +# 20409 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20387 "src/ocaml/preprocess/parser_raw.ml" +# 20415 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -20462,18 +20490,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 20466 "src/ocaml/preprocess/parser_raw.ml" +# 20494 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20471 "src/ocaml/preprocess/parser_raw.ml" +# 20499 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20477 "src/ocaml/preprocess/parser_raw.ml" +# 20505 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -20482,22 +20510,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20488 "src/ocaml/preprocess/parser_raw.ml" +# 20516 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20494 "src/ocaml/preprocess/parser_raw.ml" +# 20522 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -20510,7 +20538,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20514 "src/ocaml/preprocess/parser_raw.ml" +# 20542 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -20518,58 +20546,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 20524 "src/ocaml/preprocess/parser_raw.ml" +# 20552 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20530 "src/ocaml/preprocess/parser_raw.ml" +# 20558 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20536 "src/ocaml/preprocess/parser_raw.ml" +# 20564 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20542 "src/ocaml/preprocess/parser_raw.ml" +# 20570 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5092 "src/ocaml/preprocess/parser_raw.mly" +# 5091 "src/ocaml/preprocess/parser_raw.mly" ("@@") -# 20550 "src/ocaml/preprocess/parser_raw.ml" +# 20578 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 20558 "src/ocaml/preprocess/parser_raw.ml" +# 20586 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 20567 "src/ocaml/preprocess/parser_raw.ml" +# 20595 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20573 "src/ocaml/preprocess/parser_raw.ml" +# 20601 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -20602,9 +20630,9 @@ module Tables = struct } = _menhir_stack in let _1 : (Parsetree.expression) = Obj.magic _1 in let op : ( -# 1069 "src/ocaml/preprocess/parser_raw.mly" +# 1081 "src/ocaml/preprocess/parser_raw.mly" (string) -# 20608 "src/ocaml/preprocess/parser_raw.ml" +# 20636 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -20614,46 +20642,46 @@ module Tables = struct let _1 = let e2 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20620 "src/ocaml/preprocess/parser_raw.ml" +# 20648 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20625 "src/ocaml/preprocess/parser_raw.ml" +# 20653 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_ in let op = let _1 = -# 5093 "src/ocaml/preprocess/parser_raw.mly" +# 5092 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 20633 "src/ocaml/preprocess/parser_raw.ml" +# 20661 "src/ocaml/preprocess/parser_raw.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 -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 20642 "src/ocaml/preprocess/parser_raw.ml" +# 20670 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 20651 "src/ocaml/preprocess/parser_raw.ml" +# 20679 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20657 "src/ocaml/preprocess/parser_raw.ml" +# 20685 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -20707,9 +20735,9 @@ module Tables = struct let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1069 "src/ocaml/preprocess/parser_raw.mly" +# 1081 "src/ocaml/preprocess/parser_raw.mly" (string) -# 20713 "src/ocaml/preprocess/parser_raw.ml" +# 20741 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -20726,18 +20754,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 20730 "src/ocaml/preprocess/parser_raw.ml" +# 20758 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20735 "src/ocaml/preprocess/parser_raw.ml" +# 20763 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20741 "src/ocaml/preprocess/parser_raw.ml" +# 20769 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -20746,22 +20774,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20752 "src/ocaml/preprocess/parser_raw.ml" +# 20780 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20758 "src/ocaml/preprocess/parser_raw.ml" +# 20786 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -20774,57 +20802,57 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20778 "src/ocaml/preprocess/parser_raw.ml" +# 20806 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20784 "src/ocaml/preprocess/parser_raw.ml" +# 20812 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20790 "src/ocaml/preprocess/parser_raw.ml" +# 20818 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20796 "src/ocaml/preprocess/parser_raw.ml" +# 20824 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5093 "src/ocaml/preprocess/parser_raw.mly" +# 5092 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 20804 "src/ocaml/preprocess/parser_raw.ml" +# 20832 "src/ocaml/preprocess/parser_raw.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 -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 20813 "src/ocaml/preprocess/parser_raw.ml" +# 20841 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 20822 "src/ocaml/preprocess/parser_raw.ml" +# 20850 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20828 "src/ocaml/preprocess/parser_raw.ml" +# 20856 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -20885,9 +20913,9 @@ module Tables = struct let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1069 "src/ocaml/preprocess/parser_raw.mly" +# 1081 "src/ocaml/preprocess/parser_raw.mly" (string) -# 20891 "src/ocaml/preprocess/parser_raw.ml" +# 20919 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -20906,18 +20934,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 20910 "src/ocaml/preprocess/parser_raw.ml" +# 20938 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20915 "src/ocaml/preprocess/parser_raw.ml" +# 20943 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 20921 "src/ocaml/preprocess/parser_raw.ml" +# 20949 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -20926,22 +20954,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20932 "src/ocaml/preprocess/parser_raw.ml" +# 20960 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 20938 "src/ocaml/preprocess/parser_raw.ml" +# 20966 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -20954,7 +20982,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 20958 "src/ocaml/preprocess/parser_raw.ml" +# 20986 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -20962,59 +20990,59 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 20968 "src/ocaml/preprocess/parser_raw.ml" +# 20996 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20974 "src/ocaml/preprocess/parser_raw.ml" +# 21002 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20980 "src/ocaml/preprocess/parser_raw.ml" +# 21008 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 20986 "src/ocaml/preprocess/parser_raw.ml" +# 21014 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5093 "src/ocaml/preprocess/parser_raw.mly" +# 5092 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 20994 "src/ocaml/preprocess/parser_raw.ml" +# 21022 "src/ocaml/preprocess/parser_raw.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 -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 21003 "src/ocaml/preprocess/parser_raw.ml" +# 21031 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 21012 "src/ocaml/preprocess/parser_raw.ml" +# 21040 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21018 "src/ocaml/preprocess/parser_raw.ml" +# 21046 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -21047,9 +21075,9 @@ module Tables = struct } = _menhir_stack in let _1 : (Parsetree.expression) = Obj.magic _1 in let op : ( -# 1070 "src/ocaml/preprocess/parser_raw.mly" +# 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21053 "src/ocaml/preprocess/parser_raw.ml" +# 21081 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -21059,46 +21087,46 @@ module Tables = struct let _1 = let e2 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21065 "src/ocaml/preprocess/parser_raw.ml" +# 21093 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21070 "src/ocaml/preprocess/parser_raw.ml" +# 21098 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_ in let op = let _1 = -# 5094 "src/ocaml/preprocess/parser_raw.mly" +# 5093 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 21078 "src/ocaml/preprocess/parser_raw.ml" +# 21106 "src/ocaml/preprocess/parser_raw.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 -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 21087 "src/ocaml/preprocess/parser_raw.ml" +# 21115 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 21096 "src/ocaml/preprocess/parser_raw.ml" +# 21124 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21102 "src/ocaml/preprocess/parser_raw.ml" +# 21130 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -21152,9 +21180,9 @@ module Tables = struct let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1070 "src/ocaml/preprocess/parser_raw.mly" +# 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21158 "src/ocaml/preprocess/parser_raw.ml" +# 21186 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -21171,18 +21199,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 21175 "src/ocaml/preprocess/parser_raw.ml" +# 21203 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21180 "src/ocaml/preprocess/parser_raw.ml" +# 21208 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21186 "src/ocaml/preprocess/parser_raw.ml" +# 21214 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -21191,22 +21219,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21197 "src/ocaml/preprocess/parser_raw.ml" +# 21225 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21203 "src/ocaml/preprocess/parser_raw.ml" +# 21231 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -21219,57 +21247,57 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 21223 "src/ocaml/preprocess/parser_raw.ml" +# 21251 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21229 "src/ocaml/preprocess/parser_raw.ml" +# 21257 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21235 "src/ocaml/preprocess/parser_raw.ml" +# 21263 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21241 "src/ocaml/preprocess/parser_raw.ml" +# 21269 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5094 "src/ocaml/preprocess/parser_raw.mly" +# 5093 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 21249 "src/ocaml/preprocess/parser_raw.ml" +# 21277 "src/ocaml/preprocess/parser_raw.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 -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 21258 "src/ocaml/preprocess/parser_raw.ml" +# 21286 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 21267 "src/ocaml/preprocess/parser_raw.ml" +# 21295 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21273 "src/ocaml/preprocess/parser_raw.ml" +# 21301 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -21330,9 +21358,9 @@ module Tables = struct let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1070 "src/ocaml/preprocess/parser_raw.mly" +# 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21336 "src/ocaml/preprocess/parser_raw.ml" +# 21364 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -21351,18 +21379,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 21355 "src/ocaml/preprocess/parser_raw.ml" +# 21383 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21360 "src/ocaml/preprocess/parser_raw.ml" +# 21388 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21366 "src/ocaml/preprocess/parser_raw.ml" +# 21394 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -21371,22 +21399,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21377 "src/ocaml/preprocess/parser_raw.ml" +# 21405 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21383 "src/ocaml/preprocess/parser_raw.ml" +# 21411 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -21399,7 +21427,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 21403 "src/ocaml/preprocess/parser_raw.ml" +# 21431 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -21407,59 +21435,59 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 21413 "src/ocaml/preprocess/parser_raw.ml" +# 21441 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21419 "src/ocaml/preprocess/parser_raw.ml" +# 21447 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21425 "src/ocaml/preprocess/parser_raw.ml" +# 21453 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21431 "src/ocaml/preprocess/parser_raw.ml" +# 21459 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5094 "src/ocaml/preprocess/parser_raw.mly" +# 5093 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 21439 "src/ocaml/preprocess/parser_raw.ml" +# 21467 "src/ocaml/preprocess/parser_raw.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 -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 21448 "src/ocaml/preprocess/parser_raw.ml" +# 21476 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 21457 "src/ocaml/preprocess/parser_raw.ml" +# 21485 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21463 "src/ocaml/preprocess/parser_raw.ml" +# 21491 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -21492,9 +21520,9 @@ module Tables = struct } = _menhir_stack in let _1 : (Parsetree.expression) = Obj.magic _1 in let op : ( -# 1071 "src/ocaml/preprocess/parser_raw.mly" +# 1083 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21498 "src/ocaml/preprocess/parser_raw.ml" +# 21526 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -21504,28 +21532,28 @@ module Tables = struct let _1 = let e2 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21510 "src/ocaml/preprocess/parser_raw.ml" +# 21538 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21515 "src/ocaml/preprocess/parser_raw.ml" +# 21543 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_ in let op = let _1 = let op = -# 5085 "src/ocaml/preprocess/parser_raw.mly" +# 5084 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 21524 "src/ocaml/preprocess/parser_raw.ml" +# 21552 "src/ocaml/preprocess/parser_raw.ml" in -# 5095 "src/ocaml/preprocess/parser_raw.mly" +# 5094 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 21529 "src/ocaml/preprocess/parser_raw.ml" +# 21557 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in @@ -21533,24 +21561,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 21539 "src/ocaml/preprocess/parser_raw.ml" +# 21567 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 21548 "src/ocaml/preprocess/parser_raw.ml" +# 21576 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21554 "src/ocaml/preprocess/parser_raw.ml" +# 21582 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -21604,9 +21632,9 @@ module Tables = struct let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1071 "src/ocaml/preprocess/parser_raw.mly" +# 1083 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21610 "src/ocaml/preprocess/parser_raw.ml" +# 21638 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -21623,18 +21651,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 21627 "src/ocaml/preprocess/parser_raw.ml" +# 21655 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21632 "src/ocaml/preprocess/parser_raw.ml" +# 21660 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21638 "src/ocaml/preprocess/parser_raw.ml" +# 21666 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -21643,22 +21671,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21649 "src/ocaml/preprocess/parser_raw.ml" +# 21677 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21655 "src/ocaml/preprocess/parser_raw.ml" +# 21683 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -21671,39 +21699,39 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 21675 "src/ocaml/preprocess/parser_raw.ml" +# 21703 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21681 "src/ocaml/preprocess/parser_raw.ml" +# 21709 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21687 "src/ocaml/preprocess/parser_raw.ml" +# 21715 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21693 "src/ocaml/preprocess/parser_raw.ml" +# 21721 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = let op = -# 5085 "src/ocaml/preprocess/parser_raw.mly" +# 5084 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 21702 "src/ocaml/preprocess/parser_raw.ml" +# 21730 "src/ocaml/preprocess/parser_raw.ml" in -# 5095 "src/ocaml/preprocess/parser_raw.mly" +# 5094 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 21707 "src/ocaml/preprocess/parser_raw.ml" +# 21735 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in @@ -21711,24 +21739,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 21717 "src/ocaml/preprocess/parser_raw.ml" +# 21745 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 21726 "src/ocaml/preprocess/parser_raw.ml" +# 21754 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21732 "src/ocaml/preprocess/parser_raw.ml" +# 21760 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -21789,9 +21817,9 @@ module Tables = struct let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1071 "src/ocaml/preprocess/parser_raw.mly" +# 1083 "src/ocaml/preprocess/parser_raw.mly" (string) -# 21795 "src/ocaml/preprocess/parser_raw.ml" +# 21823 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -21810,18 +21838,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 21814 "src/ocaml/preprocess/parser_raw.ml" +# 21842 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21819 "src/ocaml/preprocess/parser_raw.ml" +# 21847 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 21825 "src/ocaml/preprocess/parser_raw.ml" +# 21853 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -21830,22 +21858,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21836 "src/ocaml/preprocess/parser_raw.ml" +# 21864 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 21842 "src/ocaml/preprocess/parser_raw.ml" +# 21870 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -21858,7 +21886,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 21862 "src/ocaml/preprocess/parser_raw.ml" +# 21890 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -21866,41 +21894,41 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 21872 "src/ocaml/preprocess/parser_raw.ml" +# 21900 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21878 "src/ocaml/preprocess/parser_raw.ml" +# 21906 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21884 "src/ocaml/preprocess/parser_raw.ml" +# 21912 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21890 "src/ocaml/preprocess/parser_raw.ml" +# 21918 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = let op = -# 5085 "src/ocaml/preprocess/parser_raw.mly" +# 5084 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 21899 "src/ocaml/preprocess/parser_raw.ml" +# 21927 "src/ocaml/preprocess/parser_raw.ml" in -# 5095 "src/ocaml/preprocess/parser_raw.mly" +# 5094 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 21904 "src/ocaml/preprocess/parser_raw.ml" +# 21932 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_op_, _startpos_op_) in @@ -21908,24 +21936,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 21914 "src/ocaml/preprocess/parser_raw.ml" +# 21942 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 21923 "src/ocaml/preprocess/parser_raw.ml" +# 21951 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21929 "src/ocaml/preprocess/parser_raw.ml" +# 21957 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -21967,52 +21995,52 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21973 "src/ocaml/preprocess/parser_raw.ml" +# 22001 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 21978 "src/ocaml/preprocess/parser_raw.ml" +# 22006 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = let op = -# 5086 "src/ocaml/preprocess/parser_raw.mly" +# 5085 "src/ocaml/preprocess/parser_raw.mly" ( "mod" ) -# 21987 "src/ocaml/preprocess/parser_raw.ml" +# 22015 "src/ocaml/preprocess/parser_raw.ml" in -# 5095 "src/ocaml/preprocess/parser_raw.mly" +# 5094 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 21992 "src/ocaml/preprocess/parser_raw.ml" +# 22020 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 22001 "src/ocaml/preprocess/parser_raw.ml" +# 22029 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 22010 "src/ocaml/preprocess/parser_raw.ml" +# 22038 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22016 "src/ocaml/preprocess/parser_raw.ml" +# 22044 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -22082,18 +22110,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 22086 "src/ocaml/preprocess/parser_raw.ml" +# 22114 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22091 "src/ocaml/preprocess/parser_raw.ml" +# 22119 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22097 "src/ocaml/preprocess/parser_raw.ml" +# 22125 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -22102,22 +22130,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22108 "src/ocaml/preprocess/parser_raw.ml" +# 22136 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22114 "src/ocaml/preprocess/parser_raw.ml" +# 22142 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -22130,63 +22158,63 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 22134 "src/ocaml/preprocess/parser_raw.ml" +# 22162 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22140 "src/ocaml/preprocess/parser_raw.ml" +# 22168 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22146 "src/ocaml/preprocess/parser_raw.ml" +# 22174 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22152 "src/ocaml/preprocess/parser_raw.ml" +# 22180 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = let op = -# 5086 "src/ocaml/preprocess/parser_raw.mly" +# 5085 "src/ocaml/preprocess/parser_raw.mly" ( "mod" ) -# 22161 "src/ocaml/preprocess/parser_raw.ml" +# 22189 "src/ocaml/preprocess/parser_raw.ml" in -# 5095 "src/ocaml/preprocess/parser_raw.mly" +# 5094 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 22166 "src/ocaml/preprocess/parser_raw.ml" +# 22194 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 22175 "src/ocaml/preprocess/parser_raw.ml" +# 22203 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 22184 "src/ocaml/preprocess/parser_raw.ml" +# 22212 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22190 "src/ocaml/preprocess/parser_raw.ml" +# 22218 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -22265,18 +22293,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 22269 "src/ocaml/preprocess/parser_raw.ml" +# 22297 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22274 "src/ocaml/preprocess/parser_raw.ml" +# 22302 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22280 "src/ocaml/preprocess/parser_raw.ml" +# 22308 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -22285,22 +22313,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22291 "src/ocaml/preprocess/parser_raw.ml" +# 22319 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22297 "src/ocaml/preprocess/parser_raw.ml" +# 22325 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -22313,7 +22341,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 22317 "src/ocaml/preprocess/parser_raw.ml" +# 22345 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -22321,65 +22349,65 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 22327 "src/ocaml/preprocess/parser_raw.ml" +# 22355 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22333 "src/ocaml/preprocess/parser_raw.ml" +# 22361 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22339 "src/ocaml/preprocess/parser_raw.ml" +# 22367 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22345 "src/ocaml/preprocess/parser_raw.ml" +# 22373 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = let op = -# 5086 "src/ocaml/preprocess/parser_raw.mly" +# 5085 "src/ocaml/preprocess/parser_raw.mly" ( "mod" ) -# 22354 "src/ocaml/preprocess/parser_raw.ml" +# 22382 "src/ocaml/preprocess/parser_raw.ml" in -# 5095 "src/ocaml/preprocess/parser_raw.mly" +# 5094 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 22359 "src/ocaml/preprocess/parser_raw.ml" +# 22387 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 22368 "src/ocaml/preprocess/parser_raw.ml" +# 22396 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 22377 "src/ocaml/preprocess/parser_raw.ml" +# 22405 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22383 "src/ocaml/preprocess/parser_raw.ml" +# 22411 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -22412,9 +22440,9 @@ module Tables = struct } = _menhir_stack in let _1 : (Parsetree.expression) = Obj.magic _1 in let op : ( -# 1072 "src/ocaml/preprocess/parser_raw.mly" +# 1084 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22418 "src/ocaml/preprocess/parser_raw.ml" +# 22446 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -22424,46 +22452,46 @@ module Tables = struct let _1 = let e2 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22430 "src/ocaml/preprocess/parser_raw.ml" +# 22458 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22435 "src/ocaml/preprocess/parser_raw.ml" +# 22463 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_ in let op = let _1 = -# 5096 "src/ocaml/preprocess/parser_raw.mly" +# 5095 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 22443 "src/ocaml/preprocess/parser_raw.ml" +# 22471 "src/ocaml/preprocess/parser_raw.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 -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 22452 "src/ocaml/preprocess/parser_raw.ml" +# 22480 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 22461 "src/ocaml/preprocess/parser_raw.ml" +# 22489 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22467 "src/ocaml/preprocess/parser_raw.ml" +# 22495 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -22517,9 +22545,9 @@ module Tables = struct let _1_inlined1 : (string Location.loc option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1072 "src/ocaml/preprocess/parser_raw.mly" +# 1084 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22523 "src/ocaml/preprocess/parser_raw.ml" +# 22551 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -22536,18 +22564,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 22540 "src/ocaml/preprocess/parser_raw.ml" +# 22568 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22545 "src/ocaml/preprocess/parser_raw.ml" +# 22573 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22551 "src/ocaml/preprocess/parser_raw.ml" +# 22579 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -22556,22 +22584,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22562 "src/ocaml/preprocess/parser_raw.ml" +# 22590 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22568 "src/ocaml/preprocess/parser_raw.ml" +# 22596 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -22584,57 +22612,57 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 22588 "src/ocaml/preprocess/parser_raw.ml" +# 22616 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22594 "src/ocaml/preprocess/parser_raw.ml" +# 22622 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22600 "src/ocaml/preprocess/parser_raw.ml" +# 22628 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22606 "src/ocaml/preprocess/parser_raw.ml" +# 22634 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5096 "src/ocaml/preprocess/parser_raw.mly" +# 5095 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 22614 "src/ocaml/preprocess/parser_raw.ml" +# 22642 "src/ocaml/preprocess/parser_raw.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 -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 22623 "src/ocaml/preprocess/parser_raw.ml" +# 22651 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 22632 "src/ocaml/preprocess/parser_raw.ml" +# 22660 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22638 "src/ocaml/preprocess/parser_raw.ml" +# 22666 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -22695,9 +22723,9 @@ module Tables = struct let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let op : ( -# 1072 "src/ocaml/preprocess/parser_raw.mly" +# 1084 "src/ocaml/preprocess/parser_raw.mly" (string) -# 22701 "src/ocaml/preprocess/parser_raw.ml" +# 22729 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let e1 : (Parsetree.expression) = Obj.magic e1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -22716,18 +22744,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 22720 "src/ocaml/preprocess/parser_raw.ml" +# 22748 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22725 "src/ocaml/preprocess/parser_raw.ml" +# 22753 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22731 "src/ocaml/preprocess/parser_raw.ml" +# 22759 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -22736,22 +22764,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22742 "src/ocaml/preprocess/parser_raw.ml" +# 22770 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 22748 "src/ocaml/preprocess/parser_raw.ml" +# 22776 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -22764,7 +22792,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 22768 "src/ocaml/preprocess/parser_raw.ml" +# 22796 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -22772,59 +22800,59 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 22778 "src/ocaml/preprocess/parser_raw.ml" +# 22806 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22784 "src/ocaml/preprocess/parser_raw.ml" +# 22812 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22790 "src/ocaml/preprocess/parser_raw.ml" +# 22818 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22796 "src/ocaml/preprocess/parser_raw.ml" +# 22824 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5096 "src/ocaml/preprocess/parser_raw.mly" +# 5095 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 22804 "src/ocaml/preprocess/parser_raw.ml" +# 22832 "src/ocaml/preprocess/parser_raw.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 -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 22813 "src/ocaml/preprocess/parser_raw.ml" +# 22841 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 22822 "src/ocaml/preprocess/parser_raw.ml" +# 22850 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22828 "src/ocaml/preprocess/parser_raw.ml" +# 22856 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -22866,45 +22894,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22872 "src/ocaml/preprocess/parser_raw.ml" +# 22900 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22877 "src/ocaml/preprocess/parser_raw.ml" +# 22905 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5097 "src/ocaml/preprocess/parser_raw.mly" +# 5096 "src/ocaml/preprocess/parser_raw.mly" ("+") -# 22885 "src/ocaml/preprocess/parser_raw.ml" +# 22913 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 22893 "src/ocaml/preprocess/parser_raw.ml" +# 22921 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 22902 "src/ocaml/preprocess/parser_raw.ml" +# 22930 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 22908 "src/ocaml/preprocess/parser_raw.ml" +# 22936 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -22974,18 +23002,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 22978 "src/ocaml/preprocess/parser_raw.ml" +# 23006 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22983 "src/ocaml/preprocess/parser_raw.ml" +# 23011 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 22989 "src/ocaml/preprocess/parser_raw.ml" +# 23017 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -22994,22 +23022,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23000 "src/ocaml/preprocess/parser_raw.ml" +# 23028 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23006 "src/ocaml/preprocess/parser_raw.ml" +# 23034 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -23022,56 +23050,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 23026 "src/ocaml/preprocess/parser_raw.ml" +# 23054 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23032 "src/ocaml/preprocess/parser_raw.ml" +# 23060 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23038 "src/ocaml/preprocess/parser_raw.ml" +# 23066 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23044 "src/ocaml/preprocess/parser_raw.ml" +# 23072 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5097 "src/ocaml/preprocess/parser_raw.mly" +# 5096 "src/ocaml/preprocess/parser_raw.mly" ("+") -# 23052 "src/ocaml/preprocess/parser_raw.ml" +# 23080 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 23060 "src/ocaml/preprocess/parser_raw.ml" +# 23088 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 23069 "src/ocaml/preprocess/parser_raw.ml" +# 23097 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23075 "src/ocaml/preprocess/parser_raw.ml" +# 23103 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -23150,18 +23178,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 23154 "src/ocaml/preprocess/parser_raw.ml" +# 23182 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23159 "src/ocaml/preprocess/parser_raw.ml" +# 23187 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23165 "src/ocaml/preprocess/parser_raw.ml" +# 23193 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -23170,22 +23198,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23176 "src/ocaml/preprocess/parser_raw.ml" +# 23204 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23182 "src/ocaml/preprocess/parser_raw.ml" +# 23210 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -23198,7 +23226,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 23202 "src/ocaml/preprocess/parser_raw.ml" +# 23230 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -23206,58 +23234,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 23212 "src/ocaml/preprocess/parser_raw.ml" +# 23240 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23218 "src/ocaml/preprocess/parser_raw.ml" +# 23246 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23224 "src/ocaml/preprocess/parser_raw.ml" +# 23252 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23230 "src/ocaml/preprocess/parser_raw.ml" +# 23258 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5097 "src/ocaml/preprocess/parser_raw.mly" +# 5096 "src/ocaml/preprocess/parser_raw.mly" ("+") -# 23238 "src/ocaml/preprocess/parser_raw.ml" +# 23266 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 23246 "src/ocaml/preprocess/parser_raw.ml" +# 23274 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 23255 "src/ocaml/preprocess/parser_raw.ml" +# 23283 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23261 "src/ocaml/preprocess/parser_raw.ml" +# 23289 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -23299,45 +23327,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23305 "src/ocaml/preprocess/parser_raw.ml" +# 23333 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23310 "src/ocaml/preprocess/parser_raw.ml" +# 23338 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5098 "src/ocaml/preprocess/parser_raw.mly" +# 5097 "src/ocaml/preprocess/parser_raw.mly" ("+.") -# 23318 "src/ocaml/preprocess/parser_raw.ml" +# 23346 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 23326 "src/ocaml/preprocess/parser_raw.ml" +# 23354 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 23335 "src/ocaml/preprocess/parser_raw.ml" +# 23363 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23341 "src/ocaml/preprocess/parser_raw.ml" +# 23369 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -23407,18 +23435,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 23411 "src/ocaml/preprocess/parser_raw.ml" +# 23439 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23416 "src/ocaml/preprocess/parser_raw.ml" +# 23444 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23422 "src/ocaml/preprocess/parser_raw.ml" +# 23450 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -23427,22 +23455,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23433 "src/ocaml/preprocess/parser_raw.ml" +# 23461 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23439 "src/ocaml/preprocess/parser_raw.ml" +# 23467 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -23455,56 +23483,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 23459 "src/ocaml/preprocess/parser_raw.ml" +# 23487 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23465 "src/ocaml/preprocess/parser_raw.ml" +# 23493 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23471 "src/ocaml/preprocess/parser_raw.ml" +# 23499 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23477 "src/ocaml/preprocess/parser_raw.ml" +# 23505 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5098 "src/ocaml/preprocess/parser_raw.mly" +# 5097 "src/ocaml/preprocess/parser_raw.mly" ("+.") -# 23485 "src/ocaml/preprocess/parser_raw.ml" +# 23513 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 23493 "src/ocaml/preprocess/parser_raw.ml" +# 23521 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 23502 "src/ocaml/preprocess/parser_raw.ml" +# 23530 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23508 "src/ocaml/preprocess/parser_raw.ml" +# 23536 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -23583,18 +23611,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 23587 "src/ocaml/preprocess/parser_raw.ml" +# 23615 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23592 "src/ocaml/preprocess/parser_raw.ml" +# 23620 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23598 "src/ocaml/preprocess/parser_raw.ml" +# 23626 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -23603,22 +23631,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23609 "src/ocaml/preprocess/parser_raw.ml" +# 23637 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23615 "src/ocaml/preprocess/parser_raw.ml" +# 23643 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -23631,7 +23659,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 23635 "src/ocaml/preprocess/parser_raw.ml" +# 23663 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -23639,58 +23667,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 23645 "src/ocaml/preprocess/parser_raw.ml" +# 23673 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23651 "src/ocaml/preprocess/parser_raw.ml" +# 23679 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23657 "src/ocaml/preprocess/parser_raw.ml" +# 23685 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23663 "src/ocaml/preprocess/parser_raw.ml" +# 23691 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5098 "src/ocaml/preprocess/parser_raw.mly" +# 5097 "src/ocaml/preprocess/parser_raw.mly" ("+.") -# 23671 "src/ocaml/preprocess/parser_raw.ml" +# 23699 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 23679 "src/ocaml/preprocess/parser_raw.ml" +# 23707 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 23688 "src/ocaml/preprocess/parser_raw.ml" +# 23716 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23694 "src/ocaml/preprocess/parser_raw.ml" +# 23722 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -23732,45 +23760,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23738 "src/ocaml/preprocess/parser_raw.ml" +# 23766 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23743 "src/ocaml/preprocess/parser_raw.ml" +# 23771 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5099 "src/ocaml/preprocess/parser_raw.mly" +# 5098 "src/ocaml/preprocess/parser_raw.mly" ("+=") -# 23751 "src/ocaml/preprocess/parser_raw.ml" +# 23779 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 23759 "src/ocaml/preprocess/parser_raw.ml" +# 23787 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 23768 "src/ocaml/preprocess/parser_raw.ml" +# 23796 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23774 "src/ocaml/preprocess/parser_raw.ml" +# 23802 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -23840,18 +23868,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 23844 "src/ocaml/preprocess/parser_raw.ml" +# 23872 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23849 "src/ocaml/preprocess/parser_raw.ml" +# 23877 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 23855 "src/ocaml/preprocess/parser_raw.ml" +# 23883 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -23860,22 +23888,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23866 "src/ocaml/preprocess/parser_raw.ml" +# 23894 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 23872 "src/ocaml/preprocess/parser_raw.ml" +# 23900 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -23888,56 +23916,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 23892 "src/ocaml/preprocess/parser_raw.ml" +# 23920 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23898 "src/ocaml/preprocess/parser_raw.ml" +# 23926 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23904 "src/ocaml/preprocess/parser_raw.ml" +# 23932 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23910 "src/ocaml/preprocess/parser_raw.ml" +# 23938 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5099 "src/ocaml/preprocess/parser_raw.mly" +# 5098 "src/ocaml/preprocess/parser_raw.mly" ("+=") -# 23918 "src/ocaml/preprocess/parser_raw.ml" +# 23946 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 23926 "src/ocaml/preprocess/parser_raw.ml" +# 23954 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 23935 "src/ocaml/preprocess/parser_raw.ml" +# 23963 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 23941 "src/ocaml/preprocess/parser_raw.ml" +# 23969 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -24016,18 +24044,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 24020 "src/ocaml/preprocess/parser_raw.ml" +# 24048 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24025 "src/ocaml/preprocess/parser_raw.ml" +# 24053 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24031 "src/ocaml/preprocess/parser_raw.ml" +# 24059 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -24036,22 +24064,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24042 "src/ocaml/preprocess/parser_raw.ml" +# 24070 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 24048 "src/ocaml/preprocess/parser_raw.ml" +# 24076 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -24064,7 +24092,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 24068 "src/ocaml/preprocess/parser_raw.ml" +# 24096 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -24072,58 +24100,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 24078 "src/ocaml/preprocess/parser_raw.ml" +# 24106 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24084 "src/ocaml/preprocess/parser_raw.ml" +# 24112 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24090 "src/ocaml/preprocess/parser_raw.ml" +# 24118 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24096 "src/ocaml/preprocess/parser_raw.ml" +# 24124 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5099 "src/ocaml/preprocess/parser_raw.mly" +# 5098 "src/ocaml/preprocess/parser_raw.mly" ("+=") -# 24104 "src/ocaml/preprocess/parser_raw.ml" +# 24132 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 24112 "src/ocaml/preprocess/parser_raw.ml" +# 24140 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 24121 "src/ocaml/preprocess/parser_raw.ml" +# 24149 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24127 "src/ocaml/preprocess/parser_raw.ml" +# 24155 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -24165,45 +24193,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24171 "src/ocaml/preprocess/parser_raw.ml" +# 24199 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24176 "src/ocaml/preprocess/parser_raw.ml" +# 24204 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5100 "src/ocaml/preprocess/parser_raw.mly" +# 5099 "src/ocaml/preprocess/parser_raw.mly" ("-") -# 24184 "src/ocaml/preprocess/parser_raw.ml" +# 24212 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 24192 "src/ocaml/preprocess/parser_raw.ml" +# 24220 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 24201 "src/ocaml/preprocess/parser_raw.ml" +# 24229 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24207 "src/ocaml/preprocess/parser_raw.ml" +# 24235 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -24273,18 +24301,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 24277 "src/ocaml/preprocess/parser_raw.ml" +# 24305 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24282 "src/ocaml/preprocess/parser_raw.ml" +# 24310 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24288 "src/ocaml/preprocess/parser_raw.ml" +# 24316 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -24293,22 +24321,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24299 "src/ocaml/preprocess/parser_raw.ml" +# 24327 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 24305 "src/ocaml/preprocess/parser_raw.ml" +# 24333 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -24321,56 +24349,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 24325 "src/ocaml/preprocess/parser_raw.ml" +# 24353 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24331 "src/ocaml/preprocess/parser_raw.ml" +# 24359 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24337 "src/ocaml/preprocess/parser_raw.ml" +# 24365 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24343 "src/ocaml/preprocess/parser_raw.ml" +# 24371 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5100 "src/ocaml/preprocess/parser_raw.mly" +# 5099 "src/ocaml/preprocess/parser_raw.mly" ("-") -# 24351 "src/ocaml/preprocess/parser_raw.ml" +# 24379 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 24359 "src/ocaml/preprocess/parser_raw.ml" +# 24387 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 24368 "src/ocaml/preprocess/parser_raw.ml" +# 24396 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24374 "src/ocaml/preprocess/parser_raw.ml" +# 24402 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -24449,18 +24477,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 24453 "src/ocaml/preprocess/parser_raw.ml" +# 24481 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24458 "src/ocaml/preprocess/parser_raw.ml" +# 24486 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24464 "src/ocaml/preprocess/parser_raw.ml" +# 24492 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -24469,22 +24497,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24475 "src/ocaml/preprocess/parser_raw.ml" +# 24503 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 24481 "src/ocaml/preprocess/parser_raw.ml" +# 24509 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -24497,7 +24525,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 24501 "src/ocaml/preprocess/parser_raw.ml" +# 24529 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -24505,58 +24533,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 24511 "src/ocaml/preprocess/parser_raw.ml" +# 24539 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24517 "src/ocaml/preprocess/parser_raw.ml" +# 24545 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24523 "src/ocaml/preprocess/parser_raw.ml" +# 24551 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24529 "src/ocaml/preprocess/parser_raw.ml" +# 24557 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5100 "src/ocaml/preprocess/parser_raw.mly" +# 5099 "src/ocaml/preprocess/parser_raw.mly" ("-") -# 24537 "src/ocaml/preprocess/parser_raw.ml" +# 24565 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 24545 "src/ocaml/preprocess/parser_raw.ml" +# 24573 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 24554 "src/ocaml/preprocess/parser_raw.ml" +# 24582 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24560 "src/ocaml/preprocess/parser_raw.ml" +# 24588 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -24598,45 +24626,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24604 "src/ocaml/preprocess/parser_raw.ml" +# 24632 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24609 "src/ocaml/preprocess/parser_raw.ml" +# 24637 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5101 "src/ocaml/preprocess/parser_raw.mly" +# 5100 "src/ocaml/preprocess/parser_raw.mly" ("-.") -# 24617 "src/ocaml/preprocess/parser_raw.ml" +# 24645 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 24625 "src/ocaml/preprocess/parser_raw.ml" +# 24653 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 24634 "src/ocaml/preprocess/parser_raw.ml" +# 24662 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24640 "src/ocaml/preprocess/parser_raw.ml" +# 24668 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -24706,18 +24734,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 24710 "src/ocaml/preprocess/parser_raw.ml" +# 24738 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24715 "src/ocaml/preprocess/parser_raw.ml" +# 24743 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24721 "src/ocaml/preprocess/parser_raw.ml" +# 24749 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -24726,22 +24754,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24732 "src/ocaml/preprocess/parser_raw.ml" +# 24760 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 24738 "src/ocaml/preprocess/parser_raw.ml" +# 24766 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -24754,56 +24782,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 24758 "src/ocaml/preprocess/parser_raw.ml" +# 24786 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24764 "src/ocaml/preprocess/parser_raw.ml" +# 24792 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24770 "src/ocaml/preprocess/parser_raw.ml" +# 24798 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24776 "src/ocaml/preprocess/parser_raw.ml" +# 24804 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5101 "src/ocaml/preprocess/parser_raw.mly" +# 5100 "src/ocaml/preprocess/parser_raw.mly" ("-.") -# 24784 "src/ocaml/preprocess/parser_raw.ml" +# 24812 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 24792 "src/ocaml/preprocess/parser_raw.ml" +# 24820 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 24801 "src/ocaml/preprocess/parser_raw.ml" +# 24829 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24807 "src/ocaml/preprocess/parser_raw.ml" +# 24835 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -24882,18 +24910,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 24886 "src/ocaml/preprocess/parser_raw.ml" +# 24914 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24891 "src/ocaml/preprocess/parser_raw.ml" +# 24919 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 24897 "src/ocaml/preprocess/parser_raw.ml" +# 24925 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -24902,22 +24930,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24908 "src/ocaml/preprocess/parser_raw.ml" +# 24936 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 24914 "src/ocaml/preprocess/parser_raw.ml" +# 24942 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -24930,7 +24958,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 24934 "src/ocaml/preprocess/parser_raw.ml" +# 24962 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -24938,58 +24966,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 24944 "src/ocaml/preprocess/parser_raw.ml" +# 24972 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24950 "src/ocaml/preprocess/parser_raw.ml" +# 24978 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24956 "src/ocaml/preprocess/parser_raw.ml" +# 24984 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24962 "src/ocaml/preprocess/parser_raw.ml" +# 24990 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5101 "src/ocaml/preprocess/parser_raw.mly" +# 5100 "src/ocaml/preprocess/parser_raw.mly" ("-.") -# 24970 "src/ocaml/preprocess/parser_raw.ml" +# 24998 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 24978 "src/ocaml/preprocess/parser_raw.ml" +# 25006 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 24987 "src/ocaml/preprocess/parser_raw.ml" +# 25015 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 24993 "src/ocaml/preprocess/parser_raw.ml" +# 25021 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -25031,45 +25059,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25037 "src/ocaml/preprocess/parser_raw.ml" +# 25065 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25042 "src/ocaml/preprocess/parser_raw.ml" +# 25070 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5102 "src/ocaml/preprocess/parser_raw.mly" +# 5101 "src/ocaml/preprocess/parser_raw.mly" ("*") -# 25050 "src/ocaml/preprocess/parser_raw.ml" +# 25078 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 25058 "src/ocaml/preprocess/parser_raw.ml" +# 25086 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 25067 "src/ocaml/preprocess/parser_raw.ml" +# 25095 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25073 "src/ocaml/preprocess/parser_raw.ml" +# 25101 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -25139,18 +25167,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 25143 "src/ocaml/preprocess/parser_raw.ml" +# 25171 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 25148 "src/ocaml/preprocess/parser_raw.ml" +# 25176 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 25154 "src/ocaml/preprocess/parser_raw.ml" +# 25182 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -25159,22 +25187,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25165 "src/ocaml/preprocess/parser_raw.ml" +# 25193 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 25171 "src/ocaml/preprocess/parser_raw.ml" +# 25199 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -25187,56 +25215,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 25191 "src/ocaml/preprocess/parser_raw.ml" +# 25219 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25197 "src/ocaml/preprocess/parser_raw.ml" +# 25225 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25203 "src/ocaml/preprocess/parser_raw.ml" +# 25231 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25209 "src/ocaml/preprocess/parser_raw.ml" +# 25237 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5102 "src/ocaml/preprocess/parser_raw.mly" +# 5101 "src/ocaml/preprocess/parser_raw.mly" ("*") -# 25217 "src/ocaml/preprocess/parser_raw.ml" +# 25245 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 25225 "src/ocaml/preprocess/parser_raw.ml" +# 25253 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 25234 "src/ocaml/preprocess/parser_raw.ml" +# 25262 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25240 "src/ocaml/preprocess/parser_raw.ml" +# 25268 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -25315,18 +25343,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 25319 "src/ocaml/preprocess/parser_raw.ml" +# 25347 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 25324 "src/ocaml/preprocess/parser_raw.ml" +# 25352 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 25330 "src/ocaml/preprocess/parser_raw.ml" +# 25358 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -25335,22 +25363,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25341 "src/ocaml/preprocess/parser_raw.ml" +# 25369 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 25347 "src/ocaml/preprocess/parser_raw.ml" +# 25375 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -25363,7 +25391,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 25367 "src/ocaml/preprocess/parser_raw.ml" +# 25395 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -25371,58 +25399,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 25377 "src/ocaml/preprocess/parser_raw.ml" +# 25405 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25383 "src/ocaml/preprocess/parser_raw.ml" +# 25411 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25389 "src/ocaml/preprocess/parser_raw.ml" +# 25417 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25395 "src/ocaml/preprocess/parser_raw.ml" +# 25423 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5102 "src/ocaml/preprocess/parser_raw.mly" +# 5101 "src/ocaml/preprocess/parser_raw.mly" ("*") -# 25403 "src/ocaml/preprocess/parser_raw.ml" +# 25431 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 25411 "src/ocaml/preprocess/parser_raw.ml" +# 25439 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 25420 "src/ocaml/preprocess/parser_raw.ml" +# 25448 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25426 "src/ocaml/preprocess/parser_raw.ml" +# 25454 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -25464,45 +25492,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25470 "src/ocaml/preprocess/parser_raw.ml" +# 25498 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25475 "src/ocaml/preprocess/parser_raw.ml" +# 25503 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5103 "src/ocaml/preprocess/parser_raw.mly" +# 5102 "src/ocaml/preprocess/parser_raw.mly" ("%") -# 25483 "src/ocaml/preprocess/parser_raw.ml" +# 25511 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 25491 "src/ocaml/preprocess/parser_raw.ml" +# 25519 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 25500 "src/ocaml/preprocess/parser_raw.ml" +# 25528 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25506 "src/ocaml/preprocess/parser_raw.ml" +# 25534 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -25572,18 +25600,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 25576 "src/ocaml/preprocess/parser_raw.ml" +# 25604 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 25581 "src/ocaml/preprocess/parser_raw.ml" +# 25609 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 25587 "src/ocaml/preprocess/parser_raw.ml" +# 25615 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -25592,22 +25620,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25598 "src/ocaml/preprocess/parser_raw.ml" +# 25626 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 25604 "src/ocaml/preprocess/parser_raw.ml" +# 25632 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -25620,56 +25648,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 25624 "src/ocaml/preprocess/parser_raw.ml" +# 25652 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25630 "src/ocaml/preprocess/parser_raw.ml" +# 25658 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25636 "src/ocaml/preprocess/parser_raw.ml" +# 25664 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25642 "src/ocaml/preprocess/parser_raw.ml" +# 25670 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5103 "src/ocaml/preprocess/parser_raw.mly" +# 5102 "src/ocaml/preprocess/parser_raw.mly" ("%") -# 25650 "src/ocaml/preprocess/parser_raw.ml" +# 25678 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 25658 "src/ocaml/preprocess/parser_raw.ml" +# 25686 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 25667 "src/ocaml/preprocess/parser_raw.ml" +# 25695 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25673 "src/ocaml/preprocess/parser_raw.ml" +# 25701 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -25748,18 +25776,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 25752 "src/ocaml/preprocess/parser_raw.ml" +# 25780 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 25757 "src/ocaml/preprocess/parser_raw.ml" +# 25785 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 25763 "src/ocaml/preprocess/parser_raw.ml" +# 25791 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -25768,22 +25796,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25774 "src/ocaml/preprocess/parser_raw.ml" +# 25802 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 25780 "src/ocaml/preprocess/parser_raw.ml" +# 25808 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -25796,7 +25824,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 25800 "src/ocaml/preprocess/parser_raw.ml" +# 25828 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -25804,58 +25832,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 25810 "src/ocaml/preprocess/parser_raw.ml" +# 25838 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25816 "src/ocaml/preprocess/parser_raw.ml" +# 25844 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25822 "src/ocaml/preprocess/parser_raw.ml" +# 25850 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25828 "src/ocaml/preprocess/parser_raw.ml" +# 25856 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5103 "src/ocaml/preprocess/parser_raw.mly" +# 5102 "src/ocaml/preprocess/parser_raw.mly" ("%") -# 25836 "src/ocaml/preprocess/parser_raw.ml" +# 25864 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 25844 "src/ocaml/preprocess/parser_raw.ml" +# 25872 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 25853 "src/ocaml/preprocess/parser_raw.ml" +# 25881 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25859 "src/ocaml/preprocess/parser_raw.ml" +# 25887 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -25897,45 +25925,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25903 "src/ocaml/preprocess/parser_raw.ml" +# 25931 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25908 "src/ocaml/preprocess/parser_raw.ml" +# 25936 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5104 "src/ocaml/preprocess/parser_raw.mly" +# 5103 "src/ocaml/preprocess/parser_raw.mly" ("=") -# 25916 "src/ocaml/preprocess/parser_raw.ml" +# 25944 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 25924 "src/ocaml/preprocess/parser_raw.ml" +# 25952 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 25933 "src/ocaml/preprocess/parser_raw.ml" +# 25961 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 25939 "src/ocaml/preprocess/parser_raw.ml" +# 25967 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -26005,18 +26033,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 26009 "src/ocaml/preprocess/parser_raw.ml" +# 26037 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26014 "src/ocaml/preprocess/parser_raw.ml" +# 26042 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26020 "src/ocaml/preprocess/parser_raw.ml" +# 26048 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -26025,22 +26053,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26031 "src/ocaml/preprocess/parser_raw.ml" +# 26059 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 26037 "src/ocaml/preprocess/parser_raw.ml" +# 26065 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -26053,56 +26081,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 26057 "src/ocaml/preprocess/parser_raw.ml" +# 26085 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26063 "src/ocaml/preprocess/parser_raw.ml" +# 26091 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26069 "src/ocaml/preprocess/parser_raw.ml" +# 26097 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26075 "src/ocaml/preprocess/parser_raw.ml" +# 26103 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5104 "src/ocaml/preprocess/parser_raw.mly" +# 5103 "src/ocaml/preprocess/parser_raw.mly" ("=") -# 26083 "src/ocaml/preprocess/parser_raw.ml" +# 26111 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 26091 "src/ocaml/preprocess/parser_raw.ml" +# 26119 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 26100 "src/ocaml/preprocess/parser_raw.ml" +# 26128 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26106 "src/ocaml/preprocess/parser_raw.ml" +# 26134 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -26181,18 +26209,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 26185 "src/ocaml/preprocess/parser_raw.ml" +# 26213 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26190 "src/ocaml/preprocess/parser_raw.ml" +# 26218 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26196 "src/ocaml/preprocess/parser_raw.ml" +# 26224 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -26201,22 +26229,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26207 "src/ocaml/preprocess/parser_raw.ml" +# 26235 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 26213 "src/ocaml/preprocess/parser_raw.ml" +# 26241 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -26229,7 +26257,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 26233 "src/ocaml/preprocess/parser_raw.ml" +# 26261 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -26237,58 +26265,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 26243 "src/ocaml/preprocess/parser_raw.ml" +# 26271 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26249 "src/ocaml/preprocess/parser_raw.ml" +# 26277 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26255 "src/ocaml/preprocess/parser_raw.ml" +# 26283 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26261 "src/ocaml/preprocess/parser_raw.ml" +# 26289 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5104 "src/ocaml/preprocess/parser_raw.mly" +# 5103 "src/ocaml/preprocess/parser_raw.mly" ("=") -# 26269 "src/ocaml/preprocess/parser_raw.ml" +# 26297 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 26277 "src/ocaml/preprocess/parser_raw.ml" +# 26305 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 26286 "src/ocaml/preprocess/parser_raw.ml" +# 26314 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26292 "src/ocaml/preprocess/parser_raw.ml" +# 26320 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -26330,45 +26358,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26336 "src/ocaml/preprocess/parser_raw.ml" +# 26364 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26341 "src/ocaml/preprocess/parser_raw.ml" +# 26369 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5105 "src/ocaml/preprocess/parser_raw.mly" +# 5104 "src/ocaml/preprocess/parser_raw.mly" ("<") -# 26349 "src/ocaml/preprocess/parser_raw.ml" +# 26377 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 26357 "src/ocaml/preprocess/parser_raw.ml" +# 26385 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 26366 "src/ocaml/preprocess/parser_raw.ml" +# 26394 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26372 "src/ocaml/preprocess/parser_raw.ml" +# 26400 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -26438,18 +26466,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 26442 "src/ocaml/preprocess/parser_raw.ml" +# 26470 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26447 "src/ocaml/preprocess/parser_raw.ml" +# 26475 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26453 "src/ocaml/preprocess/parser_raw.ml" +# 26481 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -26458,22 +26486,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26464 "src/ocaml/preprocess/parser_raw.ml" +# 26492 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 26470 "src/ocaml/preprocess/parser_raw.ml" +# 26498 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -26486,56 +26514,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 26490 "src/ocaml/preprocess/parser_raw.ml" +# 26518 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26496 "src/ocaml/preprocess/parser_raw.ml" +# 26524 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26502 "src/ocaml/preprocess/parser_raw.ml" +# 26530 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26508 "src/ocaml/preprocess/parser_raw.ml" +# 26536 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5105 "src/ocaml/preprocess/parser_raw.mly" +# 5104 "src/ocaml/preprocess/parser_raw.mly" ("<") -# 26516 "src/ocaml/preprocess/parser_raw.ml" +# 26544 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 26524 "src/ocaml/preprocess/parser_raw.ml" +# 26552 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 26533 "src/ocaml/preprocess/parser_raw.ml" +# 26561 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26539 "src/ocaml/preprocess/parser_raw.ml" +# 26567 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -26614,18 +26642,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 26618 "src/ocaml/preprocess/parser_raw.ml" +# 26646 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26623 "src/ocaml/preprocess/parser_raw.ml" +# 26651 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26629 "src/ocaml/preprocess/parser_raw.ml" +# 26657 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -26634,22 +26662,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26640 "src/ocaml/preprocess/parser_raw.ml" +# 26668 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 26646 "src/ocaml/preprocess/parser_raw.ml" +# 26674 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -26662,7 +26690,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 26666 "src/ocaml/preprocess/parser_raw.ml" +# 26694 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -26670,58 +26698,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 26676 "src/ocaml/preprocess/parser_raw.ml" +# 26704 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26682 "src/ocaml/preprocess/parser_raw.ml" +# 26710 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26688 "src/ocaml/preprocess/parser_raw.ml" +# 26716 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26694 "src/ocaml/preprocess/parser_raw.ml" +# 26722 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5105 "src/ocaml/preprocess/parser_raw.mly" +# 5104 "src/ocaml/preprocess/parser_raw.mly" ("<") -# 26702 "src/ocaml/preprocess/parser_raw.ml" +# 26730 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 26710 "src/ocaml/preprocess/parser_raw.ml" +# 26738 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 26719 "src/ocaml/preprocess/parser_raw.ml" +# 26747 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26725 "src/ocaml/preprocess/parser_raw.ml" +# 26753 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -26763,45 +26791,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26769 "src/ocaml/preprocess/parser_raw.ml" +# 26797 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26774 "src/ocaml/preprocess/parser_raw.ml" +# 26802 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5106 "src/ocaml/preprocess/parser_raw.mly" +# 5105 "src/ocaml/preprocess/parser_raw.mly" (">") -# 26782 "src/ocaml/preprocess/parser_raw.ml" +# 26810 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 26790 "src/ocaml/preprocess/parser_raw.ml" +# 26818 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 26799 "src/ocaml/preprocess/parser_raw.ml" +# 26827 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26805 "src/ocaml/preprocess/parser_raw.ml" +# 26833 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -26871,18 +26899,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 26875 "src/ocaml/preprocess/parser_raw.ml" +# 26903 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26880 "src/ocaml/preprocess/parser_raw.ml" +# 26908 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 26886 "src/ocaml/preprocess/parser_raw.ml" +# 26914 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -26891,22 +26919,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26897 "src/ocaml/preprocess/parser_raw.ml" +# 26925 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 26903 "src/ocaml/preprocess/parser_raw.ml" +# 26931 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -26919,56 +26947,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 26923 "src/ocaml/preprocess/parser_raw.ml" +# 26951 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26929 "src/ocaml/preprocess/parser_raw.ml" +# 26957 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26935 "src/ocaml/preprocess/parser_raw.ml" +# 26963 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26941 "src/ocaml/preprocess/parser_raw.ml" +# 26969 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5106 "src/ocaml/preprocess/parser_raw.mly" +# 5105 "src/ocaml/preprocess/parser_raw.mly" (">") -# 26949 "src/ocaml/preprocess/parser_raw.ml" +# 26977 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 26957 "src/ocaml/preprocess/parser_raw.ml" +# 26985 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 26966 "src/ocaml/preprocess/parser_raw.ml" +# 26994 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 26972 "src/ocaml/preprocess/parser_raw.ml" +# 27000 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -27047,18 +27075,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 27051 "src/ocaml/preprocess/parser_raw.ml" +# 27079 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27056 "src/ocaml/preprocess/parser_raw.ml" +# 27084 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27062 "src/ocaml/preprocess/parser_raw.ml" +# 27090 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -27067,22 +27095,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27073 "src/ocaml/preprocess/parser_raw.ml" +# 27101 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 27079 "src/ocaml/preprocess/parser_raw.ml" +# 27107 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -27095,7 +27123,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 27099 "src/ocaml/preprocess/parser_raw.ml" +# 27127 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -27103,58 +27131,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 27109 "src/ocaml/preprocess/parser_raw.ml" +# 27137 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27115 "src/ocaml/preprocess/parser_raw.ml" +# 27143 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27121 "src/ocaml/preprocess/parser_raw.ml" +# 27149 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27127 "src/ocaml/preprocess/parser_raw.ml" +# 27155 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5106 "src/ocaml/preprocess/parser_raw.mly" +# 5105 "src/ocaml/preprocess/parser_raw.mly" (">") -# 27135 "src/ocaml/preprocess/parser_raw.ml" +# 27163 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 27143 "src/ocaml/preprocess/parser_raw.ml" +# 27171 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 27152 "src/ocaml/preprocess/parser_raw.ml" +# 27180 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27158 "src/ocaml/preprocess/parser_raw.ml" +# 27186 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -27196,45 +27224,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27202 "src/ocaml/preprocess/parser_raw.ml" +# 27230 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27207 "src/ocaml/preprocess/parser_raw.ml" +# 27235 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5107 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ("or") -# 27215 "src/ocaml/preprocess/parser_raw.ml" +# 27243 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 27223 "src/ocaml/preprocess/parser_raw.ml" +# 27251 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 27232 "src/ocaml/preprocess/parser_raw.ml" +# 27260 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27238 "src/ocaml/preprocess/parser_raw.ml" +# 27266 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -27304,18 +27332,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 27308 "src/ocaml/preprocess/parser_raw.ml" +# 27336 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27313 "src/ocaml/preprocess/parser_raw.ml" +# 27341 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27319 "src/ocaml/preprocess/parser_raw.ml" +# 27347 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -27324,22 +27352,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27330 "src/ocaml/preprocess/parser_raw.ml" +# 27358 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 27336 "src/ocaml/preprocess/parser_raw.ml" +# 27364 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -27352,56 +27380,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 27356 "src/ocaml/preprocess/parser_raw.ml" +# 27384 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27362 "src/ocaml/preprocess/parser_raw.ml" +# 27390 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27368 "src/ocaml/preprocess/parser_raw.ml" +# 27396 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27374 "src/ocaml/preprocess/parser_raw.ml" +# 27402 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5107 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ("or") -# 27382 "src/ocaml/preprocess/parser_raw.ml" +# 27410 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 27390 "src/ocaml/preprocess/parser_raw.ml" +# 27418 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 27399 "src/ocaml/preprocess/parser_raw.ml" +# 27427 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27405 "src/ocaml/preprocess/parser_raw.ml" +# 27433 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -27480,18 +27508,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 27484 "src/ocaml/preprocess/parser_raw.ml" +# 27512 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27489 "src/ocaml/preprocess/parser_raw.ml" +# 27517 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27495 "src/ocaml/preprocess/parser_raw.ml" +# 27523 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -27500,22 +27528,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27506 "src/ocaml/preprocess/parser_raw.ml" +# 27534 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 27512 "src/ocaml/preprocess/parser_raw.ml" +# 27540 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -27528,7 +27556,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 27532 "src/ocaml/preprocess/parser_raw.ml" +# 27560 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -27536,58 +27564,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 27542 "src/ocaml/preprocess/parser_raw.ml" +# 27570 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27548 "src/ocaml/preprocess/parser_raw.ml" +# 27576 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27554 "src/ocaml/preprocess/parser_raw.ml" +# 27582 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27560 "src/ocaml/preprocess/parser_raw.ml" +# 27588 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5107 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ("or") -# 27568 "src/ocaml/preprocess/parser_raw.ml" +# 27596 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 27576 "src/ocaml/preprocess/parser_raw.ml" +# 27604 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 27585 "src/ocaml/preprocess/parser_raw.ml" +# 27613 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27591 "src/ocaml/preprocess/parser_raw.ml" +# 27619 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -27629,45 +27657,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27635 "src/ocaml/preprocess/parser_raw.ml" +# 27663 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27640 "src/ocaml/preprocess/parser_raw.ml" +# 27668 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5108 "src/ocaml/preprocess/parser_raw.mly" +# 5107 "src/ocaml/preprocess/parser_raw.mly" ("||") -# 27648 "src/ocaml/preprocess/parser_raw.ml" +# 27676 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 27656 "src/ocaml/preprocess/parser_raw.ml" +# 27684 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 27665 "src/ocaml/preprocess/parser_raw.ml" +# 27693 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27671 "src/ocaml/preprocess/parser_raw.ml" +# 27699 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -27737,18 +27765,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 27741 "src/ocaml/preprocess/parser_raw.ml" +# 27769 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27746 "src/ocaml/preprocess/parser_raw.ml" +# 27774 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27752 "src/ocaml/preprocess/parser_raw.ml" +# 27780 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -27757,22 +27785,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27763 "src/ocaml/preprocess/parser_raw.ml" +# 27791 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 27769 "src/ocaml/preprocess/parser_raw.ml" +# 27797 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -27785,56 +27813,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 27789 "src/ocaml/preprocess/parser_raw.ml" +# 27817 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27795 "src/ocaml/preprocess/parser_raw.ml" +# 27823 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27801 "src/ocaml/preprocess/parser_raw.ml" +# 27829 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27807 "src/ocaml/preprocess/parser_raw.ml" +# 27835 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5108 "src/ocaml/preprocess/parser_raw.mly" +# 5107 "src/ocaml/preprocess/parser_raw.mly" ("||") -# 27815 "src/ocaml/preprocess/parser_raw.ml" +# 27843 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 27823 "src/ocaml/preprocess/parser_raw.ml" +# 27851 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 27832 "src/ocaml/preprocess/parser_raw.ml" +# 27860 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27838 "src/ocaml/preprocess/parser_raw.ml" +# 27866 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -27913,18 +27941,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 27917 "src/ocaml/preprocess/parser_raw.ml" +# 27945 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27922 "src/ocaml/preprocess/parser_raw.ml" +# 27950 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 27928 "src/ocaml/preprocess/parser_raw.ml" +# 27956 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -27933,22 +27961,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27939 "src/ocaml/preprocess/parser_raw.ml" +# 27967 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 27945 "src/ocaml/preprocess/parser_raw.ml" +# 27973 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -27961,7 +27989,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 27965 "src/ocaml/preprocess/parser_raw.ml" +# 27993 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -27969,58 +27997,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 27975 "src/ocaml/preprocess/parser_raw.ml" +# 28003 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27981 "src/ocaml/preprocess/parser_raw.ml" +# 28009 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27987 "src/ocaml/preprocess/parser_raw.ml" +# 28015 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 27993 "src/ocaml/preprocess/parser_raw.ml" +# 28021 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5108 "src/ocaml/preprocess/parser_raw.mly" +# 5107 "src/ocaml/preprocess/parser_raw.mly" ("||") -# 28001 "src/ocaml/preprocess/parser_raw.ml" +# 28029 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 28009 "src/ocaml/preprocess/parser_raw.ml" +# 28037 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 28018 "src/ocaml/preprocess/parser_raw.ml" +# 28046 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28024 "src/ocaml/preprocess/parser_raw.ml" +# 28052 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -28062,45 +28090,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28068 "src/ocaml/preprocess/parser_raw.ml" +# 28096 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28073 "src/ocaml/preprocess/parser_raw.ml" +# 28101 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5109 "src/ocaml/preprocess/parser_raw.mly" +# 5108 "src/ocaml/preprocess/parser_raw.mly" ("&") -# 28081 "src/ocaml/preprocess/parser_raw.ml" +# 28109 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 28089 "src/ocaml/preprocess/parser_raw.ml" +# 28117 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 28098 "src/ocaml/preprocess/parser_raw.ml" +# 28126 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28104 "src/ocaml/preprocess/parser_raw.ml" +# 28132 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -28170,18 +28198,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 28174 "src/ocaml/preprocess/parser_raw.ml" +# 28202 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28179 "src/ocaml/preprocess/parser_raw.ml" +# 28207 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28185 "src/ocaml/preprocess/parser_raw.ml" +# 28213 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -28190,22 +28218,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28196 "src/ocaml/preprocess/parser_raw.ml" +# 28224 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 28202 "src/ocaml/preprocess/parser_raw.ml" +# 28230 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -28218,56 +28246,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 28222 "src/ocaml/preprocess/parser_raw.ml" +# 28250 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28228 "src/ocaml/preprocess/parser_raw.ml" +# 28256 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28234 "src/ocaml/preprocess/parser_raw.ml" +# 28262 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28240 "src/ocaml/preprocess/parser_raw.ml" +# 28268 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5109 "src/ocaml/preprocess/parser_raw.mly" +# 5108 "src/ocaml/preprocess/parser_raw.mly" ("&") -# 28248 "src/ocaml/preprocess/parser_raw.ml" +# 28276 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 28256 "src/ocaml/preprocess/parser_raw.ml" +# 28284 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 28265 "src/ocaml/preprocess/parser_raw.ml" +# 28293 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28271 "src/ocaml/preprocess/parser_raw.ml" +# 28299 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -28346,18 +28374,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 28350 "src/ocaml/preprocess/parser_raw.ml" +# 28378 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28355 "src/ocaml/preprocess/parser_raw.ml" +# 28383 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28361 "src/ocaml/preprocess/parser_raw.ml" +# 28389 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -28366,22 +28394,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28372 "src/ocaml/preprocess/parser_raw.ml" +# 28400 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 28378 "src/ocaml/preprocess/parser_raw.ml" +# 28406 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -28394,7 +28422,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 28398 "src/ocaml/preprocess/parser_raw.ml" +# 28426 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -28402,58 +28430,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 28408 "src/ocaml/preprocess/parser_raw.ml" +# 28436 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28414 "src/ocaml/preprocess/parser_raw.ml" +# 28442 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28420 "src/ocaml/preprocess/parser_raw.ml" +# 28448 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28426 "src/ocaml/preprocess/parser_raw.ml" +# 28454 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5109 "src/ocaml/preprocess/parser_raw.mly" +# 5108 "src/ocaml/preprocess/parser_raw.mly" ("&") -# 28434 "src/ocaml/preprocess/parser_raw.ml" +# 28462 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 28442 "src/ocaml/preprocess/parser_raw.ml" +# 28470 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 28451 "src/ocaml/preprocess/parser_raw.ml" +# 28479 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28457 "src/ocaml/preprocess/parser_raw.ml" +# 28485 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -28495,45 +28523,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28501 "src/ocaml/preprocess/parser_raw.ml" +# 28529 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28506 "src/ocaml/preprocess/parser_raw.ml" +# 28534 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5110 "src/ocaml/preprocess/parser_raw.mly" +# 5109 "src/ocaml/preprocess/parser_raw.mly" ("&&") -# 28514 "src/ocaml/preprocess/parser_raw.ml" +# 28542 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 28522 "src/ocaml/preprocess/parser_raw.ml" +# 28550 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 28531 "src/ocaml/preprocess/parser_raw.ml" +# 28559 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28537 "src/ocaml/preprocess/parser_raw.ml" +# 28565 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -28603,18 +28631,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 28607 "src/ocaml/preprocess/parser_raw.ml" +# 28635 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28612 "src/ocaml/preprocess/parser_raw.ml" +# 28640 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28618 "src/ocaml/preprocess/parser_raw.ml" +# 28646 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -28623,22 +28651,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28629 "src/ocaml/preprocess/parser_raw.ml" +# 28657 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 28635 "src/ocaml/preprocess/parser_raw.ml" +# 28663 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -28651,56 +28679,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 28655 "src/ocaml/preprocess/parser_raw.ml" +# 28683 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28661 "src/ocaml/preprocess/parser_raw.ml" +# 28689 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28667 "src/ocaml/preprocess/parser_raw.ml" +# 28695 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28673 "src/ocaml/preprocess/parser_raw.ml" +# 28701 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5110 "src/ocaml/preprocess/parser_raw.mly" +# 5109 "src/ocaml/preprocess/parser_raw.mly" ("&&") -# 28681 "src/ocaml/preprocess/parser_raw.ml" +# 28709 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 28689 "src/ocaml/preprocess/parser_raw.ml" +# 28717 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 28698 "src/ocaml/preprocess/parser_raw.ml" +# 28726 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28704 "src/ocaml/preprocess/parser_raw.ml" +# 28732 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -28779,18 +28807,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 28783 "src/ocaml/preprocess/parser_raw.ml" +# 28811 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28788 "src/ocaml/preprocess/parser_raw.ml" +# 28816 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 28794 "src/ocaml/preprocess/parser_raw.ml" +# 28822 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -28799,22 +28827,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28805 "src/ocaml/preprocess/parser_raw.ml" +# 28833 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 28811 "src/ocaml/preprocess/parser_raw.ml" +# 28839 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -28827,7 +28855,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 28831 "src/ocaml/preprocess/parser_raw.ml" +# 28859 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -28835,58 +28863,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 28841 "src/ocaml/preprocess/parser_raw.ml" +# 28869 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28847 "src/ocaml/preprocess/parser_raw.ml" +# 28875 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28853 "src/ocaml/preprocess/parser_raw.ml" +# 28881 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28859 "src/ocaml/preprocess/parser_raw.ml" +# 28887 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5110 "src/ocaml/preprocess/parser_raw.mly" +# 5109 "src/ocaml/preprocess/parser_raw.mly" ("&&") -# 28867 "src/ocaml/preprocess/parser_raw.ml" +# 28895 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 28875 "src/ocaml/preprocess/parser_raw.ml" +# 28903 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 28884 "src/ocaml/preprocess/parser_raw.ml" +# 28912 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28890 "src/ocaml/preprocess/parser_raw.ml" +# 28918 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -28928,45 +28956,45 @@ module Tables = struct let e2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28934 "src/ocaml/preprocess/parser_raw.ml" +# 28962 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28939 "src/ocaml/preprocess/parser_raw.ml" +# 28967 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos__1_inlined1_ in let op = let _1 = -# 5111 "src/ocaml/preprocess/parser_raw.mly" +# 5110 "src/ocaml/preprocess/parser_raw.mly" (":=") -# 28947 "src/ocaml/preprocess/parser_raw.ml" +# 28975 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 28955 "src/ocaml/preprocess/parser_raw.ml" +# 28983 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 28964 "src/ocaml/preprocess/parser_raw.ml" +# 28992 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 28970 "src/ocaml/preprocess/parser_raw.ml" +# 28998 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -29036,18 +29064,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 29040 "src/ocaml/preprocess/parser_raw.ml" +# 29068 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 29045 "src/ocaml/preprocess/parser_raw.ml" +# 29073 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 29051 "src/ocaml/preprocess/parser_raw.ml" +# 29079 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -29056,22 +29084,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29062 "src/ocaml/preprocess/parser_raw.ml" +# 29090 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 29068 "src/ocaml/preprocess/parser_raw.ml" +# 29096 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -29084,56 +29112,56 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 29088 "src/ocaml/preprocess/parser_raw.ml" +# 29116 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29094 "src/ocaml/preprocess/parser_raw.ml" +# 29122 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29100 "src/ocaml/preprocess/parser_raw.ml" +# 29128 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29106 "src/ocaml/preprocess/parser_raw.ml" +# 29134 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5111 "src/ocaml/preprocess/parser_raw.mly" +# 5110 "src/ocaml/preprocess/parser_raw.mly" (":=") -# 29114 "src/ocaml/preprocess/parser_raw.ml" +# 29142 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 29122 "src/ocaml/preprocess/parser_raw.ml" +# 29150 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 29131 "src/ocaml/preprocess/parser_raw.ml" +# 29159 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29137 "src/ocaml/preprocess/parser_raw.ml" +# 29165 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -29212,18 +29240,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 29216 "src/ocaml/preprocess/parser_raw.ml" +# 29244 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 29221 "src/ocaml/preprocess/parser_raw.ml" +# 29249 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 29227 "src/ocaml/preprocess/parser_raw.ml" +# 29255 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -29232,22 +29260,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29238 "src/ocaml/preprocess/parser_raw.ml" +# 29266 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 29244 "src/ocaml/preprocess/parser_raw.ml" +# 29272 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -29260,7 +29288,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 29264 "src/ocaml/preprocess/parser_raw.ml" +# 29292 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -29268,58 +29296,58 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 29274 "src/ocaml/preprocess/parser_raw.ml" +# 29302 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29280 "src/ocaml/preprocess/parser_raw.ml" +# 29308 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29286 "src/ocaml/preprocess/parser_raw.ml" +# 29314 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29292 "src/ocaml/preprocess/parser_raw.ml" +# 29320 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_e2_ = _endpos_xs_ in let op = let _1 = -# 5111 "src/ocaml/preprocess/parser_raw.mly" +# 5110 "src/ocaml/preprocess/parser_raw.mly" (":=") -# 29300 "src/ocaml/preprocess/parser_raw.ml" +# 29328 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 29308 "src/ocaml/preprocess/parser_raw.ml" +# 29336 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_e2_ in let _symbolstartpos = _startpos_e1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3051 "src/ocaml/preprocess/parser_raw.mly" +# 3027 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (mkinfix e1 op e2) ) -# 29317 "src/ocaml/preprocess/parser_raw.ml" +# 29345 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2956 "src/ocaml/preprocess/parser_raw.mly" +# 2932 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29323 "src/ocaml/preprocess/parser_raw.ml" +# 29351 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -29361,9 +29389,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2958 "src/ocaml/preprocess/parser_raw.mly" +# 2934 "src/ocaml/preprocess/parser_raw.mly" ( expr_of_let_bindings ~loc:_sloc _1 (merloc _endpos__2_ _3) ) -# 29367 "src/ocaml/preprocess/parser_raw.ml" +# 29395 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -29404,9 +29432,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 : ( -# 1074 "src/ocaml/preprocess/parser_raw.mly" +# 1086 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29410 "src/ocaml/preprocess/parser_raw.ml" +# 29438 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -29417,9 +29445,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 29423 "src/ocaml/preprocess/parser_raw.ml" +# 29451 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_pbop_op_ = _startpos__1_ in @@ -29427,13 +29455,13 @@ module Tables = struct let _symbolstartpos = _startpos_pbop_op_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2960 "src/ocaml/preprocess/parser_raw.mly" +# 2936 "src/ocaml/preprocess/parser_raw.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}) ) -# 29437 "src/ocaml/preprocess/parser_raw.ml" +# 29465 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -29474,14 +29502,14 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29480 "src/ocaml/preprocess/parser_raw.ml" +# 29508 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29485 "src/ocaml/preprocess/parser_raw.ml" +# 29513 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__1_inlined1_ in @@ -29490,10 +29518,10 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in ( -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 2942 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[None, _1; None, (merloc _endpos__2_ _3)])) ) -# 29497 "src/ocaml/preprocess/parser_raw.ml" +# 29525 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -29562,18 +29590,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 29566 "src/ocaml/preprocess/parser_raw.ml" +# 29594 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 29571 "src/ocaml/preprocess/parser_raw.ml" +# 29599 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 29577 "src/ocaml/preprocess/parser_raw.ml" +# 29605 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -29582,22 +29610,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29588 "src/ocaml/preprocess/parser_raw.ml" +# 29616 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 29594 "src/ocaml/preprocess/parser_raw.ml" +# 29622 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -29610,25 +29638,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 29614 "src/ocaml/preprocess/parser_raw.ml" +# 29642 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29620 "src/ocaml/preprocess/parser_raw.ml" +# 29648 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29626 "src/ocaml/preprocess/parser_raw.ml" +# 29654 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29632 "src/ocaml/preprocess/parser_raw.ml" +# 29660 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -29637,10 +29665,10 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in ( -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 2942 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[None, _1; None, (merloc _endpos__2_ _3)])) ) -# 29644 "src/ocaml/preprocess/parser_raw.ml" +# 29672 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -29718,18 +29746,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 29722 "src/ocaml/preprocess/parser_raw.ml" +# 29750 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 29727 "src/ocaml/preprocess/parser_raw.ml" +# 29755 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 29733 "src/ocaml/preprocess/parser_raw.ml" +# 29761 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -29738,22 +29766,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29744 "src/ocaml/preprocess/parser_raw.ml" +# 29772 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 29750 "src/ocaml/preprocess/parser_raw.ml" +# 29778 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -29766,7 +29794,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 29770 "src/ocaml/preprocess/parser_raw.ml" +# 29798 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -29774,27 +29802,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 29780 "src/ocaml/preprocess/parser_raw.ml" +# 29808 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29786 "src/ocaml/preprocess/parser_raw.ml" +# 29814 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29792 "src/ocaml/preprocess/parser_raw.ml" +# 29820 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29798 "src/ocaml/preprocess/parser_raw.ml" +# 29826 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -29803,10 +29831,10 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in ( -# 2966 "src/ocaml/preprocess/parser_raw.mly" +# 2942 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_cons ~loc:_sloc _loc__2_ (ghexp ~loc:_sloc (Pexp_tuple[None, _1; None, (merloc _endpos__2_ _3)])) ) -# 29810 "src/ocaml/preprocess/parser_raw.ml" +# 29838 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -29840,9 +29868,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29846 "src/ocaml/preprocess/parser_raw.ml" +# 29874 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -29851,39 +29879,39 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29857 "src/ocaml/preprocess/parser_raw.ml" +# 29885 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29862 "src/ocaml/preprocess/parser_raw.ml" +# 29890 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__1_inlined1_ in let _1 = let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29870 "src/ocaml/preprocess/parser_raw.ml" +# 29898 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 29878 "src/ocaml/preprocess/parser_raw.ml" +# 29906 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2969 "src/ocaml/preprocess/parser_raw.mly" +# 2945 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) ) -# 29887 "src/ocaml/preprocess/parser_raw.ml" +# 29915 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -29938,9 +29966,9 @@ module Tables = struct let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 29944 "src/ocaml/preprocess/parser_raw.ml" +# 29972 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -29956,18 +29984,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 29960 "src/ocaml/preprocess/parser_raw.ml" +# 29988 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 29965 "src/ocaml/preprocess/parser_raw.ml" +# 29993 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 29971 "src/ocaml/preprocess/parser_raw.ml" +# 29999 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -29976,22 +30004,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 29982 "src/ocaml/preprocess/parser_raw.ml" +# 30010 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 29988 "src/ocaml/preprocess/parser_raw.ml" +# 30016 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -30004,50 +30032,50 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 30008 "src/ocaml/preprocess/parser_raw.ml" +# 30036 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30014 "src/ocaml/preprocess/parser_raw.ml" +# 30042 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30020 "src/ocaml/preprocess/parser_raw.ml" +# 30048 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30026 "src/ocaml/preprocess/parser_raw.ml" +# 30054 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in let _1 = let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30034 "src/ocaml/preprocess/parser_raw.ml" +# 30062 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 30042 "src/ocaml/preprocess/parser_raw.ml" +# 30070 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2969 "src/ocaml/preprocess/parser_raw.mly" +# 2945 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) ) -# 30051 "src/ocaml/preprocess/parser_raw.ml" +# 30079 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -30109,9 +30137,9 @@ module Tables = struct let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 30115 "src/ocaml/preprocess/parser_raw.ml" +# 30143 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -30129,18 +30157,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 30133 "src/ocaml/preprocess/parser_raw.ml" +# 30161 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 30138 "src/ocaml/preprocess/parser_raw.ml" +# 30166 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 30144 "src/ocaml/preprocess/parser_raw.ml" +# 30172 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -30149,22 +30177,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30155 "src/ocaml/preprocess/parser_raw.ml" +# 30183 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 30161 "src/ocaml/preprocess/parser_raw.ml" +# 30189 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -30177,7 +30205,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 30181 "src/ocaml/preprocess/parser_raw.ml" +# 30209 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -30185,52 +30213,52 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 30191 "src/ocaml/preprocess/parser_raw.ml" +# 30219 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30197 "src/ocaml/preprocess/parser_raw.ml" +# 30225 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30203 "src/ocaml/preprocess/parser_raw.ml" +# 30231 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30209 "src/ocaml/preprocess/parser_raw.ml" +# 30237 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in let _1 = let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30217 "src/ocaml/preprocess/parser_raw.ml" +# 30245 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 30225 "src/ocaml/preprocess/parser_raw.ml" +# 30253 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2969 "src/ocaml/preprocess/parser_raw.mly" +# 2945 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setinstvar(_1, _3)) ) -# 30234 "src/ocaml/preprocess/parser_raw.ml" +# 30262 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -30285,14 +30313,14 @@ module Tables = struct let _5 = let _1 = _1_inlined2 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30291 "src/ocaml/preprocess/parser_raw.ml" +# 30319 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30296 "src/ocaml/preprocess/parser_raw.ml" +# 30324 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in @@ -30302,18 +30330,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 30308 "src/ocaml/preprocess/parser_raw.ml" +# 30336 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2971 "src/ocaml/preprocess/parser_raw.mly" +# 2947 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) ) -# 30317 "src/ocaml/preprocess/parser_raw.ml" +# 30345 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -30396,18 +30424,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 30400 "src/ocaml/preprocess/parser_raw.ml" +# 30428 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 30405 "src/ocaml/preprocess/parser_raw.ml" +# 30433 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 30411 "src/ocaml/preprocess/parser_raw.ml" +# 30439 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -30416,22 +30444,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30422 "src/ocaml/preprocess/parser_raw.ml" +# 30450 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 30428 "src/ocaml/preprocess/parser_raw.ml" +# 30456 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -30444,25 +30472,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 30448 "src/ocaml/preprocess/parser_raw.ml" +# 30476 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30454 "src/ocaml/preprocess/parser_raw.ml" +# 30482 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30460 "src/ocaml/preprocess/parser_raw.ml" +# 30488 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30466 "src/ocaml/preprocess/parser_raw.ml" +# 30494 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos_xs_ in @@ -30472,18 +30500,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 30478 "src/ocaml/preprocess/parser_raw.ml" +# 30506 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2971 "src/ocaml/preprocess/parser_raw.mly" +# 2947 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) ) -# 30487 "src/ocaml/preprocess/parser_raw.ml" +# 30515 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -30575,18 +30603,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 30579 "src/ocaml/preprocess/parser_raw.ml" +# 30607 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 30584 "src/ocaml/preprocess/parser_raw.ml" +# 30612 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 30590 "src/ocaml/preprocess/parser_raw.ml" +# 30618 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -30595,22 +30623,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30601 "src/ocaml/preprocess/parser_raw.ml" +# 30629 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 30607 "src/ocaml/preprocess/parser_raw.ml" +# 30635 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -30623,7 +30651,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 30627 "src/ocaml/preprocess/parser_raw.ml" +# 30655 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -30631,27 +30659,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 30637 "src/ocaml/preprocess/parser_raw.ml" +# 30665 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30643 "src/ocaml/preprocess/parser_raw.ml" +# 30671 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30649 "src/ocaml/preprocess/parser_raw.ml" +# 30677 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30655 "src/ocaml/preprocess/parser_raw.ml" +# 30683 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos_xs_ in @@ -30661,18 +30689,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 30667 "src/ocaml/preprocess/parser_raw.ml" +# 30695 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2971 "src/ocaml/preprocess/parser_raw.mly" +# 2947 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_setfield(_1, _3, _5)) ) -# 30676 "src/ocaml/preprocess/parser_raw.ml" +# 30704 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -30743,26 +30771,26 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30749 "src/ocaml/preprocess/parser_raw.ml" +# 30777 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30754 "src/ocaml/preprocess/parser_raw.ml" +# 30782 "src/ocaml/preprocess/parser_raw.ml" in -# 2972 "src/ocaml/preprocess/parser_raw.mly" +# 2948 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 30760 "src/ocaml/preprocess/parser_raw.ml" +# 30788 "src/ocaml/preprocess/parser_raw.ml" in -# 2906 "src/ocaml/preprocess/parser_raw.mly" +# 2882 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 30766 "src/ocaml/preprocess/parser_raw.ml" +# 30794 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in @@ -30770,9 +30798,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 2949 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 30776 "src/ocaml/preprocess/parser_raw.ml" +# 30804 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -30871,18 +30899,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 30875 "src/ocaml/preprocess/parser_raw.ml" +# 30903 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 30880 "src/ocaml/preprocess/parser_raw.ml" +# 30908 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 30886 "src/ocaml/preprocess/parser_raw.ml" +# 30914 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -30891,22 +30919,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30897 "src/ocaml/preprocess/parser_raw.ml" +# 30925 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 30903 "src/ocaml/preprocess/parser_raw.ml" +# 30931 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -30919,37 +30947,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 30923 "src/ocaml/preprocess/parser_raw.ml" +# 30951 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30929 "src/ocaml/preprocess/parser_raw.ml" +# 30957 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30935 "src/ocaml/preprocess/parser_raw.ml" +# 30963 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 30941 "src/ocaml/preprocess/parser_raw.ml" +# 30969 "src/ocaml/preprocess/parser_raw.ml" in -# 2972 "src/ocaml/preprocess/parser_raw.mly" +# 2948 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 30947 "src/ocaml/preprocess/parser_raw.ml" +# 30975 "src/ocaml/preprocess/parser_raw.ml" in -# 2906 "src/ocaml/preprocess/parser_raw.mly" +# 2882 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 30953 "src/ocaml/preprocess/parser_raw.ml" +# 30981 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -30957,9 +30985,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 2949 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 30963 "src/ocaml/preprocess/parser_raw.ml" +# 30991 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -31067,18 +31095,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 31071 "src/ocaml/preprocess/parser_raw.ml" +# 31099 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 31076 "src/ocaml/preprocess/parser_raw.ml" +# 31104 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 31082 "src/ocaml/preprocess/parser_raw.ml" +# 31110 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -31087,22 +31115,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31093 "src/ocaml/preprocess/parser_raw.ml" +# 31121 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 31099 "src/ocaml/preprocess/parser_raw.ml" +# 31127 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -31115,7 +31143,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 31119 "src/ocaml/preprocess/parser_raw.ml" +# 31147 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -31123,39 +31151,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 31129 "src/ocaml/preprocess/parser_raw.ml" +# 31157 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31135 "src/ocaml/preprocess/parser_raw.ml" +# 31163 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31141 "src/ocaml/preprocess/parser_raw.ml" +# 31169 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31147 "src/ocaml/preprocess/parser_raw.ml" +# 31175 "src/ocaml/preprocess/parser_raw.ml" in -# 2972 "src/ocaml/preprocess/parser_raw.mly" +# 2948 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 31153 "src/ocaml/preprocess/parser_raw.ml" +# 31181 "src/ocaml/preprocess/parser_raw.ml" in -# 2906 "src/ocaml/preprocess/parser_raw.mly" +# 2882 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 31159 "src/ocaml/preprocess/parser_raw.ml" +# 31187 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -31163,9 +31191,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 2949 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 31169 "src/ocaml/preprocess/parser_raw.ml" +# 31197 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -31236,26 +31264,26 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31242 "src/ocaml/preprocess/parser_raw.ml" +# 31270 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31247 "src/ocaml/preprocess/parser_raw.ml" +# 31275 "src/ocaml/preprocess/parser_raw.ml" in -# 2972 "src/ocaml/preprocess/parser_raw.mly" +# 2948 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 31253 "src/ocaml/preprocess/parser_raw.ml" +# 31281 "src/ocaml/preprocess/parser_raw.ml" in -# 2908 "src/ocaml/preprocess/parser_raw.mly" +# 2884 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 31259 "src/ocaml/preprocess/parser_raw.ml" +# 31287 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in @@ -31263,9 +31291,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 2949 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 31269 "src/ocaml/preprocess/parser_raw.ml" +# 31297 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -31364,18 +31392,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 31368 "src/ocaml/preprocess/parser_raw.ml" +# 31396 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 31373 "src/ocaml/preprocess/parser_raw.ml" +# 31401 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 31379 "src/ocaml/preprocess/parser_raw.ml" +# 31407 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -31384,22 +31412,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31390 "src/ocaml/preprocess/parser_raw.ml" +# 31418 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 31396 "src/ocaml/preprocess/parser_raw.ml" +# 31424 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -31412,37 +31440,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 31416 "src/ocaml/preprocess/parser_raw.ml" +# 31444 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31422 "src/ocaml/preprocess/parser_raw.ml" +# 31450 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31428 "src/ocaml/preprocess/parser_raw.ml" +# 31456 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31434 "src/ocaml/preprocess/parser_raw.ml" +# 31462 "src/ocaml/preprocess/parser_raw.ml" in -# 2972 "src/ocaml/preprocess/parser_raw.mly" +# 2948 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 31440 "src/ocaml/preprocess/parser_raw.ml" +# 31468 "src/ocaml/preprocess/parser_raw.ml" in -# 2908 "src/ocaml/preprocess/parser_raw.mly" +# 2884 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 31446 "src/ocaml/preprocess/parser_raw.ml" +# 31474 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -31450,9 +31478,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 2949 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 31456 "src/ocaml/preprocess/parser_raw.ml" +# 31484 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -31560,18 +31588,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 31564 "src/ocaml/preprocess/parser_raw.ml" +# 31592 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 31569 "src/ocaml/preprocess/parser_raw.ml" +# 31597 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 31575 "src/ocaml/preprocess/parser_raw.ml" +# 31603 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -31580,22 +31608,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31586 "src/ocaml/preprocess/parser_raw.ml" +# 31614 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 31592 "src/ocaml/preprocess/parser_raw.ml" +# 31620 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -31608,7 +31636,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 31612 "src/ocaml/preprocess/parser_raw.ml" +# 31640 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -31616,39 +31644,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 31622 "src/ocaml/preprocess/parser_raw.ml" +# 31650 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31628 "src/ocaml/preprocess/parser_raw.ml" +# 31656 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31634 "src/ocaml/preprocess/parser_raw.ml" +# 31662 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31640 "src/ocaml/preprocess/parser_raw.ml" +# 31668 "src/ocaml/preprocess/parser_raw.ml" in -# 2972 "src/ocaml/preprocess/parser_raw.mly" +# 2948 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 31646 "src/ocaml/preprocess/parser_raw.ml" +# 31674 "src/ocaml/preprocess/parser_raw.ml" in -# 2908 "src/ocaml/preprocess/parser_raw.mly" +# 2884 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 31652 "src/ocaml/preprocess/parser_raw.ml" +# 31680 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -31656,9 +31684,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 2949 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 31662 "src/ocaml/preprocess/parser_raw.ml" +# 31690 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -31729,26 +31757,26 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31735 "src/ocaml/preprocess/parser_raw.ml" +# 31763 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31740 "src/ocaml/preprocess/parser_raw.ml" +# 31768 "src/ocaml/preprocess/parser_raw.ml" in -# 2972 "src/ocaml/preprocess/parser_raw.mly" +# 2948 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 31746 "src/ocaml/preprocess/parser_raw.ml" +# 31774 "src/ocaml/preprocess/parser_raw.ml" in -# 2910 "src/ocaml/preprocess/parser_raw.mly" +# 2886 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 31752 "src/ocaml/preprocess/parser_raw.ml" +# 31780 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in @@ -31756,9 +31784,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 2949 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 31762 "src/ocaml/preprocess/parser_raw.ml" +# 31790 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -31857,18 +31885,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 31861 "src/ocaml/preprocess/parser_raw.ml" +# 31889 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 31866 "src/ocaml/preprocess/parser_raw.ml" +# 31894 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 31872 "src/ocaml/preprocess/parser_raw.ml" +# 31900 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -31877,22 +31905,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31883 "src/ocaml/preprocess/parser_raw.ml" +# 31911 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 31889 "src/ocaml/preprocess/parser_raw.ml" +# 31917 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -31905,37 +31933,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 31909 "src/ocaml/preprocess/parser_raw.ml" +# 31937 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31915 "src/ocaml/preprocess/parser_raw.ml" +# 31943 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31921 "src/ocaml/preprocess/parser_raw.ml" +# 31949 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 31927 "src/ocaml/preprocess/parser_raw.ml" +# 31955 "src/ocaml/preprocess/parser_raw.ml" in -# 2972 "src/ocaml/preprocess/parser_raw.mly" +# 2948 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 31933 "src/ocaml/preprocess/parser_raw.ml" +# 31961 "src/ocaml/preprocess/parser_raw.ml" in -# 2910 "src/ocaml/preprocess/parser_raw.mly" +# 2886 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 31939 "src/ocaml/preprocess/parser_raw.ml" +# 31967 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -31943,9 +31971,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 2949 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 31949 "src/ocaml/preprocess/parser_raw.ml" +# 31977 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -32053,18 +32081,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 32057 "src/ocaml/preprocess/parser_raw.ml" +# 32085 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32062 "src/ocaml/preprocess/parser_raw.ml" +# 32090 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32068 "src/ocaml/preprocess/parser_raw.ml" +# 32096 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -32073,22 +32101,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32079 "src/ocaml/preprocess/parser_raw.ml" +# 32107 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32085 "src/ocaml/preprocess/parser_raw.ml" +# 32113 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -32101,7 +32129,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 32105 "src/ocaml/preprocess/parser_raw.ml" +# 32133 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -32109,39 +32137,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 32115 "src/ocaml/preprocess/parser_raw.ml" +# 32143 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32121 "src/ocaml/preprocess/parser_raw.ml" +# 32149 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32127 "src/ocaml/preprocess/parser_raw.ml" +# 32155 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32133 "src/ocaml/preprocess/parser_raw.ml" +# 32161 "src/ocaml/preprocess/parser_raw.ml" in -# 2972 "src/ocaml/preprocess/parser_raw.mly" +# 2948 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 32139 "src/ocaml/preprocess/parser_raw.ml" +# 32167 "src/ocaml/preprocess/parser_raw.ml" in -# 2910 "src/ocaml/preprocess/parser_raw.mly" +# 2886 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 32145 "src/ocaml/preprocess/parser_raw.ml" +# 32173 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -32149,9 +32177,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2973 "src/ocaml/preprocess/parser_raw.mly" +# 2949 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 32155 "src/ocaml/preprocess/parser_raw.ml" +# 32183 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -32212,9 +32240,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 32218 "src/ocaml/preprocess/parser_raw.ml" +# 32246 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -32226,43 +32254,43 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32232 "src/ocaml/preprocess/parser_raw.ml" +# 32260 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32237 "src/ocaml/preprocess/parser_raw.ml" +# 32265 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 32243 "src/ocaml/preprocess/parser_raw.ml" +# 32271 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 32249 "src/ocaml/preprocess/parser_raw.ml" +# 32277 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 123 "" ( None ) -# 32255 "src/ocaml/preprocess/parser_raw.ml" +# 32283 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32260 "src/ocaml/preprocess/parser_raw.ml" +# 32288 "src/ocaml/preprocess/parser_raw.ml" in -# 2906 "src/ocaml/preprocess/parser_raw.mly" +# 2882 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 32266 "src/ocaml/preprocess/parser_raw.ml" +# 32294 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in @@ -32270,9 +32298,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 32276 "src/ocaml/preprocess/parser_raw.ml" +# 32304 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -32354,9 +32382,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 32360 "src/ocaml/preprocess/parser_raw.ml" +# 32388 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -32375,18 +32403,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 32379 "src/ocaml/preprocess/parser_raw.ml" +# 32407 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32384 "src/ocaml/preprocess/parser_raw.ml" +# 32412 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32390 "src/ocaml/preprocess/parser_raw.ml" +# 32418 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -32395,22 +32423,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32401 "src/ocaml/preprocess/parser_raw.ml" +# 32429 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32407 "src/ocaml/preprocess/parser_raw.ml" +# 32435 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -32423,54 +32451,54 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 32427 "src/ocaml/preprocess/parser_raw.ml" +# 32455 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32433 "src/ocaml/preprocess/parser_raw.ml" +# 32461 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32439 "src/ocaml/preprocess/parser_raw.ml" +# 32467 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32445 "src/ocaml/preprocess/parser_raw.ml" +# 32473 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 32451 "src/ocaml/preprocess/parser_raw.ml" +# 32479 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 32457 "src/ocaml/preprocess/parser_raw.ml" +# 32485 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 123 "" ( None ) -# 32463 "src/ocaml/preprocess/parser_raw.ml" +# 32491 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32468 "src/ocaml/preprocess/parser_raw.ml" +# 32496 "src/ocaml/preprocess/parser_raw.ml" in -# 2906 "src/ocaml/preprocess/parser_raw.mly" +# 2882 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 32474 "src/ocaml/preprocess/parser_raw.ml" +# 32502 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -32478,9 +32506,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 32484 "src/ocaml/preprocess/parser_raw.ml" +# 32512 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -32569,9 +32597,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 32575 "src/ocaml/preprocess/parser_raw.ml" +# 32603 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -32592,18 +32620,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 32596 "src/ocaml/preprocess/parser_raw.ml" +# 32624 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32601 "src/ocaml/preprocess/parser_raw.ml" +# 32629 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32607 "src/ocaml/preprocess/parser_raw.ml" +# 32635 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -32612,22 +32640,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32618 "src/ocaml/preprocess/parser_raw.ml" +# 32646 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32624 "src/ocaml/preprocess/parser_raw.ml" +# 32652 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -32640,7 +32668,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 32644 "src/ocaml/preprocess/parser_raw.ml" +# 32672 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -32648,56 +32676,56 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 32654 "src/ocaml/preprocess/parser_raw.ml" +# 32682 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32660 "src/ocaml/preprocess/parser_raw.ml" +# 32688 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32666 "src/ocaml/preprocess/parser_raw.ml" +# 32694 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32672 "src/ocaml/preprocess/parser_raw.ml" +# 32700 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 32678 "src/ocaml/preprocess/parser_raw.ml" +# 32706 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 32684 "src/ocaml/preprocess/parser_raw.ml" +# 32712 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 123 "" ( None ) -# 32690 "src/ocaml/preprocess/parser_raw.ml" +# 32718 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32695 "src/ocaml/preprocess/parser_raw.ml" +# 32723 "src/ocaml/preprocess/parser_raw.ml" in -# 2906 "src/ocaml/preprocess/parser_raw.mly" +# 2882 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 32701 "src/ocaml/preprocess/parser_raw.ml" +# 32729 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -32705,9 +32733,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 32711 "src/ocaml/preprocess/parser_raw.ml" +# 32739 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -32780,9 +32808,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 32786 "src/ocaml/preprocess/parser_raw.ml" +# 32814 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -32797,51 +32825,51 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32803 "src/ocaml/preprocess/parser_raw.ml" +# 32831 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32808 "src/ocaml/preprocess/parser_raw.ml" +# 32836 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 32814 "src/ocaml/preprocess/parser_raw.ml" +# 32842 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 32820 "src/ocaml/preprocess/parser_raw.ml" +# 32848 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 32828 "src/ocaml/preprocess/parser_raw.ml" +# 32856 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 32833 "src/ocaml/preprocess/parser_raw.ml" +# 32861 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 32839 "src/ocaml/preprocess/parser_raw.ml" +# 32867 "src/ocaml/preprocess/parser_raw.ml" in -# 2906 "src/ocaml/preprocess/parser_raw.mly" +# 2882 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 32845 "src/ocaml/preprocess/parser_raw.ml" +# 32873 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in @@ -32849,9 +32877,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 32855 "src/ocaml/preprocess/parser_raw.ml" +# 32883 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -32945,9 +32973,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 32951 "src/ocaml/preprocess/parser_raw.ml" +# 32979 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -32969,18 +32997,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 32973 "src/ocaml/preprocess/parser_raw.ml" +# 33001 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32978 "src/ocaml/preprocess/parser_raw.ml" +# 33006 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 32984 "src/ocaml/preprocess/parser_raw.ml" +# 33012 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -32989,22 +33017,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 32995 "src/ocaml/preprocess/parser_raw.ml" +# 33023 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 33001 "src/ocaml/preprocess/parser_raw.ml" +# 33029 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -33017,62 +33045,62 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 33021 "src/ocaml/preprocess/parser_raw.ml" +# 33049 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33027 "src/ocaml/preprocess/parser_raw.ml" +# 33055 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33033 "src/ocaml/preprocess/parser_raw.ml" +# 33061 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33039 "src/ocaml/preprocess/parser_raw.ml" +# 33067 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 33045 "src/ocaml/preprocess/parser_raw.ml" +# 33073 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 33051 "src/ocaml/preprocess/parser_raw.ml" +# 33079 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 33059 "src/ocaml/preprocess/parser_raw.ml" +# 33087 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 33064 "src/ocaml/preprocess/parser_raw.ml" +# 33092 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 33070 "src/ocaml/preprocess/parser_raw.ml" +# 33098 "src/ocaml/preprocess/parser_raw.ml" in -# 2906 "src/ocaml/preprocess/parser_raw.mly" +# 2882 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 33076 "src/ocaml/preprocess/parser_raw.ml" +# 33104 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -33080,9 +33108,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 33086 "src/ocaml/preprocess/parser_raw.ml" +# 33114 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -33183,9 +33211,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 33189 "src/ocaml/preprocess/parser_raw.ml" +# 33217 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -33209,18 +33237,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 33213 "src/ocaml/preprocess/parser_raw.ml" +# 33241 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33218 "src/ocaml/preprocess/parser_raw.ml" +# 33246 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33224 "src/ocaml/preprocess/parser_raw.ml" +# 33252 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -33229,22 +33257,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33235 "src/ocaml/preprocess/parser_raw.ml" +# 33263 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 33241 "src/ocaml/preprocess/parser_raw.ml" +# 33269 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -33257,7 +33285,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 33261 "src/ocaml/preprocess/parser_raw.ml" +# 33289 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -33265,64 +33293,64 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 33271 "src/ocaml/preprocess/parser_raw.ml" +# 33299 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33277 "src/ocaml/preprocess/parser_raw.ml" +# 33305 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33283 "src/ocaml/preprocess/parser_raw.ml" +# 33311 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33289 "src/ocaml/preprocess/parser_raw.ml" +# 33317 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 33295 "src/ocaml/preprocess/parser_raw.ml" +# 33323 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 33301 "src/ocaml/preprocess/parser_raw.ml" +# 33329 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 33309 "src/ocaml/preprocess/parser_raw.ml" +# 33337 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 33314 "src/ocaml/preprocess/parser_raw.ml" +# 33342 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 33320 "src/ocaml/preprocess/parser_raw.ml" +# 33348 "src/ocaml/preprocess/parser_raw.ml" in -# 2906 "src/ocaml/preprocess/parser_raw.mly" +# 2882 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 33326 "src/ocaml/preprocess/parser_raw.ml" +# 33354 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -33330,9 +33358,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 33336 "src/ocaml/preprocess/parser_raw.ml" +# 33364 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -33393,9 +33421,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 33399 "src/ocaml/preprocess/parser_raw.ml" +# 33427 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -33407,43 +33435,43 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33413 "src/ocaml/preprocess/parser_raw.ml" +# 33441 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33418 "src/ocaml/preprocess/parser_raw.ml" +# 33446 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 33424 "src/ocaml/preprocess/parser_raw.ml" +# 33452 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 33430 "src/ocaml/preprocess/parser_raw.ml" +# 33458 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 123 "" ( None ) -# 33436 "src/ocaml/preprocess/parser_raw.ml" +# 33464 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 33441 "src/ocaml/preprocess/parser_raw.ml" +# 33469 "src/ocaml/preprocess/parser_raw.ml" in -# 2908 "src/ocaml/preprocess/parser_raw.mly" +# 2884 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 33447 "src/ocaml/preprocess/parser_raw.ml" +# 33475 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in @@ -33451,9 +33479,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 33457 "src/ocaml/preprocess/parser_raw.ml" +# 33485 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -33535,9 +33563,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 33541 "src/ocaml/preprocess/parser_raw.ml" +# 33569 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -33556,18 +33584,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 33560 "src/ocaml/preprocess/parser_raw.ml" +# 33588 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33565 "src/ocaml/preprocess/parser_raw.ml" +# 33593 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33571 "src/ocaml/preprocess/parser_raw.ml" +# 33599 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -33576,22 +33604,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33582 "src/ocaml/preprocess/parser_raw.ml" +# 33610 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 33588 "src/ocaml/preprocess/parser_raw.ml" +# 33616 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -33604,54 +33632,54 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 33608 "src/ocaml/preprocess/parser_raw.ml" +# 33636 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33614 "src/ocaml/preprocess/parser_raw.ml" +# 33642 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33620 "src/ocaml/preprocess/parser_raw.ml" +# 33648 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33626 "src/ocaml/preprocess/parser_raw.ml" +# 33654 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 33632 "src/ocaml/preprocess/parser_raw.ml" +# 33660 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 33638 "src/ocaml/preprocess/parser_raw.ml" +# 33666 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 123 "" ( None ) -# 33644 "src/ocaml/preprocess/parser_raw.ml" +# 33672 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 33649 "src/ocaml/preprocess/parser_raw.ml" +# 33677 "src/ocaml/preprocess/parser_raw.ml" in -# 2908 "src/ocaml/preprocess/parser_raw.mly" +# 2884 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 33655 "src/ocaml/preprocess/parser_raw.ml" +# 33683 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -33659,9 +33687,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 33665 "src/ocaml/preprocess/parser_raw.ml" +# 33693 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -33750,9 +33778,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 33756 "src/ocaml/preprocess/parser_raw.ml" +# 33784 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -33773,18 +33801,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 33777 "src/ocaml/preprocess/parser_raw.ml" +# 33805 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33782 "src/ocaml/preprocess/parser_raw.ml" +# 33810 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 33788 "src/ocaml/preprocess/parser_raw.ml" +# 33816 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -33793,22 +33821,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33799 "src/ocaml/preprocess/parser_raw.ml" +# 33827 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 33805 "src/ocaml/preprocess/parser_raw.ml" +# 33833 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -33821,7 +33849,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 33825 "src/ocaml/preprocess/parser_raw.ml" +# 33853 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -33829,56 +33857,56 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 33835 "src/ocaml/preprocess/parser_raw.ml" +# 33863 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33841 "src/ocaml/preprocess/parser_raw.ml" +# 33869 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33847 "src/ocaml/preprocess/parser_raw.ml" +# 33875 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33853 "src/ocaml/preprocess/parser_raw.ml" +# 33881 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 33859 "src/ocaml/preprocess/parser_raw.ml" +# 33887 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 33865 "src/ocaml/preprocess/parser_raw.ml" +# 33893 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 123 "" ( None ) -# 33871 "src/ocaml/preprocess/parser_raw.ml" +# 33899 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 33876 "src/ocaml/preprocess/parser_raw.ml" +# 33904 "src/ocaml/preprocess/parser_raw.ml" in -# 2908 "src/ocaml/preprocess/parser_raw.mly" +# 2884 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 33882 "src/ocaml/preprocess/parser_raw.ml" +# 33910 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -33886,9 +33914,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 33892 "src/ocaml/preprocess/parser_raw.ml" +# 33920 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -33961,9 +33989,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 33967 "src/ocaml/preprocess/parser_raw.ml" +# 33995 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -33978,51 +34006,51 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33984 "src/ocaml/preprocess/parser_raw.ml" +# 34012 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 33989 "src/ocaml/preprocess/parser_raw.ml" +# 34017 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 33995 "src/ocaml/preprocess/parser_raw.ml" +# 34023 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 34001 "src/ocaml/preprocess/parser_raw.ml" +# 34029 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 34009 "src/ocaml/preprocess/parser_raw.ml" +# 34037 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 34014 "src/ocaml/preprocess/parser_raw.ml" +# 34042 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 34020 "src/ocaml/preprocess/parser_raw.ml" +# 34048 "src/ocaml/preprocess/parser_raw.ml" in -# 2908 "src/ocaml/preprocess/parser_raw.mly" +# 2884 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 34026 "src/ocaml/preprocess/parser_raw.ml" +# 34054 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in @@ -34030,9 +34058,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 34036 "src/ocaml/preprocess/parser_raw.ml" +# 34064 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -34126,9 +34154,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 34132 "src/ocaml/preprocess/parser_raw.ml" +# 34160 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -34150,18 +34178,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 34154 "src/ocaml/preprocess/parser_raw.ml" +# 34182 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34159 "src/ocaml/preprocess/parser_raw.ml" +# 34187 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34165 "src/ocaml/preprocess/parser_raw.ml" +# 34193 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -34170,22 +34198,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34176 "src/ocaml/preprocess/parser_raw.ml" +# 34204 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 34182 "src/ocaml/preprocess/parser_raw.ml" +# 34210 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -34198,62 +34226,62 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 34202 "src/ocaml/preprocess/parser_raw.ml" +# 34230 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34208 "src/ocaml/preprocess/parser_raw.ml" +# 34236 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34214 "src/ocaml/preprocess/parser_raw.ml" +# 34242 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34220 "src/ocaml/preprocess/parser_raw.ml" +# 34248 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 34226 "src/ocaml/preprocess/parser_raw.ml" +# 34254 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 34232 "src/ocaml/preprocess/parser_raw.ml" +# 34260 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 34240 "src/ocaml/preprocess/parser_raw.ml" +# 34268 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 34245 "src/ocaml/preprocess/parser_raw.ml" +# 34273 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 34251 "src/ocaml/preprocess/parser_raw.ml" +# 34279 "src/ocaml/preprocess/parser_raw.ml" in -# 2908 "src/ocaml/preprocess/parser_raw.mly" +# 2884 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 34257 "src/ocaml/preprocess/parser_raw.ml" +# 34285 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -34261,9 +34289,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 34267 "src/ocaml/preprocess/parser_raw.ml" +# 34295 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -34364,9 +34392,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 34370 "src/ocaml/preprocess/parser_raw.ml" +# 34398 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -34390,18 +34418,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 34394 "src/ocaml/preprocess/parser_raw.ml" +# 34422 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34399 "src/ocaml/preprocess/parser_raw.ml" +# 34427 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34405 "src/ocaml/preprocess/parser_raw.ml" +# 34433 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -34410,22 +34438,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34416 "src/ocaml/preprocess/parser_raw.ml" +# 34444 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 34422 "src/ocaml/preprocess/parser_raw.ml" +# 34450 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -34438,7 +34466,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 34442 "src/ocaml/preprocess/parser_raw.ml" +# 34470 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -34446,64 +34474,64 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 34452 "src/ocaml/preprocess/parser_raw.ml" +# 34480 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34458 "src/ocaml/preprocess/parser_raw.ml" +# 34486 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34464 "src/ocaml/preprocess/parser_raw.ml" +# 34492 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34470 "src/ocaml/preprocess/parser_raw.ml" +# 34498 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 34476 "src/ocaml/preprocess/parser_raw.ml" +# 34504 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 34482 "src/ocaml/preprocess/parser_raw.ml" +# 34510 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 34490 "src/ocaml/preprocess/parser_raw.ml" +# 34518 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 34495 "src/ocaml/preprocess/parser_raw.ml" +# 34523 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 34501 "src/ocaml/preprocess/parser_raw.ml" +# 34529 "src/ocaml/preprocess/parser_raw.ml" in -# 2908 "src/ocaml/preprocess/parser_raw.mly" +# 2884 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 34507 "src/ocaml/preprocess/parser_raw.ml" +# 34535 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -34511,9 +34539,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 34517 "src/ocaml/preprocess/parser_raw.ml" +# 34545 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -34574,9 +34602,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 34580 "src/ocaml/preprocess/parser_raw.ml" +# 34608 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -34588,43 +34616,43 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34594 "src/ocaml/preprocess/parser_raw.ml" +# 34622 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34599 "src/ocaml/preprocess/parser_raw.ml" +# 34627 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 34605 "src/ocaml/preprocess/parser_raw.ml" +# 34633 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 34611 "src/ocaml/preprocess/parser_raw.ml" +# 34639 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 123 "" ( None ) -# 34617 "src/ocaml/preprocess/parser_raw.ml" +# 34645 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 34622 "src/ocaml/preprocess/parser_raw.ml" +# 34650 "src/ocaml/preprocess/parser_raw.ml" in -# 2910 "src/ocaml/preprocess/parser_raw.mly" +# 2886 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 34628 "src/ocaml/preprocess/parser_raw.ml" +# 34656 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_array_) in @@ -34632,9 +34660,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 34638 "src/ocaml/preprocess/parser_raw.ml" +# 34666 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -34716,9 +34744,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 34722 "src/ocaml/preprocess/parser_raw.ml" +# 34750 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -34737,18 +34765,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 34741 "src/ocaml/preprocess/parser_raw.ml" +# 34769 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34746 "src/ocaml/preprocess/parser_raw.ml" +# 34774 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34752 "src/ocaml/preprocess/parser_raw.ml" +# 34780 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -34757,22 +34785,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34763 "src/ocaml/preprocess/parser_raw.ml" +# 34791 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 34769 "src/ocaml/preprocess/parser_raw.ml" +# 34797 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -34785,54 +34813,54 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 34789 "src/ocaml/preprocess/parser_raw.ml" +# 34817 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34795 "src/ocaml/preprocess/parser_raw.ml" +# 34823 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34801 "src/ocaml/preprocess/parser_raw.ml" +# 34829 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34807 "src/ocaml/preprocess/parser_raw.ml" +# 34835 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 34813 "src/ocaml/preprocess/parser_raw.ml" +# 34841 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 34819 "src/ocaml/preprocess/parser_raw.ml" +# 34847 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 123 "" ( None ) -# 34825 "src/ocaml/preprocess/parser_raw.ml" +# 34853 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 34830 "src/ocaml/preprocess/parser_raw.ml" +# 34858 "src/ocaml/preprocess/parser_raw.ml" in -# 2910 "src/ocaml/preprocess/parser_raw.mly" +# 2886 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 34836 "src/ocaml/preprocess/parser_raw.ml" +# 34864 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -34840,9 +34868,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 34846 "src/ocaml/preprocess/parser_raw.ml" +# 34874 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -34931,9 +34959,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 34937 "src/ocaml/preprocess/parser_raw.ml" +# 34965 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -34954,18 +34982,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 34958 "src/ocaml/preprocess/parser_raw.ml" +# 34986 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34963 "src/ocaml/preprocess/parser_raw.ml" +# 34991 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 34969 "src/ocaml/preprocess/parser_raw.ml" +# 34997 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -34974,22 +35002,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 34980 "src/ocaml/preprocess/parser_raw.ml" +# 35008 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 34986 "src/ocaml/preprocess/parser_raw.ml" +# 35014 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -35002,7 +35030,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 35006 "src/ocaml/preprocess/parser_raw.ml" +# 35034 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -35010,56 +35038,56 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 35016 "src/ocaml/preprocess/parser_raw.ml" +# 35044 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35022 "src/ocaml/preprocess/parser_raw.ml" +# 35050 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35028 "src/ocaml/preprocess/parser_raw.ml" +# 35056 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35034 "src/ocaml/preprocess/parser_raw.ml" +# 35062 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 35040 "src/ocaml/preprocess/parser_raw.ml" +# 35068 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 35046 "src/ocaml/preprocess/parser_raw.ml" +# 35074 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 123 "" ( None ) -# 35052 "src/ocaml/preprocess/parser_raw.ml" +# 35080 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 35057 "src/ocaml/preprocess/parser_raw.ml" +# 35085 "src/ocaml/preprocess/parser_raw.ml" in -# 2910 "src/ocaml/preprocess/parser_raw.mly" +# 2886 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 35063 "src/ocaml/preprocess/parser_raw.ml" +# 35091 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -35067,9 +35095,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 35073 "src/ocaml/preprocess/parser_raw.ml" +# 35101 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -35142,9 +35170,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35148 "src/ocaml/preprocess/parser_raw.ml" +# 35176 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -35159,51 +35187,51 @@ module Tables = struct let v = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35165 "src/ocaml/preprocess/parser_raw.ml" +# 35193 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35170 "src/ocaml/preprocess/parser_raw.ml" +# 35198 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 35176 "src/ocaml/preprocess/parser_raw.ml" +# 35204 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 35182 "src/ocaml/preprocess/parser_raw.ml" +# 35210 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 35190 "src/ocaml/preprocess/parser_raw.ml" +# 35218 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 35195 "src/ocaml/preprocess/parser_raw.ml" +# 35223 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 35201 "src/ocaml/preprocess/parser_raw.ml" +# 35229 "src/ocaml/preprocess/parser_raw.ml" in -# 2910 "src/ocaml/preprocess/parser_raw.mly" +# 2886 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 35207 "src/ocaml/preprocess/parser_raw.ml" +# 35235 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_array_) in @@ -35211,9 +35239,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 35217 "src/ocaml/preprocess/parser_raw.ml" +# 35245 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -35307,9 +35335,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35313 "src/ocaml/preprocess/parser_raw.ml" +# 35341 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -35331,18 +35359,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 35335 "src/ocaml/preprocess/parser_raw.ml" +# 35363 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 35340 "src/ocaml/preprocess/parser_raw.ml" +# 35368 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 35346 "src/ocaml/preprocess/parser_raw.ml" +# 35374 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -35351,22 +35379,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35357 "src/ocaml/preprocess/parser_raw.ml" +# 35385 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 35363 "src/ocaml/preprocess/parser_raw.ml" +# 35391 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -35379,62 +35407,62 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 35383 "src/ocaml/preprocess/parser_raw.ml" +# 35411 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35389 "src/ocaml/preprocess/parser_raw.ml" +# 35417 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35395 "src/ocaml/preprocess/parser_raw.ml" +# 35423 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35401 "src/ocaml/preprocess/parser_raw.ml" +# 35429 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 35407 "src/ocaml/preprocess/parser_raw.ml" +# 35435 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 35413 "src/ocaml/preprocess/parser_raw.ml" +# 35441 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 35421 "src/ocaml/preprocess/parser_raw.ml" +# 35449 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 35426 "src/ocaml/preprocess/parser_raw.ml" +# 35454 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 35432 "src/ocaml/preprocess/parser_raw.ml" +# 35460 "src/ocaml/preprocess/parser_raw.ml" in -# 2910 "src/ocaml/preprocess/parser_raw.mly" +# 2886 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 35438 "src/ocaml/preprocess/parser_raw.ml" +# 35466 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -35442,9 +35470,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 35448 "src/ocaml/preprocess/parser_raw.ml" +# 35476 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -35545,9 +35573,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 35551 "src/ocaml/preprocess/parser_raw.ml" +# 35579 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -35571,18 +35599,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 35575 "src/ocaml/preprocess/parser_raw.ml" +# 35603 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 35580 "src/ocaml/preprocess/parser_raw.ml" +# 35608 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 35586 "src/ocaml/preprocess/parser_raw.ml" +# 35614 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -35591,22 +35619,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35597 "src/ocaml/preprocess/parser_raw.ml" +# 35625 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 35603 "src/ocaml/preprocess/parser_raw.ml" +# 35631 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -35619,7 +35647,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 35623 "src/ocaml/preprocess/parser_raw.ml" +# 35651 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -35627,64 +35655,64 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 35633 "src/ocaml/preprocess/parser_raw.ml" +# 35661 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35639 "src/ocaml/preprocess/parser_raw.ml" +# 35667 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35645 "src/ocaml/preprocess/parser_raw.ml" +# 35673 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 35651 "src/ocaml/preprocess/parser_raw.ml" +# 35679 "src/ocaml/preprocess/parser_raw.ml" in -# 2974 "src/ocaml/preprocess/parser_raw.mly" +# 2950 "src/ocaml/preprocess/parser_raw.mly" (Some v) -# 35657 "src/ocaml/preprocess/parser_raw.ml" +# 35685 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 35663 "src/ocaml/preprocess/parser_raw.ml" +# 35691 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 35671 "src/ocaml/preprocess/parser_raw.ml" +# 35699 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 35676 "src/ocaml/preprocess/parser_raw.ml" +# 35704 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 35682 "src/ocaml/preprocess/parser_raw.ml" +# 35710 "src/ocaml/preprocess/parser_raw.ml" in -# 2910 "src/ocaml/preprocess/parser_raw.mly" +# 2886 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 35688 "src/ocaml/preprocess/parser_raw.ml" +# 35716 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_array_) in @@ -35692,9 +35720,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2975 "src/ocaml/preprocess/parser_raw.mly" +# 2951 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 35698 "src/ocaml/preprocess/parser_raw.ml" +# 35726 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -35725,9 +35753,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 2977 "src/ocaml/preprocess/parser_raw.mly" +# 2953 "src/ocaml/preprocess/parser_raw.mly" ( Exp.attr _1 _2 ) -# 35731 "src/ocaml/preprocess/parser_raw.ml" +# 35759 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -35762,9 +35790,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4650 "src/ocaml/preprocess/parser_raw.mly" +# 4662 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 35768 "src/ocaml/preprocess/parser_raw.ml" +# 35796 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_mode_ = _startpos__1_ in @@ -35772,9 +35800,9 @@ module Tables = struct let _symbolstartpos = _startpos_mode_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2985 "src/ocaml/preprocess/parser_raw.mly" +# 2961 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_constraint ~loc:_sloc ~exp ~cty:None ~modes:[mode] ) -# 35778 "src/ocaml/preprocess/parser_raw.ml" +# 35806 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -35810,9 +35838,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 4664 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 35816 "src/ocaml/preprocess/parser_raw.ml" +# 35844 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_mode_ = _startpos__1_ in @@ -35820,9 +35848,9 @@ module Tables = struct let _symbolstartpos = _startpos_mode_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2985 "src/ocaml/preprocess/parser_raw.mly" +# 2961 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_constraint ~loc:_sloc ~exp ~cty:None ~modes:[mode] ) -# 35826 "src/ocaml/preprocess/parser_raw.ml" +# 35854 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -35858,9 +35886,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4654 "src/ocaml/preprocess/parser_raw.mly" +# 4666 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 35864 "src/ocaml/preprocess/parser_raw.ml" +# 35892 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_mode_ = _startpos__1_ in @@ -35868,9 +35896,9 @@ module Tables = struct let _symbolstartpos = _startpos_mode_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2985 "src/ocaml/preprocess/parser_raw.mly" +# 2961 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_constraint ~loc:_sloc ~exp ~cty:None ~modes:[mode] ) -# 35874 "src/ocaml/preprocess/parser_raw.ml" +# 35902 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -35906,9 +35934,9 @@ module Tables = struct let _loc__1_ = (_startpos__1_, _endpos__1_) in let _sloc = (_symbolstartpos, _endpos) in ( -# 2987 "src/ocaml/preprocess/parser_raw.mly" +# 2963 "src/ocaml/preprocess/parser_raw.mly" ( mkexp_exclave ~loc:_sloc ~kwd_loc:(_loc__1_) _2 ) -# 35912 "src/ocaml/preprocess/parser_raw.ml" +# 35940 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -35957,7 +35985,7 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3519 "src/ocaml/preprocess/parser_raw.mly" +# 3500 "src/ocaml/preprocess/parser_raw.mly" ( (* We desugar (type a b c) to (type a) (type b) (type c). If we do this desugaring, the loc for each parameter is a ghost. *) @@ -35973,7 +36001,7 @@ module Tables = struct }) ty_params ) -# 35977 "src/ocaml/preprocess/parser_raw.ml" +# 36005 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.function_param list)) in { @@ -36026,9 +36054,9 @@ module Tables = struct let _5 : (Parsetree.jkind_annotation) = Obj.magic _5 in let _4 : unit = Obj.magic _4 in let _1_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 36032 "src/ocaml/preprocess/parser_raw.ml" +# 36060 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -36042,22 +36070,22 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36048 "src/ocaml/preprocess/parser_raw.ml" +# 36076 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3535 "src/ocaml/preprocess/parser_raw.mly" +# 3516 "src/ocaml/preprocess/parser_raw.mly" ( [ { pparam_loc = make_loc _sloc; pparam_desc = Pparam_newtype (_3, Some _5) } ] ) -# 36061 "src/ocaml/preprocess/parser_raw.ml" +# 36089 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.function_param list)) in { @@ -36085,14 +36113,14 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3541 "src/ocaml/preprocess/parser_raw.mly" +# 3522 "src/ocaml/preprocess/parser_raw.mly" ( let a, b, c = _1 in [ { pparam_loc = make_loc _sloc; pparam_desc = Pparam_val (a, b, c) } ] ) -# 36096 "src/ocaml/preprocess/parser_raw.ml" +# 36124 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.function_param list)) in { @@ -36120,18 +36148,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 36124 "src/ocaml/preprocess/parser_raw.ml" +# 36152 "src/ocaml/preprocess/parser_raw.ml" in -# 1418 "src/ocaml/preprocess/parser_raw.mly" +# 1430 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 36129 "src/ocaml/preprocess/parser_raw.ml" +# 36157 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3549 "src/ocaml/preprocess/parser_raw.mly" +# 3530 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36135 "src/ocaml/preprocess/parser_raw.ml" +# 36163 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.function_param list)) in { @@ -36155,9 +36183,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.expression) = -# 2744 "src/ocaml/preprocess/parser_raw.mly" +# 2771 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36161 "src/ocaml/preprocess/parser_raw.ml" +# 36189 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36187,9 +36215,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 2745 "src/ocaml/preprocess/parser_raw.mly" +# 2772 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36193 "src/ocaml/preprocess/parser_raw.ml" +# 36221 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36228,24 +36256,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 2747 "src/ocaml/preprocess/parser_raw.mly" +# 2774 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_sequence(_1, _3) ) -# 36234 "src/ocaml/preprocess/parser_raw.ml" +# 36262 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 36243 "src/ocaml/preprocess/parser_raw.ml" +# 36271 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2748 "src/ocaml/preprocess/parser_raw.mly" +# 2775 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36249 "src/ocaml/preprocess/parser_raw.ml" +# 36277 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -36301,11 +36329,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2750 "src/ocaml/preprocess/parser_raw.mly" +# 2777 "src/ocaml/preprocess/parser_raw.mly" ( let seq = mkexp ~loc:_sloc (Pexp_sequence (_1, _5)) in let payload = PStr [mkstrexp seq []] in mkexp ~loc:_sloc (Pexp_extension (_4, payload)) ) -# 36309 "src/ocaml/preprocess/parser_raw.ml" +# 36337 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -36329,9 +36357,9 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.core_type) = -# 4554 "src/ocaml/preprocess/parser_raw.mly" +# 4566 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 36335 "src/ocaml/preprocess/parser_raw.ml" +# 36363 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36354,9 +36382,9 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.core_type) = -# 4556 "src/ocaml/preprocess/parser_raw.mly" +# 4568 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 36360 "src/ocaml/preprocess/parser_raw.ml" +# 36388 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36388,9 +36416,9 @@ module Tables = struct let _v = let _startpos = _startpos__1_ in ( -# 1705 "src/ocaml/preprocess/parser_raw.mly" +# 1717 "src/ocaml/preprocess/parser_raw.mly" ( _startpos, Unit ) -# 36394 "src/ocaml/preprocess/parser_raw.ml" +# 36422 "src/ocaml/preprocess/parser_raw.ml" : (Lexing.position * Parsetree.functor_parameter)) in { @@ -36404,14 +36432,14 @@ module Tables = struct 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.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; + 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; @@ -36433,36 +36461,40 @@ module Tables = struct }; }; } = _menhir_stack in - let _6 : unit = Obj.magic _6 in - let mty : (Parsetree.module_type) = Obj.magic mty in + let _5 : unit = Obj.magic _5 in + let _1_inlined2 : (Parsetree.module_type) = Obj.magic _1_inlined2 in let _3 : unit = Obj.magic _3 in let _1_inlined1 : (string 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__6_ in + let _endpos = _endpos__5_ in let _v = - let mm = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 36449 "src/ocaml/preprocess/parser_raw.ml" - in + let mty_mm = + let _1 = _1_inlined2 in + +# 2151 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 36479 "src/ocaml/preprocess/parser_raw.ml" + + in let x = 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 -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36459 "src/ocaml/preprocess/parser_raw.ml" +# 36490 "src/ocaml/preprocess/parser_raw.ml" in let _startpos = _startpos__1_ in ( -# 1708 "src/ocaml/preprocess/parser_raw.mly" - ( _startpos, Named (x, mty, mm) ) -# 36466 "src/ocaml/preprocess/parser_raw.ml" +# 1720 "src/ocaml/preprocess/parser_raw.mly" + ( let mty, mm = mty_mm in + _startpos, Named (x, mty, mm) ) +# 36498 "src/ocaml/preprocess/parser_raw.ml" : (Lexing.position * Parsetree.functor_parameter)) in { @@ -36476,19 +36508,19 @@ module Tables = struct 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.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.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; + 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; @@ -36511,22 +36543,22 @@ module Tables = struct }; }; } = _menhir_stack in - let _6 : unit = Obj.magic _6 in - let _1_inlined2 : (Parsetree.modes) = Obj.magic _1_inlined2 in - let mty : (Parsetree.module_type) = Obj.magic mty in + let _5 : unit = Obj.magic _5 in + let _2 : (Parsetree.modes) = Obj.magic _2 in + let _1_inlined2 : (Parsetree.module_type) = Obj.magic _1_inlined2 in let _3 : unit = Obj.magic _3 in let _1_inlined1 : (string 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__6_ in + let _endpos = _endpos__5_ in let _v = - let mm = + let mty_mm = let _1 = _1_inlined2 in -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 36530 "src/ocaml/preprocess/parser_raw.ml" +# 2152 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 36562 "src/ocaml/preprocess/parser_raw.ml" in let x = @@ -36535,16 +36567,17 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36541 "src/ocaml/preprocess/parser_raw.ml" +# 36573 "src/ocaml/preprocess/parser_raw.ml" in let _startpos = _startpos__1_ in ( -# 1708 "src/ocaml/preprocess/parser_raw.mly" - ( _startpos, Named (x, mty, mm) ) -# 36548 "src/ocaml/preprocess/parser_raw.ml" +# 1720 "src/ocaml/preprocess/parser_raw.mly" + ( let mty, mm = mty_mm in + _startpos, Named (x, mty, mm) ) +# 36581 "src/ocaml/preprocess/parser_raw.ml" : (Lexing.position * Parsetree.functor_parameter)) in { @@ -36568,9 +36601,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ((Lexing.position * Parsetree.functor_parameter) list) = -# 1697 "src/ocaml/preprocess/parser_raw.mly" +# 1709 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36574 "src/ocaml/preprocess/parser_raw.ml" +# 36607 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36587,9 +36620,9 @@ module Tables = struct let _endpos = _startpos in let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = -# 4330 "src/ocaml/preprocess/parser_raw.mly" +# 4304 "src/ocaml/preprocess/parser_raw.mly" ( ([],Pcstr_tuple [],None) ) -# 36593 "src/ocaml/preprocess/parser_raw.ml" +# 36626 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36620,9 +36653,9 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = -# 4331 "src/ocaml/preprocess/parser_raw.mly" +# 4305 "src/ocaml/preprocess/parser_raw.mly" ( ([],_2,None) ) -# 36626 "src/ocaml/preprocess/parser_raw.ml" +# 36659 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36667,9 +36700,9 @@ module Tables = struct let _endpos = _endpos__4_ in let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = -# 4333 "src/ocaml/preprocess/parser_raw.mly" +# 4307 "src/ocaml/preprocess/parser_raw.mly" ( ([],_2,Some _4) ) -# 36673 "src/ocaml/preprocess/parser_raw.ml" +# 36706 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36732,24 +36765,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 36736 "src/ocaml/preprocess/parser_raw.ml" +# 36769 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 36741 "src/ocaml/preprocess/parser_raw.ml" +# 36774 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36747 "src/ocaml/preprocess/parser_raw.ml" +# 36780 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4336 "src/ocaml/preprocess/parser_raw.mly" +# 4310 "src/ocaml/preprocess/parser_raw.mly" ( (_2,_4,Some _6) ) -# 36753 "src/ocaml/preprocess/parser_raw.ml" +# 36786 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option)) in @@ -36782,9 +36815,9 @@ module Tables = struct let _endpos = _endpos__2_ in let _v : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option) = -# 4338 "src/ocaml/preprocess/parser_raw.mly" +# 4312 "src/ocaml/preprocess/parser_raw.mly" ( ([],Pcstr_tuple [],Some _2) ) -# 36788 "src/ocaml/preprocess/parser_raw.ml" +# 36821 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -36833,24 +36866,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 36837 "src/ocaml/preprocess/parser_raw.ml" +# 36870 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 36842 "src/ocaml/preprocess/parser_raw.ml" +# 36875 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36848 "src/ocaml/preprocess/parser_raw.ml" +# 36881 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4340 "src/ocaml/preprocess/parser_raw.mly" +# 4314 "src/ocaml/preprocess/parser_raw.mly" ( (_2,Pcstr_tuple [],Some _4) ) -# 36854 "src/ocaml/preprocess/parser_raw.ml" +# 36887 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option)) in @@ -36900,9 +36933,9 @@ module Tables = struct let attrs = let _1 = _1_inlined2 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36906 "src/ocaml/preprocess/parser_raw.ml" +# 36939 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined2_ in @@ -36912,23 +36945,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36918 "src/ocaml/preprocess/parser_raw.ml" +# 36951 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4277 "src/ocaml/preprocess/parser_raw.mly" +# 4251 "src/ocaml/preprocess/parser_raw.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 ) -# 36932 "src/ocaml/preprocess/parser_raw.ml" +# 36965 "src/ocaml/preprocess/parser_raw.ml" : (Ocaml_parsing.Ast_helper.str * (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * @@ -36973,9 +37006,9 @@ module Tables = struct let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 36979 "src/ocaml/preprocess/parser_raw.ml" +# 37012 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined1_ in @@ -36984,29 +37017,29 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 36990 "src/ocaml/preprocess/parser_raw.ml" +# 37023 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_cid_ = _startpos__1_ in let _1 = -# 5217 "src/ocaml/preprocess/parser_raw.mly" +# 5216 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 36997 "src/ocaml/preprocess/parser_raw.ml" +# 37030 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos_cid_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4277 "src/ocaml/preprocess/parser_raw.mly" +# 4251 "src/ocaml/preprocess/parser_raw.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 ) -# 37010 "src/ocaml/preprocess/parser_raw.ml" +# 37043 "src/ocaml/preprocess/parser_raw.ml" : (Ocaml_parsing.Ast_helper.str * (string Location.loc * Parsetree.jkind_annotation option) list * Parsetree.constructor_arguments * Parsetree.core_type option * @@ -37088,9 +37121,9 @@ module Tables = struct let _1_inlined3 : unit = Obj.magic _1_inlined3 in let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37094 "src/ocaml/preprocess/parser_raw.ml" +# 37127 "src/ocaml/preprocess/parser_raw.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 @@ -37103,9 +37136,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37109 "src/ocaml/preprocess/parser_raw.ml" +# 37142 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -37114,24 +37147,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 37118 "src/ocaml/preprocess/parser_raw.ml" +# 37151 "src/ocaml/preprocess/parser_raw.ml" in -# 1380 "src/ocaml/preprocess/parser_raw.mly" +# 1392 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 37123 "src/ocaml/preprocess/parser_raw.ml" +# 37156 "src/ocaml/preprocess/parser_raw.ml" in -# 4097 "src/ocaml/preprocess/parser_raw.mly" +# 4071 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37129 "src/ocaml/preprocess/parser_raw.ml" +# 37162 "src/ocaml/preprocess/parser_raw.ml" in let kind_priv_manifest = -# 4136 "src/ocaml/preprocess/parser_raw.mly" +# 4110 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 37135 "src/ocaml/preprocess/parser_raw.ml" +# 37168 "src/ocaml/preprocess/parser_raw.ml" in let id = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -37139,29 +37172,29 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37145 "src/ocaml/preprocess/parser_raw.ml" +# 37178 "src/ocaml/preprocess/parser_raw.ml" in let flag = -# 5237 "src/ocaml/preprocess/parser_raw.mly" +# 5236 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 37151 "src/ocaml/preprocess/parser_raw.ml" +# 37184 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37158 "src/ocaml/preprocess/parser_raw.ml" +# 37191 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4066 "src/ocaml/preprocess/parser_raw.mly" +# 4040 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in @@ -37171,7 +37204,7 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ?jkind_annotation ) -# 37175 "src/ocaml/preprocess/parser_raw.ml" +# 37208 "src/ocaml/preprocess/parser_raw.ml" : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration)) in @@ -37257,9 +37290,9 @@ module Tables = struct let _1_inlined4 : unit = Obj.magic _1_inlined4 in let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined3 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37263 "src/ocaml/preprocess/parser_raw.ml" +# 37296 "src/ocaml/preprocess/parser_raw.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 @@ -37273,9 +37306,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined5 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37279 "src/ocaml/preprocess/parser_raw.ml" +# 37312 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined5_ in @@ -37284,24 +37317,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 37288 "src/ocaml/preprocess/parser_raw.ml" +# 37321 "src/ocaml/preprocess/parser_raw.ml" in -# 1380 "src/ocaml/preprocess/parser_raw.mly" +# 1392 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 37293 "src/ocaml/preprocess/parser_raw.ml" +# 37326 "src/ocaml/preprocess/parser_raw.ml" in -# 4097 "src/ocaml/preprocess/parser_raw.mly" +# 4071 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37299 "src/ocaml/preprocess/parser_raw.ml" +# 37332 "src/ocaml/preprocess/parser_raw.ml" in let kind_priv_manifest = -# 4136 "src/ocaml/preprocess/parser_raw.mly" +# 4110 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 37305 "src/ocaml/preprocess/parser_raw.ml" +# 37338 "src/ocaml/preprocess/parser_raw.ml" in let id = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in @@ -37309,9 +37342,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37315 "src/ocaml/preprocess/parser_raw.ml" +# 37348 "src/ocaml/preprocess/parser_raw.ml" in let flag = @@ -37320,24 +37353,24 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 5239 "src/ocaml/preprocess/parser_raw.mly" +# 5238 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "nonrec flag"; Recursive ) -# 37326 "src/ocaml/preprocess/parser_raw.ml" +# 37359 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37334 "src/ocaml/preprocess/parser_raw.ml" +# 37367 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4066 "src/ocaml/preprocess/parser_raw.mly" +# 4040 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in @@ -37347,7 +37380,7 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ?jkind_annotation ) -# 37351 "src/ocaml/preprocess/parser_raw.ml" +# 37384 "src/ocaml/preprocess/parser_raw.ml" : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration)) in @@ -37420,9 +37453,9 @@ module Tables = struct let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37426 "src/ocaml/preprocess/parser_raw.ml" +# 37459 "src/ocaml/preprocess/parser_raw.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 @@ -37435,9 +37468,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37441 "src/ocaml/preprocess/parser_raw.ml" +# 37474 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -37446,18 +37479,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 37450 "src/ocaml/preprocess/parser_raw.ml" +# 37483 "src/ocaml/preprocess/parser_raw.ml" in -# 1380 "src/ocaml/preprocess/parser_raw.mly" +# 1392 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 37455 "src/ocaml/preprocess/parser_raw.ml" +# 37488 "src/ocaml/preprocess/parser_raw.ml" in -# 4097 "src/ocaml/preprocess/parser_raw.mly" +# 4071 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37461 "src/ocaml/preprocess/parser_raw.ml" +# 37494 "src/ocaml/preprocess/parser_raw.ml" in let id = @@ -37466,29 +37499,29 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37472 "src/ocaml/preprocess/parser_raw.ml" +# 37505 "src/ocaml/preprocess/parser_raw.ml" in let flag = -# 5233 "src/ocaml/preprocess/parser_raw.mly" +# 5232 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 37478 "src/ocaml/preprocess/parser_raw.ml" +# 37511 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37485 "src/ocaml/preprocess/parser_raw.ml" +# 37518 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4066 "src/ocaml/preprocess/parser_raw.mly" +# 4040 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in @@ -37498,7 +37531,7 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ?jkind_annotation ) -# 37502 "src/ocaml/preprocess/parser_raw.ml" +# 37535 "src/ocaml/preprocess/parser_raw.ml" : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration)) in @@ -37577,9 +37610,9 @@ module Tables = struct let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined3 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37583 "src/ocaml/preprocess/parser_raw.ml" +# 37616 "src/ocaml/preprocess/parser_raw.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 @@ -37593,9 +37626,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37599 "src/ocaml/preprocess/parser_raw.ml" +# 37632 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -37604,18 +37637,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 37608 "src/ocaml/preprocess/parser_raw.ml" +# 37641 "src/ocaml/preprocess/parser_raw.ml" in -# 1380 "src/ocaml/preprocess/parser_raw.mly" +# 1392 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 37613 "src/ocaml/preprocess/parser_raw.ml" +# 37646 "src/ocaml/preprocess/parser_raw.ml" in -# 4097 "src/ocaml/preprocess/parser_raw.mly" +# 4071 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37619 "src/ocaml/preprocess/parser_raw.ml" +# 37652 "src/ocaml/preprocess/parser_raw.ml" in let id = @@ -37624,29 +37657,29 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 37630 "src/ocaml/preprocess/parser_raw.ml" +# 37663 "src/ocaml/preprocess/parser_raw.ml" in let flag = -# 5234 "src/ocaml/preprocess/parser_raw.mly" +# 5233 "src/ocaml/preprocess/parser_raw.mly" ( Nonrecursive ) -# 37636 "src/ocaml/preprocess/parser_raw.ml" +# 37669 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37643 "src/ocaml/preprocess/parser_raw.ml" +# 37676 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4066 "src/ocaml/preprocess/parser_raw.mly" +# 4040 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in @@ -37656,7 +37689,7 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ?jkind_annotation ) -# 37660 "src/ocaml/preprocess/parser_raw.ml" +# 37693 "src/ocaml/preprocess/parser_raw.ml" : ((Asttypes.rec_flag * string Location.loc option) * Parsetree.type_declaration)) in @@ -37677,17 +37710,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1155 "src/ocaml/preprocess/parser_raw.mly" +# 1167 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37683 "src/ocaml/preprocess/parser_raw.ml" +# 37716 "src/ocaml/preprocess/parser_raw.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) = -# 5055 "src/ocaml/preprocess/parser_raw.mly" +# 5054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37691 "src/ocaml/preprocess/parser_raw.ml" +# 37724 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37706,17 +37739,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 37712 "src/ocaml/preprocess/parser_raw.ml" +# 37745 "src/ocaml/preprocess/parser_raw.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) = -# 5056 "src/ocaml/preprocess/parser_raw.mly" +# 5055 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37720 "src/ocaml/preprocess/parser_raw.ml" +# 37753 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37746,9 +37779,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.structure) = -# 1571 "src/ocaml/preprocess/parser_raw.mly" +# 1583 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37752 "src/ocaml/preprocess/parser_raw.ml" +# 37785 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37771,9 +37804,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.include_kind) = -# 1992 "src/ocaml/preprocess/parser_raw.mly" +# 2012 "src/ocaml/preprocess/parser_raw.mly" ( Structure ) -# 37777 "src/ocaml/preprocess/parser_raw.ml" +# 37810 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37803,9 +37836,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.include_kind) = -# 1994 "src/ocaml/preprocess/parser_raw.mly" +# 2014 "src/ocaml/preprocess/parser_raw.mly" ( Functor ) -# 37809 "src/ocaml/preprocess/parser_raw.ml" +# 37842 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37821,9 +37854,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (string) = -# 5114 "src/ocaml/preprocess/parser_raw.mly" +# 5113 "src/ocaml/preprocess/parser_raw.mly" ( "" ) -# 37827 "src/ocaml/preprocess/parser_raw.ml" +# 37860 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37853,9 +37886,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 5115 "src/ocaml/preprocess/parser_raw.mly" +# 5114 "src/ocaml/preprocess/parser_raw.mly" ( ";.." ) -# 37859 "src/ocaml/preprocess/parser_raw.ml" +# 37892 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37885,9 +37918,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.signature) = -# 1578 "src/ocaml/preprocess/parser_raw.mly" +# 1590 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 37891 "src/ocaml/preprocess/parser_raw.ml" +# 37924 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37931,9 +37964,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.extension) = -# 5430 "src/ocaml/preprocess/parser_raw.mly" +# 5429 "src/ocaml/preprocess/parser_raw.mly" ( (_2, _3) ) -# 37937 "src/ocaml/preprocess/parser_raw.ml" +# 37970 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -37952,9 +37985,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1146 "src/ocaml/preprocess/parser_raw.mly" +# 1158 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 37958 "src/ocaml/preprocess/parser_raw.ml" +# 37991 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -37964,9 +37997,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5432 "src/ocaml/preprocess/parser_raw.mly" +# 5431 "src/ocaml/preprocess/parser_raw.mly" ( mk_quotedext ~loc:_sloc _1 ) -# 37970 "src/ocaml/preprocess/parser_raw.ml" +# 38003 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.extension)) in { @@ -37994,9 +38027,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4187 "src/ocaml/preprocess/parser_raw.mly" +# 4161 "src/ocaml/preprocess/parser_raw.mly" ( { pjkind_loc = make_loc _sloc; pjkind_desc = _1 } ) -# 38000 "src/ocaml/preprocess/parser_raw.ml" +# 38033 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.jkind_annotation)) in { @@ -38027,9 +38060,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.jkind_annotation) = -# 4191 "src/ocaml/preprocess/parser_raw.mly" +# 4165 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 38033 "src/ocaml/preprocess/parser_raw.ml" +# 38066 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38066,7 +38099,7 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.jkind_annotation_desc) = -# 4150 "src/ocaml/preprocess/parser_raw.mly" +# 4124 "src/ocaml/preprocess/parser_raw.mly" ( (* LIDENTs here are for modes *) let modes = List.map @@ -38075,7 +38108,7 @@ module Tables = struct in Mod (_1, modes) ) -# 38079 "src/ocaml/preprocess/parser_raw.ml" +# 38112 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38119,11 +38152,11 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.jkind_annotation_desc) = -# 4158 "src/ocaml/preprocess/parser_raw.mly" +# 4132 "src/ocaml/preprocess/parser_raw.mly" ( With (_1, _3, _4) ) -# 38127 "src/ocaml/preprocess/parser_raw.ml" +# 38160 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38146,11 +38179,11 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.jkind_annotation_desc) = -# 4161 "src/ocaml/preprocess/parser_raw.mly" +# 4135 "src/ocaml/preprocess/parser_raw.mly" ( Abbreviation _1 ) -# 38154 "src/ocaml/preprocess/parser_raw.ml" +# 38187 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38180,11 +38213,11 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.jkind_annotation_desc) = -# 4164 "src/ocaml/preprocess/parser_raw.mly" +# 4138 "src/ocaml/preprocess/parser_raw.mly" ( Kind_of ty ) -# 38188 "src/ocaml/preprocess/parser_raw.ml" +# 38221 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38207,11 +38240,11 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.jkind_annotation_desc) = -# 4167 "src/ocaml/preprocess/parser_raw.mly" +# 4141 "src/ocaml/preprocess/parser_raw.mly" ( Default ) -# 38215 "src/ocaml/preprocess/parser_raw.ml" +# 38248 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38234,11 +38267,11 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.jkind_annotation_desc) = -# 4170 "src/ocaml/preprocess/parser_raw.mly" +# 4144 "src/ocaml/preprocess/parser_raw.mly" ( Product (List.rev _1) ) -# 38242 "src/ocaml/preprocess/parser_raw.ml" +# 38275 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38275,11 +38308,11 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.jkind_annotation_desc) = -# 4173 "src/ocaml/preprocess/parser_raw.mly" +# 4147 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 38283 "src/ocaml/preprocess/parser_raw.ml" +# 38316 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38318,9 +38351,9 @@ module Tables = struct let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _3 : unit = Obj.magic _3 in let _1_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38324 "src/ocaml/preprocess/parser_raw.ml" +# 38357 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -38333,17 +38366,17 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38339 "src/ocaml/preprocess/parser_raw.ml" +# 38372 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4195 "src/ocaml/preprocess/parser_raw.mly" +# 4169 "src/ocaml/preprocess/parser_raw.mly" ( (abbrev, jkind) ) -# 38347 "src/ocaml/preprocess/parser_raw.ml" +# 38380 "src/ocaml/preprocess/parser_raw.ml" : (string Location.loc * Parsetree.jkind_annotation)) in { @@ -38397,9 +38430,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 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38403 "src/ocaml/preprocess/parser_raw.ml" +# 38436 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -38409,34 +38442,34 @@ module Tables = struct let attrs = let _1 = _1_inlined3 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38415 "src/ocaml/preprocess/parser_raw.ml" +# 38448 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 4499 "src/ocaml/preprocess/parser_raw.mly" +# 4507 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38424 "src/ocaml/preprocess/parser_raw.ml" +# 38457 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38432 "src/ocaml/preprocess/parser_raw.ml" +# 38465 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38440 "src/ocaml/preprocess/parser_raw.ml" +# 38473 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in @@ -38447,12 +38480,12 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4363 "src/ocaml/preprocess/parser_raw.mly" +# 4337 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let mut, m0 = _1 in let modalities = m0 @ m1 in Type.field _2 _4 ~mut ~modalities ~attrs ~loc:(make_loc _sloc) ~info) -# 38456 "src/ocaml/preprocess/parser_raw.ml" +# 38489 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.label_declaration)) in { @@ -38520,9 +38553,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 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38526 "src/ocaml/preprocess/parser_raw.ml" +# 38559 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -38532,43 +38565,43 @@ module Tables = struct let attrs1 = let _1 = _1_inlined4 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38538 "src/ocaml/preprocess/parser_raw.ml" +# 38571 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs1_ = _endpos__1_inlined4_ in let attrs0 = let _1 = _1_inlined3 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38547 "src/ocaml/preprocess/parser_raw.ml" +# 38580 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs0_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 4499 "src/ocaml/preprocess/parser_raw.mly" +# 4507 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38556 "src/ocaml/preprocess/parser_raw.ml" +# 38589 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 38564 "src/ocaml/preprocess/parser_raw.ml" +# 38597 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38572 "src/ocaml/preprocess/parser_raw.ml" +# 38605 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__2_ = _startpos__1_inlined1_ in @@ -38579,7 +38612,7 @@ module Tables = struct _startpos__2_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4371 "src/ocaml/preprocess/parser_raw.mly" +# 4345 "src/ocaml/preprocess/parser_raw.mly" ( let info = match rhs_info _endpos_attrs0_ with | Some _ as info_before_semi -> info_before_semi @@ -38588,7 +38621,7 @@ module Tables = struct let mut, m0 = _1 in let modalities = m0 @ m1 in Type.field _2 _4 ~mut ~modalities ~attrs:(attrs0 @ attrs1) ~loc:(make_loc _sloc) ~info) -# 38592 "src/ocaml/preprocess/parser_raw.ml" +# 38625 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.label_declaration)) in { @@ -38612,9 +38645,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.label_declaration list) = -# 4357 "src/ocaml/preprocess/parser_raw.mly" +# 4331 "src/ocaml/preprocess/parser_raw.mly" ( [_1] ) -# 38618 "src/ocaml/preprocess/parser_raw.ml" +# 38651 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38637,9 +38670,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.label_declaration list) = -# 4358 "src/ocaml/preprocess/parser_raw.mly" +# 4332 "src/ocaml/preprocess/parser_raw.mly" ( [_1] ) -# 38643 "src/ocaml/preprocess/parser_raw.ml" +# 38676 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38669,9 +38702,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.label_declaration list) = -# 4359 "src/ocaml/preprocess/parser_raw.mly" +# 4333 "src/ocaml/preprocess/parser_raw.mly" ( _1 :: _2 ) -# 38675 "src/ocaml/preprocess/parser_raw.ml" +# 38708 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38680,71 +38713,13 @@ module Tables = struct 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 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" - (string) -# 38696 "src/ocaml/preprocess/parser_raw.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 = - let modes = -# 4681 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 38705 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 38715 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2860 "src/ocaml/preprocess/parser_raw.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 38724 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 2841 "src/ocaml/preprocess/parser_raw.mly" - ( let lab, pat = x in - lab, pat, None, modes - ) -# 38732 "src/ocaml/preprocess/parser_raw.ml" - : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - 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.semv = cty_modes1; + MenhirLib.EngineTypes.startp = _startpos_cty_modes1_; + MenhirLib.EngineTypes.endp = _endpos_cty_modes1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -38753,51 +38728,53 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in + let cty_modes1 : (Parsetree.core_type option * Parsetree.modes) = Obj.magic cty_modes1 in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 38761 "src/ocaml/preprocess/parser_raw.ml" +# 38736 "src/ocaml/preprocess/parser_raw.ml" ) = 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 _endpos = _endpos_cty_modes1_ in let _v = - let modes = - let _1 = _1_inlined1 in - -# 4682 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 38772 "src/ocaml/preprocess/parser_raw.ml" - - in let x = let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 38783 "src/ocaml/preprocess/parser_raw.ml" +# 38750 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2839 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 38792 "src/ocaml/preprocess/parser_raw.ml" +# 38759 "src/ocaml/preprocess/parser_raw.ml" in + let modes0 = +# 4674 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 38765 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_modes0_ = _endpos__0_ in ( -# 2841 "src/ocaml/preprocess/parser_raw.mly" +# 2829 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in - lab, pat, None, modes + let cty, modes1 = cty_modes1 in + let modes = modes0 @ modes1 in + let loc = _startpos_modes0_, _endpos_cty_modes1_ in + let pat = mkpat_with_modes ~loc ~pat ~cty ~modes in + lab, pat ) -# 38800 "src/ocaml/preprocess/parser_raw.ml" - : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) +# 38777 "src/ocaml/preprocess/parser_raw.ml" + : (string * Parsetree.pattern)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -38810,14 +38787,14 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; + MenhirLib.EngineTypes.semv = cty_modes1; + MenhirLib.EngineTypes.startp = _startpos_cty_modes1_; + MenhirLib.EngineTypes.endp = _endpos_cty_modes1_; 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; @@ -38827,387 +38804,62 @@ module Tables = struct }; }; } = _menhir_stack in - let cty : (Parsetree.core_type) = Obj.magic cty in - let _2 : unit = Obj.magic _2 in - let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" - (string) -# 38836 "src/ocaml/preprocess/parser_raw.ml" - ) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos_cty_ in - let _v = - let modes = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 38845 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 38855 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2860 "src/ocaml/preprocess/parser_raw.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 38864 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 2845 "src/ocaml/preprocess/parser_raw.mly" - ( let lab, pat = x in - lab, pat, Some cty, modes - ) -# 38872 "src/ocaml/preprocess/parser_raw.ml" - : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - 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 = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; - 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.modes) = Obj.magic _1_inlined1 in - let cty : (Parsetree.core_type) = Obj.magic cty in - let _2 : unit = Obj.magic _2 in - let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" - (string) -# 38915 "src/ocaml/preprocess/parser_raw.ml" - ) = 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 = - let modes = - let _1 = _1_inlined1 in - -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 38926 "src/ocaml/preprocess/parser_raw.ml" - - in - let x = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 38937 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 2860 "src/ocaml/preprocess/parser_raw.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 38946 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 2845 "src/ocaml/preprocess/parser_raw.mly" - ( let lab, pat = x in - lab, pat, Some cty, modes - ) -# 38954 "src/ocaml/preprocess/parser_raw.ml" - : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - 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 = inner_type; - MenhirLib.EngineTypes.startp = _startpos_inner_type_; - MenhirLib.EngineTypes.endp = _endpos_inner_type_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; - 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 inner_type : (Parsetree.core_type) = Obj.magic inner_type in - let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in - let _2 : unit = Obj.magic _2 in - let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" + let cty_modes1 : (Parsetree.core_type option * Parsetree.modes) = Obj.magic cty_modes1 in + let _1_inlined1 : ( +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39004 "src/ocaml/preprocess/parser_raw.ml" - ) = Obj.magic _1 in +# 38812 "src/ocaml/preprocess/parser_raw.ml" + ) = Obj.magic _1_inlined1 in + let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos_inner_type_ in + let _endpos = _endpos_cty_modes1_ in let _v = - let modes = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 39013 "src/ocaml/preprocess/parser_raw.ml" - in - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 39022 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1398 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 39027 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4480 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 39033 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2852 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 39039 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 39049 "src/ocaml/preprocess/parser_raw.ml" - - in let x = + let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 39060 "src/ocaml/preprocess/parser_raw.ml" +# 38828 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2839 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 39069 "src/ocaml/preprocess/parser_raw.ml" +# 38837 "src/ocaml/preprocess/parser_raw.ml" in - ( -# 2854 "src/ocaml/preprocess/parser_raw.mly" - ( let lab, pat = x in - lab, pat, Some cty, modes - ) -# 39077 "src/ocaml/preprocess/parser_raw.ml" - : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - 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 = inner_type; - MenhirLib.EngineTypes.startp = _startpos_inner_type_; - MenhirLib.EngineTypes.endp = _endpos_inner_type_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; - 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 _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let inner_type : (Parsetree.core_type) = Obj.magic inner_type in - let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in - let _2 : unit = Obj.magic _2 in - let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" - (string) -# 39134 "src/ocaml/preprocess/parser_raw.ml" - ) = 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 = - let modes = - let _1 = _1_inlined1 in - -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 39145 "src/ocaml/preprocess/parser_raw.ml" - - in - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 39155 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1398 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 39160 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4480 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 39166 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2852 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 39172 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 39182 "src/ocaml/preprocess/parser_raw.ml" - - in - let x = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 39193 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let modes0 = + let _1 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 38844 "src/ocaml/preprocess/parser_raw.ml" + in -# 2860 "src/ocaml/preprocess/parser_raw.mly" - ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 39202 "src/ocaml/preprocess/parser_raw.ml" +# 4675 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 38849 "src/ocaml/preprocess/parser_raw.ml" in + let _startpos_modes0_ = _startpos__1_ in ( -# 2854 "src/ocaml/preprocess/parser_raw.mly" +# 2829 "src/ocaml/preprocess/parser_raw.mly" ( let lab, pat = x in - lab, pat, Some cty, modes + let cty, modes1 = cty_modes1 in + let modes = modes0 @ modes1 in + let loc = _startpos_modes0_, _endpos_cty_modes1_ in + let pat = mkpat_with_modes ~loc ~pat ~cty ~modes in + lab, pat ) -# 39210 "src/ocaml/preprocess/parser_raw.ml" - : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) +# 38862 "src/ocaml/preprocess/parser_raw.ml" + : (string * Parsetree.pattern)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39230,9 +38882,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5146 "src/ocaml/preprocess/parser_raw.mly" +# 5145 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39236 "src/ocaml/preprocess/parser_raw.ml" +# 38888 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39255,9 +38907,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.arg_label * Parsetree.expression) = -# 3314 "src/ocaml/preprocess/parser_raw.mly" +# 3290 "src/ocaml/preprocess/parser_raw.mly" ( (Nolabel, _1) ) -# 39261 "src/ocaml/preprocess/parser_raw.ml" +# 38913 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39283,17 +38935,17 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39289 "src/ocaml/preprocess/parser_raw.ml" +# 38941 "src/ocaml/preprocess/parser_raw.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 : (Parsetree.arg_label * Parsetree.expression) = -# 3316 "src/ocaml/preprocess/parser_raw.mly" +# 3292 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled _1, _2) ) -# 39297 "src/ocaml/preprocess/parser_raw.ml" +# 38949 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39318,9 +38970,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39324 "src/ocaml/preprocess/parser_raw.ml" +# 38976 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -39329,10 +38981,10 @@ module Tables = struct let _v = let _loc_label_ = (_startpos_label_, _endpos_label_) in ( -# 3318 "src/ocaml/preprocess/parser_raw.mly" +# 3294 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in (Labelled label, mkexpvar ~loc label) ) -# 39336 "src/ocaml/preprocess/parser_raw.ml" +# 38988 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.arg_label * Parsetree.expression)) in { @@ -39378,9 +39030,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39384 "src/ocaml/preprocess/parser_raw.ml" +# 39036 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -39391,10 +39043,10 @@ module Tables = struct let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in ( -# 3321 "src/ocaml/preprocess/parser_raw.mly" +# 3297 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c) ) -# 39398 "src/ocaml/preprocess/parser_raw.ml" +# 39050 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.arg_label * Parsetree.expression)) in { @@ -39420,9 +39072,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39426 "src/ocaml/preprocess/parser_raw.ml" +# 39078 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -39431,10 +39083,10 @@ module Tables = struct let _v = let _loc_label_ = (_startpos_label_, _endpos_label_) in ( -# 3324 "src/ocaml/preprocess/parser_raw.mly" +# 3300 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in (Optional label, mkexpvar ~loc label) ) -# 39438 "src/ocaml/preprocess/parser_raw.ml" +# 39090 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.arg_label * Parsetree.expression)) in { @@ -39461,17 +39113,17 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : ( -# 1116 "src/ocaml/preprocess/parser_raw.mly" +# 1128 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39467 "src/ocaml/preprocess/parser_raw.ml" +# 39119 "src/ocaml/preprocess/parser_raw.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 : (Parsetree.arg_label * Parsetree.expression) = -# 3327 "src/ocaml/preprocess/parser_raw.mly" +# 3303 "src/ocaml/preprocess/parser_raw.mly" ( (Optional _1, _2) ) -# 39475 "src/ocaml/preprocess/parser_raw.ml" +# 39127 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39484,9 +39136,9 @@ module Tables = struct 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.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined1; @@ -39494,9 +39146,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -39513,125 +39165,27 @@ module Tables = struct }; }; } = _menhir_stack in - let _6 : unit = Obj.magic _6 in + let _5 : unit = Obj.magic _5 in let _1_inlined1 : (Parsetree.expression option) = Obj.magic _1_inlined1 in - let x : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = Obj.magic x in + let _3 : (string * Parsetree.pattern) = 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__6_ in + let _endpos = _endpos__5_ in let _v = - let _5 = + let _4 = let _1 = _1_inlined1 in -# 2837 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 39531 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 39537 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__2_ in - ( -# 2760 "src/ocaml/preprocess/parser_raw.mly" - ( let lbl, pat, cty, modes = x in - let loc = _startpos_modes0_, _endpos_x_ in - (Optional lbl, _5, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - ) -# 39547 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - 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 = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - 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 _6 : unit = Obj.magic _6 in - let _1_inlined2 : (Parsetree.expression option) = Obj.magic _1_inlined2 in - let x : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = Obj.magic x in - let _1_inlined1 : (Parsetree.modes) = 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__6_ in - let _v = - let _5 = - let _1 = _1_inlined2 in - -# 2837 "src/ocaml/preprocess/parser_raw.mly" +# 2813 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39611 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = _1_inlined1 in - let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 39619 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4663 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 39624 "src/ocaml/preprocess/parser_raw.ml" +# 39183 "src/ocaml/preprocess/parser_raw.ml" in - let _startpos_modes0_ = _startpos__1_inlined1_ in ( -# 2760 "src/ocaml/preprocess/parser_raw.mly" - ( let lbl, pat, cty, modes = x in - let loc = _startpos_modes0_, _endpos_x_ in - (Optional lbl, _5, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - ) -# 39635 "src/ocaml/preprocess/parser_raw.ml" +# 2787 "src/ocaml/preprocess/parser_raw.mly" + ( (Optional (fst _3), _4, snd _3) ) +# 39189 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) in { @@ -39657,9 +39211,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39663 "src/ocaml/preprocess/parser_raw.ml" +# 39217 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -39673,24 +39227,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 39679 "src/ocaml/preprocess/parser_raw.ml" +# 39233 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2839 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 39688 "src/ocaml/preprocess/parser_raw.ml" +# 39242 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2766 "src/ocaml/preprocess/parser_raw.mly" +# 2789 "src/ocaml/preprocess/parser_raw.mly" ( (Optional (fst _2), None, snd _2) ) -# 39694 "src/ocaml/preprocess/parser_raw.ml" +# 39248 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) in { @@ -39704,9 +39258,9 @@ module Tables = struct 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.semv = _5; + MenhirLib.EngineTypes.startp = _startpos__5_; + MenhirLib.EngineTypes.endp = _endpos__5_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined1; @@ -39714,9 +39268,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -39733,133 +39287,31 @@ module Tables = struct }; }; } = _menhir_stack in - let _6 : unit = Obj.magic _6 in + let _5 : unit = Obj.magic _5 in let _1_inlined1 : (Parsetree.expression option) = Obj.magic _1_inlined1 in - let x : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = Obj.magic x in + let _3 : (Parsetree.pattern) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1116 "src/ocaml/preprocess/parser_raw.mly" +# 1128 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39744 "src/ocaml/preprocess/parser_raw.ml" +# 39298 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__6_ in + let _endpos = _endpos__5_ in let _v = - let _5 = + let _4 = let _1 = _1_inlined1 in -# 2837 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 39755 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 39761 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__2_ in - ( -# 2768 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty, modes = x in - let loc = _startpos_modes0_, _endpos_x_ in - (Optional _1, _5, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - ) -# 39771 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - 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 = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - 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 _6 : unit = Obj.magic _6 in - let _1_inlined2 : (Parsetree.expression option) = Obj.magic _1_inlined2 in - let x : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = Obj.magic x in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _1 : ( -# 1116 "src/ocaml/preprocess/parser_raw.mly" - (string) -# 39828 "src/ocaml/preprocess/parser_raw.ml" - ) = 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 = - let _5 = - let _1 = _1_inlined2 in - -# 2837 "src/ocaml/preprocess/parser_raw.mly" +# 2813 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 39839 "src/ocaml/preprocess/parser_raw.ml" +# 39309 "src/ocaml/preprocess/parser_raw.ml" in - let modes0 = - let _1 = _1_inlined1 in - let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 39847 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4663 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 39852 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes0_ = _startpos__1_inlined1_ in ( -# 2768 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty, modes = x in - let loc = _startpos_modes0_, _endpos_x_ in - (Optional _1, _5, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - ) -# 39863 "src/ocaml/preprocess/parser_raw.ml" +# 2791 "src/ocaml/preprocess/parser_raw.mly" + ( (Optional _1, _4, _3) ) +# 39315 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) in { @@ -39886,17 +39338,17 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.pattern) = Obj.magic _2 in let _1 : ( -# 1116 "src/ocaml/preprocess/parser_raw.mly" +# 1128 "src/ocaml/preprocess/parser_raw.mly" (string) -# 39892 "src/ocaml/preprocess/parser_raw.ml" +# 39344 "src/ocaml/preprocess/parser_raw.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 : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = -# 2774 "src/ocaml/preprocess/parser_raw.mly" +# 2793 "src/ocaml/preprocess/parser_raw.mly" ( (Optional _1, None, _2) ) -# 39900 "src/ocaml/preprocess/parser_raw.ml" +# 39352 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -39909,14 +39361,14 @@ 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 = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -39932,103 +39384,18 @@ module Tables = struct }; }; } = _menhir_stack in - let _5 : unit = Obj.magic _5 in - let x : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = Obj.magic x 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 = - let modes0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 39947 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__2_ in - ( -# 2776 "src/ocaml/preprocess/parser_raw.mly" - ( let lbl, pat, cty, modes = x in - let loc = _startpos_modes0_, _endpos_x_ in - (Labelled lbl, None, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - ) -# 39957 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - 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 = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - 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 x : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = Obj.magic x in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in + let _4 : unit = Obj.magic _4 in + let _3 : (string * Parsetree.pattern) = 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 = - let modes0 = - let _1 = _1_inlined1 in - let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 40014 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4663 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 40019 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes0_ = _startpos__1_inlined1_ in - ( -# 2776 "src/ocaml/preprocess/parser_raw.mly" - ( let lbl, pat, cty, modes = x in - let loc = _startpos_modes0_, _endpos_x_ in - (Labelled lbl, None, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - ) -# 40030 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in + let _endpos = _endpos__4_ in + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = +# 2795 "src/ocaml/preprocess/parser_raw.mly" + ( (Labelled (fst _3), None, snd _3) ) +# 39398 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40052,9 +39419,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 40058 "src/ocaml/preprocess/parser_raw.ml" +# 39425 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -40068,24 +39435,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 40074 "src/ocaml/preprocess/parser_raw.ml" +# 39441 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2860 "src/ocaml/preprocess/parser_raw.mly" +# 2839 "src/ocaml/preprocess/parser_raw.mly" ( (_1.Location.txt, mkpat ~loc:_sloc (Ppat_var _1)) ) -# 40083 "src/ocaml/preprocess/parser_raw.ml" +# 39450 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2782 "src/ocaml/preprocess/parser_raw.mly" +# 2797 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled (fst _2), None, snd _2) ) -# 40089 "src/ocaml/preprocess/parser_raw.ml" +# 39456 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) in { @@ -40112,17 +39479,17 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.pattern) = Obj.magic _2 in let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 40118 "src/ocaml/preprocess/parser_raw.ml" +# 39485 "src/ocaml/preprocess/parser_raw.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 : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = -# 2784 "src/ocaml/preprocess/parser_raw.mly" +# 2799 "src/ocaml/preprocess/parser_raw.mly" ( (Labelled _1, None, _2) ) -# 40126 "src/ocaml/preprocess/parser_raw.ml" +# 39493 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40134,58 +39501,21 @@ module Tables = struct (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 = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - 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 x : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = Obj.magic x in - let _2 : unit = Obj.magic _2 in - let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" - (string) -# 40168 "src/ocaml/preprocess/parser_raw.ml" - ) = Obj.magic _1 in + let _1 : (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 = - let modes0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 40177 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__2_ in - ( -# 2786 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty, modes = x in - let loc = _startpos_modes0_, _endpos_x_ in - (Labelled _1, None, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - ) -# 40187 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - in + let _endpos = _endpos__1_ in + let _v : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) = +# 2801 "src/ocaml/preprocess/parser_raw.mly" + ( (Nolabel, None, _1) ) +# 39518 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -40197,71 +39527,43 @@ 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 = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + 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 = _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 x : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = Obj.magic x in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in + let _1_inlined1 : (Parsetree.pattern) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" - (string) -# 40237 "src/ocaml/preprocess/parser_raw.ml" - ) = Obj.magic _1 in + let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in + let _endpos = _endpos__1_inlined1_ in let _v = - let modes0 = + let _3 = let _1 = _1_inlined1 in - let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 40248 "src/ocaml/preprocess/parser_raw.ml" - in -# 4663 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 40253 "src/ocaml/preprocess/parser_raw.ml" +# 3767 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 39560 "src/ocaml/preprocess/parser_raw.ml" in - let _startpos_modes0_ = _startpos__1_inlined1_ in ( -# 2786 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty, modes = x in - let loc = _startpos_modes0_, _endpos_x_ in - (Labelled _1, None, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - ) -# 40264 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) +# 3795 "src/ocaml/preprocess/parser_raw.mly" + ( _3 :: _1 ) +# 39566 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40274,65 +39576,54 @@ 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_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; + 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.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 _5 : unit = Obj.magic _5 in - let pat : (Parsetree.pattern) = Obj.magic pat in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" + let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in + let _1_inlined1 : ( +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 40314 "src/ocaml/preprocess/parser_raw.ml" - ) = Obj.magic _1 in +# 39607 "src/ocaml/preprocess/parser_raw.ml" + ) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in + let _endpos = _endpos__2_inlined1_ in let _v = - let modes = - let _1 = _1_inlined1 in + let _3 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 4658 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 40325 "src/ocaml/preprocess/parser_raw.ml" +# 3769 "src/ocaml/preprocess/parser_raw.mly" + ( Some _1, _2 ) +# 39620 "src/ocaml/preprocess/parser_raw.ml" in - let _startpos_modes_ = _startpos__1_inlined1_ in ( -# 2792 "src/ocaml/preprocess/parser_raw.mly" - ( let loc = _startpos_modes_, _endpos_pat_ in - (Labelled _1, None, - mkpat_with_modes ~loc ~pat ~cty:None ~modes) - ) -# 40335 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) +# 3795 "src/ocaml/preprocess/parser_raw.mly" + ( _3 :: _1 ) +# 39626 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40341,48 +39632,23 @@ module Tables = struct 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.pattern) = 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.arg_label * Parsetree.expression option * Parsetree.pattern) = -# 2797 "src/ocaml/preprocess/parser_raw.mly" - ( (Nolabel, None, _1) ) -# 40361 "src/ocaml/preprocess/parser_raw.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 = label; + MenhirLib.EngineTypes.startp = _startpos_label_; + MenhirLib.EngineTypes.endp = _endpos_label_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; + 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.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -40393,149 +39659,32 @@ module Tables = struct }; }; } = _menhir_stack in - let _4 : unit = Obj.magic _4 in - let x : (Parsetree.pattern * Parsetree.core_type option) = Obj.magic x in - let _1_inlined1 : (Parsetree.modes) = 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 = - let modes = - let _1 = _1_inlined1 in - -# 4658 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 40410 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes_ = _startpos__1_inlined1_ in - ( -# 2799 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty = x in - let loc = _startpos_modes_, _endpos_x_ in - (Nolabel, None, - mkpat_with_modes ~loc ~pat ~cty ~modes) - ) -# 40421 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - 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 = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - 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 x : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = Obj.magic x 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 = - let modes0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 40462 "src/ocaml/preprocess/parser_raw.ml" - in - let _startpos_modes0_ = _endpos__1_ in - ( -# 2805 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty, modes = x in - let loc = _startpos_modes0_, _endpos_x_ in - (Nolabel, None, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - ) -# 40472 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - 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 = x; - MenhirLib.EngineTypes.startp = _startpos_x_; - MenhirLib.EngineTypes.endp = _endpos_x_; - 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 : unit = Obj.magic _4 in - let x : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = Obj.magic x in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let label : ( +# 1108 "src/ocaml/preprocess/parser_raw.mly" + (string) +# 39666 "src/ocaml/preprocess/parser_raw.ml" + ) = Obj.magic label in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _1 : ((string option * Parsetree.pattern) list) = 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_label_ in let _v = - let modes0 = - let _1 = _1_inlined1 in - let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 40522 "src/ocaml/preprocess/parser_raw.ml" - in + let _3 = + let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 4663 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 40527 "src/ocaml/preprocess/parser_raw.ml" +# 3771 "src/ocaml/preprocess/parser_raw.mly" + ( let loc = _loc_label_ in + Some label, mkpatvar ~loc label ) +# 39681 "src/ocaml/preprocess/parser_raw.ml" in - let _startpos_modes0_ = _startpos__1_inlined1_ in ( -# 2805 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty, modes = x in - let loc = _startpos_modes0_, _endpos_x_ in - (Nolabel, None, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - ) -# 40538 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) +# 3795 "src/ocaml/preprocess/parser_raw.mly" + ( _3 :: _1 ) +# 39687 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40548,24 +39697,24 @@ 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 = _6; + MenhirLib.EngineTypes.startp = _startpos__6_; + MenhirLib.EngineTypes.endp = _endpos__6_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = inner_type; - MenhirLib.EngineTypes.startp = _startpos_inner_type_; - MenhirLib.EngineTypes.endp = _endpos_inner_type_; + MenhirLib.EngineTypes.semv = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined2; - MenhirLib.EngineTypes.startp = _startpos__2_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined2_; + 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.semv = label; + MenhirLib.EngineTypes.startp = _startpos_label_; + MenhirLib.EngineTypes.endp = _endpos_label_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2_inlined1; @@ -40573,9 +39722,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; + 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; @@ -40595,339 +39744,40 @@ module Tables = struct }; }; } = _menhir_stack in + let _6 : unit = Obj.magic _6 in + let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in - let inner_type : (Parsetree.core_type) = Obj.magic inner_type in - let _2_inlined2 : unit = Obj.magic _2_inlined2 in - let xs : ((string Location.loc * Parsetree.jkind_annotation 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 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" - (string) -# 40609 "src/ocaml/preprocess/parser_raw.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 = - let x = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 40623 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1398 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 40628 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4480 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 40634 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2900 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 40640 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 40650 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2901 "src/ocaml/preprocess/parser_raw.mly" - ( pat, Some cty ) -# 40656 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos_x_, _startpos_x_) = (_endpos_inner_type_, _startpos_pat_) in - let _loc_x_ = (_startpos_x_, _endpos_x_) in - ( -# 2811 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty = x in - (Labelled _1, None, - mkpat_with_modes ~loc:_loc_x_ ~pat ~cty ~modes:[]) - ) -# 40667 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - 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 = inner_type; - MenhirLib.EngineTypes.startp = _startpos_inner_type_; - MenhirLib.EngineTypes.endp = _endpos_inner_type_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined2; - MenhirLib.EngineTypes.startp = _startpos__2_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined2_; - 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_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - 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 inner_type : (Parsetree.core_type) = Obj.magic inner_type in - let _2_inlined2 : unit = Obj.magic _2_inlined2 in - let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in - let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let pat : (Parsetree.pattern) = Obj.magic pat in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" + let label : ( +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 40745 "src/ocaml/preprocess/parser_raw.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 = - let x = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 40759 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1398 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 40764 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4480 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 40770 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2900 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 40776 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 40786 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2901 "src/ocaml/preprocess/parser_raw.mly" - ( pat, Some cty ) -# 40792 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_x_ = _endpos_inner_type_ in - let modes = - let _1 = _1_inlined1 in - -# 4658 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 40801 "src/ocaml/preprocess/parser_raw.ml" - - in - let _startpos_modes_ = _startpos__1_inlined1_ in - ( -# 2816 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty = x in - let loc = _startpos_modes_, _endpos_x_ in - (Labelled _1, None, - mkpat_with_modes ~loc ~pat ~cty ~modes) - ) -# 40812 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) - 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 = inner_type; - MenhirLib.EngineTypes.startp = _startpos_inner_type_; - MenhirLib.EngineTypes.endp = _endpos_inner_type_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; - 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 = _; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - 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 inner_type : (Parsetree.core_type) = Obj.magic inner_type in +# 39754 "src/ocaml/preprocess/parser_raw.ml" + ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let pat : (Parsetree.pattern) = Obj.magic pat in - let _1 : unit = Obj.magic _1 in + let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__3_ in + let _endpos = _endpos__6_ in let _v = - let x = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 40886 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1398 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 40891 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4480 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 40897 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2900 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 40903 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 40913 "src/ocaml/preprocess/parser_raw.ml" - - in + let _3 = + let _startpos__2_ = _startpos__2_inlined1_ in + let _endpos = _endpos__6_ in + let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 2901 "src/ocaml/preprocess/parser_raw.mly" - ( pat, Some cty ) -# 40919 "src/ocaml/preprocess/parser_raw.ml" +# 3774 "src/ocaml/preprocess/parser_raw.mly" + ( let lbl_loc = _loc_label_ in + let pat_loc = _startpos__2_, _endpos in + let pat = mkpatvar ~loc:lbl_loc label in + Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) +# 39774 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos_x_, _startpos_x_) = (_endpos_inner_type_, _startpos_pat_) in - let _loc_x_ = (_startpos_x_, _endpos_x_) in ( -# 2822 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty = x in - (Nolabel, None, - mkpat_with_modes ~loc:_loc_x_ ~pat ~cty ~modes:[]) - ) -# 40930 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern)) +# 3795 "src/ocaml/preprocess/parser_raw.mly" + ( _3 :: _1 ) +# 39780 "src/ocaml/preprocess/parser_raw.ml" + : ((string option * Parsetree.pattern) list)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -40959,7 +39809,7 @@ module Tables = struct } = _menhir_stack in let _1_inlined1 : (Parsetree.pattern) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in + let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in @@ -40967,15 +39817,20 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 3777 "src/ocaml/preprocess/parser_raw.mly" +# 3767 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 40973 "src/ocaml/preprocess/parser_raw.ml" +# 39823 "src/ocaml/preprocess/parser_raw.ml" in + let _1 = +# 3781 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 39829 "src/ocaml/preprocess/parser_raw.ml" + in ( -# 3805 "src/ocaml/preprocess/parser_raw.mly" - ( _3 :: _1 ) -# 40979 "src/ocaml/preprocess/parser_raw.ml" +# 3797 "src/ocaml/preprocess/parser_raw.mly" + ( [ _3; _1 ] ) +# 39834 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -41014,12 +39869,12 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41020 "src/ocaml/preprocess/parser_raw.ml" +# 39875 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in + let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_inlined1_ in @@ -41027,15 +39882,20 @@ module Tables = struct let _3 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3779 "src/ocaml/preprocess/parser_raw.mly" +# 3769 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 41033 "src/ocaml/preprocess/parser_raw.ml" +# 39888 "src/ocaml/preprocess/parser_raw.ml" in + let _1 = +# 3781 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 39894 "src/ocaml/preprocess/parser_raw.ml" + in ( -# 3805 "src/ocaml/preprocess/parser_raw.mly" - ( _3 :: _1 ) -# 41039 "src/ocaml/preprocess/parser_raw.ml" +# 3797 "src/ocaml/preprocess/parser_raw.mly" + ( [ _3; _1 ] ) +# 39899 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -41073,13 +39933,13 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41079 "src/ocaml/preprocess/parser_raw.ml" +# 39939 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in + let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos_label_ in @@ -41087,16 +39947,21 @@ module Tables = struct let _3 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3781 "src/ocaml/preprocess/parser_raw.mly" +# 3771 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 41094 "src/ocaml/preprocess/parser_raw.ml" +# 39954 "src/ocaml/preprocess/parser_raw.ml" in + let _1 = +# 3781 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 39960 "src/ocaml/preprocess/parser_raw.ml" + in ( -# 3805 "src/ocaml/preprocess/parser_raw.mly" - ( _3 :: _1 ) -# 41100 "src/ocaml/preprocess/parser_raw.ml" +# 3797 "src/ocaml/preprocess/parser_raw.mly" + ( [ _3; _1 ] ) +# 39965 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -41161,14 +40026,14 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41167 "src/ocaml/preprocess/parser_raw.ml" +# 40032 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in + let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__6_ in @@ -41178,18 +40043,23 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3784 "src/ocaml/preprocess/parser_raw.mly" +# 3774 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 41187 "src/ocaml/preprocess/parser_raw.ml" +# 40052 "src/ocaml/preprocess/parser_raw.ml" in + let _1 = +# 3781 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 40058 "src/ocaml/preprocess/parser_raw.ml" + in ( -# 3805 "src/ocaml/preprocess/parser_raw.mly" - ( _3 :: _1 ) -# 41193 "src/ocaml/preprocess/parser_raw.ml" +# 3797 "src/ocaml/preprocess/parser_raw.mly" + ( [ _3; _1 ] ) +# 40063 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -41212,17 +40082,28 @@ module Tables = struct 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 = _; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_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.pattern) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.pattern) = Obj.magic _1 in + let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in + let _1 : ( +# 1094 "src/ocaml/preprocess/parser_raw.mly" + (string) +# 40106 "src/ocaml/preprocess/parser_raw.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__1_inlined1_ in @@ -41230,20 +40111,23 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 3777 "src/ocaml/preprocess/parser_raw.mly" +# 3767 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 41236 "src/ocaml/preprocess/parser_raw.ml" +# 40117 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + +# 3783 "src/ocaml/preprocess/parser_raw.mly" + ( Some _1, _2 ) +# 40125 "src/ocaml/preprocess/parser_raw.ml" in - let _1 = -# 3791 "src/ocaml/preprocess/parser_raw.mly" - ( None, _1 ) -# 41242 "src/ocaml/preprocess/parser_raw.ml" - in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 41247 "src/ocaml/preprocess/parser_raw.ml" +# 40131 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -41257,9 +40141,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.semv = _2_inlined2; + MenhirLib.EngineTypes.startp = _startpos__2_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _1_inlined1; @@ -41271,355 +40155,58 @@ module Tables = struct 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 = _; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_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 _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in + let _2_inlined2 : (Parsetree.pattern) = Obj.magic _2_inlined2 in let _1_inlined1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41288 "src/ocaml/preprocess/parser_raw.ml" +# 40178 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.pattern) = Obj.magic _1 in + let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in + let _1 : ( +# 1094 "src/ocaml/preprocess/parser_raw.mly" + (string) +# 40185 "src/ocaml/preprocess/parser_raw.ml" + ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__2_inlined1_ in + let _endpos = _endpos__2_inlined2_ in let _v = let _3 = - let (_2, _1) = (_2_inlined1, _1_inlined1) in + let (_2, _1) = (_2_inlined2, _1_inlined1) in -# 3779 "src/ocaml/preprocess/parser_raw.mly" +# 3769 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 41301 "src/ocaml/preprocess/parser_raw.ml" +# 40196 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + +# 3783 "src/ocaml/preprocess/parser_raw.mly" + ( Some _1, _2 ) +# 40204 "src/ocaml/preprocess/parser_raw.ml" in - let _1 = -# 3791 "src/ocaml/preprocess/parser_raw.mly" - ( None, _1 ) -# 41307 "src/ocaml/preprocess/parser_raw.ml" - in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 41312 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - 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 = label; - MenhirLib.EngineTypes.startp = _startpos_label_; - MenhirLib.EngineTypes.endp = _endpos_label_; - 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 label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" - (string) -# 41352 "src/ocaml/preprocess/parser_raw.ml" - ) = Obj.magic label in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.pattern) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos_label_ in - let _v = - let _3 = - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3781 "src/ocaml/preprocess/parser_raw.mly" - ( let loc = _loc_label_ in - Some label, mkpatvar ~loc label ) -# 41367 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3791 "src/ocaml/preprocess/parser_raw.mly" - ( None, _1 ) -# 41373 "src/ocaml/preprocess/parser_raw.ml" - in - ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" - ( [ _3; _1 ] ) -# 41378 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - 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 = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; - 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 = label; - MenhirLib.EngineTypes.startp = _startpos_label_; - MenhirLib.EngineTypes.endp = _endpos_label_; - MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_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; - }; - }; - }; - }; - }; - }; - }; - } = _menhir_stack in - let _6 : unit = Obj.magic _6 in - let cty : (Parsetree.core_type) = Obj.magic cty in - let _4 : unit = Obj.magic _4 in - let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" - (string) -# 41445 "src/ocaml/preprocess/parser_raw.ml" - ) = Obj.magic label in - let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.pattern) = 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 = - let _3 = - let _startpos__2_ = _startpos__2_inlined1_ in - let _endpos = _endpos__6_ in - let _loc_label_ = (_startpos_label_, _endpos_label_) in - -# 3784 "src/ocaml/preprocess/parser_raw.mly" - ( let lbl_loc = _loc_label_ in - let pat_loc = _startpos__2_, _endpos in - let pat = mkpatvar ~loc:lbl_loc label in - Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 41465 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = -# 3791 "src/ocaml/preprocess/parser_raw.mly" - ( None, _1 ) -# 41471 "src/ocaml/preprocess/parser_raw.ml" - in - ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" - ( [ _3; _1 ] ) -# 41476 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - 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 = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_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.pattern) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in - let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" - (string) -# 41519 "src/ocaml/preprocess/parser_raw.ml" - ) = 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 = - let _3 = - let _1 = _1_inlined1 in - -# 3777 "src/ocaml/preprocess/parser_raw.mly" - ( None, _1 ) -# 41530 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - -# 3793 "src/ocaml/preprocess/parser_raw.mly" - ( Some _1, _2 ) -# 41538 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" - ( [ _3; _1 ] ) -# 41544 "src/ocaml/preprocess/parser_raw.ml" - : ((string option * Parsetree.pattern) list)) - 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_inlined2; - MenhirLib.EngineTypes.startp = _startpos__2_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__2_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 = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_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 _2_inlined2 : (Parsetree.pattern) = Obj.magic _2_inlined2 in - let _1_inlined1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" - (string) -# 41591 "src/ocaml/preprocess/parser_raw.ml" - ) = Obj.magic _1_inlined1 in - let _2 : unit = Obj.magic _2 in - let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in - let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" - (string) -# 41598 "src/ocaml/preprocess/parser_raw.ml" - ) = Obj.magic _1 in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_inlined2_ in - let _v = - let _3 = - let (_2, _1) = (_2_inlined2, _1_inlined1) in - -# 3779 "src/ocaml/preprocess/parser_raw.mly" - ( Some _1, _2 ) -# 41609 "src/ocaml/preprocess/parser_raw.ml" - - in - let _1 = - let _2 = _2_inlined1 in - -# 3793 "src/ocaml/preprocess/parser_raw.mly" - ( Some _1, _2 ) -# 41617 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" - ( [ _3; _1 ] ) -# 41623 "src/ocaml/preprocess/parser_raw.ml" +# 40210 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -41663,17 +40250,17 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41669 "src/ocaml/preprocess/parser_raw.ml" +# 40256 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41677 "src/ocaml/preprocess/parser_raw.ml" +# 40264 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -41682,24 +40269,24 @@ module Tables = struct let _3 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3781 "src/ocaml/preprocess/parser_raw.mly" +# 3771 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 41689 "src/ocaml/preprocess/parser_raw.ml" +# 40276 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _2 = _2_inlined1 in -# 3793 "src/ocaml/preprocess/parser_raw.mly" +# 3783 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 41697 "src/ocaml/preprocess/parser_raw.ml" +# 40284 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 41703 "src/ocaml/preprocess/parser_raw.ml" +# 40290 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -41770,18 +40357,18 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41776 "src/ocaml/preprocess/parser_raw.ml" +# 40363 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41785 "src/ocaml/preprocess/parser_raw.ml" +# 40372 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -41792,26 +40379,26 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3784 "src/ocaml/preprocess/parser_raw.mly" +# 3774 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 41801 "src/ocaml/preprocess/parser_raw.ml" +# 40388 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _2 = _2_inlined1 in -# 3793 "src/ocaml/preprocess/parser_raw.mly" +# 3783 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 41809 "src/ocaml/preprocess/parser_raw.ml" +# 40396 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 41815 "src/ocaml/preprocess/parser_raw.ml" +# 40402 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -41851,9 +40438,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.pattern) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41857 "src/ocaml/preprocess/parser_raw.ml" +# 40444 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -41863,24 +40450,24 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 3777 "src/ocaml/preprocess/parser_raw.mly" +# 3767 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 41869 "src/ocaml/preprocess/parser_raw.ml" +# 40456 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3795 "src/ocaml/preprocess/parser_raw.mly" +# 3785 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 41878 "src/ocaml/preprocess/parser_raw.ml" +# 40465 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 41884 "src/ocaml/preprocess/parser_raw.ml" +# 40471 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -41925,15 +40512,15 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41931 "src/ocaml/preprocess/parser_raw.ml" +# 40518 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 41937 "src/ocaml/preprocess/parser_raw.ml" +# 40524 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -41943,24 +40530,24 @@ module Tables = struct let _3 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3779 "src/ocaml/preprocess/parser_raw.mly" +# 3769 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 41949 "src/ocaml/preprocess/parser_raw.ml" +# 40536 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3795 "src/ocaml/preprocess/parser_raw.mly" +# 3785 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 41958 "src/ocaml/preprocess/parser_raw.ml" +# 40545 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 41964 "src/ocaml/preprocess/parser_raw.ml" +# 40551 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -42004,16 +40591,16 @@ module Tables = struct }; } = _menhir_stack in let label_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42010 "src/ocaml/preprocess/parser_raw.ml" +# 40597 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42017 "src/ocaml/preprocess/parser_raw.ml" +# 40604 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -42024,25 +40611,25 @@ module Tables = struct let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3781 "src/ocaml/preprocess/parser_raw.mly" +# 3771 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 42031 "src/ocaml/preprocess/parser_raw.ml" +# 40618 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3795 "src/ocaml/preprocess/parser_raw.mly" +# 3785 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 42040 "src/ocaml/preprocess/parser_raw.ml" +# 40627 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 42046 "src/ocaml/preprocess/parser_raw.ml" +# 40633 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -42113,17 +40700,17 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42119 "src/ocaml/preprocess/parser_raw.ml" +# 40706 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42127 "src/ocaml/preprocess/parser_raw.ml" +# 40714 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -42135,27 +40722,27 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3784 "src/ocaml/preprocess/parser_raw.mly" +# 3774 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 42144 "src/ocaml/preprocess/parser_raw.ml" +# 40731 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3795 "src/ocaml/preprocess/parser_raw.mly" +# 3785 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 42153 "src/ocaml/preprocess/parser_raw.ml" +# 40740 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 42159 "src/ocaml/preprocess/parser_raw.ml" +# 40746 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -42222,9 +40809,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42228 "src/ocaml/preprocess/parser_raw.ml" +# 40815 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -42235,9 +40822,9 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 3777 "src/ocaml/preprocess/parser_raw.mly" +# 3767 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 42241 "src/ocaml/preprocess/parser_raw.ml" +# 40828 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -42245,18 +40832,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3788 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 42254 "src/ocaml/preprocess/parser_raw.ml" +# 40841 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 42260 "src/ocaml/preprocess/parser_raw.ml" +# 40847 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -42325,18 +40912,18 @@ module Tables = struct } = _menhir_stack in let _2_inlined2 : (Parsetree.pattern) = Obj.magic _2_inlined2 in let _1_inlined1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42331 "src/ocaml/preprocess/parser_raw.ml" +# 40918 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _6 : unit = Obj.magic _6 in let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42340 "src/ocaml/preprocess/parser_raw.ml" +# 40927 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -42347,9 +40934,9 @@ module Tables = struct let _3 = let (_2, _1) = (_2_inlined2, _1_inlined1) in -# 3779 "src/ocaml/preprocess/parser_raw.mly" +# 3769 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 42353 "src/ocaml/preprocess/parser_raw.ml" +# 40940 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -42357,18 +40944,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3788 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 42366 "src/ocaml/preprocess/parser_raw.ml" +# 40953 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 42372 "src/ocaml/preprocess/parser_raw.ml" +# 40959 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -42436,9 +41023,9 @@ module Tables = struct }; } = _menhir_stack in let label_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42442 "src/ocaml/preprocess/parser_raw.ml" +# 41029 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -42446,9 +41033,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42452 "src/ocaml/preprocess/parser_raw.ml" +# 41039 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -42460,10 +41047,10 @@ module Tables = struct let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3781 "src/ocaml/preprocess/parser_raw.mly" +# 3771 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 42467 "src/ocaml/preprocess/parser_raw.ml" +# 41054 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -42471,18 +41058,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3788 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 42480 "src/ocaml/preprocess/parser_raw.ml" +# 41067 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 42486 "src/ocaml/preprocess/parser_raw.ml" +# 41073 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -42577,9 +41164,9 @@ module Tables = struct let cty_inlined1 : (Parsetree.core_type) = Obj.magic cty_inlined1 in let _4_inlined1 : unit = Obj.magic _4_inlined1 in let label_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42583 "src/ocaml/preprocess/parser_raw.ml" +# 41170 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -42588,9 +41175,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42594 "src/ocaml/preprocess/parser_raw.ml" +# 41181 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -42603,12 +41190,12 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3784 "src/ocaml/preprocess/parser_raw.mly" +# 3774 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 42612 "src/ocaml/preprocess/parser_raw.ml" +# 41199 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -42616,18 +41203,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3788 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 42625 "src/ocaml/preprocess/parser_raw.ml" +# 41212 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 42631 "src/ocaml/preprocess/parser_raw.ml" +# 41218 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -42668,15 +41255,15 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 3777 "src/ocaml/preprocess/parser_raw.mly" +# 3767 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 42674 "src/ocaml/preprocess/parser_raw.ml" +# 41261 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3805 "src/ocaml/preprocess/parser_raw.mly" +# 3795 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 42680 "src/ocaml/preprocess/parser_raw.ml" +# 41267 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -42715,9 +41302,9 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42721 "src/ocaml/preprocess/parser_raw.ml" +# 41308 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ((string option * Parsetree.pattern) list) = Obj.magic _1 in @@ -42728,15 +41315,15 @@ module Tables = struct let _3 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3779 "src/ocaml/preprocess/parser_raw.mly" +# 3769 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 42734 "src/ocaml/preprocess/parser_raw.ml" +# 41321 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3805 "src/ocaml/preprocess/parser_raw.mly" +# 3795 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 42740 "src/ocaml/preprocess/parser_raw.ml" +# 41327 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -42774,9 +41361,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42780 "src/ocaml/preprocess/parser_raw.ml" +# 41367 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -42788,16 +41375,16 @@ module Tables = struct let _3 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3781 "src/ocaml/preprocess/parser_raw.mly" +# 3771 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 42795 "src/ocaml/preprocess/parser_raw.ml" +# 41382 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3805 "src/ocaml/preprocess/parser_raw.mly" +# 3795 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 42801 "src/ocaml/preprocess/parser_raw.ml" +# 41388 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -42862,9 +41449,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42868 "src/ocaml/preprocess/parser_raw.ml" +# 41455 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -42879,18 +41466,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3784 "src/ocaml/preprocess/parser_raw.mly" +# 3774 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 42888 "src/ocaml/preprocess/parser_raw.ml" +# 41475 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3805 "src/ocaml/preprocess/parser_raw.mly" +# 3795 "src/ocaml/preprocess/parser_raw.mly" ( _3 :: _1 ) -# 42894 "src/ocaml/preprocess/parser_raw.ml" +# 41481 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -42931,20 +41518,20 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 3777 "src/ocaml/preprocess/parser_raw.mly" +# 3767 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 42937 "src/ocaml/preprocess/parser_raw.ml" +# 41524 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3791 "src/ocaml/preprocess/parser_raw.mly" +# 3781 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 42943 "src/ocaml/preprocess/parser_raw.ml" +# 41530 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 42948 "src/ocaml/preprocess/parser_raw.ml" +# 41535 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -42983,9 +41570,9 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 42989 "src/ocaml/preprocess/parser_raw.ml" +# 41576 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.pattern) = Obj.magic _1 in @@ -42996,20 +41583,20 @@ module Tables = struct let _3 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3779 "src/ocaml/preprocess/parser_raw.mly" +# 3769 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 43002 "src/ocaml/preprocess/parser_raw.ml" +# 41589 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3791 "src/ocaml/preprocess/parser_raw.mly" +# 3781 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 43008 "src/ocaml/preprocess/parser_raw.ml" +# 41595 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 43013 "src/ocaml/preprocess/parser_raw.ml" +# 41600 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -43047,9 +41634,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43053 "src/ocaml/preprocess/parser_raw.ml" +# 41640 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -43061,21 +41648,21 @@ module Tables = struct let _3 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3781 "src/ocaml/preprocess/parser_raw.mly" +# 3771 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 43068 "src/ocaml/preprocess/parser_raw.ml" +# 41655 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3791 "src/ocaml/preprocess/parser_raw.mly" +# 3781 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 43074 "src/ocaml/preprocess/parser_raw.ml" +# 41661 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 43079 "src/ocaml/preprocess/parser_raw.ml" +# 41666 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -43140,9 +41727,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43146 "src/ocaml/preprocess/parser_raw.ml" +# 41733 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -43157,23 +41744,23 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3784 "src/ocaml/preprocess/parser_raw.mly" +# 3774 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 43166 "src/ocaml/preprocess/parser_raw.ml" +# 41753 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3791 "src/ocaml/preprocess/parser_raw.mly" +# 3781 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 43172 "src/ocaml/preprocess/parser_raw.ml" +# 41759 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 43177 "src/ocaml/preprocess/parser_raw.ml" +# 41764 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -43214,9 +41801,9 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43220 "src/ocaml/preprocess/parser_raw.ml" +# 41807 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -43225,23 +41812,23 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 3777 "src/ocaml/preprocess/parser_raw.mly" +# 3767 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 43231 "src/ocaml/preprocess/parser_raw.ml" +# 41818 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _2 = _2_inlined1 in -# 3793 "src/ocaml/preprocess/parser_raw.mly" +# 3783 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 43239 "src/ocaml/preprocess/parser_raw.ml" +# 41826 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 43245 "src/ocaml/preprocess/parser_raw.ml" +# 41832 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -43286,16 +41873,16 @@ module Tables = struct } = _menhir_stack in let _2_inlined2 : (Parsetree.pattern) = Obj.magic _2_inlined2 in let _1_inlined1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43292 "src/ocaml/preprocess/parser_raw.ml" +# 41879 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43299 "src/ocaml/preprocess/parser_raw.ml" +# 41886 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -43304,23 +41891,23 @@ module Tables = struct let _3 = let (_2, _1) = (_2_inlined2, _1_inlined1) in -# 3779 "src/ocaml/preprocess/parser_raw.mly" +# 3769 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 43310 "src/ocaml/preprocess/parser_raw.ml" +# 41897 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _2 = _2_inlined1 in -# 3793 "src/ocaml/preprocess/parser_raw.mly" +# 3783 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 43318 "src/ocaml/preprocess/parser_raw.ml" +# 41905 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 43324 "src/ocaml/preprocess/parser_raw.ml" +# 41911 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -43364,17 +41951,17 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43370 "src/ocaml/preprocess/parser_raw.ml" +# 41957 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43378 "src/ocaml/preprocess/parser_raw.ml" +# 41965 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -43383,24 +41970,24 @@ module Tables = struct let _3 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3781 "src/ocaml/preprocess/parser_raw.mly" +# 3771 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 43390 "src/ocaml/preprocess/parser_raw.ml" +# 41977 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _2 = _2_inlined1 in -# 3793 "src/ocaml/preprocess/parser_raw.mly" +# 3783 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 43398 "src/ocaml/preprocess/parser_raw.ml" +# 41985 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 43404 "src/ocaml/preprocess/parser_raw.ml" +# 41991 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -43471,18 +42058,18 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43477 "src/ocaml/preprocess/parser_raw.ml" +# 42064 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43486 "src/ocaml/preprocess/parser_raw.ml" +# 42073 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -43493,26 +42080,26 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3784 "src/ocaml/preprocess/parser_raw.mly" +# 3774 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 43502 "src/ocaml/preprocess/parser_raw.ml" +# 42089 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _2 = _2_inlined1 in -# 3793 "src/ocaml/preprocess/parser_raw.mly" +# 3783 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 43510 "src/ocaml/preprocess/parser_raw.ml" +# 42097 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 43516 "src/ocaml/preprocess/parser_raw.ml" +# 42103 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -43552,9 +42139,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.pattern) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43558 "src/ocaml/preprocess/parser_raw.ml" +# 42145 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -43564,24 +42151,24 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 3777 "src/ocaml/preprocess/parser_raw.mly" +# 3767 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 43570 "src/ocaml/preprocess/parser_raw.ml" +# 42157 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3795 "src/ocaml/preprocess/parser_raw.mly" +# 3785 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 43579 "src/ocaml/preprocess/parser_raw.ml" +# 42166 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 43585 "src/ocaml/preprocess/parser_raw.ml" +# 42172 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -43626,15 +42213,15 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43632 "src/ocaml/preprocess/parser_raw.ml" +# 42219 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43638 "src/ocaml/preprocess/parser_raw.ml" +# 42225 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -43644,24 +42231,24 @@ module Tables = struct let _3 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3779 "src/ocaml/preprocess/parser_raw.mly" +# 3769 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 43650 "src/ocaml/preprocess/parser_raw.ml" +# 42237 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3795 "src/ocaml/preprocess/parser_raw.mly" +# 3785 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 43659 "src/ocaml/preprocess/parser_raw.ml" +# 42246 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 43665 "src/ocaml/preprocess/parser_raw.ml" +# 42252 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -43705,16 +42292,16 @@ module Tables = struct }; } = _menhir_stack in let label_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43711 "src/ocaml/preprocess/parser_raw.ml" +# 42298 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43718 "src/ocaml/preprocess/parser_raw.ml" +# 42305 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -43725,25 +42312,25 @@ module Tables = struct let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3781 "src/ocaml/preprocess/parser_raw.mly" +# 3771 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 43732 "src/ocaml/preprocess/parser_raw.ml" +# 42319 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3795 "src/ocaml/preprocess/parser_raw.mly" +# 3785 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 43741 "src/ocaml/preprocess/parser_raw.ml" +# 42328 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 43747 "src/ocaml/preprocess/parser_raw.ml" +# 42334 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -43814,17 +42401,17 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43820 "src/ocaml/preprocess/parser_raw.ml" +# 42407 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43828 "src/ocaml/preprocess/parser_raw.ml" +# 42415 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -43836,27 +42423,27 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3784 "src/ocaml/preprocess/parser_raw.mly" +# 3774 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 43845 "src/ocaml/preprocess/parser_raw.ml" +# 42432 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3795 "src/ocaml/preprocess/parser_raw.mly" +# 3785 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 43854 "src/ocaml/preprocess/parser_raw.ml" +# 42441 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 43860 "src/ocaml/preprocess/parser_raw.ml" +# 42447 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -43923,9 +42510,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 43929 "src/ocaml/preprocess/parser_raw.ml" +# 42516 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -43936,9 +42523,9 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 3777 "src/ocaml/preprocess/parser_raw.mly" +# 3767 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 43942 "src/ocaml/preprocess/parser_raw.ml" +# 42529 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -43946,18 +42533,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3788 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 43955 "src/ocaml/preprocess/parser_raw.ml" +# 42542 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 43961 "src/ocaml/preprocess/parser_raw.ml" +# 42548 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -44026,18 +42613,18 @@ module Tables = struct } = _menhir_stack in let _2_inlined2 : (Parsetree.pattern) = Obj.magic _2_inlined2 in let _1_inlined1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44032 "src/ocaml/preprocess/parser_raw.ml" +# 42619 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _6 : unit = Obj.magic _6 in let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44041 "src/ocaml/preprocess/parser_raw.ml" +# 42628 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -44048,9 +42635,9 @@ module Tables = struct let _3 = let (_2, _1) = (_2_inlined2, _1_inlined1) in -# 3779 "src/ocaml/preprocess/parser_raw.mly" +# 3769 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 44054 "src/ocaml/preprocess/parser_raw.ml" +# 42641 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -44058,18 +42645,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3788 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 44067 "src/ocaml/preprocess/parser_raw.ml" +# 42654 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 44073 "src/ocaml/preprocess/parser_raw.ml" +# 42660 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -44137,9 +42724,9 @@ module Tables = struct }; } = _menhir_stack in let label_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44143 "src/ocaml/preprocess/parser_raw.ml" +# 42730 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -44147,9 +42734,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44153 "src/ocaml/preprocess/parser_raw.ml" +# 42740 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -44161,10 +42748,10 @@ module Tables = struct let (_endpos_label_, _startpos_label_, label) = (_endpos_label_inlined1_, _startpos_label_inlined1_, label_inlined1) in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3781 "src/ocaml/preprocess/parser_raw.mly" +# 3771 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 44168 "src/ocaml/preprocess/parser_raw.ml" +# 42755 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -44172,18 +42759,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3788 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 44181 "src/ocaml/preprocess/parser_raw.ml" +# 42768 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 44187 "src/ocaml/preprocess/parser_raw.ml" +# 42774 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -44278,9 +42865,9 @@ module Tables = struct let cty_inlined1 : (Parsetree.core_type) = Obj.magic cty_inlined1 in let _4_inlined1 : unit = Obj.magic _4_inlined1 in let label_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44284 "src/ocaml/preprocess/parser_raw.ml" +# 42871 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label_inlined1 in let _2_inlined2 : unit = Obj.magic _2_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -44289,9 +42876,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 44295 "src/ocaml/preprocess/parser_raw.ml" +# 42882 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -44304,12 +42891,12 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3784 "src/ocaml/preprocess/parser_raw.mly" +# 3774 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 44313 "src/ocaml/preprocess/parser_raw.ml" +# 42900 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -44317,18 +42904,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3788 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 44326 "src/ocaml/preprocess/parser_raw.ml" +# 42913 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3807 "src/ocaml/preprocess/parser_raw.mly" +# 3797 "src/ocaml/preprocess/parser_raw.mly" ( [ _3; _1 ] ) -# 44332 "src/ocaml/preprocess/parser_raw.ml" +# 42919 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.pattern) list)) in { @@ -44354,9 +42941,9 @@ module Tables = struct let _endpos = _endpos__1_ in let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes * bool) = -# 3404 "src/ocaml/preprocess/parser_raw.mly" +# 3385 "src/ocaml/preprocess/parser_raw.mly" ( let p,e,c,modes = _1 in (p,e,c,modes,false) ) -# 44360 "src/ocaml/preprocess/parser_raw.ml" +# 42947 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -44383,9 +42970,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in ( -# 3407 "src/ocaml/preprocess/parser_raw.mly" +# 3388 "src/ocaml/preprocess/parser_raw.mly" ( (mkpatvar ~loc:_loc ~attrs:[pun_attr] _1, ghexpvar ~loc:_loc ~attrs:[pun_attr] _1, None, [], true) ) -# 44389 "src/ocaml/preprocess/parser_raw.ml" +# 42976 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes * bool)) in @@ -44400,9 +42987,9 @@ 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 = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -44411,34 +42998,39 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined1 : (Parsetree.modes -> Parsetree.expression) = Obj.magic _1_inlined1 in + let _2 : (Parsetree.modes -> Parsetree.expression) = 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__1_inlined1_ in + let _endpos = _endpos__2_ in let _v = - let _2 = - let _1 = _1_inlined1 in - -# 3487 "src/ocaml/preprocess/parser_raw.mly" - (_1 []) -# 44426 "src/ocaml/preprocess/parser_raw.ml" - - in let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3330 "src/ocaml/preprocess/parser_raw.mly" + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3306 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 44436 "src/ocaml/preprocess/parser_raw.ml" +# 43016 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 4674 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 43022 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 43027 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3340 "src/ocaml/preprocess/parser_raw.mly" - ( (_1, _2, None, []) ) -# 44442 "src/ocaml/preprocess/parser_raw.ml" +# 3326 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes = _1 in + (v, _2 modes, None, modes) ) +# 43034 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -44453,88 +43045,65 @@ 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 = _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 = _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 _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _1_inlined1 : (Parsetree.type_constraint) = Obj.magic _1_inlined1 in - let _1 : (string) = Obj.magic _1 in + let _2 : (Parsetree.modes -> Parsetree.expression) = Obj.magic _2 in + let _1_inlined1 : (string) = Obj.magic _1_inlined1 in + let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__5_ in + let _endpos = _endpos__2_ in let _v = - let _3 = - let _1 = _1_inlined1 in + let _1 = + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 43082 "src/ocaml/preprocess/parser_raw.ml" + + in let _1 = - let _2 = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 44494 "src/ocaml/preprocess/parser_raw.ml" + let _1 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 43089 "src/ocaml/preprocess/parser_raw.ml" in -# 3681 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 44499 "src/ocaml/preprocess/parser_raw.ml" +# 4675 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 43094 "src/ocaml/preprocess/parser_raw.ml" in -# 3686 "src/ocaml/preprocess/parser_raw.mly" - ( let ty, modes = _1 in - Some ty, modes ) -# 44506 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3330 "src/ocaml/preprocess/parser_raw.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 44516 "src/ocaml/preprocess/parser_raw.ml" +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 43100 "src/ocaml/preprocess/parser_raw.ml" in - let modes0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 44522 "src/ocaml/preprocess/parser_raw.ml" - in ( -# 3344 "src/ocaml/preprocess/parser_raw.mly" - ( let v = _2 in (* PR#7344 *) - let typ, modes1 = _3 in - let t = - Option.map (function - | Pconstraint t -> - Pvc_constraint { locally_abstract_univars = []; typ=t } - | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} - ) typ - in - let modes = modes0 @ modes1 in - (v, _5, t, modes) - ) -# 44538 "src/ocaml/preprocess/parser_raw.ml" +# 3326 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes = _1 in + (v, _2 modes, None, modes) ) +# 43107 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -44549,9 +43118,9 @@ 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 = _4; @@ -44559,9 +43128,9 @@ module Tables = struct 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; @@ -44578,69 +43147,38 @@ module Tables = struct }; }; } = _menhir_stack in - let _5 : (Parsetree.expression) = Obj.magic _5 in + let _2 : (Parsetree.modes -> Parsetree.expression) = Obj.magic _2 in let _4 : unit = Obj.magic _4 in - let _1_inlined2 : (Parsetree.modes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.type_constraint) = Obj.magic _1_inlined1 in - let _1 : (string) = Obj.magic _1 in + let _3 : (Parsetree.modes) = Obj.magic _3 in + let _1_inlined1 : (string) = 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 _endpos = _endpos__2_ in let _v = - let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in - let _1 = - let _2 = - let _1 = _1_inlined1 in - -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 44599 "src/ocaml/preprocess/parser_raw.ml" - - in + let _1 = + 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 -# 3681 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 44605 "src/ocaml/preprocess/parser_raw.ml" +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 43169 "src/ocaml/preprocess/parser_raw.ml" in -# 3686 "src/ocaml/preprocess/parser_raw.mly" - ( let ty, modes = _1 in - Some ty, modes ) -# 44612 "src/ocaml/preprocess/parser_raw.ml" - - in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3330 "src/ocaml/preprocess/parser_raw.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 44622 "src/ocaml/preprocess/parser_raw.ml" +# 3322 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _3) ) +# 43175 "src/ocaml/preprocess/parser_raw.ml" in - let modes0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 44628 "src/ocaml/preprocess/parser_raw.ml" - in ( -# 3344 "src/ocaml/preprocess/parser_raw.mly" - ( let v = _2 in (* PR#7344 *) - let typ, modes1 = _3 in - let t = - Option.map (function - | Pconstraint t -> - Pvc_constraint { locally_abstract_univars = []; typ=t } - | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} - ) typ - in - let modes = modes0 @ modes1 in - (v, _5, t, modes) - ) -# 44644 "src/ocaml/preprocess/parser_raw.ml" +# 3326 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes = _1 in + (v, _2 modes, None, modes) ) +# 43182 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -44655,64 +43193,96 @@ 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 = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { 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 = _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 = _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 _5 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 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__5_ in + let _endpos = _endpos__4_ in let _v = - let _3 = - let _1 = _1_inlined1 in + let _2 = + let _1_inlined1 = _1_inlined2 in + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 43243 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3661 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pconstraint cty, mm ) +# 43251 "src/ocaml/preprocess/parser_raw.ml" + + in -# 3689 "src/ocaml/preprocess/parser_raw.mly" - ( None, _1 ) -# 44695 "src/ocaml/preprocess/parser_raw.ml" +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 43258 "src/ocaml/preprocess/parser_raw.ml" in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3330 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3306 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 44705 "src/ocaml/preprocess/parser_raw.ml" +# 43269 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 4674 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 43275 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 43280 "src/ocaml/preprocess/parser_raw.ml" in - let modes0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 44711 "src/ocaml/preprocess/parser_raw.ml" - in ( -# 3344 "src/ocaml/preprocess/parser_raw.mly" - ( let v = _2 in (* PR#7344 *) - let typ, modes1 = _3 in +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in let t = Option.map (function | Pconstraint t -> @@ -44721,9 +43291,9 @@ module Tables = struct ) typ in let modes = modes0 @ modes1 in - (v, _5, t, modes) + (v, _4, t, modes) ) -# 44727 "src/ocaml/preprocess/parser_raw.ml" +# 43297 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -44738,92 +43308,103 @@ 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 = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { 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 = _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.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 = _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 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _1_inlined2 : (Parsetree.type_constraint) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string) = Obj.magic _1_inlined1 in - let _1 : (Parsetree.modes) = Obj.magic _1 in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.modes) = Obj.magic _2 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 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__5_ in + let _endpos = _endpos__4_ in let _v = - let _3 = - let _1 = _1_inlined2 in + let _2 = + let _1_inlined1 = _1_inlined2 in let _1 = - let _2 = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 44786 "src/ocaml/preprocess/parser_raw.ml" - in + let _2 = + let _1 = _1_inlined1 in + +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 43365 "src/ocaml/preprocess/parser_raw.ml" + + in -# 3681 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 44791 "src/ocaml/preprocess/parser_raw.ml" +# 3661 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pconstraint cty, mm ) +# 43373 "src/ocaml/preprocess/parser_raw.ml" in -# 3686 "src/ocaml/preprocess/parser_raw.mly" +# 3676 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 44798 "src/ocaml/preprocess/parser_raw.ml" +# 43380 "src/ocaml/preprocess/parser_raw.ml" in - 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 - -# 3330 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3306 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 44809 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = +# 43391 "src/ocaml/preprocess/parser_raw.ml" + + in let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 44816 "src/ocaml/preprocess/parser_raw.ml" +# 4674 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 43397 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 44821 "src/ocaml/preprocess/parser_raw.ml" +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 43402 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3344 "src/ocaml/preprocess/parser_raw.mly" - ( let v = _2 in (* PR#7344 *) - let typ, modes1 = _3 in +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in let t = Option.map (function | Pconstraint t -> @@ -44832,9 +43413,9 @@ module Tables = struct ) typ in let modes = modes0 @ modes1 in - (v, _5, t, modes) + (v, _4, t, modes) ) -# 44838 "src/ocaml/preprocess/parser_raw.ml" +# 43419 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -44849,102 +43430,110 @@ 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 = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { 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 = _1_inlined3; - MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; + 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_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_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.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 = _; + 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 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _1_inlined3 : (Parsetree.modes) = Obj.magic _1_inlined3 in - let _1_inlined2 : (Parsetree.type_constraint) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string) = Obj.magic _1_inlined1 in - let _1 : (Parsetree.modes) = Obj.magic _1 in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _3_inlined1 : unit = Obj.magic _3_inlined1 in + let _2 : (Parsetree.core_type) = Obj.magic _2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 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__5_ in + let _endpos = _endpos__4_ in let _v = - let _3 = - let (_1_inlined1, _1) = (_1_inlined3, _1_inlined2) in + let _2 = + let _1_inlined1 = _1_inlined2 in let _1 = - let _2 = + let _4 = let _1 = _1_inlined1 in -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 44906 "src/ocaml/preprocess/parser_raw.ml" +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 43494 "src/ocaml/preprocess/parser_raw.ml" in -# 3681 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 44912 "src/ocaml/preprocess/parser_raw.ml" +# 3664 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _4 in + Pcoerce (Some _2, cty), mm ) +# 43502 "src/ocaml/preprocess/parser_raw.ml" in -# 3686 "src/ocaml/preprocess/parser_raw.mly" +# 3676 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 44919 "src/ocaml/preprocess/parser_raw.ml" +# 43509 "src/ocaml/preprocess/parser_raw.ml" in - 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 - -# 3330 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3306 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 44930 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = +# 43520 "src/ocaml/preprocess/parser_raw.ml" + + in let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 44937 "src/ocaml/preprocess/parser_raw.ml" +# 4674 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 43526 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 44942 "src/ocaml/preprocess/parser_raw.ml" +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 43531 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3344 "src/ocaml/preprocess/parser_raw.mly" - ( let v = _2 in (* PR#7344 *) - let typ, modes1 = _3 in +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in let t = Option.map (function | Pconstraint t -> @@ -44953,9 +43542,9 @@ module Tables = struct ) typ in let modes = modes0 @ modes1 in - (v, _5, t, modes) + (v, _4, t, modes) ) -# 44959 "src/ocaml/preprocess/parser_raw.ml" +# 43548 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -44970,79 +43559,117 @@ 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 = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { 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 = _1_inlined2; - MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_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.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 = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_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 = _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 : (Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let _1_inlined2 : (Parsetree.modes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (string) = Obj.magic _1_inlined1 in - let _1 : (Parsetree.modes) = Obj.magic _1 in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2_inlined1 : (Parsetree.modes) = Obj.magic _2_inlined1 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _3_inlined1 : unit = Obj.magic _3_inlined1 in + let _2 : (Parsetree.core_type) = Obj.magic _2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 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__5_ in + let _endpos = _endpos__4_ in let _v = - let _3 = - let _1 = _1_inlined2 in - -# 3689 "src/ocaml/preprocess/parser_raw.mly" - ( None, _1 ) -# 45017 "src/ocaml/preprocess/parser_raw.ml" - - in 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 + let _1_inlined1 = _1_inlined2 in + let _1 = + let _4 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 43630 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3664 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _4 in + Pcoerce (Some _2, cty), mm ) +# 43638 "src/ocaml/preprocess/parser_raw.ml" + + in -# 3330 "src/ocaml/preprocess/parser_raw.mly" - ( mkpatvar ~loc:_sloc _1 ) -# 45028 "src/ocaml/preprocess/parser_raw.ml" +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 43645 "src/ocaml/preprocess/parser_raw.ml" in - let modes0 = + let _1 = + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 43656 "src/ocaml/preprocess/parser_raw.ml" + + in let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 45035 "src/ocaml/preprocess/parser_raw.ml" +# 4674 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 43662 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 45040 "src/ocaml/preprocess/parser_raw.ml" +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 43667 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3344 "src/ocaml/preprocess/parser_raw.mly" - ( let v = _2 in (* PR#7344 *) - let typ, modes1 = _3 in +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in let t = Option.map (function | Pconstraint t -> @@ -45051,9 +43678,9 @@ module Tables = struct ) typ in let modes = modes0 @ modes1 in - (v, _5, t, modes) + (v, _4, t, modes) ) -# 45057 "src/ocaml/preprocess/parser_raw.ml" +# 43684 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -45068,117 +43695,107 @@ 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 = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; 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 = _3_inlined1; - MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__3_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 = _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 = _; - 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 = _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.expression) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in - let _2 : unit = Obj.magic _2 in - let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let _4 : (Parsetree.expression) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 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__7_ in + let _endpos = _endpos__4_ in let _v = - let modes1 = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 45127 "src/ocaml/preprocess/parser_raw.ml" - in - let _4 = - let _3 = _3_inlined1 in + let _2 = + let _1_inlined1 = _1_inlined2 in let _1 = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 45136 "src/ocaml/preprocess/parser_raw.ml" - in + let _2 = + let _1 = _1_inlined1 in -# 1398 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 45141 "src/ocaml/preprocess/parser_raw.ml" +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 43745 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 45147 "src/ocaml/preprocess/parser_raw.ml" +# 3667 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pcoerce (None, cty), mm ) +# 43753 "src/ocaml/preprocess/parser_raw.ml" in -# 4484 "src/ocaml/preprocess/parser_raw.mly" - ( (_1, _3) ) -# 45153 "src/ocaml/preprocess/parser_raw.ml" +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 43760 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3330 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3306 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 45164 "src/ocaml/preprocess/parser_raw.ml" +# 43771 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 4674 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 43777 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 43782 "src/ocaml/preprocess/parser_raw.ml" in - let modes0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 45170 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc__4_ = (_startpos__4_, _endpos__4_) in ( -# 3357 "src/ocaml/preprocess/parser_raw.mly" - ( let bound_vars, inner_type = _4 in - let ltyp = Ptyp_poly (bound_vars, inner_type) in - let typ = ghtyp ~loc:_loc__4_ ltyp in +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in let modes = modes0 @ modes1 in - (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), - modes) + (v, _4, t, modes) ) -# 45182 "src/ocaml/preprocess/parser_raw.ml" +# 43799 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -45193,127 +43810,114 @@ 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 = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; 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_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 = _; - MenhirLib.EngineTypes.semv = _3_inlined1; - MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__3_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 = _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 = _; - 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 = _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.expression) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in - let _2 : unit = Obj.magic _2 in - let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let _4 : (Parsetree.expression) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.modes) = Obj.magic _2 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 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__7_ in + let _endpos = _endpos__4_ in let _v = - let modes1 = - let _1 = _1_inlined1 in - -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 45261 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let _3 = _3_inlined1 in + let _2 = + let _1_inlined1 = _1_inlined2 in let _1 = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 45271 "src/ocaml/preprocess/parser_raw.ml" - in + let _2 = + let _1 = _1_inlined1 in -# 1398 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 45276 "src/ocaml/preprocess/parser_raw.ml" +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 43867 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 45282 "src/ocaml/preprocess/parser_raw.ml" +# 3667 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pcoerce (None, cty), mm ) +# 43875 "src/ocaml/preprocess/parser_raw.ml" in -# 4484 "src/ocaml/preprocess/parser_raw.mly" - ( (_1, _3) ) -# 45288 "src/ocaml/preprocess/parser_raw.ml" +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 43882 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in - let _2 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3330 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3306 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 45299 "src/ocaml/preprocess/parser_raw.ml" +# 43893 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 4674 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 43899 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 43904 "src/ocaml/preprocess/parser_raw.ml" in - let modes0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 45305 "src/ocaml/preprocess/parser_raw.ml" - in - let _loc__4_ = (_startpos__4_, _endpos__4_) in ( -# 3357 "src/ocaml/preprocess/parser_raw.mly" - ( let bound_vars, inner_type = _4 in - let ltyp = Ptyp_poly (bound_vars, inner_type) in - let typ = ghtyp ~loc:_loc__4_ ltyp in +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in let modes = modes0 @ modes1 in - (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), - modes) + (v, _4, t, modes) ) -# 45317 "src/ocaml/preprocess/parser_raw.ml" +# 43921 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -45328,132 +43932,212 @@ 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 = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; 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 = _3_inlined1; - MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__3_inlined1_; - 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; + 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 _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 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__4_ in + let _v = + let _2 = + let _1 = _1_inlined1 in + +# 3679 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 43972 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 43983 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 4674 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 43989 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 43994 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in + let modes = modes0 @ modes1 in + (v, _4, t, modes) + ) +# 44011 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + 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 = _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 = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + 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 = _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 _7 : (Parsetree.expression) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in - let _2 : unit = Obj.magic _2 in - let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let _4 : (Parsetree.expression) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in + let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in + let _endpos = _endpos__4_ in let _v = - let modes1 = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 45394 "src/ocaml/preprocess/parser_raw.ml" - in - let _4 = - let _3 = _3_inlined1 in + let _2 = + let _1_inlined1 = _1_inlined3 in let _1 = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 45403 "src/ocaml/preprocess/parser_raw.ml" - in + let _2 = + let _1 = _1_inlined1 in -# 1398 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 45408 "src/ocaml/preprocess/parser_raw.ml" +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 44079 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 45414 "src/ocaml/preprocess/parser_raw.ml" +# 3661 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pconstraint cty, mm ) +# 44087 "src/ocaml/preprocess/parser_raw.ml" in -# 4484 "src/ocaml/preprocess/parser_raw.mly" - ( (_1, _3) ) -# 45420 "src/ocaml/preprocess/parser_raw.ml" +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 44094 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in - 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 - -# 3330 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 45432 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 44106 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45439 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 44113 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 45444 "src/ocaml/preprocess/parser_raw.ml" +# 44118 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 44124 "src/ocaml/preprocess/parser_raw.ml" in - let _loc__4_ = (_startpos__4_, _endpos__4_) in ( -# 3357 "src/ocaml/preprocess/parser_raw.mly" - ( let bound_vars, inner_type = _4 in - let ltyp = Ptyp_poly (bound_vars, inner_type) in - let typ = ghtyp ~loc:_loc__4_ ltyp in +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in let modes = modes0 @ modes1 in - (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), - modes) + (v, _4, t, modes) ) -# 45457 "src/ocaml/preprocess/parser_raw.ml" +# 44141 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -45468,52 +44152,40 @@ 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 = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; 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 = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3_inlined1; - MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__3_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 = _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 = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + 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 = _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; }; }; }; @@ -45521,89 +44193,88 @@ module Tables = struct }; }; } = _menhir_stack in - let _7 : (Parsetree.expression) = Obj.magic _7 in - let _6 : unit = Obj.magic _6 in - let _1_inlined2 : (Parsetree.modes) = Obj.magic _1_inlined2 in - let _3_inlined1 : (Parsetree.core_type) = Obj.magic _3_inlined1 in - let _2 : unit = Obj.magic _2 in - let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let _4 : (Parsetree.expression) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.modes) = Obj.magic _2 in + let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _1_inlined2 : unit = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__7_ in + let _endpos = _endpos__4_ in let _v = - let modes1 = - let _1 = _1_inlined2 in - -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 45543 "src/ocaml/preprocess/parser_raw.ml" - - in - let _4 = - let _3 = _3_inlined1 in + let _2 = + let _1_inlined1 = _1_inlined3 in let _1 = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 45553 "src/ocaml/preprocess/parser_raw.ml" - in + let _2 = + let _1 = _1_inlined1 in -# 1398 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 45558 "src/ocaml/preprocess/parser_raw.ml" +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 44216 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 45564 "src/ocaml/preprocess/parser_raw.ml" +# 3661 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pconstraint cty, mm ) +# 44224 "src/ocaml/preprocess/parser_raw.ml" in -# 4484 "src/ocaml/preprocess/parser_raw.mly" - ( (_1, _3) ) -# 45570 "src/ocaml/preprocess/parser_raw.ml" +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 44231 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos__4_, _startpos__4_) = (_endpos__3_inlined1_, _startpos_xs_) in - 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 - -# 3330 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 45582 "src/ocaml/preprocess/parser_raw.ml" - - in - let modes0 = - let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 44243 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 45589 "src/ocaml/preprocess/parser_raw.ml" - in - -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 44250 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 45594 "src/ocaml/preprocess/parser_raw.ml" +# 44255 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 44261 "src/ocaml/preprocess/parser_raw.ml" in - let _loc__4_ = (_startpos__4_, _endpos__4_) in ( -# 3357 "src/ocaml/preprocess/parser_raw.mly" - ( let bound_vars, inner_type = _4 in - let ltyp = Ptyp_poly (bound_vars, inner_type) in - let typ = ghtyp ~loc:_loc__4_ ltyp in +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in let modes = modes0 @ modes1 in - (_2, _7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), - modes) + (v, _4, t, modes) ) -# 45607 "src/ocaml/preprocess/parser_raw.ml" +# 44278 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -45618,39 +44289,39 @@ module Tables = struct 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.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _8; - MenhirLib.EngineTypes.startp = _startpos__8_; - MenhirLib.EngineTypes.endp = _endpos__8_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + 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.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + 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.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 = _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; @@ -45665,46 +44336,89 @@ module Tables = struct }; }; } = _menhir_stack in - let _9 : (Parsetree.expression) = Obj.magic _9 in - let _8 : unit = Obj.magic _8 in - let _6 : (Parsetree.core_type) = Obj.magic _6 in - let _5 : unit = Obj.magic _5 in - let _4 : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic _4 in + let _4 : (Parsetree.expression) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (string) = Obj.magic _1 in + let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _3_inlined1 : unit = Obj.magic _3_inlined1 in + let _2 : (Parsetree.core_type) = Obj.magic _2 in + let _1_inlined2 : unit = Obj.magic _1_inlined2 in + let _1_inlined1 : (string) = Obj.magic _1_inlined1 in + let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__9_ in + let _endpos = _endpos__4_ in let _v = - let modes = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 45684 "src/ocaml/preprocess/parser_raw.ml" - in - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let _2 = + let _1_inlined1 = _1_inlined3 in + let _1 = + let _4 = + let _1 = _1_inlined1 in + +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 44360 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3664 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _4 in + Pcoerce (Some _2, cty), mm ) +# 44368 "src/ocaml/preprocess/parser_raw.ml" + + in -# 3330 "src/ocaml/preprocess/parser_raw.mly" +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 44375 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 45693 "src/ocaml/preprocess/parser_raw.ml" +# 44387 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 44394 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4675 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 44399 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 44405 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos__9_ in - let _symbolstartpos = _startpos__1_ in - let _loc__6_ = (_startpos__6_, _endpos__6_) in - let _sloc = (_symbolstartpos, _endpos) in ( -# 3380 "src/ocaml/preprocess/parser_raw.mly" - ( let exp, poly = - wrap_type_annotation ~loc:_sloc ~modes:[] ~typloc:_loc__6_ _4 _6 _9 +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ in - let loc = (_startpos__1_, _endpos__6_) in - (ghpat_with_modes ~loc ~pat:_1 ~cty:(Some poly) ~modes:[], exp, None, modes) - ) -# 45708 "src/ocaml/preprocess/parser_raw.ml" + let modes = modes0 @ modes1 in + (v, _4, t, modes) + ) +# 44422 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -45719,44 +44433,44 @@ module Tables = struct 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.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _8; - MenhirLib.EngineTypes.startp = _startpos__8_; - MenhirLib.EngineTypes.endp = _endpos__8_; + 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 = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _6; - MenhirLib.EngineTypes.startp = _startpos__6_; - MenhirLib.EngineTypes.endp = _endpos__6_; + 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.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + 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.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 = _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; @@ -45772,50 +44486,90 @@ module Tables = struct }; }; } = _menhir_stack in - let _9 : (Parsetree.expression) = Obj.magic _9 in - let _8 : unit = Obj.magic _8 in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let _6 : (Parsetree.core_type) = Obj.magic _6 in - let _5 : unit = Obj.magic _5 in - let _4 : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic _4 in + let _4 : (Parsetree.expression) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (string) = Obj.magic _1 in + let _2_inlined1 : (Parsetree.modes) = Obj.magic _2_inlined1 in + let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _3_inlined1 : unit = Obj.magic _3_inlined1 in + let _2 : (Parsetree.core_type) = Obj.magic _2 in + let _1_inlined2 : unit = Obj.magic _1_inlined2 in + let _1_inlined1 : (string) = Obj.magic _1_inlined1 in + let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in - let _endpos = _endpos__9_ in + let _endpos = _endpos__4_ in let _v = - let modes = - let _1 = _1_inlined1 in + let _2 = + let _1_inlined1 = _1_inlined3 in + let _1 = + let _4 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 44511 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3664 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _4 in + Pcoerce (Some _2, cty), mm ) +# 44519 "src/ocaml/preprocess/parser_raw.ml" + + in -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 45794 "src/ocaml/preprocess/parser_raw.ml" +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 44526 "src/ocaml/preprocess/parser_raw.ml" in let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 3330 "src/ocaml/preprocess/parser_raw.mly" + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 45804 "src/ocaml/preprocess/parser_raw.ml" +# 44538 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 44545 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4675 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 44550 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 44556 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos__9_ in - let _symbolstartpos = _startpos__1_ in - let _loc__6_ = (_startpos__6_, _endpos__6_) in - let _sloc = (_symbolstartpos, _endpos) in ( -# 3380 "src/ocaml/preprocess/parser_raw.mly" - ( let exp, poly = - wrap_type_annotation ~loc:_sloc ~modes:[] ~typloc:_loc__6_ _4 _6 _9 +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ in - let loc = (_startpos__1_, _endpos__6_) in - (ghpat_with_modes ~loc ~pat:_1 ~cty:(Some poly) ~modes:[], exp, None, modes) - ) -# 45819 "src/ocaml/preprocess/parser_raw.ml" + let modes = modes0 @ modes1 in + (v, _4, t, modes) + ) +# 44573 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -45826,46 +44580,6 @@ module Tables = struct 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 : (Parsetree.expression) = Obj.magic _3 in - let _2 : unit = Obj.magic _2 in - let _1 : (Parsetree.pattern) = 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 * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes) = -# 3387 "src/ocaml/preprocess/parser_raw.mly" - ( (_1, _3, None, []) ) -# 45861 "src/ocaml/preprocess/parser_raw.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 { @@ -45880,42 +44594,112 @@ 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 = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; 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 _4 : (Parsetree.expression) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let _1 : (Parsetree.pattern) = Obj.magic _1 in + let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _1_inlined2 : unit = Obj.magic _1_inlined2 in + let _1_inlined1 : (string) = Obj.magic _1_inlined1 in + let _1 : (Parsetree.modes) = 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 = let _2 = - let _1 = _1_inlined1 in + let _1_inlined1 = _1_inlined3 in + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 44641 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3667 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pcoerce (None, cty), mm ) +# 44649 "src/ocaml/preprocess/parser_raw.ml" + + in -# 3333 "src/ocaml/preprocess/parser_raw.mly" - (None, _1) -# 45910 "src/ocaml/preprocess/parser_raw.ml" +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 44656 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 44668 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 44675 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4675 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 44680 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 44686 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3389 "src/ocaml/preprocess/parser_raw.mly" - ( - let pvc, modes = _2 in - (_1, _4, pvc, modes) +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in + let modes = modes0 @ modes1 in + (v, _4, t, modes) ) -# 45919 "src/ocaml/preprocess/parser_raw.ml" +# 44703 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -45945,15 +44729,27 @@ module Tables = struct 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.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; 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; + }; + }; }; }; }; @@ -45961,34 +44757,86 @@ module Tables = struct } = _menhir_stack in let _4 : (Parsetree.expression) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.core_type) = Obj.magic _2 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _1 : (Parsetree.pattern) = Obj.magic _1 in + let _2 : (Parsetree.modes) = Obj.magic _2 in + let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _1_inlined2 : unit = Obj.magic _1_inlined2 in + let _1_inlined1 : (string) = Obj.magic _1_inlined1 in + let _1 : (Parsetree.modes) = 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 = let _2 = - let _3 = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 45976 "src/ocaml/preprocess/parser_raw.ml" - in + let _1_inlined1 = _1_inlined3 in + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 44778 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3667 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pcoerce (None, cty), mm ) +# 44786 "src/ocaml/preprocess/parser_raw.ml" + + in -# 3334 "src/ocaml/preprocess/parser_raw.mly" - ( - Some(Pvc_constraint { locally_abstract_univars=[]; typ=_2 }), _3 - ) -# 45983 "src/ocaml/preprocess/parser_raw.ml" +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 44793 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 44805 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 44812 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4675 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 44817 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 44823 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3389 "src/ocaml/preprocess/parser_raw.mly" - ( - let pvc, modes = _2 in - (_1, _4, pvc, modes) +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in + let modes = modes0 @ modes1 in + (v, _4, t, modes) ) -# 45992 "src/ocaml/preprocess/parser_raw.ml" +# 44840 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -46018,21 +44866,15 @@ module Tables = struct 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 = _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 = _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; }; }; }; @@ -46041,38 +44883,65 @@ module Tables = struct let _4 : (Parsetree.expression) = Obj.magic _4 in let _3 : unit = Obj.magic _3 in let _1_inlined2 : (Parsetree.modes) = Obj.magic _1_inlined2 in - let _2 : (Parsetree.core_type) = Obj.magic _2 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in - let _1 : (Parsetree.pattern) = Obj.magic _1 in + let _1_inlined1 : (string) = Obj.magic _1_inlined1 in + let _1 : (Parsetree.modes) = 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 = let _2 = - let _1_inlined1 = _1_inlined2 in - let _3 = - let _1 = _1_inlined1 in + let _1 = _1_inlined2 in + +# 3679 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 44898 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 44910 "src/ocaml/preprocess/parser_raw.ml" -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 46059 "src/ocaml/preprocess/parser_raw.ml" + in + let _1 = + let _1 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 44917 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4675 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 44922 "src/ocaml/preprocess/parser_raw.ml" in -# 3334 "src/ocaml/preprocess/parser_raw.mly" - ( - Some(Pvc_constraint { locally_abstract_univars=[]; typ=_2 }), _3 - ) -# 46067 "src/ocaml/preprocess/parser_raw.ml" +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 44928 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3389 "src/ocaml/preprocess/parser_raw.mly" - ( - let pvc, modes = _2 in - (_1, _4, pvc, modes) +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in + let modes = modes0 @ modes1 in + (v, _4, t, modes) ) -# 46076 "src/ocaml/preprocess/parser_raw.ml" +# 44945 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -46087,52 +44956,125 @@ 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 = _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.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_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 = _4_inlined1; + MenhirLib.EngineTypes.startp = _startpos__4_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__4_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_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 = _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.modes -> Parsetree.expression) = Obj.magic _3 in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _1_inlined2 : unit = Obj.magic _1_inlined2 in + let _4_inlined1 : unit = Obj.magic _4_inlined1 in + let _3_inlined1 : (Parsetree.modes) = Obj.magic _3_inlined1 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in - let _1 : (Parsetree.modes) = Obj.magic _1 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 _endpos = _endpos__4_ in let _v = 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 + let _1_inlined1 = _1_inlined3 in + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 45027 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3661 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pconstraint cty, mm ) +# 45035 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 45042 "src/ocaml/preprocess/parser_raw.ml" -# 3330 "src/ocaml/preprocess/parser_raw.mly" + in + let _1 = + let _3 = _3_inlined1 in + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 46123 "src/ocaml/preprocess/parser_raw.ml" +# 45055 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3322 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _3) ) +# 45061 "src/ocaml/preprocess/parser_raw.ml" in - let modes = -# 4658 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46129 "src/ocaml/preprocess/parser_raw.ml" - in ( -# 3394 "src/ocaml/preprocess/parser_raw.mly" - ( - (_2, _3 modes, None, modes) +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in + let modes = modes0 @ modes1 in + (v, _4, t, modes) ) -# 46136 "src/ocaml/preprocess/parser_raw.ml" +# 45078 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -46147,61 +45089,132 @@ 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 = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { 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 = modes; - MenhirLib.EngineTypes.startp = _startpos_modes_; - MenhirLib.EngineTypes.endp = _endpos_modes_; + 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.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; 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 = _4_inlined1; + MenhirLib.EngineTypes.startp = _startpos__4_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__4_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_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 = _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 : (Parsetree.modes -> Parsetree.expression) = Obj.magic _5 in - let _4 : unit = Obj.magic _4 in - let modes : (Parsetree.modes) = Obj.magic modes in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.modes) = Obj.magic _2 in + let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _1_inlined2 : unit = Obj.magic _1_inlined2 in + let _4_inlined1 : unit = Obj.magic _4_inlined1 in + let _3_inlined1 : (Parsetree.modes) = Obj.magic _3_inlined1 in let _1_inlined1 : (string) = 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 _endpos = _endpos__4_ in let _v = 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 + let _1_inlined1 = _1_inlined3 in + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 45167 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3661 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pconstraint cty, mm ) +# 45175 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 45182 "src/ocaml/preprocess/parser_raw.ml" -# 3330 "src/ocaml/preprocess/parser_raw.mly" + in + let _1 = + let _3 = _3_inlined1 in + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 46197 "src/ocaml/preprocess/parser_raw.ml" +# 45195 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3322 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _3) ) +# 45201 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3398 "src/ocaml/preprocess/parser_raw.mly" - ( - (_2, _5 modes, None, modes) +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in + let modes = modes0 @ modes1 in + (v, _4, t, modes) ) -# 46205 "src/ocaml/preprocess/parser_raw.ml" +# 45218 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.value_constraint option * Parsetree.modes)) in @@ -46216,87 +45229,141 @@ module Tables = struct 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.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = body; - MenhirLib.EngineTypes.startp = _startpos_body_; - MenhirLib.EngineTypes.endp = _endpos_body_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = rec_flag; - MenhirLib.EngineTypes.startp = _startpos_rec_flag_; - MenhirLib.EngineTypes.endp = _endpos_rec_flag_; + 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_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _3_inlined2; + MenhirLib.EngineTypes.startp = _startpos__3_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__3_inlined2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = ext; - MenhirLib.EngineTypes.startp = _startpos_ext_; - MenhirLib.EngineTypes.endp = _endpos_ext_; + 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_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let body : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes * bool) = Obj.magic body in - let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let ext : (string Location.loc option) = Obj.magic ext in + 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 = _4_inlined1; + MenhirLib.EngineTypes.startp = _startpos__4_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__4_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_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 = _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 _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _3_inlined2 : unit = Obj.magic _3_inlined2 in + let _2 : (Parsetree.core_type) = Obj.magic _2 in + let _1_inlined2 : unit = Obj.magic _1_inlined2 in + let _4_inlined1 : unit = Obj.magic _4_inlined1 in + let _3_inlined1 : (Parsetree.modes) = Obj.magic _3_inlined1 in + let _1_inlined1 : (string) = 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 _endpos = _endpos__4_ in let _v = - let _1 = - let attrs2 = - let _1 = _1_inlined2 in + let _2 = + let _1_inlined1 = _1_inlined3 in + let _1 = + let _4 = + let _1 = _1_inlined1 in + +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 45314 "src/ocaml/preprocess/parser_raw.ml" + + in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46272 "src/ocaml/preprocess/parser_raw.ml" +# 3664 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _4 in + Pcoerce (Some _2, cty), mm ) +# 45322 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in + +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 45329 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _3 = _3_inlined1 in + 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 -# 5409 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46281 "src/ocaml/preprocess/parser_raw.ml" +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 45342 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 3427 "src/ocaml/preprocess/parser_raw.mly" - ( - let attrs = attrs1 @ attrs2 in - mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) - ) -# 46293 "src/ocaml/preprocess/parser_raw.ml" +# 3322 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _3) ) +# 45348 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3417 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46299 "src/ocaml/preprocess/parser_raw.ml" - : (Parser_types.let_bindings)) +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in + let modes = modes0 @ modes1 in + (v, _4, t, modes) + ) +# 45365 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46309,117 +45376,148 @@ 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.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 : (Parser_types.let_binding) = Obj.magic _2 in - let _1 : (Parser_types.let_bindings) = 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 : (Parser_types.let_bindings) = -# 3418 "src/ocaml/preprocess/parser_raw.mly" - ( addlb _1 _2 ) -# 46332 "src/ocaml/preprocess/parser_raw.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.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = body; - MenhirLib.EngineTypes.startp = _startpos_body_; - MenhirLib.EngineTypes.endp = _endpos_body_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = rec_flag; - MenhirLib.EngineTypes.startp = _startpos_rec_flag_; - MenhirLib.EngineTypes.endp = _endpos_rec_flag_; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_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.semv = _1_inlined3; + MenhirLib.EngineTypes.startp = _startpos__1_inlined3_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined3_; 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 = _3_inlined2; + MenhirLib.EngineTypes.startp = _startpos__3_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__3_inlined2_; + 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_inlined2; + MenhirLib.EngineTypes.startp = _startpos__1_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined2_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _4_inlined1; + MenhirLib.EngineTypes.startp = _startpos__4_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__4_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_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 = _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 body : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes * bool) = Obj.magic body in - let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2_inlined1 : (Parsetree.modes) = Obj.magic _2_inlined1 in + let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _3_inlined2 : unit = Obj.magic _3_inlined2 in + let _2 : (Parsetree.core_type) = Obj.magic _2 in + let _1_inlined2 : unit = Obj.magic _1_inlined2 in + let _4_inlined1 : unit = Obj.magic _4_inlined1 in + let _3_inlined1 : (Parsetree.modes) = Obj.magic _3_inlined1 in + let _1_inlined1 : (string) = 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 _endpos = _endpos__4_ in let _v = - let _1 = - let attrs2 = - let _1 = _1_inlined2 in + let _2 = + let _1_inlined1 = _1_inlined3 in + let _1 = + let _4 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 45468 "src/ocaml/preprocess/parser_raw.ml" + + in -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46390 "src/ocaml/preprocess/parser_raw.ml" +# 3664 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _4 in + Pcoerce (Some _2, cty), mm ) +# 45476 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos_attrs2_ = _endpos__1_inlined2_ in - let attrs1 = - let _1 = _1_inlined1 in + +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 45483 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _3 = _3_inlined1 in + 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 -# 5409 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46399 "src/ocaml/preprocess/parser_raw.ml" +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 45496 "src/ocaml/preprocess/parser_raw.ml" in - let ext = -# 5416 "src/ocaml/preprocess/parser_raw.mly" - ( None ) -# 46405 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 3427 "src/ocaml/preprocess/parser_raw.mly" - ( - let attrs = attrs1 @ attrs2 in - mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) - ) -# 46416 "src/ocaml/preprocess/parser_raw.ml" +# 3322 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _3) ) +# 45502 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3417 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46422 "src/ocaml/preprocess/parser_raw.ml" - : (Parser_types.let_bindings)) +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in + let modes = modes0 @ modes1 in + (v, _4, t, modes) + ) +# 45519 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46432,19 +45530,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 = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = body; - MenhirLib.EngineTypes.startp = _startpos_body_; - MenhirLib.EngineTypes.endp = _endpos_body_; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = rec_flag; - MenhirLib.EngineTypes.startp = _startpos_rec_flag_; - MenhirLib.EngineTypes.endp = _endpos_rec_flag_; + 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; @@ -46452,20 +45550,26 @@ module Tables = struct 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 = _4_inlined1; + MenhirLib.EngineTypes.startp = _startpos__4_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__4_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.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_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 = _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; + }; }; }; }; @@ -46473,64 +45577,80 @@ module Tables = struct }; }; } = _menhir_stack in - let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in - let body : (Parsetree.pattern * Parsetree.expression * - Parsetree.value_constraint option * Parsetree.modes * bool) = Obj.magic body in - let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in - let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in - let _2 : (string Location.loc) = Obj.magic _2 in - let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _1_inlined2 : unit = Obj.magic _1_inlined2 in + let _4_inlined1 : unit = Obj.magic _4_inlined1 in + let _3_inlined1 : (Parsetree.modes) = Obj.magic _3_inlined1 in + let _1_inlined1 : (string) = 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 _endpos = _endpos__4_ in let _v = - let _1 = - let attrs2 = - let _1 = _1_inlined3 in - -# 5405 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46495 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos_attrs2_ = _endpos__1_inlined3_ in - let attrs1 = - let _1 = _1_inlined2 in + let _2 = + let _1_inlined1 = _1_inlined3 in + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 45601 "src/ocaml/preprocess/parser_raw.ml" + + in -# 5409 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46504 "src/ocaml/preprocess/parser_raw.ml" +# 3667 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pcoerce (None, cty), mm ) +# 45609 "src/ocaml/preprocess/parser_raw.ml" in - let ext = - let _startpos__1_ = _startpos__1_inlined1_ in - let _endpos = _endpos__2_ in - let _startpos = _startpos__1_ in - let _loc = (_startpos, _endpos) in + +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 45616 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _3 = _3_inlined1 in + 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 -# 5418 "src/ocaml/preprocess/parser_raw.mly" - ( not_expecting _loc "extension"; None ) -# 46515 "src/ocaml/preprocess/parser_raw.ml" +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 45629 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos_attrs2_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in -# 3427 "src/ocaml/preprocess/parser_raw.mly" - ( - let attrs = attrs1 @ attrs2 in - mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) - ) -# 46527 "src/ocaml/preprocess/parser_raw.ml" +# 3322 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _3) ) +# 45635 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3417 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46533 "src/ocaml/preprocess/parser_raw.ml" - : (Parser_types.let_bindings)) +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in + let modes = modes0 @ modes1 in + (v, _4, t, modes) + ) +# 45652 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46543,63 +45663,134 @@ 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 = _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 = _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_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 = _4_inlined1; + MenhirLib.EngineTypes.startp = _startpos__4_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__4_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_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 = _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 : (Parser_types.let_binding) = Obj.magic _2 in - let _1 : (Parser_types.let_bindings) = Obj.magic _1 in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.modes) = Obj.magic _2 in + let _1_inlined3 : (Parsetree.core_type) = Obj.magic _1_inlined3 in + let _1_inlined2 : unit = Obj.magic _1_inlined2 in + let _4_inlined1 : unit = Obj.magic _4_inlined1 in + let _3_inlined1 : (Parsetree.modes) = Obj.magic _3_inlined1 in + let _1_inlined1 : (string) = 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__2_ in - let _v : (Parser_types.let_bindings) = -# 3418 "src/ocaml/preprocess/parser_raw.mly" - ( addlb _1 _2 ) -# 46566 "src/ocaml/preprocess/parser_raw.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 = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - MenhirLib.EngineTypes.next = _menhir_stack; - } = _menhir_stack in - let pat : (Parsetree.pattern) = Obj.magic pat in - let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_pat_ in - let _endpos = _endpos_pat_ in + let _endpos = _endpos__4_ in let _v = - let modes = -# 4681 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 46592 "src/ocaml/preprocess/parser_raw.ml" - in - let x = -# 2891 "src/ocaml/preprocess/parser_raw.mly" - ( pat, None ) -# 46597 "src/ocaml/preprocess/parser_raw.ml" - in + let _2 = + let _1_inlined1 = _1_inlined3 in + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 45741 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3667 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pcoerce (None, cty), mm ) +# 45749 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 45756 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _3 = _3_inlined1 in + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 45769 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3322 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _3) ) +# 45775 "src/ocaml/preprocess/parser_raw.ml" + + in ( -# 2864 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty = x in pat, cty, modes ) -# 46602 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in + let modes = modes0 @ modes1 in + (v, _4, t, modes) + ) +# 45792 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46612,38 +45803,1333 @@ 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 = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - MenhirLib.EngineTypes.next = _menhir_stack; - }; - } = _menhir_stack in - let _1 : (Parsetree.modes) = Obj.magic _1 in - let pat : (Parsetree.pattern) = Obj.magic pat in + 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 = _4_inlined1; + MenhirLib.EngineTypes.startp = _startpos__4_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__4_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_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 = _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 _1_inlined2 : (Parsetree.modes) = Obj.magic _1_inlined2 in + let _4_inlined1 : unit = Obj.magic _4_inlined1 in + let _3_inlined1 : (Parsetree.modes) = Obj.magic _3_inlined1 in + let _1_inlined1 : (string) = 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 = + let _2 = + let _1 = _1_inlined2 in + +# 3679 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 45864 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _3 = _3_inlined1 in + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 45877 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3322 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _3) ) +# 45883 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3331 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _2 in + let t = + Option.map (function + | Pconstraint t -> + Pvc_constraint { locally_abstract_univars = []; typ=t } + | Pcoerce (ground, coercion) -> Pvc_coercion { ground; coercion} + ) typ + in + let modes = modes0 @ modes1 in + (v, _4, t, modes) + ) +# 45900 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + 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_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + 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 _5 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.core_type) = Obj.magic _3 in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs 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__5_ in + let _v = + let _3 = + let _1 = + let _1 = + let _1 = + let _1 = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 45976 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1410 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 45981 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4454 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 45987 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4458 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 45993 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4462 "src/ocaml/preprocess/parser_raw.mly" + ( let bound_vars, inner_type = _1 in + mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) +# 46004 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4479 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 46010 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4501 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 46016 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 46027 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 4674 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 46033 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 46038 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3344 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _3 in + let modes = modes0 @ modes1 in + (v, _5, Some (Pvc_constraint { locally_abstract_univars = []; typ }), + modes) + ) +# 46049 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + 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 = _2_inlined2; + MenhirLib.EngineTypes.startp = _startpos__2_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__2_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 = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + 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 _5 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _2_inlined2 : (Parsetree.modes) = Obj.magic _2_inlined2 in + let _3 : (Parsetree.core_type) = Obj.magic _3 in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs 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__5_ in + let _v = + let _3 = + let _2 = _2_inlined2 in + let _1 = + let _1 = + let _1 = + let _1 = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 46133 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1410 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 46138 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4454 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 46144 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4458 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 46150 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4462 "src/ocaml/preprocess/parser_raw.mly" + ( let bound_vars, inner_type = _1 in + mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) +# 46161 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4484 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 46167 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4502 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 46173 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 46184 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 4674 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 46190 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 46195 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3344 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _3 in + let modes = modes0 @ modes1 in + (v, _5, Some (Pvc_constraint { locally_abstract_univars = []; typ }), + modes) + ) +# 46206 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + 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_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + 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 = _; + 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 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.core_type) = Obj.magic _3 in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let _2 : unit = Obj.magic _2 in + let _1_inlined1 : (string) = Obj.magic _1_inlined1 in + let _1 : (Parsetree.modes) = 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 = + let _3 = + let _1 = + let _1 = + let _1 = + let _1 = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 46289 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1410 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 46294 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4454 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 46300 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4458 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 46306 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4462 "src/ocaml/preprocess/parser_raw.mly" + ( let bound_vars, inner_type = _1 in + mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) +# 46317 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4479 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 46323 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4501 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 46329 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 46341 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 46348 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4675 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 46353 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 46359 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3344 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _3 in + let modes = modes0 @ modes1 in + (v, _5, Some (Pvc_constraint { locally_abstract_univars = []; typ }), + modes) + ) +# 46370 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + 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 = _2_inlined2; + MenhirLib.EngineTypes.startp = _startpos__2_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__2_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 = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + 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 = _; + 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 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _2_inlined2 : (Parsetree.modes) = Obj.magic _2_inlined2 in + let _3 : (Parsetree.core_type) = Obj.magic _3 in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let _2 : unit = Obj.magic _2 in + let _1_inlined1 : (string) = Obj.magic _1_inlined1 in + let _1 : (Parsetree.modes) = 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 = + let _3 = + let _2 = _2_inlined2 in + let _1 = + let _1 = + let _1 = + let _1 = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 46461 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1410 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 46466 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4454 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 46472 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4458 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 46478 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4462 "src/ocaml/preprocess/parser_raw.mly" + ( let bound_vars, inner_type = _1 in + mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) +# 46489 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4484 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 46495 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4502 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 46501 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 46513 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 46520 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4675 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 46525 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 46531 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3344 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _3 in + let modes = modes0 @ modes1 in + (v, _5, Some (Pvc_constraint { locally_abstract_univars = []; typ }), + modes) + ) +# 46542 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + 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_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + 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 = _; + MenhirLib.EngineTypes.semv = _4_inlined1; + MenhirLib.EngineTypes.startp = _startpos__4_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__4_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_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 = _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 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _3 : (Parsetree.core_type) = Obj.magic _3 in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let _2 : unit = Obj.magic _2 in + let _4_inlined1 : unit = Obj.magic _4_inlined1 in + let _3_inlined1 : (Parsetree.modes) = Obj.magic _3_inlined1 in + let _1_inlined1 : (string) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_pat_ in - let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _endpos = _endpos__5_ in let _v = - let modes = -# 4682 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 46636 "src/ocaml/preprocess/parser_raw.ml" + let _3 = + let _1 = + let _1 = + let _1 = + let _1 = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 46639 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1410 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 46644 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4454 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 46650 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4458 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 46656 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4462 "src/ocaml/preprocess/parser_raw.mly" + ( let bound_vars, inner_type = _1 in + mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) +# 46667 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4479 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 46673 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4501 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 46679 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _3 = _3_inlined1 in + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 46692 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3322 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _3) ) +# 46698 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3344 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _3 in + let modes = modes0 @ modes1 in + (v, _5, Some (Pvc_constraint { locally_abstract_univars = []; typ }), + modes) + ) +# 46709 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + 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 = _2_inlined2; + MenhirLib.EngineTypes.startp = _startpos__2_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__2_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 = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + 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 = _; + MenhirLib.EngineTypes.semv = _4_inlined1; + MenhirLib.EngineTypes.startp = _startpos__4_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__4_inlined1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_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 = _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 : (Parsetree.expression) = Obj.magic _5 in + let _4 : unit = Obj.magic _4 in + let _2_inlined2 : (Parsetree.modes) = Obj.magic _2_inlined2 in + let _3 : (Parsetree.core_type) = Obj.magic _3 in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let _2 : unit = Obj.magic _2 in + let _4_inlined1 : unit = Obj.magic _4_inlined1 in + let _3_inlined1 : (Parsetree.modes) = Obj.magic _3_inlined1 in + let _1_inlined1 : (string) = 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 = + let _3 = + let _2 = _2_inlined2 in + let _1 = + let _1 = + let _1 = + let _1 = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 46814 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1410 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 46819 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4454 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 46825 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4458 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 46831 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4462 "src/ocaml/preprocess/parser_raw.mly" + ( let bound_vars, inner_type = _1 in + mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) +# 46842 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4484 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 46848 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4502 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 46854 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _3 = _3_inlined1 in + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 46867 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3322 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _3) ) +# 46873 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3344 "src/ocaml/preprocess/parser_raw.mly" + ( let v, modes0 = _1 in + let typ, modes1 = _3 in + let modes = modes0 @ modes1 in + (v, _5, Some (Pvc_constraint { locally_abstract_univars = []; typ }), + modes) + ) +# 46884 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + 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 = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + 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 = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; + 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 = ntys; + MenhirLib.EngineTypes.startp = _startpos_ntys_; + MenhirLib.EngineTypes.endp = _endpos_ntys_; + 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 e : (Parsetree.expression) = Obj.magic e in + let _8 : unit = Obj.magic _8 in + let cty : (Parsetree.core_type) = Obj.magic cty in + let _5 : unit = Obj.magic _5 in + let ntys : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic ntys in + let _3 : unit = 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_e_ in + let _v = + let modes1 = +# 3316 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 46961 "src/ocaml/preprocess/parser_raw.ml" in - let x = -# 2891 "src/ocaml/preprocess/parser_raw.mly" - ( pat, None ) -# 46641 "src/ocaml/preprocess/parser_raw.ml" + let _endpos_modes1_ = _endpos_cty_ in + let _1 = + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 46972 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 4674 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 46978 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 46983 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e_ in + let _symbolstartpos = _startpos__1_ in + let _loc_cty_ = (_startpos_cty_, _endpos_cty_) in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3367 "src/ocaml/preprocess/parser_raw.mly" + ( let exp, poly = + wrap_type_annotation ~loc:_sloc ~modes:[] ~typloc:_loc_cty_ ntys cty e + in + let v, modes0 = _1 in + let modes = modes0 @ modes1 in + let loc = (_startpos__1_, _endpos_modes1_) in + (ghpat_with_modes ~loc ~pat:v ~cty:(Some poly) ~modes:[], exp, None, modes) + ) +# 47000 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + 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 = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; + 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 = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; + 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 = ntys; + MenhirLib.EngineTypes.startp = _startpos_ntys_; + MenhirLib.EngineTypes.endp = _endpos_ntys_; + 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 e : (Parsetree.expression) = Obj.magic e in + let _8 : unit = Obj.magic _8 in + let cty : (Parsetree.core_type) = Obj.magic cty in + let _5 : unit = Obj.magic _5 in + let ntys : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic ntys in + let _3 : unit = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1_inlined1 : (string) = Obj.magic _1_inlined1 in + let _1 : (Parsetree.modes) = 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 = + let modes1 = +# 3316 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 47084 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos_modes1_ = _endpos_cty_ in + let _1 = + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 47096 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _1 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 47103 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4675 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 47108 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 47114 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e_ in + let _symbolstartpos = _startpos__1_ in + let _loc_cty_ = (_startpos_cty_, _endpos_cty_) in + let _sloc = (_symbolstartpos, _endpos) in ( -# 2864 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty = x in pat, cty, modes ) -# 46646 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) +# 3367 "src/ocaml/preprocess/parser_raw.mly" + ( let exp, poly = + wrap_type_annotation ~loc:_sloc ~modes:[] ~typloc:_loc_cty_ ntys cty e + in + let v, modes0 = _1 in + let modes = modes0 @ modes1 in + let loc = (_startpos__1_, _endpos_modes1_) in + (ghpat_with_modes ~loc ~pat:v ~cty:(Some poly) ~modes:[], exp, None, modes) + ) +# 47131 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46656,45 +47142,128 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; + 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 = ntys; + MenhirLib.EngineTypes.startp = _startpos_ntys_; + MenhirLib.EngineTypes.endp = _endpos_ntys_; + 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 = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_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 = _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.expression) = Obj.magic e in + let _8 : unit = Obj.magic _8 in let cty : (Parsetree.core_type) = Obj.magic cty in + let _5 : unit = Obj.magic _5 in + let ntys : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic ntys in + let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let pat : (Parsetree.pattern) = Obj.magic pat in + let _4 : unit = Obj.magic _4 in + let _3_inlined1 : (Parsetree.modes) = Obj.magic _3_inlined1 in + let _1_inlined1 : (string) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_pat_ in - let _endpos = _endpos_cty_ in + let _startpos = _startpos__1_ in + let _endpos = _endpos_e_ in let _v = - let modes = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 46687 "src/ocaml/preprocess/parser_raw.ml" - in - let x = -# 2885 "src/ocaml/preprocess/parser_raw.mly" - ( pat, Some cty ) -# 46692 "src/ocaml/preprocess/parser_raw.ml" + let modes1 = +# 3316 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 47229 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos_modes1_ = _endpos_cty_ in + let _1 = + let _3 = _3_inlined1 in + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 47242 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3322 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _3) ) +# 47248 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e_ in + let _symbolstartpos = _startpos__1_ in + let _loc_cty_ = (_startpos_cty_, _endpos_cty_) in + let _sloc = (_symbolstartpos, _endpos) in ( -# 2866 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty = x in pat, cty, modes ) -# 46697 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) +# 3367 "src/ocaml/preprocess/parser_raw.mly" + ( let exp, poly = + wrap_type_annotation ~loc:_sloc ~modes:[] ~typloc:_loc_cty_ ntys cty e + in + let v, modes0 = _1 in + let modes = modes0 @ modes1 in + let loc = (_startpos__1_, _endpos_modes1_) in + (ghpat_with_modes ~loc ~pat:v ~cty:(Some poly) ~modes:[], exp, None, modes) + ) +# 47265 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46707,52 +47276,111 @@ 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 = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = modes1; + MenhirLib.EngineTypes.startp = _startpos_modes1_; + MenhirLib.EngineTypes.endp = _endpos_modes1_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; + 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 = ntys; + MenhirLib.EngineTypes.startp = _startpos_ntys_; + MenhirLib.EngineTypes.endp = _endpos_ntys_; + 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 _1 : (Parsetree.modes) = Obj.magic _1 in + let e : (Parsetree.expression) = Obj.magic e in + let _8 : unit = Obj.magic _8 in + let modes1 : (Parsetree.modes) = Obj.magic modes1 in let cty : (Parsetree.core_type) = Obj.magic cty in + let _5 : unit = Obj.magic _5 in + let ntys : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic ntys in + let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let pat : (Parsetree.pattern) = Obj.magic pat in + let _1 : (string) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_pat_ in - let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _endpos = _endpos_e_ in let _v = - let modes = -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 46745 "src/ocaml/preprocess/parser_raw.ml" - in - let x = -# 2885 "src/ocaml/preprocess/parser_raw.mly" - ( pat, Some cty ) -# 46750 "src/ocaml/preprocess/parser_raw.ml" - in + let _1 = + let _2 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 47354 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 4674 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 47360 "src/ocaml/preprocess/parser_raw.ml" + in + +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 47365 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos_e_ in + let _symbolstartpos = _startpos__1_ in + let _loc_cty_ = (_startpos_cty_, _endpos_cty_) in + let _sloc = (_symbolstartpos, _endpos) in ( -# 2866 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty = x in pat, cty, modes ) -# 46755 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) +# 3367 "src/ocaml/preprocess/parser_raw.mly" + ( let exp, poly = + wrap_type_annotation ~loc:_sloc ~modes:[] ~typloc:_loc_cty_ ntys cty e + in + let v, modes0 = _1 in + let modes = modes0 @ modes1 in + let loc = (_startpos__1_, _endpos_modes1_) in + (ghpat_with_modes ~loc ~pat:v ~cty:(Some poly) ~modes:[], exp, None, modes) + ) +# 47382 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46765,105 +47393,126 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = inner_type; - MenhirLib.EngineTypes.startp = _startpos_inner_type_; - MenhirLib.EngineTypes.endp = _endpos_inner_type_; + MenhirLib.EngineTypes.semv = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + 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 = modes1; + MenhirLib.EngineTypes.startp = _startpos_modes1_; + MenhirLib.EngineTypes.endp = _endpos_modes1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - MenhirLib.EngineTypes.next = _menhir_stack; + 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 = ntys; + MenhirLib.EngineTypes.startp = _startpos_ntys_; + MenhirLib.EngineTypes.endp = _endpos_ntys_; + 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 inner_type : (Parsetree.core_type) = Obj.magic inner_type in - let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let e : (Parsetree.expression) = Obj.magic e in + let _8 : unit = Obj.magic _8 in + let modes1 : (Parsetree.modes) = Obj.magic modes1 in + let cty : (Parsetree.core_type) = Obj.magic cty in + let _5 : unit = Obj.magic _5 in + let ntys : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic ntys in + let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let pat : (Parsetree.pattern) = Obj.magic pat in + let _1_inlined1 : (string) = Obj.magic _1_inlined1 in + let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_pat_ in - let _endpos = _endpos_inner_type_ in + let _startpos = _startpos__1_ in + let _endpos = _endpos_e_ in let _v = - let modes = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 46810 "src/ocaml/preprocess/parser_raw.ml" - in - let x = + let _1 = + 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 + +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 47479 "src/ocaml/preprocess/parser_raw.ml" + + in let _1 = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 46821 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1398 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 46826 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4480 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46832 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2900 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 46838 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 46848 "src/ocaml/preprocess/parser_raw.ml" - - in + let _1 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 47486 "src/ocaml/preprocess/parser_raw.ml" + in -# 2901 "src/ocaml/preprocess/parser_raw.mly" - ( pat, Some cty ) -# 46854 "src/ocaml/preprocess/parser_raw.ml" +# 4675 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 47491 "src/ocaml/preprocess/parser_raw.ml" in -# 2887 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46860 "src/ocaml/preprocess/parser_raw.ml" +# 3320 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _1) ) +# 47497 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos = _endpos_e_ in + let _symbolstartpos = _startpos__1_ in + let _loc_cty_ = (_startpos_cty_, _endpos_cty_) in + let _sloc = (_symbolstartpos, _endpos) in ( -# 2866 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty = x in pat, cty, modes ) -# 46866 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) +# 3367 "src/ocaml/preprocess/parser_raw.mly" + ( let exp, poly = + wrap_type_annotation ~loc:_sloc ~modes:[] ~typloc:_loc_cty_ ntys cty e + in + let v, modes0 = _1 in + let modes = modes0 @ modes1 in + let loc = (_startpos__1_, _endpos_modes1_) in + (ghpat_with_modes ~loc ~pat:v ~cty:(Some poly) ~modes:[], exp, None, modes) + ) +# 47514 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -46876,112 +47525,129 @@ 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 = e; + MenhirLib.EngineTypes.startp = _startpos_e_; + MenhirLib.EngineTypes.endp = _endpos_e_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = inner_type; - MenhirLib.EngineTypes.startp = _startpos_inner_type_; - MenhirLib.EngineTypes.endp = _endpos_inner_type_; + MenhirLib.EngineTypes.semv = _8; + MenhirLib.EngineTypes.startp = _startpos__8_; + MenhirLib.EngineTypes.endp = _endpos__8_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.semv = modes1; + MenhirLib.EngineTypes.startp = _startpos_modes1_; + MenhirLib.EngineTypes.endp = _endpos_modes1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = cty; + MenhirLib.EngineTypes.startp = _startpos_cty_; + MenhirLib.EngineTypes.endp = _endpos_cty_; MenhirLib.EngineTypes.next = { 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 = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - MenhirLib.EngineTypes.next = _menhir_stack; + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = ntys; + MenhirLib.EngineTypes.startp = _startpos_ntys_; + MenhirLib.EngineTypes.endp = _endpos_ntys_; + 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 = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _3_inlined1; + MenhirLib.EngineTypes.startp = _startpos__3_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__3_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 = _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.modes) = Obj.magic _1 in - let inner_type : (Parsetree.core_type) = Obj.magic inner_type in - let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in + let e : (Parsetree.expression) = Obj.magic e in + let _8 : unit = Obj.magic _8 in + let modes1 : (Parsetree.modes) = Obj.magic modes1 in + let cty : (Parsetree.core_type) = Obj.magic cty in + let _5 : unit = Obj.magic _5 in + let ntys : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic ntys in + let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in - let pat : (Parsetree.pattern) = Obj.magic pat in + let _4 : unit = Obj.magic _4 in + let _3_inlined1 : (Parsetree.modes) = Obj.magic _3_inlined1 in + let _1_inlined1 : (string) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_pat_ in - let _endpos = _endpos__1_ in + let _startpos = _startpos__1_ in + let _endpos = _endpos_e_ in let _v = - let modes = -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 46928 "src/ocaml/preprocess/parser_raw.ml" - in - let x = - let _1 = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 46939 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1398 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 46944 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4480 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46950 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2900 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 46956 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 46966 "src/ocaml/preprocess/parser_raw.ml" - - in + let _1 = + let _3 = _3_inlined1 in + 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 -# 2901 "src/ocaml/preprocess/parser_raw.mly" - ( pat, Some cty ) -# 46972 "src/ocaml/preprocess/parser_raw.ml" +# 3306 "src/ocaml/preprocess/parser_raw.mly" + ( mkpatvar ~loc:_sloc _1 ) +# 47626 "src/ocaml/preprocess/parser_raw.ml" in -# 2887 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 46978 "src/ocaml/preprocess/parser_raw.ml" +# 3322 "src/ocaml/preprocess/parser_raw.mly" + ( (_2, _3) ) +# 47632 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos = _endpos_e_ in + let _symbolstartpos = _startpos__1_ in + let _loc_cty_ = (_startpos_cty_, _endpos_cty_) in + let _sloc = (_symbolstartpos, _endpos) in ( -# 2866 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty = x in pat, cty, modes ) -# 46984 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) +# 3367 "src/ocaml/preprocess/parser_raw.mly" + ( let exp, poly = + wrap_type_annotation ~loc:_sloc ~modes:[] ~typloc:_loc_cty_ ntys cty e + in + let v, modes0 = _1 in + let modes = modes0 @ modes1 in + let loc = (_startpos__1_, _endpos_modes1_) in + (ghpat_with_modes ~loc ~pat:v ~cty:(Some poly) ~modes:[], exp, None, modes) + ) +# 47649 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47011,16 +47677,17 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let _3 : (Parsetree.expression) = Obj.magic _3 in + let _2 : unit = Obj.magic _2 in + let _1 : (Parsetree.pattern) = 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 * Parsetree.core_type option * Parsetree.modes) = -# 2867 "src/ocaml/preprocess/parser_raw.mly" - ( _2 ) -# 47024 "src/ocaml/preprocess/parser_raw.ml" + let _v : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes) = +# 3376 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3, None, []) ) +# 47691 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47032,27 +47699,133 @@ module Tables = struct (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 = _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 _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in + let _1 : (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 = + let _2 = + let _1 = _1_inlined1 in + +# 3309 "src/ocaml/preprocess/parser_raw.mly" + (None, _1) +# 47740 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 3378 "src/ocaml/preprocess/parser_raw.mly" + ( + let pvc, modes = _2 in + (_1, _4, pvc, modes) + ) +# 47749 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) + in + { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; + 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 = _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 pat : (Parsetree.pattern) = Obj.magic pat in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_pat_ in - let _endpos = _endpos_pat_ in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in let _v = - let x = -# 2891 "src/ocaml/preprocess/parser_raw.mly" - ( pat, None ) -# 47050 "src/ocaml/preprocess/parser_raw.ml" - in + let _2 = + let _1_inlined1 = _1_inlined2 in + let _2 = + let _1 = _1_inlined1 in + +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 47809 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3310 "src/ocaml/preprocess/parser_raw.mly" + ( + let typ, mm = _2 in + Some(Pvc_constraint { locally_abstract_univars=[]; typ }), mm + ) +# 47818 "src/ocaml/preprocess/parser_raw.ml" + + in ( -# 2879 "src/ocaml/preprocess/parser_raw.mly" - ( x ) -# 47055 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option)) +# 3378 "src/ocaml/preprocess/parser_raw.mly" + ( + let pvc, modes = _2 in + (_1, _4, pvc, modes) + ) +# 47827 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47065,40 +47838,79 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; + 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 = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - 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 = _; + 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 cty : (Parsetree.core_type) = Obj.magic cty in - let _2 : unit = Obj.magic _2 in - let pat : (Parsetree.pattern) = Obj.magic pat in + let _4 : (Parsetree.expression) = Obj.magic _4 in + let _3 : unit = Obj.magic _3 in + let _2 : (Parsetree.modes) = Obj.magic _2 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _1 : (Parsetree.pattern) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_pat_ in - let _endpos = _endpos_cty_ in + let _startpos = _startpos__1_ in + let _endpos = _endpos__4_ in let _v = - let x = -# 2885 "src/ocaml/preprocess/parser_raw.mly" - ( pat, Some cty ) -# 47096 "src/ocaml/preprocess/parser_raw.ml" - in + let _2 = + let _1_inlined1 = _1_inlined2 in + let _2 = + let _1 = _1_inlined1 in + +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 47894 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3310 "src/ocaml/preprocess/parser_raw.mly" + ( + let typ, mm = _2 in + Some(Pvc_constraint { locally_abstract_univars=[]; typ }), mm + ) +# 47903 "src/ocaml/preprocess/parser_raw.ml" + + in ( -# 2880 "src/ocaml/preprocess/parser_raw.mly" - ( x ) -# 47101 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option)) +# 3378 "src/ocaml/preprocess/parser_raw.mly" + ( + let pvc, modes = _2 in + (_1, _4, pvc, modes) + ) +# 47912 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47111,100 +47923,87 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = inner_type; - MenhirLib.EngineTypes.startp = _startpos_inner_type_; - MenhirLib.EngineTypes.endp = _endpos_inner_type_; + 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_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.semv = body; + MenhirLib.EngineTypes.startp = _startpos_body_; + MenhirLib.EngineTypes.endp = _endpos_body_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + MenhirLib.EngineTypes.semv = rec_flag; + MenhirLib.EngineTypes.startp = _startpos_rec_flag_; + MenhirLib.EngineTypes.endp = _endpos_rec_flag_; 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 = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - 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; + }; }; }; }; }; } = _menhir_stack in - let inner_type : (Parsetree.core_type) = Obj.magic inner_type in - let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in - let _2 : unit = Obj.magic _2 in - let pat : (Parsetree.pattern) = Obj.magic pat in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let body : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes * bool) = Obj.magic body in + let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in + let ext : (string Location.loc option) = Obj.magic ext in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_pat_ in - let _endpos = _endpos_inner_type_ in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined2_ in let _v = - let x = - let _1 = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 47162 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1398 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 47167 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4480 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let attrs2 = + let _1 = _1_inlined2 in + +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47173 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2900 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 47179 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 47189 "src/ocaml/preprocess/parser_raw.ml" - - in +# 47979 "src/ocaml/preprocess/parser_raw.ml" -# 2901 "src/ocaml/preprocess/parser_raw.mly" - ( pat, Some cty ) -# 47195 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + +# 5408 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 47988 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2887 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 47201 "src/ocaml/preprocess/parser_raw.ml" +# 3408 "src/ocaml/preprocess/parser_raw.mly" + ( + let attrs = attrs1 @ attrs2 in + mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) + ) +# 48000 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2880 "src/ocaml/preprocess/parser_raw.mly" - ( x ) -# 47207 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option)) +# 3398 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 48006 "src/ocaml/preprocess/parser_raw.ml" + : (Parser_types.let_bindings)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47217,34 +48016,27 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = modes; - MenhirLib.EngineTypes.startp = _startpos_modes_; - MenhirLib.EngineTypes.endp = _endpos_modes_; + 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 = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let modes : (Parsetree.modes) = Obj.magic modes in - let pat : (Parsetree.pattern) = Obj.magic pat in + let _2 : (Parser_types.let_binding) = Obj.magic _2 in + let _1 : (Parser_types.let_bindings) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_pat_ in - let _endpos = _endpos_modes_ in - let _v = - let x = -# 2891 "src/ocaml/preprocess/parser_raw.mly" - ( pat, None ) -# 47241 "src/ocaml/preprocess/parser_raw.ml" - in - ( -# 2872 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty = x in pat, cty, modes ) -# 47246 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) - in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v : (Parser_types.let_bindings) = +# 3399 "src/ocaml/preprocess/parser_raw.mly" + ( addlb _1 _2 ) +# 48039 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47256,47 +48048,85 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = modes; - MenhirLib.EngineTypes.startp = _startpos_modes_; - MenhirLib.EngineTypes.endp = _endpos_modes_; + 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 = cty; - MenhirLib.EngineTypes.startp = _startpos_cty_; - MenhirLib.EngineTypes.endp = _endpos_cty_; + MenhirLib.EngineTypes.semv = body; + MenhirLib.EngineTypes.startp = _startpos_body_; + MenhirLib.EngineTypes.endp = _endpos_body_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = rec_flag; + MenhirLib.EngineTypes.startp = _startpos_rec_flag_; + MenhirLib.EngineTypes.endp = _endpos_rec_flag_; MenhirLib.EngineTypes.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - 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 modes : (Parsetree.modes) = Obj.magic modes in - let cty : (Parsetree.core_type) = Obj.magic cty in - let _2 : unit = Obj.magic _2 in - let pat : (Parsetree.pattern) = Obj.magic pat in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let body : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes * bool) = Obj.magic body in + let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag 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_pat_ in - let _endpos = _endpos_modes_ in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined2_ in let _v = - let x = -# 2885 "src/ocaml/preprocess/parser_raw.mly" - ( pat, Some cty ) -# 47294 "src/ocaml/preprocess/parser_raw.ml" - in + let _1 = + let attrs2 = + let _1 = _1_inlined2 in + +# 5404 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 48097 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_attrs2_ = _endpos__1_inlined2_ in + let attrs1 = + let _1 = _1_inlined1 in + +# 5408 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 48106 "src/ocaml/preprocess/parser_raw.ml" + + in + let ext = +# 5415 "src/ocaml/preprocess/parser_raw.mly" + ( None ) +# 48112 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 3408 "src/ocaml/preprocess/parser_raw.mly" + ( + let attrs = attrs1 @ attrs2 in + mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) + ) +# 48123 "src/ocaml/preprocess/parser_raw.ml" + + in ( -# 2874 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty = x in pat, cty, modes ) -# 47299 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) +# 3398 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 48129 "src/ocaml/preprocess/parser_raw.ml" + : (Parser_types.let_bindings)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47309,107 +48139,105 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = modes; - MenhirLib.EngineTypes.startp = _startpos_modes_; - MenhirLib.EngineTypes.endp = _endpos_modes_; + 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 = inner_type; - MenhirLib.EngineTypes.startp = _startpos_inner_type_; - MenhirLib.EngineTypes.endp = _endpos_inner_type_; + MenhirLib.EngineTypes.semv = body; + MenhirLib.EngineTypes.startp = _startpos_body_; + MenhirLib.EngineTypes.endp = _endpos_body_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2_inlined1; - MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + MenhirLib.EngineTypes.semv = rec_flag; + MenhirLib.EngineTypes.startp = _startpos_rec_flag_; + MenhirLib.EngineTypes.endp = _endpos_rec_flag_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = xs; - MenhirLib.EngineTypes.startp = _startpos_xs_; - MenhirLib.EngineTypes.endp = _endpos_xs_; + 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.next = { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = pat; - MenhirLib.EngineTypes.startp = _startpos_pat_; - MenhirLib.EngineTypes.endp = _endpos_pat_; - 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 modes : (Parsetree.modes) = Obj.magic modes in - let inner_type : (Parsetree.core_type) = Obj.magic inner_type in - let _2_inlined1 : unit = Obj.magic _2_inlined1 in - let xs : ((string Location.loc * Parsetree.jkind_annotation option) list) = Obj.magic xs in - let _2 : unit = Obj.magic _2 in - let pat : (Parsetree.pattern) = Obj.magic pat in + let _1_inlined3 : (Parsetree.attributes) = Obj.magic _1_inlined3 in + let body : (Parsetree.pattern * Parsetree.expression * + Parsetree.value_constraint option * Parsetree.modes * bool) = Obj.magic body in + let rec_flag : (Asttypes.rec_flag) = Obj.magic rec_flag in + let _1_inlined2 : (Parsetree.attributes) = Obj.magic _1_inlined2 in + let _2 : (string Location.loc) = Obj.magic _2 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_pat_ in - let _endpos = _endpos_modes_ in + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined3_ in let _v = - let x = - let _1 = - let cty = - let _1 = - let bound_vars = - let _1 = - let xs = -# 264 "" - ( List.rev xs ) -# 47367 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1398 "src/ocaml/preprocess/parser_raw.mly" - ( xs ) -# 47372 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 4480 "src/ocaml/preprocess/parser_raw.mly" + let _1 = + let attrs2 = + let _1 = _1_inlined3 in + +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47378 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2900 "src/ocaml/preprocess/parser_raw.mly" - ( Ptyp_poly (bound_vars, inner_type) ) -# 47384 "src/ocaml/preprocess/parser_raw.ml" - - in - let (_endpos__1_, _startpos__1_) = (_endpos_inner_type_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1333 "src/ocaml/preprocess/parser_raw.mly" - ( mktyp ~loc:_sloc _1 ) -# 47394 "src/ocaml/preprocess/parser_raw.ml" - - in +# 48202 "src/ocaml/preprocess/parser_raw.ml" -# 2901 "src/ocaml/preprocess/parser_raw.mly" - ( pat, Some cty ) -# 47400 "src/ocaml/preprocess/parser_raw.ml" + in + let _endpos_attrs2_ = _endpos__1_inlined3_ in + let attrs1 = + let _1 = _1_inlined2 in + +# 5408 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 48211 "src/ocaml/preprocess/parser_raw.ml" + + in + let ext = + let _startpos__1_ = _startpos__1_inlined1_ in + let _endpos = _endpos__2_ in + let _startpos = _startpos__1_ in + let _loc = (_startpos, _endpos) in + +# 5417 "src/ocaml/preprocess/parser_raw.mly" + ( not_expecting _loc "extension"; None ) +# 48222 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos = _endpos_attrs2_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 2887 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 47406 "src/ocaml/preprocess/parser_raw.ml" +# 3408 "src/ocaml/preprocess/parser_raw.mly" + ( + let attrs = attrs1 @ attrs2 in + mklbs ext rec_flag (mklb ~loc:_sloc true body attrs) + ) +# 48234 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2874 "src/ocaml/preprocess/parser_raw.mly" - ( let pat, cty = x in pat, cty, modes ) -# 47412 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes)) +# 3398 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 48240 "src/ocaml/preprocess/parser_raw.ml" + : (Parser_types.let_bindings)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47422,14 +48250,91 @@ 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 = _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 : (Parser_types.let_binding) = Obj.magic _2 in + let _1 : (Parser_types.let_bindings) = 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 : (Parser_types.let_bindings) = +# 3399 "src/ocaml/preprocess/parser_raw.mly" + ( addlb _1 _2 ) +# 48273 "src/ocaml/preprocess/parser_raw.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 = cty_modes1; + MenhirLib.EngineTypes.startp = _startpos_cty_modes1_; + MenhirLib.EngineTypes.endp = _endpos_cty_modes1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = pat; + MenhirLib.EngineTypes.startp = _startpos_pat_; + MenhirLib.EngineTypes.endp = _endpos_pat_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let cty_modes1 : (Parsetree.core_type option * Parsetree.modes) = Obj.magic cty_modes1 in + let pat : (Parsetree.pattern) = Obj.magic pat in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_pat_ in + let _endpos = _endpos_cty_modes1_ in + let _v = + let modes0 = +# 4674 "src/ocaml/preprocess/parser_raw.mly" + ( [] ) +# 48306 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_modes0_ = _endpos__0_ in + ( +# 2844 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, modes1 = cty_modes1 in + let modes = modes0 @ modes1 in + let loc = _startpos_modes0_, _endpos_cty_modes1_ in + mkpat_with_modes ~loc ~pat ~cty ~modes + ) +# 48317 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + 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 = cty_modes1; + MenhirLib.EngineTypes.startp = _startpos_cty_modes1_; + MenhirLib.EngineTypes.endp = _endpos_cty_modes1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _2; - MenhirLib.EngineTypes.startp = _startpos__2_; - MenhirLib.EngineTypes.endp = _endpos__2_; + MenhirLib.EngineTypes.semv = pat; + MenhirLib.EngineTypes.startp = _startpos_pat_; + MenhirLib.EngineTypes.endp = _endpos_pat_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -47439,17 +48344,37 @@ module Tables = struct }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let cty_modes1 : (Parsetree.core_type option * Parsetree.modes) = Obj.magic cty_modes1 in + let pat : (Parsetree.pattern) = Obj.magic pat in + let _1 : (Parsetree.modes) = 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 * Parsetree.core_type option * Parsetree.modes) = -# 2875 "src/ocaml/preprocess/parser_raw.mly" - ( _2 ) -# 47452 "src/ocaml/preprocess/parser_raw.ml" - in + let _endpos = _endpos_cty_modes1_ in + let _v = + let modes0 = + let _1 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 48359 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4675 "src/ocaml/preprocess/parser_raw.mly" + (_1) +# 48364 "src/ocaml/preprocess/parser_raw.ml" + + in + let _startpos_modes0_ = _startpos__1_ in + ( +# 2844 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, modes1 = cty_modes1 in + let modes = modes0 @ modes1 in + let loc = _startpos_modes0_, _endpos_cty_modes1_ in + mkpat_with_modes ~loc ~pat ~cty ~modes + ) +# 48376 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -47481,9 +48406,9 @@ module Tables = struct let exp = let _1 = _1_inlined1 in -# 3487 "src/ocaml/preprocess/parser_raw.mly" +# 3468 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 47487 "src/ocaml/preprocess/parser_raw.ml" +# 48412 "src/ocaml/preprocess/parser_raw.ml" in let pat = @@ -47491,15 +48416,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3330 "src/ocaml/preprocess/parser_raw.mly" +# 3306 "src/ocaml/preprocess/parser_raw.mly" ( mkpatvar ~loc:_sloc _1 ) -# 47497 "src/ocaml/preprocess/parser_raw.ml" +# 48422 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3444 "src/ocaml/preprocess/parser_raw.mly" +# 3425 "src/ocaml/preprocess/parser_raw.mly" ( (pat, exp) ) -# 47503 "src/ocaml/preprocess/parser_raw.ml" +# 48428 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression)) in { @@ -47527,9 +48452,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in ( -# 3447 "src/ocaml/preprocess/parser_raw.mly" +# 3428 "src/ocaml/preprocess/parser_raw.mly" ( (mkpatvar ~loc:_loc ~attrs:[pun_attr] _1, ghexpvar ~loc:_loc ~attrs:[pun_attr] _1) ) -# 47533 "src/ocaml/preprocess/parser_raw.ml" +# 48458 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression)) in { @@ -47581,10 +48506,10 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos_exp_ in let _v : (Parsetree.pattern * Parsetree.expression) = -# 3450 "src/ocaml/preprocess/parser_raw.mly" +# 3431 "src/ocaml/preprocess/parser_raw.mly" ( let loc = (_startpos_pat_, _endpos_typ_) in (ghpat_with_modes ~loc ~pat ~cty:(Some typ) ~modes:[], exp) ) -# 47588 "src/ocaml/preprocess/parser_raw.ml" +# 48513 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47621,9 +48546,9 @@ module Tables = struct let _startpos = _startpos_pat_ in let _endpos = _endpos_exp_ in let _v : (Parsetree.pattern * Parsetree.expression) = -# 3453 "src/ocaml/preprocess/parser_raw.mly" +# 3434 "src/ocaml/preprocess/parser_raw.mly" ( (pat, exp) ) -# 47627 "src/ocaml/preprocess/parser_raw.ml" +# 48552 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47646,10 +48571,10 @@ module Tables = struct let _startpos = _startpos_body_ in let _endpos = _endpos_body_ in let _v : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) = -# 3457 "src/ocaml/preprocess/parser_raw.mly" +# 3438 "src/ocaml/preprocess/parser_raw.mly" ( let let_pat, let_exp = body in let_pat, let_exp, [] ) -# 47653 "src/ocaml/preprocess/parser_raw.ml" +# 48578 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47681,9 +48606,9 @@ module Tables = struct } = _menhir_stack in let body : (Parsetree.pattern * Parsetree.expression) = Obj.magic body in let _1 : ( -# 1075 "src/ocaml/preprocess/parser_raw.mly" +# 1087 "src/ocaml/preprocess/parser_raw.mly" (string) -# 47687 "src/ocaml/preprocess/parser_raw.ml" +# 48612 "src/ocaml/preprocess/parser_raw.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 @@ -47695,22 +48620,22 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 47701 "src/ocaml/preprocess/parser_raw.ml" +# 48626 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_body_ in let _symbolstartpos = _startpos_bindings_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3460 "src/ocaml/preprocess/parser_raw.mly" +# 3441 "src/ocaml/preprocess/parser_raw.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 ) -# 47714 "src/ocaml/preprocess/parser_raw.ml" +# 48639 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list)) in { @@ -47729,7 +48654,7 @@ module Tables = struct let _v : (Parsetree.class_expr Parsetree.class_infos list) = # 216 "" ( [] ) -# 47733 "src/ocaml/preprocess/parser_raw.ml" +# 48658 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47793,9 +48718,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 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 47799 "src/ocaml/preprocess/parser_raw.ml" +# 48724 "src/ocaml/preprocess/parser_raw.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 @@ -47809,9 +48734,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47815 "src/ocaml/preprocess/parser_raw.ml" +# 48740 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -47821,24 +48746,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 47827 "src/ocaml/preprocess/parser_raw.ml" +# 48752 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47835 "src/ocaml/preprocess/parser_raw.ml" +# 48760 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2366 "src/ocaml/preprocess/parser_raw.mly" +# 2393 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -47846,13 +48771,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id body ~virt ~params ~attrs ~loc ~text ~docs ) -# 47850 "src/ocaml/preprocess/parser_raw.ml" +# 48775 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 47856 "src/ocaml/preprocess/parser_raw.ml" +# 48781 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_expr Parsetree.class_infos list)) in { @@ -47871,7 +48796,7 @@ module Tables = struct let _v : (Parsetree.class_type Parsetree.class_infos list) = # 216 "" ( [] ) -# 47875 "src/ocaml/preprocess/parser_raw.ml" +# 48800 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -47942,9 +48867,9 @@ module Tables = struct let cty : (Parsetree.class_type) = Obj.magic cty in let _6 : unit = Obj.magic _6 in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 47948 "src/ocaml/preprocess/parser_raw.ml" +# 48873 "src/ocaml/preprocess/parser_raw.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 @@ -47958,9 +48883,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47964 "src/ocaml/preprocess/parser_raw.ml" +# 48889 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -47970,24 +48895,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 47976 "src/ocaml/preprocess/parser_raw.ml" +# 48901 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 47984 "src/ocaml/preprocess/parser_raw.ml" +# 48909 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2664 "src/ocaml/preprocess/parser_raw.mly" +# 2691 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -47995,13 +48920,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id cty ~virt ~params ~attrs ~loc ~text ~docs ) -# 47999 "src/ocaml/preprocess/parser_raw.ml" +# 48924 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 48005 "src/ocaml/preprocess/parser_raw.ml" +# 48930 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type Parsetree.class_infos list)) in { @@ -48020,7 +48945,7 @@ module Tables = struct let _v : (Parsetree.class_type Parsetree.class_infos list) = # 216 "" ( [] ) -# 48024 "src/ocaml/preprocess/parser_raw.ml" +# 48949 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48091,9 +49016,9 @@ module Tables = struct let csig : (Parsetree.class_type) = Obj.magic csig in let _6 : unit = Obj.magic _6 in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 48097 "src/ocaml/preprocess/parser_raw.ml" +# 49022 "src/ocaml/preprocess/parser_raw.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 @@ -48107,9 +49032,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48113 "src/ocaml/preprocess/parser_raw.ml" +# 49038 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -48119,24 +49044,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 48125 "src/ocaml/preprocess/parser_raw.ml" +# 49050 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48133 "src/ocaml/preprocess/parser_raw.ml" +# 49058 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2703 "src/ocaml/preprocess/parser_raw.mly" +# 2730 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -48144,13 +49069,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Ci.mk id csig ~virt ~params ~attrs ~loc ~text ~docs ) -# 48148 "src/ocaml/preprocess/parser_raw.ml" +# 49073 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 48154 "src/ocaml/preprocess/parser_raw.ml" +# 49079 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type Parsetree.class_infos list)) in { @@ -48169,7 +49094,7 @@ module Tables = struct let _v : (Parsetree.module_binding list) = # 216 "" ( [] ) -# 48173 "src/ocaml/preprocess/parser_raw.ml" +# 49098 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48231,25 +49156,25 @@ module Tables = struct let attrs2 = let _1 = _1_inlined2 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48237 "src/ocaml/preprocess/parser_raw.ml" +# 49162 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48246 "src/ocaml/preprocess/parser_raw.ml" +# 49171 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1975 "src/ocaml/preprocess/parser_raw.mly" +# 1995 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let attrs = attrs1 @ attrs2 in @@ -48259,13 +49184,13 @@ module Tables = struct let body = maybe_pmod_constraint modes body in Mb.mk name body ~attrs ~loc ~text ~docs ) -# 48263 "src/ocaml/preprocess/parser_raw.ml" +# 49188 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 48269 "src/ocaml/preprocess/parser_raw.ml" +# 49194 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_binding list)) in { @@ -48284,7 +49209,7 @@ module Tables = struct let _v : (Parsetree.module_declaration list) = # 216 "" ( [] ) -# 48288 "src/ocaml/preprocess/parser_raw.ml" +# 49213 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48360,9 +49285,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48366 "src/ocaml/preprocess/parser_raw.ml" +# 49291 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -48372,24 +49297,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 48378 "src/ocaml/preprocess/parser_raw.ml" +# 49303 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48386 "src/ocaml/preprocess/parser_raw.ml" +# 49311 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2307 "src/ocaml/preprocess/parser_raw.mly" +# 2334 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let docs = symbol_docs _sloc in @@ -48397,13 +49322,13 @@ module Tables = struct let text = symbol_text _symbolstartpos in Md.mk name mty ~attrs ~loc ~text ~docs ~modalities ) -# 48401 "src/ocaml/preprocess/parser_raw.ml" +# 49326 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 48407 "src/ocaml/preprocess/parser_raw.ml" +# 49332 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_declaration list)) in { @@ -48422,7 +49347,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 216 "" ( [] ) -# 48426 "src/ocaml/preprocess/parser_raw.ml" +# 49351 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48454,7 +49379,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 219 "" ( x :: xs ) -# 48458 "src/ocaml/preprocess/parser_raw.ml" +# 49383 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48472,7 +49397,7 @@ module Tables = struct let _v : (Parsetree.type_declaration list) = # 216 "" ( [] ) -# 48476 "src/ocaml/preprocess/parser_raw.ml" +# 49401 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48544,9 +49469,9 @@ module Tables = struct let kind_priv_manifest : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option) = Obj.magic kind_priv_manifest in let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 48550 "src/ocaml/preprocess/parser_raw.ml" +# 49475 "src/ocaml/preprocess/parser_raw.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 @@ -48560,9 +49485,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48566 "src/ocaml/preprocess/parser_raw.ml" +# 49491 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -48571,18 +49496,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 48575 "src/ocaml/preprocess/parser_raw.ml" +# 49500 "src/ocaml/preprocess/parser_raw.ml" in -# 1380 "src/ocaml/preprocess/parser_raw.mly" +# 1392 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48580 "src/ocaml/preprocess/parser_raw.ml" +# 49505 "src/ocaml/preprocess/parser_raw.ml" in -# 4097 "src/ocaml/preprocess/parser_raw.mly" +# 4071 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48586 "src/ocaml/preprocess/parser_raw.ml" +# 49511 "src/ocaml/preprocess/parser_raw.ml" in let id = @@ -48591,24 +49516,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 48597 "src/ocaml/preprocess/parser_raw.ml" +# 49522 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48605 "src/ocaml/preprocess/parser_raw.ml" +# 49530 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4085 "src/ocaml/preprocess/parser_raw.mly" +# 4059 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in @@ -48618,13 +49543,13 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text ?jkind_annotation ) -# 48622 "src/ocaml/preprocess/parser_raw.ml" +# 49547 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 48628 "src/ocaml/preprocess/parser_raw.ml" +# 49553 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_declaration list)) in { @@ -48643,7 +49568,7 @@ module Tables = struct let _v : (Parsetree.type_declaration list) = # 216 "" ( [] ) -# 48647 "src/ocaml/preprocess/parser_raw.ml" +# 49572 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48722,9 +49647,9 @@ module Tables = struct let _1_inlined3 : unit = Obj.magic _1_inlined3 in let jkind_annotation : (Parsetree.jkind_annotation option) = Obj.magic jkind_annotation in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 48728 "src/ocaml/preprocess/parser_raw.ml" +# 49653 "src/ocaml/preprocess/parser_raw.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 @@ -48738,9 +49663,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48744 "src/ocaml/preprocess/parser_raw.ml" +# 49669 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -48749,24 +49674,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 48753 "src/ocaml/preprocess/parser_raw.ml" +# 49678 "src/ocaml/preprocess/parser_raw.ml" in -# 1380 "src/ocaml/preprocess/parser_raw.mly" +# 1392 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 48758 "src/ocaml/preprocess/parser_raw.ml" +# 49683 "src/ocaml/preprocess/parser_raw.ml" in -# 4097 "src/ocaml/preprocess/parser_raw.mly" +# 4071 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48764 "src/ocaml/preprocess/parser_raw.ml" +# 49689 "src/ocaml/preprocess/parser_raw.ml" in let kind_priv_manifest = -# 4136 "src/ocaml/preprocess/parser_raw.mly" +# 4110 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 48770 "src/ocaml/preprocess/parser_raw.ml" +# 49695 "src/ocaml/preprocess/parser_raw.ml" in let id = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -48774,24 +49699,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 48780 "src/ocaml/preprocess/parser_raw.ml" +# 49705 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48788 "src/ocaml/preprocess/parser_raw.ml" +# 49713 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4085 "src/ocaml/preprocess/parser_raw.mly" +# 4059 "src/ocaml/preprocess/parser_raw.mly" ( let (kind, priv, manifest) = kind_priv_manifest in let docs = symbol_docs _sloc in @@ -48801,13 +49726,13 @@ module Tables = struct Type.mk id ~params ~cstrs ~kind ~priv ?manifest ~attrs ~loc ~docs ~text ?jkind_annotation ) -# 48805 "src/ocaml/preprocess/parser_raw.ml" +# 49730 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 48811 "src/ocaml/preprocess/parser_raw.ml" +# 49736 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_declaration list)) in { @@ -48826,7 +49751,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 216 "" ( [] ) -# 48830 "src/ocaml/preprocess/parser_raw.ml" +# 49755 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48858,7 +49783,7 @@ module Tables = struct let _v : (Parsetree.attributes) = # 219 "" ( x :: xs ) -# 48862 "src/ocaml/preprocess/parser_raw.ml" +# 49787 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48876,7 +49801,7 @@ module Tables = struct let _v : (Parsetree.signature_item list list) = # 216 "" ( [] ) -# 48880 "src/ocaml/preprocess/parser_raw.ml" +# 49805 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -48910,21 +49835,21 @@ module Tables = struct let _1 = let _startpos = _startpos__1_ in -# 1306 "src/ocaml/preprocess/parser_raw.mly" +# 1318 "src/ocaml/preprocess/parser_raw.mly" ( text_sig _startpos ) -# 48916 "src/ocaml/preprocess/parser_raw.ml" +# 49841 "src/ocaml/preprocess/parser_raw.ml" in -# 2144 "src/ocaml/preprocess/parser_raw.mly" +# 2169 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48922 "src/ocaml/preprocess/parser_raw.ml" +# 49847 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 48928 "src/ocaml/preprocess/parser_raw.ml" +# 49853 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item list list)) in { @@ -48959,21 +49884,21 @@ module Tables = struct let _1 = let _startpos = _startpos__1_ in -# 1304 "src/ocaml/preprocess/parser_raw.mly" +# 1316 "src/ocaml/preprocess/parser_raw.mly" ( text_sig _startpos @ [_1] ) -# 48965 "src/ocaml/preprocess/parser_raw.ml" +# 49890 "src/ocaml/preprocess/parser_raw.ml" in -# 2144 "src/ocaml/preprocess/parser_raw.mly" +# 2169 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 48971 "src/ocaml/preprocess/parser_raw.ml" +# 49896 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 48977 "src/ocaml/preprocess/parser_raw.ml" +# 49902 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item list list)) in { @@ -48992,7 +49917,7 @@ module Tables = struct let _v : (Parsetree.structure_item list list) = # 216 "" ( [] ) -# 48996 "src/ocaml/preprocess/parser_raw.ml" +# 49921 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49026,40 +49951,40 @@ module Tables = struct let _1 = let ys = let items = -# 1366 "src/ocaml/preprocess/parser_raw.mly" +# 1378 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 49032 "src/ocaml/preprocess/parser_raw.ml" +# 49957 "src/ocaml/preprocess/parser_raw.ml" in -# 1842 "src/ocaml/preprocess/parser_raw.mly" +# 1854 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 49037 "src/ocaml/preprocess/parser_raw.ml" +# 49962 "src/ocaml/preprocess/parser_raw.ml" in let xs = let _startpos = _startpos__1_ in -# 1302 "src/ocaml/preprocess/parser_raw.mly" +# 1314 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos ) -# 49045 "src/ocaml/preprocess/parser_raw.ml" +# 49970 "src/ocaml/preprocess/parser_raw.ml" in # 278 "" ( xs @ ys ) -# 49051 "src/ocaml/preprocess/parser_raw.ml" +# 49976 "src/ocaml/preprocess/parser_raw.ml" in -# 1858 "src/ocaml/preprocess/parser_raw.mly" +# 1870 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49057 "src/ocaml/preprocess/parser_raw.ml" +# 49982 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 49063 "src/ocaml/preprocess/parser_raw.ml" +# 49988 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item list list)) in { @@ -49113,70 +50038,70 @@ module Tables = struct let _1 = let _1 = let attrs = -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49119 "src/ocaml/preprocess/parser_raw.ml" +# 50044 "src/ocaml/preprocess/parser_raw.ml" in -# 1849 "src/ocaml/preprocess/parser_raw.mly" +# 1861 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 49124 "src/ocaml/preprocess/parser_raw.ml" +# 50049 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 1300 "src/ocaml/preprocess/parser_raw.mly" +# 1312 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 49132 "src/ocaml/preprocess/parser_raw.ml" +# 50057 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1319 "src/ocaml/preprocess/parser_raw.mly" +# 1331 "src/ocaml/preprocess/parser_raw.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 49142 "src/ocaml/preprocess/parser_raw.ml" +# 50067 "src/ocaml/preprocess/parser_raw.ml" in -# 1368 "src/ocaml/preprocess/parser_raw.mly" +# 1380 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 49148 "src/ocaml/preprocess/parser_raw.ml" +# 50073 "src/ocaml/preprocess/parser_raw.ml" in -# 1842 "src/ocaml/preprocess/parser_raw.mly" +# 1854 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 49154 "src/ocaml/preprocess/parser_raw.ml" +# 50079 "src/ocaml/preprocess/parser_raw.ml" in let xs = let _startpos = _startpos__1_ in -# 1302 "src/ocaml/preprocess/parser_raw.mly" +# 1314 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos ) -# 49162 "src/ocaml/preprocess/parser_raw.ml" +# 50087 "src/ocaml/preprocess/parser_raw.ml" in # 278 "" ( xs @ ys ) -# 49168 "src/ocaml/preprocess/parser_raw.ml" +# 50093 "src/ocaml/preprocess/parser_raw.ml" in -# 1858 "src/ocaml/preprocess/parser_raw.mly" +# 1870 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49174 "src/ocaml/preprocess/parser_raw.ml" +# 50099 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 49180 "src/ocaml/preprocess/parser_raw.ml" +# 50105 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item list list)) in { @@ -49211,21 +50136,21 @@ module Tables = struct let _1 = let _startpos = _startpos__1_ in -# 1300 "src/ocaml/preprocess/parser_raw.mly" +# 1312 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 49217 "src/ocaml/preprocess/parser_raw.ml" +# 50142 "src/ocaml/preprocess/parser_raw.ml" in -# 1858 "src/ocaml/preprocess/parser_raw.mly" +# 1870 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49223 "src/ocaml/preprocess/parser_raw.ml" +# 50148 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 49229 "src/ocaml/preprocess/parser_raw.ml" +# 50154 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item list list)) in { @@ -49244,7 +50169,7 @@ module Tables = struct let _v : (Parsetree.class_type_field list list) = # 216 "" ( [] ) -# 49248 "src/ocaml/preprocess/parser_raw.ml" +# 50173 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49277,15 +50202,15 @@ module Tables = struct let x = let _startpos = _startpos__1_ in -# 1314 "src/ocaml/preprocess/parser_raw.mly" +# 1326 "src/ocaml/preprocess/parser_raw.mly" ( text_csig _startpos @ [_1] ) -# 49283 "src/ocaml/preprocess/parser_raw.ml" +# 50208 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 49289 "src/ocaml/preprocess/parser_raw.ml" +# 50214 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_type_field list list)) in { @@ -49304,7 +50229,7 @@ module Tables = struct let _v : (Parsetree.class_field list list) = # 216 "" ( [] ) -# 49308 "src/ocaml/preprocess/parser_raw.ml" +# 50233 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49337,15 +50262,15 @@ module Tables = struct let x = let _startpos = _startpos__1_ in -# 1312 "src/ocaml/preprocess/parser_raw.mly" +# 1324 "src/ocaml/preprocess/parser_raw.mly" ( text_cstr _startpos @ [_1] ) -# 49343 "src/ocaml/preprocess/parser_raw.ml" +# 50268 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 49349 "src/ocaml/preprocess/parser_raw.ml" +# 50274 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.class_field list list)) in { @@ -49364,7 +50289,7 @@ module Tables = struct let _v : (Parsetree.structure_item list list) = # 216 "" ( [] ) -# 49368 "src/ocaml/preprocess/parser_raw.ml" +# 50293 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49397,15 +50322,15 @@ module Tables = struct let x = let _startpos = _startpos__1_ in -# 1300 "src/ocaml/preprocess/parser_raw.mly" +# 1312 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 49403 "src/ocaml/preprocess/parser_raw.ml" +# 50328 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 49409 "src/ocaml/preprocess/parser_raw.ml" +# 50334 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item list list)) in { @@ -49424,7 +50349,7 @@ module Tables = struct let _v : (Parsetree.toplevel_phrase list list) = # 216 "" ( [] ) -# 49428 "src/ocaml/preprocess/parser_raw.ml" +# 50353 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -49458,32 +50383,32 @@ module Tables = struct let _1 = let x = let _1 = -# 1366 "src/ocaml/preprocess/parser_raw.mly" +# 1378 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 49464 "src/ocaml/preprocess/parser_raw.ml" +# 50389 "src/ocaml/preprocess/parser_raw.ml" in -# 1618 "src/ocaml/preprocess/parser_raw.mly" +# 1630 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49469 "src/ocaml/preprocess/parser_raw.ml" +# 50394 "src/ocaml/preprocess/parser_raw.ml" in # 188 "" ( x ) -# 49475 "src/ocaml/preprocess/parser_raw.ml" +# 50400 "src/ocaml/preprocess/parser_raw.ml" in -# 1630 "src/ocaml/preprocess/parser_raw.mly" +# 1642 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49481 "src/ocaml/preprocess/parser_raw.ml" +# 50406 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 49487 "src/ocaml/preprocess/parser_raw.ml" +# 50412 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase list list)) in { @@ -49537,58 +50462,58 @@ module Tables = struct let _1 = let _1 = let attrs = -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49543 "src/ocaml/preprocess/parser_raw.ml" +# 50468 "src/ocaml/preprocess/parser_raw.ml" in -# 1849 "src/ocaml/preprocess/parser_raw.mly" +# 1861 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 49548 "src/ocaml/preprocess/parser_raw.ml" +# 50473 "src/ocaml/preprocess/parser_raw.ml" in -# 1310 "src/ocaml/preprocess/parser_raw.mly" +# 1322 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def [_1] ) -# 49554 "src/ocaml/preprocess/parser_raw.ml" +# 50479 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 1308 "src/ocaml/preprocess/parser_raw.mly" +# 1320 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 49562 "src/ocaml/preprocess/parser_raw.ml" +# 50487 "src/ocaml/preprocess/parser_raw.ml" in -# 1368 "src/ocaml/preprocess/parser_raw.mly" +# 1380 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 49568 "src/ocaml/preprocess/parser_raw.ml" +# 50493 "src/ocaml/preprocess/parser_raw.ml" in -# 1618 "src/ocaml/preprocess/parser_raw.mly" +# 1630 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49574 "src/ocaml/preprocess/parser_raw.ml" +# 50499 "src/ocaml/preprocess/parser_raw.ml" in # 188 "" ( x ) -# 49580 "src/ocaml/preprocess/parser_raw.ml" +# 50505 "src/ocaml/preprocess/parser_raw.ml" in -# 1630 "src/ocaml/preprocess/parser_raw.mly" +# 1642 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49586 "src/ocaml/preprocess/parser_raw.ml" +# 50511 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 49592 "src/ocaml/preprocess/parser_raw.ml" +# 50517 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase list list)) in { @@ -49622,27 +50547,27 @@ module Tables = struct let x = let _1 = let _1 = -# 1310 "src/ocaml/preprocess/parser_raw.mly" +# 1322 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def [_1] ) -# 49628 "src/ocaml/preprocess/parser_raw.ml" +# 50553 "src/ocaml/preprocess/parser_raw.ml" in let _startpos = _startpos__1_ in -# 1308 "src/ocaml/preprocess/parser_raw.mly" +# 1320 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 49634 "src/ocaml/preprocess/parser_raw.ml" +# 50559 "src/ocaml/preprocess/parser_raw.ml" in -# 1630 "src/ocaml/preprocess/parser_raw.mly" +# 1642 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49640 "src/ocaml/preprocess/parser_raw.ml" +# 50565 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 49646 "src/ocaml/preprocess/parser_raw.ml" +# 50571 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase list list)) in { @@ -49679,29 +50604,29 @@ module Tables = struct let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1319 "src/ocaml/preprocess/parser_raw.mly" +# 1331 "src/ocaml/preprocess/parser_raw.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 49686 "src/ocaml/preprocess/parser_raw.ml" +# 50611 "src/ocaml/preprocess/parser_raw.ml" in let _startpos = _startpos__1_ in -# 1308 "src/ocaml/preprocess/parser_raw.mly" +# 1320 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 49693 "src/ocaml/preprocess/parser_raw.ml" +# 50618 "src/ocaml/preprocess/parser_raw.ml" in -# 1630 "src/ocaml/preprocess/parser_raw.mly" +# 1642 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 49699 "src/ocaml/preprocess/parser_raw.ml" +# 50624 "src/ocaml/preprocess/parser_raw.ml" in ( # 219 "" ( x :: xs ) -# 49705 "src/ocaml/preprocess/parser_raw.ml" +# 50630 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase list list)) in { @@ -49742,7 +50667,7 @@ module Tables = struct let _2 = # 123 "" ( None ) -# 49746 "src/ocaml/preprocess/parser_raw.ml" +# 50671 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = @@ -49750,9 +50675,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 49756 "src/ocaml/preprocess/parser_raw.ml" +# 50681 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -49760,7 +50685,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3966 "src/ocaml/preprocess/parser_raw.mly" +# 3940 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -49774,13 +50699,13 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 49778 "src/ocaml/preprocess/parser_raw.ml" +# 50703 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1555 "src/ocaml/preprocess/parser_raw.mly" +# 1567 "src/ocaml/preprocess/parser_raw.mly" ( [x], None ) -# 49784 "src/ocaml/preprocess/parser_raw.ml" +# 50709 "src/ocaml/preprocess/parser_raw.ml" : ((Longident.t Location.loc * Parsetree.pattern) list * unit option)) in { @@ -49828,7 +50753,7 @@ module Tables = struct let _2 = # 126 "" ( Some x ) -# 49832 "src/ocaml/preprocess/parser_raw.ml" +# 50757 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = @@ -49836,9 +50761,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 49842 "src/ocaml/preprocess/parser_raw.ml" +# 50767 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -49846,7 +50771,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3966 "src/ocaml/preprocess/parser_raw.mly" +# 3940 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -49860,13 +50785,13 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 49864 "src/ocaml/preprocess/parser_raw.ml" +# 50789 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1555 "src/ocaml/preprocess/parser_raw.mly" +# 1567 "src/ocaml/preprocess/parser_raw.mly" ( [x], None ) -# 49870 "src/ocaml/preprocess/parser_raw.ml" +# 50795 "src/ocaml/preprocess/parser_raw.ml" : ((Longident.t Location.loc * Parsetree.pattern) list * unit option)) in { @@ -49931,9 +50856,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 49937 "src/ocaml/preprocess/parser_raw.ml" +# 50862 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -49941,7 +50866,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3966 "src/ocaml/preprocess/parser_raw.mly" +# 3940 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -49955,13 +50880,13 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 49959 "src/ocaml/preprocess/parser_raw.ml" +# 50884 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1557 "src/ocaml/preprocess/parser_raw.mly" +# 1569 "src/ocaml/preprocess/parser_raw.mly" ( [x], Some y ) -# 49965 "src/ocaml/preprocess/parser_raw.ml" +# 50890 "src/ocaml/preprocess/parser_raw.ml" : ((Longident.t Location.loc * Parsetree.pattern) list * unit option)) in { @@ -50019,9 +50944,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 50025 "src/ocaml/preprocess/parser_raw.ml" +# 50950 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -50029,7 +50954,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3966 "src/ocaml/preprocess/parser_raw.mly" +# 3940 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, pat = match opat with | None -> @@ -50043,14 +50968,14 @@ module Tables = struct in label, mkpat_with_modes ~loc:constraint_loc ~modes:[] ~pat ~cty:octy ) -# 50047 "src/ocaml/preprocess/parser_raw.ml" +# 50972 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1561 "src/ocaml/preprocess/parser_raw.mly" +# 1573 "src/ocaml/preprocess/parser_raw.mly" ( let xs, y = tail in x :: xs, y ) -# 50054 "src/ocaml/preprocess/parser_raw.ml" +# 50979 "src/ocaml/preprocess/parser_raw.ml" : ((Longident.t Location.loc * Parsetree.pattern) list * unit option)) in { @@ -50088,9 +51013,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.case) = -# 3509 "src/ocaml/preprocess/parser_raw.mly" +# 3490 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 (merloc _endpos__2_ _3) ) -# 50094 "src/ocaml/preprocess/parser_raw.ml" +# 51019 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50141,9 +51066,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__5_ in let _v : (Parsetree.case) = -# 3511 "src/ocaml/preprocess/parser_raw.mly" +# 3492 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 ~guard:(merloc _endpos__2_ _3) (merloc _endpos__4_ _5) ) -# 50147 "src/ocaml/preprocess/parser_raw.ml" +# 51072 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50182,10 +51107,10 @@ module Tables = struct let _v = let _loc__3_ = (_startpos__3_, _endpos__3_) in ( -# 3513 "src/ocaml/preprocess/parser_raw.mly" +# 3494 "src/ocaml/preprocess/parser_raw.mly" ( Exp.case _1 (merloc _endpos__2_ (Exp.unreachable ~loc:(make_loc _loc__3_) ())) ) -# 50189 "src/ocaml/preprocess/parser_raw.ml" +# 51114 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.case)) in { @@ -50247,9 +51172,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 50253 "src/ocaml/preprocess/parser_raw.ml" +# 51178 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50259,49 +51184,49 @@ module Tables = struct let _6 = let _1 = _1_inlined3 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50265 "src/ocaml/preprocess/parser_raw.ml" +# 51190 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__6_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50274 "src/ocaml/preprocess/parser_raw.ml" +# 51199 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _3 = let _1 = _1_inlined1 in -# 4499 "src/ocaml/preprocess/parser_raw.mly" +# 4507 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50283 "src/ocaml/preprocess/parser_raw.ml" +# 51208 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50290 "src/ocaml/preprocess/parser_raw.ml" +# 51215 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 50298 "src/ocaml/preprocess/parser_raw.ml" +# 51223 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5001 "src/ocaml/preprocess/parser_raw.mly" +# 5000 "src/ocaml/preprocess/parser_raw.mly" ( let info = match rhs_info _endpos__4_ with | Some _ as info_before_semi -> info_before_semi @@ -50309,13 +51234,13 @@ module Tables = struct in let attrs = add_info_attrs info (_4 @ _6) in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 50313 "src/ocaml/preprocess/parser_raw.ml" +# 51238 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4982 "src/ocaml/preprocess/parser_raw.mly" +# 4981 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = tail in (head :: f, c) ) -# 50319 "src/ocaml/preprocess/parser_raw.ml" +# 51244 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.object_field list * Asttypes.closed_flag)) in { @@ -50358,15 +51283,15 @@ module Tables = struct let _symbolstartpos = _startpos_ty_ in let _sloc = (_symbolstartpos, _endpos) in -# 5012 "src/ocaml/preprocess/parser_raw.mly" +# 5011 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 50364 "src/ocaml/preprocess/parser_raw.ml" +# 51289 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4982 "src/ocaml/preprocess/parser_raw.mly" +# 4981 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = tail in (head :: f, c) ) -# 50370 "src/ocaml/preprocess/parser_raw.ml" +# 51295 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.object_field list * Asttypes.closed_flag)) in { @@ -50421,9 +51346,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 50427 "src/ocaml/preprocess/parser_raw.ml" +# 51352 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50433,49 +51358,49 @@ module Tables = struct let _6 = let _1 = _1_inlined3 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50439 "src/ocaml/preprocess/parser_raw.ml" +# 51364 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__6_ = _endpos__1_inlined3_ in let _4 = let _1 = _1_inlined2 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50448 "src/ocaml/preprocess/parser_raw.ml" +# 51373 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _3 = let _1 = _1_inlined1 in -# 4499 "src/ocaml/preprocess/parser_raw.mly" +# 4507 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50457 "src/ocaml/preprocess/parser_raw.ml" +# 51382 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50464 "src/ocaml/preprocess/parser_raw.ml" +# 51389 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 50472 "src/ocaml/preprocess/parser_raw.ml" +# 51397 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5001 "src/ocaml/preprocess/parser_raw.mly" +# 5000 "src/ocaml/preprocess/parser_raw.mly" ( let info = match rhs_info _endpos__4_ with | Some _ as info_before_semi -> info_before_semi @@ -50483,13 +51408,13 @@ module Tables = struct in let attrs = add_info_attrs info (_4 @ _6) in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 50487 "src/ocaml/preprocess/parser_raw.ml" +# 51412 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4985 "src/ocaml/preprocess/parser_raw.mly" +# 4984 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 50493 "src/ocaml/preprocess/parser_raw.ml" +# 51418 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.object_field list * Asttypes.closed_flag)) in { @@ -50525,15 +51450,15 @@ module Tables = struct let _symbolstartpos = _startpos_ty_ in let _sloc = (_symbolstartpos, _endpos) in -# 5012 "src/ocaml/preprocess/parser_raw.mly" +# 5011 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 50531 "src/ocaml/preprocess/parser_raw.ml" +# 51456 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4985 "src/ocaml/preprocess/parser_raw.mly" +# 4984 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 50537 "src/ocaml/preprocess/parser_raw.ml" +# 51462 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.object_field list * Asttypes.closed_flag)) in { @@ -50574,9 +51499,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 50580 "src/ocaml/preprocess/parser_raw.ml" +# 51505 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -50586,50 +51511,50 @@ module Tables = struct let _4 = let _1 = _1_inlined2 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50592 "src/ocaml/preprocess/parser_raw.ml" +# 51517 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__4_ = _endpos__1_inlined2_ in let _3 = let _1 = _1_inlined1 in -# 4499 "src/ocaml/preprocess/parser_raw.mly" +# 4507 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50601 "src/ocaml/preprocess/parser_raw.ml" +# 51526 "src/ocaml/preprocess/parser_raw.ml" in let _1 = let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50608 "src/ocaml/preprocess/parser_raw.ml" +# 51533 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 50616 "src/ocaml/preprocess/parser_raw.ml" +# 51541 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4994 "src/ocaml/preprocess/parser_raw.mly" +# 4993 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _4 in Of.tag ~loc:(make_loc _sloc) ~attrs _1 _3 ) -# 50627 "src/ocaml/preprocess/parser_raw.ml" +# 51552 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4988 "src/ocaml/preprocess/parser_raw.mly" +# 4987 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 50633 "src/ocaml/preprocess/parser_raw.ml" +# 51558 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.object_field list * Asttypes.closed_flag)) in { @@ -50658,15 +51583,15 @@ module Tables = struct let _symbolstartpos = _startpos_ty_ in let _sloc = (_symbolstartpos, _endpos) in -# 5012 "src/ocaml/preprocess/parser_raw.mly" +# 5011 "src/ocaml/preprocess/parser_raw.mly" ( Of.inherit_ ~loc:(make_loc _sloc) ty ) -# 50664 "src/ocaml/preprocess/parser_raw.ml" +# 51589 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4988 "src/ocaml/preprocess/parser_raw.mly" +# 4987 "src/ocaml/preprocess/parser_raw.mly" ( [head], Closed ) -# 50670 "src/ocaml/preprocess/parser_raw.ml" +# 51595 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.object_field list * Asttypes.closed_flag)) in { @@ -50690,9 +51615,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.object_field list * Asttypes.closed_flag) = -# 4990 "src/ocaml/preprocess/parser_raw.mly" +# 4989 "src/ocaml/preprocess/parser_raw.mly" ( [], Open ) -# 50696 "src/ocaml/preprocess/parser_raw.ml" +# 51621 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -50737,9 +51662,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 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 50743 "src/ocaml/preprocess/parser_raw.ml" +# 51668 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let private_ : (Asttypes.private_flag) = Obj.magic private_ in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -50750,41 +51675,41 @@ module Tables = struct let ty = let _1 = _1_inlined2 in -# 4495 "src/ocaml/preprocess/parser_raw.mly" +# 4474 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50756 "src/ocaml/preprocess/parser_raw.ml" +# 51681 "src/ocaml/preprocess/parser_raw.ml" in let label = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50764 "src/ocaml/preprocess/parser_raw.ml" +# 51689 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 50772 "src/ocaml/preprocess/parser_raw.ml" +# 51697 "src/ocaml/preprocess/parser_raw.ml" in let attrs = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50778 "src/ocaml/preprocess/parser_raw.ml" +# 51703 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5307 "src/ocaml/preprocess/parser_raw.mly" +# 5306 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 50783 "src/ocaml/preprocess/parser_raw.ml" +# 51708 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2509 "src/ocaml/preprocess/parser_raw.mly" +# 2536 "src/ocaml/preprocess/parser_raw.mly" ( (label, private_, Cfk_virtual ty), attrs ) -# 50788 "src/ocaml/preprocess/parser_raw.ml" +# 51713 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes)) in @@ -50824,9 +51749,9 @@ module Tables = struct } = _menhir_stack in let _1_inlined2 : (Parsetree.modes -> Parsetree.expression) = Obj.magic _1_inlined2 in let _1_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 50830 "src/ocaml/preprocess/parser_raw.ml" +# 51755 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -50837,44 +51762,44 @@ module Tables = struct let _5 = let _1 = _1_inlined2 in -# 3487 "src/ocaml/preprocess/parser_raw.mly" +# 3468 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 50843 "src/ocaml/preprocess/parser_raw.ml" +# 51768 "src/ocaml/preprocess/parser_raw.ml" in let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50851 "src/ocaml/preprocess/parser_raw.ml" +# 51776 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 50859 "src/ocaml/preprocess/parser_raw.ml" +# 51784 "src/ocaml/preprocess/parser_raw.ml" in let _2 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50865 "src/ocaml/preprocess/parser_raw.ml" +# 51790 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5310 "src/ocaml/preprocess/parser_raw.mly" +# 5309 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 50870 "src/ocaml/preprocess/parser_raw.ml" +# 51795 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2511 "src/ocaml/preprocess/parser_raw.mly" +# 2538 "src/ocaml/preprocess/parser_raw.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 ) -# 50878 "src/ocaml/preprocess/parser_raw.ml" +# 51803 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes)) in @@ -50920,9 +51845,9 @@ module Tables = struct } = _menhir_stack in let _1_inlined3 : (Parsetree.modes -> Parsetree.expression) = Obj.magic _1_inlined3 in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 50926 "src/ocaml/preprocess/parser_raw.ml" +# 51851 "src/ocaml/preprocess/parser_raw.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 @@ -50934,47 +51859,47 @@ module Tables = struct let _5 = let _1 = _1_inlined3 in -# 3487 "src/ocaml/preprocess/parser_raw.mly" +# 3468 "src/ocaml/preprocess/parser_raw.mly" (_1 []) -# 50940 "src/ocaml/preprocess/parser_raw.ml" +# 51865 "src/ocaml/preprocess/parser_raw.ml" in let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50948 "src/ocaml/preprocess/parser_raw.ml" +# 51873 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 50956 "src/ocaml/preprocess/parser_raw.ml" +# 51881 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 50964 "src/ocaml/preprocess/parser_raw.ml" +# 51889 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5311 "src/ocaml/preprocess/parser_raw.mly" +# 5310 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 50970 "src/ocaml/preprocess/parser_raw.ml" +# 51895 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2511 "src/ocaml/preprocess/parser_raw.mly" +# 2538 "src/ocaml/preprocess/parser_raw.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 ) -# 50978 "src/ocaml/preprocess/parser_raw.ml" +# 51903 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes)) in @@ -51035,9 +51960,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 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51041 "src/ocaml/preprocess/parser_raw.ml" +# 51966 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -51048,45 +51973,45 @@ module Tables = struct let _6 = let _1 = _1_inlined2 in -# 4495 "src/ocaml/preprocess/parser_raw.mly" +# 4474 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51054 "src/ocaml/preprocess/parser_raw.ml" +# 51979 "src/ocaml/preprocess/parser_raw.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 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51063 "src/ocaml/preprocess/parser_raw.ml" +# 51988 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 51071 "src/ocaml/preprocess/parser_raw.ml" +# 51996 "src/ocaml/preprocess/parser_raw.ml" in let _2 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51077 "src/ocaml/preprocess/parser_raw.ml" +# 52002 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5310 "src/ocaml/preprocess/parser_raw.mly" +# 5309 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 51082 "src/ocaml/preprocess/parser_raw.ml" +# 52007 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2517 "src/ocaml/preprocess/parser_raw.mly" +# 2544 "src/ocaml/preprocess/parser_raw.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 ) -# 51090 "src/ocaml/preprocess/parser_raw.ml" +# 52015 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes)) in @@ -51153,9 +52078,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 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51159 "src/ocaml/preprocess/parser_raw.ml" +# 52084 "src/ocaml/preprocess/parser_raw.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 @@ -51167,48 +52092,48 @@ module Tables = struct let _6 = let _1 = _1_inlined3 in -# 4495 "src/ocaml/preprocess/parser_raw.mly" +# 4474 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51173 "src/ocaml/preprocess/parser_raw.ml" +# 52098 "src/ocaml/preprocess/parser_raw.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 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51182 "src/ocaml/preprocess/parser_raw.ml" +# 52107 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 51190 "src/ocaml/preprocess/parser_raw.ml" +# 52115 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51198 "src/ocaml/preprocess/parser_raw.ml" +# 52123 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5311 "src/ocaml/preprocess/parser_raw.mly" +# 5310 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 51204 "src/ocaml/preprocess/parser_raw.ml" +# 52129 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2517 "src/ocaml/preprocess/parser_raw.mly" +# 2544 "src/ocaml/preprocess/parser_raw.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 ) -# 51212 "src/ocaml/preprocess/parser_raw.ml" +# 52137 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes)) in @@ -51290,9 +52215,9 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51296 "src/ocaml/preprocess/parser_raw.ml" +# 52221 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.private_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -51303,30 +52228,30 @@ module Tables = struct let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51309 "src/ocaml/preprocess/parser_raw.ml" +# 52234 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 51317 "src/ocaml/preprocess/parser_raw.ml" +# 52242 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__4_ = _startpos__1_inlined1_ in let _2 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51324 "src/ocaml/preprocess/parser_raw.ml" +# 52249 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in let _1 = -# 5310 "src/ocaml/preprocess/parser_raw.mly" +# 5309 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 51330 "src/ocaml/preprocess/parser_raw.ml" +# 52255 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos__11_ in @@ -51342,7 +52267,7 @@ module Tables = struct _startpos__4_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2523 "src/ocaml/preprocess/parser_raw.mly" +# 2550 "src/ocaml/preprocess/parser_raw.mly" ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in let poly_exp = let exp, poly = @@ -51353,7 +52278,7 @@ module Tables = struct ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 51357 "src/ocaml/preprocess/parser_raw.ml" +# 52282 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes)) in @@ -51441,9 +52366,9 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51447 "src/ocaml/preprocess/parser_raw.ml" +# 52372 "src/ocaml/preprocess/parser_raw.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 @@ -51455,33 +52380,33 @@ module Tables = struct let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51461 "src/ocaml/preprocess/parser_raw.ml" +# 52386 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 51469 "src/ocaml/preprocess/parser_raw.ml" +# 52394 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__4_ = _startpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51478 "src/ocaml/preprocess/parser_raw.ml" +# 52403 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let _1 = -# 5311 "src/ocaml/preprocess/parser_raw.mly" +# 5310 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 51485 "src/ocaml/preprocess/parser_raw.ml" +# 52410 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__11_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -51496,7 +52421,7 @@ module Tables = struct _startpos__4_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2523 "src/ocaml/preprocess/parser_raw.mly" +# 2550 "src/ocaml/preprocess/parser_raw.mly" ( let poly_exp_loc = (_startpos__7_, _endpos__11_) in let poly_exp = let exp, poly = @@ -51507,7 +52432,7 @@ module Tables = struct ghexp ~loc:poly_exp_loc (Pexp_poly(exp, Some poly)) in (_4, _3, Cfk_concrete (_1, poly_exp)), _2 ) -# 51511 "src/ocaml/preprocess/parser_raw.ml" +# 52436 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Asttypes.private_flag * Parsetree.class_field_kind) * Parsetree.attributes)) in @@ -51528,17 +52453,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51534 "src/ocaml/preprocess/parser_raw.ml" +# 52459 "src/ocaml/preprocess/parser_raw.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) = -# 5139 "src/ocaml/preprocess/parser_raw.mly" +# 5138 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 51542 "src/ocaml/preprocess/parser_raw.ml" +# 52467 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51569,9 +52494,9 @@ module Tables = struct }; } = _menhir_stack in let _3 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51575 "src/ocaml/preprocess/parser_raw.ml" +# 52500 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -51579,9 +52504,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5140 "src/ocaml/preprocess/parser_raw.mly" +# 5139 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 51585 "src/ocaml/preprocess/parser_raw.ml" +# 52510 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51600,17 +52525,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1155 "src/ocaml/preprocess/parser_raw.mly" +# 1167 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51606 "src/ocaml/preprocess/parser_raw.ml" +# 52531 "src/ocaml/preprocess/parser_raw.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) = -# 5139 "src/ocaml/preprocess/parser_raw.mly" +# 5138 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 51614 "src/ocaml/preprocess/parser_raw.ml" +# 52539 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51641,9 +52566,9 @@ module Tables = struct }; } = _menhir_stack in let _3 : ( -# 1155 "src/ocaml/preprocess/parser_raw.mly" +# 1167 "src/ocaml/preprocess/parser_raw.mly" (string) -# 51647 "src/ocaml/preprocess/parser_raw.ml" +# 52572 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -51651,9 +52576,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5140 "src/ocaml/preprocess/parser_raw.mly" +# 5139 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 51657 "src/ocaml/preprocess/parser_raw.ml" +# 52582 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51677,14 +52602,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5189 "src/ocaml/preprocess/parser_raw.mly" +# 5188 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51683 "src/ocaml/preprocess/parser_raw.ml" +# 52608 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5139 "src/ocaml/preprocess/parser_raw.mly" +# 5138 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 51688 "src/ocaml/preprocess/parser_raw.ml" +# 52613 "src/ocaml/preprocess/parser_raw.ml" : (Longident.t)) in { @@ -51724,20 +52649,20 @@ module Tables = struct let _v = let _1 = let _1 = -# 5119 "src/ocaml/preprocess/parser_raw.mly" +# 5118 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 51730 "src/ocaml/preprocess/parser_raw.ml" +# 52655 "src/ocaml/preprocess/parser_raw.ml" in -# 5189 "src/ocaml/preprocess/parser_raw.mly" +# 5188 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51735 "src/ocaml/preprocess/parser_raw.ml" +# 52660 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5139 "src/ocaml/preprocess/parser_raw.mly" +# 5138 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 51741 "src/ocaml/preprocess/parser_raw.ml" +# 52666 "src/ocaml/preprocess/parser_raw.ml" : (Longident.t)) in { @@ -51762,14 +52687,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5189 "src/ocaml/preprocess/parser_raw.mly" +# 5188 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51768 "src/ocaml/preprocess/parser_raw.ml" +# 52693 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5139 "src/ocaml/preprocess/parser_raw.mly" +# 5138 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 51773 "src/ocaml/preprocess/parser_raw.ml" +# 52698 "src/ocaml/preprocess/parser_raw.ml" : (Longident.t)) in { @@ -51810,15 +52735,15 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 5189 "src/ocaml/preprocess/parser_raw.mly" +# 5188 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51816 "src/ocaml/preprocess/parser_raw.ml" +# 52741 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5140 "src/ocaml/preprocess/parser_raw.mly" +# 5139 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 51822 "src/ocaml/preprocess/parser_raw.ml" +# 52747 "src/ocaml/preprocess/parser_raw.ml" : (Longident.t)) in { @@ -51872,20 +52797,20 @@ module Tables = struct let _v = let _3 = let _1 = -# 5119 "src/ocaml/preprocess/parser_raw.mly" +# 5118 "src/ocaml/preprocess/parser_raw.mly" ( "::" ) -# 51878 "src/ocaml/preprocess/parser_raw.ml" +# 52803 "src/ocaml/preprocess/parser_raw.ml" in -# 5189 "src/ocaml/preprocess/parser_raw.mly" +# 5188 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51883 "src/ocaml/preprocess/parser_raw.ml" +# 52808 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5140 "src/ocaml/preprocess/parser_raw.mly" +# 5139 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 51889 "src/ocaml/preprocess/parser_raw.ml" +# 52814 "src/ocaml/preprocess/parser_raw.ml" : (Longident.t)) in { @@ -51926,15 +52851,15 @@ module Tables = struct let _3 = let _1 = _1_inlined1 in -# 5189 "src/ocaml/preprocess/parser_raw.mly" +# 5188 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 51932 "src/ocaml/preprocess/parser_raw.ml" +# 52857 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5140 "src/ocaml/preprocess/parser_raw.mly" +# 5139 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 51938 "src/ocaml/preprocess/parser_raw.ml" +# 52863 "src/ocaml/preprocess/parser_raw.ml" : (Longident.t)) in { @@ -51958,9 +52883,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5139 "src/ocaml/preprocess/parser_raw.mly" +# 5138 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 51964 "src/ocaml/preprocess/parser_raw.ml" +# 52889 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -51997,9 +52922,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5140 "src/ocaml/preprocess/parser_raw.mly" +# 5139 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 52003 "src/ocaml/preprocess/parser_raw.ml" +# 52928 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52022,9 +52947,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5139 "src/ocaml/preprocess/parser_raw.mly" +# 5138 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 52028 "src/ocaml/preprocess/parser_raw.ml" +# 52953 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52061,9 +52986,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5140 "src/ocaml/preprocess/parser_raw.mly" +# 5139 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 52067 "src/ocaml/preprocess/parser_raw.ml" +# 52992 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52086,9 +53011,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5139 "src/ocaml/preprocess/parser_raw.mly" +# 5138 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 52092 "src/ocaml/preprocess/parser_raw.ml" +# 53017 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52125,9 +53050,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5140 "src/ocaml/preprocess/parser_raw.mly" +# 5139 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 52131 "src/ocaml/preprocess/parser_raw.ml" +# 53056 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52146,17 +53071,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52152 "src/ocaml/preprocess/parser_raw.ml" +# 53077 "src/ocaml/preprocess/parser_raw.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) = -# 5139 "src/ocaml/preprocess/parser_raw.mly" +# 5138 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 52160 "src/ocaml/preprocess/parser_raw.ml" +# 53085 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52187,9 +53112,9 @@ module Tables = struct }; } = _menhir_stack in let _3 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52193 "src/ocaml/preprocess/parser_raw.ml" +# 53118 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -52197,9 +53122,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5140 "src/ocaml/preprocess/parser_raw.mly" +# 5139 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 52203 "src/ocaml/preprocess/parser_raw.ml" +# 53128 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52218,17 +53143,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1155 "src/ocaml/preprocess/parser_raw.mly" +# 1167 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52224 "src/ocaml/preprocess/parser_raw.ml" +# 53149 "src/ocaml/preprocess/parser_raw.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) = -# 5139 "src/ocaml/preprocess/parser_raw.mly" +# 5138 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 52232 "src/ocaml/preprocess/parser_raw.ml" +# 53157 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52259,9 +53184,9 @@ module Tables = struct }; } = _menhir_stack in let _3 : ( -# 1155 "src/ocaml/preprocess/parser_raw.mly" +# 1167 "src/ocaml/preprocess/parser_raw.mly" (string) -# 52265 "src/ocaml/preprocess/parser_raw.ml" +# 53190 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : (Longident.t) = Obj.magic _1 in @@ -52269,9 +53194,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5140 "src/ocaml/preprocess/parser_raw.mly" +# 5139 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 52275 "src/ocaml/preprocess/parser_raw.ml" +# 53200 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52294,9 +53219,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5139 "src/ocaml/preprocess/parser_raw.mly" +# 5138 "src/ocaml/preprocess/parser_raw.mly" ( Lident _1 ) -# 52300 "src/ocaml/preprocess/parser_raw.ml" +# 53225 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52333,9 +53258,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Longident.t) = -# 5140 "src/ocaml/preprocess/parser_raw.mly" +# 5139 "src/ocaml/preprocess/parser_raw.mly" ( Ldot(_1,_3) ) -# 52339 "src/ocaml/preprocess/parser_raw.ml" +# 53264 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52358,9 +53283,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5165 "src/ocaml/preprocess/parser_raw.mly" +# 5164 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52364 "src/ocaml/preprocess/parser_raw.ml" +# 53289 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52408,9 +53333,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5167 "src/ocaml/preprocess/parser_raw.mly" +# 5166 "src/ocaml/preprocess/parser_raw.mly" ( lapply ~loc:_sloc _1 _3 ) -# 52414 "src/ocaml/preprocess/parser_raw.ml" +# 53339 "src/ocaml/preprocess/parser_raw.ml" : (Longident.t)) in { @@ -52434,9 +53359,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5162 "src/ocaml/preprocess/parser_raw.mly" +# 5161 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52440 "src/ocaml/preprocess/parser_raw.ml" +# 53365 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52466,9 +53391,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos_me_ in let _v : (Parsetree.module_expr) = -# 1926 "src/ocaml/preprocess/parser_raw.mly" +# 1946 "src/ocaml/preprocess/parser_raw.mly" ( me ) -# 52472 "src/ocaml/preprocess/parser_raw.ml" +# 53397 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -52486,14 +53411,14 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_me_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; + 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; @@ -52505,8 +53430,8 @@ module Tables = struct }; } = _menhir_stack in let me : (Parsetree.module_expr) = Obj.magic me in - let _4 : unit = Obj.magic _4 in - let mty : (Parsetree.module_type) = Obj.magic mty in + let _2 : unit = Obj.magic _2 in + let _1_inlined1 : (Parsetree.module_type) = 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 @@ -52514,15 +53439,29 @@ module Tables = struct let _v = let _1 = let _1 = - let mm = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 52521 "src/ocaml/preprocess/parser_raw.ml" - in + let mty_mm = + let mty_mm = + let _1 = _1_inlined1 in + +# 2151 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 53449 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 1937 "src/ocaml/preprocess/parser_raw.mly" + ( let mty, mm = mty_mm in + (Some mty, mm) + ) +# 53457 "src/ocaml/preprocess/parser_raw.ml" + + in -# 1933 "src/ocaml/preprocess/parser_raw.mly" - ( Pmod_constraint(me, Some mty, mm) ) -# 52526 "src/ocaml/preprocess/parser_raw.ml" +# 1953 "src/ocaml/preprocess/parser_raw.mly" + ( + let mty, mm = mty_mm in + Pmod_constraint(me, mty, mm) ) +# 53465 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_me_ in @@ -52530,15 +53469,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1339 "src/ocaml/preprocess/parser_raw.mly" +# 1351 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 52536 "src/ocaml/preprocess/parser_raw.ml" +# 53475 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1939 "src/ocaml/preprocess/parser_raw.mly" +# 1959 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52542 "src/ocaml/preprocess/parser_raw.ml" +# 53481 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -52557,19 +53496,19 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos_me_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _4; - MenhirLib.EngineTypes.startp = _startpos__4_; - MenhirLib.EngineTypes.endp = _endpos__4_; + 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.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; + 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; @@ -52582,9 +53521,9 @@ module Tables = struct }; } = _menhir_stack in let me : (Parsetree.module_expr) = Obj.magic me in - let _4 : unit = Obj.magic _4 in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let mty : (Parsetree.module_type) = Obj.magic mty in + let _2 : unit = Obj.magic _2 in + let _2_inlined1 : (Parsetree.modes) = Obj.magic _2_inlined1 in + let _1_inlined1 : (Parsetree.module_type) = 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 @@ -52592,18 +53531,30 @@ module Tables = struct let _v = let _1 = let _1 = - let mm = - let _1 = _1_inlined1 in + let mty_mm = + let _2 = _2_inlined1 in + let mty_mm = + let _1 = _1_inlined1 in + +# 2152 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 53542 "src/ocaml/preprocess/parser_raw.ml" + + in -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 52601 "src/ocaml/preprocess/parser_raw.ml" +# 1937 "src/ocaml/preprocess/parser_raw.mly" + ( let mty, mm = mty_mm in + (Some mty, mm) + ) +# 53550 "src/ocaml/preprocess/parser_raw.ml" in -# 1933 "src/ocaml/preprocess/parser_raw.mly" - ( Pmod_constraint(me, Some mty, mm) ) -# 52607 "src/ocaml/preprocess/parser_raw.ml" +# 1953 "src/ocaml/preprocess/parser_raw.mly" + ( + let mty, mm = mty_mm in + Pmod_constraint(me, mty, mm) ) +# 53558 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_me_ in @@ -52611,15 +53562,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1339 "src/ocaml/preprocess/parser_raw.mly" +# 1351 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 52617 "src/ocaml/preprocess/parser_raw.ml" +# 53568 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1939 "src/ocaml/preprocess/parser_raw.mly" +# 1959 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52623 "src/ocaml/preprocess/parser_raw.ml" +# 53574 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -52643,40 +53594,49 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = mm; - MenhirLib.EngineTypes.startp = _startpos_mm_; - MenhirLib.EngineTypes.endp = _endpos_mm_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in let me : (Parsetree.module_expr) = Obj.magic me in let _2 : unit = Obj.magic _2 in - let mm : (Parsetree.modes) = Obj.magic mm in + let _1 : (Parsetree.modes) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_mm_ in + let _startpos = _startpos__1_ in let _endpos = _endpos_me_ in let _v = let _1 = - let _1 = -# 1935 "src/ocaml/preprocess/parser_raw.mly" - ( Pmod_constraint(me, None, mm) ) -# 52665 "src/ocaml/preprocess/parser_raw.ml" - in - let (_endpos__1_, _startpos__1_) = (_endpos_me_, _startpos_mm_) in + let _1 = + let mty_mm = +# 1941 "src/ocaml/preprocess/parser_raw.mly" + ( (None, _1) ) +# 53617 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1953 "src/ocaml/preprocess/parser_raw.mly" + ( + let mty, mm = mty_mm in + Pmod_constraint(me, mty, mm) ) +# 53624 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos__1_ = _endpos_me_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1339 "src/ocaml/preprocess/parser_raw.mly" +# 1351 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 52674 "src/ocaml/preprocess/parser_raw.ml" +# 53634 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1939 "src/ocaml/preprocess/parser_raw.mly" +# 1959 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52680 "src/ocaml/preprocess/parser_raw.ml" +# 53640 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -52709,25 +53669,25 @@ module Tables = struct let _v = let _1 = let _1 = -# 1937 "src/ocaml/preprocess/parser_raw.mly" +# 1957 "src/ocaml/preprocess/parser_raw.mly" ( let (_, arg) = arg_and_pos in Pmod_functor(arg, body) ) -# 52716 "src/ocaml/preprocess/parser_raw.ml" +# 53676 "src/ocaml/preprocess/parser_raw.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 -# 1339 "src/ocaml/preprocess/parser_raw.mly" +# 1351 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 52725 "src/ocaml/preprocess/parser_raw.ml" +# 53685 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1939 "src/ocaml/preprocess/parser_raw.mly" +# 1959 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 52731 "src/ocaml/preprocess/parser_raw.ml" +# 53691 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -52741,14 +53701,14 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mm; - MenhirLib.EngineTypes.startp = _startpos_mm_; - MenhirLib.EngineTypes.endp = _endpos_mm_; + MenhirLib.EngineTypes.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; + 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; @@ -52758,17 +53718,27 @@ module Tables = struct }; }; } = _menhir_stack in - let mm : (Parsetree.modalities) = Obj.magic mm in - let mty : (Parsetree.module_type) = Obj.magic mty in + let _2 : (Parsetree.modalities) = Obj.magic _2 in + let _1_inlined1 : (Parsetree.module_type) = 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_mm_ in - let _v : (Parsetree.module_type * Parsetree.modalities) = -# 2221 "src/ocaml/preprocess/parser_raw.mly" - ( mty, mm ) -# 52771 "src/ocaml/preprocess/parser_raw.ml" - in + let _endpos = _endpos__2_ in + let _v = + let mty_mm = + let _1 = _1_inlined1 in + +# 2231 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _2) ) +# 53734 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2248 "src/ocaml/preprocess/parser_raw.mly" + ( mty_mm ) +# 53740 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type * Parsetree.modalities)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -52799,26 +53769,26 @@ module Tables = struct let _v = let _1 = let _1 = -# 2228 "src/ocaml/preprocess/parser_raw.mly" +# 2255 "src/ocaml/preprocess/parser_raw.mly" ( let (_, arg) = arg_and_pos in let (ret, mret) = body in Pmty_functor(arg, ret, mret) ) -# 52807 "src/ocaml/preprocess/parser_raw.ml" +# 53777 "src/ocaml/preprocess/parser_raw.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 -# 1341 "src/ocaml/preprocess/parser_raw.mly" +# 1353 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 52816 "src/ocaml/preprocess/parser_raw.ml" +# 53786 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2232 "src/ocaml/preprocess/parser_raw.mly" +# 2259 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 52822 "src/ocaml/preprocess/parser_raw.ml" +# 53792 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type * Parsetree.modalities)) in { @@ -52832,9 +53802,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; + 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; @@ -52843,21 +53813,24 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let mty : (Parsetree.module_type) = Obj.magic mty in + let _1_inlined1 : (Parsetree.module_type) = 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_mty_ in + let _endpos = _endpos__1_inlined1_ in let _v = - let mm = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 52856 "src/ocaml/preprocess/parser_raw.ml" - in + let mty_mm = + let _1 = _1_inlined1 in + +# 2151 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 53828 "src/ocaml/preprocess/parser_raw.ml" + + in ( -# 2221 "src/ocaml/preprocess/parser_raw.mly" - ( mty, mm ) -# 52861 "src/ocaml/preprocess/parser_raw.ml" +# 2248 "src/ocaml/preprocess/parser_raw.mly" + ( mty_mm ) +# 53834 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type * Parsetree.modes)) in { @@ -52871,14 +53844,14 @@ 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 = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; + 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; @@ -52888,25 +53861,25 @@ module Tables = struct }; }; } = _menhir_stack in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let mty : (Parsetree.module_type) = Obj.magic mty in + let _2 : (Parsetree.modes) = Obj.magic _2 in + let _1_inlined1 : (Parsetree.module_type) = 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 _endpos = _endpos__2_ in let _v = - let mm = + let mty_mm = let _1 = _1_inlined1 in -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 52904 "src/ocaml/preprocess/parser_raw.ml" +# 2152 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 53877 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2221 "src/ocaml/preprocess/parser_raw.mly" - ( mty, mm ) -# 52910 "src/ocaml/preprocess/parser_raw.ml" +# 2248 "src/ocaml/preprocess/parser_raw.mly" + ( mty_mm ) +# 53883 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type * Parsetree.modes)) in { @@ -52939,26 +53912,26 @@ module Tables = struct let _v = let _1 = let _1 = -# 2228 "src/ocaml/preprocess/parser_raw.mly" +# 2255 "src/ocaml/preprocess/parser_raw.mly" ( let (_, arg) = arg_and_pos in let (ret, mret) = body in Pmty_functor(arg, ret, mret) ) -# 52947 "src/ocaml/preprocess/parser_raw.ml" +# 53920 "src/ocaml/preprocess/parser_raw.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 -# 1341 "src/ocaml/preprocess/parser_raw.mly" +# 1353 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 52956 "src/ocaml/preprocess/parser_raw.ml" +# 53929 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2232 "src/ocaml/preprocess/parser_raw.mly" +# 2259 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 52962 "src/ocaml/preprocess/parser_raw.ml" +# 53935 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type * Parsetree.modes)) in { @@ -53006,18 +53979,18 @@ module Tables = struct let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53012 "src/ocaml/preprocess/parser_raw.ml" +# 53985 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1735 "src/ocaml/preprocess/parser_raw.mly" +# 1748 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_structure s) ) -# 53021 "src/ocaml/preprocess/parser_raw.ml" +# 53994 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -53072,22 +54045,22 @@ module Tables = struct let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53078 "src/ocaml/preprocess/parser_raw.ml" +# 54051 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_me_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1745 "src/ocaml/preprocess/parser_raw.mly" +# 1758 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mod_attrs ~loc:_sloc attrs ( List.fold_left (fun acc (startpos, arg) -> mkmod ~loc:(startpos, _endpos) (Pmod_functor (arg, acc)) ) me args ) ) -# 53091 "src/ocaml/preprocess/parser_raw.ml" +# 54064 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -53111,9 +54084,9 @@ module Tables = struct let _startpos = _startpos_me_ in let _endpos = _endpos_me_ in let _v : (Parsetree.module_expr) = -# 1751 "src/ocaml/preprocess/parser_raw.mly" +# 1764 "src/ocaml/preprocess/parser_raw.mly" ( me ) -# 53117 "src/ocaml/preprocess/parser_raw.ml" +# 54090 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53147,14 +54120,14 @@ module Tables = struct let _symbolstartpos = _startpos_me_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1753 "src/ocaml/preprocess/parser_raw.mly" +# 1766 "src/ocaml/preprocess/parser_raw.mly" ( match attr with | { attr_name = { txt = "jane.non_erasable.instances"; loc = _ }; attr_payload = PStr []; } -> mkmod ~loc:_sloc (pmod_instance me) | attr -> Mod.attr me attr ) -# 53158 "src/ocaml/preprocess/parser_raw.ml" +# 54131 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -53185,30 +54158,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 53191 "src/ocaml/preprocess/parser_raw.ml" +# 54164 "src/ocaml/preprocess/parser_raw.ml" in -# 1762 "src/ocaml/preprocess/parser_raw.mly" +# 1775 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_ident x ) -# 53197 "src/ocaml/preprocess/parser_raw.ml" +# 54170 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1339 "src/ocaml/preprocess/parser_raw.mly" +# 1351 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 53206 "src/ocaml/preprocess/parser_raw.ml" +# 54179 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1777 "src/ocaml/preprocess/parser_raw.mly" +# 1790 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53212 "src/ocaml/preprocess/parser_raw.ml" +# 54185 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -53241,24 +54214,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 1765 "src/ocaml/preprocess/parser_raw.mly" +# 1778 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_apply(me1, me2) ) -# 53247 "src/ocaml/preprocess/parser_raw.ml" +# 54220 "src/ocaml/preprocess/parser_raw.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 -# 1339 "src/ocaml/preprocess/parser_raw.mly" +# 1351 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 53256 "src/ocaml/preprocess/parser_raw.ml" +# 54229 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1777 "src/ocaml/preprocess/parser_raw.mly" +# 1790 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53262 "src/ocaml/preprocess/parser_raw.ml" +# 54235 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -53298,24 +54271,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 1768 "src/ocaml/preprocess/parser_raw.mly" +# 1781 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_apply_unit me ) -# 53304 "src/ocaml/preprocess/parser_raw.ml" +# 54277 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_me_) in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1339 "src/ocaml/preprocess/parser_raw.mly" +# 1351 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 53313 "src/ocaml/preprocess/parser_raw.ml" +# 54286 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1777 "src/ocaml/preprocess/parser_raw.mly" +# 1790 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53319 "src/ocaml/preprocess/parser_raw.ml" +# 54292 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -53341,24 +54314,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 1771 "src/ocaml/preprocess/parser_raw.mly" +# 1784 "src/ocaml/preprocess/parser_raw.mly" ( Pmod_extension ex ) -# 53347 "src/ocaml/preprocess/parser_raw.ml" +# 54320 "src/ocaml/preprocess/parser_raw.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 -# 1339 "src/ocaml/preprocess/parser_raw.mly" +# 1351 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 53356 "src/ocaml/preprocess/parser_raw.ml" +# 54329 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1777 "src/ocaml/preprocess/parser_raw.mly" +# 1790 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53362 "src/ocaml/preprocess/parser_raw.ml" +# 54335 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -53388,25 +54361,25 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 1774 "src/ocaml/preprocess/parser_raw.mly" +# 1787 "src/ocaml/preprocess/parser_raw.mly" ( let id = mkrhs Ast_helper.hole_txt _loc in Pmod_extension (id, PStr []) ) -# 53395 "src/ocaml/preprocess/parser_raw.ml" +# 54368 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1339 "src/ocaml/preprocess/parser_raw.mly" +# 1351 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc _1 ) -# 53404 "src/ocaml/preprocess/parser_raw.ml" +# 54377 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1777 "src/ocaml/preprocess/parser_raw.mly" +# 1790 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53410 "src/ocaml/preprocess/parser_raw.ml" +# 54383 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -53426,17 +54399,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let x : ( -# 1155 "src/ocaml/preprocess/parser_raw.mly" +# 1167 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53432 "src/ocaml/preprocess/parser_raw.ml" +# 54405 "src/ocaml/preprocess/parser_raw.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) = -# 1714 "src/ocaml/preprocess/parser_raw.mly" +# 1727 "src/ocaml/preprocess/parser_raw.mly" ( Some x ) -# 53440 "src/ocaml/preprocess/parser_raw.ml" +# 54413 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53459,9 +54432,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string option) = -# 1717 "src/ocaml/preprocess/parser_raw.mly" +# 1730 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 53465 "src/ocaml/preprocess/parser_raw.ml" +# 54438 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53489,16 +54462,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 53495 "src/ocaml/preprocess/parser_raw.ml" +# 54468 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1721 "src/ocaml/preprocess/parser_raw.mly" +# 1734 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 53501 "src/ocaml/preprocess/parser_raw.ml" - : (string option Location.loc * Parsetree.modalities)) +# 54474 "src/ocaml/preprocess/parser_raw.ml" + : (Ocaml_parsing.Ast_helper.str_opt * Parsetree.modes)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53535,7 +54508,7 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.modalities) = Obj.magic _3 in + let _3 : (Parsetree.modes) = Obj.magic _3 in let _1_inlined1 : (string option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -53548,16 +54521,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 53554 "src/ocaml/preprocess/parser_raw.ml" +# 54527 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1722 "src/ocaml/preprocess/parser_raw.mly" +# 1735 "src/ocaml/preprocess/parser_raw.mly" ( _2, _3 ) -# 53560 "src/ocaml/preprocess/parser_raw.ml" - : (string option Location.loc * Parsetree.modalities)) +# 54533 "src/ocaml/preprocess/parser_raw.ml" + : (Ocaml_parsing.Ast_helper.str_opt * Parsetree.modes)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53585,16 +54558,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 53591 "src/ocaml/preprocess/parser_raw.ml" +# 54564 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1721 "src/ocaml/preprocess/parser_raw.mly" +# 1734 "src/ocaml/preprocess/parser_raw.mly" ( _1, [] ) -# 53597 "src/ocaml/preprocess/parser_raw.ml" - : (Ocaml_parsing.Ast_helper.str_opt * Parsetree.modes)) +# 54570 "src/ocaml/preprocess/parser_raw.ml" + : (string option Location.loc * Parsetree.modalities)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53631,7 +54604,7 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let _3 : (Parsetree.modes) = Obj.magic _3 in + let _3 : (Parsetree.modalities) = Obj.magic _3 in let _1_inlined1 : (string option) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -53644,16 +54617,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 53650 "src/ocaml/preprocess/parser_raw.ml" +# 54623 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1722 "src/ocaml/preprocess/parser_raw.mly" +# 1735 "src/ocaml/preprocess/parser_raw.mly" ( _2, _3 ) -# 53656 "src/ocaml/preprocess/parser_raw.ml" - : (Ocaml_parsing.Ast_helper.str_opt * Parsetree.modes)) +# 54629 "src/ocaml/preprocess/parser_raw.ml" + : (string option Location.loc * Parsetree.modalities)) in { MenhirLib.EngineTypes.state = _menhir_s; @@ -53711,9 +54684,9 @@ module Tables = struct let _1_inlined3 : (Longident.t) = Obj.magic _1_inlined3 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( -# 1155 "src/ocaml/preprocess/parser_raw.mly" +# 1167 "src/ocaml/preprocess/parser_raw.mly" (string) -# 53717 "src/ocaml/preprocess/parser_raw.ml" +# 54690 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let ext : (string Location.loc option) = Obj.magic ext in @@ -53725,9 +54698,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53731 "src/ocaml/preprocess/parser_raw.ml" +# 54704 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -53737,9 +54710,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 53743 "src/ocaml/preprocess/parser_raw.ml" +# 54716 "src/ocaml/preprocess/parser_raw.ml" in let uid = @@ -53748,31 +54721,31 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 53754 "src/ocaml/preprocess/parser_raw.ml" +# 54727 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53762 "src/ocaml/preprocess/parser_raw.ml" +# 54735 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2265 "src/ocaml/preprocess/parser_raw.mly" +# 2292 "src/ocaml/preprocess/parser_raw.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 ) -# 53776 "src/ocaml/preprocess/parser_raw.ml" +# 54749 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_substitution * string Location.loc option)) in { @@ -53785,55 +54758,21 @@ module Tables = struct (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 = s; - MenhirLib.EngineTypes.startp = _startpos_s_; - MenhirLib.EngineTypes.endp = _endpos_s_; - 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 _4 : unit = Obj.magic _4 in - let s : (Parsetree.signature) = Obj.magic s in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let _1 : (Parsetree.module_type) = 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 = - let attrs = - let _1 = _1_inlined1 in - -# 5409 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 53826 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__4_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( -# 2076 "src/ocaml/preprocess/parser_raw.mly" - ( mkmty ~loc:_sloc ~attrs (Pmty_signature s) ) -# 53835 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - in + let _endpos = _endpos__1_ in + let _v : (Parsetree.module_type) = +# 2121 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 54775 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -53845,9 +54784,9 @@ module Tables = struct let _menhir_stack = _menhir_env.MenhirLib.EngineTypes.stack in let { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; + 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 = _4; @@ -53874,47 +54813,39 @@ module Tables = struct }; }; } = _menhir_stack in - let mty : (Parsetree.module_type) = Obj.magic mty in + let _1_inlined2 : (Parsetree.module_type) = Obj.magic _1_inlined2 in let _4 : unit = Obj.magic _4 in let args : ((Lexing.position * Parsetree.functor_parameter) list) = Obj.magic args 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_mty_ in + let _endpos = _endpos__1_inlined2_ in let _v = - let mm = -# 4681 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 53890 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos_mm_ = _endpos_mty_ in + let mty_mm = + let _1 = _1_inlined2 in + +# 2151 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 54831 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_mty_mm_ = _endpos__1_inlined2_ in let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 53898 "src/ocaml/preprocess/parser_raw.ml" +# 54840 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos_mm_ in + let _endpos = _endpos_mty_mm_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2088 "src/ocaml/preprocess/parser_raw.mly" - ( wrap_mty_attrs ~loc:_sloc attrs ( - (* return modes go to the innermost functor arrow; - all other return modes are empty *) - let mty, mm = - List.fold_left (fun (acc, mm) (startpos, arg) -> - mkmty ~loc:(startpos, _endpos) (Pmty_functor (arg, acc, mm)), [] - ) (mty, mm) args - in - match mm with - | [] -> mty - | _ :: _ -> assert false - ) ) -# 53918 "src/ocaml/preprocess/parser_raw.ml" +# 2125 "src/ocaml/preprocess/parser_raw.mly" + ( wrap_mty_attrs ~loc:_sloc attrs (mk_functor_typ args mty_mm) ) +# 54849 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type)) in { @@ -53928,14 +54859,14 @@ module Tables = struct 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.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; + 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 = _4; @@ -53963,117 +54894,40 @@ module Tables = struct }; }; } = _menhir_stack in - let _1_inlined2 : (Parsetree.modes) = Obj.magic _1_inlined2 in - let mty : (Parsetree.module_type) = Obj.magic mty in + let _2 : (Parsetree.modes) = Obj.magic _2 in + let _1_inlined2 : (Parsetree.module_type) = Obj.magic _1_inlined2 in let _4 : unit = Obj.magic _4 in let args : ((Lexing.position * Parsetree.functor_parameter) list) = Obj.magic args 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 _endpos = _endpos__2_ in let _v = - let mm = + let mty_mm = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 53982 "src/ocaml/preprocess/parser_raw.ml" +# 2152 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 54913 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos_mm_ = _endpos__1_inlined2_ in + let _endpos_mty_mm_ = _endpos__2_ in let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 53991 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos_mm_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - ( -# 2088 "src/ocaml/preprocess/parser_raw.mly" - ( wrap_mty_attrs ~loc:_sloc attrs ( - (* return modes go to the innermost functor arrow; - all other return modes are empty *) - let mty, mm = - List.fold_left (fun (acc, mm) (startpos, arg) -> - mkmty ~loc:(startpos, _endpos) (Pmty_functor (arg, acc, mm)), [] - ) (mty, mm) args - in - match mm with - | [] -> mty - | _ :: _ -> assert false - ) ) -# 54011 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.module_type)) - 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_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 = _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 : (Parsetree.module_expr) = Obj.magic _5 in - let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in - let _3 : unit = 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 = - let _4 = - let _1 = _1_inlined1 in - -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54068 "src/ocaml/preprocess/parser_raw.ml" +# 54922 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos__5_ in + let _endpos = _endpos_mty_mm_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2101 "src/ocaml/preprocess/parser_raw.mly" - ( mkmty ~loc:_sloc ~attrs:_4 (Pmty_typeof _5) ) -# 54077 "src/ocaml/preprocess/parser_raw.ml" +# 2125 "src/ocaml/preprocess/parser_raw.mly" + ( wrap_mty_attrs ~loc:_sloc attrs (mk_functor_typ args mty_mm) ) +# 54931 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type)) in { @@ -54087,9 +54941,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; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -54097,108 +54951,29 @@ module Tables = struct 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.semv = args; + MenhirLib.EngineTypes.startp = _startpos_args_; + MenhirLib.EngineTypes.endp = _endpos_args_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; } = _menhir_stack in - let _3 : unit = Obj.magic _3 in - let _2 : (Parsetree.module_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.module_type) = -# 2103 "src/ocaml/preprocess/parser_raw.mly" - ( _2 ) -# 54117 "src/ocaml/preprocess/parser_raw.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.module_type) = Obj.magic _1 in + let _2 : unit = Obj.magic _2 in + let args : ((Lexing.position * Parsetree.functor_parameter) list) = Obj.magic args in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__2_ in - let _v : (Parsetree.module_type) = -# 2109 "src/ocaml/preprocess/parser_raw.mly" - ( Mty.attr _1 _2 ) -# 54149 "src/ocaml/preprocess/parser_raw.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 _startpos = _startpos_args_ in let _endpos = _endpos__1_ in let _v = - let _1 = - let _1 = - let _1 = - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1296 "src/ocaml/preprocess/parser_raw.mly" - ( mkrhs _1 _sloc ) -# 54181 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2112 "src/ocaml/preprocess/parser_raw.mly" - ( Pmty_ident _1 ) -# 54187 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in - -# 1341 "src/ocaml/preprocess/parser_raw.mly" - ( mkmty ~loc:_sloc _1 ) -# 54196 "src/ocaml/preprocess/parser_raw.ml" - - in + let mty_mm = +# 2151 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 54972 "src/ocaml/preprocess/parser_raw.ml" + in ( -# 2127 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 54202 "src/ocaml/preprocess/parser_raw.ml" +# 2129 "src/ocaml/preprocess/parser_raw.mly" + ( mk_functor_typ args mty_mm ) +# 54977 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type)) in { @@ -54212,14 +54987,14 @@ 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 = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = _3; - MenhirLib.EngineTypes.startp = _startpos__3_; - MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = _2; @@ -54227,49 +55002,34 @@ module Tables = struct 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.semv = args; + MenhirLib.EngineTypes.startp = _startpos_args_; + MenhirLib.EngineTypes.endp = _endpos_args_; MenhirLib.EngineTypes.next = _menhir_stack; }; }; }; } = _menhir_stack in - let _4 : (Parsetree.module_type) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in + let _2_inlined1 : (Parsetree.modes) = Obj.magic _2_inlined1 in + let _1 : (Parsetree.module_type) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in - let _1 : unit = Obj.magic _1 in + let args : ((Lexing.position * Parsetree.functor_parameter) list) = Obj.magic args in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos__1_ in - let _endpos = _endpos__4_ in + let _startpos = _startpos_args_ in + let _endpos = _endpos__2_inlined1_ in let _v = - let _1 = - let _1 = - let _5 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 54252 "src/ocaml/preprocess/parser_raw.ml" - in - -# 2114 "src/ocaml/preprocess/parser_raw.mly" - ( Pmty_functor(Unit, _4, _5) ) -# 54257 "src/ocaml/preprocess/parser_raw.ml" - - in - let _endpos__1_ = _endpos__4_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in + let mty_mm = + let _2 = _2_inlined1 in -# 1341 "src/ocaml/preprocess/parser_raw.mly" - ( mkmty ~loc:_sloc _1 ) -# 54267 "src/ocaml/preprocess/parser_raw.ml" +# 2152 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 55027 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2127 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 54273 "src/ocaml/preprocess/parser_raw.ml" +# 2129 "src/ocaml/preprocess/parser_raw.mly" + ( mk_functor_typ args mty_mm ) +# 55033 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type)) in { @@ -54283,14 +55043,14 @@ 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 = _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.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; @@ -54312,45 +55072,30 @@ module Tables = struct }; }; } = _menhir_stack in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let _4 : (Parsetree.module_type) = Obj.magic _4 in + let _5 : (Parsetree.module_expr) = Obj.magic _5 in + let _1_inlined1 : (Parsetree.attributes) = Obj.magic _1_inlined1 in let _3 : unit = 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__1_inlined1_ in + let _endpos = _endpos__5_ in let _v = - let _1 = - let _1 = - let _5 = - let _1 = _1_inlined1 in - -# 4682 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 54332 "src/ocaml/preprocess/parser_raw.ml" - - in - -# 2114 "src/ocaml/preprocess/parser_raw.mly" - ( Pmty_functor(Unit, _4, _5) ) -# 54338 "src/ocaml/preprocess/parser_raw.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 _4 = + let _1 = _1_inlined1 in -# 1341 "src/ocaml/preprocess/parser_raw.mly" - ( mkmty ~loc:_sloc _1 ) -# 54348 "src/ocaml/preprocess/parser_raw.ml" +# 5408 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 55090 "src/ocaml/preprocess/parser_raw.ml" in + let _endpos = _endpos__5_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in ( -# 2127 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 54354 "src/ocaml/preprocess/parser_raw.ml" +# 2131 "src/ocaml/preprocess/parser_raw.mly" + ( mkmty ~loc:_sloc ~attrs:_4 (Pmty_typeof _5) ) +# 55099 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type)) in { @@ -54364,14 +55109,46 @@ 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 = _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.module_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 _v : (Parsetree.module_type) = +# 2133 "src/ocaml/preprocess/parser_raw.mly" + ( Mty.attr _1 _2 ) +# 55132 "src/ocaml/preprocess/parser_raw.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.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -54381,45 +55158,50 @@ module Tables = struct }; }; } = _menhir_stack in - let _4 : (Parsetree.module_type) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in + let _1_inlined1 : (Parsetree.module_type) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.module_type) = 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__1_inlined1_ in let _v = let _1 = let _1 = - let m2 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 54397 "src/ocaml/preprocess/parser_raw.ml" - in - let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 54402 "src/ocaml/preprocess/parser_raw.ml" + let _3 = + let _1 = _1_inlined1 in + +# 2151 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 55176 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = +# 2151 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 55182 "src/ocaml/preprocess/parser_raw.ml" in -# 2117 "src/ocaml/preprocess/parser_raw.mly" - ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 54407 "src/ocaml/preprocess/parser_raw.ml" +# 2137 "src/ocaml/preprocess/parser_raw.mly" + ( let mty0, mm0 = _1 in + let mty1, mm1 = _3 in + Pmty_functor(Named (mknoloc None, mty0, mm0), mty1, mm1) ) +# 55189 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__4_ in + let _endpos__1_ = _endpos__1_inlined1_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1341 "src/ocaml/preprocess/parser_raw.mly" +# 1353 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 54417 "src/ocaml/preprocess/parser_raw.ml" +# 55199 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2127 "src/ocaml/preprocess/parser_raw.mly" +# 2147 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54423 "src/ocaml/preprocess/parser_raw.ml" +# 55205 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type)) in { @@ -54433,19 +55215,19 @@ 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 = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; MenhirLib.EngineTypes.next = { 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; - 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 = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -54456,49 +55238,51 @@ module Tables = struct }; }; } = _menhir_stack in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let _4 : (Parsetree.module_type) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in + let _2_inlined1 : (Parsetree.modes) = Obj.magic _2_inlined1 in + let _1_inlined1 : (Parsetree.module_type) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.module_type) = 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 _endpos = _endpos__2_inlined1_ in let _v = let _1 = let _1 = - let m2 = - let _1 = _1_inlined1 in + let _3 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 4682 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 54475 "src/ocaml/preprocess/parser_raw.ml" +# 2152 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 55257 "src/ocaml/preprocess/parser_raw.ml" in - let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 54481 "src/ocaml/preprocess/parser_raw.ml" + let _1 = +# 2151 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 55263 "src/ocaml/preprocess/parser_raw.ml" in -# 2117 "src/ocaml/preprocess/parser_raw.mly" - ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 54486 "src/ocaml/preprocess/parser_raw.ml" +# 2137 "src/ocaml/preprocess/parser_raw.mly" + ( let mty0, mm0 = _1 in + let mty1, mm1 = _3 in + Pmty_functor(Named (mknoloc None, mty0, mm0), mty1, mm1) ) +# 55270 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__1_inlined1_ in + let _endpos__1_ = _endpos__2_inlined1_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1341 "src/ocaml/preprocess/parser_raw.mly" +# 1353 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 54496 "src/ocaml/preprocess/parser_raw.ml" +# 55280 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2127 "src/ocaml/preprocess/parser_raw.mly" +# 2147 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54502 "src/ocaml/preprocess/parser_raw.ml" +# 55286 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type)) in { @@ -54512,19 +55296,19 @@ 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 = _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.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.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -54535,49 +55319,54 @@ module Tables = struct }; }; } = _menhir_stack in - let _4 : (Parsetree.module_type) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in + let _1_inlined1 : (Parsetree.module_type) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _2_inlined1 : (Parsetree.modes) = Obj.magic _2_inlined1 in let _1 : (Parsetree.module_type) = 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__1_inlined1_ in let _v = let _1 = let _1 = - let m2 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 54552 "src/ocaml/preprocess/parser_raw.ml" - in - let m1 = + let _3 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 54559 "src/ocaml/preprocess/parser_raw.ml" +# 2151 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 55338 "src/ocaml/preprocess/parser_raw.ml" + + in + let _1 = + let _2 = _2_inlined1 in + +# 2152 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 55346 "src/ocaml/preprocess/parser_raw.ml" in -# 2117 "src/ocaml/preprocess/parser_raw.mly" - ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 54565 "src/ocaml/preprocess/parser_raw.ml" +# 2137 "src/ocaml/preprocess/parser_raw.mly" + ( let mty0, mm0 = _1 in + let mty1, mm1 = _3 in + Pmty_functor(Named (mknoloc None, mty0, mm0), mty1, mm1) ) +# 55354 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__4_ in + let _endpos__1_ = _endpos__1_inlined1_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1341 "src/ocaml/preprocess/parser_raw.mly" +# 1353 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 54575 "src/ocaml/preprocess/parser_raw.ml" +# 55364 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2127 "src/ocaml/preprocess/parser_raw.mly" +# 2147 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54581 "src/ocaml/preprocess/parser_raw.ml" +# 55370 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type)) in { @@ -54591,24 +55380,24 @@ module Tables = struct 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.semv = _2_inlined2; + MenhirLib.EngineTypes.startp = _startpos__2_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined2_; MenhirLib.EngineTypes.next = { 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; - 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 = _1_inlined1; - MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; - MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = _1; @@ -54620,53 +55409,55 @@ module Tables = struct }; }; } = _menhir_stack in - let _1_inlined2 : (Parsetree.modes) = Obj.magic _1_inlined2 in - let _4 : (Parsetree.module_type) = Obj.magic _4 in - let _3 : unit = Obj.magic _3 in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in + let _2_inlined2 : (Parsetree.modes) = Obj.magic _2_inlined2 in + let _1_inlined1 : (Parsetree.module_type) = Obj.magic _1_inlined1 in + let _2 : unit = Obj.magic _2 in + let _2_inlined1 : (Parsetree.modes) = Obj.magic _2_inlined1 in let _1 : (Parsetree.module_type) = 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 _endpos = _endpos__2_inlined2_ in let _v = let _1 = let _1 = - let m2 = - let _1 = _1_inlined2 in + let _3 = + let (_2, _1) = (_2_inlined2, _1_inlined1) in -# 4682 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 54640 "src/ocaml/preprocess/parser_raw.ml" +# 2152 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 55429 "src/ocaml/preprocess/parser_raw.ml" in - let m1 = - let _1 = _1_inlined1 in + let _1 = + let _2 = _2_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 54648 "src/ocaml/preprocess/parser_raw.ml" +# 2152 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 55437 "src/ocaml/preprocess/parser_raw.ml" in -# 2117 "src/ocaml/preprocess/parser_raw.mly" - ( Pmty_functor(Named (mknoloc None, _1, m1), _4, m2) ) -# 54654 "src/ocaml/preprocess/parser_raw.ml" +# 2137 "src/ocaml/preprocess/parser_raw.mly" + ( let mty0, mm0 = _1 in + let mty1, mm1 = _3 in + Pmty_functor(Named (mknoloc None, mty0, mm0), mty1, mm1) ) +# 55445 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos__1_ = _endpos__1_inlined2_ in + let _endpos__1_ = _endpos__2_inlined2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1341 "src/ocaml/preprocess/parser_raw.mly" +# 1353 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 54664 "src/ocaml/preprocess/parser_raw.ml" +# 55455 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2127 "src/ocaml/preprocess/parser_raw.mly" +# 2147 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54670 "src/ocaml/preprocess/parser_raw.ml" +# 55461 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type)) in { @@ -54710,18 +55501,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 54714 "src/ocaml/preprocess/parser_raw.ml" +# 55505 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 54719 "src/ocaml/preprocess/parser_raw.ml" +# 55510 "src/ocaml/preprocess/parser_raw.ml" in -# 2119 "src/ocaml/preprocess/parser_raw.mly" +# 2141 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_with(_1, _3) ) -# 54725 "src/ocaml/preprocess/parser_raw.ml" +# 55516 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_xs_ in @@ -54729,15 +55520,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1341 "src/ocaml/preprocess/parser_raw.mly" +# 1353 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 54735 "src/ocaml/preprocess/parser_raw.ml" +# 55526 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2127 "src/ocaml/preprocess/parser_raw.mly" +# 2147 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54741 "src/ocaml/preprocess/parser_raw.ml" +# 55532 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type)) in { @@ -54763,23 +55554,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 2123 "src/ocaml/preprocess/parser_raw.mly" +# 2143 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_extension _1 ) -# 54769 "src/ocaml/preprocess/parser_raw.ml" +# 55560 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1341 "src/ocaml/preprocess/parser_raw.mly" +# 1353 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 54777 "src/ocaml/preprocess/parser_raw.ml" +# 55568 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2127 "src/ocaml/preprocess/parser_raw.mly" +# 2147 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54783 "src/ocaml/preprocess/parser_raw.ml" +# 55574 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type)) in { @@ -54825,15 +55616,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 54831 "src/ocaml/preprocess/parser_raw.ml" +# 55622 "src/ocaml/preprocess/parser_raw.ml" in -# 2125 "src/ocaml/preprocess/parser_raw.mly" +# 2145 "src/ocaml/preprocess/parser_raw.mly" ( Pmty_strengthen (_1, _3) ) -# 54837 "src/ocaml/preprocess/parser_raw.ml" +# 55628 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -54841,15 +55632,167 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1341 "src/ocaml/preprocess/parser_raw.mly" +# 1353 "src/ocaml/preprocess/parser_raw.mly" ( mkmty ~loc:_sloc _1 ) -# 54847 "src/ocaml/preprocess/parser_raw.ml" +# 55638 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2127 "src/ocaml/preprocess/parser_raw.mly" +# 2147 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 55644 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + 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 = s; + MenhirLib.EngineTypes.startp = _startpos_s_; + MenhirLib.EngineTypes.endp = _endpos_s_; + 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 : unit = Obj.magic _4 in + let s : (Parsetree.signature) = Obj.magic s 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 = + let attrs = + let _1 = _1_inlined1 in + +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54853 "src/ocaml/preprocess/parser_raw.ml" +# 55694 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2096 "src/ocaml/preprocess/parser_raw.mly" + ( mkmty ~loc:_sloc ~attrs (Pmty_signature s) ) +# 55703 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.module_type)) + 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.module_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.module_type) = +# 2106 "src/ocaml/preprocess/parser_raw.mly" + ( _2 ) +# 55743 "src/ocaml/preprocess/parser_raw.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 = + let _1 = + let _1 = + let _1 = + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1308 "src/ocaml/preprocess/parser_raw.mly" + ( mkrhs _1 _sloc ) +# 55775 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 2113 "src/ocaml/preprocess/parser_raw.mly" + ( Pmty_ident _1 ) +# 55781 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 1353 "src/ocaml/preprocess/parser_raw.mly" + ( mkmty ~loc:_sloc _1 ) +# 55790 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2117 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 55796 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type)) in { @@ -54918,9 +55861,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54924 "src/ocaml/preprocess/parser_raw.ml" +# 55867 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -54930,31 +55873,31 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 54936 "src/ocaml/preprocess/parser_raw.ml" +# 55879 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 54944 "src/ocaml/preprocess/parser_raw.ml" +# 55887 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2022 "src/ocaml/preprocess/parser_raw.mly" +# 2042 "src/ocaml/preprocess/parser_raw.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 ) -# 54958 "src/ocaml/preprocess/parser_raw.ml" +# 55901 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type_declaration * string Location.loc option)) in { @@ -55030,9 +55973,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55036 "src/ocaml/preprocess/parser_raw.ml" +# 55979 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -55042,31 +55985,31 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 55048 "src/ocaml/preprocess/parser_raw.ml" +# 55991 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55056 "src/ocaml/preprocess/parser_raw.ml" +# 55999 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2325 "src/ocaml/preprocess/parser_raw.mly" +# 2352 "src/ocaml/preprocess/parser_raw.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 ) -# 55070 "src/ocaml/preprocess/parser_raw.ml" +# 56013 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type_declaration * string Location.loc option)) in { @@ -55090,9 +56033,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5174 "src/ocaml/preprocess/parser_raw.mly" +# 5173 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55096 "src/ocaml/preprocess/parser_raw.ml" +# 56039 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55108,9 +56051,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.mutable_flag) = -# 5255 "src/ocaml/preprocess/parser_raw.mly" +# 5254 "src/ocaml/preprocess/parser_raw.mly" ( Immutable ) -# 55114 "src/ocaml/preprocess/parser_raw.ml" +# 56057 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55133,9 +56076,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag) = -# 5256 "src/ocaml/preprocess/parser_raw.mly" +# 5255 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 55139 "src/ocaml/preprocess/parser_raw.ml" +# 56082 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55151,9 +56094,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = -# 5260 "src/ocaml/preprocess/parser_raw.mly" +# 5259 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, [] ) -# 55157 "src/ocaml/preprocess/parser_raw.ml" +# 56100 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55176,9 +56119,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag * Parsetree.modality Location.loc list) = -# 5262 "src/ocaml/preprocess/parser_raw.mly" +# 5261 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, [] ) -# 55182 "src/ocaml/preprocess/parser_raw.ml" +# 56125 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55205,9 +56148,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5264 "src/ocaml/preprocess/parser_raw.mly" +# 5263 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, [ mkloc (Modality "global") (make_loc _sloc)] ) -# 55211 "src/ocaml/preprocess/parser_raw.ml" +# 56154 "src/ocaml/preprocess/parser_raw.ml" : (Asttypes.mutable_flag * Parsetree.modality Location.loc list)) in { @@ -55224,9 +56167,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5276 "src/ocaml/preprocess/parser_raw.mly" +# 5275 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, Concrete ) -# 55230 "src/ocaml/preprocess/parser_raw.ml" +# 56173 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55249,9 +56192,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5278 "src/ocaml/preprocess/parser_raw.mly" +# 5277 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Concrete ) -# 55255 "src/ocaml/preprocess/parser_raw.ml" +# 56198 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55274,9 +56217,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5280 "src/ocaml/preprocess/parser_raw.mly" +# 5279 "src/ocaml/preprocess/parser_raw.mly" ( Immutable, Virtual ) -# 55280 "src/ocaml/preprocess/parser_raw.ml" +# 56223 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55306,9 +56249,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5283 "src/ocaml/preprocess/parser_raw.mly" +# 5282 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Virtual ) -# 55312 "src/ocaml/preprocess/parser_raw.ml" +# 56255 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55338,9 +56281,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag * Asttypes.virtual_flag) = -# 5283 "src/ocaml/preprocess/parser_raw.mly" +# 5282 "src/ocaml/preprocess/parser_raw.mly" ( Mutable, Virtual ) -# 55344 "src/ocaml/preprocess/parser_raw.ml" +# 56287 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55370,9 +56313,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (string) = -# 5226 "src/ocaml/preprocess/parser_raw.mly" +# 5225 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 55376 "src/ocaml/preprocess/parser_raw.ml" +# 56319 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55391,9 +56334,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55397 "src/ocaml/preprocess/parser_raw.ml" +# 56340 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -55404,15 +56347,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 55410 "src/ocaml/preprocess/parser_raw.ml" +# 56353 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3699 "src/ocaml/preprocess/parser_raw.mly" +# 3689 "src/ocaml/preprocess/parser_raw.mly" ( _1, None ) -# 55416 "src/ocaml/preprocess/parser_raw.ml" +# 56359 "src/ocaml/preprocess/parser_raw.ml" : (string Location.loc * Parsetree.jkind_annotation option)) in { @@ -55459,9 +56402,9 @@ module Tables = struct let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _3 : unit = Obj.magic _3 in let _1_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55465 "src/ocaml/preprocess/parser_raw.ml" +# 56408 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -55474,15 +56417,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 55480 "src/ocaml/preprocess/parser_raw.ml" +# 56423 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3701 "src/ocaml/preprocess/parser_raw.mly" +# 3691 "src/ocaml/preprocess/parser_raw.mly" ( name, Some jkind ) -# 55486 "src/ocaml/preprocess/parser_raw.ml" +# 56429 "src/ocaml/preprocess/parser_raw.ml" : (string Location.loc * Parsetree.jkind_annotation option)) in { @@ -55506,9 +56449,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = -# 3696 "src/ocaml/preprocess/parser_raw.mly" +# 3686 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 55512 "src/ocaml/preprocess/parser_raw.ml" +# 56455 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -55527,9 +56470,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55533 "src/ocaml/preprocess/parser_raw.ml" +# 56476 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -55540,15 +56483,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 55546 "src/ocaml/preprocess/parser_raw.ml" +# 56489 "src/ocaml/preprocess/parser_raw.ml" in ( # 228 "" ( [ x ] ) -# 55552 "src/ocaml/preprocess/parser_raw.ml" +# 56495 "src/ocaml/preprocess/parser_raw.ml" : (string Location.loc list)) in { @@ -55575,9 +56518,9 @@ module Tables = struct } = _menhir_stack in let xs : (string Location.loc list) = Obj.magic xs in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55581 "src/ocaml/preprocess/parser_raw.ml" +# 56524 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -55588,15 +56531,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 55594 "src/ocaml/preprocess/parser_raw.ml" +# 56537 "src/ocaml/preprocess/parser_raw.ml" in ( # 231 "" ( x :: xs ) -# 55600 "src/ocaml/preprocess/parser_raw.ml" +# 56543 "src/ocaml/preprocess/parser_raw.ml" : (string Location.loc list)) in { @@ -55616,9 +56559,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55622 "src/ocaml/preprocess/parser_raw.ml" +# 56565 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -55629,15 +56572,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4705 "src/ocaml/preprocess/parser_raw.mly" +# 4708 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Modality _1) (make_loc _sloc) ) -# 55635 "src/ocaml/preprocess/parser_raw.ml" +# 56578 "src/ocaml/preprocess/parser_raw.ml" in ( # 228 "" ( [ x ] ) -# 55641 "src/ocaml/preprocess/parser_raw.ml" +# 56584 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.modalities)) in { @@ -55664,9 +56607,9 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.modalities) = Obj.magic xs in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55670 "src/ocaml/preprocess/parser_raw.ml" +# 56613 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -55677,15 +56620,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4705 "src/ocaml/preprocess/parser_raw.mly" +# 4708 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Modality _1) (make_loc _sloc) ) -# 55683 "src/ocaml/preprocess/parser_raw.ml" +# 56626 "src/ocaml/preprocess/parser_raw.ml" in ( # 231 "" ( x :: xs ) -# 55689 "src/ocaml/preprocess/parser_raw.ml" +# 56632 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.modalities)) in { @@ -55705,9 +56648,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55711 "src/ocaml/preprocess/parser_raw.ml" +# 56654 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -55718,15 +56661,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4668 "src/ocaml/preprocess/parser_raw.mly" +# 4680 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode _1) (make_loc _sloc) ) -# 55724 "src/ocaml/preprocess/parser_raw.ml" +# 56667 "src/ocaml/preprocess/parser_raw.ml" in ( # 228 "" ( [ x ] ) -# 55730 "src/ocaml/preprocess/parser_raw.ml" +# 56673 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.modes)) in { @@ -55753,9 +56696,9 @@ module Tables = struct } = _menhir_stack in let xs : (Parsetree.modes) = Obj.magic xs in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 55759 "src/ocaml/preprocess/parser_raw.ml" +# 56702 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -55766,15 +56709,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4668 "src/ocaml/preprocess/parser_raw.mly" +# 4680 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode _1) (make_loc _sloc) ) -# 55772 "src/ocaml/preprocess/parser_raw.ml" +# 56715 "src/ocaml/preprocess/parser_raw.ml" in ( # 231 "" ( x :: xs ) -# 55778 "src/ocaml/preprocess/parser_raw.ml" +# 56721 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.modes)) in { @@ -55803,15 +56746,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4650 "src/ocaml/preprocess/parser_raw.mly" +# 4662 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 55809 "src/ocaml/preprocess/parser_raw.ml" +# 56752 "src/ocaml/preprocess/parser_raw.ml" in ( # 228 "" ( [ x ] ) -# 55815 "src/ocaml/preprocess/parser_raw.ml" +# 56758 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.modes)) in { @@ -55840,15 +56783,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 4664 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 55846 "src/ocaml/preprocess/parser_raw.ml" +# 56789 "src/ocaml/preprocess/parser_raw.ml" in ( # 228 "" ( [ x ] ) -# 55852 "src/ocaml/preprocess/parser_raw.ml" +# 56795 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.modes)) in { @@ -55877,15 +56820,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4654 "src/ocaml/preprocess/parser_raw.mly" +# 4666 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 55883 "src/ocaml/preprocess/parser_raw.ml" +# 56826 "src/ocaml/preprocess/parser_raw.ml" in ( # 228 "" ( [ x ] ) -# 55889 "src/ocaml/preprocess/parser_raw.ml" +# 56832 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.modes)) in { @@ -55921,15 +56864,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4650 "src/ocaml/preprocess/parser_raw.mly" +# 4662 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "local") (make_loc _sloc) ) -# 55927 "src/ocaml/preprocess/parser_raw.ml" +# 56870 "src/ocaml/preprocess/parser_raw.ml" in ( # 231 "" ( x :: xs ) -# 55933 "src/ocaml/preprocess/parser_raw.ml" +# 56876 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.modes)) in { @@ -55965,15 +56908,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4652 "src/ocaml/preprocess/parser_raw.mly" +# 4664 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "unique") (make_loc _sloc) ) -# 55971 "src/ocaml/preprocess/parser_raw.ml" +# 56914 "src/ocaml/preprocess/parser_raw.ml" in ( # 231 "" ( x :: xs ) -# 55977 "src/ocaml/preprocess/parser_raw.ml" +# 56920 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.modes)) in { @@ -56009,15 +56952,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4654 "src/ocaml/preprocess/parser_raw.mly" +# 4666 "src/ocaml/preprocess/parser_raw.mly" ( mkloc (Mode "once") (make_loc _sloc) ) -# 56015 "src/ocaml/preprocess/parser_raw.ml" +# 56958 "src/ocaml/preprocess/parser_raw.ml" in ( # 231 "" ( x :: xs ) -# 56021 "src/ocaml/preprocess/parser_raw.ml" +# 56964 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.modes)) in { @@ -56043,7 +56986,7 @@ module Tables = struct let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = # 228 "" ( [ x ] ) -# 56047 "src/ocaml/preprocess/parser_raw.ml" +# 56990 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56075,7 +57018,7 @@ module Tables = struct let _v : ((string Location.loc * Parsetree.jkind_annotation option) list) = # 231 "" ( x :: xs ) -# 56079 "src/ocaml/preprocess/parser_raw.ml" +# 57022 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -56094,23 +57037,23 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let s : ( -# 1141 "src/ocaml/preprocess/parser_raw.mly" +# 1153 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 56100 "src/ocaml/preprocess/parser_raw.ml" +# 57043 "src/ocaml/preprocess/parser_raw.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 = let x = -# 5222 "src/ocaml/preprocess/parser_raw.mly" +# 5221 "src/ocaml/preprocess/parser_raw.mly" ( let body, _, _ = s in body ) -# 56109 "src/ocaml/preprocess/parser_raw.ml" +# 57052 "src/ocaml/preprocess/parser_raw.ml" in ( # 228 "" ( [ x ] ) -# 56114 "src/ocaml/preprocess/parser_raw.ml" +# 57057 "src/ocaml/preprocess/parser_raw.ml" : (string list)) in { @@ -56137,23 +57080,23 @@ module Tables = struct } = _menhir_stack in let xs : (string list) = Obj.magic xs in let s : ( -# 1141 "src/ocaml/preprocess/parser_raw.mly" +# 1153 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 56143 "src/ocaml/preprocess/parser_raw.ml" +# 57086 "src/ocaml/preprocess/parser_raw.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 = let x = -# 5222 "src/ocaml/preprocess/parser_raw.mly" +# 5221 "src/ocaml/preprocess/parser_raw.mly" ( let body, _, _ = s in body ) -# 56152 "src/ocaml/preprocess/parser_raw.ml" +# 57095 "src/ocaml/preprocess/parser_raw.ml" in ( # 231 "" ( x :: xs ) -# 56157 "src/ocaml/preprocess/parser_raw.ml" +# 57100 "src/ocaml/preprocess/parser_raw.ml" : (string list)) in { @@ -56178,14 +57121,14 @@ module Tables = struct let _endpos = _endpos_ty_ in let _v = let priv = -# 5251 "src/ocaml/preprocess/parser_raw.mly" +# 5250 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 56184 "src/ocaml/preprocess/parser_raw.ml" +# 57127 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4106 "src/ocaml/preprocess/parser_raw.mly" +# 4080 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, priv, Some ty) ) -# 56189 "src/ocaml/preprocess/parser_raw.ml" +# 57132 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -56217,14 +57160,14 @@ module Tables = struct let _endpos = _endpos_ty_ in let _v = let priv = -# 5252 "src/ocaml/preprocess/parser_raw.mly" +# 5251 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 56223 "src/ocaml/preprocess/parser_raw.ml" +# 57166 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4106 "src/ocaml/preprocess/parser_raw.mly" +# 4080 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, priv, Some ty) ) -# 56228 "src/ocaml/preprocess/parser_raw.ml" +# 57171 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -56249,26 +57192,26 @@ module Tables = struct let _endpos = _endpos_cs_ in let _v = let priv = -# 5251 "src/ocaml/preprocess/parser_raw.mly" +# 5250 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 56255 "src/ocaml/preprocess/parser_raw.ml" +# 57198 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 123 "" ( None ) -# 56261 "src/ocaml/preprocess/parser_raw.ml" +# 57204 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56266 "src/ocaml/preprocess/parser_raw.ml" +# 57209 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4110 "src/ocaml/preprocess/parser_raw.mly" +# 4084 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 56272 "src/ocaml/preprocess/parser_raw.ml" +# 57215 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -56300,26 +57243,26 @@ module Tables = struct let _endpos = _endpos_cs_ in let _v = let priv = -# 5252 "src/ocaml/preprocess/parser_raw.mly" +# 5251 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 56306 "src/ocaml/preprocess/parser_raw.ml" +# 57249 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 123 "" ( None ) -# 56312 "src/ocaml/preprocess/parser_raw.ml" +# 57255 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56317 "src/ocaml/preprocess/parser_raw.ml" +# 57260 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4110 "src/ocaml/preprocess/parser_raw.mly" +# 4084 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 56323 "src/ocaml/preprocess/parser_raw.ml" +# 57266 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -56358,33 +57301,33 @@ module Tables = struct let _endpos = _endpos_cs_ in let _v = let priv = -# 5251 "src/ocaml/preprocess/parser_raw.mly" +# 5250 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 56364 "src/ocaml/preprocess/parser_raw.ml" +# 57307 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 196 "" ( x ) -# 56371 "src/ocaml/preprocess/parser_raw.ml" +# 57314 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 56376 "src/ocaml/preprocess/parser_raw.ml" +# 57319 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56382 "src/ocaml/preprocess/parser_raw.ml" +# 57325 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4110 "src/ocaml/preprocess/parser_raw.mly" +# 4084 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 56388 "src/ocaml/preprocess/parser_raw.ml" +# 57331 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -56430,33 +57373,33 @@ module Tables = struct let _endpos = _endpos_cs_ in let _v = let priv = -# 5252 "src/ocaml/preprocess/parser_raw.mly" +# 5251 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 56436 "src/ocaml/preprocess/parser_raw.ml" +# 57379 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 196 "" ( x ) -# 56443 "src/ocaml/preprocess/parser_raw.ml" +# 57386 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 56448 "src/ocaml/preprocess/parser_raw.ml" +# 57391 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56454 "src/ocaml/preprocess/parser_raw.ml" +# 57397 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4110 "src/ocaml/preprocess/parser_raw.mly" +# 4084 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_variant cs, priv, oty) ) -# 56460 "src/ocaml/preprocess/parser_raw.ml" +# 57403 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -56481,26 +57424,26 @@ module Tables = struct let _endpos = _endpos__3_ in let _v = let priv = -# 5251 "src/ocaml/preprocess/parser_raw.mly" +# 5250 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 56487 "src/ocaml/preprocess/parser_raw.ml" +# 57430 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 123 "" ( None ) -# 56493 "src/ocaml/preprocess/parser_raw.ml" +# 57436 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56498 "src/ocaml/preprocess/parser_raw.ml" +# 57441 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4114 "src/ocaml/preprocess/parser_raw.mly" +# 4088 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 56504 "src/ocaml/preprocess/parser_raw.ml" +# 57447 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -56532,26 +57475,26 @@ module Tables = struct let _endpos = _endpos__3_ in let _v = let priv = -# 5252 "src/ocaml/preprocess/parser_raw.mly" +# 5251 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 56538 "src/ocaml/preprocess/parser_raw.ml" +# 57481 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 123 "" ( None ) -# 56544 "src/ocaml/preprocess/parser_raw.ml" +# 57487 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56549 "src/ocaml/preprocess/parser_raw.ml" +# 57492 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4114 "src/ocaml/preprocess/parser_raw.mly" +# 4088 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 56555 "src/ocaml/preprocess/parser_raw.ml" +# 57498 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -56590,33 +57533,33 @@ module Tables = struct let _endpos = _endpos__3_ in let _v = let priv = -# 5251 "src/ocaml/preprocess/parser_raw.mly" +# 5250 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 56596 "src/ocaml/preprocess/parser_raw.ml" +# 57539 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 196 "" ( x ) -# 56603 "src/ocaml/preprocess/parser_raw.ml" +# 57546 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 56608 "src/ocaml/preprocess/parser_raw.ml" +# 57551 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56614 "src/ocaml/preprocess/parser_raw.ml" +# 57557 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4114 "src/ocaml/preprocess/parser_raw.mly" +# 4088 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 56620 "src/ocaml/preprocess/parser_raw.ml" +# 57563 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -56662,33 +57605,33 @@ module Tables = struct let _endpos = _endpos__3_ in let _v = let priv = -# 5252 "src/ocaml/preprocess/parser_raw.mly" +# 5251 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 56668 "src/ocaml/preprocess/parser_raw.ml" +# 57611 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 196 "" ( x ) -# 56675 "src/ocaml/preprocess/parser_raw.ml" +# 57618 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 56680 "src/ocaml/preprocess/parser_raw.ml" +# 57623 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56686 "src/ocaml/preprocess/parser_raw.ml" +# 57629 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4114 "src/ocaml/preprocess/parser_raw.mly" +# 4088 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_open, priv, oty) ) -# 56692 "src/ocaml/preprocess/parser_raw.ml" +# 57635 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -56727,26 +57670,26 @@ module Tables = struct let _endpos = _endpos__5_ in let _v = let priv = -# 5251 "src/ocaml/preprocess/parser_raw.mly" +# 5250 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 56733 "src/ocaml/preprocess/parser_raw.ml" +# 57676 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 123 "" ( None ) -# 56739 "src/ocaml/preprocess/parser_raw.ml" +# 57682 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56744 "src/ocaml/preprocess/parser_raw.ml" +# 57687 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4118 "src/ocaml/preprocess/parser_raw.mly" +# 4092 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 56750 "src/ocaml/preprocess/parser_raw.ml" +# 57693 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -56792,26 +57735,26 @@ module Tables = struct let _endpos = _endpos__5_ in let _v = let priv = -# 5252 "src/ocaml/preprocess/parser_raw.mly" +# 5251 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 56798 "src/ocaml/preprocess/parser_raw.ml" +# 57741 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 123 "" ( None ) -# 56804 "src/ocaml/preprocess/parser_raw.ml" +# 57747 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56809 "src/ocaml/preprocess/parser_raw.ml" +# 57752 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4118 "src/ocaml/preprocess/parser_raw.mly" +# 4092 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 56815 "src/ocaml/preprocess/parser_raw.ml" +# 57758 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -56864,33 +57807,33 @@ module Tables = struct let _endpos = _endpos__5_ in let _v = let priv = -# 5251 "src/ocaml/preprocess/parser_raw.mly" +# 5250 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 56870 "src/ocaml/preprocess/parser_raw.ml" +# 57813 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 196 "" ( x ) -# 56877 "src/ocaml/preprocess/parser_raw.ml" +# 57820 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 56882 "src/ocaml/preprocess/parser_raw.ml" +# 57825 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56888 "src/ocaml/preprocess/parser_raw.ml" +# 57831 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4118 "src/ocaml/preprocess/parser_raw.mly" +# 4092 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 56894 "src/ocaml/preprocess/parser_raw.ml" +# 57837 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -56950,33 +57893,33 @@ module Tables = struct let _endpos = _endpos__5_ in let _v = let priv = -# 5252 "src/ocaml/preprocess/parser_raw.mly" +# 5251 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 56956 "src/ocaml/preprocess/parser_raw.ml" +# 57899 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 196 "" ( x ) -# 56963 "src/ocaml/preprocess/parser_raw.ml" +# 57906 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 56968 "src/ocaml/preprocess/parser_raw.ml" +# 57911 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 56974 "src/ocaml/preprocess/parser_raw.ml" +# 57917 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4118 "src/ocaml/preprocess/parser_raw.mly" +# 4092 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record ls, priv, oty) ) -# 56980 "src/ocaml/preprocess/parser_raw.ml" +# 57923 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -57015,26 +57958,26 @@ module Tables = struct let _endpos = _endpos__5_ in let _v = let priv = -# 5251 "src/ocaml/preprocess/parser_raw.mly" +# 5250 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 57021 "src/ocaml/preprocess/parser_raw.ml" +# 57964 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 123 "" ( None ) -# 57027 "src/ocaml/preprocess/parser_raw.ml" +# 57970 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57032 "src/ocaml/preprocess/parser_raw.ml" +# 57975 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4122 "src/ocaml/preprocess/parser_raw.mly" +# 4096 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 57038 "src/ocaml/preprocess/parser_raw.ml" +# 57981 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -57080,26 +58023,26 @@ module Tables = struct let _endpos = _endpos__5_ in let _v = let priv = -# 5252 "src/ocaml/preprocess/parser_raw.mly" +# 5251 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 57086 "src/ocaml/preprocess/parser_raw.ml" +# 58029 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = # 123 "" ( None ) -# 57092 "src/ocaml/preprocess/parser_raw.ml" +# 58035 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57097 "src/ocaml/preprocess/parser_raw.ml" +# 58040 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4122 "src/ocaml/preprocess/parser_raw.mly" +# 4096 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 57103 "src/ocaml/preprocess/parser_raw.ml" +# 58046 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -57152,33 +58095,33 @@ module Tables = struct let _endpos = _endpos__5_ in let _v = let priv = -# 5251 "src/ocaml/preprocess/parser_raw.mly" +# 5250 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 57158 "src/ocaml/preprocess/parser_raw.ml" +# 58101 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 196 "" ( x ) -# 57165 "src/ocaml/preprocess/parser_raw.ml" +# 58108 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 57170 "src/ocaml/preprocess/parser_raw.ml" +# 58113 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57176 "src/ocaml/preprocess/parser_raw.ml" +# 58119 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4122 "src/ocaml/preprocess/parser_raw.mly" +# 4096 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 57182 "src/ocaml/preprocess/parser_raw.ml" +# 58125 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -57238,33 +58181,33 @@ module Tables = struct let _endpos = _endpos__5_ in let _v = let priv = -# 5252 "src/ocaml/preprocess/parser_raw.mly" +# 5251 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 57244 "src/ocaml/preprocess/parser_raw.ml" +# 58187 "src/ocaml/preprocess/parser_raw.ml" in let oty = let _1 = let x = # 196 "" ( x ) -# 57251 "src/ocaml/preprocess/parser_raw.ml" +# 58194 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 57256 "src/ocaml/preprocess/parser_raw.ml" +# 58199 "src/ocaml/preprocess/parser_raw.ml" in -# 4126 "src/ocaml/preprocess/parser_raw.mly" +# 4100 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57262 "src/ocaml/preprocess/parser_raw.ml" +# 58205 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4122 "src/ocaml/preprocess/parser_raw.mly" +# 4096 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_record_unboxed_product ls, priv, oty) ) -# 57268 "src/ocaml/preprocess/parser_raw.ml" +# 58211 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_kind * Asttypes.private_flag * Parsetree.core_type option)) in { @@ -57304,24 +58247,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 4858 "src/ocaml/preprocess/parser_raw.mly" +# 4855 "src/ocaml/preprocess/parser_raw.mly" ( let (f, c) = meth_list in Ptyp_object (f, c) ) -# 57310 "src/ocaml/preprocess/parser_raw.ml" +# 58253 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 57319 "src/ocaml/preprocess/parser_raw.ml" +# 58262 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4862 "src/ocaml/preprocess/parser_raw.mly" +# 4859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57325 "src/ocaml/preprocess/parser_raw.ml" +# 58268 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -57354,24 +58297,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 4860 "src/ocaml/preprocess/parser_raw.mly" +# 4857 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_object ([], Closed) ) -# 57360 "src/ocaml/preprocess/parser_raw.ml" +# 58303 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 57369 "src/ocaml/preprocess/parser_raw.ml" +# 58312 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4862 "src/ocaml/preprocess/parser_raw.mly" +# 4859 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57375 "src/ocaml/preprocess/parser_raw.ml" +# 58318 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -57426,37 +58369,37 @@ module Tables = struct let attrs2 = let _1 = _1_inlined2 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57432 "src/ocaml/preprocess/parser_raw.ml" +# 58375 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57441 "src/ocaml/preprocess/parser_raw.ml" +# 58384 "src/ocaml/preprocess/parser_raw.ml" in let override = -# 5310 "src/ocaml/preprocess/parser_raw.mly" +# 5309 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 57447 "src/ocaml/preprocess/parser_raw.ml" +# 58390 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2041 "src/ocaml/preprocess/parser_raw.mly" +# 2061 "src/ocaml/preprocess/parser_raw.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 ) -# 57460 "src/ocaml/preprocess/parser_raw.ml" +# 58403 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option)) in { @@ -57518,37 +58461,37 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57524 "src/ocaml/preprocess/parser_raw.ml" +# 58467 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let attrs1 = let _1 = _1_inlined2 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57533 "src/ocaml/preprocess/parser_raw.ml" +# 58476 "src/ocaml/preprocess/parser_raw.ml" in let override = -# 5311 "src/ocaml/preprocess/parser_raw.mly" +# 5310 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 57539 "src/ocaml/preprocess/parser_raw.ml" +# 58482 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2041 "src/ocaml/preprocess/parser_raw.mly" +# 2061 "src/ocaml/preprocess/parser_raw.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 ) -# 57552 "src/ocaml/preprocess/parser_raw.ml" +# 58495 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr Parsetree.open_infos * string Location.loc option)) in { @@ -57603,9 +58546,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57609 "src/ocaml/preprocess/parser_raw.ml" +# 58552 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -57615,36 +58558,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 57621 "src/ocaml/preprocess/parser_raw.ml" +# 58564 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57629 "src/ocaml/preprocess/parser_raw.ml" +# 58572 "src/ocaml/preprocess/parser_raw.ml" in let override = -# 5310 "src/ocaml/preprocess/parser_raw.mly" +# 5309 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 57635 "src/ocaml/preprocess/parser_raw.ml" +# 58578 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2056 "src/ocaml/preprocess/parser_raw.mly" +# 2076 "src/ocaml/preprocess/parser_raw.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 ) -# 57648 "src/ocaml/preprocess/parser_raw.ml" +# 58591 "src/ocaml/preprocess/parser_raw.ml" : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option)) in { @@ -57706,9 +58649,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57712 "src/ocaml/preprocess/parser_raw.ml" +# 58655 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in @@ -57718,36 +58661,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 57724 "src/ocaml/preprocess/parser_raw.ml" +# 58667 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined2 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57732 "src/ocaml/preprocess/parser_raw.ml" +# 58675 "src/ocaml/preprocess/parser_raw.ml" in let override = -# 5311 "src/ocaml/preprocess/parser_raw.mly" +# 5310 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 57738 "src/ocaml/preprocess/parser_raw.ml" +# 58681 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2056 "src/ocaml/preprocess/parser_raw.mly" +# 2076 "src/ocaml/preprocess/parser_raw.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 ) -# 57751 "src/ocaml/preprocess/parser_raw.ml" +# 58694 "src/ocaml/preprocess/parser_raw.ml" : (Longident.t Location.loc Parsetree.open_infos * string Location.loc option)) in { @@ -57767,17 +58710,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1124 "src/ocaml/preprocess/parser_raw.mly" +# 1136 "src/ocaml/preprocess/parser_raw.mly" (string) -# 57773 "src/ocaml/preprocess/parser_raw.ml" +# 58716 "src/ocaml/preprocess/parser_raw.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) = -# 5071 "src/ocaml/preprocess/parser_raw.mly" +# 5070 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57781 "src/ocaml/preprocess/parser_raw.ml" +# 58724 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57796,17 +58739,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1074 "src/ocaml/preprocess/parser_raw.mly" +# 1086 "src/ocaml/preprocess/parser_raw.mly" (string) -# 57802 "src/ocaml/preprocess/parser_raw.ml" +# 58745 "src/ocaml/preprocess/parser_raw.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) = -# 5072 "src/ocaml/preprocess/parser_raw.mly" +# 5071 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57810 "src/ocaml/preprocess/parser_raw.ml" +# 58753 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57825,17 +58768,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1075 "src/ocaml/preprocess/parser_raw.mly" +# 1087 "src/ocaml/preprocess/parser_raw.mly" (string) -# 57831 "src/ocaml/preprocess/parser_raw.ml" +# 58774 "src/ocaml/preprocess/parser_raw.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) = -# 5073 "src/ocaml/preprocess/parser_raw.mly" +# 5072 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 57839 "src/ocaml/preprocess/parser_raw.ml" +# 58782 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57875,17 +58818,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 57881 "src/ocaml/preprocess/parser_raw.ml" +# 58824 "src/ocaml/preprocess/parser_raw.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 : (string) = -# 5074 "src/ocaml/preprocess/parser_raw.mly" +# 5073 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"(" ^ _3 ^ ")" ) -# 57889 "src/ocaml/preprocess/parser_raw.ml" +# 58832 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57932,17 +58875,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 57938 "src/ocaml/preprocess/parser_raw.ml" +# 58881 "src/ocaml/preprocess/parser_raw.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 : (string) = -# 5075 "src/ocaml/preprocess/parser_raw.mly" +# 5074 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "(" ^ _3 ^ ")<-" ) -# 57946 "src/ocaml/preprocess/parser_raw.ml" +# 58889 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -57982,17 +58925,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 57988 "src/ocaml/preprocess/parser_raw.ml" +# 58931 "src/ocaml/preprocess/parser_raw.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 : (string) = -# 5076 "src/ocaml/preprocess/parser_raw.mly" +# 5075 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"[" ^ _3 ^ "]" ) -# 57996 "src/ocaml/preprocess/parser_raw.ml" +# 58939 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58039,17 +58982,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58045 "src/ocaml/preprocess/parser_raw.ml" +# 58988 "src/ocaml/preprocess/parser_raw.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 : (string) = -# 5077 "src/ocaml/preprocess/parser_raw.mly" +# 5076 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "[" ^ _3 ^ "]<-" ) -# 58053 "src/ocaml/preprocess/parser_raw.ml" +# 58996 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58089,17 +59032,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58095 "src/ocaml/preprocess/parser_raw.ml" +# 59038 "src/ocaml/preprocess/parser_raw.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 : (string) = -# 5078 "src/ocaml/preprocess/parser_raw.mly" +# 5077 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^"{" ^ _3 ^ "}" ) -# 58103 "src/ocaml/preprocess/parser_raw.ml" +# 59046 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58146,17 +59089,17 @@ module Tables = struct let _3 : (string) = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58152 "src/ocaml/preprocess/parser_raw.ml" +# 59095 "src/ocaml/preprocess/parser_raw.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 : (string) = -# 5079 "src/ocaml/preprocess/parser_raw.mly" +# 5078 "src/ocaml/preprocess/parser_raw.mly" ( "."^ _1 ^ "{" ^ _3 ^ "}<-" ) -# 58160 "src/ocaml/preprocess/parser_raw.ml" +# 59103 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58175,17 +59118,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1137 "src/ocaml/preprocess/parser_raw.mly" +# 1149 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58181 "src/ocaml/preprocess/parser_raw.ml" +# 59124 "src/ocaml/preprocess/parser_raw.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) = -# 5080 "src/ocaml/preprocess/parser_raw.mly" +# 5079 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58189 "src/ocaml/preprocess/parser_raw.ml" +# 59132 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58208,9 +59151,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5081 "src/ocaml/preprocess/parser_raw.mly" +# 5080 "src/ocaml/preprocess/parser_raw.mly" ( "!" ) -# 58214 "src/ocaml/preprocess/parser_raw.ml" +# 59157 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -58229,23 +59172,23 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 1066 "src/ocaml/preprocess/parser_raw.mly" +# 1078 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58235 "src/ocaml/preprocess/parser_raw.ml" +# 59178 "src/ocaml/preprocess/parser_raw.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 = let _1 = -# 5089 "src/ocaml/preprocess/parser_raw.mly" +# 5088 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 58244 "src/ocaml/preprocess/parser_raw.ml" +# 59187 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58249 "src/ocaml/preprocess/parser_raw.ml" +# 59192 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58270,14 +59213,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5091 "src/ocaml/preprocess/parser_raw.mly" +# 5090 "src/ocaml/preprocess/parser_raw.mly" ("@") -# 58276 "src/ocaml/preprocess/parser_raw.ml" +# 59219 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58281 "src/ocaml/preprocess/parser_raw.ml" +# 59224 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58302,14 +59245,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5092 "src/ocaml/preprocess/parser_raw.mly" +# 5091 "src/ocaml/preprocess/parser_raw.mly" ("@@") -# 58308 "src/ocaml/preprocess/parser_raw.ml" +# 59251 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58313 "src/ocaml/preprocess/parser_raw.ml" +# 59256 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58329,23 +59272,23 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 1069 "src/ocaml/preprocess/parser_raw.mly" +# 1081 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58335 "src/ocaml/preprocess/parser_raw.ml" +# 59278 "src/ocaml/preprocess/parser_raw.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 = let _1 = -# 5093 "src/ocaml/preprocess/parser_raw.mly" +# 5092 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 58344 "src/ocaml/preprocess/parser_raw.ml" +# 59287 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58349 "src/ocaml/preprocess/parser_raw.ml" +# 59292 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58365,23 +59308,23 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 1070 "src/ocaml/preprocess/parser_raw.mly" +# 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58371 "src/ocaml/preprocess/parser_raw.ml" +# 59314 "src/ocaml/preprocess/parser_raw.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 = let _1 = -# 5094 "src/ocaml/preprocess/parser_raw.mly" +# 5093 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 58380 "src/ocaml/preprocess/parser_raw.ml" +# 59323 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58385 "src/ocaml/preprocess/parser_raw.ml" +# 59328 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58401,9 +59344,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 1071 "src/ocaml/preprocess/parser_raw.mly" +# 1083 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58407 "src/ocaml/preprocess/parser_raw.ml" +# 59350 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic op in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_op_ in @@ -58411,20 +59354,20 @@ module Tables = struct let _v = let _1 = let op = -# 5085 "src/ocaml/preprocess/parser_raw.mly" +# 5084 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 58417 "src/ocaml/preprocess/parser_raw.ml" +# 59360 "src/ocaml/preprocess/parser_raw.ml" in -# 5095 "src/ocaml/preprocess/parser_raw.mly" +# 5094 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 58422 "src/ocaml/preprocess/parser_raw.ml" +# 59365 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58428 "src/ocaml/preprocess/parser_raw.ml" +# 59371 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58450,20 +59393,20 @@ module Tables = struct let _v = let _1 = let op = -# 5086 "src/ocaml/preprocess/parser_raw.mly" +# 5085 "src/ocaml/preprocess/parser_raw.mly" ( "mod" ) -# 58456 "src/ocaml/preprocess/parser_raw.ml" +# 59399 "src/ocaml/preprocess/parser_raw.ml" in -# 5095 "src/ocaml/preprocess/parser_raw.mly" +# 5094 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 58461 "src/ocaml/preprocess/parser_raw.ml" +# 59404 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58467 "src/ocaml/preprocess/parser_raw.ml" +# 59410 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58483,23 +59426,23 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let op : ( -# 1072 "src/ocaml/preprocess/parser_raw.mly" +# 1084 "src/ocaml/preprocess/parser_raw.mly" (string) -# 58489 "src/ocaml/preprocess/parser_raw.ml" +# 59432 "src/ocaml/preprocess/parser_raw.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 = let _1 = -# 5096 "src/ocaml/preprocess/parser_raw.mly" +# 5095 "src/ocaml/preprocess/parser_raw.mly" ( op ) -# 58498 "src/ocaml/preprocess/parser_raw.ml" +# 59441 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58503 "src/ocaml/preprocess/parser_raw.ml" +# 59446 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58524,14 +59467,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5097 "src/ocaml/preprocess/parser_raw.mly" +# 5096 "src/ocaml/preprocess/parser_raw.mly" ("+") -# 58530 "src/ocaml/preprocess/parser_raw.ml" +# 59473 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58535 "src/ocaml/preprocess/parser_raw.ml" +# 59478 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58556,14 +59499,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5098 "src/ocaml/preprocess/parser_raw.mly" +# 5097 "src/ocaml/preprocess/parser_raw.mly" ("+.") -# 58562 "src/ocaml/preprocess/parser_raw.ml" +# 59505 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58567 "src/ocaml/preprocess/parser_raw.ml" +# 59510 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58588,14 +59531,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5099 "src/ocaml/preprocess/parser_raw.mly" +# 5098 "src/ocaml/preprocess/parser_raw.mly" ("+=") -# 58594 "src/ocaml/preprocess/parser_raw.ml" +# 59537 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58599 "src/ocaml/preprocess/parser_raw.ml" +# 59542 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58620,14 +59563,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5100 "src/ocaml/preprocess/parser_raw.mly" +# 5099 "src/ocaml/preprocess/parser_raw.mly" ("-") -# 58626 "src/ocaml/preprocess/parser_raw.ml" +# 59569 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58631 "src/ocaml/preprocess/parser_raw.ml" +# 59574 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58652,14 +59595,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5101 "src/ocaml/preprocess/parser_raw.mly" +# 5100 "src/ocaml/preprocess/parser_raw.mly" ("-.") -# 58658 "src/ocaml/preprocess/parser_raw.ml" +# 59601 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58663 "src/ocaml/preprocess/parser_raw.ml" +# 59606 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58684,14 +59627,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5102 "src/ocaml/preprocess/parser_raw.mly" +# 5101 "src/ocaml/preprocess/parser_raw.mly" ("*") -# 58690 "src/ocaml/preprocess/parser_raw.ml" +# 59633 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58695 "src/ocaml/preprocess/parser_raw.ml" +# 59638 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58716,14 +59659,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5103 "src/ocaml/preprocess/parser_raw.mly" +# 5102 "src/ocaml/preprocess/parser_raw.mly" ("%") -# 58722 "src/ocaml/preprocess/parser_raw.ml" +# 59665 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58727 "src/ocaml/preprocess/parser_raw.ml" +# 59670 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58748,14 +59691,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5104 "src/ocaml/preprocess/parser_raw.mly" +# 5103 "src/ocaml/preprocess/parser_raw.mly" ("=") -# 58754 "src/ocaml/preprocess/parser_raw.ml" +# 59697 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58759 "src/ocaml/preprocess/parser_raw.ml" +# 59702 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58780,14 +59723,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5105 "src/ocaml/preprocess/parser_raw.mly" +# 5104 "src/ocaml/preprocess/parser_raw.mly" ("<") -# 58786 "src/ocaml/preprocess/parser_raw.ml" +# 59729 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58791 "src/ocaml/preprocess/parser_raw.ml" +# 59734 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58812,14 +59755,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5106 "src/ocaml/preprocess/parser_raw.mly" +# 5105 "src/ocaml/preprocess/parser_raw.mly" (">") -# 58818 "src/ocaml/preprocess/parser_raw.ml" +# 59761 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58823 "src/ocaml/preprocess/parser_raw.ml" +# 59766 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58844,14 +59787,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5107 "src/ocaml/preprocess/parser_raw.mly" +# 5106 "src/ocaml/preprocess/parser_raw.mly" ("or") -# 58850 "src/ocaml/preprocess/parser_raw.ml" +# 59793 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58855 "src/ocaml/preprocess/parser_raw.ml" +# 59798 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58876,14 +59819,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5108 "src/ocaml/preprocess/parser_raw.mly" +# 5107 "src/ocaml/preprocess/parser_raw.mly" ("||") -# 58882 "src/ocaml/preprocess/parser_raw.ml" +# 59825 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58887 "src/ocaml/preprocess/parser_raw.ml" +# 59830 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58908,14 +59851,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5109 "src/ocaml/preprocess/parser_raw.mly" +# 5108 "src/ocaml/preprocess/parser_raw.mly" ("&") -# 58914 "src/ocaml/preprocess/parser_raw.ml" +# 59857 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58919 "src/ocaml/preprocess/parser_raw.ml" +# 59862 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58940,14 +59883,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5110 "src/ocaml/preprocess/parser_raw.mly" +# 5109 "src/ocaml/preprocess/parser_raw.mly" ("&&") -# 58946 "src/ocaml/preprocess/parser_raw.ml" +# 59889 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58951 "src/ocaml/preprocess/parser_raw.ml" +# 59894 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -58972,14 +59915,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5111 "src/ocaml/preprocess/parser_raw.mly" +# 5110 "src/ocaml/preprocess/parser_raw.mly" (":=") -# 58978 "src/ocaml/preprocess/parser_raw.ml" +# 59921 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5082 "src/ocaml/preprocess/parser_raw.mly" +# 5081 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 58983 "src/ocaml/preprocess/parser_raw.ml" +# 59926 "src/ocaml/preprocess/parser_raw.ml" : (string)) in { @@ -59003,9 +59946,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (bool) = -# 4967 "src/ocaml/preprocess/parser_raw.mly" +# 4966 "src/ocaml/preprocess/parser_raw.mly" ( true ) -# 59009 "src/ocaml/preprocess/parser_raw.ml" +# 59952 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59021,9 +59964,52 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (bool) = -# 4968 "src/ocaml/preprocess/parser_raw.mly" +# 4967 "src/ocaml/preprocess/parser_raw.mly" ( false ) -# 59027 "src/ocaml/preprocess/parser_raw.ml" +# 59970 "src/ocaml/preprocess/parser_raw.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 : (unit option) = +# 111 "" + ( None ) +# 59988 "src/ocaml/preprocess/parser_raw.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 : unit = 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 : (unit option) = +# 114 "" + ( Some x ) +# 60013 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59041,7 +60027,7 @@ module Tables = struct let _v : (unit option) = # 111 "" ( None ) -# 59045 "src/ocaml/preprocess/parser_raw.ml" +# 60031 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59066,7 +60052,7 @@ module Tables = struct let _v : (unit option) = # 114 "" ( Some x ) -# 59070 "src/ocaml/preprocess/parser_raw.ml" +# 60056 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59081,10 +60067,10 @@ 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 : (unit option) = + let _v : ((Parsetree.type_constraint option * Parsetree.modes) option) = # 111 "" ( None ) -# 59088 "src/ocaml/preprocess/parser_raw.ml" +# 60074 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59096,21 +60082,55 @@ module Tables = struct (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; + 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 x : unit = Obj.magic x in + let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 in + let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in - let _startpos = _startpos_x_ in - let _endpos = _endpos_x_ in - let _v : (unit option) = + let _startpos = _startpos__1_ in + let _endpos = _endpos__1_inlined1_ in + let _v = + let x = + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 60111 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3661 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pconstraint cty, mm ) +# 60119 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 60126 "src/ocaml/preprocess/parser_raw.ml" + + in + ( # 114 "" ( Some x ) -# 59113 "src/ocaml/preprocess/parser_raw.ml" - in +# 60132 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.type_constraint option * Parsetree.modes) option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59120,15 +60140,63 @@ 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 = _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 _2 : (Parsetree.modes) = Obj.magic _2 in + let _1_inlined1 : (Parsetree.core_type) = Obj.magic _1_inlined1 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 : ((Parsetree.type_constraint option * Parsetree.modes) option) = -# 111 "" - ( None ) -# 59131 "src/ocaml/preprocess/parser_raw.ml" - in + let _startpos = _startpos__1_ in + let _endpos = _endpos__2_ in + let _v = + let x = + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 60177 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3661 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pconstraint cty, mm ) +# 60185 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 60192 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 114 "" + ( Some x ) +# 60198 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.type_constraint option * Parsetree.modes) option)) + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -59139,41 +60207,147 @@ module Tables = struct (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 = _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.core_type) = 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__1_inlined1_ in + let _v = + let x = + let _1 = + let _4 = + let _1 = _1_inlined1 in + +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 60250 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3664 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _4 in + Pcoerce (Some _2, cty), mm ) +# 60258 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 60265 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 114 "" + ( Some x ) +# 60271 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.type_constraint option * Parsetree.modes) option)) + in + { MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = _1; - MenhirLib.EngineTypes.startp = _startpos__1_; - MenhirLib.EngineTypes.endp = _endpos__1_; + 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_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_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 = _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 _1 : (Parsetree.type_constraint) = Obj.magic _1 in + let _2_inlined1 : (Parsetree.modes) = Obj.magic _2_inlined1 in + let _1_inlined1 : (Parsetree.core_type) = 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__1_ in + let _endpos = _endpos__2_inlined1_ in let _v = let x = let _1 = - let _2 = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 59159 "src/ocaml/preprocess/parser_raw.ml" - in + let _4 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 60330 "src/ocaml/preprocess/parser_raw.ml" + + in -# 3681 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 59164 "src/ocaml/preprocess/parser_raw.ml" +# 3664 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _4 in + Pcoerce (Some _2, cty), mm ) +# 60338 "src/ocaml/preprocess/parser_raw.ml" in -# 3686 "src/ocaml/preprocess/parser_raw.mly" +# 3676 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 59171 "src/ocaml/preprocess/parser_raw.ml" +# 60345 "src/ocaml/preprocess/parser_raw.ml" in ( # 114 "" ( Some x ) -# 59177 "src/ocaml/preprocess/parser_raw.ml" +# 60351 "src/ocaml/preprocess/parser_raw.ml" : ((Parsetree.type_constraint option * Parsetree.modes) option)) in { @@ -59198,8 +60372,8 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; }; } = _menhir_stack in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let _1 : (Parsetree.type_constraint) = Obj.magic _1 in + let _1_inlined1 : (Parsetree.core_type) = 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 @@ -59209,28 +60383,96 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 59215 "src/ocaml/preprocess/parser_raw.ml" +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 60389 "src/ocaml/preprocess/parser_raw.ml" in -# 3681 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 59221 "src/ocaml/preprocess/parser_raw.ml" +# 3667 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pcoerce (None, cty), mm ) +# 60397 "src/ocaml/preprocess/parser_raw.ml" in -# 3686 "src/ocaml/preprocess/parser_raw.mly" +# 3676 "src/ocaml/preprocess/parser_raw.mly" + ( let ty, modes = _1 in + Some ty, modes ) +# 60404 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 114 "" + ( Some x ) +# 60410 "src/ocaml/preprocess/parser_raw.ml" + : ((Parsetree.type_constraint option * Parsetree.modes) option)) + 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 = _; + 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 _2 : (Parsetree.modes) = Obj.magic _2 in + let _1_inlined1 : (Parsetree.core_type) = 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__2_ in + let _v = + let x = + let _1 = + let _2 = + let _1 = _1_inlined1 in + +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 60455 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3667 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pcoerce (None, cty), mm ) +# 60463 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3676 "src/ocaml/preprocess/parser_raw.mly" ( let ty, modes = _1 in Some ty, modes ) -# 59228 "src/ocaml/preprocess/parser_raw.ml" +# 60470 "src/ocaml/preprocess/parser_raw.ml" in ( # 114 "" ( Some x ) -# 59234 "src/ocaml/preprocess/parser_raw.ml" +# 60476 "src/ocaml/preprocess/parser_raw.ml" : ((Parsetree.type_constraint option * Parsetree.modes) option)) in { @@ -59255,14 +60497,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let x = -# 3689 "src/ocaml/preprocess/parser_raw.mly" +# 3679 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 59261 "src/ocaml/preprocess/parser_raw.ml" +# 60503 "src/ocaml/preprocess/parser_raw.ml" in ( # 114 "" ( Some x ) -# 59266 "src/ocaml/preprocess/parser_raw.ml" +# 60508 "src/ocaml/preprocess/parser_raw.ml" : ((Parsetree.type_constraint option * Parsetree.modes) option)) in { @@ -59281,7 +60523,7 @@ module Tables = struct let _v : (Parsetree.jkind_annotation option) = # 111 "" ( None ) -# 59285 "src/ocaml/preprocess/parser_raw.ml" +# 60527 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59306,7 +60548,7 @@ module Tables = struct let _v : (Parsetree.jkind_annotation option) = # 114 "" ( Some x ) -# 59310 "src/ocaml/preprocess/parser_raw.ml" +# 60552 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59324,7 +60566,7 @@ module Tables = struct let _v : (string Location.loc option) = # 111 "" ( None ) -# 59328 "src/ocaml/preprocess/parser_raw.ml" +# 60570 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59349,9 +60591,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 59355 "src/ocaml/preprocess/parser_raw.ml" +# 60597 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -59365,21 +60607,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 59371 "src/ocaml/preprocess/parser_raw.ml" +# 60613 "src/ocaml/preprocess/parser_raw.ml" in # 188 "" ( x ) -# 59377 "src/ocaml/preprocess/parser_raw.ml" +# 60619 "src/ocaml/preprocess/parser_raw.ml" in ( # 114 "" ( Some x ) -# 59383 "src/ocaml/preprocess/parser_raw.ml" +# 60625 "src/ocaml/preprocess/parser_raw.ml" : (string Location.loc option)) in { @@ -59398,7 +60640,7 @@ module Tables = struct let _v : (Parsetree.core_type option) = # 111 "" ( None ) -# 59402 "src/ocaml/preprocess/parser_raw.ml" +# 60644 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59431,12 +60673,12 @@ module Tables = struct let x = # 188 "" ( x ) -# 59435 "src/ocaml/preprocess/parser_raw.ml" +# 60677 "src/ocaml/preprocess/parser_raw.ml" in ( # 114 "" ( Some x ) -# 59440 "src/ocaml/preprocess/parser_raw.ml" +# 60682 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type option)) in { @@ -59455,7 +60697,7 @@ module Tables = struct let _v : (Parsetree.expression option) = # 111 "" ( None ) -# 59459 "src/ocaml/preprocess/parser_raw.ml" +# 60701 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59489,26 +60731,26 @@ module Tables = struct let x = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59495 "src/ocaml/preprocess/parser_raw.ml" +# 60737 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59500 "src/ocaml/preprocess/parser_raw.ml" +# 60742 "src/ocaml/preprocess/parser_raw.ml" in # 188 "" ( x ) -# 59506 "src/ocaml/preprocess/parser_raw.ml" +# 60748 "src/ocaml/preprocess/parser_raw.ml" in ( # 114 "" ( Some x ) -# 59512 "src/ocaml/preprocess/parser_raw.ml" +# 60754 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression option)) in { @@ -59571,18 +60813,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 59575 "src/ocaml/preprocess/parser_raw.ml" +# 60817 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59580 "src/ocaml/preprocess/parser_raw.ml" +# 60822 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59586 "src/ocaml/preprocess/parser_raw.ml" +# 60828 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -59591,22 +60833,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59597 "src/ocaml/preprocess/parser_raw.ml" +# 60839 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 59603 "src/ocaml/preprocess/parser_raw.ml" +# 60845 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -59619,37 +60861,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 59623 "src/ocaml/preprocess/parser_raw.ml" +# 60865 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59629 "src/ocaml/preprocess/parser_raw.ml" +# 60871 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59635 "src/ocaml/preprocess/parser_raw.ml" +# 60877 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59641 "src/ocaml/preprocess/parser_raw.ml" +# 60883 "src/ocaml/preprocess/parser_raw.ml" in # 188 "" ( x ) -# 59647 "src/ocaml/preprocess/parser_raw.ml" +# 60889 "src/ocaml/preprocess/parser_raw.ml" in ( # 114 "" ( Some x ) -# 59653 "src/ocaml/preprocess/parser_raw.ml" +# 60895 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression option)) in { @@ -59721,18 +60963,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 59725 "src/ocaml/preprocess/parser_raw.ml" +# 60967 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59730 "src/ocaml/preprocess/parser_raw.ml" +# 60972 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 59736 "src/ocaml/preprocess/parser_raw.ml" +# 60978 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -59741,22 +60983,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59747 "src/ocaml/preprocess/parser_raw.ml" +# 60989 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 59753 "src/ocaml/preprocess/parser_raw.ml" +# 60995 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -59769,7 +61011,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 59773 "src/ocaml/preprocess/parser_raw.ml" +# 61015 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -59777,39 +61019,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 59783 "src/ocaml/preprocess/parser_raw.ml" +# 61025 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59789 "src/ocaml/preprocess/parser_raw.ml" +# 61031 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59795 "src/ocaml/preprocess/parser_raw.ml" +# 61037 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 59801 "src/ocaml/preprocess/parser_raw.ml" +# 61043 "src/ocaml/preprocess/parser_raw.ml" in # 188 "" ( x ) -# 59807 "src/ocaml/preprocess/parser_raw.ml" +# 61049 "src/ocaml/preprocess/parser_raw.ml" in ( # 114 "" ( Some x ) -# 59813 "src/ocaml/preprocess/parser_raw.ml" +# 61055 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression option)) in { @@ -59828,7 +61070,7 @@ module Tables = struct let _v : (Parsetree.module_type option) = # 111 "" ( None ) -# 59832 "src/ocaml/preprocess/parser_raw.ml" +# 61074 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59861,12 +61103,12 @@ module Tables = struct let x = # 188 "" ( x ) -# 59865 "src/ocaml/preprocess/parser_raw.ml" +# 61107 "src/ocaml/preprocess/parser_raw.ml" in ( # 114 "" ( Some x ) -# 59870 "src/ocaml/preprocess/parser_raw.ml" +# 61112 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_type option)) in { @@ -59885,7 +61127,7 @@ module Tables = struct let _v : (Parsetree.pattern option) = # 111 "" ( None ) -# 59889 "src/ocaml/preprocess/parser_raw.ml" +# 61131 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59918,12 +61160,12 @@ module Tables = struct let x = # 188 "" ( x ) -# 59922 "src/ocaml/preprocess/parser_raw.ml" +# 61164 "src/ocaml/preprocess/parser_raw.ml" in ( # 114 "" ( Some x ) -# 59927 "src/ocaml/preprocess/parser_raw.ml" +# 61169 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern option)) in { @@ -59942,7 +61184,7 @@ module Tables = struct let _v : (Parsetree.expression option) = # 111 "" ( None ) -# 59946 "src/ocaml/preprocess/parser_raw.ml" +# 61188 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -59975,12 +61217,12 @@ module Tables = struct let x = # 188 "" ( x ) -# 59979 "src/ocaml/preprocess/parser_raw.ml" +# 61221 "src/ocaml/preprocess/parser_raw.ml" in ( # 114 "" ( Some x ) -# 59984 "src/ocaml/preprocess/parser_raw.ml" +# 61226 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression option)) in { @@ -59999,7 +61241,7 @@ module Tables = struct let _v : (Parsetree.type_constraint option) = # 111 "" ( None ) -# 60003 "src/ocaml/preprocess/parser_raw.ml" +# 61245 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60024,7 +61266,7 @@ module Tables = struct let _v : (Parsetree.type_constraint option) = # 114 "" ( Some x ) -# 60028 "src/ocaml/preprocess/parser_raw.ml" +# 61270 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60040,9 +61282,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.modalities) = -# 4723 "src/ocaml/preprocess/parser_raw.mly" +# 4720 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 60046 "src/ocaml/preprocess/parser_raw.ml" +# 61288 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60054,98 +61296,21 @@ module Tables = struct (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.modalities) = 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 = - let _2 = - let _1 = _1_inlined1 in - -# 4708 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 60081 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 4724 "src/ocaml/preprocess/parser_raw.mly" - ( _2 ) -# 60087 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modalities)) - 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.modalities) = -# 4717 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 60106 "src/ocaml/preprocess/parser_raw.ml" - in - { - MenhirLib.EngineTypes.state = _menhir_s; - MenhirLib.EngineTypes.semv = Obj.repr _v; - MenhirLib.EngineTypes.startp = _startpos; - MenhirLib.EngineTypes.endp = _endpos; + MenhirLib.EngineTypes.semv = _1; + MenhirLib.EngineTypes.startp = _startpos__1_; + MenhirLib.EngineTypes.endp = _endpos__1_; 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.modalities) = Obj.magic _1_inlined1 in - let _1 : unit = Obj.magic _1 in + let _1 : (Parsetree.modalities) = 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 = - let _2 = - let _1 = _1_inlined1 in - -# 4708 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 60141 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 4718 "src/ocaml/preprocess/parser_raw.mly" - ( _2 ) -# 60147 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.modalities)) - in + let _endpos = _endpos__1_ in + let _v : (Parsetree.modalities) = +# 4722 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 61313 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60173,77 +61338,16 @@ module Tables = struct let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in - let _v = - let _3 = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 60181 "src/ocaml/preprocess/parser_raw.ml" - in - ( -# 2925 "src/ocaml/preprocess/parser_raw.mly" - ( - { ret_type_constraint = Some (Pconstraint _2) - ; mode_annotations = [] - ; ret_mode_annotations = _3 - } - ) -# 60191 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.function_constraint)) - 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.modes) = Obj.magic _1_inlined1 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__1_inlined1_ in - let _v = - let _3 = - let _1 = _1_inlined1 in - -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 60234 "src/ocaml/preprocess/parser_raw.ml" - - in - ( -# 2925 "src/ocaml/preprocess/parser_raw.mly" - ( + let _v : (Parsetree.function_constraint) = +# 2901 "src/ocaml/preprocess/parser_raw.mly" + ( { ret_type_constraint = Some (Pconstraint _2) ; mode_annotations = [] - ; ret_mode_annotations = _3 + ; ret_mode_annotations = [] } ) -# 60245 "src/ocaml/preprocess/parser_raw.ml" - : (Parsetree.function_constraint)) - in +# 61350 "src/ocaml/preprocess/parser_raw.ml" + in { MenhirLib.EngineTypes.state = _menhir_s; MenhirLib.EngineTypes.semv = Obj.repr _v; @@ -60265,14 +61369,14 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.function_constraint) = -# 2931 "src/ocaml/preprocess/parser_raw.mly" +# 2907 "src/ocaml/preprocess/parser_raw.mly" ( { ret_type_constraint = None ; mode_annotations = [] ; ret_mode_annotations = _1 } ) -# 60276 "src/ocaml/preprocess/parser_raw.ml" +# 61380 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60288,9 +61392,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Parsetree.function_constraint) = -# 2937 "src/ocaml/preprocess/parser_raw.mly" +# 2913 "src/ocaml/preprocess/parser_raw.mly" ( empty_body_constraint ) -# 60294 "src/ocaml/preprocess/parser_raw.ml" +# 61398 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60299,6 +61403,284 @@ module Tables = struct 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 option * Parsetree.modes) = +# 2817 "src/ocaml/preprocess/parser_raw.mly" + ( None, [] ) +# 61416 "src/ocaml/preprocess/parser_raw.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.modes) = 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 option * Parsetree.modes) = +# 2819 "src/ocaml/preprocess/parser_raw.mly" + ( None, _1 ) +# 61441 "src/ocaml/preprocess/parser_raw.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 = _; + 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 _2 : (Parsetree.modes) = Obj.magic _2 in + let _1_inlined1 : (Parsetree.core_type) = 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__2_ in + let _v = + let cty_mm = + let _1 = _1_inlined1 in + let _1 = + let _1 = +# 4487 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 61484 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4492 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 61489 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4496 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 61495 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2821 "src/ocaml/preprocess/parser_raw.mly" + ( let cty, mm = cty_mm in + Some cty, mm + ) +# 61503 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type option * Parsetree.modes)) + 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 = _; + MenhirLib.EngineTypes.semv = _3; + MenhirLib.EngineTypes.startp = _startpos__3_; + MenhirLib.EngineTypes.endp = _endpos__3_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + 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 _2 : (Parsetree.modes) = Obj.magic _2 in + let _3 : (Parsetree.core_type) = Obj.magic _3 in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let xs : ((string Location.loc * Parsetree.jkind_annotation 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__2_ in + let _v = + let cty_mm = + let _1 = + let _1 = + let _1 = + let _1 = + let _1 = + let _1 = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 61566 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1410 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 61571 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4454 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 61577 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4458 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 61583 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4462 "src/ocaml/preprocess/parser_raw.mly" + ( let bound_vars, inner_type = _1 in + mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) +# 61594 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4484 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 61600 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4488 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 61606 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4492 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 61612 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4496 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 61618 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2821 "src/ocaml/preprocess/parser_raw.mly" + ( let cty, mm = cty_mm in + Some cty, mm + ) +# 61626 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type option * Parsetree.modes)) + 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.core_type) = 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 = + let cty_mm = + let _1 = _1_inlined1 in + let _1 = +# 4474 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 61662 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4497 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 61667 "src/ocaml/preprocess/parser_raw.ml" + + in + ( +# 2821 "src/ocaml/preprocess/parser_raw.mly" + ( let cty, mm = cty_mm in + Some cty, mm + ) +# 61675 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.core_type option * Parsetree.modes)) + 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 { @@ -60309,17 +61691,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1116 "src/ocaml/preprocess/parser_raw.mly" +# 1128 "src/ocaml/preprocess/parser_raw.mly" (string) -# 60315 "src/ocaml/preprocess/parser_raw.ml" +# 61697 "src/ocaml/preprocess/parser_raw.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) = -# 5322 "src/ocaml/preprocess/parser_raw.mly" +# 5321 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60323 "src/ocaml/preprocess/parser_raw.ml" +# 61705 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60351,18 +61733,18 @@ module Tables = struct } = _menhir_stack in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 60357 "src/ocaml/preprocess/parser_raw.ml" +# 61739 "src/ocaml/preprocess/parser_raw.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) = -# 5323 "src/ocaml/preprocess/parser_raw.mly" +# 5322 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 60366 "src/ocaml/preprocess/parser_raw.ml" +# 61748 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60375,19 +61757,19 @@ module Tables = struct 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.semv = _4; + MenhirLib.EngineTypes.startp = _startpos__4_; + MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; + 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.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = me; @@ -60404,27 +61786,41 @@ module Tables = struct }; }; } = _menhir_stack in - let _6 : unit = Obj.magic _6 in - let mty : (Parsetree.module_type) = Obj.magic mty in - let _3 : unit = Obj.magic _3 in + let _4 : unit = Obj.magic _4 in + let _1_inlined2 : (Parsetree.module_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in let me : (Parsetree.module_expr) = Obj.magic me 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 _endpos = _endpos__4_ in let _v = - let mm = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 60420 "src/ocaml/preprocess/parser_raw.ml" - in - let _endpos = _endpos__6_ in + let mty_mm = + let _1_inlined1 = _1_inlined2 in + let mty_mm = + let _1 = _1_inlined1 in + +# 2151 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 61806 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 1937 "src/ocaml/preprocess/parser_raw.mly" + ( let mty, mm = mty_mm in + (Some mty, mm) + ) +# 61814 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1786 "src/ocaml/preprocess/parser_raw.mly" - ( mkmod ~loc:_sloc (Pmod_constraint(me, Some mty, mm)) ) -# 60428 "src/ocaml/preprocess/parser_raw.ml" +# 1799 "src/ocaml/preprocess/parser_raw.mly" + ( let mty, mm = mty_mm in + mkmod ~loc:_sloc (Pmod_constraint(me, mty, mm)) ) +# 61824 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -60438,24 +61834,24 @@ module Tables = struct 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.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.semv = _2; + MenhirLib.EngineTypes.startp = _startpos__2_; + MenhirLib.EngineTypes.endp = _endpos__2_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mty; - MenhirLib.EngineTypes.startp = _startpos_mty_; - MenhirLib.EngineTypes.endp = _endpos_mty_; + 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.semv = _1_inlined1; + MenhirLib.EngineTypes.startp = _startpos__1_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__1_inlined1_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; MenhirLib.EngineTypes.semv = me; @@ -60473,31 +61869,42 @@ module Tables = struct }; }; } = _menhir_stack in - let _6 : unit = Obj.magic _6 in - let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in - let mty : (Parsetree.module_type) = Obj.magic mty in - let _3 : unit = Obj.magic _3 in + let _4 : unit = Obj.magic _4 in + let _2 : (Parsetree.modes) = Obj.magic _2 in + let _1_inlined2 : (Parsetree.module_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in let me : (Parsetree.module_expr) = Obj.magic me 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 _endpos = _endpos__4_ in let _v = - let mm = - let _1 = _1_inlined1 in + let mty_mm = + let _1_inlined1 = _1_inlined2 in + let mty_mm = + let _1 = _1_inlined1 in + +# 2152 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 61890 "src/ocaml/preprocess/parser_raw.ml" + + in -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 60492 "src/ocaml/preprocess/parser_raw.ml" +# 1937 "src/ocaml/preprocess/parser_raw.mly" + ( let mty, mm = mty_mm in + (Some mty, mm) + ) +# 61898 "src/ocaml/preprocess/parser_raw.ml" in - let _endpos = _endpos__6_ in + let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1786 "src/ocaml/preprocess/parser_raw.mly" - ( mkmod ~loc:_sloc (Pmod_constraint(me, Some mty, mm)) ) -# 60501 "src/ocaml/preprocess/parser_raw.ml" +# 1799 "src/ocaml/preprocess/parser_raw.mly" + ( let mty, mm = mty_mm in + mkmod ~loc:_sloc (Pmod_constraint(me, mty, mm)) ) +# 61908 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -60516,9 +61923,9 @@ module Tables = struct MenhirLib.EngineTypes.endp = _endpos__4_; MenhirLib.EngineTypes.next = { MenhirLib.EngineTypes.state = _; - MenhirLib.EngineTypes.semv = mm; - MenhirLib.EngineTypes.startp = _startpos_mm_; - MenhirLib.EngineTypes.endp = _endpos_mm_; + 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 = me; @@ -60535,20 +61942,29 @@ module Tables = struct }; } = _menhir_stack in let _4 : unit = Obj.magic _4 in - let mm : (Parsetree.modes) = Obj.magic mm in + let _1_inlined1 : (Parsetree.modes) = Obj.magic _1_inlined1 in let me : (Parsetree.module_expr) = Obj.magic me 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 = + let mty_mm = + let _1 = _1_inlined1 in + +# 1941 "src/ocaml/preprocess/parser_raw.mly" + ( (None, _1) ) +# 61958 "src/ocaml/preprocess/parser_raw.ml" + + in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1788 "src/ocaml/preprocess/parser_raw.mly" - ( mkmod ~loc:_sloc (Pmod_constraint(me, None, mm)) ) -# 60552 "src/ocaml/preprocess/parser_raw.ml" +# 1799 "src/ocaml/preprocess/parser_raw.mly" + ( let mty, mm = mty_mm in + mkmod ~loc:_sloc (Pmod_constraint(me, mty, mm)) ) +# 61968 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -60586,9 +62002,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Parsetree.module_expr) = -# 1795 "src/ocaml/preprocess/parser_raw.mly" +# 1807 "src/ocaml/preprocess/parser_raw.mly" ( me (* TODO consider reloc *) ) -# 60592 "src/ocaml/preprocess/parser_raw.ml" +# 62008 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -60643,37 +62059,37 @@ module Tables = struct let _1 = _1_inlined2 in let e = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60649 "src/ocaml/preprocess/parser_raw.ml" +# 62065 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60654 "src/ocaml/preprocess/parser_raw.ml" +# 62070 "src/ocaml/preprocess/parser_raw.ml" in -# 1818 "src/ocaml/preprocess/parser_raw.mly" +# 1830 "src/ocaml/preprocess/parser_raw.mly" ( e ) -# 60660 "src/ocaml/preprocess/parser_raw.ml" +# 62076 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60668 "src/ocaml/preprocess/parser_raw.ml" +# 62084 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1803 "src/ocaml/preprocess/parser_raw.mly" +# 1815 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 60677 "src/ocaml/preprocess/parser_raw.ml" +# 62093 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -60757,18 +62173,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 60761 "src/ocaml/preprocess/parser_raw.ml" +# 62177 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 60766 "src/ocaml/preprocess/parser_raw.ml" +# 62182 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 60772 "src/ocaml/preprocess/parser_raw.ml" +# 62188 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -60777,22 +62193,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60783 "src/ocaml/preprocess/parser_raw.ml" +# 62199 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 60789 "src/ocaml/preprocess/parser_raw.ml" +# 62205 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -60805,48 +62221,48 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 60809 "src/ocaml/preprocess/parser_raw.ml" +# 62225 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60815 "src/ocaml/preprocess/parser_raw.ml" +# 62231 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60821 "src/ocaml/preprocess/parser_raw.ml" +# 62237 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60827 "src/ocaml/preprocess/parser_raw.ml" +# 62243 "src/ocaml/preprocess/parser_raw.ml" in -# 1818 "src/ocaml/preprocess/parser_raw.mly" +# 1830 "src/ocaml/preprocess/parser_raw.mly" ( e ) -# 60833 "src/ocaml/preprocess/parser_raw.ml" +# 62249 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60841 "src/ocaml/preprocess/parser_raw.ml" +# 62257 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1803 "src/ocaml/preprocess/parser_raw.mly" +# 1815 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 60850 "src/ocaml/preprocess/parser_raw.ml" +# 62266 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -60939,18 +62355,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 60943 "src/ocaml/preprocess/parser_raw.ml" +# 62359 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 60948 "src/ocaml/preprocess/parser_raw.ml" +# 62364 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 60954 "src/ocaml/preprocess/parser_raw.ml" +# 62370 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -60959,22 +62375,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 60965 "src/ocaml/preprocess/parser_raw.ml" +# 62381 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 60971 "src/ocaml/preprocess/parser_raw.ml" +# 62387 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -60987,7 +62403,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 60991 "src/ocaml/preprocess/parser_raw.ml" +# 62407 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -60995,50 +62411,50 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 61001 "src/ocaml/preprocess/parser_raw.ml" +# 62417 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61007 "src/ocaml/preprocess/parser_raw.ml" +# 62423 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61013 "src/ocaml/preprocess/parser_raw.ml" +# 62429 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61019 "src/ocaml/preprocess/parser_raw.ml" +# 62435 "src/ocaml/preprocess/parser_raw.ml" in -# 1818 "src/ocaml/preprocess/parser_raw.mly" +# 1830 "src/ocaml/preprocess/parser_raw.mly" ( e ) -# 61025 "src/ocaml/preprocess/parser_raw.ml" +# 62441 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61033 "src/ocaml/preprocess/parser_raw.ml" +# 62449 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1803 "src/ocaml/preprocess/parser_raw.mly" +# 1815 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 61042 "src/ocaml/preprocess/parser_raw.ml" +# 62458 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -61112,24 +62528,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 61120 "src/ocaml/preprocess/parser_raw.ml" +# 62536 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos__1_inlined1_ in let e = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61128 "src/ocaml/preprocess/parser_raw.ml" +# 62544 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61133 "src/ocaml/preprocess/parser_raw.ml" +# 62549 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -61137,26 +62553,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1820 "src/ocaml/preprocess/parser_raw.mly" +# 1832 "src/ocaml/preprocess/parser_raw.mly" ( ghexp_constraint ~loc:_loc ~exp:e ~cty:(Some ty) ~modes:[] ) -# 61143 "src/ocaml/preprocess/parser_raw.ml" +# 62559 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61151 "src/ocaml/preprocess/parser_raw.ml" +# 62567 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1803 "src/ocaml/preprocess/parser_raw.mly" +# 1815 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 61160 "src/ocaml/preprocess/parser_raw.ml" +# 62576 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -61251,11 +62667,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 61259 "src/ocaml/preprocess/parser_raw.ml" +# 62675 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos__1_inlined3_ in @@ -61268,18 +62684,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 61272 "src/ocaml/preprocess/parser_raw.ml" +# 62688 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 61277 "src/ocaml/preprocess/parser_raw.ml" +# 62693 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 61283 "src/ocaml/preprocess/parser_raw.ml" +# 62699 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -61288,22 +62704,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61294 "src/ocaml/preprocess/parser_raw.ml" +# 62710 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 61300 "src/ocaml/preprocess/parser_raw.ml" +# 62716 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -61316,25 +62732,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 61320 "src/ocaml/preprocess/parser_raw.ml" +# 62736 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61326 "src/ocaml/preprocess/parser_raw.ml" +# 62742 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61332 "src/ocaml/preprocess/parser_raw.ml" +# 62748 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61338 "src/ocaml/preprocess/parser_raw.ml" +# 62754 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -61342,26 +62758,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1820 "src/ocaml/preprocess/parser_raw.mly" +# 1832 "src/ocaml/preprocess/parser_raw.mly" ( ghexp_constraint ~loc:_loc ~exp:e ~cty:(Some ty) ~modes:[] ) -# 61348 "src/ocaml/preprocess/parser_raw.ml" +# 62764 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61356 "src/ocaml/preprocess/parser_raw.ml" +# 62772 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1803 "src/ocaml/preprocess/parser_raw.mly" +# 1815 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 61365 "src/ocaml/preprocess/parser_raw.ml" +# 62781 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -61463,11 +62879,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 61471 "src/ocaml/preprocess/parser_raw.ml" +# 62887 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos__1_inlined4_ in @@ -61482,18 +62898,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 61486 "src/ocaml/preprocess/parser_raw.ml" +# 62902 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 61491 "src/ocaml/preprocess/parser_raw.ml" +# 62907 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 61497 "src/ocaml/preprocess/parser_raw.ml" +# 62913 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -61502,22 +62918,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61508 "src/ocaml/preprocess/parser_raw.ml" +# 62924 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 61514 "src/ocaml/preprocess/parser_raw.ml" +# 62930 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -61530,7 +62946,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 61534 "src/ocaml/preprocess/parser_raw.ml" +# 62950 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -61538,27 +62954,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 61544 "src/ocaml/preprocess/parser_raw.ml" +# 62960 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61550 "src/ocaml/preprocess/parser_raw.ml" +# 62966 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61556 "src/ocaml/preprocess/parser_raw.ml" +# 62972 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61562 "src/ocaml/preprocess/parser_raw.ml" +# 62978 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -61566,26 +62982,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1820 "src/ocaml/preprocess/parser_raw.mly" +# 1832 "src/ocaml/preprocess/parser_raw.mly" ( ghexp_constraint ~loc:_loc ~exp:e ~cty:(Some ty) ~modes:[] ) -# 61572 "src/ocaml/preprocess/parser_raw.ml" +# 62988 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61580 "src/ocaml/preprocess/parser_raw.ml" +# 62996 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1803 "src/ocaml/preprocess/parser_raw.mly" +# 1815 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 61589 "src/ocaml/preprocess/parser_raw.ml" +# 63005 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -61673,11 +63089,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 61681 "src/ocaml/preprocess/parser_raw.ml" +# 63097 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty2_ = _endpos__1_inlined2_ in @@ -61687,23 +63103,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 61695 "src/ocaml/preprocess/parser_raw.ml" +# 63111 "src/ocaml/preprocess/parser_raw.ml" in let e = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61702 "src/ocaml/preprocess/parser_raw.ml" +# 63118 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61707 "src/ocaml/preprocess/parser_raw.ml" +# 63123 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -61711,26 +63127,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1822 "src/ocaml/preprocess/parser_raw.mly" +# 1834 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) ) -# 61717 "src/ocaml/preprocess/parser_raw.ml" +# 63133 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61725 "src/ocaml/preprocess/parser_raw.ml" +# 63141 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1803 "src/ocaml/preprocess/parser_raw.mly" +# 1815 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 61734 "src/ocaml/preprocess/parser_raw.ml" +# 63150 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -61839,11 +63255,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 61847 "src/ocaml/preprocess/parser_raw.ml" +# 63263 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty2_ = _endpos__1_inlined4_ in @@ -61853,11 +63269,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 61861 "src/ocaml/preprocess/parser_raw.ml" +# 63277 "src/ocaml/preprocess/parser_raw.ml" in let e = @@ -61869,18 +63285,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 61873 "src/ocaml/preprocess/parser_raw.ml" +# 63289 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 61878 "src/ocaml/preprocess/parser_raw.ml" +# 63294 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 61884 "src/ocaml/preprocess/parser_raw.ml" +# 63300 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -61889,22 +63305,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61895 "src/ocaml/preprocess/parser_raw.ml" +# 63311 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 61901 "src/ocaml/preprocess/parser_raw.ml" +# 63317 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -61917,25 +63333,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 61921 "src/ocaml/preprocess/parser_raw.ml" +# 63337 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61927 "src/ocaml/preprocess/parser_raw.ml" +# 63343 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61933 "src/ocaml/preprocess/parser_raw.ml" +# 63349 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61939 "src/ocaml/preprocess/parser_raw.ml" +# 63355 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -61943,26 +63359,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1822 "src/ocaml/preprocess/parser_raw.mly" +# 1834 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) ) -# 61949 "src/ocaml/preprocess/parser_raw.ml" +# 63365 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 61957 "src/ocaml/preprocess/parser_raw.ml" +# 63373 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1803 "src/ocaml/preprocess/parser_raw.mly" +# 1815 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 61966 "src/ocaml/preprocess/parser_raw.ml" +# 63382 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -62078,11 +63494,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 62086 "src/ocaml/preprocess/parser_raw.ml" +# 63502 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty2_ = _endpos__1_inlined5_ in @@ -62092,11 +63508,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 62100 "src/ocaml/preprocess/parser_raw.ml" +# 63516 "src/ocaml/preprocess/parser_raw.ml" in let e = @@ -62110,18 +63526,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 62114 "src/ocaml/preprocess/parser_raw.ml" +# 63530 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 62119 "src/ocaml/preprocess/parser_raw.ml" +# 63535 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 62125 "src/ocaml/preprocess/parser_raw.ml" +# 63541 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -62130,22 +63546,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62136 "src/ocaml/preprocess/parser_raw.ml" +# 63552 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62142 "src/ocaml/preprocess/parser_raw.ml" +# 63558 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -62158,7 +63574,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 62162 "src/ocaml/preprocess/parser_raw.ml" +# 63578 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -62166,27 +63582,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 62172 "src/ocaml/preprocess/parser_raw.ml" +# 63588 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62178 "src/ocaml/preprocess/parser_raw.ml" +# 63594 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62184 "src/ocaml/preprocess/parser_raw.ml" +# 63600 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62190 "src/ocaml/preprocess/parser_raw.ml" +# 63606 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -62194,26 +63610,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1822 "src/ocaml/preprocess/parser_raw.mly" +# 1834 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, Some ty1, ty2)) ) -# 62200 "src/ocaml/preprocess/parser_raw.ml" +# 63616 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62208 "src/ocaml/preprocess/parser_raw.ml" +# 63624 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1803 "src/ocaml/preprocess/parser_raw.mly" +# 1815 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 62217 "src/ocaml/preprocess/parser_raw.ml" +# 63633 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -62287,24 +63703,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 62295 "src/ocaml/preprocess/parser_raw.ml" +# 63711 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty2_ = _endpos__1_inlined1_ in let e = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62303 "src/ocaml/preprocess/parser_raw.ml" +# 63719 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62308 "src/ocaml/preprocess/parser_raw.ml" +# 63724 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -62312,26 +63728,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1824 "src/ocaml/preprocess/parser_raw.mly" +# 1836 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) ) -# 62318 "src/ocaml/preprocess/parser_raw.ml" +# 63734 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62326 "src/ocaml/preprocess/parser_raw.ml" +# 63742 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1803 "src/ocaml/preprocess/parser_raw.mly" +# 1815 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 62335 "src/ocaml/preprocess/parser_raw.ml" +# 63751 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -62426,11 +63842,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 62434 "src/ocaml/preprocess/parser_raw.ml" +# 63850 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty2_ = _endpos__1_inlined3_ in @@ -62443,18 +63859,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 62447 "src/ocaml/preprocess/parser_raw.ml" +# 63863 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 62452 "src/ocaml/preprocess/parser_raw.ml" +# 63868 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 62458 "src/ocaml/preprocess/parser_raw.ml" +# 63874 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -62463,22 +63879,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62469 "src/ocaml/preprocess/parser_raw.ml" +# 63885 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62475 "src/ocaml/preprocess/parser_raw.ml" +# 63891 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -62491,25 +63907,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 62495 "src/ocaml/preprocess/parser_raw.ml" +# 63911 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62501 "src/ocaml/preprocess/parser_raw.ml" +# 63917 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62507 "src/ocaml/preprocess/parser_raw.ml" +# 63923 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62513 "src/ocaml/preprocess/parser_raw.ml" +# 63929 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -62517,26 +63933,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1824 "src/ocaml/preprocess/parser_raw.mly" +# 1836 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) ) -# 62523 "src/ocaml/preprocess/parser_raw.ml" +# 63939 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62531 "src/ocaml/preprocess/parser_raw.ml" +# 63947 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1803 "src/ocaml/preprocess/parser_raw.mly" +# 1815 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 62540 "src/ocaml/preprocess/parser_raw.ml" +# 63956 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -62638,11 +64054,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 62646 "src/ocaml/preprocess/parser_raw.ml" +# 64062 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty2_ = _endpos__1_inlined4_ in @@ -62657,18 +64073,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 62661 "src/ocaml/preprocess/parser_raw.ml" +# 64077 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 62666 "src/ocaml/preprocess/parser_raw.ml" +# 64082 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 62672 "src/ocaml/preprocess/parser_raw.ml" +# 64088 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -62677,22 +64093,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62683 "src/ocaml/preprocess/parser_raw.ml" +# 64099 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 62689 "src/ocaml/preprocess/parser_raw.ml" +# 64105 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -62705,7 +64121,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 62709 "src/ocaml/preprocess/parser_raw.ml" +# 64125 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -62713,27 +64129,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 62719 "src/ocaml/preprocess/parser_raw.ml" +# 64135 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62725 "src/ocaml/preprocess/parser_raw.ml" +# 64141 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62731 "src/ocaml/preprocess/parser_raw.ml" +# 64147 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62737 "src/ocaml/preprocess/parser_raw.ml" +# 64153 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_e_ = _startpos__1_ in @@ -62741,26 +64157,26 @@ module Tables = struct let _startpos = _startpos_e_ in let _loc = (_startpos, _endpos) in -# 1824 "src/ocaml/preprocess/parser_raw.mly" +# 1836 "src/ocaml/preprocess/parser_raw.mly" ( ghexp ~loc:_loc (Pexp_coerce (e, None, ty2)) ) -# 62747 "src/ocaml/preprocess/parser_raw.ml" +# 64163 "src/ocaml/preprocess/parser_raw.ml" in let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62755 "src/ocaml/preprocess/parser_raw.ml" +# 64171 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1803 "src/ocaml/preprocess/parser_raw.mly" +# 1815 "src/ocaml/preprocess/parser_raw.mly" ( mkmod ~loc:_sloc ~attrs (Pmod_unpack e) ) -# 62764 "src/ocaml/preprocess/parser_raw.ml" +# 64180 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.module_expr)) in { @@ -62784,9 +64200,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) = -# 4211 "src/ocaml/preprocess/parser_raw.mly" +# 4185 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62790 "src/ocaml/preprocess/parser_raw.ml" +# 64206 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -62849,32 +64265,32 @@ module Tables = struct let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62855 "src/ocaml/preprocess/parser_raw.ml" +# 64271 "src/ocaml/preprocess/parser_raw.ml" in let name = -# 4232 "src/ocaml/preprocess/parser_raw.mly" +# 4206 "src/ocaml/preprocess/parser_raw.mly" ( Some _2 ) -# 62861 "src/ocaml/preprocess/parser_raw.ml" +# 64277 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_name_ = _startpos__1_ in let _endpos = _endpos_jkind_ in let _symbolstartpos = _startpos_name_ in let _sloc = (_symbolstartpos, _endpos) in -# 4205 "src/ocaml/preprocess/parser_raw.mly" +# 4179 "src/ocaml/preprocess/parser_raw.mly" ( match name with | None -> mktyp ~loc:_sloc ~attrs (Ptyp_any (Some jkind)) | Some name -> mktyp ~loc:_sloc ~attrs (Ptyp_var (name, Some jkind)) ) -# 62872 "src/ocaml/preprocess/parser_raw.ml" +# 64288 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4213 "src/ocaml/preprocess/parser_raw.mly" +# 4187 "src/ocaml/preprocess/parser_raw.mly" ( _2, _1 ) -# 62878 "src/ocaml/preprocess/parser_raw.ml" +# 64294 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity))) in { @@ -62931,32 +64347,32 @@ module Tables = struct let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62937 "src/ocaml/preprocess/parser_raw.ml" +# 64353 "src/ocaml/preprocess/parser_raw.ml" in let name = -# 4234 "src/ocaml/preprocess/parser_raw.mly" +# 4208 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 62943 "src/ocaml/preprocess/parser_raw.ml" +# 64359 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_name_ = _startpos__1_ in let _endpos = _endpos_jkind_ in let _symbolstartpos = _startpos_name_ in let _sloc = (_symbolstartpos, _endpos) in -# 4205 "src/ocaml/preprocess/parser_raw.mly" +# 4179 "src/ocaml/preprocess/parser_raw.mly" ( match name with | None -> mktyp ~loc:_sloc ~attrs (Ptyp_any (Some jkind)) | Some name -> mktyp ~loc:_sloc ~attrs (Ptyp_var (name, Some jkind)) ) -# 62954 "src/ocaml/preprocess/parser_raw.ml" +# 64370 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4213 "src/ocaml/preprocess/parser_raw.mly" +# 4187 "src/ocaml/preprocess/parser_raw.mly" ( _2, _1 ) -# 62960 "src/ocaml/preprocess/parser_raw.ml" +# 64376 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity))) in { @@ -62987,9 +64403,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1686 "src/ocaml/preprocess/parser_raw.mly" +# 1698 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 62993 "src/ocaml/preprocess/parser_raw.ml" +# 64409 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63019,9 +64435,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1671 "src/ocaml/preprocess/parser_raw.mly" +# 1683 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63025 "src/ocaml/preprocess/parser_raw.ml" +# 64441 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63051,9 +64467,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.core_type) = -# 1646 "src/ocaml/preprocess/parser_raw.mly" +# 1658 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63057 "src/ocaml/preprocess/parser_raw.ml" +# 64473 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63083,9 +64499,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.expression) = -# 1651 "src/ocaml/preprocess/parser_raw.mly" +# 1663 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63089 "src/ocaml/preprocess/parser_raw.ml" +# 64505 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63115,9 +64531,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1676 "src/ocaml/preprocess/parser_raw.mly" +# 1688 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63121 "src/ocaml/preprocess/parser_raw.ml" +# 64537 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63147,9 +64563,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1681 "src/ocaml/preprocess/parser_raw.mly" +# 1693 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63153 "src/ocaml/preprocess/parser_raw.ml" +# 64569 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63179,9 +64595,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.module_expr) = -# 1641 "src/ocaml/preprocess/parser_raw.mly" +# 1653 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63185 "src/ocaml/preprocess/parser_raw.ml" +# 64601 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63211,9 +64627,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.module_type) = -# 1636 "src/ocaml/preprocess/parser_raw.mly" +# 1648 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63217 "src/ocaml/preprocess/parser_raw.ml" +# 64633 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63243,9 +64659,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1661 "src/ocaml/preprocess/parser_raw.mly" +# 1673 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63249 "src/ocaml/preprocess/parser_raw.ml" +# 64665 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63275,9 +64691,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.pattern) = -# 1656 "src/ocaml/preprocess/parser_raw.mly" +# 1668 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63281 "src/ocaml/preprocess/parser_raw.ml" +# 64697 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63307,9 +64723,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Longident.t) = -# 1666 "src/ocaml/preprocess/parser_raw.mly" +# 1678 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63313 "src/ocaml/preprocess/parser_raw.ml" +# 64729 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63352,17 +64768,17 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in -# 3738 "src/ocaml/preprocess/parser_raw.mly" +# 3728 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple ([None, _1;None, _3], Closed))) ) -# 63360 "src/ocaml/preprocess/parser_raw.ml" +# 64776 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3726 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63366 "src/ocaml/preprocess/parser_raw.ml" +# 64782 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -63394,14 +64810,14 @@ module Tables = struct let _endpos = _endpos__2_ in let _v = let _1 = -# 3742 "src/ocaml/preprocess/parser_raw.mly" +# 3732 "src/ocaml/preprocess/parser_raw.mly" ( Pat.attr _1 _2 ) -# 63400 "src/ocaml/preprocess/parser_raw.ml" +# 64816 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3726 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63405 "src/ocaml/preprocess/parser_raw.ml" +# 64821 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -63426,14 +64842,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 3744 "src/ocaml/preprocess/parser_raw.mly" +# 3734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63432 "src/ocaml/preprocess/parser_raw.ml" +# 64848 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3726 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63437 "src/ocaml/preprocess/parser_raw.ml" +# 64853 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -63480,15 +64896,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63486 "src/ocaml/preprocess/parser_raw.ml" +# 64902 "src/ocaml/preprocess/parser_raw.ml" in -# 3747 "src/ocaml/preprocess/parser_raw.mly" +# 3737 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_alias(_1, _3) ) -# 63492 "src/ocaml/preprocess/parser_raw.ml" +# 64908 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -63496,21 +64912,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 63502 "src/ocaml/preprocess/parser_raw.ml" +# 64918 "src/ocaml/preprocess/parser_raw.ml" in -# 3756 "src/ocaml/preprocess/parser_raw.mly" +# 3746 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63508 "src/ocaml/preprocess/parser_raw.ml" +# 64924 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3726 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63514 "src/ocaml/preprocess/parser_raw.ml" +# 64930 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -63551,30 +64967,30 @@ module Tables = struct let _1 = let _1 = let _1 = -# 3753 "src/ocaml/preprocess/parser_raw.mly" +# 3743 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_or(_1, _3) ) -# 63557 "src/ocaml/preprocess/parser_raw.ml" +# 64973 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 63566 "src/ocaml/preprocess/parser_raw.ml" +# 64982 "src/ocaml/preprocess/parser_raw.ml" in -# 3756 "src/ocaml/preprocess/parser_raw.mly" +# 3746 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63572 "src/ocaml/preprocess/parser_raw.ml" +# 64988 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3726 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63578 "src/ocaml/preprocess/parser_raw.ml" +# 64994 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -63603,17 +65019,17 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3758 "src/ocaml/preprocess/parser_raw.mly" +# 3748 "src/ocaml/preprocess/parser_raw.mly" ( let closed, pats = _1 in mkpat ~loc:_sloc (Ppat_tuple (List.rev pats, closed)) ) -# 63611 "src/ocaml/preprocess/parser_raw.ml" +# 65027 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3726 "src/ocaml/preprocess/parser_raw.mly" +# 3716 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63617 "src/ocaml/preprocess/parser_raw.ml" +# 65033 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -63663,24 +65079,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63669 "src/ocaml/preprocess/parser_raw.ml" +# 65085 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 63675 "src/ocaml/preprocess/parser_raw.ml" +# 65091 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3728 "src/ocaml/preprocess/parser_raw.mly" +# 3718 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_exception _3) _2) -# 63684 "src/ocaml/preprocess/parser_raw.ml" +# 65100 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -63704,9 +65120,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 3822 "src/ocaml/preprocess/parser_raw.mly" +# 3812 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63710 "src/ocaml/preprocess/parser_raw.ml" +# 65126 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -63743,15 +65159,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63749 "src/ocaml/preprocess/parser_raw.ml" +# 65165 "src/ocaml/preprocess/parser_raw.ml" in -# 3825 "src/ocaml/preprocess/parser_raw.mly" +# 3815 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(_1, Some ([], _2)) ) -# 63755 "src/ocaml/preprocess/parser_raw.ml" +# 65171 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -63759,15 +65175,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 63765 "src/ocaml/preprocess/parser_raw.ml" +# 65181 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3835 "src/ocaml/preprocess/parser_raw.mly" +# 3825 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63771 "src/ocaml/preprocess/parser_raw.ml" +# 65187 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -63833,15 +65249,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63839 "src/ocaml/preprocess/parser_raw.ml" +# 65255 "src/ocaml/preprocess/parser_raw.ml" in -# 3828 "src/ocaml/preprocess/parser_raw.mly" +# 3818 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(constr, Some (newtypes, pat)) ) -# 63845 "src/ocaml/preprocess/parser_raw.ml" +# 65261 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_pat_ in @@ -63849,15 +65265,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 63855 "src/ocaml/preprocess/parser_raw.ml" +# 65271 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3835 "src/ocaml/preprocess/parser_raw.mly" +# 3825 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63861 "src/ocaml/preprocess/parser_raw.ml" +# 65277 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -63923,9 +65339,9 @@ module Tables = struct let jkind : (Parsetree.jkind_annotation) = Obj.magic jkind in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 63929 "src/ocaml/preprocess/parser_raw.ml" +# 65345 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in @@ -63942,9 +65358,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63948 "src/ocaml/preprocess/parser_raw.ml" +# 65364 "src/ocaml/preprocess/parser_raw.ml" in let constr = @@ -63952,15 +65368,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 63958 "src/ocaml/preprocess/parser_raw.ml" +# 65374 "src/ocaml/preprocess/parser_raw.ml" in -# 3832 "src/ocaml/preprocess/parser_raw.mly" +# 3822 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(constr, Some ([(ty,Some jkind)], pat)) ) -# 63964 "src/ocaml/preprocess/parser_raw.ml" +# 65380 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_pat_ in @@ -63968,15 +65384,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 63974 "src/ocaml/preprocess/parser_raw.ml" +# 65390 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3835 "src/ocaml/preprocess/parser_raw.mly" +# 3825 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 63980 "src/ocaml/preprocess/parser_raw.ml" +# 65396 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -64009,24 +65425,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 3834 "src/ocaml/preprocess/parser_raw.mly" +# 3824 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_variant(_1, Some _2) ) -# 64015 "src/ocaml/preprocess/parser_raw.ml" +# 65431 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 64024 "src/ocaml/preprocess/parser_raw.ml" +# 65440 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3835 "src/ocaml/preprocess/parser_raw.mly" +# 3825 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64030 "src/ocaml/preprocess/parser_raw.ml" +# 65446 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -64076,24 +65492,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64082 "src/ocaml/preprocess/parser_raw.ml" +# 65498 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 64088 "src/ocaml/preprocess/parser_raw.ml" +# 65504 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3837 "src/ocaml/preprocess/parser_raw.mly" +# 3827 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_lazy _3) _2) -# 64097 "src/ocaml/preprocess/parser_raw.ml" +# 65513 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -64137,17 +65553,17 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in -# 3738 "src/ocaml/preprocess/parser_raw.mly" +# 3728 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_cons ~loc:_sloc _loc__2_ (ghpat ~loc:_sloc (Ppat_tuple ([None, _1;None, _3], Closed))) ) -# 64145 "src/ocaml/preprocess/parser_raw.ml" +# 65561 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3733 "src/ocaml/preprocess/parser_raw.mly" +# 3723 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64151 "src/ocaml/preprocess/parser_raw.ml" +# 65567 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -64179,14 +65595,14 @@ module Tables = struct let _endpos = _endpos__2_ in let _v = let _1 = -# 3742 "src/ocaml/preprocess/parser_raw.mly" +# 3732 "src/ocaml/preprocess/parser_raw.mly" ( Pat.attr _1 _2 ) -# 64185 "src/ocaml/preprocess/parser_raw.ml" +# 65601 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3733 "src/ocaml/preprocess/parser_raw.mly" +# 3723 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64190 "src/ocaml/preprocess/parser_raw.ml" +# 65606 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -64211,14 +65627,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 3744 "src/ocaml/preprocess/parser_raw.mly" +# 3734 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64217 "src/ocaml/preprocess/parser_raw.ml" +# 65633 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3733 "src/ocaml/preprocess/parser_raw.mly" +# 3723 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64222 "src/ocaml/preprocess/parser_raw.ml" +# 65638 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -64265,15 +65681,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64271 "src/ocaml/preprocess/parser_raw.ml" +# 65687 "src/ocaml/preprocess/parser_raw.ml" in -# 3747 "src/ocaml/preprocess/parser_raw.mly" +# 3737 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_alias(_1, _3) ) -# 64277 "src/ocaml/preprocess/parser_raw.ml" +# 65693 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -64281,21 +65697,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 64287 "src/ocaml/preprocess/parser_raw.ml" +# 65703 "src/ocaml/preprocess/parser_raw.ml" in -# 3756 "src/ocaml/preprocess/parser_raw.mly" +# 3746 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64293 "src/ocaml/preprocess/parser_raw.ml" +# 65709 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3733 "src/ocaml/preprocess/parser_raw.mly" +# 3723 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64299 "src/ocaml/preprocess/parser_raw.ml" +# 65715 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -64336,30 +65752,30 @@ module Tables = struct let _1 = let _1 = let _1 = -# 3753 "src/ocaml/preprocess/parser_raw.mly" +# 3743 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_or(_1, _3) ) -# 64342 "src/ocaml/preprocess/parser_raw.ml" +# 65758 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 64351 "src/ocaml/preprocess/parser_raw.ml" +# 65767 "src/ocaml/preprocess/parser_raw.ml" in -# 3756 "src/ocaml/preprocess/parser_raw.mly" +# 3746 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64357 "src/ocaml/preprocess/parser_raw.ml" +# 65773 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3733 "src/ocaml/preprocess/parser_raw.mly" +# 3723 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64363 "src/ocaml/preprocess/parser_raw.ml" +# 65779 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -64388,17 +65804,17 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3758 "src/ocaml/preprocess/parser_raw.mly" +# 3748 "src/ocaml/preprocess/parser_raw.mly" ( let closed, pats = _1 in mkpat ~loc:_sloc (Ppat_tuple (List.rev pats, closed)) ) -# 64396 "src/ocaml/preprocess/parser_raw.ml" +# 65812 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3733 "src/ocaml/preprocess/parser_raw.mly" +# 3723 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64402 "src/ocaml/preprocess/parser_raw.ml" +# 65818 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -64418,9 +65834,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 64424 "src/ocaml/preprocess/parser_raw.ml" +# 65840 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -64433,30 +65849,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 64439 "src/ocaml/preprocess/parser_raw.ml" +# 65855 "src/ocaml/preprocess/parser_raw.ml" in -# 2830 "src/ocaml/preprocess/parser_raw.mly" +# 2806 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_var _1 ) -# 64445 "src/ocaml/preprocess/parser_raw.ml" +# 65861 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 64454 "src/ocaml/preprocess/parser_raw.ml" +# 65870 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2832 "src/ocaml/preprocess/parser_raw.mly" +# 2808 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64460 "src/ocaml/preprocess/parser_raw.ml" +# 65876 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -64482,23 +65898,417 @@ module Tables = struct let _v = let _1 = let _1 = -# 2831 "src/ocaml/preprocess/parser_raw.mly" +# 2807 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_any ) -# 64488 "src/ocaml/preprocess/parser_raw.ml" +# 65904 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 64496 "src/ocaml/preprocess/parser_raw.ml" +# 65912 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2832 "src/ocaml/preprocess/parser_raw.mly" +# 2808 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64502 "src/ocaml/preprocess/parser_raw.ml" +# 65918 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + 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 = cty_modes1; + MenhirLib.EngineTypes.startp = _startpos_cty_modes1_; + MenhirLib.EngineTypes.endp = _endpos_cty_modes1_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _; + MenhirLib.EngineTypes.semv = pat; + MenhirLib.EngineTypes.startp = _startpos_pat_; + MenhirLib.EngineTypes.endp = _endpos_pat_; + 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 cty_modes1 : (Parsetree.core_type option * Parsetree.modes) = Obj.magic cty_modes1 in + let pat : (Parsetree.pattern) = Obj.magic pat in + let _1 : (Parsetree.modes) = Obj.magic _1 in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos__1_ in + let _endpos = _endpos_cty_modes1_ in + let _v = + let modes0 = +# 4670 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 65959 "src/ocaml/preprocess/parser_raw.ml" + in + let _startpos_modes0_ = _startpos__1_ in + ( +# 2860 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, modes1 = cty_modes1 in + let modes = modes0 @ modes1 in + let loc = _startpos_modes0_, _endpos_cty_modes1_ in + mkpat_with_modes ~loc ~pat ~cty:cty ~modes + ) +# 65970 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + 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_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + 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 = _; + 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 = pat; + MenhirLib.EngineTypes.startp = _startpos_pat_; + MenhirLib.EngineTypes.endp = _endpos_pat_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + } = _menhir_stack in + let _2_inlined1 : (Parsetree.modes) = Obj.magic _2_inlined1 in + let _1 : (Parsetree.core_type) = Obj.magic _1 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 + let _startpos = _startpos_pat_ in + let _endpos = _endpos__2_inlined1_ in + let _v = + let cty_modes = + let _2 = _2_inlined1 in + let _1 = +# 4487 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 66020 "src/ocaml/preprocess/parser_raw.ml" + in + +# 4492 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 66025 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_cty_modes_ = _endpos__2_inlined1_ in + let _endpos = _endpos_cty_modes_ in + let _symbolstartpos = _startpos_pat_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2867 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, modes = cty_modes in + mkpat_with_modes ~loc:_sloc ~pat ~cty:(Some cty) ~modes + ) +# 66038 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + 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_inlined2; + MenhirLib.EngineTypes.startp = _startpos__2_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__2_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 = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + 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 = pat; + MenhirLib.EngineTypes.startp = _startpos_pat_; + MenhirLib.EngineTypes.endp = _endpos_pat_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _2_inlined2 : (Parsetree.modes) = Obj.magic _2_inlined2 in + let _3 : (Parsetree.core_type) = Obj.magic _3 in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let xs : ((string Location.loc * Parsetree.jkind_annotation 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 + let _startpos = _startpos_pat_ in + let _endpos = _endpos__2_inlined2_ in + let _v = + let cty_modes = + let _2 = _2_inlined2 in + let _1 = + let _1 = + let _1 = + let _1 = + let _1 = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 66108 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1410 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 66113 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4454 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 66119 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4458 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 66125 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4462 "src/ocaml/preprocess/parser_raw.mly" + ( let bound_vars, inner_type = _1 in + mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) +# 66136 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4484 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 66142 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4488 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 66148 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4492 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 66154 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_cty_modes_ = _endpos__2_inlined2_ in + let _endpos = _endpos_cty_modes_ in + let _symbolstartpos = _startpos_pat_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2867 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, modes = cty_modes in + mkpat_with_modes ~loc:_sloc ~pat ~cty:(Some cty) ~modes + ) +# 66167 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + 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 = modes; + MenhirLib.EngineTypes.startp = _startpos_modes_; + MenhirLib.EngineTypes.endp = _endpos_modes_; + MenhirLib.EngineTypes.next = { + MenhirLib.EngineTypes.state = _menhir_s; + MenhirLib.EngineTypes.semv = pat; + MenhirLib.EngineTypes.startp = _startpos_pat_; + MenhirLib.EngineTypes.endp = _endpos_pat_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + } = _menhir_stack in + let modes : (Parsetree.modes) = Obj.magic modes in + let pat : (Parsetree.pattern) = Obj.magic pat in + let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in + let _startpos = _startpos_pat_ in + let _endpos = _endpos_modes_ in + let _v = + let _endpos = _endpos_modes_ in + let _symbolstartpos = _startpos_pat_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2872 "src/ocaml/preprocess/parser_raw.mly" + ( + mkpat_with_modes ~loc:_sloc ~pat ~cty:None ~modes + ) +# 66206 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.pattern)) + 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_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + 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 = pat; + MenhirLib.EngineTypes.startp = _startpos_pat_; + MenhirLib.EngineTypes.endp = _endpos_pat_; + MenhirLib.EngineTypes.next = _menhir_stack; + }; + }; + }; + }; + } = _menhir_stack in + let _3 : (Parsetree.core_type) = Obj.magic _3 in + let _2_inlined1 : unit = Obj.magic _2_inlined1 in + let xs : ((string Location.loc * Parsetree.jkind_annotation 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 + let _startpos = _startpos_pat_ in + let _endpos = _endpos__3_ in + let _v = + let cty = + let _1 = + let _1 = + let _1 = + let _1 = + let xs = +# 264 "" + ( List.rev xs ) +# 66266 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1410 "src/ocaml/preprocess/parser_raw.mly" + ( xs ) +# 66271 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4454 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 66277 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4458 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 66283 "src/ocaml/preprocess/parser_raw.ml" + + in + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + +# 4462 "src/ocaml/preprocess/parser_raw.mly" + ( let bound_vars, inner_type = _1 in + mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) +# 66294 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4479 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 66300 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos_cty_ = _endpos__3_ in + let _endpos = _endpos_cty_ in + let _symbolstartpos = _startpos_pat_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 2876 "src/ocaml/preprocess/parser_raw.mly" + ( + mkpat_with_modes ~loc:_sloc ~pat ~cty:(Some cty) ~modes:[] + ) +# 66312 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -64522,9 +66332,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.payload) = -# 5435 "src/ocaml/preprocess/parser_raw.mly" +# 5434 "src/ocaml/preprocess/parser_raw.mly" ( PStr _1 ) -# 64528 "src/ocaml/preprocess/parser_raw.ml" +# 66338 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64554,9 +66364,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 5436 "src/ocaml/preprocess/parser_raw.mly" +# 5435 "src/ocaml/preprocess/parser_raw.mly" ( PSig _2 ) -# 64560 "src/ocaml/preprocess/parser_raw.ml" +# 66370 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64586,9 +66396,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 5437 "src/ocaml/preprocess/parser_raw.mly" +# 5436 "src/ocaml/preprocess/parser_raw.mly" ( PTyp _2 ) -# 64592 "src/ocaml/preprocess/parser_raw.ml" +# 66402 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64618,9 +66428,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.payload) = -# 5438 "src/ocaml/preprocess/parser_raw.mly" +# 5437 "src/ocaml/preprocess/parser_raw.mly" ( PPat (_2, None) ) -# 64624 "src/ocaml/preprocess/parser_raw.ml" +# 66434 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64664,9 +66474,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.payload) = -# 5439 "src/ocaml/preprocess/parser_raw.mly" +# 5438 "src/ocaml/preprocess/parser_raw.mly" ( PPat (_2, Some _4) ) -# 64670 "src/ocaml/preprocess/parser_raw.ml" +# 66480 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64689,9 +66499,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.core_type) = -# 4488 "src/ocaml/preprocess/parser_raw.mly" +# 4468 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64695 "src/ocaml/preprocess/parser_raw.ml" +# 66505 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -64731,38 +66541,45 @@ module Tables = struct let _1 = let _1 = let _1 = - let xs = + let _1 = + let xs = # 264 "" ( List.rev xs ) -# 64738 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 66549 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 64743 "src/ocaml/preprocess/parser_raw.ml" +# 66554 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4454 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 66560 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 64749 "src/ocaml/preprocess/parser_raw.ml" +# 4458 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 66566 "src/ocaml/preprocess/parser_raw.ml" in + let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4484 "src/ocaml/preprocess/parser_raw.mly" - ( (_1, _3) ) -# 64755 "src/ocaml/preprocess/parser_raw.ml" +# 4462 "src/ocaml/preprocess/parser_raw.mly" + ( let bound_vars, inner_type = _1 in + mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) +# 66577 "src/ocaml/preprocess/parser_raw.ml" in - let (_endpos__1_, _startpos__1_) = (_endpos__3_, _startpos_xs_) in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in ( -# 4490 "src/ocaml/preprocess/parser_raw.mly" - ( let bound_vars, inner_type = _1 in - mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) -# 64766 "src/ocaml/preprocess/parser_raw.ml" +# 4470 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 66583 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -64787,14 +66604,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 4520 "src/ocaml/preprocess/parser_raw.mly" +# 4532 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64793 "src/ocaml/preprocess/parser_raw.ml" +# 66610 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4488 "src/ocaml/preprocess/parser_raw.mly" +# 4468 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 64798 "src/ocaml/preprocess/parser_raw.ml" +# 66615 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -64833,45 +66650,52 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = - let _3 = -# 4520 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 64840 "src/ocaml/preprocess/parser_raw.ml" - in let _1 = + let _3 = +# 4532 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 66658 "src/ocaml/preprocess/parser_raw.ml" + in let _1 = - let xs = + let _1 = + let xs = # 264 "" ( List.rev xs ) -# 64847 "src/ocaml/preprocess/parser_raw.ml" - in - -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 66665 "src/ocaml/preprocess/parser_raw.ml" + in + +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 64852 "src/ocaml/preprocess/parser_raw.ml" +# 66670 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 4454 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 66676 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" - ( _1 ) -# 64858 "src/ocaml/preprocess/parser_raw.ml" +# 4458 "src/ocaml/preprocess/parser_raw.mly" + ( (_1, _3) ) +# 66682 "src/ocaml/preprocess/parser_raw.ml" in + let _startpos__1_ = _startpos_xs_ in + let _endpos = _endpos__1_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in -# 4484 "src/ocaml/preprocess/parser_raw.mly" - ( (_1, _3) ) -# 64864 "src/ocaml/preprocess/parser_raw.ml" +# 4462 "src/ocaml/preprocess/parser_raw.mly" + ( let bound_vars, inner_type = _1 in + mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) +# 66693 "src/ocaml/preprocess/parser_raw.ml" in - let _startpos__1_ = _startpos_xs_ in - let _endpos = _endpos__1_ in - let _symbolstartpos = _startpos__1_ in - let _sloc = (_symbolstartpos, _endpos) in ( -# 4490 "src/ocaml/preprocess/parser_raw.mly" - ( let bound_vars, inner_type = _1 in - mktyp ~loc:_sloc (Ptyp_poly (bound_vars, inner_type)) ) -# 64875 "src/ocaml/preprocess/parser_raw.ml" +# 4470 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 66699 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -64920,9 +66744,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5396 "src/ocaml/preprocess/parser_raw.mly" +# 5395 "src/ocaml/preprocess/parser_raw.mly" ( mk_attr ~loc:(make_loc _sloc) _2 _3 ) -# 64926 "src/ocaml/preprocess/parser_raw.ml" +# 66750 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.attribute)) in { @@ -65012,9 +66836,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65018 "src/ocaml/preprocess/parser_raw.ml" +# 66842 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -65024,30 +66848,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 65030 "src/ocaml/preprocess/parser_raw.ml" +# 66854 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65038 "src/ocaml/preprocess/parser_raw.ml" +# 66862 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4012 "src/ocaml/preprocess/parser_raw.mly" +# 3986 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Val.mk id ty ~prim ~attrs ~modalities ~loc ~docs, ext ) -# 65051 "src/ocaml/preprocess/parser_raw.ml" +# 66875 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.value_description * string Location.loc option)) in { @@ -65065,14 +66889,14 @@ module Tables = struct let _endpos = _startpos in let _v = let _1 = -# 5251 "src/ocaml/preprocess/parser_raw.mly" +# 5250 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 65071 "src/ocaml/preprocess/parser_raw.ml" +# 66895 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5248 "src/ocaml/preprocess/parser_raw.mly" +# 5247 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65076 "src/ocaml/preprocess/parser_raw.ml" +# 66900 "src/ocaml/preprocess/parser_raw.ml" : (Asttypes.private_flag)) in { @@ -65097,14 +66921,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 5252 "src/ocaml/preprocess/parser_raw.mly" +# 5251 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 65103 "src/ocaml/preprocess/parser_raw.ml" +# 66927 "src/ocaml/preprocess/parser_raw.ml" in ( -# 5248 "src/ocaml/preprocess/parser_raw.mly" +# 5247 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65108 "src/ocaml/preprocess/parser_raw.ml" +# 66932 "src/ocaml/preprocess/parser_raw.ml" : (Asttypes.private_flag)) in { @@ -65121,9 +66945,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5286 "src/ocaml/preprocess/parser_raw.mly" +# 5285 "src/ocaml/preprocess/parser_raw.mly" ( Public, Concrete ) -# 65127 "src/ocaml/preprocess/parser_raw.ml" +# 66951 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65146,9 +66970,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5287 "src/ocaml/preprocess/parser_raw.mly" +# 5286 "src/ocaml/preprocess/parser_raw.mly" ( Private, Concrete ) -# 65152 "src/ocaml/preprocess/parser_raw.ml" +# 66976 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65171,9 +66995,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5288 "src/ocaml/preprocess/parser_raw.mly" +# 5287 "src/ocaml/preprocess/parser_raw.mly" ( Public, Virtual ) -# 65177 "src/ocaml/preprocess/parser_raw.ml" +# 67001 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65203,9 +67027,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5289 "src/ocaml/preprocess/parser_raw.mly" +# 5288 "src/ocaml/preprocess/parser_raw.mly" ( Private, Virtual ) -# 65209 "src/ocaml/preprocess/parser_raw.ml" +# 67033 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65235,9 +67059,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag * Asttypes.virtual_flag) = -# 5290 "src/ocaml/preprocess/parser_raw.mly" +# 5289 "src/ocaml/preprocess/parser_raw.mly" ( Private, Virtual ) -# 65241 "src/ocaml/preprocess/parser_raw.ml" +# 67065 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65253,9 +67077,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.rec_flag) = -# 5229 "src/ocaml/preprocess/parser_raw.mly" +# 5228 "src/ocaml/preprocess/parser_raw.mly" ( Nonrecursive ) -# 65259 "src/ocaml/preprocess/parser_raw.ml" +# 67083 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65278,9 +67102,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.rec_flag) = -# 5230 "src/ocaml/preprocess/parser_raw.mly" +# 5229 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 65284 "src/ocaml/preprocess/parser_raw.ml" +# 67108 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65306,12 +67130,12 @@ module Tables = struct let eo = # 123 "" ( None ) -# 65310 "src/ocaml/preprocess/parser_raw.ml" +# 67134 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3634 "src/ocaml/preprocess/parser_raw.mly" +# 3615 "src/ocaml/preprocess/parser_raw.mly" ( eo, fields ) -# 65315 "src/ocaml/preprocess/parser_raw.ml" +# 67139 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression option * (Longident.t Location.loc * Parsetree.expression) list)) in @@ -65354,18 +67178,18 @@ module Tables = struct let x = # 196 "" ( x ) -# 65358 "src/ocaml/preprocess/parser_raw.ml" +# 67182 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 65363 "src/ocaml/preprocess/parser_raw.ml" +# 67187 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3634 "src/ocaml/preprocess/parser_raw.mly" +# 3615 "src/ocaml/preprocess/parser_raw.mly" ( eo, fields ) -# 65369 "src/ocaml/preprocess/parser_raw.ml" +# 67193 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression option * (Longident.t Location.loc * Parsetree.expression) list)) in @@ -65404,9 +67228,9 @@ module Tables = struct let _startpos = _startpos_jkind1_ in let _endpos = _endpos_jkind2_ in let _v : (Parsetree.jkind_annotation list) = -# 4180 "src/ocaml/preprocess/parser_raw.mly" +# 4154 "src/ocaml/preprocess/parser_raw.mly" ( [jkind2; jkind1] ) -# 65410 "src/ocaml/preprocess/parser_raw.ml" +# 67234 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65443,9 +67267,9 @@ module Tables = struct let _startpos = _startpos_jkinds_ in let _endpos = _endpos_jkind_ in let _v : (Parsetree.jkind_annotation list) = -# 4184 "src/ocaml/preprocess/parser_raw.mly" +# 4158 "src/ocaml/preprocess/parser_raw.mly" ( jkind :: jkinds ) -# 65449 "src/ocaml/preprocess/parser_raw.ml" +# 67273 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -65472,17 +67296,17 @@ module Tables = struct let _endpos = _endpos_d_ in let _v = let x = -# 4286 "src/ocaml/preprocess/parser_raw.mly" +# 4260 "src/ocaml/preprocess/parser_raw.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 65481 "src/ocaml/preprocess/parser_raw.ml" +# 67305 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1528 "src/ocaml/preprocess/parser_raw.mly" +# 1540 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 65486 "src/ocaml/preprocess/parser_raw.ml" +# 67310 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constructor_declaration list)) in { @@ -65510,17 +67334,17 @@ module Tables = struct let _endpos = _endpos_d_ in let _v = let x = -# 4286 "src/ocaml/preprocess/parser_raw.mly" +# 4260 "src/ocaml/preprocess/parser_raw.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 65519 "src/ocaml/preprocess/parser_raw.ml" +# 67343 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1531 "src/ocaml/preprocess/parser_raw.mly" +# 1543 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 65524 "src/ocaml/preprocess/parser_raw.ml" +# 67348 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constructor_declaration list)) in { @@ -65555,17 +67379,17 @@ module Tables = struct let _endpos = _endpos_d_ in let _v = let x = -# 4286 "src/ocaml/preprocess/parser_raw.mly" +# 4260 "src/ocaml/preprocess/parser_raw.mly" ( let cid, vars, args, res, attrs, loc, info = d in Type.constructor cid ~vars ~args ?res ~attrs ~loc ~info ) -# 65564 "src/ocaml/preprocess/parser_raw.ml" +# 67388 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1535 "src/ocaml/preprocess/parser_raw.mly" +# 1547 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 65569 "src/ocaml/preprocess/parser_raw.ml" +# 67393 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constructor_declaration list)) in { @@ -65594,23 +67418,23 @@ module Tables = struct let _v = let x = let _1 = -# 4415 "src/ocaml/preprocess/parser_raw.mly" +# 4389 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 65603 "src/ocaml/preprocess/parser_raw.ml" +# 67427 "src/ocaml/preprocess/parser_raw.ml" in -# 4409 "src/ocaml/preprocess/parser_raw.mly" +# 4383 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65608 "src/ocaml/preprocess/parser_raw.ml" +# 67432 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1528 "src/ocaml/preprocess/parser_raw.mly" +# 1540 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 65614 "src/ocaml/preprocess/parser_raw.ml" +# 67438 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.extension_constructor list)) in { @@ -65635,14 +67459,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let x = -# 4411 "src/ocaml/preprocess/parser_raw.mly" +# 4385 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65641 "src/ocaml/preprocess/parser_raw.ml" +# 67465 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1528 "src/ocaml/preprocess/parser_raw.mly" +# 1540 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 65646 "src/ocaml/preprocess/parser_raw.ml" +# 67470 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.extension_constructor list)) in { @@ -65671,23 +67495,23 @@ module Tables = struct let _v = let x = let _1 = -# 4415 "src/ocaml/preprocess/parser_raw.mly" +# 4389 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 65680 "src/ocaml/preprocess/parser_raw.ml" +# 67504 "src/ocaml/preprocess/parser_raw.ml" in -# 4409 "src/ocaml/preprocess/parser_raw.mly" +# 4383 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65685 "src/ocaml/preprocess/parser_raw.ml" +# 67509 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1531 "src/ocaml/preprocess/parser_raw.mly" +# 1543 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 65691 "src/ocaml/preprocess/parser_raw.ml" +# 67515 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.extension_constructor list)) in { @@ -65712,14 +67536,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let x = -# 4411 "src/ocaml/preprocess/parser_raw.mly" +# 4385 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65718 "src/ocaml/preprocess/parser_raw.ml" +# 67542 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1531 "src/ocaml/preprocess/parser_raw.mly" +# 1543 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 65723 "src/ocaml/preprocess/parser_raw.ml" +# 67547 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.extension_constructor list)) in { @@ -65755,23 +67579,23 @@ module Tables = struct let _v = let x = let _1 = -# 4415 "src/ocaml/preprocess/parser_raw.mly" +# 4389 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 65764 "src/ocaml/preprocess/parser_raw.ml" +# 67588 "src/ocaml/preprocess/parser_raw.ml" in -# 4409 "src/ocaml/preprocess/parser_raw.mly" +# 4383 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65769 "src/ocaml/preprocess/parser_raw.ml" +# 67593 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1535 "src/ocaml/preprocess/parser_raw.mly" +# 1547 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 65775 "src/ocaml/preprocess/parser_raw.ml" +# 67599 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.extension_constructor list)) in { @@ -65803,14 +67627,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let x = -# 4411 "src/ocaml/preprocess/parser_raw.mly" +# 4385 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65809 "src/ocaml/preprocess/parser_raw.ml" +# 67633 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1535 "src/ocaml/preprocess/parser_raw.mly" +# 1547 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 65814 "src/ocaml/preprocess/parser_raw.ml" +# 67638 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.extension_constructor list)) in { @@ -65838,17 +67662,17 @@ module Tables = struct let _endpos = _endpos_d_ in let _v = let x = -# 4415 "src/ocaml/preprocess/parser_raw.mly" +# 4389 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 65847 "src/ocaml/preprocess/parser_raw.ml" +# 67671 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1528 "src/ocaml/preprocess/parser_raw.mly" +# 1540 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 65852 "src/ocaml/preprocess/parser_raw.ml" +# 67676 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.extension_constructor list)) in { @@ -65876,17 +67700,17 @@ module Tables = struct let _endpos = _endpos_d_ in let _v = let x = -# 4415 "src/ocaml/preprocess/parser_raw.mly" +# 4389 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 65885 "src/ocaml/preprocess/parser_raw.ml" +# 67709 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1531 "src/ocaml/preprocess/parser_raw.mly" +# 1543 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 65890 "src/ocaml/preprocess/parser_raw.ml" +# 67714 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.extension_constructor list)) in { @@ -65921,17 +67745,17 @@ module Tables = struct let _endpos = _endpos_d_ in let _v = let x = -# 4415 "src/ocaml/preprocess/parser_raw.mly" +# 4389 "src/ocaml/preprocess/parser_raw.mly" ( let name, vars, args, res, attrs, loc, info = d in Te.decl name ~vars ~args ?res ~attrs ~loc ~info ) -# 65930 "src/ocaml/preprocess/parser_raw.ml" +# 67754 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1535 "src/ocaml/preprocess/parser_raw.mly" +# 1547 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 65935 "src/ocaml/preprocess/parser_raw.ml" +# 67759 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.extension_constructor list)) in { @@ -65972,26 +67796,26 @@ module Tables = struct let x = let _1 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65978 "src/ocaml/preprocess/parser_raw.ml" +# 67802 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 65983 "src/ocaml/preprocess/parser_raw.ml" +# 67807 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 65989 "src/ocaml/preprocess/parser_raw.ml" +# 67813 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3602 "src/ocaml/preprocess/parser_raw.mly" +# 3583 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 65995 "src/ocaml/preprocess/parser_raw.ml" +# 67819 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -66061,18 +67885,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 66065 "src/ocaml/preprocess/parser_raw.ml" +# 67889 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66070 "src/ocaml/preprocess/parser_raw.ml" +# 67894 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66076 "src/ocaml/preprocess/parser_raw.ml" +# 67900 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -66081,22 +67905,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66087 "src/ocaml/preprocess/parser_raw.ml" +# 67911 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 66093 "src/ocaml/preprocess/parser_raw.ml" +# 67917 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -66109,37 +67933,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 66113 "src/ocaml/preprocess/parser_raw.ml" +# 67937 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66119 "src/ocaml/preprocess/parser_raw.ml" +# 67943 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66125 "src/ocaml/preprocess/parser_raw.ml" +# 67949 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66131 "src/ocaml/preprocess/parser_raw.ml" +# 67955 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 66137 "src/ocaml/preprocess/parser_raw.ml" +# 67961 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3602 "src/ocaml/preprocess/parser_raw.mly" +# 3583 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 66143 "src/ocaml/preprocess/parser_raw.ml" +# 67967 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -66218,18 +68042,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 66222 "src/ocaml/preprocess/parser_raw.ml" +# 68046 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66227 "src/ocaml/preprocess/parser_raw.ml" +# 68051 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66233 "src/ocaml/preprocess/parser_raw.ml" +# 68057 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -66238,22 +68062,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66244 "src/ocaml/preprocess/parser_raw.ml" +# 68068 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 66250 "src/ocaml/preprocess/parser_raw.ml" +# 68074 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -66266,7 +68090,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 66270 "src/ocaml/preprocess/parser_raw.ml" +# 68094 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -66274,39 +68098,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 66280 "src/ocaml/preprocess/parser_raw.ml" +# 68104 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66286 "src/ocaml/preprocess/parser_raw.ml" +# 68110 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66292 "src/ocaml/preprocess/parser_raw.ml" +# 68116 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66298 "src/ocaml/preprocess/parser_raw.ml" +# 68122 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 66304 "src/ocaml/preprocess/parser_raw.ml" +# 68128 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3602 "src/ocaml/preprocess/parser_raw.mly" +# 3583 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 66310 "src/ocaml/preprocess/parser_raw.ml" +# 68134 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -66345,9 +68169,9 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.expression) = Obj.magic _2_inlined1 in let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 66351 "src/ocaml/preprocess/parser_raw.ml" +# 68175 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let xs : ((string option * Parsetree.expression) list) = Obj.magic xs in @@ -66358,15 +68182,15 @@ module Tables = struct let x = let _2 = _2_inlined1 in -# 3588 "src/ocaml/preprocess/parser_raw.mly" +# 3569 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 66364 "src/ocaml/preprocess/parser_raw.ml" +# 68188 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3602 "src/ocaml/preprocess/parser_raw.mly" +# 3583 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 66370 "src/ocaml/preprocess/parser_raw.ml" +# 68194 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -66404,9 +68228,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 66410 "src/ocaml/preprocess/parser_raw.ml" +# 68234 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in @@ -66418,16 +68242,16 @@ module Tables = struct let x = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3590 "src/ocaml/preprocess/parser_raw.mly" +# 3571 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 66425 "src/ocaml/preprocess/parser_raw.ml" +# 68249 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3602 "src/ocaml/preprocess/parser_raw.mly" +# 3583 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 66431 "src/ocaml/preprocess/parser_raw.ml" +# 68255 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -66485,9 +68309,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 66491 "src/ocaml/preprocess/parser_raw.ml" +# 68315 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -66502,17 +68326,17 @@ module Tables = struct let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3593 "src/ocaml/preprocess/parser_raw.mly" +# 3574 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 66510 "src/ocaml/preprocess/parser_raw.ml" +# 68334 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3602 "src/ocaml/preprocess/parser_raw.mly" +# 3583 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 66516 "src/ocaml/preprocess/parser_raw.ml" +# 68340 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -66554,38 +68378,38 @@ module Tables = struct let _1 = _1_inlined1 in let _1 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66560 "src/ocaml/preprocess/parser_raw.ml" +# 68384 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66565 "src/ocaml/preprocess/parser_raw.ml" +# 68389 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 66571 "src/ocaml/preprocess/parser_raw.ml" +# 68395 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66578 "src/ocaml/preprocess/parser_raw.ml" +# 68402 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66583 "src/ocaml/preprocess/parser_raw.ml" +# 68407 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 66589 "src/ocaml/preprocess/parser_raw.ml" +# 68413 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -66655,18 +68479,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 66659 "src/ocaml/preprocess/parser_raw.ml" +# 68483 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66664 "src/ocaml/preprocess/parser_raw.ml" +# 68488 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66670 "src/ocaml/preprocess/parser_raw.ml" +# 68494 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -66675,22 +68499,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66681 "src/ocaml/preprocess/parser_raw.ml" +# 68505 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 66687 "src/ocaml/preprocess/parser_raw.ml" +# 68511 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -66703,49 +68527,49 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 66707 "src/ocaml/preprocess/parser_raw.ml" +# 68531 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66713 "src/ocaml/preprocess/parser_raw.ml" +# 68537 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66719 "src/ocaml/preprocess/parser_raw.ml" +# 68543 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66725 "src/ocaml/preprocess/parser_raw.ml" +# 68549 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 66731 "src/ocaml/preprocess/parser_raw.ml" +# 68555 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66738 "src/ocaml/preprocess/parser_raw.ml" +# 68562 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66743 "src/ocaml/preprocess/parser_raw.ml" +# 68567 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 66749 "src/ocaml/preprocess/parser_raw.ml" +# 68573 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -66824,18 +68648,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 66828 "src/ocaml/preprocess/parser_raw.ml" +# 68652 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66833 "src/ocaml/preprocess/parser_raw.ml" +# 68657 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 66839 "src/ocaml/preprocess/parser_raw.ml" +# 68663 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -66844,22 +68668,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66850 "src/ocaml/preprocess/parser_raw.ml" +# 68674 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 66856 "src/ocaml/preprocess/parser_raw.ml" +# 68680 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -66872,7 +68696,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 66876 "src/ocaml/preprocess/parser_raw.ml" +# 68700 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -66880,51 +68704,51 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 66886 "src/ocaml/preprocess/parser_raw.ml" +# 68710 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66892 "src/ocaml/preprocess/parser_raw.ml" +# 68716 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66898 "src/ocaml/preprocess/parser_raw.ml" +# 68722 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66904 "src/ocaml/preprocess/parser_raw.ml" +# 68728 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 66910 "src/ocaml/preprocess/parser_raw.ml" +# 68734 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66917 "src/ocaml/preprocess/parser_raw.ml" +# 68741 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66922 "src/ocaml/preprocess/parser_raw.ml" +# 68746 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 66928 "src/ocaml/preprocess/parser_raw.ml" +# 68752 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -66963,9 +68787,9 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.expression) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 66969 "src/ocaml/preprocess/parser_raw.ml" +# 68793 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -66976,27 +68800,27 @@ module Tables = struct let x2 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3588 "src/ocaml/preprocess/parser_raw.mly" +# 3569 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 66982 "src/ocaml/preprocess/parser_raw.ml" +# 68806 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66989 "src/ocaml/preprocess/parser_raw.ml" +# 68813 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 66994 "src/ocaml/preprocess/parser_raw.ml" +# 68818 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 67000 "src/ocaml/preprocess/parser_raw.ml" +# 68824 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -67034,9 +68858,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 67040 "src/ocaml/preprocess/parser_raw.ml" +# 68864 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : unit = Obj.magic _2 in @@ -67048,28 +68872,28 @@ module Tables = struct let x2 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3590 "src/ocaml/preprocess/parser_raw.mly" +# 3571 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 67055 "src/ocaml/preprocess/parser_raw.ml" +# 68879 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67062 "src/ocaml/preprocess/parser_raw.ml" +# 68886 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67067 "src/ocaml/preprocess/parser_raw.ml" +# 68891 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 67073 "src/ocaml/preprocess/parser_raw.ml" +# 68897 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -67127,9 +68951,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 67133 "src/ocaml/preprocess/parser_raw.ml" +# 68957 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -67144,29 +68968,29 @@ module Tables = struct let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3593 "src/ocaml/preprocess/parser_raw.mly" +# 3574 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 67152 "src/ocaml/preprocess/parser_raw.ml" +# 68976 "src/ocaml/preprocess/parser_raw.ml" in let x1 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67159 "src/ocaml/preprocess/parser_raw.ml" +# 68983 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67164 "src/ocaml/preprocess/parser_raw.ml" +# 68988 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 67170 "src/ocaml/preprocess/parser_raw.ml" +# 68994 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -67229,20 +69053,20 @@ module Tables = struct let _1 = _1_inlined3 in let _1 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67235 "src/ocaml/preprocess/parser_raw.ml" +# 69059 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67240 "src/ocaml/preprocess/parser_raw.ml" +# 69064 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 67246 "src/ocaml/preprocess/parser_raw.ml" +# 69070 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -67254,18 +69078,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 67258 "src/ocaml/preprocess/parser_raw.ml" +# 69082 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67263 "src/ocaml/preprocess/parser_raw.ml" +# 69087 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67269 "src/ocaml/preprocess/parser_raw.ml" +# 69093 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -67274,22 +69098,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67280 "src/ocaml/preprocess/parser_raw.ml" +# 69104 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 67286 "src/ocaml/preprocess/parser_raw.ml" +# 69110 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -67302,31 +69126,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 67306 "src/ocaml/preprocess/parser_raw.ml" +# 69130 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67312 "src/ocaml/preprocess/parser_raw.ml" +# 69136 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67318 "src/ocaml/preprocess/parser_raw.ml" +# 69142 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67324 "src/ocaml/preprocess/parser_raw.ml" +# 69148 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 67330 "src/ocaml/preprocess/parser_raw.ml" +# 69154 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -67417,18 +69241,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 67421 "src/ocaml/preprocess/parser_raw.ml" +# 69245 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67426 "src/ocaml/preprocess/parser_raw.ml" +# 69250 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67432 "src/ocaml/preprocess/parser_raw.ml" +# 69256 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -67437,22 +69261,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67443 "src/ocaml/preprocess/parser_raw.ml" +# 69267 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 67449 "src/ocaml/preprocess/parser_raw.ml" +# 69273 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -67465,31 +69289,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 67469 "src/ocaml/preprocess/parser_raw.ml" +# 69293 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67475 "src/ocaml/preprocess/parser_raw.ml" +# 69299 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67481 "src/ocaml/preprocess/parser_raw.ml" +# 69305 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67487 "src/ocaml/preprocess/parser_raw.ml" +# 69311 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 67493 "src/ocaml/preprocess/parser_raw.ml" +# 69317 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -67501,18 +69325,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 67505 "src/ocaml/preprocess/parser_raw.ml" +# 69329 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67510 "src/ocaml/preprocess/parser_raw.ml" +# 69334 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67516 "src/ocaml/preprocess/parser_raw.ml" +# 69340 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -67521,22 +69345,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67527 "src/ocaml/preprocess/parser_raw.ml" +# 69351 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 67533 "src/ocaml/preprocess/parser_raw.ml" +# 69357 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -67549,31 +69373,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 67553 "src/ocaml/preprocess/parser_raw.ml" +# 69377 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67559 "src/ocaml/preprocess/parser_raw.ml" +# 69383 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67565 "src/ocaml/preprocess/parser_raw.ml" +# 69389 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67571 "src/ocaml/preprocess/parser_raw.ml" +# 69395 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 67577 "src/ocaml/preprocess/parser_raw.ml" +# 69401 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -67673,18 +69497,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 67677 "src/ocaml/preprocess/parser_raw.ml" +# 69501 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67682 "src/ocaml/preprocess/parser_raw.ml" +# 69506 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67688 "src/ocaml/preprocess/parser_raw.ml" +# 69512 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -67693,22 +69517,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67699 "src/ocaml/preprocess/parser_raw.ml" +# 69523 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 67705 "src/ocaml/preprocess/parser_raw.ml" +# 69529 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -67721,7 +69545,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 67725 "src/ocaml/preprocess/parser_raw.ml" +# 69549 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -67729,33 +69553,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 67735 "src/ocaml/preprocess/parser_raw.ml" +# 69559 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67741 "src/ocaml/preprocess/parser_raw.ml" +# 69565 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67747 "src/ocaml/preprocess/parser_raw.ml" +# 69571 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67753 "src/ocaml/preprocess/parser_raw.ml" +# 69577 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 67759 "src/ocaml/preprocess/parser_raw.ml" +# 69583 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -67767,18 +69591,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 67771 "src/ocaml/preprocess/parser_raw.ml" +# 69595 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67776 "src/ocaml/preprocess/parser_raw.ml" +# 69600 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67782 "src/ocaml/preprocess/parser_raw.ml" +# 69606 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -67787,22 +69611,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67793 "src/ocaml/preprocess/parser_raw.ml" +# 69617 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 67799 "src/ocaml/preprocess/parser_raw.ml" +# 69623 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -67815,31 +69639,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 67819 "src/ocaml/preprocess/parser_raw.ml" +# 69643 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67825 "src/ocaml/preprocess/parser_raw.ml" +# 69649 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67831 "src/ocaml/preprocess/parser_raw.ml" +# 69655 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67837 "src/ocaml/preprocess/parser_raw.ml" +# 69661 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 67843 "src/ocaml/preprocess/parser_raw.ml" +# 69667 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -67896,9 +69720,9 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.expression) = Obj.magic _2_inlined1 in let _1_inlined3 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 67902 "src/ocaml/preprocess/parser_raw.ml" +# 69726 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined3 in let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in @@ -67912,9 +69736,9 @@ module Tables = struct let x2 = let (_2, _1) = (_2_inlined1, _1_inlined3) in -# 3588 "src/ocaml/preprocess/parser_raw.mly" +# 3569 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 67918 "src/ocaml/preprocess/parser_raw.ml" +# 69742 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -67926,18 +69750,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 67930 "src/ocaml/preprocess/parser_raw.ml" +# 69754 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67935 "src/ocaml/preprocess/parser_raw.ml" +# 69759 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 67941 "src/ocaml/preprocess/parser_raw.ml" +# 69765 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -67946,22 +69770,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67952 "src/ocaml/preprocess/parser_raw.ml" +# 69776 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 67958 "src/ocaml/preprocess/parser_raw.ml" +# 69782 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -67974,31 +69798,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 67978 "src/ocaml/preprocess/parser_raw.ml" +# 69802 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67984 "src/ocaml/preprocess/parser_raw.ml" +# 69808 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67990 "src/ocaml/preprocess/parser_raw.ml" +# 69814 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 67996 "src/ocaml/preprocess/parser_raw.ml" +# 69820 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 68002 "src/ocaml/preprocess/parser_raw.ml" +# 69826 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -68054,9 +69878,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 68060 "src/ocaml/preprocess/parser_raw.ml" +# 69884 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined3 : unit = Obj.magic _1_inlined3 in let _2 : unit = Obj.magic _2 in @@ -68071,10 +69895,10 @@ module Tables = struct let x2 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3590 "src/ocaml/preprocess/parser_raw.mly" +# 3571 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 68078 "src/ocaml/preprocess/parser_raw.ml" +# 69902 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -68086,18 +69910,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 68090 "src/ocaml/preprocess/parser_raw.ml" +# 69914 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68095 "src/ocaml/preprocess/parser_raw.ml" +# 69919 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68101 "src/ocaml/preprocess/parser_raw.ml" +# 69925 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -68106,22 +69930,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68112 "src/ocaml/preprocess/parser_raw.ml" +# 69936 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 68118 "src/ocaml/preprocess/parser_raw.ml" +# 69942 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -68134,31 +69958,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 68138 "src/ocaml/preprocess/parser_raw.ml" +# 69962 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68144 "src/ocaml/preprocess/parser_raw.ml" +# 69968 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68150 "src/ocaml/preprocess/parser_raw.ml" +# 69974 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68156 "src/ocaml/preprocess/parser_raw.ml" +# 69980 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 68162 "src/ocaml/preprocess/parser_raw.ml" +# 69986 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -68234,9 +70058,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 68240 "src/ocaml/preprocess/parser_raw.ml" +# 70064 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined3 : unit = Obj.magic _1_inlined3 in @@ -68254,11 +70078,11 @@ module Tables = struct let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3593 "src/ocaml/preprocess/parser_raw.mly" +# 3574 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 68262 "src/ocaml/preprocess/parser_raw.ml" +# 70086 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -68270,18 +70094,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 68274 "src/ocaml/preprocess/parser_raw.ml" +# 70098 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68279 "src/ocaml/preprocess/parser_raw.ml" +# 70103 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68285 "src/ocaml/preprocess/parser_raw.ml" +# 70109 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -68290,22 +70114,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68296 "src/ocaml/preprocess/parser_raw.ml" +# 70120 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 68302 "src/ocaml/preprocess/parser_raw.ml" +# 70126 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -68318,31 +70142,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 68322 "src/ocaml/preprocess/parser_raw.ml" +# 70146 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68328 "src/ocaml/preprocess/parser_raw.ml" +# 70152 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68334 "src/ocaml/preprocess/parser_raw.ml" +# 70158 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68340 "src/ocaml/preprocess/parser_raw.ml" +# 70164 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 68346 "src/ocaml/preprocess/parser_raw.ml" +# 70170 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -68412,20 +70236,20 @@ module Tables = struct let _1 = _1_inlined4 in let _1 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68418 "src/ocaml/preprocess/parser_raw.ml" +# 70242 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68423 "src/ocaml/preprocess/parser_raw.ml" +# 70247 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 68429 "src/ocaml/preprocess/parser_raw.ml" +# 70253 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -68439,18 +70263,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 68443 "src/ocaml/preprocess/parser_raw.ml" +# 70267 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68448 "src/ocaml/preprocess/parser_raw.ml" +# 70272 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68454 "src/ocaml/preprocess/parser_raw.ml" +# 70278 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -68459,22 +70283,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68465 "src/ocaml/preprocess/parser_raw.ml" +# 70289 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 68471 "src/ocaml/preprocess/parser_raw.ml" +# 70295 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -68487,7 +70311,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 68491 "src/ocaml/preprocess/parser_raw.ml" +# 70315 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -68495,33 +70319,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 68501 "src/ocaml/preprocess/parser_raw.ml" +# 70325 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68507 "src/ocaml/preprocess/parser_raw.ml" +# 70331 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68513 "src/ocaml/preprocess/parser_raw.ml" +# 70337 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68519 "src/ocaml/preprocess/parser_raw.ml" +# 70343 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 68525 "src/ocaml/preprocess/parser_raw.ml" +# 70349 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -68619,18 +70443,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 68623 "src/ocaml/preprocess/parser_raw.ml" +# 70447 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68628 "src/ocaml/preprocess/parser_raw.ml" +# 70452 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68634 "src/ocaml/preprocess/parser_raw.ml" +# 70458 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -68639,22 +70463,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68645 "src/ocaml/preprocess/parser_raw.ml" +# 70469 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 68651 "src/ocaml/preprocess/parser_raw.ml" +# 70475 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -68667,31 +70491,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 68671 "src/ocaml/preprocess/parser_raw.ml" +# 70495 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68677 "src/ocaml/preprocess/parser_raw.ml" +# 70501 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68683 "src/ocaml/preprocess/parser_raw.ml" +# 70507 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68689 "src/ocaml/preprocess/parser_raw.ml" +# 70513 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 68695 "src/ocaml/preprocess/parser_raw.ml" +# 70519 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -68705,18 +70529,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 68709 "src/ocaml/preprocess/parser_raw.ml" +# 70533 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68714 "src/ocaml/preprocess/parser_raw.ml" +# 70538 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68720 "src/ocaml/preprocess/parser_raw.ml" +# 70544 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -68725,22 +70549,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68731 "src/ocaml/preprocess/parser_raw.ml" +# 70555 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 68737 "src/ocaml/preprocess/parser_raw.ml" +# 70561 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -68753,7 +70577,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 68757 "src/ocaml/preprocess/parser_raw.ml" +# 70581 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -68761,33 +70585,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 68767 "src/ocaml/preprocess/parser_raw.ml" +# 70591 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68773 "src/ocaml/preprocess/parser_raw.ml" +# 70597 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68779 "src/ocaml/preprocess/parser_raw.ml" +# 70603 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68785 "src/ocaml/preprocess/parser_raw.ml" +# 70609 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 68791 "src/ocaml/preprocess/parser_raw.ml" +# 70615 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -68894,18 +70718,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 68898 "src/ocaml/preprocess/parser_raw.ml" +# 70722 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68903 "src/ocaml/preprocess/parser_raw.ml" +# 70727 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68909 "src/ocaml/preprocess/parser_raw.ml" +# 70733 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -68914,22 +70738,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68920 "src/ocaml/preprocess/parser_raw.ml" +# 70744 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 68926 "src/ocaml/preprocess/parser_raw.ml" +# 70750 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -68942,7 +70766,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 68946 "src/ocaml/preprocess/parser_raw.ml" +# 70770 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -68950,33 +70774,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 68956 "src/ocaml/preprocess/parser_raw.ml" +# 70780 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68962 "src/ocaml/preprocess/parser_raw.ml" +# 70786 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68968 "src/ocaml/preprocess/parser_raw.ml" +# 70792 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 68974 "src/ocaml/preprocess/parser_raw.ml" +# 70798 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 68980 "src/ocaml/preprocess/parser_raw.ml" +# 70804 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -68990,18 +70814,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 68994 "src/ocaml/preprocess/parser_raw.ml" +# 70818 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 68999 "src/ocaml/preprocess/parser_raw.ml" +# 70823 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69005 "src/ocaml/preprocess/parser_raw.ml" +# 70829 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -69010,22 +70834,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69016 "src/ocaml/preprocess/parser_raw.ml" +# 70840 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 69022 "src/ocaml/preprocess/parser_raw.ml" +# 70846 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -69038,7 +70862,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 69042 "src/ocaml/preprocess/parser_raw.ml" +# 70866 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -69046,33 +70870,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 69052 "src/ocaml/preprocess/parser_raw.ml" +# 70876 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69058 "src/ocaml/preprocess/parser_raw.ml" +# 70882 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69064 "src/ocaml/preprocess/parser_raw.ml" +# 70888 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69070 "src/ocaml/preprocess/parser_raw.ml" +# 70894 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 69076 "src/ocaml/preprocess/parser_raw.ml" +# 70900 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -69135,9 +70959,9 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.expression) = Obj.magic _2_inlined1 in let _1_inlined4 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 69141 "src/ocaml/preprocess/parser_raw.ml" +# 70965 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined4 in let _2 : unit = Obj.magic _2 in let xs : (Parsetree.case list) = Obj.magic xs in @@ -69152,9 +70976,9 @@ module Tables = struct let x2 = let (_2, _1) = (_2_inlined1, _1_inlined4) in -# 3588 "src/ocaml/preprocess/parser_raw.mly" +# 3569 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 69158 "src/ocaml/preprocess/parser_raw.ml" +# 70982 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -69168,18 +70992,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 69172 "src/ocaml/preprocess/parser_raw.ml" +# 70996 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69177 "src/ocaml/preprocess/parser_raw.ml" +# 71001 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69183 "src/ocaml/preprocess/parser_raw.ml" +# 71007 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -69188,22 +71012,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69194 "src/ocaml/preprocess/parser_raw.ml" +# 71018 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 69200 "src/ocaml/preprocess/parser_raw.ml" +# 71024 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -69216,7 +71040,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 69220 "src/ocaml/preprocess/parser_raw.ml" +# 71044 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -69224,33 +71048,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 69230 "src/ocaml/preprocess/parser_raw.ml" +# 71054 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69236 "src/ocaml/preprocess/parser_raw.ml" +# 71060 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69242 "src/ocaml/preprocess/parser_raw.ml" +# 71066 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69248 "src/ocaml/preprocess/parser_raw.ml" +# 71072 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 69254 "src/ocaml/preprocess/parser_raw.ml" +# 71078 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -69312,9 +71136,9 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 69318 "src/ocaml/preprocess/parser_raw.ml" +# 71142 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined4 : unit = Obj.magic _1_inlined4 in let _2 : unit = Obj.magic _2 in @@ -69330,10 +71154,10 @@ module Tables = struct let x2 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3590 "src/ocaml/preprocess/parser_raw.mly" +# 3571 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 69337 "src/ocaml/preprocess/parser_raw.ml" +# 71161 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -69347,18 +71171,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 69351 "src/ocaml/preprocess/parser_raw.ml" +# 71175 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69356 "src/ocaml/preprocess/parser_raw.ml" +# 71180 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69362 "src/ocaml/preprocess/parser_raw.ml" +# 71186 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -69367,22 +71191,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69373 "src/ocaml/preprocess/parser_raw.ml" +# 71197 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 69379 "src/ocaml/preprocess/parser_raw.ml" +# 71203 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -69395,7 +71219,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 69399 "src/ocaml/preprocess/parser_raw.ml" +# 71223 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -69403,33 +71227,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 69409 "src/ocaml/preprocess/parser_raw.ml" +# 71233 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69415 "src/ocaml/preprocess/parser_raw.ml" +# 71239 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69421 "src/ocaml/preprocess/parser_raw.ml" +# 71245 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69427 "src/ocaml/preprocess/parser_raw.ml" +# 71251 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 69433 "src/ocaml/preprocess/parser_raw.ml" +# 71257 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -69511,9 +71335,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 69517 "src/ocaml/preprocess/parser_raw.ml" +# 71341 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined4 : unit = Obj.magic _1_inlined4 in @@ -69532,11 +71356,11 @@ module Tables = struct let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3593 "src/ocaml/preprocess/parser_raw.mly" +# 3574 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 69540 "src/ocaml/preprocess/parser_raw.ml" +# 71364 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -69550,18 +71374,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 69554 "src/ocaml/preprocess/parser_raw.ml" +# 71378 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69559 "src/ocaml/preprocess/parser_raw.ml" +# 71383 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69565 "src/ocaml/preprocess/parser_raw.ml" +# 71389 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -69570,22 +71394,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69576 "src/ocaml/preprocess/parser_raw.ml" +# 71400 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 69582 "src/ocaml/preprocess/parser_raw.ml" +# 71406 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -69598,7 +71422,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 69602 "src/ocaml/preprocess/parser_raw.ml" +# 71426 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -69606,33 +71430,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 69612 "src/ocaml/preprocess/parser_raw.ml" +# 71436 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69618 "src/ocaml/preprocess/parser_raw.ml" +# 71442 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69624 "src/ocaml/preprocess/parser_raw.ml" +# 71448 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69630 "src/ocaml/preprocess/parser_raw.ml" +# 71454 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3607 "src/ocaml/preprocess/parser_raw.mly" +# 3588 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; None, x1 ] ) -# 69636 "src/ocaml/preprocess/parser_raw.ml" +# 71460 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -69673,9 +71497,9 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in let l1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 69679 "src/ocaml/preprocess/parser_raw.ml" +# 71503 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in @@ -69684,26 +71508,26 @@ module Tables = struct let x2 = let _1 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69690 "src/ocaml/preprocess/parser_raw.ml" +# 71514 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69695 "src/ocaml/preprocess/parser_raw.ml" +# 71519 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 69701 "src/ocaml/preprocess/parser_raw.ml" +# 71525 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3611 "src/ocaml/preprocess/parser_raw.mly" +# 3592 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 69707 "src/ocaml/preprocess/parser_raw.ml" +# 71531 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -69765,9 +71589,9 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in let l1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 69771 "src/ocaml/preprocess/parser_raw.ml" +# 71595 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in @@ -69783,18 +71607,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 69787 "src/ocaml/preprocess/parser_raw.ml" +# 71611 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69792 "src/ocaml/preprocess/parser_raw.ml" +# 71616 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69798 "src/ocaml/preprocess/parser_raw.ml" +# 71622 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -69803,22 +71627,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69809 "src/ocaml/preprocess/parser_raw.ml" +# 71633 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 69815 "src/ocaml/preprocess/parser_raw.ml" +# 71639 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -69831,37 +71655,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 69835 "src/ocaml/preprocess/parser_raw.ml" +# 71659 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69841 "src/ocaml/preprocess/parser_raw.ml" +# 71665 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69847 "src/ocaml/preprocess/parser_raw.ml" +# 71671 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69853 "src/ocaml/preprocess/parser_raw.ml" +# 71677 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 69859 "src/ocaml/preprocess/parser_raw.ml" +# 71683 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3611 "src/ocaml/preprocess/parser_raw.mly" +# 3592 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 69865 "src/ocaml/preprocess/parser_raw.ml" +# 71689 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -69930,9 +71754,9 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in let l1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 69936 "src/ocaml/preprocess/parser_raw.ml" +# 71760 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in @@ -69950,18 +71774,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 69954 "src/ocaml/preprocess/parser_raw.ml" +# 71778 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69959 "src/ocaml/preprocess/parser_raw.ml" +# 71783 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 69965 "src/ocaml/preprocess/parser_raw.ml" +# 71789 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -69970,22 +71794,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 69976 "src/ocaml/preprocess/parser_raw.ml" +# 71800 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 69982 "src/ocaml/preprocess/parser_raw.ml" +# 71806 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -69998,7 +71822,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 70002 "src/ocaml/preprocess/parser_raw.ml" +# 71826 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -70006,39 +71830,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 70012 "src/ocaml/preprocess/parser_raw.ml" +# 71836 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70018 "src/ocaml/preprocess/parser_raw.ml" +# 71842 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70024 "src/ocaml/preprocess/parser_raw.ml" +# 71848 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70030 "src/ocaml/preprocess/parser_raw.ml" +# 71854 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 70036 "src/ocaml/preprocess/parser_raw.ml" +# 71860 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3611 "src/ocaml/preprocess/parser_raw.mly" +# 3592 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 70042 "src/ocaml/preprocess/parser_raw.ml" +# 71866 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -70083,30 +71907,30 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70089 "src/ocaml/preprocess/parser_raw.ml" +# 71913 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in let l1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70096 "src/ocaml/preprocess/parser_raw.ml" +# 71920 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in let _endpos = _endpos__2_ in let _v = let x2 = -# 3588 "src/ocaml/preprocess/parser_raw.mly" +# 3569 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 70105 "src/ocaml/preprocess/parser_raw.ml" +# 71929 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3611 "src/ocaml/preprocess/parser_raw.mly" +# 3592 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 70110 "src/ocaml/preprocess/parser_raw.ml" +# 71934 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -70150,17 +71974,17 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70156 "src/ocaml/preprocess/parser_raw.ml" +# 71980 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in let l1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70164 "src/ocaml/preprocess/parser_raw.ml" +# 71988 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in @@ -70169,16 +71993,16 @@ module Tables = struct let x2 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3590 "src/ocaml/preprocess/parser_raw.mly" +# 3571 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 70176 "src/ocaml/preprocess/parser_raw.ml" +# 72000 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3611 "src/ocaml/preprocess/parser_raw.mly" +# 3592 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 70182 "src/ocaml/preprocess/parser_raw.ml" +# 72006 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -70242,18 +72066,18 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70248 "src/ocaml/preprocess/parser_raw.ml" +# 72072 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _3 : unit = Obj.magic _3 in let x1 : (Parsetree.expression) = Obj.magic x1 in let l1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70257 "src/ocaml/preprocess/parser_raw.ml" +# 72081 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_l1_ in @@ -70263,17 +72087,17 @@ module Tables = struct let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3593 "src/ocaml/preprocess/parser_raw.mly" +# 3574 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 70271 "src/ocaml/preprocess/parser_raw.ml" +# 72095 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3611 "src/ocaml/preprocess/parser_raw.mly" +# 3592 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; Some l1, x1 ] ) -# 70277 "src/ocaml/preprocess/parser_raw.ml" +# 72101 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -70313,9 +72137,9 @@ module Tables = struct let _1_inlined1 : (Parsetree.expression) = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70319 "src/ocaml/preprocess/parser_raw.ml" +# 72143 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -70326,28 +72150,28 @@ module Tables = struct let _1 = _1_inlined1 in let _1 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70332 "src/ocaml/preprocess/parser_raw.ml" +# 72156 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70337 "src/ocaml/preprocess/parser_raw.ml" +# 72161 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 70343 "src/ocaml/preprocess/parser_raw.ml" +# 72167 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in ( -# 3615 "src/ocaml/preprocess/parser_raw.mly" +# 3596 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 70351 "src/ocaml/preprocess/parser_raw.ml" +# 72175 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -70408,9 +72232,9 @@ module Tables = struct let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70414 "src/ocaml/preprocess/parser_raw.ml" +# 72238 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -70428,18 +72252,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 70432 "src/ocaml/preprocess/parser_raw.ml" +# 72256 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 70437 "src/ocaml/preprocess/parser_raw.ml" +# 72261 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 70443 "src/ocaml/preprocess/parser_raw.ml" +# 72267 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -70448,22 +72272,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70454 "src/ocaml/preprocess/parser_raw.ml" +# 72278 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 70460 "src/ocaml/preprocess/parser_raw.ml" +# 72284 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -70476,39 +72300,39 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 70480 "src/ocaml/preprocess/parser_raw.ml" +# 72304 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70486 "src/ocaml/preprocess/parser_raw.ml" +# 72310 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70492 "src/ocaml/preprocess/parser_raw.ml" +# 72316 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70498 "src/ocaml/preprocess/parser_raw.ml" +# 72322 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 70504 "src/ocaml/preprocess/parser_raw.ml" +# 72328 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in ( -# 3615 "src/ocaml/preprocess/parser_raw.mly" +# 3596 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 70512 "src/ocaml/preprocess/parser_raw.ml" +# 72336 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -70576,9 +72400,9 @@ module Tables = struct let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70582 "src/ocaml/preprocess/parser_raw.ml" +# 72406 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -70598,18 +72422,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 70602 "src/ocaml/preprocess/parser_raw.ml" +# 72426 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 70607 "src/ocaml/preprocess/parser_raw.ml" +# 72431 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 70613 "src/ocaml/preprocess/parser_raw.ml" +# 72437 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -70618,22 +72442,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70624 "src/ocaml/preprocess/parser_raw.ml" +# 72448 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 70630 "src/ocaml/preprocess/parser_raw.ml" +# 72454 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -70646,7 +72470,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 70650 "src/ocaml/preprocess/parser_raw.ml" +# 72474 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -70654,41 +72478,41 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 70660 "src/ocaml/preprocess/parser_raw.ml" +# 72484 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70666 "src/ocaml/preprocess/parser_raw.ml" +# 72490 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70672 "src/ocaml/preprocess/parser_raw.ml" +# 72496 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 70678 "src/ocaml/preprocess/parser_raw.ml" +# 72502 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 70684 "src/ocaml/preprocess/parser_raw.ml" +# 72508 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in ( -# 3615 "src/ocaml/preprocess/parser_raw.mly" +# 3596 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 70692 "src/ocaml/preprocess/parser_raw.ml" +# 72516 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -70733,15 +72557,15 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1_inlined1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70739 "src/ocaml/preprocess/parser_raw.ml" +# 72563 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70745 "src/ocaml/preprocess/parser_raw.ml" +# 72569 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -70751,17 +72575,17 @@ module Tables = struct let x2 = let _1 = _1_inlined1 in -# 3588 "src/ocaml/preprocess/parser_raw.mly" +# 3569 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 70757 "src/ocaml/preprocess/parser_raw.ml" +# 72581 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in ( -# 3615 "src/ocaml/preprocess/parser_raw.mly" +# 3596 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 70765 "src/ocaml/preprocess/parser_raw.ml" +# 72589 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -70805,16 +72629,16 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70811 "src/ocaml/preprocess/parser_raw.ml" +# 72635 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70818 "src/ocaml/preprocess/parser_raw.ml" +# 72642 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -70824,18 +72648,18 @@ module Tables = struct let x2 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3590 "src/ocaml/preprocess/parser_raw.mly" +# 3571 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 70831 "src/ocaml/preprocess/parser_raw.ml" +# 72655 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in ( -# 3615 "src/ocaml/preprocess/parser_raw.mly" +# 3596 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 70839 "src/ocaml/preprocess/parser_raw.ml" +# 72663 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -70899,17 +72723,17 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70905 "src/ocaml/preprocess/parser_raw.ml" +# 72729 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _3 : unit = Obj.magic _3 in let l1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70913 "src/ocaml/preprocess/parser_raw.ml" +# 72737 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -70920,19 +72744,19 @@ module Tables = struct let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3593 "src/ocaml/preprocess/parser_raw.mly" +# 3574 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 70928 "src/ocaml/preprocess/parser_raw.ml" +# 72752 "src/ocaml/preprocess/parser_raw.ml" in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in ( -# 3615 "src/ocaml/preprocess/parser_raw.mly" +# 3596 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_l1_ in [ x2; Some l1, mkexpvar ~loc l1] ) -# 70936 "src/ocaml/preprocess/parser_raw.ml" +# 72760 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -70992,9 +72816,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let l1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 70998 "src/ocaml/preprocess/parser_raw.ml" +# 72822 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -71006,33 +72830,33 @@ module Tables = struct let _1 = _1_inlined1 in let _1 = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71012 "src/ocaml/preprocess/parser_raw.ml" +# 72836 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71017 "src/ocaml/preprocess/parser_raw.ml" +# 72841 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 71023 "src/ocaml/preprocess/parser_raw.ml" +# 72847 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos__1_inlined1_ in let _endpos = _endpos_x2_ in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in ( -# 3620 "src/ocaml/preprocess/parser_raw.mly" +# 3601 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 71036 "src/ocaml/preprocess/parser_raw.ml" +# 72860 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -71113,9 +72937,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let l1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 71119 "src/ocaml/preprocess/parser_raw.ml" +# 72943 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -71134,18 +72958,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 71138 "src/ocaml/preprocess/parser_raw.ml" +# 72962 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 71143 "src/ocaml/preprocess/parser_raw.ml" +# 72967 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 71149 "src/ocaml/preprocess/parser_raw.ml" +# 72973 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -71154,22 +72978,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71160 "src/ocaml/preprocess/parser_raw.ml" +# 72984 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 71166 "src/ocaml/preprocess/parser_raw.ml" +# 72990 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -71182,44 +73006,44 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 71186 "src/ocaml/preprocess/parser_raw.ml" +# 73010 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71192 "src/ocaml/preprocess/parser_raw.ml" +# 73016 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71198 "src/ocaml/preprocess/parser_raw.ml" +# 73022 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71204 "src/ocaml/preprocess/parser_raw.ml" +# 73028 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 71210 "src/ocaml/preprocess/parser_raw.ml" +# 73034 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos_xs_ in let _endpos = _endpos_x2_ in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in ( -# 3620 "src/ocaml/preprocess/parser_raw.mly" +# 3601 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 71223 "src/ocaml/preprocess/parser_raw.ml" +# 73047 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -71307,9 +73131,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let l1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 71313 "src/ocaml/preprocess/parser_raw.ml" +# 73137 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -71330,18 +73154,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 71334 "src/ocaml/preprocess/parser_raw.ml" +# 73158 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 71339 "src/ocaml/preprocess/parser_raw.ml" +# 73163 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 71345 "src/ocaml/preprocess/parser_raw.ml" +# 73169 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -71350,22 +73174,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71356 "src/ocaml/preprocess/parser_raw.ml" +# 73180 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 71362 "src/ocaml/preprocess/parser_raw.ml" +# 73186 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -71378,7 +73202,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 71382 "src/ocaml/preprocess/parser_raw.ml" +# 73206 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -71386,46 +73210,46 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 71392 "src/ocaml/preprocess/parser_raw.ml" +# 73216 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71398 "src/ocaml/preprocess/parser_raw.ml" +# 73222 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71404 "src/ocaml/preprocess/parser_raw.ml" +# 73228 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 71410 "src/ocaml/preprocess/parser_raw.ml" +# 73234 "src/ocaml/preprocess/parser_raw.ml" in -# 3586 "src/ocaml/preprocess/parser_raw.mly" +# 3567 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 71416 "src/ocaml/preprocess/parser_raw.ml" +# 73240 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos_xs_ in let _endpos = _endpos_x2_ in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in ( -# 3620 "src/ocaml/preprocess/parser_raw.mly" +# 3601 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 71429 "src/ocaml/preprocess/parser_raw.ml" +# 73253 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -71488,17 +73312,17 @@ module Tables = struct } = _menhir_stack in let _2_inlined1 : (Parsetree.expression) = Obj.magic _2_inlined1 in let _1_inlined1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 71494 "src/ocaml/preprocess/parser_raw.ml" +# 73318 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let l1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 71502 "src/ocaml/preprocess/parser_raw.ml" +# 73326 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -71509,22 +73333,22 @@ module Tables = struct let x2 = let (_2, _1) = (_2_inlined1, _1_inlined1) in -# 3588 "src/ocaml/preprocess/parser_raw.mly" +# 3569 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 71515 "src/ocaml/preprocess/parser_raw.ml" +# 73339 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos__2_inlined1_ in let _endpos = _endpos_x2_ in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in ( -# 3620 "src/ocaml/preprocess/parser_raw.mly" +# 3601 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 71528 "src/ocaml/preprocess/parser_raw.ml" +# 73352 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -71586,18 +73410,18 @@ module Tables = struct }; } = _menhir_stack in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 71592 "src/ocaml/preprocess/parser_raw.ml" +# 73416 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _6 : unit = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let l1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 71601 "src/ocaml/preprocess/parser_raw.ml" +# 73425 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -71608,23 +73432,23 @@ module Tables = struct let x2 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3590 "src/ocaml/preprocess/parser_raw.mly" +# 3571 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkexpvar ~loc label ) -# 71615 "src/ocaml/preprocess/parser_raw.ml" +# 73439 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos_label_ in let _endpos = _endpos_x2_ in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in ( -# 3620 "src/ocaml/preprocess/parser_raw.mly" +# 3601 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 71628 "src/ocaml/preprocess/parser_raw.ml" +# 73452 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -71706,9 +73530,9 @@ module Tables = struct let _5_inlined1 : unit = Obj.magic _5_inlined1 in let c_inlined1 : (Parsetree.type_constraint) = Obj.magic c_inlined1 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 71712 "src/ocaml/preprocess/parser_raw.ml" +# 73536 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in @@ -71716,9 +73540,9 @@ module Tables = struct let _5 : unit = Obj.magic _5 in let c : (Parsetree.type_constraint) = Obj.magic c in let l1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 71722 "src/ocaml/preprocess/parser_raw.ml" +# 73546 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic l1 in let _2 : unit = Obj.magic _2 in let _1 : unit = Obj.magic _1 in @@ -71731,24 +73555,24 @@ module Tables = struct let _endpos = _endpos__5_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3593 "src/ocaml/preprocess/parser_raw.mly" +# 3574 "src/ocaml/preprocess/parser_raw.mly" ( Some label, mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_label_ label) c ) -# 71739 "src/ocaml/preprocess/parser_raw.ml" +# 73563 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_x2_ = _endpos__5_inlined1_ in let _endpos = _endpos_x2_ in let _loc_l1_ = (_startpos_l1_, _endpos_l1_) in ( -# 3620 "src/ocaml/preprocess/parser_raw.mly" +# 3601 "src/ocaml/preprocess/parser_raw.mly" ( let x1 = mkexp_type_constraint_with_modes ~loc:(_startpos__2_, _endpos) ~modes:[] (mkexpvar ~loc:_loc_l1_ l1) c in [ x2; Some l1, x1] ) -# 71752 "src/ocaml/preprocess/parser_raw.ml" +# 73576 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.expression) list)) in { @@ -71772,9 +73596,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = -# 3814 "src/ocaml/preprocess/parser_raw.mly" +# 3804 "src/ocaml/preprocess/parser_raw.mly" ( Closed, _1 ) -# 71778 "src/ocaml/preprocess/parser_raw.ml" +# 73602 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71811,9 +73635,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = -# 3816 "src/ocaml/preprocess/parser_raw.mly" +# 3806 "src/ocaml/preprocess/parser_raw.mly" ( Open, _1 ) -# 71817 "src/ocaml/preprocess/parser_raw.ml" +# 73641 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -71851,14 +73675,14 @@ module Tables = struct let _endpos = _endpos__3_ in let _v = let _1 = -# 3791 "src/ocaml/preprocess/parser_raw.mly" +# 3781 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 71857 "src/ocaml/preprocess/parser_raw.ml" +# 73681 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3818 "src/ocaml/preprocess/parser_raw.mly" +# 3808 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 71862 "src/ocaml/preprocess/parser_raw.ml" +# 73686 "src/ocaml/preprocess/parser_raw.ml" : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) in { @@ -71899,9 +73723,9 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 71905 "src/ocaml/preprocess/parser_raw.ml" +# 73729 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -71910,15 +73734,15 @@ module Tables = struct let _1 = let _2 = _2_inlined1 in -# 3793 "src/ocaml/preprocess/parser_raw.mly" +# 3783 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 71916 "src/ocaml/preprocess/parser_raw.ml" +# 73740 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3818 "src/ocaml/preprocess/parser_raw.mly" +# 3808 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 71922 "src/ocaml/preprocess/parser_raw.ml" +# 73746 "src/ocaml/preprocess/parser_raw.ml" : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) in { @@ -71958,9 +73782,9 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 71964 "src/ocaml/preprocess/parser_raw.ml" +# 73788 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -71970,16 +73794,16 @@ module Tables = struct let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3795 "src/ocaml/preprocess/parser_raw.mly" +# 3785 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 71977 "src/ocaml/preprocess/parser_raw.ml" +# 73801 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3818 "src/ocaml/preprocess/parser_raw.mly" +# 3808 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 71983 "src/ocaml/preprocess/parser_raw.ml" +# 73807 "src/ocaml/preprocess/parser_raw.ml" : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) in { @@ -72046,9 +73870,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 72052 "src/ocaml/preprocess/parser_raw.ml" +# 73876 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -72061,18 +73885,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3788 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 72070 "src/ocaml/preprocess/parser_raw.ml" +# 73894 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3818 "src/ocaml/preprocess/parser_raw.mly" +# 3808 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 72076 "src/ocaml/preprocess/parser_raw.ml" +# 73900 "src/ocaml/preprocess/parser_raw.ml" : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) in { @@ -72096,9 +73920,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = -# 3814 "src/ocaml/preprocess/parser_raw.mly" +# 3804 "src/ocaml/preprocess/parser_raw.mly" ( Closed, _1 ) -# 72102 "src/ocaml/preprocess/parser_raw.ml" +# 73926 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72135,9 +73959,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (Asttypes.closed_flag * (string option * Parsetree.pattern) list) = -# 3816 "src/ocaml/preprocess/parser_raw.mly" +# 3806 "src/ocaml/preprocess/parser_raw.mly" ( Open, _1 ) -# 72141 "src/ocaml/preprocess/parser_raw.ml" +# 73965 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72175,14 +73999,14 @@ module Tables = struct let _endpos = _endpos__3_ in let _v = let _1 = -# 3791 "src/ocaml/preprocess/parser_raw.mly" +# 3781 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 72181 "src/ocaml/preprocess/parser_raw.ml" +# 74005 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3818 "src/ocaml/preprocess/parser_raw.mly" +# 3808 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 72186 "src/ocaml/preprocess/parser_raw.ml" +# 74010 "src/ocaml/preprocess/parser_raw.ml" : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) in { @@ -72223,9 +74047,9 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let _2_inlined1 : (Parsetree.pattern) = Obj.magic _2_inlined1 in let _1 : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 72229 "src/ocaml/preprocess/parser_raw.ml" +# 74053 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -72234,15 +74058,15 @@ module Tables = struct let _1 = let _2 = _2_inlined1 in -# 3793 "src/ocaml/preprocess/parser_raw.mly" +# 3783 "src/ocaml/preprocess/parser_raw.mly" ( Some _1, _2 ) -# 72240 "src/ocaml/preprocess/parser_raw.ml" +# 74064 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3818 "src/ocaml/preprocess/parser_raw.mly" +# 3808 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 72246 "src/ocaml/preprocess/parser_raw.ml" +# 74070 "src/ocaml/preprocess/parser_raw.ml" : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) in { @@ -72282,9 +74106,9 @@ module Tables = struct let _3 : unit = Obj.magic _3 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 72288 "src/ocaml/preprocess/parser_raw.ml" +# 74112 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -72294,16 +74118,16 @@ module Tables = struct let _1 = let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3795 "src/ocaml/preprocess/parser_raw.mly" +# 3785 "src/ocaml/preprocess/parser_raw.mly" ( let loc = _loc_label_ in Some label, mkpatvar ~loc label ) -# 72301 "src/ocaml/preprocess/parser_raw.ml" +# 74125 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3818 "src/ocaml/preprocess/parser_raw.mly" +# 3808 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 72307 "src/ocaml/preprocess/parser_raw.ml" +# 74131 "src/ocaml/preprocess/parser_raw.ml" : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) in { @@ -72370,9 +74194,9 @@ module Tables = struct let cty : (Parsetree.core_type) = Obj.magic cty in let _4 : unit = Obj.magic _4 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 72376 "src/ocaml/preprocess/parser_raw.ml" +# 74200 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -72385,18 +74209,18 @@ module Tables = struct let _endpos = _endpos__6_ in let _loc_label_ = (_startpos_label_, _endpos_label_) in -# 3798 "src/ocaml/preprocess/parser_raw.mly" +# 3788 "src/ocaml/preprocess/parser_raw.mly" ( let lbl_loc = _loc_label_ in let pat_loc = _startpos__2_, _endpos in let pat = mkpatvar ~loc:lbl_loc label in Some label, mkpat_with_modes ~loc:pat_loc ~modes:[] ~pat ~cty:(Some cty) ) -# 72394 "src/ocaml/preprocess/parser_raw.ml" +# 74218 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3818 "src/ocaml/preprocess/parser_raw.mly" +# 3808 "src/ocaml/preprocess/parser_raw.mly" ( Open, [ _1 ] ) -# 72400 "src/ocaml/preprocess/parser_raw.ml" +# 74224 "src/ocaml/preprocess/parser_raw.ml" : (Asttypes.closed_flag * (string option * Parsetree.pattern) list)) in { @@ -72413,9 +74237,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : ((Parsetree.core_type * Parsetree.core_type * Location.t) list) = -# 1374 "src/ocaml/preprocess/parser_raw.mly" +# 1386 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 72419 "src/ocaml/preprocess/parser_raw.ml" +# 74243 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72473,21 +74297,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2626 "src/ocaml/preprocess/parser_raw.mly" +# 2653 "src/ocaml/preprocess/parser_raw.mly" ( _1, _3, make_loc _sloc ) -# 72479 "src/ocaml/preprocess/parser_raw.ml" +# 74303 "src/ocaml/preprocess/parser_raw.ml" in # 188 "" ( x ) -# 72485 "src/ocaml/preprocess/parser_raw.ml" +# 74309 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1376 "src/ocaml/preprocess/parser_raw.mly" +# 1388 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 72491 "src/ocaml/preprocess/parser_raw.ml" +# 74315 "src/ocaml/preprocess/parser_raw.ml" : ((Parsetree.core_type * Parsetree.core_type * Location.t) list)) in { @@ -72511,9 +74335,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.function_param list) = -# 1407 "src/ocaml/preprocess/parser_raw.mly" +# 1419 "src/ocaml/preprocess/parser_raw.mly" ( List.rev x ) -# 72517 "src/ocaml/preprocess/parser_raw.ml" +# 74341 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72543,9 +74367,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.function_param list) = -# 1409 "src/ocaml/preprocess/parser_raw.mly" +# 1421 "src/ocaml/preprocess/parser_raw.mly" ( List.rev_append x xs ) -# 72549 "src/ocaml/preprocess/parser_raw.ml" +# 74373 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72568,9 +74392,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (Parsetree.comprehension_clause list) = -# 1388 "src/ocaml/preprocess/parser_raw.mly" +# 1400 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 72574 "src/ocaml/preprocess/parser_raw.ml" +# 74398 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72600,9 +74424,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.comprehension_clause list) = -# 1390 "src/ocaml/preprocess/parser_raw.mly" +# 1402 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 72606 "src/ocaml/preprocess/parser_raw.ml" +# 74430 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72625,9 +74449,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((Lexing.position * Parsetree.functor_parameter) list) = -# 1388 "src/ocaml/preprocess/parser_raw.mly" +# 1400 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 72631 "src/ocaml/preprocess/parser_raw.ml" +# 74455 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72657,9 +74481,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : ((Lexing.position * Parsetree.functor_parameter) list) = -# 1390 "src/ocaml/preprocess/parser_raw.mly" +# 1402 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 72663 "src/ocaml/preprocess/parser_raw.ml" +# 74487 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72682,9 +74506,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.arg_label * Parsetree.expression) list) = -# 1388 "src/ocaml/preprocess/parser_raw.mly" +# 1400 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 72688 "src/ocaml/preprocess/parser_raw.ml" +# 74512 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72714,9 +74538,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : ((Parsetree.arg_label * Parsetree.expression) list) = -# 1390 "src/ocaml/preprocess/parser_raw.mly" +# 1402 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 72720 "src/ocaml/preprocess/parser_raw.ml" +# 74544 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72739,9 +74563,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_x_ in let _v : (string list) = -# 1388 "src/ocaml/preprocess/parser_raw.mly" +# 1400 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 72745 "src/ocaml/preprocess/parser_raw.ml" +# 74569 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72771,9 +74595,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (string list) = -# 1390 "src/ocaml/preprocess/parser_raw.mly" +# 1402 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 72777 "src/ocaml/preprocess/parser_raw.ml" +# 74601 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -72810,21 +74634,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 72816 "src/ocaml/preprocess/parser_raw.ml" +# 74640 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4447 "src/ocaml/preprocess/parser_raw.mly" ( (_2, None) ) -# 72822 "src/ocaml/preprocess/parser_raw.ml" +# 74646 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1388 "src/ocaml/preprocess/parser_raw.mly" +# 1400 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 72828 "src/ocaml/preprocess/parser_raw.ml" +# 74652 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Parsetree.jkind_annotation option) list)) in { @@ -72890,21 +74714,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 72896 "src/ocaml/preprocess/parser_raw.ml" +# 74720 "src/ocaml/preprocess/parser_raw.ml" in -# 4475 "src/ocaml/preprocess/parser_raw.mly" +# 4449 "src/ocaml/preprocess/parser_raw.mly" ( (tyvar, Some jkind) ) -# 72902 "src/ocaml/preprocess/parser_raw.ml" +# 74726 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1388 "src/ocaml/preprocess/parser_raw.mly" +# 1400 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 72908 "src/ocaml/preprocess/parser_raw.ml" +# 74732 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Parsetree.jkind_annotation option) list)) in { @@ -72949,21 +74773,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 72955 "src/ocaml/preprocess/parser_raw.ml" +# 74779 "src/ocaml/preprocess/parser_raw.ml" in -# 4473 "src/ocaml/preprocess/parser_raw.mly" +# 4447 "src/ocaml/preprocess/parser_raw.mly" ( (_2, None) ) -# 72961 "src/ocaml/preprocess/parser_raw.ml" +# 74785 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1390 "src/ocaml/preprocess/parser_raw.mly" +# 1402 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 72967 "src/ocaml/preprocess/parser_raw.ml" +# 74791 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Parsetree.jkind_annotation option) list)) in { @@ -73036,21 +74860,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 73042 "src/ocaml/preprocess/parser_raw.ml" +# 74866 "src/ocaml/preprocess/parser_raw.ml" in -# 4475 "src/ocaml/preprocess/parser_raw.mly" +# 4449 "src/ocaml/preprocess/parser_raw.mly" ( (tyvar, Some jkind) ) -# 73048 "src/ocaml/preprocess/parser_raw.ml" +# 74872 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1390 "src/ocaml/preprocess/parser_raw.mly" +# 1402 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 73054 "src/ocaml/preprocess/parser_raw.ml" +# 74878 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Parsetree.jkind_annotation option) list)) in { @@ -73077,12 +74901,12 @@ module Tables = struct let _1 = # 123 "" ( None ) -# 73081 "src/ocaml/preprocess/parser_raw.ml" +# 74905 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1499 "src/ocaml/preprocess/parser_raw.mly" +# 1511 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 73086 "src/ocaml/preprocess/parser_raw.ml" +# 74910 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.case list)) in { @@ -73118,13 +74942,13 @@ module Tables = struct # 126 "" ( Some x ) -# 73122 "src/ocaml/preprocess/parser_raw.ml" +# 74946 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1499 "src/ocaml/preprocess/parser_raw.mly" +# 1511 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 73128 "src/ocaml/preprocess/parser_raw.ml" +# 74952 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.case list)) in { @@ -73162,9 +74986,9 @@ module Tables = struct let _startpos = _startpos_xs_ in let _endpos = _endpos_x_ in let _v : (Parsetree.case list) = -# 1503 "src/ocaml/preprocess/parser_raw.mly" +# 1515 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 73168 "src/ocaml/preprocess/parser_raw.ml" +# 74992 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -73189,20 +75013,20 @@ module Tables = struct let _v = let xs = let x = -# 4520 "src/ocaml/preprocess/parser_raw.mly" +# 4532 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73195 "src/ocaml/preprocess/parser_raw.ml" +# 75019 "src/ocaml/preprocess/parser_raw.ml" in -# 1434 "src/ocaml/preprocess/parser_raw.mly" +# 1446 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 73200 "src/ocaml/preprocess/parser_raw.ml" +# 75024 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73206 "src/ocaml/preprocess/parser_raw.ml" +# 75030 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -73242,20 +75066,20 @@ module Tables = struct let _v = let xs = let x = -# 4520 "src/ocaml/preprocess/parser_raw.mly" +# 4532 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 73248 "src/ocaml/preprocess/parser_raw.ml" +# 75072 "src/ocaml/preprocess/parser_raw.ml" in -# 1438 "src/ocaml/preprocess/parser_raw.mly" +# 1450 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 73253 "src/ocaml/preprocess/parser_raw.ml" +# 75077 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73259 "src/ocaml/preprocess/parser_raw.ml" +# 75083 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -73280,14 +75104,14 @@ module Tables = struct let _endpos = _endpos_x_ in let _v = let xs = -# 1434 "src/ocaml/preprocess/parser_raw.mly" +# 1446 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 73286 "src/ocaml/preprocess/parser_raw.ml" +# 75110 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73291 "src/ocaml/preprocess/parser_raw.ml" +# 75115 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause_binding list)) in { @@ -73326,14 +75150,14 @@ module Tables = struct let _endpos = _endpos_x_ in let _v = let xs = -# 1438 "src/ocaml/preprocess/parser_raw.mly" +# 1450 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 73332 "src/ocaml/preprocess/parser_raw.ml" +# 75156 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73337 "src/ocaml/preprocess/parser_raw.ml" +# 75161 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.comprehension_clause_binding list)) in { @@ -73358,14 +75182,14 @@ module Tables = struct let _endpos = _endpos_x_ in let _v = let xs = -# 1434 "src/ocaml/preprocess/parser_raw.mly" +# 1446 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 73364 "src/ocaml/preprocess/parser_raw.ml" +# 75188 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73369 "src/ocaml/preprocess/parser_raw.ml" +# 75193 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.with_constraint list)) in { @@ -73404,14 +75228,14 @@ module Tables = struct let _endpos = _endpos_x_ in let _v = let xs = -# 1438 "src/ocaml/preprocess/parser_raw.mly" +# 1450 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 73410 "src/ocaml/preprocess/parser_raw.ml" +# 75234 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73415 "src/ocaml/preprocess/parser_raw.ml" +# 75239 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.with_constraint list)) in { @@ -73436,14 +75260,14 @@ module Tables = struct let _endpos = _endpos_x_ in let _v = let xs = -# 1434 "src/ocaml/preprocess/parser_raw.mly" +# 1446 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 73442 "src/ocaml/preprocess/parser_raw.ml" +# 75266 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73447 "src/ocaml/preprocess/parser_raw.ml" +# 75271 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.row_field list)) in { @@ -73482,14 +75306,14 @@ module Tables = struct let _endpos = _endpos_x_ in let _v = let xs = -# 1438 "src/ocaml/preprocess/parser_raw.mly" +# 1450 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 73488 "src/ocaml/preprocess/parser_raw.ml" +# 75312 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73493 "src/ocaml/preprocess/parser_raw.ml" +# 75317 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.row_field list)) in { @@ -73514,14 +75338,14 @@ module Tables = struct let _endpos = _endpos_x_ in let _v = let xs = -# 1434 "src/ocaml/preprocess/parser_raw.mly" +# 1446 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 73520 "src/ocaml/preprocess/parser_raw.ml" +# 75344 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73525 "src/ocaml/preprocess/parser_raw.ml" +# 75349 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -73560,14 +75384,14 @@ module Tables = struct let _endpos = _endpos_x_ in let _v = let xs = -# 1438 "src/ocaml/preprocess/parser_raw.mly" +# 1450 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 73566 "src/ocaml/preprocess/parser_raw.ml" +# 75390 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73571 "src/ocaml/preprocess/parser_raw.ml" +# 75395 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -73592,14 +75416,14 @@ module Tables = struct let _endpos = _endpos_x_ in let _v = let xs = -# 1434 "src/ocaml/preprocess/parser_raw.mly" +# 1446 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 73598 "src/ocaml/preprocess/parser_raw.ml" +# 75422 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73603 "src/ocaml/preprocess/parser_raw.ml" +# 75427 "src/ocaml/preprocess/parser_raw.ml" : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) in { @@ -73638,14 +75462,14 @@ module Tables = struct let _endpos = _endpos_x_ in let _v = let xs = -# 1438 "src/ocaml/preprocess/parser_raw.mly" +# 1450 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 73644 "src/ocaml/preprocess/parser_raw.ml" +# 75468 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73649 "src/ocaml/preprocess/parser_raw.ml" +# 75473 "src/ocaml/preprocess/parser_raw.ml" : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) in { @@ -73670,14 +75494,14 @@ module Tables = struct let _endpos = _endpos_x_ in let _v = let xs = -# 1434 "src/ocaml/preprocess/parser_raw.mly" +# 1446 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 73676 "src/ocaml/preprocess/parser_raw.ml" +# 75500 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73681 "src/ocaml/preprocess/parser_raw.ml" +# 75505 "src/ocaml/preprocess/parser_raw.ml" : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) in { @@ -73716,14 +75540,14 @@ module Tables = struct let _endpos = _endpos_x_ in let _v = let xs = -# 1438 "src/ocaml/preprocess/parser_raw.mly" +# 1450 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 73722 "src/ocaml/preprocess/parser_raw.ml" +# 75546 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73727 "src/ocaml/preprocess/parser_raw.ml" +# 75551 "src/ocaml/preprocess/parser_raw.ml" : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) in { @@ -73757,9 +75581,9 @@ module Tables = struct let xs = let x = let gbl = -# 5267 "src/ocaml/preprocess/parser_raw.mly" +# 5266 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73763 "src/ocaml/preprocess/parser_raw.ml" +# 75587 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos_m1_ in @@ -73769,24 +75593,24 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4344 "src/ocaml/preprocess/parser_raw.mly" +# 4318 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 73778 "src/ocaml/preprocess/parser_raw.ml" +# 75602 "src/ocaml/preprocess/parser_raw.ml" in -# 1434 "src/ocaml/preprocess/parser_raw.mly" +# 1446 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 73784 "src/ocaml/preprocess/parser_raw.ml" +# 75608 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73790 "src/ocaml/preprocess/parser_raw.ml" +# 75614 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constructor_argument list)) in { @@ -73831,9 +75655,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5268 "src/ocaml/preprocess/parser_raw.mly" +# 5267 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 73837 "src/ocaml/preprocess/parser_raw.ml" +# 75661 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in @@ -73844,24 +75668,24 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4344 "src/ocaml/preprocess/parser_raw.mly" +# 4318 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 73853 "src/ocaml/preprocess/parser_raw.ml" +# 75677 "src/ocaml/preprocess/parser_raw.ml" in -# 1434 "src/ocaml/preprocess/parser_raw.mly" +# 1446 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 73859 "src/ocaml/preprocess/parser_raw.ml" +# 75683 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73865 "src/ocaml/preprocess/parser_raw.ml" +# 75689 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constructor_argument list)) in { @@ -73910,9 +75734,9 @@ module Tables = struct let x = let _endpos__0_ = _endpos__2_ in let gbl = -# 5267 "src/ocaml/preprocess/parser_raw.mly" +# 5266 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 73916 "src/ocaml/preprocess/parser_raw.ml" +# 75740 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos_m1_ in @@ -73922,24 +75746,24 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4344 "src/ocaml/preprocess/parser_raw.mly" +# 4318 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 73931 "src/ocaml/preprocess/parser_raw.ml" +# 75755 "src/ocaml/preprocess/parser_raw.ml" in -# 1438 "src/ocaml/preprocess/parser_raw.mly" +# 1450 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 73937 "src/ocaml/preprocess/parser_raw.ml" +# 75761 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 73943 "src/ocaml/preprocess/parser_raw.ml" +# 75767 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constructor_argument list)) in { @@ -73998,9 +75822,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 5268 "src/ocaml/preprocess/parser_raw.mly" +# 5267 "src/ocaml/preprocess/parser_raw.mly" ( [ mkloc (Modality "global") (make_loc _sloc)] ) -# 74004 "src/ocaml/preprocess/parser_raw.ml" +# 75828 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_gbl_, _startpos_gbl_) = (_endpos__1_, _startpos__1_) in @@ -74011,24 +75835,24 @@ module Tables = struct _startpos_cty_ in let _sloc = (_symbolstartpos, _endpos) in -# 4344 "src/ocaml/preprocess/parser_raw.mly" +# 4318 "src/ocaml/preprocess/parser_raw.mly" ( let modalities = gbl @ m1 in Type.constructor_arg cty ~modalities ~loc:(make_loc _sloc) ) -# 74020 "src/ocaml/preprocess/parser_raw.ml" +# 75844 "src/ocaml/preprocess/parser_raw.ml" in -# 1438 "src/ocaml/preprocess/parser_raw.mly" +# 1450 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 74026 "src/ocaml/preprocess/parser_raw.ml" +# 75850 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74032 "src/ocaml/preprocess/parser_raw.ml" +# 75856 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constructor_argument list)) in { @@ -74054,20 +75878,20 @@ module Tables = struct let _v = let xs = let x = -# 4791 "src/ocaml/preprocess/parser_raw.mly" +# 4788 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 74060 "src/ocaml/preprocess/parser_raw.ml" +# 75884 "src/ocaml/preprocess/parser_raw.ml" in -# 1434 "src/ocaml/preprocess/parser_raw.mly" +# 1446 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 74065 "src/ocaml/preprocess/parser_raw.ml" +# 75889 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74071 "src/ocaml/preprocess/parser_raw.ml" +# 75895 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.core_type) list)) in { @@ -74101,9 +75925,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 74107 "src/ocaml/preprocess/parser_raw.ml" +# 75931 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -74111,20 +75935,20 @@ module Tables = struct let _v = let xs = let x = -# 4793 "src/ocaml/preprocess/parser_raw.mly" +# 4790 "src/ocaml/preprocess/parser_raw.mly" ( Some label, ty ) -# 74117 "src/ocaml/preprocess/parser_raw.ml" +# 75941 "src/ocaml/preprocess/parser_raw.ml" in -# 1434 "src/ocaml/preprocess/parser_raw.mly" +# 1446 "src/ocaml/preprocess/parser_raw.mly" ( [ x ] ) -# 74122 "src/ocaml/preprocess/parser_raw.ml" +# 75946 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74128 "src/ocaml/preprocess/parser_raw.ml" +# 75952 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.core_type) list)) in { @@ -74164,20 +75988,20 @@ module Tables = struct let _v = let xs = let x = -# 4791 "src/ocaml/preprocess/parser_raw.mly" +# 4788 "src/ocaml/preprocess/parser_raw.mly" ( None, _1 ) -# 74170 "src/ocaml/preprocess/parser_raw.ml" +# 75994 "src/ocaml/preprocess/parser_raw.ml" in -# 1438 "src/ocaml/preprocess/parser_raw.mly" +# 1450 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 74175 "src/ocaml/preprocess/parser_raw.ml" +# 75999 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74181 "src/ocaml/preprocess/parser_raw.ml" +# 76005 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.core_type) list)) in { @@ -74223,9 +76047,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2_inlined1 : unit = Obj.magic _2_inlined1 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 74229 "src/ocaml/preprocess/parser_raw.ml" +# 76053 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _2 : unit = Obj.magic _2 in let xs : ((string option * Parsetree.core_type) list) = Obj.magic xs in @@ -74235,20 +76059,20 @@ module Tables = struct let _v = let xs = let x = -# 4793 "src/ocaml/preprocess/parser_raw.mly" +# 4790 "src/ocaml/preprocess/parser_raw.mly" ( Some label, ty ) -# 74241 "src/ocaml/preprocess/parser_raw.ml" +# 76065 "src/ocaml/preprocess/parser_raw.ml" in -# 1438 "src/ocaml/preprocess/parser_raw.mly" +# 1450 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 74246 "src/ocaml/preprocess/parser_raw.ml" +# 76070 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1442 "src/ocaml/preprocess/parser_raw.mly" +# 1454 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 74252 "src/ocaml/preprocess/parser_raw.ml" +# 76076 "src/ocaml/preprocess/parser_raw.ml" : ((string option * Parsetree.core_type) list)) in { @@ -74287,14 +76111,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let x = -# 4935 "src/ocaml/preprocess/parser_raw.mly" +# 4934 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74293 "src/ocaml/preprocess/parser_raw.ml" +# 76117 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1465 "src/ocaml/preprocess/parser_raw.mly" +# 1477 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 74298 "src/ocaml/preprocess/parser_raw.ml" +# 76122 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -74358,15 +76182,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4937 "src/ocaml/preprocess/parser_raw.mly" +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 74364 "src/ocaml/preprocess/parser_raw.ml" +# 76188 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1465 "src/ocaml/preprocess/parser_raw.mly" +# 1477 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 74370 "src/ocaml/preprocess/parser_raw.ml" +# 76194 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -74423,15 +76247,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4939 "src/ocaml/preprocess/parser_raw.mly" +# 4938 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 74429 "src/ocaml/preprocess/parser_raw.ml" +# 76253 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1465 "src/ocaml/preprocess/parser_raw.mly" +# 1477 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 74435 "src/ocaml/preprocess/parser_raw.ml" +# 76259 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -74472,20 +76296,20 @@ module Tables = struct let x2 = let _1 = _1_inlined1 in -# 4935 "src/ocaml/preprocess/parser_raw.mly" +# 4934 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74478 "src/ocaml/preprocess/parser_raw.ml" +# 76302 "src/ocaml/preprocess/parser_raw.ml" in let x1 = -# 4935 "src/ocaml/preprocess/parser_raw.mly" +# 4934 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74484 "src/ocaml/preprocess/parser_raw.ml" +# 76308 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1469 "src/ocaml/preprocess/parser_raw.mly" +# 1481 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 74489 "src/ocaml/preprocess/parser_raw.ml" +# 76313 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -74550,20 +76374,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4937 "src/ocaml/preprocess/parser_raw.mly" +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 74556 "src/ocaml/preprocess/parser_raw.ml" +# 76380 "src/ocaml/preprocess/parser_raw.ml" in let x1 = -# 4935 "src/ocaml/preprocess/parser_raw.mly" +# 4934 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74562 "src/ocaml/preprocess/parser_raw.ml" +# 76386 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1469 "src/ocaml/preprocess/parser_raw.mly" +# 1481 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 74567 "src/ocaml/preprocess/parser_raw.ml" +# 76391 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -74621,20 +76445,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4939 "src/ocaml/preprocess/parser_raw.mly" +# 4938 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 74627 "src/ocaml/preprocess/parser_raw.ml" +# 76451 "src/ocaml/preprocess/parser_raw.ml" in let x1 = -# 4935 "src/ocaml/preprocess/parser_raw.mly" +# 4934 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74633 "src/ocaml/preprocess/parser_raw.ml" +# 76457 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1469 "src/ocaml/preprocess/parser_raw.mly" +# 1481 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 74638 "src/ocaml/preprocess/parser_raw.ml" +# 76462 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -74696,9 +76520,9 @@ module Tables = struct let x2 = let _1 = _1_inlined1 in -# 4935 "src/ocaml/preprocess/parser_raw.mly" +# 4934 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74702 "src/ocaml/preprocess/parser_raw.ml" +# 76526 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -74706,15 +76530,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4937 "src/ocaml/preprocess/parser_raw.mly" +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 74712 "src/ocaml/preprocess/parser_raw.ml" +# 76536 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1469 "src/ocaml/preprocess/parser_raw.mly" +# 1481 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 74718 "src/ocaml/preprocess/parser_raw.ml" +# 76542 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -74800,9 +76624,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4937 "src/ocaml/preprocess/parser_raw.mly" +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 74806 "src/ocaml/preprocess/parser_raw.ml" +# 76630 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -74810,15 +76634,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4937 "src/ocaml/preprocess/parser_raw.mly" +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 74816 "src/ocaml/preprocess/parser_raw.ml" +# 76640 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1469 "src/ocaml/preprocess/parser_raw.mly" +# 1481 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 74822 "src/ocaml/preprocess/parser_raw.ml" +# 76646 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -74897,9 +76721,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4939 "src/ocaml/preprocess/parser_raw.mly" +# 4938 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 74903 "src/ocaml/preprocess/parser_raw.ml" +# 76727 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -74907,15 +76731,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4937 "src/ocaml/preprocess/parser_raw.mly" +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 74913 "src/ocaml/preprocess/parser_raw.ml" +# 76737 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1469 "src/ocaml/preprocess/parser_raw.mly" +# 1481 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 74919 "src/ocaml/preprocess/parser_raw.ml" +# 76743 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -74970,9 +76794,9 @@ module Tables = struct let x2 = let _1 = _1_inlined1 in -# 4935 "src/ocaml/preprocess/parser_raw.mly" +# 4934 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 74976 "src/ocaml/preprocess/parser_raw.ml" +# 76800 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -74980,15 +76804,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4939 "src/ocaml/preprocess/parser_raw.mly" +# 4938 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 74986 "src/ocaml/preprocess/parser_raw.ml" +# 76810 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1469 "src/ocaml/preprocess/parser_raw.mly" +# 1481 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 74992 "src/ocaml/preprocess/parser_raw.ml" +# 76816 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -75067,9 +76891,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4937 "src/ocaml/preprocess/parser_raw.mly" +# 4936 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_var (id, (Some jkind))) ) -# 75073 "src/ocaml/preprocess/parser_raw.ml" +# 76897 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -75077,15 +76901,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4939 "src/ocaml/preprocess/parser_raw.mly" +# 4938 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 75083 "src/ocaml/preprocess/parser_raw.ml" +# 76907 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1469 "src/ocaml/preprocess/parser_raw.mly" +# 1481 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 75089 "src/ocaml/preprocess/parser_raw.ml" +# 76913 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -75157,9 +76981,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4939 "src/ocaml/preprocess/parser_raw.mly" +# 4938 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 75163 "src/ocaml/preprocess/parser_raw.ml" +# 76987 "src/ocaml/preprocess/parser_raw.ml" in let x1 = @@ -75167,15 +76991,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4939 "src/ocaml/preprocess/parser_raw.mly" +# 4938 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc (Ptyp_any (Some jkind)) ) -# 75173 "src/ocaml/preprocess/parser_raw.ml" +# 76997 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1469 "src/ocaml/preprocess/parser_raw.mly" +# 1481 "src/ocaml/preprocess/parser_raw.mly" ( [ x2; x1 ] ) -# 75179 "src/ocaml/preprocess/parser_raw.ml" +# 77003 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type list)) in { @@ -75199,9 +77023,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.row_field) = -# 4952 "src/ocaml/preprocess/parser_raw.mly" +# 4951 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75205 "src/ocaml/preprocess/parser_raw.ml" +# 77029 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -75228,9 +77052,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4954 "src/ocaml/preprocess/parser_raw.mly" +# 4953 "src/ocaml/preprocess/parser_raw.mly" ( Rf.inherit_ ~loc:(make_loc _sloc) _1 ) -# 75234 "src/ocaml/preprocess/parser_raw.ml" +# 77058 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.row_field)) in { @@ -75257,24 +77081,24 @@ module Tables = struct let _2 = # 123 "" ( None ) -# 75261 "src/ocaml/preprocess/parser_raw.ml" +# 77085 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75267 "src/ocaml/preprocess/parser_raw.ml" +# 77091 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75272 "src/ocaml/preprocess/parser_raw.ml" +# 77096 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1498 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 75278 "src/ocaml/preprocess/parser_raw.ml" +# 77102 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression list)) in { @@ -75308,24 +77132,24 @@ module Tables = struct let _2 = # 126 "" ( Some x ) -# 75312 "src/ocaml/preprocess/parser_raw.ml" +# 77136 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75318 "src/ocaml/preprocess/parser_raw.ml" +# 77142 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75323 "src/ocaml/preprocess/parser_raw.ml" +# 77147 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1498 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 75329 "src/ocaml/preprocess/parser_raw.ml" +# 77153 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression list)) in { @@ -75373,7 +77197,7 @@ module Tables = struct let _2 = # 123 "" ( None ) -# 75377 "src/ocaml/preprocess/parser_raw.ml" +# 77201 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -75384,18 +77208,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 75388 "src/ocaml/preprocess/parser_raw.ml" +# 77212 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75393 "src/ocaml/preprocess/parser_raw.ml" +# 77217 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75399 "src/ocaml/preprocess/parser_raw.ml" +# 77223 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -75404,22 +77228,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75410 "src/ocaml/preprocess/parser_raw.ml" +# 77234 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 75416 "src/ocaml/preprocess/parser_raw.ml" +# 77240 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -75432,31 +77256,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 75436 "src/ocaml/preprocess/parser_raw.ml" +# 77260 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75442 "src/ocaml/preprocess/parser_raw.ml" +# 77266 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75448 "src/ocaml/preprocess/parser_raw.ml" +# 77272 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75454 "src/ocaml/preprocess/parser_raw.ml" +# 77278 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1498 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 75460 "src/ocaml/preprocess/parser_raw.ml" +# 77284 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression list)) in { @@ -75511,7 +77335,7 @@ module Tables = struct let _2 = # 126 "" ( Some x ) -# 75515 "src/ocaml/preprocess/parser_raw.ml" +# 77339 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -75522,18 +77346,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 75526 "src/ocaml/preprocess/parser_raw.ml" +# 77350 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75531 "src/ocaml/preprocess/parser_raw.ml" +# 77355 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75537 "src/ocaml/preprocess/parser_raw.ml" +# 77361 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -75542,22 +77366,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75548 "src/ocaml/preprocess/parser_raw.ml" +# 77372 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 75554 "src/ocaml/preprocess/parser_raw.ml" +# 77378 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -75570,31 +77394,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 75574 "src/ocaml/preprocess/parser_raw.ml" +# 77398 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75580 "src/ocaml/preprocess/parser_raw.ml" +# 77404 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75586 "src/ocaml/preprocess/parser_raw.ml" +# 77410 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75592 "src/ocaml/preprocess/parser_raw.ml" +# 77416 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1498 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 75598 "src/ocaml/preprocess/parser_raw.ml" +# 77422 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression list)) in { @@ -75649,7 +77473,7 @@ module Tables = struct let _2 = # 123 "" ( None ) -# 75653 "src/ocaml/preprocess/parser_raw.ml" +# 77477 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -75662,18 +77486,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 75666 "src/ocaml/preprocess/parser_raw.ml" +# 77490 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75671 "src/ocaml/preprocess/parser_raw.ml" +# 77495 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75677 "src/ocaml/preprocess/parser_raw.ml" +# 77501 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -75682,22 +77506,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75688 "src/ocaml/preprocess/parser_raw.ml" +# 77512 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 75694 "src/ocaml/preprocess/parser_raw.ml" +# 77518 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -75710,7 +77534,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 75714 "src/ocaml/preprocess/parser_raw.ml" +# 77538 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -75718,33 +77542,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 75724 "src/ocaml/preprocess/parser_raw.ml" +# 77548 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75730 "src/ocaml/preprocess/parser_raw.ml" +# 77554 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75736 "src/ocaml/preprocess/parser_raw.ml" +# 77560 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75742 "src/ocaml/preprocess/parser_raw.ml" +# 77566 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1498 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 75748 "src/ocaml/preprocess/parser_raw.ml" +# 77572 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression list)) in { @@ -75806,7 +77630,7 @@ module Tables = struct let _2 = # 126 "" ( Some x ) -# 75810 "src/ocaml/preprocess/parser_raw.ml" +# 77634 "src/ocaml/preprocess/parser_raw.ml" in let x = let _1 = @@ -75819,18 +77643,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 75823 "src/ocaml/preprocess/parser_raw.ml" +# 77647 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75828 "src/ocaml/preprocess/parser_raw.ml" +# 77652 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 75834 "src/ocaml/preprocess/parser_raw.ml" +# 77658 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -75839,22 +77663,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75845 "src/ocaml/preprocess/parser_raw.ml" +# 77669 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 75851 "src/ocaml/preprocess/parser_raw.ml" +# 77675 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -75867,7 +77691,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 75871 "src/ocaml/preprocess/parser_raw.ml" +# 77695 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -75875,33 +77699,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 75881 "src/ocaml/preprocess/parser_raw.ml" +# 77705 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75887 "src/ocaml/preprocess/parser_raw.ml" +# 77711 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75893 "src/ocaml/preprocess/parser_raw.ml" +# 77717 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75899 "src/ocaml/preprocess/parser_raw.ml" +# 77723 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1498 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 75905 "src/ocaml/preprocess/parser_raw.ml" +# 77729 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression list)) in { @@ -75941,20 +77765,20 @@ module Tables = struct let _v = let x = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75947 "src/ocaml/preprocess/parser_raw.ml" +# 77771 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 75952 "src/ocaml/preprocess/parser_raw.ml" +# 77776 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1490 "src/ocaml/preprocess/parser_raw.mly" +# 1502 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 75958 "src/ocaml/preprocess/parser_raw.ml" +# 77782 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression list)) in { @@ -76023,18 +77847,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 76027 "src/ocaml/preprocess/parser_raw.ml" +# 77851 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76032 "src/ocaml/preprocess/parser_raw.ml" +# 77856 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76038 "src/ocaml/preprocess/parser_raw.ml" +# 77862 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -76043,22 +77867,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76049 "src/ocaml/preprocess/parser_raw.ml" +# 77873 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 76055 "src/ocaml/preprocess/parser_raw.ml" +# 77879 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -76071,31 +77895,31 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 76075 "src/ocaml/preprocess/parser_raw.ml" +# 77899 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76081 "src/ocaml/preprocess/parser_raw.ml" +# 77905 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76087 "src/ocaml/preprocess/parser_raw.ml" +# 77911 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76093 "src/ocaml/preprocess/parser_raw.ml" +# 77917 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1490 "src/ocaml/preprocess/parser_raw.mly" +# 1502 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 76099 "src/ocaml/preprocess/parser_raw.ml" +# 77923 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression list)) in { @@ -76173,18 +77997,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 76177 "src/ocaml/preprocess/parser_raw.ml" +# 78001 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76182 "src/ocaml/preprocess/parser_raw.ml" +# 78006 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76188 "src/ocaml/preprocess/parser_raw.ml" +# 78012 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -76193,22 +78017,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76199 "src/ocaml/preprocess/parser_raw.ml" +# 78023 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 76205 "src/ocaml/preprocess/parser_raw.ml" +# 78029 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -76221,7 +78045,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 76225 "src/ocaml/preprocess/parser_raw.ml" +# 78049 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -76229,33 +78053,33 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 76235 "src/ocaml/preprocess/parser_raw.ml" +# 78059 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76241 "src/ocaml/preprocess/parser_raw.ml" +# 78065 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76247 "src/ocaml/preprocess/parser_raw.ml" +# 78071 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76253 "src/ocaml/preprocess/parser_raw.ml" +# 78077 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1490 "src/ocaml/preprocess/parser_raw.mly" +# 1502 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 76259 "src/ocaml/preprocess/parser_raw.ml" +# 78083 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression list)) in { @@ -76282,9 +78106,9 @@ module Tables = struct } = _menhir_stack in let oe : (Parsetree.expression option) = Obj.magic oe in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 76288 "src/ocaml/preprocess/parser_raw.ml" +# 78112 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -76293,26 +78117,26 @@ module Tables = struct let _2 = # 123 "" ( None ) -# 76297 "src/ocaml/preprocess/parser_raw.ml" +# 78121 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76304 "src/ocaml/preprocess/parser_raw.ml" +# 78128 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 76312 "src/ocaml/preprocess/parser_raw.ml" +# 78136 "src/ocaml/preprocess/parser_raw.ml" in -# 3657 "src/ocaml/preprocess/parser_raw.mly" +# 3638 "src/ocaml/preprocess/parser_raw.mly" ( let label, e = match oe with | None -> @@ -76322,13 +78146,13 @@ module Tables = struct label, e in label, e ) -# 76326 "src/ocaml/preprocess/parser_raw.ml" +# 78150 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1498 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 76332 "src/ocaml/preprocess/parser_raw.ml" +# 78156 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Parsetree.expression) list)) in { @@ -76362,9 +78186,9 @@ module Tables = struct let x : unit = Obj.magic x in let oe : (Parsetree.expression option) = Obj.magic oe in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 76368 "src/ocaml/preprocess/parser_raw.ml" +# 78192 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -76373,26 +78197,26 @@ module Tables = struct let _2 = # 126 "" ( Some x ) -# 76377 "src/ocaml/preprocess/parser_raw.ml" +# 78201 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76384 "src/ocaml/preprocess/parser_raw.ml" +# 78208 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 76392 "src/ocaml/preprocess/parser_raw.ml" +# 78216 "src/ocaml/preprocess/parser_raw.ml" in -# 3657 "src/ocaml/preprocess/parser_raw.mly" +# 3638 "src/ocaml/preprocess/parser_raw.mly" ( let label, e = match oe with | None -> @@ -76402,13 +78226,13 @@ module Tables = struct label, e in label, e ) -# 76406 "src/ocaml/preprocess/parser_raw.ml" +# 78230 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1498 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 76412 "src/ocaml/preprocess/parser_raw.ml" +# 78236 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Parsetree.expression) list)) in { @@ -76449,9 +78273,9 @@ module Tables = struct let _2 : unit = Obj.magic _2 in let oe : (Parsetree.expression option) = Obj.magic oe in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 76455 "src/ocaml/preprocess/parser_raw.ml" +# 78279 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -76460,21 +78284,21 @@ module Tables = struct let x = let label = let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76466 "src/ocaml/preprocess/parser_raw.ml" +# 78290 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 76474 "src/ocaml/preprocess/parser_raw.ml" +# 78298 "src/ocaml/preprocess/parser_raw.ml" in -# 3657 "src/ocaml/preprocess/parser_raw.mly" +# 3638 "src/ocaml/preprocess/parser_raw.mly" ( let label, e = match oe with | None -> @@ -76484,13 +78308,13 @@ module Tables = struct label, e in label, e ) -# 76488 "src/ocaml/preprocess/parser_raw.ml" +# 78312 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1490 "src/ocaml/preprocess/parser_raw.mly" +# 1502 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 76494 "src/ocaml/preprocess/parser_raw.ml" +# 78318 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Parsetree.expression) list)) in { @@ -76517,12 +78341,12 @@ module Tables = struct let _2 = # 123 "" ( None ) -# 76521 "src/ocaml/preprocess/parser_raw.ml" +# 78345 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1498 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 76526 "src/ocaml/preprocess/parser_raw.ml" +# 78350 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern list)) in { @@ -76558,13 +78382,13 @@ module Tables = struct # 126 "" ( Some x ) -# 76562 "src/ocaml/preprocess/parser_raw.ml" +# 78386 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1498 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 76568 "src/ocaml/preprocess/parser_raw.ml" +# 78392 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern list)) in { @@ -76602,9 +78426,9 @@ module Tables = struct let _startpos = _startpos_x_ in let _endpos = _endpos_xs_ in let _v : (Parsetree.pattern list) = -# 1490 "src/ocaml/preprocess/parser_raw.mly" +# 1502 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 76608 "src/ocaml/preprocess/parser_raw.ml" +# 78432 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -76644,7 +78468,7 @@ module Tables = struct let _2 = # 123 "" ( None ) -# 76648 "src/ocaml/preprocess/parser_raw.ml" +# 78472 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = @@ -76652,9 +78476,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 76658 "src/ocaml/preprocess/parser_raw.ml" +# 78482 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -76662,7 +78486,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3640 "src/ocaml/preprocess/parser_raw.mly" +# 3621 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -76672,13 +78496,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint_with_modes ~loc:constraint_loc ~modes:[] e c ) -# 76676 "src/ocaml/preprocess/parser_raw.ml" +# 78500 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1498 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 76682 "src/ocaml/preprocess/parser_raw.ml" +# 78506 "src/ocaml/preprocess/parser_raw.ml" : ((Longident.t Location.loc * Parsetree.expression) list)) in { @@ -76726,7 +78550,7 @@ module Tables = struct let _2 = # 126 "" ( Some x ) -# 76730 "src/ocaml/preprocess/parser_raw.ml" +# 78554 "src/ocaml/preprocess/parser_raw.ml" in let x = let label = @@ -76734,9 +78558,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 76740 "src/ocaml/preprocess/parser_raw.ml" +# 78564 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -76744,7 +78568,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3640 "src/ocaml/preprocess/parser_raw.mly" +# 3621 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -76754,13 +78578,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint_with_modes ~loc:constraint_loc ~modes:[] e c ) -# 76758 "src/ocaml/preprocess/parser_raw.ml" +# 78582 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1486 "src/ocaml/preprocess/parser_raw.mly" +# 1498 "src/ocaml/preprocess/parser_raw.mly" ( [x] ) -# 76764 "src/ocaml/preprocess/parser_raw.ml" +# 78588 "src/ocaml/preprocess/parser_raw.ml" : ((Longident.t Location.loc * Parsetree.expression) list)) in { @@ -76818,9 +78642,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 76824 "src/ocaml/preprocess/parser_raw.ml" +# 78648 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_label_ = _startpos__1_ in @@ -76828,7 +78652,7 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in -# 3640 "src/ocaml/preprocess/parser_raw.mly" +# 3621 "src/ocaml/preprocess/parser_raw.mly" ( let constraint_loc, label, e = match eo with | None -> @@ -76838,13 +78662,13 @@ module Tables = struct (_startpos_c_, _endpos), label, e in label, mkexp_opt_type_constraint_with_modes ~loc:constraint_loc ~modes:[] e c ) -# 76842 "src/ocaml/preprocess/parser_raw.ml" +# 78666 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1490 "src/ocaml/preprocess/parser_raw.mly" +# 1502 "src/ocaml/preprocess/parser_raw.mly" ( x :: xs ) -# 76848 "src/ocaml/preprocess/parser_raw.ml" +# 78672 "src/ocaml/preprocess/parser_raw.ml" : ((Longident.t Location.loc * Parsetree.expression) list)) in { @@ -76869,14 +78693,14 @@ module Tables = struct let _endpos = _endpos__1_ in let _v = let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76875 "src/ocaml/preprocess/parser_raw.ml" +# 78699 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2755 "src/ocaml/preprocess/parser_raw.mly" +# 2782 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76880 "src/ocaml/preprocess/parser_raw.ml" +# 78704 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -76929,18 +78753,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 76933 "src/ocaml/preprocess/parser_raw.ml" +# 78757 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76938 "src/ocaml/preprocess/parser_raw.ml" +# 78762 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 76944 "src/ocaml/preprocess/parser_raw.ml" +# 78768 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -76949,22 +78773,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76955 "src/ocaml/preprocess/parser_raw.ml" +# 78779 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 76961 "src/ocaml/preprocess/parser_raw.ml" +# 78785 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -76977,25 +78801,25 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 76981 "src/ocaml/preprocess/parser_raw.ml" +# 78805 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76987 "src/ocaml/preprocess/parser_raw.ml" +# 78811 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76993 "src/ocaml/preprocess/parser_raw.ml" +# 78817 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2755 "src/ocaml/preprocess/parser_raw.mly" +# 2782 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 76999 "src/ocaml/preprocess/parser_raw.ml" +# 78823 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -77057,18 +78881,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 77061 "src/ocaml/preprocess/parser_raw.ml" +# 78885 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 77066 "src/ocaml/preprocess/parser_raw.ml" +# 78890 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 77072 "src/ocaml/preprocess/parser_raw.ml" +# 78896 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -77077,22 +78901,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77083 "src/ocaml/preprocess/parser_raw.ml" +# 78907 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 77089 "src/ocaml/preprocess/parser_raw.ml" +# 78913 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -77105,7 +78929,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 77109 "src/ocaml/preprocess/parser_raw.ml" +# 78933 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -77113,27 +78937,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 77119 "src/ocaml/preprocess/parser_raw.ml" +# 78943 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77125 "src/ocaml/preprocess/parser_raw.ml" +# 78949 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77131 "src/ocaml/preprocess/parser_raw.ml" +# 78955 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2755 "src/ocaml/preprocess/parser_raw.mly" +# 2782 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77137 "src/ocaml/preprocess/parser_raw.ml" +# 78961 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -77203,18 +79027,18 @@ module Tables = struct let attrs = let _1 = _1_inlined4 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77209 "src/ocaml/preprocess/parser_raw.ml" +# 79033 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined4_ in let attrs2 = let _1 = _1_inlined3 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77218 "src/ocaml/preprocess/parser_raw.ml" +# 79042 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -77224,17 +79048,17 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 77230 "src/ocaml/preprocess/parser_raw.ml" +# 79054 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77238 "src/ocaml/preprocess/parser_raw.ml" +# 79062 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs_ in @@ -77242,14 +79066,14 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4316 "src/ocaml/preprocess/parser_raw.mly" +# 4290 "src/ocaml/preprocess/parser_raw.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 ) -# 77253 "src/ocaml/preprocess/parser_raw.ml" +# 79077 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_exception * string Location.loc option)) in { @@ -77284,15 +79108,15 @@ module Tables = struct let _1 = # 271 "" ( List.flatten xss ) -# 77288 "src/ocaml/preprocess/parser_raw.ml" +# 79112 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1289 "src/ocaml/preprocess/parser_raw.mly" +# 1301 "src/ocaml/preprocess/parser_raw.mly" ( extra_sig _startpos _endpos _1 ) -# 77296 "src/ocaml/preprocess/parser_raw.ml" +# 79120 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__2_, _startpos__2_) = (_endpos_xss_, _startpos_xss_) in @@ -77306,11 +79130,11 @@ module Tables = struct _endpos in let _sloc = (_symbolstartpos, _endpos) in ( -# 2133 "src/ocaml/preprocess/parser_raw.mly" +# 2158 "src/ocaml/preprocess/parser_raw.mly" ( { psg_modalities = _1; psg_items = _2; psg_loc = make_loc _sloc; } ) -# 77314 "src/ocaml/preprocess/parser_raw.ml" +# 79138 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature)) in { @@ -77344,9 +79168,9 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77350 "src/ocaml/preprocess/parser_raw.ml" +# 79174 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -77354,10 +79178,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2150 "src/ocaml/preprocess/parser_raw.mly" +# 2175 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in mksig ~loc:_sloc (Psig_extension (_1, (add_docs_attrs docs _2))) ) -# 77361 "src/ocaml/preprocess/parser_raw.ml" +# 79185 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -77383,23 +79207,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 2154 "src/ocaml/preprocess/parser_raw.mly" +# 2179 "src/ocaml/preprocess/parser_raw.mly" ( Psig_attribute _1 ) -# 77389 "src/ocaml/preprocess/parser_raw.ml" +# 79213 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1337 "src/ocaml/preprocess/parser_raw.mly" +# 1349 "src/ocaml/preprocess/parser_raw.mly" ( mksig ~loc:_sloc _1 ) -# 77397 "src/ocaml/preprocess/parser_raw.ml" +# 79221 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2160 "src/ocaml/preprocess/parser_raw.mly" +# 2185 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77403 "src/ocaml/preprocess/parser_raw.ml" +# 79227 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -77425,25 +79249,25 @@ module Tables = struct let _v = let _1 = let _1 = -# 2156 "src/ocaml/preprocess/parser_raw.mly" +# 2181 "src/ocaml/preprocess/parser_raw.mly" ( let name, jkind = _1 in Psig_kind_abbrev (name, jkind) ) -# 77433 "src/ocaml/preprocess/parser_raw.ml" +# 79257 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1337 "src/ocaml/preprocess/parser_raw.mly" +# 1349 "src/ocaml/preprocess/parser_raw.mly" ( mksig ~loc:_sloc _1 ) -# 77441 "src/ocaml/preprocess/parser_raw.ml" +# 79265 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2160 "src/ocaml/preprocess/parser_raw.mly" +# 2185 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77447 "src/ocaml/preprocess/parser_raw.ml" +# 79271 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -77469,23 +79293,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 2163 "src/ocaml/preprocess/parser_raw.mly" +# 2188 "src/ocaml/preprocess/parser_raw.mly" ( psig_value _1 ) -# 77475 "src/ocaml/preprocess/parser_raw.ml" +# 79299 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 77483 "src/ocaml/preprocess/parser_raw.ml" +# 79307 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77489 "src/ocaml/preprocess/parser_raw.ml" +# 79313 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -77511,23 +79335,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 2165 "src/ocaml/preprocess/parser_raw.mly" +# 2190 "src/ocaml/preprocess/parser_raw.mly" ( psig_value _1 ) -# 77517 "src/ocaml/preprocess/parser_raw.ml" +# 79341 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 77525 "src/ocaml/preprocess/parser_raw.ml" +# 79349 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77531 "src/ocaml/preprocess/parser_raw.ml" +# 79355 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -77564,26 +79388,26 @@ module Tables = struct let _1 = let _1 = let _1 = -# 1547 "src/ocaml/preprocess/parser_raw.mly" +# 1559 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 77570 "src/ocaml/preprocess/parser_raw.ml" +# 79394 "src/ocaml/preprocess/parser_raw.ml" in -# 4048 "src/ocaml/preprocess/parser_raw.mly" +# 4022 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77575 "src/ocaml/preprocess/parser_raw.ml" +# 79399 "src/ocaml/preprocess/parser_raw.ml" in -# 4031 "src/ocaml/preprocess/parser_raw.mly" +# 4005 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77581 "src/ocaml/preprocess/parser_raw.ml" +# 79405 "src/ocaml/preprocess/parser_raw.ml" in -# 2167 "src/ocaml/preprocess/parser_raw.mly" +# 2192 "src/ocaml/preprocess/parser_raw.mly" ( psig_type _1 ) -# 77587 "src/ocaml/preprocess/parser_raw.ml" +# 79411 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -77591,15 +79415,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 77597 "src/ocaml/preprocess/parser_raw.ml" +# 79421 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77603 "src/ocaml/preprocess/parser_raw.ml" +# 79427 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -77636,26 +79460,26 @@ module Tables = struct let _1 = let _1 = let _1 = -# 1547 "src/ocaml/preprocess/parser_raw.mly" +# 1559 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 77642 "src/ocaml/preprocess/parser_raw.ml" +# 79466 "src/ocaml/preprocess/parser_raw.ml" in -# 4048 "src/ocaml/preprocess/parser_raw.mly" +# 4022 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77647 "src/ocaml/preprocess/parser_raw.ml" +# 79471 "src/ocaml/preprocess/parser_raw.ml" in -# 4036 "src/ocaml/preprocess/parser_raw.mly" +# 4010 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77653 "src/ocaml/preprocess/parser_raw.ml" +# 79477 "src/ocaml/preprocess/parser_raw.ml" in -# 2169 "src/ocaml/preprocess/parser_raw.mly" +# 2194 "src/ocaml/preprocess/parser_raw.mly" ( psig_typesubst _1 ) -# 77659 "src/ocaml/preprocess/parser_raw.ml" +# 79483 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -77663,15 +79487,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 77669 "src/ocaml/preprocess/parser_raw.ml" +# 79493 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77675 "src/ocaml/preprocess/parser_raw.ml" +# 79499 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -77758,16 +79582,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77764 "src/ocaml/preprocess/parser_raw.ml" +# 79588 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let cs = -# 1539 "src/ocaml/preprocess/parser_raw.mly" +# 1551 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 77771 "src/ocaml/preprocess/parser_raw.ml" +# 79595 "src/ocaml/preprocess/parser_raw.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -77775,46 +79599,46 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 77781 "src/ocaml/preprocess/parser_raw.ml" +# 79605 "src/ocaml/preprocess/parser_raw.ml" in let _4 = -# 5237 "src/ocaml/preprocess/parser_raw.mly" +# 5236 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 77787 "src/ocaml/preprocess/parser_raw.ml" +# 79611 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77794 "src/ocaml/preprocess/parser_raw.ml" +# 79618 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4402 "src/ocaml/preprocess/parser_raw.mly" +# 4376 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 77806 "src/ocaml/preprocess/parser_raw.ml" +# 79630 "src/ocaml/preprocess/parser_raw.ml" in -# 4389 "src/ocaml/preprocess/parser_raw.mly" +# 4363 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77812 "src/ocaml/preprocess/parser_raw.ml" +# 79636 "src/ocaml/preprocess/parser_raw.ml" in -# 2171 "src/ocaml/preprocess/parser_raw.mly" +# 2196 "src/ocaml/preprocess/parser_raw.mly" ( psig_typext _1 ) -# 77818 "src/ocaml/preprocess/parser_raw.ml" +# 79642 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -77822,15 +79646,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 77828 "src/ocaml/preprocess/parser_raw.ml" +# 79652 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77834 "src/ocaml/preprocess/parser_raw.ml" +# 79658 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -77924,16 +79748,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77930 "src/ocaml/preprocess/parser_raw.ml" +# 79754 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in let cs = -# 1539 "src/ocaml/preprocess/parser_raw.mly" +# 1551 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 77937 "src/ocaml/preprocess/parser_raw.ml" +# 79761 "src/ocaml/preprocess/parser_raw.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in @@ -77941,9 +79765,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 77947 "src/ocaml/preprocess/parser_raw.ml" +# 79771 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -77952,41 +79776,41 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 5239 "src/ocaml/preprocess/parser_raw.mly" +# 5238 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "nonrec flag"; Recursive ) -# 77958 "src/ocaml/preprocess/parser_raw.ml" +# 79782 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77966 "src/ocaml/preprocess/parser_raw.ml" +# 79790 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4402 "src/ocaml/preprocess/parser_raw.mly" +# 4376 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 77978 "src/ocaml/preprocess/parser_raw.ml" +# 79802 "src/ocaml/preprocess/parser_raw.ml" in -# 4389 "src/ocaml/preprocess/parser_raw.mly" +# 4363 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 77984 "src/ocaml/preprocess/parser_raw.ml" +# 79808 "src/ocaml/preprocess/parser_raw.ml" in -# 2171 "src/ocaml/preprocess/parser_raw.mly" +# 2196 "src/ocaml/preprocess/parser_raw.mly" ( psig_typext _1 ) -# 77990 "src/ocaml/preprocess/parser_raw.ml" +# 79814 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -77994,15 +79818,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 78000 "src/ocaml/preprocess/parser_raw.ml" +# 79824 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78006 "src/ocaml/preprocess/parser_raw.ml" +# 79830 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -78028,23 +79852,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 2173 "src/ocaml/preprocess/parser_raw.mly" +# 2198 "src/ocaml/preprocess/parser_raw.mly" ( psig_exception _1 ) -# 78034 "src/ocaml/preprocess/parser_raw.ml" +# 79858 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 78042 "src/ocaml/preprocess/parser_raw.ml" +# 79866 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78048 "src/ocaml/preprocess/parser_raw.ml" +# 79872 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -78109,25 +79933,25 @@ module Tables = struct let attrs2 = let _1 = _1_inlined2 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78115 "src/ocaml/preprocess/parser_raw.ml" +# 79939 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78124 "src/ocaml/preprocess/parser_raw.ml" +# 79948 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2207 "src/ocaml/preprocess/parser_raw.mly" +# 2234 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -78137,13 +79961,13 @@ module Tables = struct let modalities = modalities' @ modalities in Md.mk name mty ~attrs ~loc ~docs ~modalities, ext ) -# 78141 "src/ocaml/preprocess/parser_raw.ml" +# 79965 "src/ocaml/preprocess/parser_raw.ml" in -# 2175 "src/ocaml/preprocess/parser_raw.mly" +# 2200 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_module body, ext) ) -# 78147 "src/ocaml/preprocess/parser_raw.ml" +# 79971 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -78151,15 +79975,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 78157 "src/ocaml/preprocess/parser_raw.ml" +# 79981 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78163 "src/ocaml/preprocess/parser_raw.ml" +# 79987 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -78238,9 +80062,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78244 "src/ocaml/preprocess/parser_raw.ml" +# 80068 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -78251,9 +80075,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 78257 "src/ocaml/preprocess/parser_raw.ml" +# 80081 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_id_, _startpos_id_) = (_endpos__1_, _startpos__1_) in @@ -78261,24 +80085,24 @@ module Tables = struct let _symbolstartpos = _startpos_id_ in let _sloc = (_symbolstartpos, _endpos) in -# 2255 "src/ocaml/preprocess/parser_raw.mly" +# 2282 "src/ocaml/preprocess/parser_raw.mly" ( Mty.alias ~loc:(make_loc _sloc) id ) -# 78267 "src/ocaml/preprocess/parser_raw.ml" +# 80091 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78275 "src/ocaml/preprocess/parser_raw.ml" +# 80099 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2244 "src/ocaml/preprocess/parser_raw.mly" +# 2271 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -78287,13 +80111,13 @@ module Tables = struct let modalities = modalities' @ modalities in Md.mk name body ~attrs ~modalities ~loc ~docs, ext ) -# 78291 "src/ocaml/preprocess/parser_raw.ml" +# 80115 "src/ocaml/preprocess/parser_raw.ml" in -# 2177 "src/ocaml/preprocess/parser_raw.mly" +# 2202 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_module body, ext) ) -# 78297 "src/ocaml/preprocess/parser_raw.ml" +# 80121 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -78301,15 +80125,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 78307 "src/ocaml/preprocess/parser_raw.ml" +# 80131 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78313 "src/ocaml/preprocess/parser_raw.ml" +# 80137 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -78335,23 +80159,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 2179 "src/ocaml/preprocess/parser_raw.mly" +# 2204 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modsubst body, ext) ) -# 78341 "src/ocaml/preprocess/parser_raw.ml" +# 80165 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 78349 "src/ocaml/preprocess/parser_raw.ml" +# 80173 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78355 "src/ocaml/preprocess/parser_raw.ml" +# 80179 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -78446,9 +80270,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78452 "src/ocaml/preprocess/parser_raw.ml" +# 80276 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -78458,49 +80282,49 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 78464 "src/ocaml/preprocess/parser_raw.ml" +# 80288 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78472 "src/ocaml/preprocess/parser_raw.ml" +# 80296 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2292 "src/ocaml/preprocess/parser_raw.mly" +# 2319 "src/ocaml/preprocess/parser_raw.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 ~modalities ) -# 78486 "src/ocaml/preprocess/parser_raw.ml" +# 80310 "src/ocaml/preprocess/parser_raw.ml" in -# 1547 "src/ocaml/preprocess/parser_raw.mly" +# 1559 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 78492 "src/ocaml/preprocess/parser_raw.ml" +# 80316 "src/ocaml/preprocess/parser_raw.ml" in -# 2280 "src/ocaml/preprocess/parser_raw.mly" +# 2307 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78498 "src/ocaml/preprocess/parser_raw.ml" +# 80322 "src/ocaml/preprocess/parser_raw.ml" in -# 2181 "src/ocaml/preprocess/parser_raw.mly" +# 2206 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_recmodule l, ext) ) -# 78504 "src/ocaml/preprocess/parser_raw.ml" +# 80328 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_bs_ in @@ -78508,15 +80332,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 78514 "src/ocaml/preprocess/parser_raw.ml" +# 80338 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78520 "src/ocaml/preprocess/parser_raw.ml" +# 80344 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -78542,23 +80366,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 2183 "src/ocaml/preprocess/parser_raw.mly" +# 2208 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modtype body, ext) ) -# 78548 "src/ocaml/preprocess/parser_raw.ml" +# 80372 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 78556 "src/ocaml/preprocess/parser_raw.ml" +# 80380 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78562 "src/ocaml/preprocess/parser_raw.ml" +# 80386 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -78584,23 +80408,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 2185 "src/ocaml/preprocess/parser_raw.mly" +# 2210 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_modtypesubst body, ext) ) -# 78590 "src/ocaml/preprocess/parser_raw.ml" +# 80414 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 78598 "src/ocaml/preprocess/parser_raw.ml" +# 80422 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78604 "src/ocaml/preprocess/parser_raw.ml" +# 80428 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -78626,23 +80450,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 2187 "src/ocaml/preprocess/parser_raw.mly" +# 2212 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Psig_open body, ext) ) -# 78632 "src/ocaml/preprocess/parser_raw.ml" +# 80456 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 78640 "src/ocaml/preprocess/parser_raw.ml" +# 80464 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78646 "src/ocaml/preprocess/parser_raw.ml" +# 80470 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -78720,9 +80544,9 @@ module Tables = struct let cty : (Parsetree.class_type) = Obj.magic cty in let _7 : unit = Obj.magic _7 in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 78726 "src/ocaml/preprocess/parser_raw.ml" +# 80550 "src/ocaml/preprocess/parser_raw.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 @@ -78741,9 +80565,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78747 "src/ocaml/preprocess/parser_raw.ml" +# 80571 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -78753,24 +80577,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 78759 "src/ocaml/preprocess/parser_raw.ml" +# 80583 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78767 "src/ocaml/preprocess/parser_raw.ml" +# 80591 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2647 "src/ocaml/preprocess/parser_raw.mly" +# 2674 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -78778,25 +80602,25 @@ module Tables = struct ext, Ci.mk id cty ~virt ~params ~attrs ~loc ~docs ) -# 78782 "src/ocaml/preprocess/parser_raw.ml" +# 80606 "src/ocaml/preprocess/parser_raw.ml" in -# 1547 "src/ocaml/preprocess/parser_raw.mly" +# 1559 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 78788 "src/ocaml/preprocess/parser_raw.ml" +# 80612 "src/ocaml/preprocess/parser_raw.ml" in -# 2635 "src/ocaml/preprocess/parser_raw.mly" +# 2662 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78794 "src/ocaml/preprocess/parser_raw.ml" +# 80618 "src/ocaml/preprocess/parser_raw.ml" in -# 2189 "src/ocaml/preprocess/parser_raw.mly" +# 2214 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_class l, ext) ) -# 78800 "src/ocaml/preprocess/parser_raw.ml" +# 80624 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_bs_ in @@ -78804,15 +80628,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 78810 "src/ocaml/preprocess/parser_raw.ml" +# 80634 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78816 "src/ocaml/preprocess/parser_raw.ml" +# 80640 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -78838,23 +80662,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 2191 "src/ocaml/preprocess/parser_raw.mly" +# 2216 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Psig_class_type l, ext) ) -# 78844 "src/ocaml/preprocess/parser_raw.ml" +# 80668 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1354 "src/ocaml/preprocess/parser_raw.mly" +# 1366 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mksig_ext ~loc:_sloc _1 ) -# 78852 "src/ocaml/preprocess/parser_raw.ml" +# 80676 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2193 "src/ocaml/preprocess/parser_raw.mly" +# 2218 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78858 "src/ocaml/preprocess/parser_raw.ml" +# 80682 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -78917,22 +80741,22 @@ module Tables = struct let attrs2 = let _1 = _1_inlined1 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78923 "src/ocaml/preprocess/parser_raw.ml" +# 80747 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined1_ in let attrs1 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78930 "src/ocaml/preprocess/parser_raw.ml" +# 80754 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos_kind_ in let _sloc = (_symbolstartpos, _endpos) in -# 2005 "src/ocaml/preprocess/parser_raw.mly" +# 2025 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -78940,7 +80764,7 @@ module Tables = struct let incl = Incl.mk ~kind thing ~attrs ~loc ~docs in incl, ext ) -# 78944 "src/ocaml/preprocess/parser_raw.ml" +# 80768 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_kind_ in @@ -78948,12 +80772,12 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2195 "src/ocaml/preprocess/parser_raw.mly" +# 2220 "src/ocaml/preprocess/parser_raw.mly" ( let incl, ext = _1 in let item = mksig ~loc:_sloc (Psig_include (incl, modalities)) in wrap_sig_ext ~loc:_sloc item ext ) -# 78957 "src/ocaml/preprocess/parser_raw.ml" +# 80781 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.signature_item)) in { @@ -78977,9 +80801,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5044 "src/ocaml/preprocess/parser_raw.mly" +# 5043 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 78983 "src/ocaml/preprocess/parser_raw.ml" +# 80807 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79002,9 +80826,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5045 "src/ocaml/preprocess/parser_raw.mly" +# 5044 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79008 "src/ocaml/preprocess/parser_raw.ml" +# 80832 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79029,9 +80853,9 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 1079 "src/ocaml/preprocess/parser_raw.mly" +# 1091 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 79035 "src/ocaml/preprocess/parser_raw.ml" +# 80859 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -79043,9 +80867,9 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in ( -# 5046 "src/ocaml/preprocess/parser_raw.mly" +# 5045 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _loc__2_ Negative _2 ) -# 79049 "src/ocaml/preprocess/parser_raw.ml" +# 80873 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constant)) in { @@ -79071,18 +80895,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 1052 "src/ocaml/preprocess/parser_raw.mly" +# 1064 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 79077 "src/ocaml/preprocess/parser_raw.ml" +# 80901 "src/ocaml/preprocess/parser_raw.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) = -# 5047 "src/ocaml/preprocess/parser_raw.mly" +# 5046 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Negative _2 ) -# 79086 "src/ocaml/preprocess/parser_raw.ml" +# 80910 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79107,9 +80931,9 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 1079 "src/ocaml/preprocess/parser_raw.mly" +# 1091 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 79113 "src/ocaml/preprocess/parser_raw.ml" +# 80937 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -79121,9 +80945,9 @@ module Tables = struct let _loc__2_ = (_startpos__2_, _endpos__2_) in let _sloc = (_symbolstartpos, _endpos) in ( -# 5048 "src/ocaml/preprocess/parser_raw.mly" +# 5047 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _loc__2_ Positive _2 ) -# 79127 "src/ocaml/preprocess/parser_raw.ml" +# 80951 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constant)) in { @@ -79149,18 +80973,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 1052 "src/ocaml/preprocess/parser_raw.mly" +# 1064 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 79155 "src/ocaml/preprocess/parser_raw.ml" +# 80979 "src/ocaml/preprocess/parser_raw.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) = -# 5049 "src/ocaml/preprocess/parser_raw.mly" +# 5048 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Positive _2 ) -# 79164 "src/ocaml/preprocess/parser_raw.ml" +# 80988 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79183,9 +81007,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.constant) = -# 5037 "src/ocaml/preprocess/parser_raw.mly" +# 5036 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79189 "src/ocaml/preprocess/parser_raw.ml" +# 81013 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79210,18 +81034,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 1078 "src/ocaml/preprocess/parser_raw.mly" +# 1090 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 79216 "src/ocaml/preprocess/parser_raw.ml" +# 81040 "src/ocaml/preprocess/parser_raw.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) = -# 5038 "src/ocaml/preprocess/parser_raw.mly" +# 5037 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _2 in Pconst_integer("-" ^ n, m) ) -# 79225 "src/ocaml/preprocess/parser_raw.ml" +# 81049 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79246,18 +81070,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 1051 "src/ocaml/preprocess/parser_raw.mly" +# 1063 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 79252 "src/ocaml/preprocess/parser_raw.ml" +# 81076 "src/ocaml/preprocess/parser_raw.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) = -# 5039 "src/ocaml/preprocess/parser_raw.mly" +# 5038 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _2 in Pconst_float("-" ^ f, m) ) -# 79261 "src/ocaml/preprocess/parser_raw.ml" +# 81085 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79282,18 +81106,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 1078 "src/ocaml/preprocess/parser_raw.mly" +# 1090 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 79288 "src/ocaml/preprocess/parser_raw.ml" +# 81112 "src/ocaml/preprocess/parser_raw.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) = -# 5040 "src/ocaml/preprocess/parser_raw.mly" +# 5039 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _2 in Pconst_integer (n, m) ) -# 79297 "src/ocaml/preprocess/parser_raw.ml" +# 81121 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79318,18 +81142,18 @@ module Tables = struct }; } = _menhir_stack in let _2 : ( -# 1051 "src/ocaml/preprocess/parser_raw.mly" +# 1063 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 79324 "src/ocaml/preprocess/parser_raw.ml" +# 81148 "src/ocaml/preprocess/parser_raw.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) = -# 5041 "src/ocaml/preprocess/parser_raw.mly" +# 5040 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _2 in Pconst_float(f, m) ) -# 79333 "src/ocaml/preprocess/parser_raw.ml" +# 81157 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -79371,18 +81195,18 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 3958 "src/ocaml/preprocess/parser_raw.mly" +# 3932 "src/ocaml/preprocess/parser_raw.mly" ( let fields, closed = _1 in let closed = match closed with Some () -> Open | None -> Closed in fields, closed ) -# 79379 "src/ocaml/preprocess/parser_raw.ml" +# 81203 "src/ocaml/preprocess/parser_raw.ml" in -# 3922 "src/ocaml/preprocess/parser_raw.mly" +# 3896 "src/ocaml/preprocess/parser_raw.mly" ( let (fields, closed) = _2 in Ppat_record(fields, closed) ) -# 79386 "src/ocaml/preprocess/parser_raw.ml" +# 81210 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -79390,15 +81214,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 79396 "src/ocaml/preprocess/parser_raw.ml" +# 81220 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3948 "src/ocaml/preprocess/parser_raw.mly" +# 3922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79402 "src/ocaml/preprocess/parser_raw.ml" +# 81226 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -79441,18 +81265,18 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 3958 "src/ocaml/preprocess/parser_raw.mly" +# 3932 "src/ocaml/preprocess/parser_raw.mly" ( let fields, closed = _1 in let closed = match closed with Some () -> Open | None -> Closed in fields, closed ) -# 79449 "src/ocaml/preprocess/parser_raw.ml" +# 81273 "src/ocaml/preprocess/parser_raw.ml" in -# 3925 "src/ocaml/preprocess/parser_raw.mly" +# 3899 "src/ocaml/preprocess/parser_raw.mly" ( let (fields, closed) = _2 in Ppat_record_unboxed_product(fields, closed) ) -# 79456 "src/ocaml/preprocess/parser_raw.ml" +# 81280 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -79460,15 +81284,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 79466 "src/ocaml/preprocess/parser_raw.ml" +# 81290 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3948 "src/ocaml/preprocess/parser_raw.mly" +# 3922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79472 "src/ocaml/preprocess/parser_raw.ml" +# 81296 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -79509,15 +81333,15 @@ module Tables = struct let _1 = let _1 = let _2 = -# 3952 "src/ocaml/preprocess/parser_raw.mly" +# 3926 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 79515 "src/ocaml/preprocess/parser_raw.ml" +# 81339 "src/ocaml/preprocess/parser_raw.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3930 "src/ocaml/preprocess/parser_raw.mly" +# 3904 "src/ocaml/preprocess/parser_raw.mly" ( fst (mktailpat _loc__3_ _2) ) -# 79521 "src/ocaml/preprocess/parser_raw.ml" +# 81345 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -79525,15 +81349,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 79531 "src/ocaml/preprocess/parser_raw.ml" +# 81355 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3948 "src/ocaml/preprocess/parser_raw.mly" +# 3922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79537 "src/ocaml/preprocess/parser_raw.ml" +# 81361 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -79576,30 +81400,30 @@ module Tables = struct let _1 = let _1 = let _2 = -# 3952 "src/ocaml/preprocess/parser_raw.mly" +# 3926 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 79582 "src/ocaml/preprocess/parser_raw.ml" +# 81406 "src/ocaml/preprocess/parser_raw.ml" in -# 3172 "src/ocaml/preprocess/parser_raw.mly" +# 3148 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 79587 "src/ocaml/preprocess/parser_raw.ml" +# 81411 "src/ocaml/preprocess/parser_raw.ml" in -# 3199 "src/ocaml/preprocess/parser_raw.mly" +# 3175 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79593 "src/ocaml/preprocess/parser_raw.ml" +# 81417 "src/ocaml/preprocess/parser_raw.ml" in -# 3934 "src/ocaml/preprocess/parser_raw.mly" +# 3908 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Pattern.to_ast "[|" "|]" Mutable _1 ) -# 79603 "src/ocaml/preprocess/parser_raw.ml" +# 81427 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -79607,15 +81431,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 79613 "src/ocaml/preprocess/parser_raw.ml" +# 81437 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3948 "src/ocaml/preprocess/parser_raw.mly" +# 3922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79619 "src/ocaml/preprocess/parser_raw.ml" +# 81443 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -79650,24 +81474,24 @@ module Tables = struct let _1 = let _1 = let _1 = -# 3178 "src/ocaml/preprocess/parser_raw.mly" +# 3154 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 79656 "src/ocaml/preprocess/parser_raw.ml" +# 81480 "src/ocaml/preprocess/parser_raw.ml" in -# 3199 "src/ocaml/preprocess/parser_raw.mly" +# 3175 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79661 "src/ocaml/preprocess/parser_raw.ml" +# 81485 "src/ocaml/preprocess/parser_raw.ml" in -# 3934 "src/ocaml/preprocess/parser_raw.mly" +# 3908 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Pattern.to_ast "[|" "|]" Mutable _1 ) -# 79671 "src/ocaml/preprocess/parser_raw.ml" +# 81495 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -79675,15 +81499,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 79681 "src/ocaml/preprocess/parser_raw.ml" +# 81505 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3948 "src/ocaml/preprocess/parser_raw.mly" +# 3922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79687 "src/ocaml/preprocess/parser_raw.ml" +# 81511 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -79726,30 +81550,30 @@ module Tables = struct let _1 = let _1 = let _2 = -# 3952 "src/ocaml/preprocess/parser_raw.mly" +# 3926 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 79732 "src/ocaml/preprocess/parser_raw.ml" +# 81556 "src/ocaml/preprocess/parser_raw.ml" in -# 3172 "src/ocaml/preprocess/parser_raw.mly" +# 3148 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 79737 "src/ocaml/preprocess/parser_raw.ml" +# 81561 "src/ocaml/preprocess/parser_raw.ml" in -# 3199 "src/ocaml/preprocess/parser_raw.mly" +# 3175 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79743 "src/ocaml/preprocess/parser_raw.ml" +# 81567 "src/ocaml/preprocess/parser_raw.ml" in -# 3940 "src/ocaml/preprocess/parser_raw.mly" +# 3914 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Pattern.to_ast "[:" ":]" Immutable _1 ) -# 79753 "src/ocaml/preprocess/parser_raw.ml" +# 81577 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -79757,15 +81581,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 79763 "src/ocaml/preprocess/parser_raw.ml" +# 81587 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3948 "src/ocaml/preprocess/parser_raw.mly" +# 3922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79769 "src/ocaml/preprocess/parser_raw.ml" +# 81593 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -79800,24 +81624,24 @@ module Tables = struct let _1 = let _1 = let _1 = -# 3178 "src/ocaml/preprocess/parser_raw.mly" +# 3154 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 79806 "src/ocaml/preprocess/parser_raw.ml" +# 81630 "src/ocaml/preprocess/parser_raw.ml" in -# 3199 "src/ocaml/preprocess/parser_raw.mly" +# 3175 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79811 "src/ocaml/preprocess/parser_raw.ml" +# 81635 "src/ocaml/preprocess/parser_raw.ml" in -# 3940 "src/ocaml/preprocess/parser_raw.mly" +# 3914 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Pattern.to_ast "[:" ":]" Immutable _1 ) -# 79821 "src/ocaml/preprocess/parser_raw.ml" +# 81645 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -79825,15 +81649,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 79831 "src/ocaml/preprocess/parser_raw.ml" +# 81655 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3948 "src/ocaml/preprocess/parser_raw.mly" +# 3922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79837 "src/ocaml/preprocess/parser_raw.ml" +# 81661 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -79873,25 +81697,25 @@ module Tables = struct let _v = let _1 = let _1 = -# 3946 "src/ocaml/preprocess/parser_raw.mly" +# 3920 "src/ocaml/preprocess/parser_raw.mly" ( let (closed, fields) = _2 in Ppat_unboxed_tuple (List.rev fields, closed) ) -# 79880 "src/ocaml/preprocess/parser_raw.ml" +# 81704 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 79889 "src/ocaml/preprocess/parser_raw.ml" +# 81713 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3948 "src/ocaml/preprocess/parser_raw.mly" +# 3922 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79895 "src/ocaml/preprocess/parser_raw.ml" +# 81719 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -79932,22 +81756,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79938 "src/ocaml/preprocess/parser_raw.ml" +# 81762 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 79943 "src/ocaml/preprocess/parser_raw.ml" +# 81767 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _startpos = _startpos__1_ in ( -# 5450 "src/ocaml/preprocess/parser_raw.mly" +# 5449 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.code _startpos _endpos _2 ) -# 79951 "src/ocaml/preprocess/parser_raw.ml" +# 81775 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -80016,18 +81840,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 80020 "src/ocaml/preprocess/parser_raw.ml" +# 81844 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 80025 "src/ocaml/preprocess/parser_raw.ml" +# 81849 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 80031 "src/ocaml/preprocess/parser_raw.ml" +# 81855 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -80036,22 +81860,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80042 "src/ocaml/preprocess/parser_raw.ml" +# 81866 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 80048 "src/ocaml/preprocess/parser_raw.ml" +# 81872 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -80064,33 +81888,33 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 80068 "src/ocaml/preprocess/parser_raw.ml" +# 81892 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80074 "src/ocaml/preprocess/parser_raw.ml" +# 81898 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80080 "src/ocaml/preprocess/parser_raw.ml" +# 81904 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80086 "src/ocaml/preprocess/parser_raw.ml" +# 81910 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _startpos = _startpos__1_ in ( -# 5450 "src/ocaml/preprocess/parser_raw.mly" +# 5449 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.code _startpos _endpos _2 ) -# 80094 "src/ocaml/preprocess/parser_raw.ml" +# 81918 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -80168,18 +81992,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 80172 "src/ocaml/preprocess/parser_raw.ml" +# 81996 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 80177 "src/ocaml/preprocess/parser_raw.ml" +# 82001 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 80183 "src/ocaml/preprocess/parser_raw.ml" +# 82007 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -80188,22 +82012,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80194 "src/ocaml/preprocess/parser_raw.ml" +# 82018 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 80200 "src/ocaml/preprocess/parser_raw.ml" +# 82024 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -80216,7 +82040,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 80220 "src/ocaml/preprocess/parser_raw.ml" +# 82044 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -80224,35 +82048,35 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 80230 "src/ocaml/preprocess/parser_raw.ml" +# 82054 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80236 "src/ocaml/preprocess/parser_raw.ml" +# 82060 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80242 "src/ocaml/preprocess/parser_raw.ml" +# 82066 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 80248 "src/ocaml/preprocess/parser_raw.ml" +# 82072 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _startpos = _startpos__1_ in ( -# 5450 "src/ocaml/preprocess/parser_raw.mly" +# 5449 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.code _startpos _endpos _2 ) -# 80256 "src/ocaml/preprocess/parser_raw.ml" +# 82080 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -80286,9 +82110,9 @@ module Tables = struct let _endpos = _endpos__2_ in let _startpos = _startpos__1_ in ( -# 5452 "src/ocaml/preprocess/parser_raw.mly" +# 5451 "src/ocaml/preprocess/parser_raw.mly" ( Fake.Meta.uncode _startpos _endpos _2 ) -# 80292 "src/ocaml/preprocess/parser_raw.ml" +# 82116 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -80330,9 +82154,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3056 "src/ocaml/preprocess/parser_raw.mly" +# 3032 "src/ocaml/preprocess/parser_raw.mly" ( reloc_exp ~loc:_sloc _2 ) -# 80336 "src/ocaml/preprocess/parser_raw.ml" +# 82160 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -80351,26 +82175,33 @@ module Tables = struct 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.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 = _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 _4 : unit = Obj.magic _4 in - let _1_inlined1 : (Parsetree.type_constraint) = Obj.magic _1_inlined1 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -80378,26 +82209,381 @@ module Tables = struct let _endpos = _endpos__4_ in let _v = let _3 = - let _1 = _1_inlined1 in - let _2 = -# 4698 "src/ocaml/preprocess/parser_raw.mly" - ( [] ) -# 80386 "src/ocaml/preprocess/parser_raw.ml" - in + let _1_inlined1 = _1_inlined2 in + let _2 = + let _1 = _1_inlined1 in + +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 82219 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3661 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pconstraint cty, mm ) +# 82227 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3038 "src/ocaml/preprocess/parser_raw.mly" + ( let (t, m) = _3 in + mkexp_type_constraint_with_modes ~ghost:true ~loc:_sloc ~modes:m _2 t ) +# 82237 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + 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 = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined1_; + 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 _4 : unit = Obj.magic _4 in + let _2_inlined1 : (Parsetree.modes) = Obj.magic _2_inlined1 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _2 : (Parsetree.expression) = 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 = + let _3 = + let (_2, _1_inlined1) = (_2_inlined1, _1_inlined2) in + let _2 = + let _1 = _1_inlined1 in + +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 82303 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3661 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pconstraint cty, mm ) +# 82311 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3038 "src/ocaml/preprocess/parser_raw.mly" + ( let (t, m) = _3 in + mkexp_type_constraint_with_modes ~ghost:true ~loc:_sloc ~modes:m _2 t ) +# 82321 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + 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 = _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 = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_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; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _4 : unit = Obj.magic _4 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _3 : unit = Obj.magic _3 in + let _2_inlined1 : (Parsetree.core_type) = Obj.magic _2_inlined1 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _2 : (Parsetree.expression) = 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 = + let _3 = + let (_1_inlined1, _2) = (_1_inlined2, _2_inlined1) in + let _4 = + let _1 = _1_inlined1 in + +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 82394 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3664 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _4 in + Pcoerce (Some _2, cty), mm ) +# 82402 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3038 "src/ocaml/preprocess/parser_raw.mly" + ( let (t, m) = _3 in + mkexp_type_constraint_with_modes ~ghost:true ~loc:_sloc ~modes:m _2 t ) +# 82412 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + 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 = _2_inlined2; + MenhirLib.EngineTypes.startp = _startpos__2_inlined2_; + MenhirLib.EngineTypes.endp = _endpos__2_inlined2_; + 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 = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_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; + }; + }; + }; + }; + }; + }; + }; + } = _menhir_stack in + let _4 : unit = Obj.magic _4 in + let _2_inlined2 : (Parsetree.modes) = Obj.magic _2_inlined2 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _3 : unit = Obj.magic _3 in + let _2_inlined1 : (Parsetree.core_type) = Obj.magic _2_inlined1 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _2 : (Parsetree.expression) = 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 = + let _3 = + let (_2_inlined1, _1_inlined1, _2) = (_2_inlined2, _1_inlined2, _2_inlined1) in + let _4 = + let (_2, _1) = (_2_inlined1, _1_inlined1) in + +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 82492 "src/ocaml/preprocess/parser_raw.ml" + + in + +# 3664 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _4 in + Pcoerce (Some _2, cty), mm ) +# 82500 "src/ocaml/preprocess/parser_raw.ml" + + in + let _endpos = _endpos__4_ in + let _symbolstartpos = _startpos__1_ in + let _sloc = (_symbolstartpos, _endpos) in + ( +# 3038 "src/ocaml/preprocess/parser_raw.mly" + ( let (t, m) = _3 in + mkexp_type_constraint_with_modes ~ghost:true ~loc:_sloc ~modes:m _2 t ) +# 82510 "src/ocaml/preprocess/parser_raw.ml" + : (Parsetree.expression)) + 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 = _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 _4 : unit = Obj.magic _4 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in + let _2 : (Parsetree.expression) = 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 = + let _3 = + let _1_inlined1 = _1_inlined2 in + let _2 = + let _1 = _1_inlined1 in + +# 4524 "src/ocaml/preprocess/parser_raw.mly" + ( _1, [] ) +# 82569 "src/ocaml/preprocess/parser_raw.ml" + + in -# 3681 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 80391 "src/ocaml/preprocess/parser_raw.ml" +# 3667 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pcoerce (None, cty), mm ) +# 82577 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3062 "src/ocaml/preprocess/parser_raw.mly" +# 3038 "src/ocaml/preprocess/parser_raw.mly" ( let (t, m) = _3 in mkexp_type_constraint_with_modes ~ghost:true ~loc:_sloc ~modes:m _2 t ) -# 80401 "src/ocaml/preprocess/parser_raw.ml" +# 82587 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -80416,33 +82602,40 @@ module Tables = struct 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 = _2_inlined1; + MenhirLib.EngineTypes.startp = _startpos__2_inlined1_; + MenhirLib.EngineTypes.endp = _endpos__2_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.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 = _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 _4 : unit = Obj.magic _4 in - let _1_inlined2 : (Parsetree.modes) = Obj.magic _1_inlined2 in - let _1_inlined1 : (Parsetree.type_constraint) = Obj.magic _1_inlined1 in + let _2_inlined1 : (Parsetree.modes) = Obj.magic _2_inlined1 in + let _1_inlined2 : (Parsetree.core_type) = Obj.magic _1_inlined2 in + let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : unit = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -80450,29 +82643,31 @@ module Tables = struct let _endpos = _endpos__4_ in let _v = let _3 = - let (_1_inlined1, _1) = (_1_inlined2, _1_inlined1) in + let (_2, _1_inlined1) = (_2_inlined1, _1_inlined2) in let _2 = let _1 = _1_inlined1 in -# 4699 "src/ocaml/preprocess/parser_raw.mly" - (_1) -# 80460 "src/ocaml/preprocess/parser_raw.ml" +# 4525 "src/ocaml/preprocess/parser_raw.mly" + ( _1, _2 ) +# 82653 "src/ocaml/preprocess/parser_raw.ml" in -# 3681 "src/ocaml/preprocess/parser_raw.mly" - ( _1, _2 ) -# 80466 "src/ocaml/preprocess/parser_raw.ml" +# 3667 "src/ocaml/preprocess/parser_raw.mly" + ( + let cty, mm = _2 in + Pcoerce (None, cty), mm ) +# 82661 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3062 "src/ocaml/preprocess/parser_raw.mly" +# 3038 "src/ocaml/preprocess/parser_raw.mly" ( let (t, m) = _3 in mkexp_type_constraint_with_modes ~ghost:true ~loc:_sloc ~modes:m _2 t ) -# 80476 "src/ocaml/preprocess/parser_raw.ml" +# 82671 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -80526,14 +82721,14 @@ module Tables = struct let _v = let _1 = let r = -# 3064 "src/ocaml/preprocess/parser_raw.mly" +# 3040 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 80532 "src/ocaml/preprocess/parser_raw.ml" +# 82727 "src/ocaml/preprocess/parser_raw.ml" in -# 2906 "src/ocaml/preprocess/parser_raw.mly" +# 2882 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 80537 "src/ocaml/preprocess/parser_raw.ml" +# 82732 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -80541,9 +82736,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3065 "src/ocaml/preprocess/parser_raw.mly" +# 3041 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 80547 "src/ocaml/preprocess/parser_raw.ml" +# 82742 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -80597,14 +82792,14 @@ module Tables = struct let _v = let _1 = let r = -# 3064 "src/ocaml/preprocess/parser_raw.mly" +# 3040 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 80603 "src/ocaml/preprocess/parser_raw.ml" +# 82798 "src/ocaml/preprocess/parser_raw.ml" in -# 2908 "src/ocaml/preprocess/parser_raw.mly" +# 2884 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 80608 "src/ocaml/preprocess/parser_raw.ml" +# 82803 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -80612,9 +82807,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3065 "src/ocaml/preprocess/parser_raw.mly" +# 3041 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 80618 "src/ocaml/preprocess/parser_raw.ml" +# 82813 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -80668,14 +82863,14 @@ module Tables = struct let _v = let _1 = let r = -# 3064 "src/ocaml/preprocess/parser_raw.mly" +# 3040 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 80674 "src/ocaml/preprocess/parser_raw.ml" +# 82869 "src/ocaml/preprocess/parser_raw.ml" in -# 2910 "src/ocaml/preprocess/parser_raw.mly" +# 2886 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 80679 "src/ocaml/preprocess/parser_raw.ml" +# 82874 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -80683,9 +82878,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3065 "src/ocaml/preprocess/parser_raw.mly" +# 3041 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr builtin_indexing_operators ~loc:_sloc _1 ) -# 80689 "src/ocaml/preprocess/parser_raw.ml" +# 82884 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -80732,9 +82927,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 80738 "src/ocaml/preprocess/parser_raw.ml" +# 82933 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -80743,31 +82938,31 @@ module Tables = struct let _v = let _1 = let r = -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 3044 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 80749 "src/ocaml/preprocess/parser_raw.ml" +# 82944 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 80754 "src/ocaml/preprocess/parser_raw.ml" +# 82949 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 123 "" ( None ) -# 80760 "src/ocaml/preprocess/parser_raw.ml" +# 82955 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 80765 "src/ocaml/preprocess/parser_raw.ml" +# 82960 "src/ocaml/preprocess/parser_raw.ml" in -# 2906 "src/ocaml/preprocess/parser_raw.mly" +# 2882 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 80771 "src/ocaml/preprocess/parser_raw.ml" +# 82966 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -80775,9 +82970,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3069 "src/ocaml/preprocess/parser_raw.mly" +# 3045 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 80781 "src/ocaml/preprocess/parser_raw.ml" +# 82976 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -80836,9 +83031,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 80842 "src/ocaml/preprocess/parser_raw.ml" +# 83037 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -80849,39 +83044,39 @@ module Tables = struct let _v = let _1 = let r = -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 3044 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 80855 "src/ocaml/preprocess/parser_raw.ml" +# 83050 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 80860 "src/ocaml/preprocess/parser_raw.ml" +# 83055 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 80868 "src/ocaml/preprocess/parser_raw.ml" +# 83063 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 80873 "src/ocaml/preprocess/parser_raw.ml" +# 83068 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 80879 "src/ocaml/preprocess/parser_raw.ml" +# 83074 "src/ocaml/preprocess/parser_raw.ml" in -# 2906 "src/ocaml/preprocess/parser_raw.mly" +# 2882 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Paren, i, r ) -# 80885 "src/ocaml/preprocess/parser_raw.ml" +# 83080 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -80889,9 +83084,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3069 "src/ocaml/preprocess/parser_raw.mly" +# 3045 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 80895 "src/ocaml/preprocess/parser_raw.ml" +# 83090 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -80938,9 +83133,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 80944 "src/ocaml/preprocess/parser_raw.ml" +# 83139 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -80949,31 +83144,31 @@ module Tables = struct let _v = let _1 = let r = -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 3044 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 80955 "src/ocaml/preprocess/parser_raw.ml" +# 83150 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 80960 "src/ocaml/preprocess/parser_raw.ml" +# 83155 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 123 "" ( None ) -# 80966 "src/ocaml/preprocess/parser_raw.ml" +# 83161 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 80971 "src/ocaml/preprocess/parser_raw.ml" +# 83166 "src/ocaml/preprocess/parser_raw.ml" in -# 2908 "src/ocaml/preprocess/parser_raw.mly" +# 2884 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 80977 "src/ocaml/preprocess/parser_raw.ml" +# 83172 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -80981,9 +83176,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3069 "src/ocaml/preprocess/parser_raw.mly" +# 3045 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 80987 "src/ocaml/preprocess/parser_raw.ml" +# 83182 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -81042,9 +83237,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81048 "src/ocaml/preprocess/parser_raw.ml" +# 83243 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -81055,39 +83250,39 @@ module Tables = struct let _v = let _1 = let r = -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 3044 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 81061 "src/ocaml/preprocess/parser_raw.ml" +# 83256 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 81066 "src/ocaml/preprocess/parser_raw.ml" +# 83261 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 81074 "src/ocaml/preprocess/parser_raw.ml" +# 83269 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 81079 "src/ocaml/preprocess/parser_raw.ml" +# 83274 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 81085 "src/ocaml/preprocess/parser_raw.ml" +# 83280 "src/ocaml/preprocess/parser_raw.ml" in -# 2908 "src/ocaml/preprocess/parser_raw.mly" +# 2884 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Brace, i, r ) -# 81091 "src/ocaml/preprocess/parser_raw.ml" +# 83286 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -81095,9 +83290,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3069 "src/ocaml/preprocess/parser_raw.mly" +# 3045 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 81101 "src/ocaml/preprocess/parser_raw.ml" +# 83296 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -81144,9 +83339,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81150 "src/ocaml/preprocess/parser_raw.ml" +# 83345 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let array : (Parsetree.expression) = Obj.magic array in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -81155,31 +83350,31 @@ module Tables = struct let _v = let _1 = let r = -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 3044 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 81161 "src/ocaml/preprocess/parser_raw.ml" +# 83356 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 81166 "src/ocaml/preprocess/parser_raw.ml" +# 83361 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = # 123 "" ( None ) -# 81172 "src/ocaml/preprocess/parser_raw.ml" +# 83367 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 81177 "src/ocaml/preprocess/parser_raw.ml" +# 83372 "src/ocaml/preprocess/parser_raw.ml" in -# 2910 "src/ocaml/preprocess/parser_raw.mly" +# 2886 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 81183 "src/ocaml/preprocess/parser_raw.ml" +# 83378 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -81187,9 +83382,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3069 "src/ocaml/preprocess/parser_raw.mly" +# 3045 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 81193 "src/ocaml/preprocess/parser_raw.ml" +# 83388 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -81248,9 +83443,9 @@ module Tables = struct let es : (Parsetree.expression list) = Obj.magic es in let _3 : unit = Obj.magic _3 in let _2 : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 81254 "src/ocaml/preprocess/parser_raw.ml" +# 83449 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _2 in let _2_inlined1 : (Longident.t) = Obj.magic _2_inlined1 in let _1 : unit = Obj.magic _1 in @@ -81261,39 +83456,39 @@ module Tables = struct let _v = let _1 = let r = -# 3068 "src/ocaml/preprocess/parser_raw.mly" +# 3044 "src/ocaml/preprocess/parser_raw.mly" ( None ) -# 81267 "src/ocaml/preprocess/parser_raw.ml" +# 83462 "src/ocaml/preprocess/parser_raw.ml" in let i = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 81272 "src/ocaml/preprocess/parser_raw.ml" +# 83467 "src/ocaml/preprocess/parser_raw.ml" in let d = let _1 = let _2 = _2_inlined1 in let x = -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" (_2) -# 81280 "src/ocaml/preprocess/parser_raw.ml" +# 83475 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 81285 "src/ocaml/preprocess/parser_raw.ml" +# 83480 "src/ocaml/preprocess/parser_raw.ml" in -# 2922 "src/ocaml/preprocess/parser_raw.mly" +# 2898 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 81291 "src/ocaml/preprocess/parser_raw.ml" +# 83486 "src/ocaml/preprocess/parser_raw.ml" in -# 2910 "src/ocaml/preprocess/parser_raw.mly" +# 2886 "src/ocaml/preprocess/parser_raw.mly" ( array, d, Bracket, i, r ) -# 81297 "src/ocaml/preprocess/parser_raw.ml" +# 83492 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__5_, _startpos_array_) in @@ -81301,9 +83496,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3069 "src/ocaml/preprocess/parser_raw.mly" +# 3045 "src/ocaml/preprocess/parser_raw.mly" ( mk_indexop_expr user_indexing_operators ~loc:_sloc _1 ) -# 81307 "src/ocaml/preprocess/parser_raw.ml" +# 83502 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -81359,15 +83554,15 @@ module Tables = struct let attrs = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81365 "src/ocaml/preprocess/parser_raw.ml" +# 83560 "src/ocaml/preprocess/parser_raw.ml" in -# 3094 "src/ocaml/preprocess/parser_raw.mly" +# 3070 "src/ocaml/preprocess/parser_raw.mly" ( e.pexp_desc, (ext, attrs @ e.pexp_attributes) ) -# 81371 "src/ocaml/preprocess/parser_raw.ml" +# 83566 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -81375,10 +83570,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3075 "src/ocaml/preprocess/parser_raw.mly" +# 3051 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 81382 "src/ocaml/preprocess/parser_raw.ml" +# 83577 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -81429,24 +83624,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81435 "src/ocaml/preprocess/parser_raw.ml" +# 83630 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 81441 "src/ocaml/preprocess/parser_raw.ml" +# 83636 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3096 "src/ocaml/preprocess/parser_raw.mly" +# 3072 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_construct (mkloc (Lident "()") (make_loc _sloc), None), _2 ) -# 81450 "src/ocaml/preprocess/parser_raw.ml" +# 83645 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -81454,10 +83649,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3075 "src/ocaml/preprocess/parser_raw.mly" +# 3051 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 81461 "src/ocaml/preprocess/parser_raw.ml" +# 83656 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -81509,9 +83704,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 81515 "src/ocaml/preprocess/parser_raw.ml" +# 83710 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -81519,21 +83714,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81525 "src/ocaml/preprocess/parser_raw.ml" +# 83720 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 81531 "src/ocaml/preprocess/parser_raw.ml" +# 83726 "src/ocaml/preprocess/parser_raw.ml" in -# 3102 "src/ocaml/preprocess/parser_raw.mly" +# 3078 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_new(_3), _2 ) -# 81537 "src/ocaml/preprocess/parser_raw.ml" +# 83732 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -81541,10 +83736,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3075 "src/ocaml/preprocess/parser_raw.mly" +# 3051 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 81548 "src/ocaml/preprocess/parser_raw.ml" +# 83743 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -81609,21 +83804,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81615 "src/ocaml/preprocess/parser_raw.ml" +# 83810 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 81621 "src/ocaml/preprocess/parser_raw.ml" +# 83816 "src/ocaml/preprocess/parser_raw.ml" in -# 3104 "src/ocaml/preprocess/parser_raw.mly" +# 3080 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_pack _4, _3 ) -# 81627 "src/ocaml/preprocess/parser_raw.ml" +# 83822 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -81631,10 +83826,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3075 "src/ocaml/preprocess/parser_raw.mly" +# 3051 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 81638 "src/ocaml/preprocess/parser_raw.ml" +# 83833 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -81714,11 +83909,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 81722 "src/ocaml/preprocess/parser_raw.ml" +# 83917 "src/ocaml/preprocess/parser_raw.ml" in let _3 = @@ -81726,24 +83921,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81732 "src/ocaml/preprocess/parser_raw.ml" +# 83927 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 81738 "src/ocaml/preprocess/parser_raw.ml" +# 83933 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3106 "src/ocaml/preprocess/parser_raw.mly" +# 3082 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _4), Some _6, []), _3 ) -# 81747 "src/ocaml/preprocess/parser_raw.ml" +# 83942 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__7_ in @@ -81751,10 +83946,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3075 "src/ocaml/preprocess/parser_raw.mly" +# 3051 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 81758 "src/ocaml/preprocess/parser_raw.ml" +# 83953 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -81821,27 +84016,27 @@ module Tables = struct let _1 = # 271 "" ( List.flatten xss ) -# 81825 "src/ocaml/preprocess/parser_raw.ml" +# 84020 "src/ocaml/preprocess/parser_raw.ml" in -# 2461 "src/ocaml/preprocess/parser_raw.mly" +# 2488 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81830 "src/ocaml/preprocess/parser_raw.ml" +# 84025 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1290 "src/ocaml/preprocess/parser_raw.mly" +# 1302 "src/ocaml/preprocess/parser_raw.mly" ( extra_cstr _startpos _endpos _1 ) -# 81839 "src/ocaml/preprocess/parser_raw.ml" +# 84034 "src/ocaml/preprocess/parser_raw.ml" in -# 2449 "src/ocaml/preprocess/parser_raw.mly" +# 2476 "src/ocaml/preprocess/parser_raw.mly" ( Cstr.mk _1 _2 ) -# 81845 "src/ocaml/preprocess/parser_raw.ml" +# 84040 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -81849,21 +84044,21 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81855 "src/ocaml/preprocess/parser_raw.ml" +# 84050 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 81861 "src/ocaml/preprocess/parser_raw.ml" +# 84056 "src/ocaml/preprocess/parser_raw.ml" in -# 3112 "src/ocaml/preprocess/parser_raw.mly" +# 3088 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_object _3, _2 ) -# 81867 "src/ocaml/preprocess/parser_raw.ml" +# 84062 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -81871,10 +84066,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3075 "src/ocaml/preprocess/parser_raw.mly" +# 3051 "src/ocaml/preprocess/parser_raw.mly" ( let desc, attrs = _1 in mkexp_attrs ~loc:_sloc desc attrs ) -# 81878 "src/ocaml/preprocess/parser_raw.ml" +# 84073 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -81905,30 +84100,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 81911 "src/ocaml/preprocess/parser_raw.ml" +# 84106 "src/ocaml/preprocess/parser_raw.ml" in -# 3209 "src/ocaml/preprocess/parser_raw.mly" +# 3185 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_ident (_1) ) -# 81917 "src/ocaml/preprocess/parser_raw.ml" +# 84112 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 81926 "src/ocaml/preprocess/parser_raw.ml" +# 84121 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81932 "src/ocaml/preprocess/parser_raw.ml" +# 84127 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -81959,30 +84154,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 81965 "src/ocaml/preprocess/parser_raw.ml" +# 84160 "src/ocaml/preprocess/parser_raw.ml" in -# 3211 "src/ocaml/preprocess/parser_raw.mly" +# 3187 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_construct(_1, None) ) -# 81971 "src/ocaml/preprocess/parser_raw.ml" +# 84166 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 81980 "src/ocaml/preprocess/parser_raw.ml" +# 84175 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 81986 "src/ocaml/preprocess/parser_raw.ml" +# 84181 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82008,23 +84203,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 3213 "src/ocaml/preprocess/parser_raw.mly" +# 3189 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_variant(_1, None) ) -# 82014 "src/ocaml/preprocess/parser_raw.ml" +# 84209 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 82022 "src/ocaml/preprocess/parser_raw.ml" +# 84217 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82028 "src/ocaml/preprocess/parser_raw.ml" +# 84223 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82051,9 +84246,9 @@ module Tables = struct } = _menhir_stack in let _2 : (Parsetree.expression) = Obj.magic _2 in let _1 : ( -# 1124 "src/ocaml/preprocess/parser_raw.mly" +# 1136 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82057 "src/ocaml/preprocess/parser_raw.ml" +# 84252 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -82066,15 +84261,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 82072 "src/ocaml/preprocess/parser_raw.ml" +# 84267 "src/ocaml/preprocess/parser_raw.ml" in -# 3215 "src/ocaml/preprocess/parser_raw.mly" +# 3191 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_apply(_1, [Nolabel,_2]) ) -# 82078 "src/ocaml/preprocess/parser_raw.ml" +# 84273 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -82082,15 +84277,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 82088 "src/ocaml/preprocess/parser_raw.ml" +# 84283 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82094 "src/ocaml/preprocess/parser_raw.ml" +# 84289 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82125,23 +84320,23 @@ module Tables = struct let _1 = let _1 = let _1 = -# 3216 "src/ocaml/preprocess/parser_raw.mly" +# 3192 "src/ocaml/preprocess/parser_raw.mly" ("!") -# 82131 "src/ocaml/preprocess/parser_raw.ml" +# 84326 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 82139 "src/ocaml/preprocess/parser_raw.ml" +# 84334 "src/ocaml/preprocess/parser_raw.ml" in -# 3217 "src/ocaml/preprocess/parser_raw.mly" +# 3193 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_apply(_1, [Nolabel,_2]) ) -# 82145 "src/ocaml/preprocess/parser_raw.ml" +# 84340 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -82149,15 +84344,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 82155 "src/ocaml/preprocess/parser_raw.ml" +# 84350 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82161 "src/ocaml/preprocess/parser_raw.ml" +# 84356 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82198,14 +84393,14 @@ module Tables = struct let _1 = let _1 = let _2 = -# 3652 "src/ocaml/preprocess/parser_raw.mly" +# 3633 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 82204 "src/ocaml/preprocess/parser_raw.ml" +# 84399 "src/ocaml/preprocess/parser_raw.ml" in -# 3219 "src/ocaml/preprocess/parser_raw.mly" +# 3195 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_override _2 ) -# 82209 "src/ocaml/preprocess/parser_raw.ml" +# 84404 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -82213,15 +84408,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 82219 "src/ocaml/preprocess/parser_raw.ml" +# 84414 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82225 "src/ocaml/preprocess/parser_raw.ml" +# 84420 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82254,24 +84449,24 @@ module Tables = struct let _v = let _1 = let _1 = -# 3225 "src/ocaml/preprocess/parser_raw.mly" +# 3201 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_override [] ) -# 82260 "src/ocaml/preprocess/parser_raw.ml" +# 84455 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 82269 "src/ocaml/preprocess/parser_raw.ml" +# 84464 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82275 "src/ocaml/preprocess/parser_raw.ml" +# 84470 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82317,15 +84512,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 82323 "src/ocaml/preprocess/parser_raw.ml" +# 84518 "src/ocaml/preprocess/parser_raw.ml" in -# 3227 "src/ocaml/preprocess/parser_raw.mly" +# 3203 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_field(_1, _3) ) -# 82329 "src/ocaml/preprocess/parser_raw.ml" +# 84524 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -82333,15 +84528,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 82339 "src/ocaml/preprocess/parser_raw.ml" +# 84534 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82345 "src/ocaml/preprocess/parser_raw.ml" +# 84540 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82387,15 +84582,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 82393 "src/ocaml/preprocess/parser_raw.ml" +# 84588 "src/ocaml/preprocess/parser_raw.ml" in -# 3229 "src/ocaml/preprocess/parser_raw.mly" +# 3205 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_unboxed_field(_1, _3) ) -# 82399 "src/ocaml/preprocess/parser_raw.ml" +# 84594 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -82403,15 +84598,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 82409 "src/ocaml/preprocess/parser_raw.ml" +# 84604 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82415 "src/ocaml/preprocess/parser_raw.ml" +# 84610 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82471,24 +84666,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 82477 "src/ocaml/preprocess/parser_raw.ml" +# 84672 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 82486 "src/ocaml/preprocess/parser_raw.ml" +# 84681 "src/ocaml/preprocess/parser_raw.ml" in -# 3231 "src/ocaml/preprocess/parser_raw.mly" +# 3207 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _4) ) -# 82492 "src/ocaml/preprocess/parser_raw.ml" +# 84687 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -82496,15 +84691,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 82502 "src/ocaml/preprocess/parser_raw.ml" +# 84697 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82508 "src/ocaml/preprocess/parser_raw.ml" +# 84703 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82559,9 +84754,9 @@ module Tables = struct let _1 = let _1 = let _4 = -# 3652 "src/ocaml/preprocess/parser_raw.mly" +# 3633 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 82565 "src/ocaml/preprocess/parser_raw.ml" +# 84760 "src/ocaml/preprocess/parser_raw.ml" in let od = let _1 = @@ -82569,18 +84764,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 82575 "src/ocaml/preprocess/parser_raw.ml" +# 84770 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 82584 "src/ocaml/preprocess/parser_raw.ml" +# 84779 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_od_ = _startpos__1_ in @@ -82588,10 +84783,10 @@ module Tables = struct let _symbolstartpos = _startpos_od_ in let _sloc = (_symbolstartpos, _endpos) in -# 3233 "src/ocaml/preprocess/parser_raw.mly" +# 3209 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_override *) Pexp_open(od, mkexp ~loc:_sloc (Pexp_override _4)) ) -# 82595 "src/ocaml/preprocess/parser_raw.ml" +# 84790 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -82599,15 +84794,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 82605 "src/ocaml/preprocess/parser_raw.ml" +# 84800 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82611 "src/ocaml/preprocess/parser_raw.ml" +# 84806 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82639,9 +84834,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82645 "src/ocaml/preprocess/parser_raw.ml" +# 84840 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -82654,28 +84849,28 @@ module Tables = struct let _3 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82660 "src/ocaml/preprocess/parser_raw.ml" +# 84855 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 82668 "src/ocaml/preprocess/parser_raw.ml" +# 84863 "src/ocaml/preprocess/parser_raw.ml" in let _2 = -# 3203 "src/ocaml/preprocess/parser_raw.mly" +# 3179 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 82674 "src/ocaml/preprocess/parser_raw.ml" +# 84869 "src/ocaml/preprocess/parser_raw.ml" in -# 3240 "src/ocaml/preprocess/parser_raw.mly" +# 3216 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_send(_1, _3) ) -# 82679 "src/ocaml/preprocess/parser_raw.ml" +# 84874 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -82683,15 +84878,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 82689 "src/ocaml/preprocess/parser_raw.ml" +# 84884 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82695 "src/ocaml/preprocess/parser_raw.ml" +# 84890 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82723,9 +84918,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82729 "src/ocaml/preprocess/parser_raw.ml" +# 84924 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : unit = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in @@ -82738,28 +84933,28 @@ module Tables = struct let _3 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82744 "src/ocaml/preprocess/parser_raw.ml" +# 84939 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 82752 "src/ocaml/preprocess/parser_raw.ml" +# 84947 "src/ocaml/preprocess/parser_raw.ml" in let _2 = -# 3204 "src/ocaml/preprocess/parser_raw.mly" +# 3180 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 82758 "src/ocaml/preprocess/parser_raw.ml" +# 84953 "src/ocaml/preprocess/parser_raw.ml" in -# 3240 "src/ocaml/preprocess/parser_raw.mly" +# 3216 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_send(_1, _3) ) -# 82763 "src/ocaml/preprocess/parser_raw.ml" +# 84958 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -82767,15 +84962,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 82773 "src/ocaml/preprocess/parser_raw.ml" +# 84968 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82779 "src/ocaml/preprocess/parser_raw.ml" +# 84974 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82808,9 +85003,9 @@ module Tables = struct } = _menhir_stack in let _3 : (Parsetree.expression) = Obj.magic _3 in let _1_inlined1 : ( -# 1137 "src/ocaml/preprocess/parser_raw.mly" +# 1149 "src/ocaml/preprocess/parser_raw.mly" (string) -# 82814 "src/ocaml/preprocess/parser_raw.ml" +# 85009 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _1 : (Parsetree.expression) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in @@ -82825,15 +85020,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1323 "src/ocaml/preprocess/parser_raw.mly" +# 1335 "src/ocaml/preprocess/parser_raw.mly" ( mkoperator ~loc:_sloc _1 ) -# 82831 "src/ocaml/preprocess/parser_raw.ml" +# 85026 "src/ocaml/preprocess/parser_raw.ml" in -# 3242 "src/ocaml/preprocess/parser_raw.mly" +# 3218 "src/ocaml/preprocess/parser_raw.mly" ( mkinfix _1 _2 _3 ) -# 82837 "src/ocaml/preprocess/parser_raw.ml" +# 85032 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -82841,15 +85036,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 82847 "src/ocaml/preprocess/parser_raw.ml" +# 85042 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82853 "src/ocaml/preprocess/parser_raw.ml" +# 85048 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82875,23 +85070,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 3244 "src/ocaml/preprocess/parser_raw.mly" +# 3220 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_extension _1 ) -# 82881 "src/ocaml/preprocess/parser_raw.ml" +# 85076 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 82889 "src/ocaml/preprocess/parser_raw.ml" +# 85084 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82895 "src/ocaml/preprocess/parser_raw.ml" +# 85090 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82917,23 +85112,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 3246 "src/ocaml/preprocess/parser_raw.mly" +# 3222 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_hole ) -# 82923 "src/ocaml/preprocess/parser_raw.ml" +# 85118 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 82931 "src/ocaml/preprocess/parser_raw.ml" +# 85126 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 82937 "src/ocaml/preprocess/parser_raw.ml" +# 85132 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -82983,18 +85178,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 3247 "src/ocaml/preprocess/parser_raw.mly" +# 3223 "src/ocaml/preprocess/parser_raw.mly" (Lident "()") -# 82989 "src/ocaml/preprocess/parser_raw.ml" +# 85184 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 82998 "src/ocaml/preprocess/parser_raw.ml" +# 85193 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in @@ -83004,25 +85199,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 83010 "src/ocaml/preprocess/parser_raw.ml" +# 85205 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 83019 "src/ocaml/preprocess/parser_raw.ml" +# 85214 "src/ocaml/preprocess/parser_raw.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3248 "src/ocaml/preprocess/parser_raw.mly" +# 3224 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, mkexp ~loc:(_loc__3_) (Pexp_construct(_3, None))) ) -# 83026 "src/ocaml/preprocess/parser_raw.ml" +# 85221 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -83030,15 +85225,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 83036 "src/ocaml/preprocess/parser_raw.ml" +# 85231 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83042 "src/ocaml/preprocess/parser_raw.ml" +# 85237 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -83079,25 +85274,25 @@ module Tables = struct let _v = let _1 = let _1 = -# 3254 "src/ocaml/preprocess/parser_raw.mly" +# 3230 "src/ocaml/preprocess/parser_raw.mly" ( let (exten, fields) = _2 in Pexp_record(fields, exten) ) -# 83086 "src/ocaml/preprocess/parser_raw.ml" +# 85281 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 83095 "src/ocaml/preprocess/parser_raw.ml" +# 85290 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83101 "src/ocaml/preprocess/parser_raw.ml" +# 85296 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -83138,25 +85333,25 @@ module Tables = struct let _v = let _1 = let _1 = -# 3257 "src/ocaml/preprocess/parser_raw.mly" +# 3233 "src/ocaml/preprocess/parser_raw.mly" ( let (exten, fields) = _2 in Pexp_record_unboxed_product(fields, exten) ) -# 83145 "src/ocaml/preprocess/parser_raw.ml" +# 85340 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 83154 "src/ocaml/preprocess/parser_raw.ml" +# 85349 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83160 "src/ocaml/preprocess/parser_raw.ml" +# 85355 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -83217,27 +85412,27 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 83223 "src/ocaml/preprocess/parser_raw.ml" +# 85418 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 83232 "src/ocaml/preprocess/parser_raw.ml" +# 85427 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in -# 3264 "src/ocaml/preprocess/parser_raw.mly" +# 3240 "src/ocaml/preprocess/parser_raw.mly" ( let (exten, fields) = _4 in Pexp_open(od, mkexp ~loc:(_startpos__3_, _endpos) (Pexp_record(fields, exten))) ) -# 83241 "src/ocaml/preprocess/parser_raw.ml" +# 85436 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -83245,15 +85440,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 83251 "src/ocaml/preprocess/parser_raw.ml" +# 85446 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83257 "src/ocaml/preprocess/parser_raw.ml" +# 85452 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -83296,30 +85491,30 @@ module Tables = struct let _1 = let _1 = let _2 = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 83302 "src/ocaml/preprocess/parser_raw.ml" +# 85497 "src/ocaml/preprocess/parser_raw.ml" in -# 3172 "src/ocaml/preprocess/parser_raw.mly" +# 3148 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 83307 "src/ocaml/preprocess/parser_raw.ml" +# 85502 "src/ocaml/preprocess/parser_raw.ml" in -# 3183 "src/ocaml/preprocess/parser_raw.mly" +# 3159 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 83313 "src/ocaml/preprocess/parser_raw.ml" +# 85508 "src/ocaml/preprocess/parser_raw.ml" in -# 3272 "src/ocaml/preprocess/parser_raw.mly" +# 3248 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" Mutable _1 ) -# 83323 "src/ocaml/preprocess/parser_raw.ml" +# 85518 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -83327,15 +85522,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 83333 "src/ocaml/preprocess/parser_raw.ml" +# 85528 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83339 "src/ocaml/preprocess/parser_raw.ml" +# 85534 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -83370,24 +85565,24 @@ module Tables = struct let _1 = let _1 = let _1 = -# 3178 "src/ocaml/preprocess/parser_raw.mly" +# 3154 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 83376 "src/ocaml/preprocess/parser_raw.ml" +# 85571 "src/ocaml/preprocess/parser_raw.ml" in -# 3183 "src/ocaml/preprocess/parser_raw.mly" +# 3159 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 83381 "src/ocaml/preprocess/parser_raw.ml" +# 85576 "src/ocaml/preprocess/parser_raw.ml" in -# 3272 "src/ocaml/preprocess/parser_raw.mly" +# 3248 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" Mutable _1 ) -# 83391 "src/ocaml/preprocess/parser_raw.ml" +# 85586 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -83395,15 +85590,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 83401 "src/ocaml/preprocess/parser_raw.ml" +# 85596 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83407 "src/ocaml/preprocess/parser_raw.ml" +# 85602 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -83459,9 +85654,9 @@ module Tables = struct let _1 = let _1 = let _4 = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 83465 "src/ocaml/preprocess/parser_raw.ml" +# 85660 "src/ocaml/preprocess/parser_raw.ml" in let od = let _1 = @@ -83469,36 +85664,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 83475 "src/ocaml/preprocess/parser_raw.ml" +# 85670 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 83484 "src/ocaml/preprocess/parser_raw.ml" +# 85679 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in -# 3185 "src/ocaml/preprocess/parser_raw.mly" +# 3161 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, _4) ) -# 83492 "src/ocaml/preprocess/parser_raw.ml" +# 85687 "src/ocaml/preprocess/parser_raw.ml" in -# 3272 "src/ocaml/preprocess/parser_raw.mly" +# 3248 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" Mutable _1 ) -# 83502 "src/ocaml/preprocess/parser_raw.ml" +# 85697 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -83506,15 +85701,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 83512 "src/ocaml/preprocess/parser_raw.ml" +# 85707 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83518 "src/ocaml/preprocess/parser_raw.ml" +# 85713 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -83568,36 +85763,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 83574 "src/ocaml/preprocess/parser_raw.ml" +# 85769 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 83583 "src/ocaml/preprocess/parser_raw.ml" +# 85778 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in -# 3188 "src/ocaml/preprocess/parser_raw.mly" +# 3164 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_array *) Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, []) ) -# 83591 "src/ocaml/preprocess/parser_raw.ml" +# 85786 "src/ocaml/preprocess/parser_raw.ml" in -# 3272 "src/ocaml/preprocess/parser_raw.mly" +# 3248 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_desc "[|" "|]" Mutable _1 ) -# 83601 "src/ocaml/preprocess/parser_raw.ml" +# 85796 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -83605,15 +85800,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 83611 "src/ocaml/preprocess/parser_raw.ml" +# 85806 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83617 "src/ocaml/preprocess/parser_raw.ml" +# 85812 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -83654,15 +85849,15 @@ module Tables = struct let _1 = let _1 = let _2 = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 83660 "src/ocaml/preprocess/parser_raw.ml" +# 85855 "src/ocaml/preprocess/parser_raw.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3278 "src/ocaml/preprocess/parser_raw.mly" +# 3254 "src/ocaml/preprocess/parser_raw.mly" ( fst (mktailexp _loc__3_ _2) ) -# 83666 "src/ocaml/preprocess/parser_raw.ml" +# 85861 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -83670,15 +85865,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 83676 "src/ocaml/preprocess/parser_raw.ml" +# 85871 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83682 "src/ocaml/preprocess/parser_raw.ml" +# 85877 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -83747,37 +85942,37 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 83751 "src/ocaml/preprocess/parser_raw.ml" +# 85946 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 83756 "src/ocaml/preprocess/parser_raw.ml" +# 85951 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83764 "src/ocaml/preprocess/parser_raw.ml" +# 85959 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83769 "src/ocaml/preprocess/parser_raw.ml" +# 85964 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 83775 "src/ocaml/preprocess/parser_raw.ml" +# 85970 "src/ocaml/preprocess/parser_raw.ml" in -# 3158 "src/ocaml/preprocess/parser_raw.mly" +# 3134 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_list_comprehension _1 ) -# 83781 "src/ocaml/preprocess/parser_raw.ml" +# 85976 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -83785,9 +85980,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 83791 "src/ocaml/preprocess/parser_raw.ml" +# 85986 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -83796,24 +85991,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 83802 "src/ocaml/preprocess/parser_raw.ml" +# 85997 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 83811 "src/ocaml/preprocess/parser_raw.ml" +# 86006 "src/ocaml/preprocess/parser_raw.ml" in -# 3284 "src/ocaml/preprocess/parser_raw.mly" +# 3260 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 83817 "src/ocaml/preprocess/parser_raw.ml" +# 86012 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -83821,15 +86016,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 83827 "src/ocaml/preprocess/parser_raw.ml" +# 86022 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83833 "src/ocaml/preprocess/parser_raw.ml" +# 86028 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -83920,12 +86115,12 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 83924 "src/ocaml/preprocess/parser_raw.ml" +# 86119 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 83929 "src/ocaml/preprocess/parser_raw.ml" +# 86124 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -83938,18 +86133,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 83942 "src/ocaml/preprocess/parser_raw.ml" +# 86137 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 83947 "src/ocaml/preprocess/parser_raw.ml" +# 86142 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 83953 "src/ocaml/preprocess/parser_raw.ml" +# 86148 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -83958,22 +86153,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83964 "src/ocaml/preprocess/parser_raw.ml" +# 86159 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 83970 "src/ocaml/preprocess/parser_raw.ml" +# 86165 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -83986,37 +86181,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 83990 "src/ocaml/preprocess/parser_raw.ml" +# 86185 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 83996 "src/ocaml/preprocess/parser_raw.ml" +# 86191 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84002 "src/ocaml/preprocess/parser_raw.ml" +# 86197 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84008 "src/ocaml/preprocess/parser_raw.ml" +# 86203 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 84014 "src/ocaml/preprocess/parser_raw.ml" +# 86209 "src/ocaml/preprocess/parser_raw.ml" in -# 3158 "src/ocaml/preprocess/parser_raw.mly" +# 3134 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_list_comprehension _1 ) -# 84020 "src/ocaml/preprocess/parser_raw.ml" +# 86215 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -84024,9 +86219,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 84030 "src/ocaml/preprocess/parser_raw.ml" +# 86225 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -84035,24 +86230,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 84041 "src/ocaml/preprocess/parser_raw.ml" +# 86236 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 84050 "src/ocaml/preprocess/parser_raw.ml" +# 86245 "src/ocaml/preprocess/parser_raw.ml" in -# 3284 "src/ocaml/preprocess/parser_raw.mly" +# 3260 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 84056 "src/ocaml/preprocess/parser_raw.ml" +# 86251 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -84060,15 +86255,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 84066 "src/ocaml/preprocess/parser_raw.ml" +# 86261 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84072 "src/ocaml/preprocess/parser_raw.ml" +# 86267 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -84166,12 +86361,12 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 84170 "src/ocaml/preprocess/parser_raw.ml" +# 86365 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84175 "src/ocaml/preprocess/parser_raw.ml" +# 86370 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -84186,18 +86381,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 84190 "src/ocaml/preprocess/parser_raw.ml" +# 86385 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84195 "src/ocaml/preprocess/parser_raw.ml" +# 86390 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84201 "src/ocaml/preprocess/parser_raw.ml" +# 86396 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -84206,22 +86401,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84212 "src/ocaml/preprocess/parser_raw.ml" +# 86407 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 84218 "src/ocaml/preprocess/parser_raw.ml" +# 86413 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -84234,7 +86429,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 84238 "src/ocaml/preprocess/parser_raw.ml" +# 86433 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -84242,39 +86437,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 84248 "src/ocaml/preprocess/parser_raw.ml" +# 86443 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84254 "src/ocaml/preprocess/parser_raw.ml" +# 86449 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84260 "src/ocaml/preprocess/parser_raw.ml" +# 86455 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84266 "src/ocaml/preprocess/parser_raw.ml" +# 86461 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 84272 "src/ocaml/preprocess/parser_raw.ml" +# 86467 "src/ocaml/preprocess/parser_raw.ml" in -# 3158 "src/ocaml/preprocess/parser_raw.mly" +# 3134 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_list_comprehension _1 ) -# 84278 "src/ocaml/preprocess/parser_raw.ml" +# 86473 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -84282,9 +86477,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 84288 "src/ocaml/preprocess/parser_raw.ml" +# 86483 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -84293,24 +86488,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 84299 "src/ocaml/preprocess/parser_raw.ml" +# 86494 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 84308 "src/ocaml/preprocess/parser_raw.ml" +# 86503 "src/ocaml/preprocess/parser_raw.ml" in -# 3284 "src/ocaml/preprocess/parser_raw.mly" +# 3260 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 84314 "src/ocaml/preprocess/parser_raw.ml" +# 86509 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -84318,15 +86513,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 84324 "src/ocaml/preprocess/parser_raw.ml" +# 86519 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84330 "src/ocaml/preprocess/parser_raw.ml" +# 86525 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -84395,37 +86590,37 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 84399 "src/ocaml/preprocess/parser_raw.ml" +# 86594 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84404 "src/ocaml/preprocess/parser_raw.ml" +# 86599 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84412 "src/ocaml/preprocess/parser_raw.ml" +# 86607 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84417 "src/ocaml/preprocess/parser_raw.ml" +# 86612 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 84423 "src/ocaml/preprocess/parser_raw.ml" +# 86618 "src/ocaml/preprocess/parser_raw.ml" in -# 3160 "src/ocaml/preprocess/parser_raw.mly" +# 3136 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Mutable, _1) ) -# 84429 "src/ocaml/preprocess/parser_raw.ml" +# 86624 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -84433,9 +86628,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 84439 "src/ocaml/preprocess/parser_raw.ml" +# 86634 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -84444,24 +86639,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 84450 "src/ocaml/preprocess/parser_raw.ml" +# 86645 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 84459 "src/ocaml/preprocess/parser_raw.ml" +# 86654 "src/ocaml/preprocess/parser_raw.ml" in -# 3284 "src/ocaml/preprocess/parser_raw.mly" +# 3260 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 84465 "src/ocaml/preprocess/parser_raw.ml" +# 86660 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -84469,15 +86664,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 84475 "src/ocaml/preprocess/parser_raw.ml" +# 86670 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84481 "src/ocaml/preprocess/parser_raw.ml" +# 86676 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -84568,12 +86763,12 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 84572 "src/ocaml/preprocess/parser_raw.ml" +# 86767 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84577 "src/ocaml/preprocess/parser_raw.ml" +# 86772 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -84586,18 +86781,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 84590 "src/ocaml/preprocess/parser_raw.ml" +# 86785 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84595 "src/ocaml/preprocess/parser_raw.ml" +# 86790 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84601 "src/ocaml/preprocess/parser_raw.ml" +# 86796 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -84606,22 +86801,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84612 "src/ocaml/preprocess/parser_raw.ml" +# 86807 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 84618 "src/ocaml/preprocess/parser_raw.ml" +# 86813 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -84634,37 +86829,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 84638 "src/ocaml/preprocess/parser_raw.ml" +# 86833 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84644 "src/ocaml/preprocess/parser_raw.ml" +# 86839 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84650 "src/ocaml/preprocess/parser_raw.ml" +# 86845 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84656 "src/ocaml/preprocess/parser_raw.ml" +# 86851 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 84662 "src/ocaml/preprocess/parser_raw.ml" +# 86857 "src/ocaml/preprocess/parser_raw.ml" in -# 3160 "src/ocaml/preprocess/parser_raw.mly" +# 3136 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Mutable, _1) ) -# 84668 "src/ocaml/preprocess/parser_raw.ml" +# 86863 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -84672,9 +86867,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 84678 "src/ocaml/preprocess/parser_raw.ml" +# 86873 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -84683,24 +86878,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 84689 "src/ocaml/preprocess/parser_raw.ml" +# 86884 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 84698 "src/ocaml/preprocess/parser_raw.ml" +# 86893 "src/ocaml/preprocess/parser_raw.ml" in -# 3284 "src/ocaml/preprocess/parser_raw.mly" +# 3260 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 84704 "src/ocaml/preprocess/parser_raw.ml" +# 86899 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -84708,15 +86903,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 84714 "src/ocaml/preprocess/parser_raw.ml" +# 86909 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84720 "src/ocaml/preprocess/parser_raw.ml" +# 86915 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -84814,12 +87009,12 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 84818 "src/ocaml/preprocess/parser_raw.ml" +# 87013 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84823 "src/ocaml/preprocess/parser_raw.ml" +# 87018 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -84834,18 +87029,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 84838 "src/ocaml/preprocess/parser_raw.ml" +# 87033 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84843 "src/ocaml/preprocess/parser_raw.ml" +# 87038 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 84849 "src/ocaml/preprocess/parser_raw.ml" +# 87044 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -84854,22 +87049,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84860 "src/ocaml/preprocess/parser_raw.ml" +# 87055 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 84866 "src/ocaml/preprocess/parser_raw.ml" +# 87061 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -84882,7 +87077,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 84886 "src/ocaml/preprocess/parser_raw.ml" +# 87081 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -84890,39 +87085,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 84896 "src/ocaml/preprocess/parser_raw.ml" +# 87091 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84902 "src/ocaml/preprocess/parser_raw.ml" +# 87097 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84908 "src/ocaml/preprocess/parser_raw.ml" +# 87103 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84914 "src/ocaml/preprocess/parser_raw.ml" +# 87109 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 84920 "src/ocaml/preprocess/parser_raw.ml" +# 87115 "src/ocaml/preprocess/parser_raw.ml" in -# 3160 "src/ocaml/preprocess/parser_raw.mly" +# 3136 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Mutable, _1) ) -# 84926 "src/ocaml/preprocess/parser_raw.ml" +# 87121 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -84930,9 +87125,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 84936 "src/ocaml/preprocess/parser_raw.ml" +# 87131 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -84941,24 +87136,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 84947 "src/ocaml/preprocess/parser_raw.ml" +# 87142 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 84956 "src/ocaml/preprocess/parser_raw.ml" +# 87151 "src/ocaml/preprocess/parser_raw.ml" in -# 3284 "src/ocaml/preprocess/parser_raw.mly" +# 3260 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 84962 "src/ocaml/preprocess/parser_raw.ml" +# 87157 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -84966,15 +87161,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 84972 "src/ocaml/preprocess/parser_raw.ml" +# 87167 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 84978 "src/ocaml/preprocess/parser_raw.ml" +# 87173 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -85043,37 +87238,37 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 85047 "src/ocaml/preprocess/parser_raw.ml" +# 87242 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85052 "src/ocaml/preprocess/parser_raw.ml" +# 87247 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85060 "src/ocaml/preprocess/parser_raw.ml" +# 87255 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85065 "src/ocaml/preprocess/parser_raw.ml" +# 87260 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 85071 "src/ocaml/preprocess/parser_raw.ml" +# 87266 "src/ocaml/preprocess/parser_raw.ml" in -# 3162 "src/ocaml/preprocess/parser_raw.mly" +# 3138 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Immutable, _1) ) -# 85077 "src/ocaml/preprocess/parser_raw.ml" +# 87272 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -85081,9 +87276,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 85087 "src/ocaml/preprocess/parser_raw.ml" +# 87282 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -85092,24 +87287,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 85098 "src/ocaml/preprocess/parser_raw.ml" +# 87293 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 85107 "src/ocaml/preprocess/parser_raw.ml" +# 87302 "src/ocaml/preprocess/parser_raw.ml" in -# 3284 "src/ocaml/preprocess/parser_raw.mly" +# 3260 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 85113 "src/ocaml/preprocess/parser_raw.ml" +# 87308 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -85117,15 +87312,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 85123 "src/ocaml/preprocess/parser_raw.ml" +# 87318 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85129 "src/ocaml/preprocess/parser_raw.ml" +# 87324 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -85216,12 +87411,12 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 85220 "src/ocaml/preprocess/parser_raw.ml" +# 87415 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85225 "src/ocaml/preprocess/parser_raw.ml" +# 87420 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -85234,18 +87429,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 85238 "src/ocaml/preprocess/parser_raw.ml" +# 87433 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85243 "src/ocaml/preprocess/parser_raw.ml" +# 87438 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85249 "src/ocaml/preprocess/parser_raw.ml" +# 87444 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -85254,22 +87449,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85260 "src/ocaml/preprocess/parser_raw.ml" +# 87455 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 85266 "src/ocaml/preprocess/parser_raw.ml" +# 87461 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -85282,37 +87477,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 85286 "src/ocaml/preprocess/parser_raw.ml" +# 87481 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85292 "src/ocaml/preprocess/parser_raw.ml" +# 87487 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85298 "src/ocaml/preprocess/parser_raw.ml" +# 87493 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85304 "src/ocaml/preprocess/parser_raw.ml" +# 87499 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 85310 "src/ocaml/preprocess/parser_raw.ml" +# 87505 "src/ocaml/preprocess/parser_raw.ml" in -# 3162 "src/ocaml/preprocess/parser_raw.mly" +# 3138 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Immutable, _1) ) -# 85316 "src/ocaml/preprocess/parser_raw.ml" +# 87511 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -85320,9 +87515,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 85326 "src/ocaml/preprocess/parser_raw.ml" +# 87521 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -85331,24 +87526,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 85337 "src/ocaml/preprocess/parser_raw.ml" +# 87532 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 85346 "src/ocaml/preprocess/parser_raw.ml" +# 87541 "src/ocaml/preprocess/parser_raw.ml" in -# 3284 "src/ocaml/preprocess/parser_raw.mly" +# 3260 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 85352 "src/ocaml/preprocess/parser_raw.ml" +# 87547 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -85356,15 +87551,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 85362 "src/ocaml/preprocess/parser_raw.ml" +# 87557 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85368 "src/ocaml/preprocess/parser_raw.ml" +# 87563 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -85462,12 +87657,12 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 85466 "src/ocaml/preprocess/parser_raw.ml" +# 87661 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85471 "src/ocaml/preprocess/parser_raw.ml" +# 87666 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -85482,18 +87677,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 85486 "src/ocaml/preprocess/parser_raw.ml" +# 87681 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85491 "src/ocaml/preprocess/parser_raw.ml" +# 87686 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 85497 "src/ocaml/preprocess/parser_raw.ml" +# 87692 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -85502,22 +87697,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85508 "src/ocaml/preprocess/parser_raw.ml" +# 87703 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 85514 "src/ocaml/preprocess/parser_raw.ml" +# 87709 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -85530,7 +87725,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 85534 "src/ocaml/preprocess/parser_raw.ml" +# 87729 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -85538,39 +87733,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 85544 "src/ocaml/preprocess/parser_raw.ml" +# 87739 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85550 "src/ocaml/preprocess/parser_raw.ml" +# 87745 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85556 "src/ocaml/preprocess/parser_raw.ml" +# 87751 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85562 "src/ocaml/preprocess/parser_raw.ml" +# 87757 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 85568 "src/ocaml/preprocess/parser_raw.ml" +# 87763 "src/ocaml/preprocess/parser_raw.ml" in -# 3162 "src/ocaml/preprocess/parser_raw.mly" +# 3138 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Immutable, _1) ) -# 85574 "src/ocaml/preprocess/parser_raw.ml" +# 87769 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -85578,9 +87773,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 85584 "src/ocaml/preprocess/parser_raw.ml" +# 87779 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -85589,24 +87784,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 85595 "src/ocaml/preprocess/parser_raw.ml" +# 87790 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 85604 "src/ocaml/preprocess/parser_raw.ml" +# 87799 "src/ocaml/preprocess/parser_raw.ml" in -# 3284 "src/ocaml/preprocess/parser_raw.mly" +# 3260 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, _3) ) -# 85610 "src/ocaml/preprocess/parser_raw.ml" +# 87805 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -85614,15 +87809,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 85620 "src/ocaml/preprocess/parser_raw.ml" +# 87815 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85626 "src/ocaml/preprocess/parser_raw.ml" +# 87821 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -85677,9 +87872,9 @@ module Tables = struct let _1 = let _1 = let _4 = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 85683 "src/ocaml/preprocess/parser_raw.ml" +# 87878 "src/ocaml/preprocess/parser_raw.ml" in let od = let _1 = @@ -85687,30 +87882,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 85693 "src/ocaml/preprocess/parser_raw.ml" +# 87888 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 85702 "src/ocaml/preprocess/parser_raw.ml" +# 87897 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _loc__5_ = (_startpos__5_, _endpos__5_) in -# 3286 "src/ocaml/preprocess/parser_raw.mly" +# 3262 "src/ocaml/preprocess/parser_raw.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) ) -# 85714 "src/ocaml/preprocess/parser_raw.ml" +# 87909 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -85718,15 +87913,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 85724 "src/ocaml/preprocess/parser_raw.ml" +# 87919 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85730 "src/ocaml/preprocess/parser_raw.ml" +# 87925 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -85776,18 +87971,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 3291 "src/ocaml/preprocess/parser_raw.mly" +# 3267 "src/ocaml/preprocess/parser_raw.mly" (Lident "[]") -# 85782 "src/ocaml/preprocess/parser_raw.ml" +# 87977 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 85791 "src/ocaml/preprocess/parser_raw.ml" +# 87986 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__3_, _startpos__3_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in @@ -85797,25 +87992,25 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 85803 "src/ocaml/preprocess/parser_raw.ml" +# 87998 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 85812 "src/ocaml/preprocess/parser_raw.ml" +# 88007 "src/ocaml/preprocess/parser_raw.ml" in let _loc__3_ = (_startpos__3_, _endpos__3_) in -# 3292 "src/ocaml/preprocess/parser_raw.mly" +# 3268 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_open(od, mkexp ~loc:_loc__3_ (Pexp_construct(_3, None))) ) -# 85819 "src/ocaml/preprocess/parser_raw.ml" +# 88014 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -85823,15 +88018,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 85829 "src/ocaml/preprocess/parser_raw.ml" +# 88024 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85835 "src/ocaml/preprocess/parser_raw.ml" +# 88030 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -85926,11 +88121,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 85934 "src/ocaml/preprocess/parser_raw.ml" +# 88129 "src/ocaml/preprocess/parser_raw.ml" in let _5 = @@ -85938,15 +88133,15 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85944 "src/ocaml/preprocess/parser_raw.ml" +# 88139 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 85950 "src/ocaml/preprocess/parser_raw.ml" +# 88145 "src/ocaml/preprocess/parser_raw.ml" in let od = @@ -85955,18 +88150,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 85961 "src/ocaml/preprocess/parser_raw.ml" +# 88156 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 85970 "src/ocaml/preprocess/parser_raw.ml" +# 88165 "src/ocaml/preprocess/parser_raw.ml" in let _startpos_od_ = _startpos__1_ in @@ -85974,12 +88169,12 @@ module Tables = struct let _symbolstartpos = _startpos_od_ in let _sloc = (_symbolstartpos, _endpos) in -# 3300 "src/ocaml/preprocess/parser_raw.mly" +# 3276 "src/ocaml/preprocess/parser_raw.mly" ( let modexp = mkexp_attrs ~loc:(_startpos__3_, _endpos) (Pexp_constraint (ghexp ~loc:_sloc (Pexp_pack _6), Some _8, [])) _5 in Pexp_open(od, modexp) ) -# 85983 "src/ocaml/preprocess/parser_raw.ml" +# 88178 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__9_ in @@ -85987,15 +88182,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 85993 "src/ocaml/preprocess/parser_raw.ml" +# 88188 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 85999 "src/ocaml/preprocess/parser_raw.ml" +# 88194 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -86039,18 +88234,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 86043 "src/ocaml/preprocess/parser_raw.ml" +# 88238 "src/ocaml/preprocess/parser_raw.ml" in -# 3628 "src/ocaml/preprocess/parser_raw.mly" +# 3609 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86048 "src/ocaml/preprocess/parser_raw.ml" +# 88243 "src/ocaml/preprocess/parser_raw.ml" in -# 3310 "src/ocaml/preprocess/parser_raw.mly" +# 3286 "src/ocaml/preprocess/parser_raw.mly" ( Pexp_unboxed_tuple _2 ) -# 86054 "src/ocaml/preprocess/parser_raw.ml" +# 88249 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -86058,15 +88253,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1329 "src/ocaml/preprocess/parser_raw.mly" +# 1341 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc _1 ) -# 86064 "src/ocaml/preprocess/parser_raw.ml" +# 88259 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3078 "src/ocaml/preprocess/parser_raw.mly" +# 3054 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86070 "src/ocaml/preprocess/parser_raw.ml" +# 88265 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -86107,20 +88302,20 @@ module Tables = struct let _1 = let _1 = let _2 = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 86113 "src/ocaml/preprocess/parser_raw.ml" +# 88308 "src/ocaml/preprocess/parser_raw.ml" in -# 3172 "src/ocaml/preprocess/parser_raw.mly" +# 3148 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal _2 ) -# 86118 "src/ocaml/preprocess/parser_raw.ml" +# 88313 "src/ocaml/preprocess/parser_raw.ml" in -# 3183 "src/ocaml/preprocess/parser_raw.mly" +# 3159 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 86124 "src/ocaml/preprocess/parser_raw.ml" +# 88319 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -86128,14 +88323,14 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3083 "src/ocaml/preprocess/parser_raw.mly" +# 3059 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" ~loc:_sloc Immutable _1 ) -# 86139 "src/ocaml/preprocess/parser_raw.ml" +# 88334 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -86168,14 +88363,14 @@ module Tables = struct let _v = let _1 = let _1 = -# 3178 "src/ocaml/preprocess/parser_raw.mly" +# 3154 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Simple.Literal [] ) -# 86174 "src/ocaml/preprocess/parser_raw.ml" +# 88369 "src/ocaml/preprocess/parser_raw.ml" in -# 3183 "src/ocaml/preprocess/parser_raw.mly" +# 3159 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Simple _1 ) -# 86179 "src/ocaml/preprocess/parser_raw.ml" +# 88374 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in @@ -86183,14 +88378,14 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3083 "src/ocaml/preprocess/parser_raw.mly" +# 3059 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" ~loc:_sloc Immutable _1 ) -# 86194 "src/ocaml/preprocess/parser_raw.ml" +# 88389 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -86244,9 +88439,9 @@ module Tables = struct let _v = let _1 = let _4 = -# 3669 "src/ocaml/preprocess/parser_raw.mly" +# 3650 "src/ocaml/preprocess/parser_raw.mly" ( es ) -# 86250 "src/ocaml/preprocess/parser_raw.ml" +# 88445 "src/ocaml/preprocess/parser_raw.ml" in let od = let _1 = @@ -86254,26 +88449,26 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 86260 "src/ocaml/preprocess/parser_raw.ml" +# 88455 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 86269 "src/ocaml/preprocess/parser_raw.ml" +# 88464 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in -# 3185 "src/ocaml/preprocess/parser_raw.mly" +# 3161 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, _4) ) -# 86277 "src/ocaml/preprocess/parser_raw.ml" +# 88472 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -86281,14 +88476,14 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3083 "src/ocaml/preprocess/parser_raw.mly" +# 3059 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" ~loc:_sloc Immutable _1 ) -# 86292 "src/ocaml/preprocess/parser_raw.ml" +# 88487 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -86340,26 +88535,26 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 86346 "src/ocaml/preprocess/parser_raw.ml" +# 88541 "src/ocaml/preprocess/parser_raw.ml" in let _loc__1_ = (_startpos__1_, _endpos__1_) in -# 2065 "src/ocaml/preprocess/parser_raw.mly" +# 2085 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _loc__1_ in let me = Mod.ident ~loc _1 in Opn.mk ~loc me ) -# 86355 "src/ocaml/preprocess/parser_raw.ml" +# 88550 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__4_ in -# 3188 "src/ocaml/preprocess/parser_raw.mly" +# 3164 "src/ocaml/preprocess/parser_raw.mly" ( (* TODO: review the location of Pexp_array *) Generic_array.Expression.Opened_literal(od, _startpos__3_, _endpos, []) ) -# 86363 "src/ocaml/preprocess/parser_raw.ml" +# 88558 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -86367,14 +88562,14 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3083 "src/ocaml/preprocess/parser_raw.mly" +# 3059 "src/ocaml/preprocess/parser_raw.mly" ( Generic_array.Expression.to_expression "[:" ":]" ~loc:_sloc Immutable _1 ) -# 86378 "src/ocaml/preprocess/parser_raw.ml" +# 88573 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -86402,9 +88597,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3089 "src/ocaml/preprocess/parser_raw.mly" +# 3065 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_constant _1) ) -# 86408 "src/ocaml/preprocess/parser_raw.ml" +# 88603 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -86456,37 +88651,37 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 86460 "src/ocaml/preprocess/parser_raw.ml" +# 88655 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86465 "src/ocaml/preprocess/parser_raw.ml" +# 88660 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86473 "src/ocaml/preprocess/parser_raw.ml" +# 88668 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86478 "src/ocaml/preprocess/parser_raw.ml" +# 88673 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 86484 "src/ocaml/preprocess/parser_raw.ml" +# 88679 "src/ocaml/preprocess/parser_raw.ml" in -# 3158 "src/ocaml/preprocess/parser_raw.mly" +# 3134 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_list_comprehension _1 ) -# 86490 "src/ocaml/preprocess/parser_raw.ml" +# 88685 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -86494,15 +88689,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 86500 "src/ocaml/preprocess/parser_raw.ml" +# 88695 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3090 "src/ocaml/preprocess/parser_raw.mly" +# 3066 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86506 "src/ocaml/preprocess/parser_raw.ml" +# 88701 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -86576,12 +88771,12 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 86580 "src/ocaml/preprocess/parser_raw.ml" +# 88775 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86585 "src/ocaml/preprocess/parser_raw.ml" +# 88780 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -86594,18 +88789,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 86598 "src/ocaml/preprocess/parser_raw.ml" +# 88793 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86603 "src/ocaml/preprocess/parser_raw.ml" +# 88798 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86609 "src/ocaml/preprocess/parser_raw.ml" +# 88804 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -86614,22 +88809,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86620 "src/ocaml/preprocess/parser_raw.ml" +# 88815 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 86626 "src/ocaml/preprocess/parser_raw.ml" +# 88821 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -86642,37 +88837,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 86646 "src/ocaml/preprocess/parser_raw.ml" +# 88841 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86652 "src/ocaml/preprocess/parser_raw.ml" +# 88847 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86658 "src/ocaml/preprocess/parser_raw.ml" +# 88853 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86664 "src/ocaml/preprocess/parser_raw.ml" +# 88859 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 86670 "src/ocaml/preprocess/parser_raw.ml" +# 88865 "src/ocaml/preprocess/parser_raw.ml" in -# 3158 "src/ocaml/preprocess/parser_raw.mly" +# 3134 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_list_comprehension _1 ) -# 86676 "src/ocaml/preprocess/parser_raw.ml" +# 88871 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -86680,15 +88875,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 86686 "src/ocaml/preprocess/parser_raw.ml" +# 88881 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3090 "src/ocaml/preprocess/parser_raw.mly" +# 3066 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86692 "src/ocaml/preprocess/parser_raw.ml" +# 88887 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -86769,12 +88964,12 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 86773 "src/ocaml/preprocess/parser_raw.ml" +# 88968 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86778 "src/ocaml/preprocess/parser_raw.ml" +# 88973 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -86789,18 +88984,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 86793 "src/ocaml/preprocess/parser_raw.ml" +# 88988 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86798 "src/ocaml/preprocess/parser_raw.ml" +# 88993 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86804 "src/ocaml/preprocess/parser_raw.ml" +# 88999 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -86809,22 +89004,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86815 "src/ocaml/preprocess/parser_raw.ml" +# 89010 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 86821 "src/ocaml/preprocess/parser_raw.ml" +# 89016 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -86837,7 +89032,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 86841 "src/ocaml/preprocess/parser_raw.ml" +# 89036 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -86845,39 +89040,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 86851 "src/ocaml/preprocess/parser_raw.ml" +# 89046 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86857 "src/ocaml/preprocess/parser_raw.ml" +# 89052 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86863 "src/ocaml/preprocess/parser_raw.ml" +# 89058 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86869 "src/ocaml/preprocess/parser_raw.ml" +# 89064 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 86875 "src/ocaml/preprocess/parser_raw.ml" +# 89070 "src/ocaml/preprocess/parser_raw.ml" in -# 3158 "src/ocaml/preprocess/parser_raw.mly" +# 3134 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_list_comprehension _1 ) -# 86881 "src/ocaml/preprocess/parser_raw.ml" +# 89076 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -86885,15 +89080,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 86891 "src/ocaml/preprocess/parser_raw.ml" +# 89086 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3090 "src/ocaml/preprocess/parser_raw.mly" +# 3066 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86897 "src/ocaml/preprocess/parser_raw.ml" +# 89092 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -86945,37 +89140,37 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 86949 "src/ocaml/preprocess/parser_raw.ml" +# 89144 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 86954 "src/ocaml/preprocess/parser_raw.ml" +# 89149 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86962 "src/ocaml/preprocess/parser_raw.ml" +# 89157 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86967 "src/ocaml/preprocess/parser_raw.ml" +# 89162 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 86973 "src/ocaml/preprocess/parser_raw.ml" +# 89168 "src/ocaml/preprocess/parser_raw.ml" in -# 3160 "src/ocaml/preprocess/parser_raw.mly" +# 3136 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Mutable, _1) ) -# 86979 "src/ocaml/preprocess/parser_raw.ml" +# 89174 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -86983,15 +89178,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 86989 "src/ocaml/preprocess/parser_raw.ml" +# 89184 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3090 "src/ocaml/preprocess/parser_raw.mly" +# 3066 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 86995 "src/ocaml/preprocess/parser_raw.ml" +# 89190 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -87065,12 +89260,12 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 87069 "src/ocaml/preprocess/parser_raw.ml" +# 89264 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87074 "src/ocaml/preprocess/parser_raw.ml" +# 89269 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -87083,18 +89278,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 87087 "src/ocaml/preprocess/parser_raw.ml" +# 89282 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87092 "src/ocaml/preprocess/parser_raw.ml" +# 89287 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87098 "src/ocaml/preprocess/parser_raw.ml" +# 89293 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -87103,22 +89298,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87109 "src/ocaml/preprocess/parser_raw.ml" +# 89304 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 87115 "src/ocaml/preprocess/parser_raw.ml" +# 89310 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -87131,37 +89326,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 87135 "src/ocaml/preprocess/parser_raw.ml" +# 89330 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87141 "src/ocaml/preprocess/parser_raw.ml" +# 89336 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87147 "src/ocaml/preprocess/parser_raw.ml" +# 89342 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87153 "src/ocaml/preprocess/parser_raw.ml" +# 89348 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 87159 "src/ocaml/preprocess/parser_raw.ml" +# 89354 "src/ocaml/preprocess/parser_raw.ml" in -# 3160 "src/ocaml/preprocess/parser_raw.mly" +# 3136 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Mutable, _1) ) -# 87165 "src/ocaml/preprocess/parser_raw.ml" +# 89360 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -87169,15 +89364,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 87175 "src/ocaml/preprocess/parser_raw.ml" +# 89370 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3090 "src/ocaml/preprocess/parser_raw.mly" +# 3066 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87181 "src/ocaml/preprocess/parser_raw.ml" +# 89376 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -87258,12 +89453,12 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 87262 "src/ocaml/preprocess/parser_raw.ml" +# 89457 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87267 "src/ocaml/preprocess/parser_raw.ml" +# 89462 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -87278,18 +89473,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 87282 "src/ocaml/preprocess/parser_raw.ml" +# 89477 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87287 "src/ocaml/preprocess/parser_raw.ml" +# 89482 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87293 "src/ocaml/preprocess/parser_raw.ml" +# 89488 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -87298,22 +89493,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87304 "src/ocaml/preprocess/parser_raw.ml" +# 89499 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 87310 "src/ocaml/preprocess/parser_raw.ml" +# 89505 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -87326,7 +89521,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 87330 "src/ocaml/preprocess/parser_raw.ml" +# 89525 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -87334,39 +89529,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 87340 "src/ocaml/preprocess/parser_raw.ml" +# 89535 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87346 "src/ocaml/preprocess/parser_raw.ml" +# 89541 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87352 "src/ocaml/preprocess/parser_raw.ml" +# 89547 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87358 "src/ocaml/preprocess/parser_raw.ml" +# 89553 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 87364 "src/ocaml/preprocess/parser_raw.ml" +# 89559 "src/ocaml/preprocess/parser_raw.ml" in -# 3160 "src/ocaml/preprocess/parser_raw.mly" +# 3136 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Mutable, _1) ) -# 87370 "src/ocaml/preprocess/parser_raw.ml" +# 89565 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -87374,15 +89569,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 87380 "src/ocaml/preprocess/parser_raw.ml" +# 89575 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3090 "src/ocaml/preprocess/parser_raw.mly" +# 3066 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87386 "src/ocaml/preprocess/parser_raw.ml" +# 89581 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -87434,37 +89629,37 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 87438 "src/ocaml/preprocess/parser_raw.ml" +# 89633 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87443 "src/ocaml/preprocess/parser_raw.ml" +# 89638 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in let _1 = -# 2716 "src/ocaml/preprocess/parser_raw.mly" +# 2743 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87451 "src/ocaml/preprocess/parser_raw.ml" +# 89646 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87456 "src/ocaml/preprocess/parser_raw.ml" +# 89651 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 87462 "src/ocaml/preprocess/parser_raw.ml" +# 89657 "src/ocaml/preprocess/parser_raw.ml" in -# 3162 "src/ocaml/preprocess/parser_raw.mly" +# 3138 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Immutable, _1) ) -# 87468 "src/ocaml/preprocess/parser_raw.ml" +# 89663 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -87472,15 +89667,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 87478 "src/ocaml/preprocess/parser_raw.ml" +# 89673 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3090 "src/ocaml/preprocess/parser_raw.mly" +# 3066 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87484 "src/ocaml/preprocess/parser_raw.ml" +# 89679 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -87554,12 +89749,12 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 87558 "src/ocaml/preprocess/parser_raw.ml" +# 89753 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87563 "src/ocaml/preprocess/parser_raw.ml" +# 89758 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -87572,18 +89767,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 87576 "src/ocaml/preprocess/parser_raw.ml" +# 89771 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87581 "src/ocaml/preprocess/parser_raw.ml" +# 89776 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87587 "src/ocaml/preprocess/parser_raw.ml" +# 89782 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -87592,22 +89787,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87598 "src/ocaml/preprocess/parser_raw.ml" +# 89793 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 87604 "src/ocaml/preprocess/parser_raw.ml" +# 89799 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -87620,37 +89815,37 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 87624 "src/ocaml/preprocess/parser_raw.ml" +# 89819 "src/ocaml/preprocess/parser_raw.ml" in -# 4732 "src/ocaml/preprocess/parser_raw.mly" +# 4729 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87630 "src/ocaml/preprocess/parser_raw.ml" +# 89825 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87636 "src/ocaml/preprocess/parser_raw.ml" +# 89831 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87642 "src/ocaml/preprocess/parser_raw.ml" +# 89837 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 87648 "src/ocaml/preprocess/parser_raw.ml" +# 89843 "src/ocaml/preprocess/parser_raw.ml" in -# 3162 "src/ocaml/preprocess/parser_raw.mly" +# 3138 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Immutable, _1) ) -# 87654 "src/ocaml/preprocess/parser_raw.ml" +# 89849 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -87658,15 +89853,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 87664 "src/ocaml/preprocess/parser_raw.ml" +# 89859 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3090 "src/ocaml/preprocess/parser_raw.mly" +# 3066 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87670 "src/ocaml/preprocess/parser_raw.ml" +# 89865 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -87747,12 +89942,12 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 87751 "src/ocaml/preprocess/parser_raw.ml" +# 89946 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87756 "src/ocaml/preprocess/parser_raw.ml" +# 89951 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -87767,18 +89962,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 87771 "src/ocaml/preprocess/parser_raw.ml" +# 89966 "src/ocaml/preprocess/parser_raw.ml" in -# 1511 "src/ocaml/preprocess/parser_raw.mly" +# 1523 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87776 "src/ocaml/preprocess/parser_raw.ml" +# 89971 "src/ocaml/preprocess/parser_raw.ml" in -# 3505 "src/ocaml/preprocess/parser_raw.mly" +# 3486 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 87782 "src/ocaml/preprocess/parser_raw.ml" +# 89977 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -87787,22 +89982,22 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87793 "src/ocaml/preprocess/parser_raw.ml" +# 89988 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 87799 "src/ocaml/preprocess/parser_raw.ml" +# 89994 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2719 "src/ocaml/preprocess/parser_raw.mly" +# 2746 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let cases = _3 in (* There are two choices of where to put attributes: on the @@ -87815,7 +90010,7 @@ module Tables = struct mkfunction [] empty_body_constraint (Pfunction_cases (cases, loc, [])) ~attrs:_2 ~loc:_sloc ) -# 87819 "src/ocaml/preprocess/parser_raw.ml" +# 90014 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos_xs_ in @@ -87823,39 +90018,39 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4729 "src/ocaml/preprocess/parser_raw.mly" +# 4726 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_stack _2) ) -# 87829 "src/ocaml/preprocess/parser_raw.ml" +# 90024 "src/ocaml/preprocess/parser_raw.ml" in -# 4733 "src/ocaml/preprocess/parser_raw.mly" +# 4730 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87835 "src/ocaml/preprocess/parser_raw.ml" +# 90030 "src/ocaml/preprocess/parser_raw.ml" in -# 2732 "src/ocaml/preprocess/parser_raw.mly" +# 2759 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87841 "src/ocaml/preprocess/parser_raw.ml" +# 90036 "src/ocaml/preprocess/parser_raw.ml" in -# 2990 "src/ocaml/preprocess/parser_raw.mly" +# 2966 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87847 "src/ocaml/preprocess/parser_raw.ml" +# 90042 "src/ocaml/preprocess/parser_raw.ml" in -# 3153 "src/ocaml/preprocess/parser_raw.mly" +# 3129 "src/ocaml/preprocess/parser_raw.mly" ( { pcomp_body = _2; pcomp_clauses = _3 } ) -# 87853 "src/ocaml/preprocess/parser_raw.ml" +# 90048 "src/ocaml/preprocess/parser_raw.ml" in -# 3162 "src/ocaml/preprocess/parser_raw.mly" +# 3138 "src/ocaml/preprocess/parser_raw.mly" ( Pcomp_array_comprehension (Immutable, _1) ) -# 87859 "src/ocaml/preprocess/parser_raw.ml" +# 90054 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__4_ in @@ -87863,15 +90058,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3167 "src/ocaml/preprocess/parser_raw.mly" +# 3143 "src/ocaml/preprocess/parser_raw.mly" ( mkexp ~loc:_sloc (Pexp_comprehension _1) ) -# 87869 "src/ocaml/preprocess/parser_raw.ml" +# 90064 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3090 "src/ocaml/preprocess/parser_raw.mly" +# 3066 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87875 "src/ocaml/preprocess/parser_raw.ml" +# 90070 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.expression)) in { @@ -87902,30 +90097,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 87908 "src/ocaml/preprocess/parser_raw.ml" +# 90103 "src/ocaml/preprocess/parser_raw.ml" in -# 3841 "src/ocaml/preprocess/parser_raw.mly" +# 3831 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_var (_1) ) -# 87914 "src/ocaml/preprocess/parser_raw.ml" +# 90109 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 87923 "src/ocaml/preprocess/parser_raw.ml" +# 90118 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3842 "src/ocaml/preprocess/parser_raw.mly" +# 3832 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87929 "src/ocaml/preprocess/parser_raw.ml" +# 90124 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -87949,9 +90144,73 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 3843 "src/ocaml/preprocess/parser_raw.mly" +# 3833 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 87955 "src/ocaml/preprocess/parser_raw.ml" +# 90150 "src/ocaml/preprocess/parser_raw.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.pattern) = 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.pattern) = +# 2854 "src/ocaml/preprocess/parser_raw.mly" + ( _1 ) +# 90175 "src/ocaml/preprocess/parser_raw.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.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 : (Parsetree.pattern) = +# 2856 "src/ocaml/preprocess/parser_raw.mly" + ( _2 ) +# 90214 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -87992,9 +90251,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3848 "src/ocaml/preprocess/parser_raw.mly" +# 3838 "src/ocaml/preprocess/parser_raw.mly" ( reloc_pat ~loc:_sloc _2 ) -# 87998 "src/ocaml/preprocess/parser_raw.ml" +# 90257 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -88018,9 +90277,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.pattern) = -# 3850 "src/ocaml/preprocess/parser_raw.mly" +# 3840 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88024 "src/ocaml/preprocess/parser_raw.ml" +# 90283 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -88084,9 +90343,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 88090 "src/ocaml/preprocess/parser_raw.ml" +# 90349 "src/ocaml/preprocess/parser_raw.ml" in let _3 = @@ -88094,24 +90353,24 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88100 "src/ocaml/preprocess/parser_raw.ml" +# 90359 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 88106 "src/ocaml/preprocess/parser_raw.ml" +# 90365 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3852 "src/ocaml/preprocess/parser_raw.mly" +# 3842 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_unpack _4) _3 ) -# 88115 "src/ocaml/preprocess/parser_raw.ml" +# 90374 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -88190,11 +90449,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4942 "src/ocaml/preprocess/parser_raw.mly" +# 4941 "src/ocaml/preprocess/parser_raw.mly" ( let (lid, cstrs, attrs) = package_type_of_module_type _1 in let descr = Ptyp_package (lid, cstrs) in mktyp ~loc:_sloc ~attrs descr ) -# 88198 "src/ocaml/preprocess/parser_raw.ml" +# 90457 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -88203,9 +90462,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 88209 "src/ocaml/preprocess/parser_raw.ml" +# 90468 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__4_, _startpos__4_) = (_endpos__1_inlined3_, _startpos__1_inlined3_) in @@ -88214,15 +90473,15 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88220 "src/ocaml/preprocess/parser_raw.ml" +# 90479 "src/ocaml/preprocess/parser_raw.ml" in -# 5422 "src/ocaml/preprocess/parser_raw.mly" +# 5421 "src/ocaml/preprocess/parser_raw.mly" ( _1, _2 ) -# 88226 "src/ocaml/preprocess/parser_raw.ml" +# 90485 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in @@ -88230,11 +90489,11 @@ module Tables = struct let _loc__4_ = (_startpos__4_, _endpos__4_) in let _sloc = (_symbolstartpos, _endpos) in ( -# 3854 "src/ocaml/preprocess/parser_raw.mly" +# 3844 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_attrs ~loc:_sloc (Ppat_constraint(mkpat ~loc:_loc__4_ (Ppat_unpack _4), Some _6, [])) _3 ) -# 88238 "src/ocaml/preprocess/parser_raw.ml" +# 90497 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -88261,29 +90520,29 @@ module Tables = struct let _1 = let _1 = let _1 = -# 3864 "src/ocaml/preprocess/parser_raw.mly" +# 3854 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_any ) -# 88267 "src/ocaml/preprocess/parser_raw.ml" +# 90526 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 88275 "src/ocaml/preprocess/parser_raw.ml" +# 90534 "src/ocaml/preprocess/parser_raw.ml" in -# 3898 "src/ocaml/preprocess/parser_raw.mly" +# 3888 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88281 "src/ocaml/preprocess/parser_raw.ml" +# 90540 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3858 "src/ocaml/preprocess/parser_raw.mly" +# 3848 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88287 "src/ocaml/preprocess/parser_raw.ml" +# 90546 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -88324,30 +90583,30 @@ module Tables = struct let _1 = let _1 = let _1 = -# 3866 "src/ocaml/preprocess/parser_raw.mly" +# 3856 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_interval (_1, _3) ) -# 88330 "src/ocaml/preprocess/parser_raw.ml" +# 90589 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 88339 "src/ocaml/preprocess/parser_raw.ml" +# 90598 "src/ocaml/preprocess/parser_raw.ml" in -# 3898 "src/ocaml/preprocess/parser_raw.mly" +# 3888 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88345 "src/ocaml/preprocess/parser_raw.ml" +# 90604 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3858 "src/ocaml/preprocess/parser_raw.mly" +# 3848 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88351 "src/ocaml/preprocess/parser_raw.ml" +# 90610 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -88379,36 +90638,36 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 88385 "src/ocaml/preprocess/parser_raw.ml" +# 90644 "src/ocaml/preprocess/parser_raw.ml" in -# 3868 "src/ocaml/preprocess/parser_raw.mly" +# 3858 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_construct(_1, None) ) -# 88391 "src/ocaml/preprocess/parser_raw.ml" +# 90650 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 88400 "src/ocaml/preprocess/parser_raw.ml" +# 90659 "src/ocaml/preprocess/parser_raw.ml" in -# 3898 "src/ocaml/preprocess/parser_raw.mly" +# 3888 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88406 "src/ocaml/preprocess/parser_raw.ml" +# 90665 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3858 "src/ocaml/preprocess/parser_raw.mly" +# 3848 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88412 "src/ocaml/preprocess/parser_raw.ml" +# 90671 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -88435,29 +90694,29 @@ module Tables = struct let _1 = let _1 = let _1 = -# 3870 "src/ocaml/preprocess/parser_raw.mly" +# 3860 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_variant(_1, None) ) -# 88441 "src/ocaml/preprocess/parser_raw.ml" +# 90700 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 88449 "src/ocaml/preprocess/parser_raw.ml" +# 90708 "src/ocaml/preprocess/parser_raw.ml" in -# 3898 "src/ocaml/preprocess/parser_raw.mly" +# 3888 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88455 "src/ocaml/preprocess/parser_raw.ml" +# 90714 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3858 "src/ocaml/preprocess/parser_raw.mly" +# 3848 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88461 "src/ocaml/preprocess/parser_raw.ml" +# 90720 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -88497,20 +90756,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 88503 "src/ocaml/preprocess/parser_raw.ml" +# 90762 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3203 "src/ocaml/preprocess/parser_raw.mly" +# 3179 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 88509 "src/ocaml/preprocess/parser_raw.ml" +# 90768 "src/ocaml/preprocess/parser_raw.ml" in -# 3872 "src/ocaml/preprocess/parser_raw.mly" +# 3862 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_type (_2) ) -# 88514 "src/ocaml/preprocess/parser_raw.ml" +# 90773 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -88518,21 +90777,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 88524 "src/ocaml/preprocess/parser_raw.ml" +# 90783 "src/ocaml/preprocess/parser_raw.ml" in -# 3898 "src/ocaml/preprocess/parser_raw.mly" +# 3888 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88530 "src/ocaml/preprocess/parser_raw.ml" +# 90789 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3858 "src/ocaml/preprocess/parser_raw.mly" +# 3848 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88536 "src/ocaml/preprocess/parser_raw.ml" +# 90795 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -88572,20 +90831,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 88578 "src/ocaml/preprocess/parser_raw.ml" +# 90837 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3204 "src/ocaml/preprocess/parser_raw.mly" +# 3180 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 88584 "src/ocaml/preprocess/parser_raw.ml" +# 90843 "src/ocaml/preprocess/parser_raw.ml" in -# 3872 "src/ocaml/preprocess/parser_raw.mly" +# 3862 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_type (_2) ) -# 88589 "src/ocaml/preprocess/parser_raw.ml" +# 90848 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -88593,21 +90852,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 88599 "src/ocaml/preprocess/parser_raw.ml" +# 90858 "src/ocaml/preprocess/parser_raw.ml" in -# 3898 "src/ocaml/preprocess/parser_raw.mly" +# 3888 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88605 "src/ocaml/preprocess/parser_raw.ml" +# 90864 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3858 "src/ocaml/preprocess/parser_raw.mly" +# 3848 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88611 "src/ocaml/preprocess/parser_raw.ml" +# 90870 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -88653,15 +90912,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 88659 "src/ocaml/preprocess/parser_raw.ml" +# 90918 "src/ocaml/preprocess/parser_raw.ml" in -# 3874 "src/ocaml/preprocess/parser_raw.mly" +# 3864 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_open(_1, _3) ) -# 88665 "src/ocaml/preprocess/parser_raw.ml" +# 90924 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__3_ in @@ -88669,21 +90928,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 88675 "src/ocaml/preprocess/parser_raw.ml" +# 90934 "src/ocaml/preprocess/parser_raw.ml" in -# 3898 "src/ocaml/preprocess/parser_raw.mly" +# 3888 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88681 "src/ocaml/preprocess/parser_raw.ml" +# 90940 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3858 "src/ocaml/preprocess/parser_raw.mly" +# 3848 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88687 "src/ocaml/preprocess/parser_raw.ml" +# 90946 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -88734,18 +90993,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 3875 "src/ocaml/preprocess/parser_raw.mly" +# 3865 "src/ocaml/preprocess/parser_raw.mly" (Lident "[]") -# 88740 "src/ocaml/preprocess/parser_raw.ml" +# 90999 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 88749 "src/ocaml/preprocess/parser_raw.ml" +# 91008 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__2_inlined1_ in @@ -88754,18 +91013,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 88760 "src/ocaml/preprocess/parser_raw.ml" +# 91019 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3876 "src/ocaml/preprocess/parser_raw.mly" +# 3866 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) -# 88769 "src/ocaml/preprocess/parser_raw.ml" +# 91028 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -88773,21 +91032,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 88779 "src/ocaml/preprocess/parser_raw.ml" +# 91038 "src/ocaml/preprocess/parser_raw.ml" in -# 3898 "src/ocaml/preprocess/parser_raw.mly" +# 3888 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88785 "src/ocaml/preprocess/parser_raw.ml" +# 91044 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3858 "src/ocaml/preprocess/parser_raw.mly" +# 3848 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88791 "src/ocaml/preprocess/parser_raw.ml" +# 91050 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -88838,18 +91097,18 @@ module Tables = struct let _3 = let (_endpos__2_, _startpos__1_) = (_endpos__2_inlined1_, _startpos__1_inlined1_) in let _1 = -# 3877 "src/ocaml/preprocess/parser_raw.mly" +# 3867 "src/ocaml/preprocess/parser_raw.mly" (Lident "()") -# 88844 "src/ocaml/preprocess/parser_raw.ml" +# 91103 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 88853 "src/ocaml/preprocess/parser_raw.ml" +# 91112 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos__2_inlined1_ in @@ -88858,18 +91117,18 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 88864 "src/ocaml/preprocess/parser_raw.ml" +# 91123 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__3_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3878 "src/ocaml/preprocess/parser_raw.mly" +# 3868 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_open(_1, mkpat ~loc:_sloc (Ppat_construct(_3, None))) ) -# 88873 "src/ocaml/preprocess/parser_raw.ml" +# 91132 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__2_inlined1_ in @@ -88877,21 +91136,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 88883 "src/ocaml/preprocess/parser_raw.ml" +# 91142 "src/ocaml/preprocess/parser_raw.ml" in -# 3898 "src/ocaml/preprocess/parser_raw.mly" +# 3888 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88889 "src/ocaml/preprocess/parser_raw.ml" +# 91148 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3858 "src/ocaml/preprocess/parser_raw.mly" +# 3848 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88895 "src/ocaml/preprocess/parser_raw.ml" +# 91154 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -88951,15 +91210,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 88957 "src/ocaml/preprocess/parser_raw.ml" +# 91216 "src/ocaml/preprocess/parser_raw.ml" in -# 3880 "src/ocaml/preprocess/parser_raw.mly" +# 3870 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_open (_1, _4) ) -# 88963 "src/ocaml/preprocess/parser_raw.ml" +# 91222 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -88967,21 +91226,21 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 88973 "src/ocaml/preprocess/parser_raw.ml" +# 91232 "src/ocaml/preprocess/parser_raw.ml" in -# 3898 "src/ocaml/preprocess/parser_raw.mly" +# 3888 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88979 "src/ocaml/preprocess/parser_raw.ml" +# 91238 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3858 "src/ocaml/preprocess/parser_raw.mly" +# 3848 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 88985 "src/ocaml/preprocess/parser_raw.ml" +# 91244 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -89008,29 +91267,29 @@ module Tables = struct let _1 = let _1 = let _1 = -# 3897 "src/ocaml/preprocess/parser_raw.mly" +# 3887 "src/ocaml/preprocess/parser_raw.mly" ( Ppat_extension _1 ) -# 89014 "src/ocaml/preprocess/parser_raw.ml" +# 91273 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1331 "src/ocaml/preprocess/parser_raw.mly" +# 1343 "src/ocaml/preprocess/parser_raw.mly" ( mkpat ~loc:_sloc _1 ) -# 89022 "src/ocaml/preprocess/parser_raw.ml" +# 91281 "src/ocaml/preprocess/parser_raw.ml" in -# 3898 "src/ocaml/preprocess/parser_raw.mly" +# 3888 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89028 "src/ocaml/preprocess/parser_raw.ml" +# 91287 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3858 "src/ocaml/preprocess/parser_raw.mly" +# 3848 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89034 "src/ocaml/preprocess/parser_raw.ml" +# 91293 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -89087,15 +91346,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 3906 "src/ocaml/preprocess/parser_raw.mly" +# 3890 "src/ocaml/preprocess/parser_raw.mly" ( mkpat_with_modes ~loc:_sloc ~pat:_2 ~cty:(Some _4) ~modes:[] ) -# 89093 "src/ocaml/preprocess/parser_raw.ml" +# 91352 "src/ocaml/preprocess/parser_raw.ml" in ( -# 3858 "src/ocaml/preprocess/parser_raw.mly" +# 3848 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89099 "src/ocaml/preprocess/parser_raw.ml" +# 91358 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -89123,9 +91382,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3859 "src/ocaml/preprocess/parser_raw.mly" +# 3849 "src/ocaml/preprocess/parser_raw.mly" ( mkpat (Ppat_constant _1) ~loc:_sloc ) -# 89129 "src/ocaml/preprocess/parser_raw.ml" +# 91388 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.pattern)) in { @@ -89145,17 +91404,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 89151 "src/ocaml/preprocess/parser_raw.ml" +# 91410 "src/ocaml/preprocess/parser_raw.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) = -# 5329 "src/ocaml/preprocess/parser_raw.mly" +# 5328 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89159 "src/ocaml/preprocess/parser_raw.ml" +# 91418 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89174,17 +91433,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1155 "src/ocaml/preprocess/parser_raw.mly" +# 1167 "src/ocaml/preprocess/parser_raw.mly" (string) -# 89180 "src/ocaml/preprocess/parser_raw.ml" +# 91439 "src/ocaml/preprocess/parser_raw.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) = -# 5330 "src/ocaml/preprocess/parser_raw.mly" +# 5329 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 89188 "src/ocaml/preprocess/parser_raw.ml" +# 91447 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89207,9 +91466,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5331 "src/ocaml/preprocess/parser_raw.mly" +# 5330 "src/ocaml/preprocess/parser_raw.mly" ( "and" ) -# 89213 "src/ocaml/preprocess/parser_raw.ml" +# 91472 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89232,9 +91491,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5332 "src/ocaml/preprocess/parser_raw.mly" +# 5331 "src/ocaml/preprocess/parser_raw.mly" ( "as" ) -# 89238 "src/ocaml/preprocess/parser_raw.ml" +# 91497 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89257,9 +91516,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5333 "src/ocaml/preprocess/parser_raw.mly" +# 5332 "src/ocaml/preprocess/parser_raw.mly" ( "assert" ) -# 89263 "src/ocaml/preprocess/parser_raw.ml" +# 91522 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89282,9 +91541,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5334 "src/ocaml/preprocess/parser_raw.mly" +# 5333 "src/ocaml/preprocess/parser_raw.mly" ( "begin" ) -# 89288 "src/ocaml/preprocess/parser_raw.ml" +# 91547 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89307,9 +91566,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5335 "src/ocaml/preprocess/parser_raw.mly" +# 5334 "src/ocaml/preprocess/parser_raw.mly" ( "class" ) -# 89313 "src/ocaml/preprocess/parser_raw.ml" +# 91572 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89332,9 +91591,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5336 "src/ocaml/preprocess/parser_raw.mly" +# 5335 "src/ocaml/preprocess/parser_raw.mly" ( "constraint" ) -# 89338 "src/ocaml/preprocess/parser_raw.ml" +# 91597 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89357,9 +91616,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5337 "src/ocaml/preprocess/parser_raw.mly" +# 5336 "src/ocaml/preprocess/parser_raw.mly" ( "do" ) -# 89363 "src/ocaml/preprocess/parser_raw.ml" +# 91622 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89382,9 +91641,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5338 "src/ocaml/preprocess/parser_raw.mly" +# 5337 "src/ocaml/preprocess/parser_raw.mly" ( "done" ) -# 89388 "src/ocaml/preprocess/parser_raw.ml" +# 91647 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89407,9 +91666,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5339 "src/ocaml/preprocess/parser_raw.mly" +# 5338 "src/ocaml/preprocess/parser_raw.mly" ( "downto" ) -# 89413 "src/ocaml/preprocess/parser_raw.ml" +# 91672 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89432,9 +91691,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5340 "src/ocaml/preprocess/parser_raw.mly" +# 5339 "src/ocaml/preprocess/parser_raw.mly" ( "else" ) -# 89438 "src/ocaml/preprocess/parser_raw.ml" +# 91697 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89457,9 +91716,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5341 "src/ocaml/preprocess/parser_raw.mly" +# 5340 "src/ocaml/preprocess/parser_raw.mly" ( "end" ) -# 89463 "src/ocaml/preprocess/parser_raw.ml" +# 91722 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89482,9 +91741,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5342 "src/ocaml/preprocess/parser_raw.mly" +# 5341 "src/ocaml/preprocess/parser_raw.mly" ( "exception" ) -# 89488 "src/ocaml/preprocess/parser_raw.ml" +# 91747 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89507,9 +91766,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5343 "src/ocaml/preprocess/parser_raw.mly" +# 5342 "src/ocaml/preprocess/parser_raw.mly" ( "external" ) -# 89513 "src/ocaml/preprocess/parser_raw.ml" +# 91772 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89532,9 +91791,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5344 "src/ocaml/preprocess/parser_raw.mly" +# 5343 "src/ocaml/preprocess/parser_raw.mly" ( "false" ) -# 89538 "src/ocaml/preprocess/parser_raw.ml" +# 91797 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89557,9 +91816,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5345 "src/ocaml/preprocess/parser_raw.mly" +# 5344 "src/ocaml/preprocess/parser_raw.mly" ( "for" ) -# 89563 "src/ocaml/preprocess/parser_raw.ml" +# 91822 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89582,9 +91841,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5346 "src/ocaml/preprocess/parser_raw.mly" +# 5345 "src/ocaml/preprocess/parser_raw.mly" ( "fun" ) -# 89588 "src/ocaml/preprocess/parser_raw.ml" +# 91847 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89607,9 +91866,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5347 "src/ocaml/preprocess/parser_raw.mly" +# 5346 "src/ocaml/preprocess/parser_raw.mly" ( "function" ) -# 89613 "src/ocaml/preprocess/parser_raw.ml" +# 91872 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89632,9 +91891,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5348 "src/ocaml/preprocess/parser_raw.mly" +# 5347 "src/ocaml/preprocess/parser_raw.mly" ( "functor" ) -# 89638 "src/ocaml/preprocess/parser_raw.ml" +# 91897 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89657,9 +91916,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5349 "src/ocaml/preprocess/parser_raw.mly" +# 5348 "src/ocaml/preprocess/parser_raw.mly" ( "if" ) -# 89663 "src/ocaml/preprocess/parser_raw.ml" +# 91922 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89682,9 +91941,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5350 "src/ocaml/preprocess/parser_raw.mly" +# 5349 "src/ocaml/preprocess/parser_raw.mly" ( "in" ) -# 89688 "src/ocaml/preprocess/parser_raw.ml" +# 91947 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89707,9 +91966,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5351 "src/ocaml/preprocess/parser_raw.mly" +# 5350 "src/ocaml/preprocess/parser_raw.mly" ( "include" ) -# 89713 "src/ocaml/preprocess/parser_raw.ml" +# 91972 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89732,9 +91991,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5352 "src/ocaml/preprocess/parser_raw.mly" +# 5351 "src/ocaml/preprocess/parser_raw.mly" ( "inherit" ) -# 89738 "src/ocaml/preprocess/parser_raw.ml" +# 91997 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89757,9 +92016,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5353 "src/ocaml/preprocess/parser_raw.mly" +# 5352 "src/ocaml/preprocess/parser_raw.mly" ( "initializer" ) -# 89763 "src/ocaml/preprocess/parser_raw.ml" +# 92022 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89782,9 +92041,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5354 "src/ocaml/preprocess/parser_raw.mly" +# 5353 "src/ocaml/preprocess/parser_raw.mly" ( "lazy" ) -# 89788 "src/ocaml/preprocess/parser_raw.ml" +# 92047 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89807,9 +92066,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5355 "src/ocaml/preprocess/parser_raw.mly" +# 5354 "src/ocaml/preprocess/parser_raw.mly" ( "let" ) -# 89813 "src/ocaml/preprocess/parser_raw.ml" +# 92072 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89832,9 +92091,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5356 "src/ocaml/preprocess/parser_raw.mly" +# 5355 "src/ocaml/preprocess/parser_raw.mly" ( "local_" ) -# 89838 "src/ocaml/preprocess/parser_raw.ml" +# 92097 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89857,9 +92116,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5357 "src/ocaml/preprocess/parser_raw.mly" +# 5356 "src/ocaml/preprocess/parser_raw.mly" ( "match" ) -# 89863 "src/ocaml/preprocess/parser_raw.ml" +# 92122 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89882,9 +92141,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5358 "src/ocaml/preprocess/parser_raw.mly" +# 5357 "src/ocaml/preprocess/parser_raw.mly" ( "method" ) -# 89888 "src/ocaml/preprocess/parser_raw.ml" +# 92147 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89907,9 +92166,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5359 "src/ocaml/preprocess/parser_raw.mly" +# 5358 "src/ocaml/preprocess/parser_raw.mly" ( "module" ) -# 89913 "src/ocaml/preprocess/parser_raw.ml" +# 92172 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89932,9 +92191,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5360 "src/ocaml/preprocess/parser_raw.mly" +# 5359 "src/ocaml/preprocess/parser_raw.mly" ( "mutable" ) -# 89938 "src/ocaml/preprocess/parser_raw.ml" +# 92197 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89957,9 +92216,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5361 "src/ocaml/preprocess/parser_raw.mly" +# 5360 "src/ocaml/preprocess/parser_raw.mly" ( "new" ) -# 89963 "src/ocaml/preprocess/parser_raw.ml" +# 92222 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -89982,9 +92241,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5362 "src/ocaml/preprocess/parser_raw.mly" +# 5361 "src/ocaml/preprocess/parser_raw.mly" ( "nonrec" ) -# 89988 "src/ocaml/preprocess/parser_raw.ml" +# 92247 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90007,9 +92266,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5363 "src/ocaml/preprocess/parser_raw.mly" +# 5362 "src/ocaml/preprocess/parser_raw.mly" ( "object" ) -# 90013 "src/ocaml/preprocess/parser_raw.ml" +# 92272 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90032,9 +92291,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5364 "src/ocaml/preprocess/parser_raw.mly" +# 5363 "src/ocaml/preprocess/parser_raw.mly" ( "of" ) -# 90038 "src/ocaml/preprocess/parser_raw.ml" +# 92297 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90057,9 +92316,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5365 "src/ocaml/preprocess/parser_raw.mly" +# 5364 "src/ocaml/preprocess/parser_raw.mly" ( "open" ) -# 90063 "src/ocaml/preprocess/parser_raw.ml" +# 92322 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90082,9 +92341,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5366 "src/ocaml/preprocess/parser_raw.mly" +# 5365 "src/ocaml/preprocess/parser_raw.mly" ( "or" ) -# 90088 "src/ocaml/preprocess/parser_raw.ml" +# 92347 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90107,9 +92366,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5367 "src/ocaml/preprocess/parser_raw.mly" +# 5366 "src/ocaml/preprocess/parser_raw.mly" ( "private" ) -# 90113 "src/ocaml/preprocess/parser_raw.ml" +# 92372 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90132,9 +92391,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5368 "src/ocaml/preprocess/parser_raw.mly" +# 5367 "src/ocaml/preprocess/parser_raw.mly" ( "rec" ) -# 90138 "src/ocaml/preprocess/parser_raw.ml" +# 92397 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90157,9 +92416,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5369 "src/ocaml/preprocess/parser_raw.mly" +# 5368 "src/ocaml/preprocess/parser_raw.mly" ( "sig" ) -# 90163 "src/ocaml/preprocess/parser_raw.ml" +# 92422 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90182,9 +92441,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5370 "src/ocaml/preprocess/parser_raw.mly" +# 5369 "src/ocaml/preprocess/parser_raw.mly" ( "struct" ) -# 90188 "src/ocaml/preprocess/parser_raw.ml" +# 92447 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90207,9 +92466,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5371 "src/ocaml/preprocess/parser_raw.mly" +# 5370 "src/ocaml/preprocess/parser_raw.mly" ( "then" ) -# 90213 "src/ocaml/preprocess/parser_raw.ml" +# 92472 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90232,9 +92491,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5372 "src/ocaml/preprocess/parser_raw.mly" +# 5371 "src/ocaml/preprocess/parser_raw.mly" ( "to" ) -# 90238 "src/ocaml/preprocess/parser_raw.ml" +# 92497 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90257,9 +92516,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5373 "src/ocaml/preprocess/parser_raw.mly" +# 5372 "src/ocaml/preprocess/parser_raw.mly" ( "true" ) -# 90263 "src/ocaml/preprocess/parser_raw.ml" +# 92522 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90282,9 +92541,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5374 "src/ocaml/preprocess/parser_raw.mly" +# 5373 "src/ocaml/preprocess/parser_raw.mly" ( "try" ) -# 90288 "src/ocaml/preprocess/parser_raw.ml" +# 92547 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90307,9 +92566,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5375 "src/ocaml/preprocess/parser_raw.mly" +# 5374 "src/ocaml/preprocess/parser_raw.mly" ( "type" ) -# 90313 "src/ocaml/preprocess/parser_raw.ml" +# 92572 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90332,9 +92591,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5376 "src/ocaml/preprocess/parser_raw.mly" +# 5375 "src/ocaml/preprocess/parser_raw.mly" ( "val" ) -# 90338 "src/ocaml/preprocess/parser_raw.ml" +# 92597 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90357,9 +92616,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5377 "src/ocaml/preprocess/parser_raw.mly" +# 5376 "src/ocaml/preprocess/parser_raw.mly" ( "virtual" ) -# 90363 "src/ocaml/preprocess/parser_raw.ml" +# 92622 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90382,9 +92641,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5378 "src/ocaml/preprocess/parser_raw.mly" +# 5377 "src/ocaml/preprocess/parser_raw.mly" ( "when" ) -# 90388 "src/ocaml/preprocess/parser_raw.ml" +# 92647 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90407,9 +92666,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5379 "src/ocaml/preprocess/parser_raw.mly" +# 5378 "src/ocaml/preprocess/parser_raw.mly" ( "while" ) -# 90413 "src/ocaml/preprocess/parser_raw.ml" +# 92672 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90432,9 +92691,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5380 "src/ocaml/preprocess/parser_raw.mly" +# 5379 "src/ocaml/preprocess/parser_raw.mly" ( "with" ) -# 90438 "src/ocaml/preprocess/parser_raw.ml" +# 92697 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90457,9 +92716,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.type_exception * string Location.loc option) = -# 4293 "src/ocaml/preprocess/parser_raw.mly" +# 4267 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90463 "src/ocaml/preprocess/parser_raw.ml" +# 92722 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90534,18 +92793,18 @@ module Tables = struct let attrs = let _1 = _1_inlined5 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90540 "src/ocaml/preprocess/parser_raw.ml" +# 92799 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs_ = _endpos__1_inlined5_ in let attrs2 = let _1 = _1_inlined4 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90549 "src/ocaml/preprocess/parser_raw.ml" +# 92808 "src/ocaml/preprocess/parser_raw.ml" in let lid = @@ -90554,9 +92813,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 90560 "src/ocaml/preprocess/parser_raw.ml" +# 92819 "src/ocaml/preprocess/parser_raw.ml" in let id = @@ -90565,30 +92824,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 90571 "src/ocaml/preprocess/parser_raw.ml" +# 92830 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90579 "src/ocaml/preprocess/parser_raw.ml" +# 92838 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4302 "src/ocaml/preprocess/parser_raw.mly" +# 4276 "src/ocaml/preprocess/parser_raw.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 ) -# 90592 "src/ocaml/preprocess/parser_raw.ml" +# 92851 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.type_exception * string Location.loc option)) in { @@ -90619,9 +92878,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.modes -> Parsetree.expression) = -# 3468 "src/ocaml/preprocess/parser_raw.mly" +# 3449 "src/ocaml/preprocess/parser_raw.mly" ( fun _ -> _2 ) -# 90625 "src/ocaml/preprocess/parser_raw.ml" +# 92884 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -90669,7 +92928,7 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3470 "src/ocaml/preprocess/parser_raw.mly" +# 3451 "src/ocaml/preprocess/parser_raw.mly" ( fun mode_annotations -> let constraint_ : function_constraint = let ret_type_constraint, ret_mode_annotations = @@ -90684,7 +92943,7 @@ module Tables = struct { exp with pexp_loc = { exp.pexp_loc with loc_ghost = true } } ) -# 90688 "src/ocaml/preprocess/parser_raw.ml" +# 92947 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.modes -> Parsetree.expression)) in { @@ -90761,9 +93020,9 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90767 "src/ocaml/preprocess/parser_raw.ml" +# 93026 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -90774,24 +93033,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 90778 "src/ocaml/preprocess/parser_raw.ml" +# 93037 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90783 "src/ocaml/preprocess/parser_raw.ml" +# 93042 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90789 "src/ocaml/preprocess/parser_raw.ml" +# 93048 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 90795 "src/ocaml/preprocess/parser_raw.ml" +# 93054 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -90799,57 +93058,57 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90805 "src/ocaml/preprocess/parser_raw.ml" +# 93064 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90811 "src/ocaml/preprocess/parser_raw.ml" +# 93070 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 90818 "src/ocaml/preprocess/parser_raw.ml" +# 93077 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 90825 "src/ocaml/preprocess/parser_raw.ml" +# 93084 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 90834 "src/ocaml/preprocess/parser_raw.ml" +# 93093 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 90841 "src/ocaml/preprocess/parser_raw.ml" +# 93100 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90846 "src/ocaml/preprocess/parser_raw.ml" +# 93105 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 90853 "src/ocaml/preprocess/parser_raw.ml" +# 93112 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -90857,15 +93116,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90863 "src/ocaml/preprocess/parser_raw.ml" +# 93122 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90869 "src/ocaml/preprocess/parser_raw.ml" +# 93128 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -90951,9 +93210,9 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 90957 "src/ocaml/preprocess/parser_raw.ml" +# 93216 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -90965,24 +93224,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 90969 "src/ocaml/preprocess/parser_raw.ml" +# 93228 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 90974 "src/ocaml/preprocess/parser_raw.ml" +# 93233 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 90980 "src/ocaml/preprocess/parser_raw.ml" +# 93239 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 90986 "src/ocaml/preprocess/parser_raw.ml" +# 93245 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -90990,57 +93249,57 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 90996 "src/ocaml/preprocess/parser_raw.ml" +# 93255 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91002 "src/ocaml/preprocess/parser_raw.ml" +# 93261 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91009 "src/ocaml/preprocess/parser_raw.ml" +# 93268 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91016 "src/ocaml/preprocess/parser_raw.ml" +# 93275 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91025 "src/ocaml/preprocess/parser_raw.ml" +# 93284 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 91032 "src/ocaml/preprocess/parser_raw.ml" +# 93291 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91037 "src/ocaml/preprocess/parser_raw.ml" +# 93296 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 91044 "src/ocaml/preprocess/parser_raw.ml" +# 93303 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -91048,15 +93307,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91054 "src/ocaml/preprocess/parser_raw.ml" +# 93313 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91060 "src/ocaml/preprocess/parser_raw.ml" +# 93319 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -91105,55 +93364,55 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91111 "src/ocaml/preprocess/parser_raw.ml" +# 93370 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 91117 "src/ocaml/preprocess/parser_raw.ml" +# 93376 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91123 "src/ocaml/preprocess/parser_raw.ml" +# 93382 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91129 "src/ocaml/preprocess/parser_raw.ml" +# 93388 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91138 "src/ocaml/preprocess/parser_raw.ml" +# 93397 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 91145 "src/ocaml/preprocess/parser_raw.ml" +# 93404 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91150 "src/ocaml/preprocess/parser_raw.ml" +# 93409 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 91157 "src/ocaml/preprocess/parser_raw.ml" +# 93416 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -91161,15 +93420,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91167 "src/ocaml/preprocess/parser_raw.ml" +# 93426 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91173 "src/ocaml/preprocess/parser_raw.ml" +# 93432 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -91225,55 +93484,55 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91231 "src/ocaml/preprocess/parser_raw.ml" +# 93490 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 91237 "src/ocaml/preprocess/parser_raw.ml" +# 93496 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91243 "src/ocaml/preprocess/parser_raw.ml" +# 93502 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91249 "src/ocaml/preprocess/parser_raw.ml" +# 93508 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91258 "src/ocaml/preprocess/parser_raw.ml" +# 93517 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 91265 "src/ocaml/preprocess/parser_raw.ml" +# 93524 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91270 "src/ocaml/preprocess/parser_raw.ml" +# 93529 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 91277 "src/ocaml/preprocess/parser_raw.ml" +# 93536 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -91281,15 +93540,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91287 "src/ocaml/preprocess/parser_raw.ml" +# 93546 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91293 "src/ocaml/preprocess/parser_raw.ml" +# 93552 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -91373,9 +93632,9 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91379 "src/ocaml/preprocess/parser_raw.ml" +# 93638 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -91387,24 +93646,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 91391 "src/ocaml/preprocess/parser_raw.ml" +# 93650 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91396 "src/ocaml/preprocess/parser_raw.ml" +# 93655 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91402 "src/ocaml/preprocess/parser_raw.ml" +# 93661 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 91408 "src/ocaml/preprocess/parser_raw.ml" +# 93667 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -91412,64 +93671,64 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91418 "src/ocaml/preprocess/parser_raw.ml" +# 93677 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91424 "src/ocaml/preprocess/parser_raw.ml" +# 93683 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91431 "src/ocaml/preprocess/parser_raw.ml" +# 93690 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91439 "src/ocaml/preprocess/parser_raw.ml" +# 93698 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91444 "src/ocaml/preprocess/parser_raw.ml" +# 93703 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91454 "src/ocaml/preprocess/parser_raw.ml" +# 93713 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 91461 "src/ocaml/preprocess/parser_raw.ml" +# 93720 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91466 "src/ocaml/preprocess/parser_raw.ml" +# 93725 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 91473 "src/ocaml/preprocess/parser_raw.ml" +# 93732 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -91477,15 +93736,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91483 "src/ocaml/preprocess/parser_raw.ml" +# 93742 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91489 "src/ocaml/preprocess/parser_raw.ml" +# 93748 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -91578,9 +93837,9 @@ module Tables = struct let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91584 "src/ocaml/preprocess/parser_raw.ml" +# 93843 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -91593,24 +93852,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 91597 "src/ocaml/preprocess/parser_raw.ml" +# 93856 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 91602 "src/ocaml/preprocess/parser_raw.ml" +# 93861 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91608 "src/ocaml/preprocess/parser_raw.ml" +# 93867 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 91614 "src/ocaml/preprocess/parser_raw.ml" +# 93873 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -91618,64 +93877,64 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91624 "src/ocaml/preprocess/parser_raw.ml" +# 93883 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91630 "src/ocaml/preprocess/parser_raw.ml" +# 93889 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91637 "src/ocaml/preprocess/parser_raw.ml" +# 93896 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91645 "src/ocaml/preprocess/parser_raw.ml" +# 93904 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91650 "src/ocaml/preprocess/parser_raw.ml" +# 93909 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91660 "src/ocaml/preprocess/parser_raw.ml" +# 93919 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 91667 "src/ocaml/preprocess/parser_raw.ml" +# 93926 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91672 "src/ocaml/preprocess/parser_raw.ml" +# 93931 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 91679 "src/ocaml/preprocess/parser_raw.ml" +# 93938 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -91683,15 +93942,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91689 "src/ocaml/preprocess/parser_raw.ml" +# 93948 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91695 "src/ocaml/preprocess/parser_raw.ml" +# 93954 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -91747,62 +94006,62 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 91753 "src/ocaml/preprocess/parser_raw.ml" +# 94012 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 91759 "src/ocaml/preprocess/parser_raw.ml" +# 94018 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91765 "src/ocaml/preprocess/parser_raw.ml" +# 94024 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91772 "src/ocaml/preprocess/parser_raw.ml" +# 94031 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91777 "src/ocaml/preprocess/parser_raw.ml" +# 94036 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91787 "src/ocaml/preprocess/parser_raw.ml" +# 94046 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 91794 "src/ocaml/preprocess/parser_raw.ml" +# 94053 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91799 "src/ocaml/preprocess/parser_raw.ml" +# 94058 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 91806 "src/ocaml/preprocess/parser_raw.ml" +# 94065 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -91810,15 +94069,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91816 "src/ocaml/preprocess/parser_raw.ml" +# 94075 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91822 "src/ocaml/preprocess/parser_raw.ml" +# 94081 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -91883,63 +94142,63 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91889 "src/ocaml/preprocess/parser_raw.ml" +# 94148 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 91896 "src/ocaml/preprocess/parser_raw.ml" +# 94155 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 91902 "src/ocaml/preprocess/parser_raw.ml" +# 94161 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91909 "src/ocaml/preprocess/parser_raw.ml" +# 94168 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 91914 "src/ocaml/preprocess/parser_raw.ml" +# 94173 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 91924 "src/ocaml/preprocess/parser_raw.ml" +# 94183 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 91931 "src/ocaml/preprocess/parser_raw.ml" +# 94190 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91936 "src/ocaml/preprocess/parser_raw.ml" +# 94195 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 91943 "src/ocaml/preprocess/parser_raw.ml" +# 94202 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -91947,15 +94206,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 91953 "src/ocaml/preprocess/parser_raw.ml" +# 94212 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 91959 "src/ocaml/preprocess/parser_raw.ml" +# 94218 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -92031,9 +94290,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 92037 "src/ocaml/preprocess/parser_raw.ml" +# 94296 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -92043,9 +94302,9 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92049 "src/ocaml/preprocess/parser_raw.ml" +# 94308 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -92056,24 +94315,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 92060 "src/ocaml/preprocess/parser_raw.ml" +# 94319 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92065 "src/ocaml/preprocess/parser_raw.ml" +# 94324 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92071 "src/ocaml/preprocess/parser_raw.ml" +# 94330 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 92077 "src/ocaml/preprocess/parser_raw.ml" +# 94336 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -92081,57 +94340,57 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92087 "src/ocaml/preprocess/parser_raw.ml" +# 94346 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92093 "src/ocaml/preprocess/parser_raw.ml" +# 94352 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92100 "src/ocaml/preprocess/parser_raw.ml" +# 94359 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92107 "src/ocaml/preprocess/parser_raw.ml" +# 94366 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92116 "src/ocaml/preprocess/parser_raw.ml" +# 94375 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 92123 "src/ocaml/preprocess/parser_raw.ml" +# 94382 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92128 "src/ocaml/preprocess/parser_raw.ml" +# 94387 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 92135 "src/ocaml/preprocess/parser_raw.ml" +# 94394 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -92139,15 +94398,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92145 "src/ocaml/preprocess/parser_raw.ml" +# 94404 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92151 "src/ocaml/preprocess/parser_raw.ml" +# 94410 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -92230,9 +94489,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 92236 "src/ocaml/preprocess/parser_raw.ml" +# 94495 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -92244,9 +94503,9 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92250 "src/ocaml/preprocess/parser_raw.ml" +# 94509 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -92258,24 +94517,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 92262 "src/ocaml/preprocess/parser_raw.ml" +# 94521 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92267 "src/ocaml/preprocess/parser_raw.ml" +# 94526 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92273 "src/ocaml/preprocess/parser_raw.ml" +# 94532 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 92279 "src/ocaml/preprocess/parser_raw.ml" +# 94538 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -92283,57 +94542,57 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92289 "src/ocaml/preprocess/parser_raw.ml" +# 94548 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92295 "src/ocaml/preprocess/parser_raw.ml" +# 94554 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92302 "src/ocaml/preprocess/parser_raw.ml" +# 94561 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92309 "src/ocaml/preprocess/parser_raw.ml" +# 94568 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92318 "src/ocaml/preprocess/parser_raw.ml" +# 94577 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 92325 "src/ocaml/preprocess/parser_raw.ml" +# 94584 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92330 "src/ocaml/preprocess/parser_raw.ml" +# 94589 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 92337 "src/ocaml/preprocess/parser_raw.ml" +# 94596 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -92341,15 +94600,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92347 "src/ocaml/preprocess/parser_raw.ml" +# 94606 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92353 "src/ocaml/preprocess/parser_raw.ml" +# 94612 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -92397,9 +94656,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 92403 "src/ocaml/preprocess/parser_raw.ml" +# 94662 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -92409,55 +94668,55 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92415 "src/ocaml/preprocess/parser_raw.ml" +# 94674 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 92421 "src/ocaml/preprocess/parser_raw.ml" +# 94680 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92427 "src/ocaml/preprocess/parser_raw.ml" +# 94686 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92433 "src/ocaml/preprocess/parser_raw.ml" +# 94692 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92442 "src/ocaml/preprocess/parser_raw.ml" +# 94701 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 92449 "src/ocaml/preprocess/parser_raw.ml" +# 94708 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92454 "src/ocaml/preprocess/parser_raw.ml" +# 94713 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 92461 "src/ocaml/preprocess/parser_raw.ml" +# 94720 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -92465,15 +94724,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92471 "src/ocaml/preprocess/parser_raw.ml" +# 94730 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92477 "src/ocaml/preprocess/parser_raw.ml" +# 94736 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -92528,9 +94787,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 92534 "src/ocaml/preprocess/parser_raw.ml" +# 94793 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -92540,55 +94799,55 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92546 "src/ocaml/preprocess/parser_raw.ml" +# 94805 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 92552 "src/ocaml/preprocess/parser_raw.ml" +# 94811 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92558 "src/ocaml/preprocess/parser_raw.ml" +# 94817 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92564 "src/ocaml/preprocess/parser_raw.ml" +# 94823 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92573 "src/ocaml/preprocess/parser_raw.ml" +# 94832 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 92580 "src/ocaml/preprocess/parser_raw.ml" +# 94839 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92585 "src/ocaml/preprocess/parser_raw.ml" +# 94844 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 92592 "src/ocaml/preprocess/parser_raw.ml" +# 94851 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -92596,15 +94855,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92602 "src/ocaml/preprocess/parser_raw.ml" +# 94861 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92608 "src/ocaml/preprocess/parser_raw.ml" +# 94867 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -92687,9 +94946,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 92693 "src/ocaml/preprocess/parser_raw.ml" +# 94952 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -92699,9 +94958,9 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 92705 "src/ocaml/preprocess/parser_raw.ml" +# 94964 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -92713,24 +94972,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 92717 "src/ocaml/preprocess/parser_raw.ml" +# 94976 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92722 "src/ocaml/preprocess/parser_raw.ml" +# 94981 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92728 "src/ocaml/preprocess/parser_raw.ml" +# 94987 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 92734 "src/ocaml/preprocess/parser_raw.ml" +# 94993 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -92738,64 +94997,64 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92744 "src/ocaml/preprocess/parser_raw.ml" +# 95003 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92750 "src/ocaml/preprocess/parser_raw.ml" +# 95009 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92757 "src/ocaml/preprocess/parser_raw.ml" +# 95016 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92765 "src/ocaml/preprocess/parser_raw.ml" +# 95024 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92770 "src/ocaml/preprocess/parser_raw.ml" +# 95029 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92780 "src/ocaml/preprocess/parser_raw.ml" +# 95039 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 92787 "src/ocaml/preprocess/parser_raw.ml" +# 95046 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92792 "src/ocaml/preprocess/parser_raw.ml" +# 95051 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 92799 "src/ocaml/preprocess/parser_raw.ml" +# 95058 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -92803,15 +95062,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92809 "src/ocaml/preprocess/parser_raw.ml" +# 95068 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92815 "src/ocaml/preprocess/parser_raw.ml" +# 95074 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -92901,9 +95160,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 92907 "src/ocaml/preprocess/parser_raw.ml" +# 95166 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -92915,9 +95174,9 @@ module Tables = struct let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92921 "src/ocaml/preprocess/parser_raw.ml" +# 95180 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -92930,24 +95189,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 92934 "src/ocaml/preprocess/parser_raw.ml" +# 95193 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 92939 "src/ocaml/preprocess/parser_raw.ml" +# 95198 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92945 "src/ocaml/preprocess/parser_raw.ml" +# 95204 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 92951 "src/ocaml/preprocess/parser_raw.ml" +# 95210 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -92955,64 +95214,64 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 92961 "src/ocaml/preprocess/parser_raw.ml" +# 95220 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92967 "src/ocaml/preprocess/parser_raw.ml" +# 95226 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 92974 "src/ocaml/preprocess/parser_raw.ml" +# 95233 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 92982 "src/ocaml/preprocess/parser_raw.ml" +# 95241 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 92987 "src/ocaml/preprocess/parser_raw.ml" +# 95246 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 92997 "src/ocaml/preprocess/parser_raw.ml" +# 95256 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 93004 "src/ocaml/preprocess/parser_raw.ml" +# 95263 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93009 "src/ocaml/preprocess/parser_raw.ml" +# 95268 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 93016 "src/ocaml/preprocess/parser_raw.ml" +# 95275 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -93020,15 +95279,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93026 "src/ocaml/preprocess/parser_raw.ml" +# 95285 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93032 "src/ocaml/preprocess/parser_raw.ml" +# 95291 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -93083,9 +95342,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93089 "src/ocaml/preprocess/parser_raw.ml" +# 95348 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -93095,62 +95354,62 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93101 "src/ocaml/preprocess/parser_raw.ml" +# 95360 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 93107 "src/ocaml/preprocess/parser_raw.ml" +# 95366 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 93113 "src/ocaml/preprocess/parser_raw.ml" +# 95372 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93120 "src/ocaml/preprocess/parser_raw.ml" +# 95379 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93125 "src/ocaml/preprocess/parser_raw.ml" +# 95384 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93135 "src/ocaml/preprocess/parser_raw.ml" +# 95394 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 93142 "src/ocaml/preprocess/parser_raw.ml" +# 95401 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93147 "src/ocaml/preprocess/parser_raw.ml" +# 95406 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 93154 "src/ocaml/preprocess/parser_raw.ml" +# 95413 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -93158,15 +95417,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93164 "src/ocaml/preprocess/parser_raw.ml" +# 95423 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93170 "src/ocaml/preprocess/parser_raw.ml" +# 95429 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -93228,9 +95487,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 93234 "src/ocaml/preprocess/parser_raw.ml" +# 95493 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -93242,63 +95501,63 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93248 "src/ocaml/preprocess/parser_raw.ml" +# 95507 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 93255 "src/ocaml/preprocess/parser_raw.ml" +# 95514 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 93261 "src/ocaml/preprocess/parser_raw.ml" +# 95520 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93268 "src/ocaml/preprocess/parser_raw.ml" +# 95527 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93273 "src/ocaml/preprocess/parser_raw.ml" +# 95532 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93283 "src/ocaml/preprocess/parser_raw.ml" +# 95542 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 93290 "src/ocaml/preprocess/parser_raw.ml" +# 95549 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93295 "src/ocaml/preprocess/parser_raw.ml" +# 95554 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 93302 "src/ocaml/preprocess/parser_raw.ml" +# 95561 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -93306,15 +95565,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93312 "src/ocaml/preprocess/parser_raw.ml" +# 95571 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93318 "src/ocaml/preprocess/parser_raw.ml" +# 95577 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -93384,9 +95643,9 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93390 "src/ocaml/preprocess/parser_raw.ml" +# 95649 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -93397,24 +95656,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 93401 "src/ocaml/preprocess/parser_raw.ml" +# 95660 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93406 "src/ocaml/preprocess/parser_raw.ml" +# 95665 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93412 "src/ocaml/preprocess/parser_raw.ml" +# 95671 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 93418 "src/ocaml/preprocess/parser_raw.ml" +# 95677 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -93422,50 +95681,50 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93428 "src/ocaml/preprocess/parser_raw.ml" +# 95687 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93434 "src/ocaml/preprocess/parser_raw.ml" +# 95693 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 93441 "src/ocaml/preprocess/parser_raw.ml" +# 95700 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93448 "src/ocaml/preprocess/parser_raw.ml" +# 95707 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93457 "src/ocaml/preprocess/parser_raw.ml" +# 95716 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 93463 "src/ocaml/preprocess/parser_raw.ml" +# 95722 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 93469 "src/ocaml/preprocess/parser_raw.ml" +# 95728 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -93473,15 +95732,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93479 "src/ocaml/preprocess/parser_raw.ml" +# 95738 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93485 "src/ocaml/preprocess/parser_raw.ml" +# 95744 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -93560,9 +95819,9 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93566 "src/ocaml/preprocess/parser_raw.ml" +# 95825 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -93574,24 +95833,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 93578 "src/ocaml/preprocess/parser_raw.ml" +# 95837 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93583 "src/ocaml/preprocess/parser_raw.ml" +# 95842 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93589 "src/ocaml/preprocess/parser_raw.ml" +# 95848 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 93595 "src/ocaml/preprocess/parser_raw.ml" +# 95854 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -93599,50 +95858,50 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93605 "src/ocaml/preprocess/parser_raw.ml" +# 95864 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93611 "src/ocaml/preprocess/parser_raw.ml" +# 95870 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 93618 "src/ocaml/preprocess/parser_raw.ml" +# 95877 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93625 "src/ocaml/preprocess/parser_raw.ml" +# 95884 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93634 "src/ocaml/preprocess/parser_raw.ml" +# 95893 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 93640 "src/ocaml/preprocess/parser_raw.ml" +# 95899 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 93646 "src/ocaml/preprocess/parser_raw.ml" +# 95905 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -93650,15 +95909,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93656 "src/ocaml/preprocess/parser_raw.ml" +# 95915 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93662 "src/ocaml/preprocess/parser_raw.ml" +# 95921 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -93700,48 +95959,48 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93706 "src/ocaml/preprocess/parser_raw.ml" +# 95965 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 93712 "src/ocaml/preprocess/parser_raw.ml" +# 95971 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 93718 "src/ocaml/preprocess/parser_raw.ml" +# 95977 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93724 "src/ocaml/preprocess/parser_raw.ml" +# 95983 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93733 "src/ocaml/preprocess/parser_raw.ml" +# 95992 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 93739 "src/ocaml/preprocess/parser_raw.ml" +# 95998 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 93745 "src/ocaml/preprocess/parser_raw.ml" +# 96004 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in @@ -93749,15 +96008,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93755 "src/ocaml/preprocess/parser_raw.ml" +# 96014 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93761 "src/ocaml/preprocess/parser_raw.ml" +# 96020 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -93806,48 +96065,48 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 93812 "src/ocaml/preprocess/parser_raw.ml" +# 96071 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 93818 "src/ocaml/preprocess/parser_raw.ml" +# 96077 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 93824 "src/ocaml/preprocess/parser_raw.ml" +# 96083 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93830 "src/ocaml/preprocess/parser_raw.ml" +# 96089 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 93839 "src/ocaml/preprocess/parser_raw.ml" +# 96098 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 93845 "src/ocaml/preprocess/parser_raw.ml" +# 96104 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 93851 "src/ocaml/preprocess/parser_raw.ml" +# 96110 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_ty_) in @@ -93855,15 +96114,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93861 "src/ocaml/preprocess/parser_raw.ml" +# 96120 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93867 "src/ocaml/preprocess/parser_raw.ml" +# 96126 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -93940,9 +96199,9 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 93946 "src/ocaml/preprocess/parser_raw.ml" +# 96205 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -93954,24 +96213,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 93958 "src/ocaml/preprocess/parser_raw.ml" +# 96217 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 93963 "src/ocaml/preprocess/parser_raw.ml" +# 96222 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93969 "src/ocaml/preprocess/parser_raw.ml" +# 96228 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 93975 "src/ocaml/preprocess/parser_raw.ml" +# 96234 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -93979,57 +96238,57 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 93985 "src/ocaml/preprocess/parser_raw.ml" +# 96244 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 93991 "src/ocaml/preprocess/parser_raw.ml" +# 96250 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 93998 "src/ocaml/preprocess/parser_raw.ml" +# 96257 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94006 "src/ocaml/preprocess/parser_raw.ml" +# 96265 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94011 "src/ocaml/preprocess/parser_raw.ml" +# 96270 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94021 "src/ocaml/preprocess/parser_raw.ml" +# 96280 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 94027 "src/ocaml/preprocess/parser_raw.ml" +# 96286 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 94033 "src/ocaml/preprocess/parser_raw.ml" +# 96292 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -94037,15 +96296,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94043 "src/ocaml/preprocess/parser_raw.ml" +# 96302 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94049 "src/ocaml/preprocess/parser_raw.ml" +# 96308 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -94131,9 +96390,9 @@ module Tables = struct let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94137 "src/ocaml/preprocess/parser_raw.ml" +# 96396 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -94146,24 +96405,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 94150 "src/ocaml/preprocess/parser_raw.ml" +# 96409 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94155 "src/ocaml/preprocess/parser_raw.ml" +# 96414 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94161 "src/ocaml/preprocess/parser_raw.ml" +# 96420 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 94167 "src/ocaml/preprocess/parser_raw.ml" +# 96426 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -94171,57 +96430,57 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94177 "src/ocaml/preprocess/parser_raw.ml" +# 96436 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94183 "src/ocaml/preprocess/parser_raw.ml" +# 96442 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 94190 "src/ocaml/preprocess/parser_raw.ml" +# 96449 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94198 "src/ocaml/preprocess/parser_raw.ml" +# 96457 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94203 "src/ocaml/preprocess/parser_raw.ml" +# 96462 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94213 "src/ocaml/preprocess/parser_raw.ml" +# 96472 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 94219 "src/ocaml/preprocess/parser_raw.ml" +# 96478 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 94225 "src/ocaml/preprocess/parser_raw.ml" +# 96484 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -94229,15 +96488,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94235 "src/ocaml/preprocess/parser_raw.ml" +# 96494 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94241 "src/ocaml/preprocess/parser_raw.ml" +# 96500 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -94286,55 +96545,55 @@ module Tables = struct let _1 = let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94292 "src/ocaml/preprocess/parser_raw.ml" +# 96551 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 94298 "src/ocaml/preprocess/parser_raw.ml" +# 96557 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 94304 "src/ocaml/preprocess/parser_raw.ml" +# 96563 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94311 "src/ocaml/preprocess/parser_raw.ml" +# 96570 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94316 "src/ocaml/preprocess/parser_raw.ml" +# 96575 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94326 "src/ocaml/preprocess/parser_raw.ml" +# 96585 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 94332 "src/ocaml/preprocess/parser_raw.ml" +# 96591 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 94338 "src/ocaml/preprocess/parser_raw.ml" +# 96597 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -94342,15 +96601,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94348 "src/ocaml/preprocess/parser_raw.ml" +# 96607 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94354 "src/ocaml/preprocess/parser_raw.ml" +# 96613 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -94408,56 +96667,56 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94414 "src/ocaml/preprocess/parser_raw.ml" +# 96673 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 94421 "src/ocaml/preprocess/parser_raw.ml" +# 96680 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 94427 "src/ocaml/preprocess/parser_raw.ml" +# 96686 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94434 "src/ocaml/preprocess/parser_raw.ml" +# 96693 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94439 "src/ocaml/preprocess/parser_raw.ml" +# 96698 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94449 "src/ocaml/preprocess/parser_raw.ml" +# 96708 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 94455 "src/ocaml/preprocess/parser_raw.ml" +# 96714 "src/ocaml/preprocess/parser_raw.ml" in -# 4565 "src/ocaml/preprocess/parser_raw.mly" +# 4577 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in Ptyp_arrow(label, domain , codomain, arg_modes, []) ) -# 94461 "src/ocaml/preprocess/parser_raw.ml" +# 96720 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_codomain_ in @@ -94465,15 +96724,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94471 "src/ocaml/preprocess/parser_raw.ml" +# 96730 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4568 "src/ocaml/preprocess/parser_raw.mly" +# 4580 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94477 "src/ocaml/preprocess/parser_raw.ml" +# 96736 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -94550,30 +96809,30 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94556 "src/ocaml/preprocess/parser_raw.ml" +# 96815 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94561 "src/ocaml/preprocess/parser_raw.ml" +# 96820 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94570 "src/ocaml/preprocess/parser_raw.ml" +# 96829 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94577 "src/ocaml/preprocess/parser_raw.ml" +# 96836 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -94584,24 +96843,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 94588 "src/ocaml/preprocess/parser_raw.ml" +# 96847 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94593 "src/ocaml/preprocess/parser_raw.ml" +# 96852 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94599 "src/ocaml/preprocess/parser_raw.ml" +# 96858 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 94605 "src/ocaml/preprocess/parser_raw.ml" +# 96864 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -94609,60 +96868,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94615 "src/ocaml/preprocess/parser_raw.ml" +# 96874 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94621 "src/ocaml/preprocess/parser_raw.ml" +# 96880 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 94628 "src/ocaml/preprocess/parser_raw.ml" +# 96887 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94635 "src/ocaml/preprocess/parser_raw.ml" +# 96894 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94644 "src/ocaml/preprocess/parser_raw.ml" +# 96903 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 94651 "src/ocaml/preprocess/parser_raw.ml" +# 96910 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94656 "src/ocaml/preprocess/parser_raw.ml" +# 96915 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 94666 "src/ocaml/preprocess/parser_raw.ml" +# 96925 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -94670,15 +96929,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94676 "src/ocaml/preprocess/parser_raw.ml" +# 96935 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94682 "src/ocaml/preprocess/parser_raw.ml" +# 96941 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -94763,30 +97022,30 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined1 in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94769 "src/ocaml/preprocess/parser_raw.ml" +# 97028 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94774 "src/ocaml/preprocess/parser_raw.ml" +# 97033 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94783 "src/ocaml/preprocess/parser_raw.ml" +# 97042 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94790 "src/ocaml/preprocess/parser_raw.ml" +# 97049 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -94797,24 +97056,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 94801 "src/ocaml/preprocess/parser_raw.ml" +# 97060 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 94806 "src/ocaml/preprocess/parser_raw.ml" +# 97065 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94812 "src/ocaml/preprocess/parser_raw.ml" +# 97071 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 94818 "src/ocaml/preprocess/parser_raw.ml" +# 97077 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -94822,60 +97081,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94828 "src/ocaml/preprocess/parser_raw.ml" +# 97087 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94834 "src/ocaml/preprocess/parser_raw.ml" +# 97093 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 94841 "src/ocaml/preprocess/parser_raw.ml" +# 97100 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94848 "src/ocaml/preprocess/parser_raw.ml" +# 97107 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 94857 "src/ocaml/preprocess/parser_raw.ml" +# 97116 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 94864 "src/ocaml/preprocess/parser_raw.ml" +# 97123 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94869 "src/ocaml/preprocess/parser_raw.ml" +# 97128 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 94879 "src/ocaml/preprocess/parser_raw.ml" +# 97138 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -94883,15 +97142,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 94889 "src/ocaml/preprocess/parser_raw.ml" +# 97148 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94895 "src/ocaml/preprocess/parser_raw.ml" +# 97154 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -94976,37 +97235,37 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined1 in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 94982 "src/ocaml/preprocess/parser_raw.ml" +# 97241 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 94988 "src/ocaml/preprocess/parser_raw.ml" +# 97247 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 94993 "src/ocaml/preprocess/parser_raw.ml" +# 97252 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95003 "src/ocaml/preprocess/parser_raw.ml" +# 97262 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95010 "src/ocaml/preprocess/parser_raw.ml" +# 97269 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -95017,24 +97276,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 95021 "src/ocaml/preprocess/parser_raw.ml" +# 97280 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95026 "src/ocaml/preprocess/parser_raw.ml" +# 97285 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95032 "src/ocaml/preprocess/parser_raw.ml" +# 97291 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 95038 "src/ocaml/preprocess/parser_raw.ml" +# 97297 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -95042,60 +97301,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95048 "src/ocaml/preprocess/parser_raw.ml" +# 97307 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95054 "src/ocaml/preprocess/parser_raw.ml" +# 97313 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 95061 "src/ocaml/preprocess/parser_raw.ml" +# 97320 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95068 "src/ocaml/preprocess/parser_raw.ml" +# 97327 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95077 "src/ocaml/preprocess/parser_raw.ml" +# 97336 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 95084 "src/ocaml/preprocess/parser_raw.ml" +# 97343 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95089 "src/ocaml/preprocess/parser_raw.ml" +# 97348 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 95099 "src/ocaml/preprocess/parser_raw.ml" +# 97358 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -95103,15 +97362,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95109 "src/ocaml/preprocess/parser_raw.ml" +# 97368 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95115 "src/ocaml/preprocess/parser_raw.ml" +# 97374 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -95205,38 +97464,38 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95211 "src/ocaml/preprocess/parser_raw.ml" +# 97470 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95218 "src/ocaml/preprocess/parser_raw.ml" +# 97477 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95223 "src/ocaml/preprocess/parser_raw.ml" +# 97482 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95233 "src/ocaml/preprocess/parser_raw.ml" +# 97492 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95240 "src/ocaml/preprocess/parser_raw.ml" +# 97499 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -95247,24 +97506,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 95251 "src/ocaml/preprocess/parser_raw.ml" +# 97510 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95256 "src/ocaml/preprocess/parser_raw.ml" +# 97515 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95262 "src/ocaml/preprocess/parser_raw.ml" +# 97521 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 95268 "src/ocaml/preprocess/parser_raw.ml" +# 97527 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -95272,60 +97531,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95278 "src/ocaml/preprocess/parser_raw.ml" +# 97537 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95284 "src/ocaml/preprocess/parser_raw.ml" +# 97543 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 95291 "src/ocaml/preprocess/parser_raw.ml" +# 97550 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95298 "src/ocaml/preprocess/parser_raw.ml" +# 97557 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95307 "src/ocaml/preprocess/parser_raw.ml" +# 97566 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 95314 "src/ocaml/preprocess/parser_raw.ml" +# 97573 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95319 "src/ocaml/preprocess/parser_raw.ml" +# 97578 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 95329 "src/ocaml/preprocess/parser_raw.ml" +# 97588 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -95333,15 +97592,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95339 "src/ocaml/preprocess/parser_raw.ml" +# 97598 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95345 "src/ocaml/preprocess/parser_raw.ml" +# 97604 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -95425,32 +97684,32 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95431 "src/ocaml/preprocess/parser_raw.ml" +# 97690 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95436 "src/ocaml/preprocess/parser_raw.ml" +# 97695 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95445 "src/ocaml/preprocess/parser_raw.ml" +# 97704 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95454 "src/ocaml/preprocess/parser_raw.ml" +# 97713 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -95462,24 +97721,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 95466 "src/ocaml/preprocess/parser_raw.ml" +# 97725 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95471 "src/ocaml/preprocess/parser_raw.ml" +# 97730 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95477 "src/ocaml/preprocess/parser_raw.ml" +# 97736 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 95483 "src/ocaml/preprocess/parser_raw.ml" +# 97742 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -95487,60 +97746,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95493 "src/ocaml/preprocess/parser_raw.ml" +# 97752 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95499 "src/ocaml/preprocess/parser_raw.ml" +# 97758 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 95506 "src/ocaml/preprocess/parser_raw.ml" +# 97765 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95513 "src/ocaml/preprocess/parser_raw.ml" +# 97772 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95522 "src/ocaml/preprocess/parser_raw.ml" +# 97781 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 95529 "src/ocaml/preprocess/parser_raw.ml" +# 97788 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95534 "src/ocaml/preprocess/parser_raw.ml" +# 97793 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 95544 "src/ocaml/preprocess/parser_raw.ml" +# 97803 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -95548,15 +97807,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95554 "src/ocaml/preprocess/parser_raw.ml" +# 97813 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95560 "src/ocaml/preprocess/parser_raw.ml" +# 97819 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -95648,32 +97907,32 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95654 "src/ocaml/preprocess/parser_raw.ml" +# 97913 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95659 "src/ocaml/preprocess/parser_raw.ml" +# 97918 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95668 "src/ocaml/preprocess/parser_raw.ml" +# 97927 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95677 "src/ocaml/preprocess/parser_raw.ml" +# 97936 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -95685,24 +97944,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 95689 "src/ocaml/preprocess/parser_raw.ml" +# 97948 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95694 "src/ocaml/preprocess/parser_raw.ml" +# 97953 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95700 "src/ocaml/preprocess/parser_raw.ml" +# 97959 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 95706 "src/ocaml/preprocess/parser_raw.ml" +# 97965 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -95710,60 +97969,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95716 "src/ocaml/preprocess/parser_raw.ml" +# 97975 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95722 "src/ocaml/preprocess/parser_raw.ml" +# 97981 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 95729 "src/ocaml/preprocess/parser_raw.ml" +# 97988 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95736 "src/ocaml/preprocess/parser_raw.ml" +# 97995 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95745 "src/ocaml/preprocess/parser_raw.ml" +# 98004 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 95752 "src/ocaml/preprocess/parser_raw.ml" +# 98011 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95757 "src/ocaml/preprocess/parser_raw.ml" +# 98016 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 95767 "src/ocaml/preprocess/parser_raw.ml" +# 98026 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -95771,15 +98030,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95777 "src/ocaml/preprocess/parser_raw.ml" +# 98036 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95783 "src/ocaml/preprocess/parser_raw.ml" +# 98042 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -95871,39 +98130,39 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95877 "src/ocaml/preprocess/parser_raw.ml" +# 98136 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95883 "src/ocaml/preprocess/parser_raw.ml" +# 98142 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95888 "src/ocaml/preprocess/parser_raw.ml" +# 98147 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95898 "src/ocaml/preprocess/parser_raw.ml" +# 98157 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 95907 "src/ocaml/preprocess/parser_raw.ml" +# 98166 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -95915,24 +98174,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 95919 "src/ocaml/preprocess/parser_raw.ml" +# 98178 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 95924 "src/ocaml/preprocess/parser_raw.ml" +# 98183 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95930 "src/ocaml/preprocess/parser_raw.ml" +# 98189 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 95936 "src/ocaml/preprocess/parser_raw.ml" +# 98195 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -95940,60 +98199,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 95946 "src/ocaml/preprocess/parser_raw.ml" +# 98205 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95952 "src/ocaml/preprocess/parser_raw.ml" +# 98211 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 95959 "src/ocaml/preprocess/parser_raw.ml" +# 98218 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 95966 "src/ocaml/preprocess/parser_raw.ml" +# 98225 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 95975 "src/ocaml/preprocess/parser_raw.ml" +# 98234 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 95982 "src/ocaml/preprocess/parser_raw.ml" +# 98241 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 95987 "src/ocaml/preprocess/parser_raw.ml" +# 98246 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 95997 "src/ocaml/preprocess/parser_raw.ml" +# 98256 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -96001,15 +98260,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96007 "src/ocaml/preprocess/parser_raw.ml" +# 98266 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96013 "src/ocaml/preprocess/parser_raw.ml" +# 98272 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -96110,40 +98369,40 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96116 "src/ocaml/preprocess/parser_raw.ml" +# 98375 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96123 "src/ocaml/preprocess/parser_raw.ml" +# 98382 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96128 "src/ocaml/preprocess/parser_raw.ml" +# 98387 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96138 "src/ocaml/preprocess/parser_raw.ml" +# 98397 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96147 "src/ocaml/preprocess/parser_raw.ml" +# 98406 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -96155,24 +98414,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 96159 "src/ocaml/preprocess/parser_raw.ml" +# 98418 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 96164 "src/ocaml/preprocess/parser_raw.ml" +# 98423 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96170 "src/ocaml/preprocess/parser_raw.ml" +# 98429 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 96176 "src/ocaml/preprocess/parser_raw.ml" +# 98435 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -96180,60 +98439,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96186 "src/ocaml/preprocess/parser_raw.ml" +# 98445 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96192 "src/ocaml/preprocess/parser_raw.ml" +# 98451 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 96199 "src/ocaml/preprocess/parser_raw.ml" +# 98458 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96206 "src/ocaml/preprocess/parser_raw.ml" +# 98465 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96215 "src/ocaml/preprocess/parser_raw.ml" +# 98474 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 96222 "src/ocaml/preprocess/parser_raw.ml" +# 98481 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96227 "src/ocaml/preprocess/parser_raw.ml" +# 98486 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 96237 "src/ocaml/preprocess/parser_raw.ml" +# 98496 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -96241,15 +98500,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96247 "src/ocaml/preprocess/parser_raw.ml" +# 98506 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96253 "src/ocaml/preprocess/parser_raw.ml" +# 98512 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -96299,79 +98558,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96305 "src/ocaml/preprocess/parser_raw.ml" +# 98564 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96310 "src/ocaml/preprocess/parser_raw.ml" +# 98569 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96319 "src/ocaml/preprocess/parser_raw.ml" +# 98578 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96326 "src/ocaml/preprocess/parser_raw.ml" +# 98585 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 96332 "src/ocaml/preprocess/parser_raw.ml" +# 98591 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 96338 "src/ocaml/preprocess/parser_raw.ml" +# 98597 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96344 "src/ocaml/preprocess/parser_raw.ml" +# 98603 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96353 "src/ocaml/preprocess/parser_raw.ml" +# 98612 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 96360 "src/ocaml/preprocess/parser_raw.ml" +# 98619 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96365 "src/ocaml/preprocess/parser_raw.ml" +# 98624 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 96375 "src/ocaml/preprocess/parser_raw.ml" +# 98634 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -96379,15 +98638,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96385 "src/ocaml/preprocess/parser_raw.ml" +# 98644 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96391 "src/ocaml/preprocess/parser_raw.ml" +# 98650 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -96444,79 +98703,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96450 "src/ocaml/preprocess/parser_raw.ml" +# 98709 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96455 "src/ocaml/preprocess/parser_raw.ml" +# 98714 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96464 "src/ocaml/preprocess/parser_raw.ml" +# 98723 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96471 "src/ocaml/preprocess/parser_raw.ml" +# 98730 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 96477 "src/ocaml/preprocess/parser_raw.ml" +# 98736 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 96483 "src/ocaml/preprocess/parser_raw.ml" +# 98742 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96489 "src/ocaml/preprocess/parser_raw.ml" +# 98748 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96498 "src/ocaml/preprocess/parser_raw.ml" +# 98757 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 96505 "src/ocaml/preprocess/parser_raw.ml" +# 98764 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96510 "src/ocaml/preprocess/parser_raw.ml" +# 98769 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 96520 "src/ocaml/preprocess/parser_raw.ml" +# 98779 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_label_ in @@ -96524,15 +98783,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96530 "src/ocaml/preprocess/parser_raw.ml" +# 98789 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96536 "src/ocaml/preprocess/parser_raw.ml" +# 98795 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -96589,86 +98848,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96595 "src/ocaml/preprocess/parser_raw.ml" +# 98854 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96601 "src/ocaml/preprocess/parser_raw.ml" +# 98860 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96606 "src/ocaml/preprocess/parser_raw.ml" +# 98865 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96616 "src/ocaml/preprocess/parser_raw.ml" +# 98875 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96623 "src/ocaml/preprocess/parser_raw.ml" +# 98882 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 96629 "src/ocaml/preprocess/parser_raw.ml" +# 98888 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 96635 "src/ocaml/preprocess/parser_raw.ml" +# 98894 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96641 "src/ocaml/preprocess/parser_raw.ml" +# 98900 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96650 "src/ocaml/preprocess/parser_raw.ml" +# 98909 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 96657 "src/ocaml/preprocess/parser_raw.ml" +# 98916 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96662 "src/ocaml/preprocess/parser_raw.ml" +# 98921 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 96672 "src/ocaml/preprocess/parser_raw.ml" +# 98931 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -96676,15 +98935,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96682 "src/ocaml/preprocess/parser_raw.ml" +# 98941 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96688 "src/ocaml/preprocess/parser_raw.ml" +# 98947 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -96750,87 +99009,87 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96756 "src/ocaml/preprocess/parser_raw.ml" +# 99015 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96763 "src/ocaml/preprocess/parser_raw.ml" +# 99022 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96768 "src/ocaml/preprocess/parser_raw.ml" +# 99027 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96778 "src/ocaml/preprocess/parser_raw.ml" +# 99037 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96785 "src/ocaml/preprocess/parser_raw.ml" +# 99044 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 96791 "src/ocaml/preprocess/parser_raw.ml" +# 99050 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 96797 "src/ocaml/preprocess/parser_raw.ml" +# 99056 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96803 "src/ocaml/preprocess/parser_raw.ml" +# 99062 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96812 "src/ocaml/preprocess/parser_raw.ml" +# 99071 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 96819 "src/ocaml/preprocess/parser_raw.ml" +# 99078 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96824 "src/ocaml/preprocess/parser_raw.ml" +# 99083 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 96834 "src/ocaml/preprocess/parser_raw.ml" +# 99093 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -96838,15 +99097,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96844 "src/ocaml/preprocess/parser_raw.ml" +# 99103 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96850 "src/ocaml/preprocess/parser_raw.ml" +# 99109 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -96903,79 +99162,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96909 "src/ocaml/preprocess/parser_raw.ml" +# 99168 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96914 "src/ocaml/preprocess/parser_raw.ml" +# 99173 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96923 "src/ocaml/preprocess/parser_raw.ml" +# 99182 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 96930 "src/ocaml/preprocess/parser_raw.ml" +# 99189 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 96936 "src/ocaml/preprocess/parser_raw.ml" +# 99195 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 96942 "src/ocaml/preprocess/parser_raw.ml" +# 99201 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 96948 "src/ocaml/preprocess/parser_raw.ml" +# 99207 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 96957 "src/ocaml/preprocess/parser_raw.ml" +# 99216 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 96964 "src/ocaml/preprocess/parser_raw.ml" +# 99223 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96969 "src/ocaml/preprocess/parser_raw.ml" +# 99228 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 96979 "src/ocaml/preprocess/parser_raw.ml" +# 99238 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -96983,15 +99242,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 96989 "src/ocaml/preprocess/parser_raw.ml" +# 99248 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 96995 "src/ocaml/preprocess/parser_raw.ml" +# 99254 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -97055,79 +99314,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97061 "src/ocaml/preprocess/parser_raw.ml" +# 99320 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97066 "src/ocaml/preprocess/parser_raw.ml" +# 99325 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97075 "src/ocaml/preprocess/parser_raw.ml" +# 99334 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97082 "src/ocaml/preprocess/parser_raw.ml" +# 99341 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 97088 "src/ocaml/preprocess/parser_raw.ml" +# 99347 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 97094 "src/ocaml/preprocess/parser_raw.ml" +# 99353 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97100 "src/ocaml/preprocess/parser_raw.ml" +# 99359 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97109 "src/ocaml/preprocess/parser_raw.ml" +# 99368 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 97116 "src/ocaml/preprocess/parser_raw.ml" +# 99375 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97121 "src/ocaml/preprocess/parser_raw.ml" +# 99380 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 97131 "src/ocaml/preprocess/parser_raw.ml" +# 99390 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -97135,15 +99394,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97141 "src/ocaml/preprocess/parser_raw.ml" +# 99400 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97147 "src/ocaml/preprocess/parser_raw.ml" +# 99406 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -97207,86 +99466,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97213 "src/ocaml/preprocess/parser_raw.ml" +# 99472 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97219 "src/ocaml/preprocess/parser_raw.ml" +# 99478 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97224 "src/ocaml/preprocess/parser_raw.ml" +# 99483 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97234 "src/ocaml/preprocess/parser_raw.ml" +# 99493 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97241 "src/ocaml/preprocess/parser_raw.ml" +# 99500 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 97247 "src/ocaml/preprocess/parser_raw.ml" +# 99506 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 97253 "src/ocaml/preprocess/parser_raw.ml" +# 99512 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97259 "src/ocaml/preprocess/parser_raw.ml" +# 99518 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97268 "src/ocaml/preprocess/parser_raw.ml" +# 99527 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 97275 "src/ocaml/preprocess/parser_raw.ml" +# 99534 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97280 "src/ocaml/preprocess/parser_raw.ml" +# 99539 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 97290 "src/ocaml/preprocess/parser_raw.ml" +# 99549 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -97294,15 +99553,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97300 "src/ocaml/preprocess/parser_raw.ml" +# 99559 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97306 "src/ocaml/preprocess/parser_raw.ml" +# 99565 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -97375,87 +99634,87 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97381 "src/ocaml/preprocess/parser_raw.ml" +# 99640 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97388 "src/ocaml/preprocess/parser_raw.ml" +# 99647 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97393 "src/ocaml/preprocess/parser_raw.ml" +# 99652 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97403 "src/ocaml/preprocess/parser_raw.ml" +# 99662 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97410 "src/ocaml/preprocess/parser_raw.ml" +# 99669 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 97416 "src/ocaml/preprocess/parser_raw.ml" +# 99675 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 97422 "src/ocaml/preprocess/parser_raw.ml" +# 99681 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97428 "src/ocaml/preprocess/parser_raw.ml" +# 99687 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97437 "src/ocaml/preprocess/parser_raw.ml" +# 99696 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 97444 "src/ocaml/preprocess/parser_raw.ml" +# 99703 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97449 "src/ocaml/preprocess/parser_raw.ml" +# 99708 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 97459 "src/ocaml/preprocess/parser_raw.ml" +# 99718 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -97463,15 +99722,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97469 "src/ocaml/preprocess/parser_raw.ml" +# 99728 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97475 "src/ocaml/preprocess/parser_raw.ml" +# 99734 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -97555,30 +99814,30 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97561 "src/ocaml/preprocess/parser_raw.ml" +# 99820 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97566 "src/ocaml/preprocess/parser_raw.ml" +# 99825 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97575 "src/ocaml/preprocess/parser_raw.ml" +# 99834 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97582 "src/ocaml/preprocess/parser_raw.ml" +# 99841 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -97590,24 +99849,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 97594 "src/ocaml/preprocess/parser_raw.ml" +# 99853 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 97599 "src/ocaml/preprocess/parser_raw.ml" +# 99858 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97605 "src/ocaml/preprocess/parser_raw.ml" +# 99864 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 97611 "src/ocaml/preprocess/parser_raw.ml" +# 99870 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -97615,67 +99874,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97621 "src/ocaml/preprocess/parser_raw.ml" +# 99880 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97627 "src/ocaml/preprocess/parser_raw.ml" +# 99886 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 97634 "src/ocaml/preprocess/parser_raw.ml" +# 99893 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97642 "src/ocaml/preprocess/parser_raw.ml" +# 99901 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97647 "src/ocaml/preprocess/parser_raw.ml" +# 99906 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97657 "src/ocaml/preprocess/parser_raw.ml" +# 99916 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 97664 "src/ocaml/preprocess/parser_raw.ml" +# 99923 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97669 "src/ocaml/preprocess/parser_raw.ml" +# 99928 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 97679 "src/ocaml/preprocess/parser_raw.ml" +# 99938 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -97683,15 +99942,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97689 "src/ocaml/preprocess/parser_raw.ml" +# 99948 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97695 "src/ocaml/preprocess/parser_raw.ml" +# 99954 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -97783,30 +100042,30 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97789 "src/ocaml/preprocess/parser_raw.ml" +# 100048 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97794 "src/ocaml/preprocess/parser_raw.ml" +# 100053 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97803 "src/ocaml/preprocess/parser_raw.ml" +# 100062 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 97810 "src/ocaml/preprocess/parser_raw.ml" +# 100069 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -97818,24 +100077,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 97822 "src/ocaml/preprocess/parser_raw.ml" +# 100081 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 97827 "src/ocaml/preprocess/parser_raw.ml" +# 100086 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97833 "src/ocaml/preprocess/parser_raw.ml" +# 100092 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 97839 "src/ocaml/preprocess/parser_raw.ml" +# 100098 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -97843,67 +100102,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97849 "src/ocaml/preprocess/parser_raw.ml" +# 100108 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97855 "src/ocaml/preprocess/parser_raw.ml" +# 100114 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 97862 "src/ocaml/preprocess/parser_raw.ml" +# 100121 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97870 "src/ocaml/preprocess/parser_raw.ml" +# 100129 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 97875 "src/ocaml/preprocess/parser_raw.ml" +# 100134 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 97885 "src/ocaml/preprocess/parser_raw.ml" +# 100144 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 97892 "src/ocaml/preprocess/parser_raw.ml" +# 100151 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97897 "src/ocaml/preprocess/parser_raw.ml" +# 100156 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 97907 "src/ocaml/preprocess/parser_raw.ml" +# 100166 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -97911,15 +100170,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 97917 "src/ocaml/preprocess/parser_raw.ml" +# 100176 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 97923 "src/ocaml/preprocess/parser_raw.ml" +# 100182 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -98011,37 +100270,37 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 98017 "src/ocaml/preprocess/parser_raw.ml" +# 100276 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98023 "src/ocaml/preprocess/parser_raw.ml" +# 100282 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98028 "src/ocaml/preprocess/parser_raw.ml" +# 100287 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98038 "src/ocaml/preprocess/parser_raw.ml" +# 100297 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 98045 "src/ocaml/preprocess/parser_raw.ml" +# 100304 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -98053,24 +100312,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 98057 "src/ocaml/preprocess/parser_raw.ml" +# 100316 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 98062 "src/ocaml/preprocess/parser_raw.ml" +# 100321 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98068 "src/ocaml/preprocess/parser_raw.ml" +# 100327 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 98074 "src/ocaml/preprocess/parser_raw.ml" +# 100333 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -98078,67 +100337,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 98084 "src/ocaml/preprocess/parser_raw.ml" +# 100343 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98090 "src/ocaml/preprocess/parser_raw.ml" +# 100349 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 98097 "src/ocaml/preprocess/parser_raw.ml" +# 100356 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98105 "src/ocaml/preprocess/parser_raw.ml" +# 100364 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98110 "src/ocaml/preprocess/parser_raw.ml" +# 100369 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98120 "src/ocaml/preprocess/parser_raw.ml" +# 100379 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 98127 "src/ocaml/preprocess/parser_raw.ml" +# 100386 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98132 "src/ocaml/preprocess/parser_raw.ml" +# 100391 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 98142 "src/ocaml/preprocess/parser_raw.ml" +# 100401 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -98146,15 +100405,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 98152 "src/ocaml/preprocess/parser_raw.ml" +# 100411 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98158 "src/ocaml/preprocess/parser_raw.ml" +# 100417 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -98255,38 +100514,38 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98261 "src/ocaml/preprocess/parser_raw.ml" +# 100520 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98268 "src/ocaml/preprocess/parser_raw.ml" +# 100527 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98273 "src/ocaml/preprocess/parser_raw.ml" +# 100532 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98283 "src/ocaml/preprocess/parser_raw.ml" +# 100542 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 98290 "src/ocaml/preprocess/parser_raw.ml" +# 100549 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -98298,24 +100557,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 98302 "src/ocaml/preprocess/parser_raw.ml" +# 100561 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 98307 "src/ocaml/preprocess/parser_raw.ml" +# 100566 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98313 "src/ocaml/preprocess/parser_raw.ml" +# 100572 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 98319 "src/ocaml/preprocess/parser_raw.ml" +# 100578 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -98323,67 +100582,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 98329 "src/ocaml/preprocess/parser_raw.ml" +# 100588 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98335 "src/ocaml/preprocess/parser_raw.ml" +# 100594 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 98342 "src/ocaml/preprocess/parser_raw.ml" +# 100601 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98350 "src/ocaml/preprocess/parser_raw.ml" +# 100609 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98355 "src/ocaml/preprocess/parser_raw.ml" +# 100614 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98365 "src/ocaml/preprocess/parser_raw.ml" +# 100624 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 98372 "src/ocaml/preprocess/parser_raw.ml" +# 100631 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98377 "src/ocaml/preprocess/parser_raw.ml" +# 100636 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 98387 "src/ocaml/preprocess/parser_raw.ml" +# 100646 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -98391,15 +100650,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 98397 "src/ocaml/preprocess/parser_raw.ml" +# 100656 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98403 "src/ocaml/preprocess/parser_raw.ml" +# 100662 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -98490,32 +100749,32 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 98496 "src/ocaml/preprocess/parser_raw.ml" +# 100755 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 98501 "src/ocaml/preprocess/parser_raw.ml" +# 100760 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98510 "src/ocaml/preprocess/parser_raw.ml" +# 100769 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98519 "src/ocaml/preprocess/parser_raw.ml" +# 100778 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -98528,24 +100787,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 98532 "src/ocaml/preprocess/parser_raw.ml" +# 100791 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 98537 "src/ocaml/preprocess/parser_raw.ml" +# 100796 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98543 "src/ocaml/preprocess/parser_raw.ml" +# 100802 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 98549 "src/ocaml/preprocess/parser_raw.ml" +# 100808 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -98553,67 +100812,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 98559 "src/ocaml/preprocess/parser_raw.ml" +# 100818 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98565 "src/ocaml/preprocess/parser_raw.ml" +# 100824 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 98572 "src/ocaml/preprocess/parser_raw.ml" +# 100831 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98580 "src/ocaml/preprocess/parser_raw.ml" +# 100839 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98585 "src/ocaml/preprocess/parser_raw.ml" +# 100844 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98595 "src/ocaml/preprocess/parser_raw.ml" +# 100854 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 98602 "src/ocaml/preprocess/parser_raw.ml" +# 100861 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98607 "src/ocaml/preprocess/parser_raw.ml" +# 100866 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 98617 "src/ocaml/preprocess/parser_raw.ml" +# 100876 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -98621,15 +100880,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 98627 "src/ocaml/preprocess/parser_raw.ml" +# 100886 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98633 "src/ocaml/preprocess/parser_raw.ml" +# 100892 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -98728,32 +100987,32 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined3 in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98734 "src/ocaml/preprocess/parser_raw.ml" +# 100993 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 98739 "src/ocaml/preprocess/parser_raw.ml" +# 100998 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98748 "src/ocaml/preprocess/parser_raw.ml" +# 101007 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98757 "src/ocaml/preprocess/parser_raw.ml" +# 101016 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -98766,24 +101025,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 98770 "src/ocaml/preprocess/parser_raw.ml" +# 101029 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 98775 "src/ocaml/preprocess/parser_raw.ml" +# 101034 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98781 "src/ocaml/preprocess/parser_raw.ml" +# 101040 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 98787 "src/ocaml/preprocess/parser_raw.ml" +# 101046 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -98791,67 +101050,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 98797 "src/ocaml/preprocess/parser_raw.ml" +# 101056 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98803 "src/ocaml/preprocess/parser_raw.ml" +# 101062 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 98810 "src/ocaml/preprocess/parser_raw.ml" +# 101069 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98818 "src/ocaml/preprocess/parser_raw.ml" +# 101077 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98823 "src/ocaml/preprocess/parser_raw.ml" +# 101082 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98833 "src/ocaml/preprocess/parser_raw.ml" +# 101092 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 98840 "src/ocaml/preprocess/parser_raw.ml" +# 101099 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98845 "src/ocaml/preprocess/parser_raw.ml" +# 101104 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 98855 "src/ocaml/preprocess/parser_raw.ml" +# 101114 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -98859,15 +101118,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 98865 "src/ocaml/preprocess/parser_raw.ml" +# 101124 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98871 "src/ocaml/preprocess/parser_raw.ml" +# 101130 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -98966,39 +101225,39 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined3 in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 98972 "src/ocaml/preprocess/parser_raw.ml" +# 101231 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 98978 "src/ocaml/preprocess/parser_raw.ml" +# 101237 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 98983 "src/ocaml/preprocess/parser_raw.ml" +# 101242 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 98993 "src/ocaml/preprocess/parser_raw.ml" +# 101252 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 99002 "src/ocaml/preprocess/parser_raw.ml" +# 101261 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -99011,24 +101270,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 99015 "src/ocaml/preprocess/parser_raw.ml" +# 101274 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 99020 "src/ocaml/preprocess/parser_raw.ml" +# 101279 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99026 "src/ocaml/preprocess/parser_raw.ml" +# 101285 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 99032 "src/ocaml/preprocess/parser_raw.ml" +# 101291 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -99036,67 +101295,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 99042 "src/ocaml/preprocess/parser_raw.ml" +# 101301 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99048 "src/ocaml/preprocess/parser_raw.ml" +# 101307 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 99055 "src/ocaml/preprocess/parser_raw.ml" +# 101314 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99063 "src/ocaml/preprocess/parser_raw.ml" +# 101322 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 99068 "src/ocaml/preprocess/parser_raw.ml" +# 101327 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 99078 "src/ocaml/preprocess/parser_raw.ml" +# 101337 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 99085 "src/ocaml/preprocess/parser_raw.ml" +# 101344 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99090 "src/ocaml/preprocess/parser_raw.ml" +# 101349 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 99100 "src/ocaml/preprocess/parser_raw.ml" +# 101359 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -99104,15 +101363,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 99110 "src/ocaml/preprocess/parser_raw.ml" +# 101369 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99116 "src/ocaml/preprocess/parser_raw.ml" +# 101375 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -99220,40 +101479,40 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 99226 "src/ocaml/preprocess/parser_raw.ml" +# 101485 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99233 "src/ocaml/preprocess/parser_raw.ml" +# 101492 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 99238 "src/ocaml/preprocess/parser_raw.ml" +# 101497 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 99248 "src/ocaml/preprocess/parser_raw.ml" +# 101507 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 99257 "src/ocaml/preprocess/parser_raw.ml" +# 101516 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -99266,24 +101525,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 99270 "src/ocaml/preprocess/parser_raw.ml" +# 101529 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 99275 "src/ocaml/preprocess/parser_raw.ml" +# 101534 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99281 "src/ocaml/preprocess/parser_raw.ml" +# 101540 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 99287 "src/ocaml/preprocess/parser_raw.ml" +# 101546 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -99291,67 +101550,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 99297 "src/ocaml/preprocess/parser_raw.ml" +# 101556 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99303 "src/ocaml/preprocess/parser_raw.ml" +# 101562 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 99310 "src/ocaml/preprocess/parser_raw.ml" +# 101569 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99318 "src/ocaml/preprocess/parser_raw.ml" +# 101577 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 99323 "src/ocaml/preprocess/parser_raw.ml" +# 101582 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 99333 "src/ocaml/preprocess/parser_raw.ml" +# 101592 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 99340 "src/ocaml/preprocess/parser_raw.ml" +# 101599 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99345 "src/ocaml/preprocess/parser_raw.ml" +# 101604 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 99355 "src/ocaml/preprocess/parser_raw.ml" +# 101614 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined4_, _startpos_label_) in @@ -99359,15 +101618,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 99365 "src/ocaml/preprocess/parser_raw.ml" +# 101624 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99371 "src/ocaml/preprocess/parser_raw.ml" +# 101630 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -99424,86 +101683,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 99430 "src/ocaml/preprocess/parser_raw.ml" +# 101689 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 99435 "src/ocaml/preprocess/parser_raw.ml" +# 101694 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 99444 "src/ocaml/preprocess/parser_raw.ml" +# 101703 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 99451 "src/ocaml/preprocess/parser_raw.ml" +# 101710 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 99457 "src/ocaml/preprocess/parser_raw.ml" +# 101716 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 99463 "src/ocaml/preprocess/parser_raw.ml" +# 101722 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99470 "src/ocaml/preprocess/parser_raw.ml" +# 101729 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 99475 "src/ocaml/preprocess/parser_raw.ml" +# 101734 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 99485 "src/ocaml/preprocess/parser_raw.ml" +# 101744 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 99492 "src/ocaml/preprocess/parser_raw.ml" +# 101751 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99497 "src/ocaml/preprocess/parser_raw.ml" +# 101756 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 99507 "src/ocaml/preprocess/parser_raw.ml" +# 101766 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -99511,15 +101770,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 99517 "src/ocaml/preprocess/parser_raw.ml" +# 101776 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99523 "src/ocaml/preprocess/parser_raw.ml" +# 101782 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -99583,86 +101842,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 99589 "src/ocaml/preprocess/parser_raw.ml" +# 101848 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 99594 "src/ocaml/preprocess/parser_raw.ml" +# 101853 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 99603 "src/ocaml/preprocess/parser_raw.ml" +# 101862 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 99610 "src/ocaml/preprocess/parser_raw.ml" +# 101869 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 99616 "src/ocaml/preprocess/parser_raw.ml" +# 101875 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 99622 "src/ocaml/preprocess/parser_raw.ml" +# 101881 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99629 "src/ocaml/preprocess/parser_raw.ml" +# 101888 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 99634 "src/ocaml/preprocess/parser_raw.ml" +# 101893 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 99644 "src/ocaml/preprocess/parser_raw.ml" +# 101903 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 99651 "src/ocaml/preprocess/parser_raw.ml" +# 101910 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99656 "src/ocaml/preprocess/parser_raw.ml" +# 101915 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 99666 "src/ocaml/preprocess/parser_raw.ml" +# 101925 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -99670,15 +101929,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 99676 "src/ocaml/preprocess/parser_raw.ml" +# 101935 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99682 "src/ocaml/preprocess/parser_raw.ml" +# 101941 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -99742,93 +102001,93 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 99748 "src/ocaml/preprocess/parser_raw.ml" +# 102007 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99754 "src/ocaml/preprocess/parser_raw.ml" +# 102013 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 99759 "src/ocaml/preprocess/parser_raw.ml" +# 102018 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 99769 "src/ocaml/preprocess/parser_raw.ml" +# 102028 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 99776 "src/ocaml/preprocess/parser_raw.ml" +# 102035 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 99782 "src/ocaml/preprocess/parser_raw.ml" +# 102041 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 99788 "src/ocaml/preprocess/parser_raw.ml" +# 102047 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99795 "src/ocaml/preprocess/parser_raw.ml" +# 102054 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 99800 "src/ocaml/preprocess/parser_raw.ml" +# 102059 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 99810 "src/ocaml/preprocess/parser_raw.ml" +# 102069 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 99817 "src/ocaml/preprocess/parser_raw.ml" +# 102076 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99822 "src/ocaml/preprocess/parser_raw.ml" +# 102081 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 99832 "src/ocaml/preprocess/parser_raw.ml" +# 102091 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -99836,15 +102095,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 99842 "src/ocaml/preprocess/parser_raw.ml" +# 102101 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99848 "src/ocaml/preprocess/parser_raw.ml" +# 102107 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -99917,94 +102176,94 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 99923 "src/ocaml/preprocess/parser_raw.ml" +# 102182 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99930 "src/ocaml/preprocess/parser_raw.ml" +# 102189 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 99935 "src/ocaml/preprocess/parser_raw.ml" +# 102194 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 99945 "src/ocaml/preprocess/parser_raw.ml" +# 102204 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 99952 "src/ocaml/preprocess/parser_raw.ml" +# 102211 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 99958 "src/ocaml/preprocess/parser_raw.ml" +# 102217 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 99964 "src/ocaml/preprocess/parser_raw.ml" +# 102223 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99971 "src/ocaml/preprocess/parser_raw.ml" +# 102230 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 99976 "src/ocaml/preprocess/parser_raw.ml" +# 102235 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 99986 "src/ocaml/preprocess/parser_raw.ml" +# 102245 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 99993 "src/ocaml/preprocess/parser_raw.ml" +# 102252 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 99998 "src/ocaml/preprocess/parser_raw.ml" +# 102257 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 100008 "src/ocaml/preprocess/parser_raw.ml" +# 102267 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -100012,15 +102271,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 100018 "src/ocaml/preprocess/parser_raw.ml" +# 102277 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100024 "src/ocaml/preprocess/parser_raw.ml" +# 102283 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -100084,89 +102343,89 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 100090 "src/ocaml/preprocess/parser_raw.ml" +# 102349 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 100095 "src/ocaml/preprocess/parser_raw.ml" +# 102354 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 100104 "src/ocaml/preprocess/parser_raw.ml" +# 102363 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 100113 "src/ocaml/preprocess/parser_raw.ml" +# 102372 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 100120 "src/ocaml/preprocess/parser_raw.ml" +# 102379 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 100126 "src/ocaml/preprocess/parser_raw.ml" +# 102385 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100133 "src/ocaml/preprocess/parser_raw.ml" +# 102392 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 100138 "src/ocaml/preprocess/parser_raw.ml" +# 102397 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 100148 "src/ocaml/preprocess/parser_raw.ml" +# 102407 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 100155 "src/ocaml/preprocess/parser_raw.ml" +# 102414 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100160 "src/ocaml/preprocess/parser_raw.ml" +# 102419 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 100170 "src/ocaml/preprocess/parser_raw.ml" +# 102429 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -100174,15 +102433,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 100180 "src/ocaml/preprocess/parser_raw.ml" +# 102439 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100186 "src/ocaml/preprocess/parser_raw.ml" +# 102445 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -100253,89 +102512,89 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 100259 "src/ocaml/preprocess/parser_raw.ml" +# 102518 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 100264 "src/ocaml/preprocess/parser_raw.ml" +# 102523 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 100273 "src/ocaml/preprocess/parser_raw.ml" +# 102532 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 100282 "src/ocaml/preprocess/parser_raw.ml" +# 102541 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 100289 "src/ocaml/preprocess/parser_raw.ml" +# 102548 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 100295 "src/ocaml/preprocess/parser_raw.ml" +# 102554 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100302 "src/ocaml/preprocess/parser_raw.ml" +# 102561 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 100307 "src/ocaml/preprocess/parser_raw.ml" +# 102566 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 100317 "src/ocaml/preprocess/parser_raw.ml" +# 102576 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 100324 "src/ocaml/preprocess/parser_raw.ml" +# 102583 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100329 "src/ocaml/preprocess/parser_raw.ml" +# 102588 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 100339 "src/ocaml/preprocess/parser_raw.ml" +# 102598 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -100343,15 +102602,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 100349 "src/ocaml/preprocess/parser_raw.ml" +# 102608 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100355 "src/ocaml/preprocess/parser_raw.ml" +# 102614 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -100422,96 +102681,96 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 100428 "src/ocaml/preprocess/parser_raw.ml" +# 102687 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100434 "src/ocaml/preprocess/parser_raw.ml" +# 102693 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 100439 "src/ocaml/preprocess/parser_raw.ml" +# 102698 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 100449 "src/ocaml/preprocess/parser_raw.ml" +# 102708 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 100458 "src/ocaml/preprocess/parser_raw.ml" +# 102717 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 100465 "src/ocaml/preprocess/parser_raw.ml" +# 102724 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 100471 "src/ocaml/preprocess/parser_raw.ml" +# 102730 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100478 "src/ocaml/preprocess/parser_raw.ml" +# 102737 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 100483 "src/ocaml/preprocess/parser_raw.ml" +# 102742 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 100493 "src/ocaml/preprocess/parser_raw.ml" +# 102752 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 100500 "src/ocaml/preprocess/parser_raw.ml" +# 102759 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100505 "src/ocaml/preprocess/parser_raw.ml" +# 102764 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 100515 "src/ocaml/preprocess/parser_raw.ml" +# 102774 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -100519,15 +102778,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 100525 "src/ocaml/preprocess/parser_raw.ml" +# 102784 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100531 "src/ocaml/preprocess/parser_raw.ml" +# 102790 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -100607,97 +102866,97 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 100613 "src/ocaml/preprocess/parser_raw.ml" +# 102872 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100620 "src/ocaml/preprocess/parser_raw.ml" +# 102879 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 100625 "src/ocaml/preprocess/parser_raw.ml" +# 102884 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 100635 "src/ocaml/preprocess/parser_raw.ml" +# 102894 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 100644 "src/ocaml/preprocess/parser_raw.ml" +# 102903 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 100651 "src/ocaml/preprocess/parser_raw.ml" +# 102910 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 100657 "src/ocaml/preprocess/parser_raw.ml" +# 102916 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100664 "src/ocaml/preprocess/parser_raw.ml" +# 102923 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 100669 "src/ocaml/preprocess/parser_raw.ml" +# 102928 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 100679 "src/ocaml/preprocess/parser_raw.ml" +# 102938 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4636 "src/ocaml/preprocess/parser_raw.mly" +# 4648 "src/ocaml/preprocess/parser_raw.mly" ( Optional label ) -# 100686 "src/ocaml/preprocess/parser_raw.ml" +# 102945 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100691 "src/ocaml/preprocess/parser_raw.ml" +# 102950 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 100701 "src/ocaml/preprocess/parser_raw.ml" +# 102960 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -100705,15 +102964,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 100711 "src/ocaml/preprocess/parser_raw.ml" +# 102970 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100717 "src/ocaml/preprocess/parser_raw.ml" +# 102976 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -100789,9 +103048,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 100795 "src/ocaml/preprocess/parser_raw.ml" +# 103054 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -100801,30 +103060,30 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 100807 "src/ocaml/preprocess/parser_raw.ml" +# 103066 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 100812 "src/ocaml/preprocess/parser_raw.ml" +# 103071 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 100821 "src/ocaml/preprocess/parser_raw.ml" +# 103080 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 100828 "src/ocaml/preprocess/parser_raw.ml" +# 103087 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -100835,24 +103094,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 100839 "src/ocaml/preprocess/parser_raw.ml" +# 103098 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 100844 "src/ocaml/preprocess/parser_raw.ml" +# 103103 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100850 "src/ocaml/preprocess/parser_raw.ml" +# 103109 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 100856 "src/ocaml/preprocess/parser_raw.ml" +# 103115 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -100860,60 +103119,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 100866 "src/ocaml/preprocess/parser_raw.ml" +# 103125 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100872 "src/ocaml/preprocess/parser_raw.ml" +# 103131 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 100879 "src/ocaml/preprocess/parser_raw.ml" +# 103138 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 100886 "src/ocaml/preprocess/parser_raw.ml" +# 103145 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 100895 "src/ocaml/preprocess/parser_raw.ml" +# 103154 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 100902 "src/ocaml/preprocess/parser_raw.ml" +# 103161 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100907 "src/ocaml/preprocess/parser_raw.ml" +# 103166 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 100917 "src/ocaml/preprocess/parser_raw.ml" +# 103176 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -100921,15 +103180,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 100927 "src/ocaml/preprocess/parser_raw.ml" +# 103186 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 100933 "src/ocaml/preprocess/parser_raw.ml" +# 103192 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -101012,9 +103271,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 101018 "src/ocaml/preprocess/parser_raw.ml" +# 103277 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -101025,30 +103284,30 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined1 in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 101031 "src/ocaml/preprocess/parser_raw.ml" +# 103290 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 101036 "src/ocaml/preprocess/parser_raw.ml" +# 103295 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 101045 "src/ocaml/preprocess/parser_raw.ml" +# 103304 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 101052 "src/ocaml/preprocess/parser_raw.ml" +# 103311 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -101059,24 +103318,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 101063 "src/ocaml/preprocess/parser_raw.ml" +# 103322 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 101068 "src/ocaml/preprocess/parser_raw.ml" +# 103327 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101074 "src/ocaml/preprocess/parser_raw.ml" +# 103333 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 101080 "src/ocaml/preprocess/parser_raw.ml" +# 103339 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -101084,60 +103343,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 101090 "src/ocaml/preprocess/parser_raw.ml" +# 103349 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101096 "src/ocaml/preprocess/parser_raw.ml" +# 103355 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 101103 "src/ocaml/preprocess/parser_raw.ml" +# 103362 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 101110 "src/ocaml/preprocess/parser_raw.ml" +# 103369 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 101119 "src/ocaml/preprocess/parser_raw.ml" +# 103378 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 101126 "src/ocaml/preprocess/parser_raw.ml" +# 103385 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101131 "src/ocaml/preprocess/parser_raw.ml" +# 103390 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 101141 "src/ocaml/preprocess/parser_raw.ml" +# 103400 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -101145,15 +103404,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 101151 "src/ocaml/preprocess/parser_raw.ml" +# 103410 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101157 "src/ocaml/preprocess/parser_raw.ml" +# 103416 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -101236,9 +103495,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 101242 "src/ocaml/preprocess/parser_raw.ml" +# 103501 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -101249,37 +103508,37 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined1 in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 101255 "src/ocaml/preprocess/parser_raw.ml" +# 103514 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101261 "src/ocaml/preprocess/parser_raw.ml" +# 103520 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 101266 "src/ocaml/preprocess/parser_raw.ml" +# 103525 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 101276 "src/ocaml/preprocess/parser_raw.ml" +# 103535 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 101283 "src/ocaml/preprocess/parser_raw.ml" +# 103542 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -101290,24 +103549,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 101294 "src/ocaml/preprocess/parser_raw.ml" +# 103553 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 101299 "src/ocaml/preprocess/parser_raw.ml" +# 103558 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101305 "src/ocaml/preprocess/parser_raw.ml" +# 103564 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 101311 "src/ocaml/preprocess/parser_raw.ml" +# 103570 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -101315,60 +103574,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 101321 "src/ocaml/preprocess/parser_raw.ml" +# 103580 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101327 "src/ocaml/preprocess/parser_raw.ml" +# 103586 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 101334 "src/ocaml/preprocess/parser_raw.ml" +# 103593 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 101341 "src/ocaml/preprocess/parser_raw.ml" +# 103600 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 101350 "src/ocaml/preprocess/parser_raw.ml" +# 103609 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 101357 "src/ocaml/preprocess/parser_raw.ml" +# 103616 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101362 "src/ocaml/preprocess/parser_raw.ml" +# 103621 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 101372 "src/ocaml/preprocess/parser_raw.ml" +# 103631 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -101376,15 +103635,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 101382 "src/ocaml/preprocess/parser_raw.ml" +# 103641 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101388 "src/ocaml/preprocess/parser_raw.ml" +# 103647 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -101474,9 +103733,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 101480 "src/ocaml/preprocess/parser_raw.ml" +# 103739 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -101489,38 +103748,38 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 101495 "src/ocaml/preprocess/parser_raw.ml" +# 103754 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101502 "src/ocaml/preprocess/parser_raw.ml" +# 103761 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 101507 "src/ocaml/preprocess/parser_raw.ml" +# 103766 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 101517 "src/ocaml/preprocess/parser_raw.ml" +# 103776 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 101524 "src/ocaml/preprocess/parser_raw.ml" +# 103783 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -101531,24 +103790,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 101535 "src/ocaml/preprocess/parser_raw.ml" +# 103794 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 101540 "src/ocaml/preprocess/parser_raw.ml" +# 103799 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101546 "src/ocaml/preprocess/parser_raw.ml" +# 103805 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 101552 "src/ocaml/preprocess/parser_raw.ml" +# 103811 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -101556,60 +103815,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 101562 "src/ocaml/preprocess/parser_raw.ml" +# 103821 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101568 "src/ocaml/preprocess/parser_raw.ml" +# 103827 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 101575 "src/ocaml/preprocess/parser_raw.ml" +# 103834 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 101582 "src/ocaml/preprocess/parser_raw.ml" +# 103841 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 101591 "src/ocaml/preprocess/parser_raw.ml" +# 103850 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 101598 "src/ocaml/preprocess/parser_raw.ml" +# 103857 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101603 "src/ocaml/preprocess/parser_raw.ml" +# 103862 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 101613 "src/ocaml/preprocess/parser_raw.ml" +# 103872 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -101617,15 +103876,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 101623 "src/ocaml/preprocess/parser_raw.ml" +# 103882 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101629 "src/ocaml/preprocess/parser_raw.ml" +# 103888 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -101708,9 +103967,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 101714 "src/ocaml/preprocess/parser_raw.ml" +# 103973 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -101720,32 +103979,32 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 101726 "src/ocaml/preprocess/parser_raw.ml" +# 103985 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 101731 "src/ocaml/preprocess/parser_raw.ml" +# 103990 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 101740 "src/ocaml/preprocess/parser_raw.ml" +# 103999 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 101749 "src/ocaml/preprocess/parser_raw.ml" +# 104008 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -101757,24 +104016,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 101761 "src/ocaml/preprocess/parser_raw.ml" +# 104020 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 101766 "src/ocaml/preprocess/parser_raw.ml" +# 104025 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101772 "src/ocaml/preprocess/parser_raw.ml" +# 104031 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 101778 "src/ocaml/preprocess/parser_raw.ml" +# 104037 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -101782,60 +104041,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 101788 "src/ocaml/preprocess/parser_raw.ml" +# 104047 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101794 "src/ocaml/preprocess/parser_raw.ml" +# 104053 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 101801 "src/ocaml/preprocess/parser_raw.ml" +# 104060 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 101808 "src/ocaml/preprocess/parser_raw.ml" +# 104067 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 101817 "src/ocaml/preprocess/parser_raw.ml" +# 104076 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 101824 "src/ocaml/preprocess/parser_raw.ml" +# 104083 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101829 "src/ocaml/preprocess/parser_raw.ml" +# 104088 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 101839 "src/ocaml/preprocess/parser_raw.ml" +# 104098 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -101843,15 +104102,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 101849 "src/ocaml/preprocess/parser_raw.ml" +# 104108 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 101855 "src/ocaml/preprocess/parser_raw.ml" +# 104114 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -101941,9 +104200,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 101947 "src/ocaml/preprocess/parser_raw.ml" +# 104206 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -101954,32 +104213,32 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 101960 "src/ocaml/preprocess/parser_raw.ml" +# 104219 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 101965 "src/ocaml/preprocess/parser_raw.ml" +# 104224 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 101974 "src/ocaml/preprocess/parser_raw.ml" +# 104233 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 101983 "src/ocaml/preprocess/parser_raw.ml" +# 104242 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -101991,24 +104250,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 101995 "src/ocaml/preprocess/parser_raw.ml" +# 104254 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 102000 "src/ocaml/preprocess/parser_raw.ml" +# 104259 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102006 "src/ocaml/preprocess/parser_raw.ml" +# 104265 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 102012 "src/ocaml/preprocess/parser_raw.ml" +# 104271 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -102016,60 +104275,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 102022 "src/ocaml/preprocess/parser_raw.ml" +# 104281 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102028 "src/ocaml/preprocess/parser_raw.ml" +# 104287 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 102035 "src/ocaml/preprocess/parser_raw.ml" +# 104294 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102042 "src/ocaml/preprocess/parser_raw.ml" +# 104301 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 102051 "src/ocaml/preprocess/parser_raw.ml" +# 104310 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 102058 "src/ocaml/preprocess/parser_raw.ml" +# 104317 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102063 "src/ocaml/preprocess/parser_raw.ml" +# 104322 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 102073 "src/ocaml/preprocess/parser_raw.ml" +# 104332 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -102077,15 +104336,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 102083 "src/ocaml/preprocess/parser_raw.ml" +# 104342 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102089 "src/ocaml/preprocess/parser_raw.ml" +# 104348 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -102175,9 +104434,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102181 "src/ocaml/preprocess/parser_raw.ml" +# 104440 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -102188,39 +104447,39 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102194 "src/ocaml/preprocess/parser_raw.ml" +# 104453 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102200 "src/ocaml/preprocess/parser_raw.ml" +# 104459 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 102205 "src/ocaml/preprocess/parser_raw.ml" +# 104464 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 102215 "src/ocaml/preprocess/parser_raw.ml" +# 104474 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 102224 "src/ocaml/preprocess/parser_raw.ml" +# 104483 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -102232,24 +104491,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 102236 "src/ocaml/preprocess/parser_raw.ml" +# 104495 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 102241 "src/ocaml/preprocess/parser_raw.ml" +# 104500 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102247 "src/ocaml/preprocess/parser_raw.ml" +# 104506 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 102253 "src/ocaml/preprocess/parser_raw.ml" +# 104512 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -102257,60 +104516,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 102263 "src/ocaml/preprocess/parser_raw.ml" +# 104522 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102269 "src/ocaml/preprocess/parser_raw.ml" +# 104528 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 102276 "src/ocaml/preprocess/parser_raw.ml" +# 104535 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102283 "src/ocaml/preprocess/parser_raw.ml" +# 104542 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 102292 "src/ocaml/preprocess/parser_raw.ml" +# 104551 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 102299 "src/ocaml/preprocess/parser_raw.ml" +# 104558 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102304 "src/ocaml/preprocess/parser_raw.ml" +# 104563 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 102314 "src/ocaml/preprocess/parser_raw.ml" +# 104573 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -102318,15 +104577,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 102324 "src/ocaml/preprocess/parser_raw.ml" +# 104583 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102330 "src/ocaml/preprocess/parser_raw.ml" +# 104589 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -102423,9 +104682,9 @@ module Tables = struct let _1 : unit = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102429 "src/ocaml/preprocess/parser_raw.ml" +# 104688 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -102438,40 +104697,40 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 102444 "src/ocaml/preprocess/parser_raw.ml" +# 104703 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102451 "src/ocaml/preprocess/parser_raw.ml" +# 104710 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 102456 "src/ocaml/preprocess/parser_raw.ml" +# 104715 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 102466 "src/ocaml/preprocess/parser_raw.ml" +# 104725 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 102475 "src/ocaml/preprocess/parser_raw.ml" +# 104734 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -102483,24 +104742,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 102487 "src/ocaml/preprocess/parser_raw.ml" +# 104746 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 102492 "src/ocaml/preprocess/parser_raw.ml" +# 104751 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102498 "src/ocaml/preprocess/parser_raw.ml" +# 104757 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 102504 "src/ocaml/preprocess/parser_raw.ml" +# 104763 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -102508,60 +104767,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 102514 "src/ocaml/preprocess/parser_raw.ml" +# 104773 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102520 "src/ocaml/preprocess/parser_raw.ml" +# 104779 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 102527 "src/ocaml/preprocess/parser_raw.ml" +# 104786 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102534 "src/ocaml/preprocess/parser_raw.ml" +# 104793 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 102543 "src/ocaml/preprocess/parser_raw.ml" +# 104802 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 102550 "src/ocaml/preprocess/parser_raw.ml" +# 104809 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102555 "src/ocaml/preprocess/parser_raw.ml" +# 104814 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 102565 "src/ocaml/preprocess/parser_raw.ml" +# 104824 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -102569,15 +104828,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 102575 "src/ocaml/preprocess/parser_raw.ml" +# 104834 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102581 "src/ocaml/preprocess/parser_raw.ml" +# 104840 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -102625,9 +104884,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102631 "src/ocaml/preprocess/parser_raw.ml" +# 104890 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -102638,79 +104897,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102644 "src/ocaml/preprocess/parser_raw.ml" +# 104903 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102649 "src/ocaml/preprocess/parser_raw.ml" +# 104908 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 102658 "src/ocaml/preprocess/parser_raw.ml" +# 104917 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102665 "src/ocaml/preprocess/parser_raw.ml" +# 104924 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 102671 "src/ocaml/preprocess/parser_raw.ml" +# 104930 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 102677 "src/ocaml/preprocess/parser_raw.ml" +# 104936 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102683 "src/ocaml/preprocess/parser_raw.ml" +# 104942 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 102692 "src/ocaml/preprocess/parser_raw.ml" +# 104951 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 102699 "src/ocaml/preprocess/parser_raw.ml" +# 104958 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102704 "src/ocaml/preprocess/parser_raw.ml" +# 104963 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 102714 "src/ocaml/preprocess/parser_raw.ml" +# 104973 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -102718,15 +104977,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 102724 "src/ocaml/preprocess/parser_raw.ml" +# 104983 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102730 "src/ocaml/preprocess/parser_raw.ml" +# 104989 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -102781,9 +105040,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102787 "src/ocaml/preprocess/parser_raw.ml" +# 105046 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -102794,79 +105053,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 102800 "src/ocaml/preprocess/parser_raw.ml" +# 105059 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102805 "src/ocaml/preprocess/parser_raw.ml" +# 105064 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 102814 "src/ocaml/preprocess/parser_raw.ml" +# 105073 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102821 "src/ocaml/preprocess/parser_raw.ml" +# 105080 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 102827 "src/ocaml/preprocess/parser_raw.ml" +# 105086 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 102833 "src/ocaml/preprocess/parser_raw.ml" +# 105092 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102839 "src/ocaml/preprocess/parser_raw.ml" +# 105098 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 102848 "src/ocaml/preprocess/parser_raw.ml" +# 105107 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 102855 "src/ocaml/preprocess/parser_raw.ml" +# 105114 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102860 "src/ocaml/preprocess/parser_raw.ml" +# 105119 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 102870 "src/ocaml/preprocess/parser_raw.ml" +# 105129 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_label_ in @@ -102874,15 +105133,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 102880 "src/ocaml/preprocess/parser_raw.ml" +# 105139 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102886 "src/ocaml/preprocess/parser_raw.ml" +# 105145 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -102937,9 +105196,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 102943 "src/ocaml/preprocess/parser_raw.ml" +# 105202 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -102950,86 +105209,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102956 "src/ocaml/preprocess/parser_raw.ml" +# 105215 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 102962 "src/ocaml/preprocess/parser_raw.ml" +# 105221 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 102967 "src/ocaml/preprocess/parser_raw.ml" +# 105226 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 102977 "src/ocaml/preprocess/parser_raw.ml" +# 105236 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 102984 "src/ocaml/preprocess/parser_raw.ml" +# 105243 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 102990 "src/ocaml/preprocess/parser_raw.ml" +# 105249 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 102996 "src/ocaml/preprocess/parser_raw.ml" +# 105255 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 103002 "src/ocaml/preprocess/parser_raw.ml" +# 105261 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 103011 "src/ocaml/preprocess/parser_raw.ml" +# 105270 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 103018 "src/ocaml/preprocess/parser_raw.ml" +# 105277 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103023 "src/ocaml/preprocess/parser_raw.ml" +# 105282 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 103033 "src/ocaml/preprocess/parser_raw.ml" +# 105292 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -103037,15 +105296,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 103043 "src/ocaml/preprocess/parser_raw.ml" +# 105302 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103049 "src/ocaml/preprocess/parser_raw.ml" +# 105308 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -103107,9 +105366,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 103113 "src/ocaml/preprocess/parser_raw.ml" +# 105372 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -103122,87 +105381,87 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 103128 "src/ocaml/preprocess/parser_raw.ml" +# 105387 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103135 "src/ocaml/preprocess/parser_raw.ml" +# 105394 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 103140 "src/ocaml/preprocess/parser_raw.ml" +# 105399 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 103150 "src/ocaml/preprocess/parser_raw.ml" +# 105409 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 103157 "src/ocaml/preprocess/parser_raw.ml" +# 105416 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 103163 "src/ocaml/preprocess/parser_raw.ml" +# 105422 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 103169 "src/ocaml/preprocess/parser_raw.ml" +# 105428 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 103175 "src/ocaml/preprocess/parser_raw.ml" +# 105434 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 103184 "src/ocaml/preprocess/parser_raw.ml" +# 105443 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 103191 "src/ocaml/preprocess/parser_raw.ml" +# 105450 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103196 "src/ocaml/preprocess/parser_raw.ml" +# 105455 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 103206 "src/ocaml/preprocess/parser_raw.ml" +# 105465 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -103210,15 +105469,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 103216 "src/ocaml/preprocess/parser_raw.ml" +# 105475 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103222 "src/ocaml/preprocess/parser_raw.ml" +# 105481 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -103273,9 +105532,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 103279 "src/ocaml/preprocess/parser_raw.ml" +# 105538 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -103286,79 +105545,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 103292 "src/ocaml/preprocess/parser_raw.ml" +# 105551 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 103297 "src/ocaml/preprocess/parser_raw.ml" +# 105556 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 103306 "src/ocaml/preprocess/parser_raw.ml" +# 105565 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 103313 "src/ocaml/preprocess/parser_raw.ml" +# 105572 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 103319 "src/ocaml/preprocess/parser_raw.ml" +# 105578 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 103325 "src/ocaml/preprocess/parser_raw.ml" +# 105584 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 103331 "src/ocaml/preprocess/parser_raw.ml" +# 105590 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 103340 "src/ocaml/preprocess/parser_raw.ml" +# 105599 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 103347 "src/ocaml/preprocess/parser_raw.ml" +# 105606 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103352 "src/ocaml/preprocess/parser_raw.ml" +# 105611 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 103362 "src/ocaml/preprocess/parser_raw.ml" +# 105621 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -103366,15 +105625,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 103372 "src/ocaml/preprocess/parser_raw.ml" +# 105631 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103378 "src/ocaml/preprocess/parser_raw.ml" +# 105637 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -103436,9 +105695,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 103442 "src/ocaml/preprocess/parser_raw.ml" +# 105701 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -103449,79 +105708,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 103455 "src/ocaml/preprocess/parser_raw.ml" +# 105714 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 103460 "src/ocaml/preprocess/parser_raw.ml" +# 105719 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 103469 "src/ocaml/preprocess/parser_raw.ml" +# 105728 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 103476 "src/ocaml/preprocess/parser_raw.ml" +# 105735 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 103482 "src/ocaml/preprocess/parser_raw.ml" +# 105741 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 103488 "src/ocaml/preprocess/parser_raw.ml" +# 105747 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 103494 "src/ocaml/preprocess/parser_raw.ml" +# 105753 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 103503 "src/ocaml/preprocess/parser_raw.ml" +# 105762 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 103510 "src/ocaml/preprocess/parser_raw.ml" +# 105769 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103515 "src/ocaml/preprocess/parser_raw.ml" +# 105774 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 103525 "src/ocaml/preprocess/parser_raw.ml" +# 105784 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -103529,15 +105788,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 103535 "src/ocaml/preprocess/parser_raw.ml" +# 105794 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103541 "src/ocaml/preprocess/parser_raw.ml" +# 105800 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -103599,9 +105858,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 103605 "src/ocaml/preprocess/parser_raw.ml" +# 105864 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -103612,86 +105871,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 103618 "src/ocaml/preprocess/parser_raw.ml" +# 105877 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103624 "src/ocaml/preprocess/parser_raw.ml" +# 105883 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 103629 "src/ocaml/preprocess/parser_raw.ml" +# 105888 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 103639 "src/ocaml/preprocess/parser_raw.ml" +# 105898 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 103646 "src/ocaml/preprocess/parser_raw.ml" +# 105905 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 103652 "src/ocaml/preprocess/parser_raw.ml" +# 105911 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 103658 "src/ocaml/preprocess/parser_raw.ml" +# 105917 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 103664 "src/ocaml/preprocess/parser_raw.ml" +# 105923 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 103673 "src/ocaml/preprocess/parser_raw.ml" +# 105932 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 103680 "src/ocaml/preprocess/parser_raw.ml" +# 105939 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103685 "src/ocaml/preprocess/parser_raw.ml" +# 105944 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 103695 "src/ocaml/preprocess/parser_raw.ml" +# 105954 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -103699,15 +105958,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 103705 "src/ocaml/preprocess/parser_raw.ml" +# 105964 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103711 "src/ocaml/preprocess/parser_raw.ml" +# 105970 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -103776,9 +106035,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 103782 "src/ocaml/preprocess/parser_raw.ml" +# 106041 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -103791,87 +106050,87 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 103797 "src/ocaml/preprocess/parser_raw.ml" +# 106056 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103804 "src/ocaml/preprocess/parser_raw.ml" +# 106063 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 103809 "src/ocaml/preprocess/parser_raw.ml" +# 106068 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 103819 "src/ocaml/preprocess/parser_raw.ml" +# 106078 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 103826 "src/ocaml/preprocess/parser_raw.ml" +# 106085 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 103832 "src/ocaml/preprocess/parser_raw.ml" +# 106091 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 103838 "src/ocaml/preprocess/parser_raw.ml" +# 106097 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 103844 "src/ocaml/preprocess/parser_raw.ml" +# 106103 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 103853 "src/ocaml/preprocess/parser_raw.ml" +# 106112 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 103860 "src/ocaml/preprocess/parser_raw.ml" +# 106119 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103865 "src/ocaml/preprocess/parser_raw.ml" +# 106124 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 103875 "src/ocaml/preprocess/parser_raw.ml" +# 106134 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -103879,15 +106138,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 103885 "src/ocaml/preprocess/parser_raw.ml" +# 106144 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 103891 "src/ocaml/preprocess/parser_raw.ml" +# 106150 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -103970,9 +106229,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 103976 "src/ocaml/preprocess/parser_raw.ml" +# 106235 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -103982,30 +106241,30 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 103988 "src/ocaml/preprocess/parser_raw.ml" +# 106247 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 103993 "src/ocaml/preprocess/parser_raw.ml" +# 106252 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 104002 "src/ocaml/preprocess/parser_raw.ml" +# 106261 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 104009 "src/ocaml/preprocess/parser_raw.ml" +# 106268 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -104017,24 +106276,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 104021 "src/ocaml/preprocess/parser_raw.ml" +# 106280 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 104026 "src/ocaml/preprocess/parser_raw.ml" +# 106285 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104032 "src/ocaml/preprocess/parser_raw.ml" +# 106291 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 104038 "src/ocaml/preprocess/parser_raw.ml" +# 106297 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -104042,67 +106301,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 104048 "src/ocaml/preprocess/parser_raw.ml" +# 106307 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104054 "src/ocaml/preprocess/parser_raw.ml" +# 106313 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 104061 "src/ocaml/preprocess/parser_raw.ml" +# 106320 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104069 "src/ocaml/preprocess/parser_raw.ml" +# 106328 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 104074 "src/ocaml/preprocess/parser_raw.ml" +# 106333 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 104084 "src/ocaml/preprocess/parser_raw.ml" +# 106343 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 104091 "src/ocaml/preprocess/parser_raw.ml" +# 106350 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104096 "src/ocaml/preprocess/parser_raw.ml" +# 106355 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 104106 "src/ocaml/preprocess/parser_raw.ml" +# 106365 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -104110,15 +106369,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 104116 "src/ocaml/preprocess/parser_raw.ml" +# 106375 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104122 "src/ocaml/preprocess/parser_raw.ml" +# 106381 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -104208,9 +106467,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104214 "src/ocaml/preprocess/parser_raw.ml" +# 106473 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -104221,30 +106480,30 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 104227 "src/ocaml/preprocess/parser_raw.ml" +# 106486 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 104232 "src/ocaml/preprocess/parser_raw.ml" +# 106491 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 104241 "src/ocaml/preprocess/parser_raw.ml" +# 106500 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 104248 "src/ocaml/preprocess/parser_raw.ml" +# 106507 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -104256,24 +106515,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 104260 "src/ocaml/preprocess/parser_raw.ml" +# 106519 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 104265 "src/ocaml/preprocess/parser_raw.ml" +# 106524 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104271 "src/ocaml/preprocess/parser_raw.ml" +# 106530 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 104277 "src/ocaml/preprocess/parser_raw.ml" +# 106536 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -104281,67 +106540,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 104287 "src/ocaml/preprocess/parser_raw.ml" +# 106546 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104293 "src/ocaml/preprocess/parser_raw.ml" +# 106552 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 104300 "src/ocaml/preprocess/parser_raw.ml" +# 106559 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104308 "src/ocaml/preprocess/parser_raw.ml" +# 106567 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 104313 "src/ocaml/preprocess/parser_raw.ml" +# 106572 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 104323 "src/ocaml/preprocess/parser_raw.ml" +# 106582 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 104330 "src/ocaml/preprocess/parser_raw.ml" +# 106589 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104335 "src/ocaml/preprocess/parser_raw.ml" +# 106594 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 104345 "src/ocaml/preprocess/parser_raw.ml" +# 106604 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -104349,15 +106608,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 104355 "src/ocaml/preprocess/parser_raw.ml" +# 106614 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104361 "src/ocaml/preprocess/parser_raw.ml" +# 106620 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -104447,9 +106706,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104453 "src/ocaml/preprocess/parser_raw.ml" +# 106712 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -104460,37 +106719,37 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 104466 "src/ocaml/preprocess/parser_raw.ml" +# 106725 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104472 "src/ocaml/preprocess/parser_raw.ml" +# 106731 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 104477 "src/ocaml/preprocess/parser_raw.ml" +# 106736 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 104487 "src/ocaml/preprocess/parser_raw.ml" +# 106746 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 104494 "src/ocaml/preprocess/parser_raw.ml" +# 106753 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -104502,24 +106761,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 104506 "src/ocaml/preprocess/parser_raw.ml" +# 106765 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 104511 "src/ocaml/preprocess/parser_raw.ml" +# 106770 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104517 "src/ocaml/preprocess/parser_raw.ml" +# 106776 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 104523 "src/ocaml/preprocess/parser_raw.ml" +# 106782 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -104527,67 +106786,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 104533 "src/ocaml/preprocess/parser_raw.ml" +# 106792 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104539 "src/ocaml/preprocess/parser_raw.ml" +# 106798 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 104546 "src/ocaml/preprocess/parser_raw.ml" +# 106805 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104554 "src/ocaml/preprocess/parser_raw.ml" +# 106813 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 104559 "src/ocaml/preprocess/parser_raw.ml" +# 106818 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 104569 "src/ocaml/preprocess/parser_raw.ml" +# 106828 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 104576 "src/ocaml/preprocess/parser_raw.ml" +# 106835 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104581 "src/ocaml/preprocess/parser_raw.ml" +# 106840 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 104591 "src/ocaml/preprocess/parser_raw.ml" +# 106850 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -104595,15 +106854,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 104601 "src/ocaml/preprocess/parser_raw.ml" +# 106860 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104607 "src/ocaml/preprocess/parser_raw.ml" +# 106866 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -104700,9 +106959,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104706 "src/ocaml/preprocess/parser_raw.ml" +# 106965 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -104715,38 +106974,38 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 104721 "src/ocaml/preprocess/parser_raw.ml" +# 106980 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104728 "src/ocaml/preprocess/parser_raw.ml" +# 106987 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 104733 "src/ocaml/preprocess/parser_raw.ml" +# 106992 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 104743 "src/ocaml/preprocess/parser_raw.ml" +# 107002 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 104750 "src/ocaml/preprocess/parser_raw.ml" +# 107009 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -104758,24 +107017,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 104762 "src/ocaml/preprocess/parser_raw.ml" +# 107021 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 104767 "src/ocaml/preprocess/parser_raw.ml" +# 107026 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104773 "src/ocaml/preprocess/parser_raw.ml" +# 107032 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 104779 "src/ocaml/preprocess/parser_raw.ml" +# 107038 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -104783,67 +107042,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 104789 "src/ocaml/preprocess/parser_raw.ml" +# 107048 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104795 "src/ocaml/preprocess/parser_raw.ml" +# 107054 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 104802 "src/ocaml/preprocess/parser_raw.ml" +# 107061 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104810 "src/ocaml/preprocess/parser_raw.ml" +# 107069 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 104815 "src/ocaml/preprocess/parser_raw.ml" +# 107074 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 104825 "src/ocaml/preprocess/parser_raw.ml" +# 107084 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 104832 "src/ocaml/preprocess/parser_raw.ml" +# 107091 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104837 "src/ocaml/preprocess/parser_raw.ml" +# 107096 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 104847 "src/ocaml/preprocess/parser_raw.ml" +# 107106 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -104851,15 +107110,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 104857 "src/ocaml/preprocess/parser_raw.ml" +# 107116 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 104863 "src/ocaml/preprocess/parser_raw.ml" +# 107122 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -104949,9 +107208,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 104955 "src/ocaml/preprocess/parser_raw.ml" +# 107214 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -104961,32 +107220,32 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 104967 "src/ocaml/preprocess/parser_raw.ml" +# 107226 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 104972 "src/ocaml/preprocess/parser_raw.ml" +# 107231 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 104981 "src/ocaml/preprocess/parser_raw.ml" +# 107240 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 104990 "src/ocaml/preprocess/parser_raw.ml" +# 107249 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -104999,24 +107258,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 105003 "src/ocaml/preprocess/parser_raw.ml" +# 107262 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 105008 "src/ocaml/preprocess/parser_raw.ml" +# 107267 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105014 "src/ocaml/preprocess/parser_raw.ml" +# 107273 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 105020 "src/ocaml/preprocess/parser_raw.ml" +# 107279 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -105024,67 +107283,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 105030 "src/ocaml/preprocess/parser_raw.ml" +# 107289 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105036 "src/ocaml/preprocess/parser_raw.ml" +# 107295 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 105043 "src/ocaml/preprocess/parser_raw.ml" +# 107302 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105051 "src/ocaml/preprocess/parser_raw.ml" +# 107310 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 105056 "src/ocaml/preprocess/parser_raw.ml" +# 107315 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 105066 "src/ocaml/preprocess/parser_raw.ml" +# 107325 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 105073 "src/ocaml/preprocess/parser_raw.ml" +# 107332 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105078 "src/ocaml/preprocess/parser_raw.ml" +# 107337 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 105088 "src/ocaml/preprocess/parser_raw.ml" +# 107347 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -105092,15 +107351,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 105098 "src/ocaml/preprocess/parser_raw.ml" +# 107357 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105104 "src/ocaml/preprocess/parser_raw.ml" +# 107363 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -105197,9 +107456,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 105203 "src/ocaml/preprocess/parser_raw.ml" +# 107462 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -105210,32 +107469,32 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined3 in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 105216 "src/ocaml/preprocess/parser_raw.ml" +# 107475 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 105221 "src/ocaml/preprocess/parser_raw.ml" +# 107480 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 105230 "src/ocaml/preprocess/parser_raw.ml" +# 107489 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 105239 "src/ocaml/preprocess/parser_raw.ml" +# 107498 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -105248,24 +107507,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 105252 "src/ocaml/preprocess/parser_raw.ml" +# 107511 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 105257 "src/ocaml/preprocess/parser_raw.ml" +# 107516 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105263 "src/ocaml/preprocess/parser_raw.ml" +# 107522 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 105269 "src/ocaml/preprocess/parser_raw.ml" +# 107528 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -105273,67 +107532,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 105279 "src/ocaml/preprocess/parser_raw.ml" +# 107538 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105285 "src/ocaml/preprocess/parser_raw.ml" +# 107544 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 105292 "src/ocaml/preprocess/parser_raw.ml" +# 107551 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105300 "src/ocaml/preprocess/parser_raw.ml" +# 107559 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 105305 "src/ocaml/preprocess/parser_raw.ml" +# 107564 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 105315 "src/ocaml/preprocess/parser_raw.ml" +# 107574 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 105322 "src/ocaml/preprocess/parser_raw.ml" +# 107581 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105327 "src/ocaml/preprocess/parser_raw.ml" +# 107586 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 105337 "src/ocaml/preprocess/parser_raw.ml" +# 107596 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -105341,15 +107600,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 105347 "src/ocaml/preprocess/parser_raw.ml" +# 107606 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105353 "src/ocaml/preprocess/parser_raw.ml" +# 107612 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -105446,9 +107705,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 105452 "src/ocaml/preprocess/parser_raw.ml" +# 107711 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -105459,39 +107718,39 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined3 in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 105465 "src/ocaml/preprocess/parser_raw.ml" +# 107724 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105471 "src/ocaml/preprocess/parser_raw.ml" +# 107730 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 105476 "src/ocaml/preprocess/parser_raw.ml" +# 107735 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 105486 "src/ocaml/preprocess/parser_raw.ml" +# 107745 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 105495 "src/ocaml/preprocess/parser_raw.ml" +# 107754 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -105504,24 +107763,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 105508 "src/ocaml/preprocess/parser_raw.ml" +# 107767 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 105513 "src/ocaml/preprocess/parser_raw.ml" +# 107772 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105519 "src/ocaml/preprocess/parser_raw.ml" +# 107778 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 105525 "src/ocaml/preprocess/parser_raw.ml" +# 107784 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -105529,67 +107788,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 105535 "src/ocaml/preprocess/parser_raw.ml" +# 107794 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105541 "src/ocaml/preprocess/parser_raw.ml" +# 107800 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 105548 "src/ocaml/preprocess/parser_raw.ml" +# 107807 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105556 "src/ocaml/preprocess/parser_raw.ml" +# 107815 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 105561 "src/ocaml/preprocess/parser_raw.ml" +# 107820 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 105571 "src/ocaml/preprocess/parser_raw.ml" +# 107830 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 105578 "src/ocaml/preprocess/parser_raw.ml" +# 107837 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105583 "src/ocaml/preprocess/parser_raw.ml" +# 107842 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 105593 "src/ocaml/preprocess/parser_raw.ml" +# 107852 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_, _startpos_label_) in @@ -105597,15 +107856,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 105603 "src/ocaml/preprocess/parser_raw.ml" +# 107862 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105609 "src/ocaml/preprocess/parser_raw.ml" +# 107868 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -105709,9 +107968,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 105715 "src/ocaml/preprocess/parser_raw.ml" +# 107974 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -105724,40 +107983,40 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 105730 "src/ocaml/preprocess/parser_raw.ml" +# 107989 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105737 "src/ocaml/preprocess/parser_raw.ml" +# 107996 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 105742 "src/ocaml/preprocess/parser_raw.ml" +# 108001 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 105752 "src/ocaml/preprocess/parser_raw.ml" +# 108011 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 105761 "src/ocaml/preprocess/parser_raw.ml" +# 108020 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -105770,24 +108029,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 105774 "src/ocaml/preprocess/parser_raw.ml" +# 108033 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 105779 "src/ocaml/preprocess/parser_raw.ml" +# 108038 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105785 "src/ocaml/preprocess/parser_raw.ml" +# 108044 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 105791 "src/ocaml/preprocess/parser_raw.ml" +# 108050 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -105795,67 +108054,67 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 105801 "src/ocaml/preprocess/parser_raw.ml" +# 108060 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105807 "src/ocaml/preprocess/parser_raw.ml" +# 108066 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 105814 "src/ocaml/preprocess/parser_raw.ml" +# 108073 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105822 "src/ocaml/preprocess/parser_raw.ml" +# 108081 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 105827 "src/ocaml/preprocess/parser_raw.ml" +# 108086 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 105837 "src/ocaml/preprocess/parser_raw.ml" +# 108096 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 105844 "src/ocaml/preprocess/parser_raw.ml" +# 108103 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105849 "src/ocaml/preprocess/parser_raw.ml" +# 108108 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 105859 "src/ocaml/preprocess/parser_raw.ml" +# 108118 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined4_, _startpos_label_) in @@ -105863,15 +108122,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 105869 "src/ocaml/preprocess/parser_raw.ml" +# 108128 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105875 "src/ocaml/preprocess/parser_raw.ml" +# 108134 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -105926,9 +108185,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 105932 "src/ocaml/preprocess/parser_raw.ml" +# 108191 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -105939,86 +108198,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 105945 "src/ocaml/preprocess/parser_raw.ml" +# 108204 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 105950 "src/ocaml/preprocess/parser_raw.ml" +# 108209 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 105959 "src/ocaml/preprocess/parser_raw.ml" +# 108218 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 105966 "src/ocaml/preprocess/parser_raw.ml" +# 108225 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 105972 "src/ocaml/preprocess/parser_raw.ml" +# 108231 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 105978 "src/ocaml/preprocess/parser_raw.ml" +# 108237 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 105985 "src/ocaml/preprocess/parser_raw.ml" +# 108244 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 105990 "src/ocaml/preprocess/parser_raw.ml" +# 108249 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 106000 "src/ocaml/preprocess/parser_raw.ml" +# 108259 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 106007 "src/ocaml/preprocess/parser_raw.ml" +# 108266 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106012 "src/ocaml/preprocess/parser_raw.ml" +# 108271 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 106022 "src/ocaml/preprocess/parser_raw.ml" +# 108281 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -106026,15 +108285,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 106032 "src/ocaml/preprocess/parser_raw.ml" +# 108291 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106038 "src/ocaml/preprocess/parser_raw.ml" +# 108297 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -106096,9 +108355,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 106102 "src/ocaml/preprocess/parser_raw.ml" +# 108361 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -106109,86 +108368,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 106115 "src/ocaml/preprocess/parser_raw.ml" +# 108374 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 106120 "src/ocaml/preprocess/parser_raw.ml" +# 108379 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 106129 "src/ocaml/preprocess/parser_raw.ml" +# 108388 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 106136 "src/ocaml/preprocess/parser_raw.ml" +# 108395 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 106142 "src/ocaml/preprocess/parser_raw.ml" +# 108401 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 106148 "src/ocaml/preprocess/parser_raw.ml" +# 108407 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106155 "src/ocaml/preprocess/parser_raw.ml" +# 108414 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 106160 "src/ocaml/preprocess/parser_raw.ml" +# 108419 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 106170 "src/ocaml/preprocess/parser_raw.ml" +# 108429 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 106177 "src/ocaml/preprocess/parser_raw.ml" +# 108436 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106182 "src/ocaml/preprocess/parser_raw.ml" +# 108441 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 106192 "src/ocaml/preprocess/parser_raw.ml" +# 108451 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -106196,15 +108455,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 106202 "src/ocaml/preprocess/parser_raw.ml" +# 108461 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106208 "src/ocaml/preprocess/parser_raw.ml" +# 108467 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -106266,9 +108525,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 106272 "src/ocaml/preprocess/parser_raw.ml" +# 108531 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -106279,93 +108538,93 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 106285 "src/ocaml/preprocess/parser_raw.ml" +# 108544 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106291 "src/ocaml/preprocess/parser_raw.ml" +# 108550 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 106296 "src/ocaml/preprocess/parser_raw.ml" +# 108555 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 106306 "src/ocaml/preprocess/parser_raw.ml" +# 108565 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 106313 "src/ocaml/preprocess/parser_raw.ml" +# 108572 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 106319 "src/ocaml/preprocess/parser_raw.ml" +# 108578 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 106325 "src/ocaml/preprocess/parser_raw.ml" +# 108584 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106332 "src/ocaml/preprocess/parser_raw.ml" +# 108591 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 106337 "src/ocaml/preprocess/parser_raw.ml" +# 108596 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 106347 "src/ocaml/preprocess/parser_raw.ml" +# 108606 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 106354 "src/ocaml/preprocess/parser_raw.ml" +# 108613 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106359 "src/ocaml/preprocess/parser_raw.ml" +# 108618 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 106369 "src/ocaml/preprocess/parser_raw.ml" +# 108628 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -106373,15 +108632,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 106379 "src/ocaml/preprocess/parser_raw.ml" +# 108638 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106385 "src/ocaml/preprocess/parser_raw.ml" +# 108644 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -106450,9 +108709,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 106456 "src/ocaml/preprocess/parser_raw.ml" +# 108715 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -106465,94 +108724,94 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 106471 "src/ocaml/preprocess/parser_raw.ml" +# 108730 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106478 "src/ocaml/preprocess/parser_raw.ml" +# 108737 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 106483 "src/ocaml/preprocess/parser_raw.ml" +# 108742 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 106493 "src/ocaml/preprocess/parser_raw.ml" +# 108752 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 106500 "src/ocaml/preprocess/parser_raw.ml" +# 108759 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 106506 "src/ocaml/preprocess/parser_raw.ml" +# 108765 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 106512 "src/ocaml/preprocess/parser_raw.ml" +# 108771 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106519 "src/ocaml/preprocess/parser_raw.ml" +# 108778 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 106524 "src/ocaml/preprocess/parser_raw.ml" +# 108783 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 106534 "src/ocaml/preprocess/parser_raw.ml" +# 108793 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 106541 "src/ocaml/preprocess/parser_raw.ml" +# 108800 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106546 "src/ocaml/preprocess/parser_raw.ml" +# 108805 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 106556 "src/ocaml/preprocess/parser_raw.ml" +# 108815 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -106560,15 +108819,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 106566 "src/ocaml/preprocess/parser_raw.ml" +# 108825 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106572 "src/ocaml/preprocess/parser_raw.ml" +# 108831 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -106630,9 +108889,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 106636 "src/ocaml/preprocess/parser_raw.ml" +# 108895 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -106643,89 +108902,89 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 106649 "src/ocaml/preprocess/parser_raw.ml" +# 108908 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 106654 "src/ocaml/preprocess/parser_raw.ml" +# 108913 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 106663 "src/ocaml/preprocess/parser_raw.ml" +# 108922 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 106672 "src/ocaml/preprocess/parser_raw.ml" +# 108931 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 106679 "src/ocaml/preprocess/parser_raw.ml" +# 108938 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 106685 "src/ocaml/preprocess/parser_raw.ml" +# 108944 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106692 "src/ocaml/preprocess/parser_raw.ml" +# 108951 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 106697 "src/ocaml/preprocess/parser_raw.ml" +# 108956 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 106707 "src/ocaml/preprocess/parser_raw.ml" +# 108966 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 106714 "src/ocaml/preprocess/parser_raw.ml" +# 108973 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106719 "src/ocaml/preprocess/parser_raw.ml" +# 108978 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 106729 "src/ocaml/preprocess/parser_raw.ml" +# 108988 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -106733,15 +108992,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 106739 "src/ocaml/preprocess/parser_raw.ml" +# 108998 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106745 "src/ocaml/preprocess/parser_raw.ml" +# 109004 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -106810,9 +109069,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 106816 "src/ocaml/preprocess/parser_raw.ml" +# 109075 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -106823,89 +109082,89 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 106829 "src/ocaml/preprocess/parser_raw.ml" +# 109088 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 106834 "src/ocaml/preprocess/parser_raw.ml" +# 109093 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 106843 "src/ocaml/preprocess/parser_raw.ml" +# 109102 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 106852 "src/ocaml/preprocess/parser_raw.ml" +# 109111 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 106859 "src/ocaml/preprocess/parser_raw.ml" +# 109118 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 106865 "src/ocaml/preprocess/parser_raw.ml" +# 109124 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106872 "src/ocaml/preprocess/parser_raw.ml" +# 109131 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 106877 "src/ocaml/preprocess/parser_raw.ml" +# 109136 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 106887 "src/ocaml/preprocess/parser_raw.ml" +# 109146 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 106894 "src/ocaml/preprocess/parser_raw.ml" +# 109153 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106899 "src/ocaml/preprocess/parser_raw.ml" +# 109158 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 106909 "src/ocaml/preprocess/parser_raw.ml" +# 109168 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -106913,15 +109172,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 106919 "src/ocaml/preprocess/parser_raw.ml" +# 109178 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 106925 "src/ocaml/preprocess/parser_raw.ml" +# 109184 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -106990,9 +109249,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 106996 "src/ocaml/preprocess/parser_raw.ml" +# 109255 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -107003,96 +109262,96 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 107009 "src/ocaml/preprocess/parser_raw.ml" +# 109268 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107015 "src/ocaml/preprocess/parser_raw.ml" +# 109274 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 107020 "src/ocaml/preprocess/parser_raw.ml" +# 109279 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 107030 "src/ocaml/preprocess/parser_raw.ml" +# 109289 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 107039 "src/ocaml/preprocess/parser_raw.ml" +# 109298 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 107046 "src/ocaml/preprocess/parser_raw.ml" +# 109305 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 107052 "src/ocaml/preprocess/parser_raw.ml" +# 109311 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107059 "src/ocaml/preprocess/parser_raw.ml" +# 109318 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 107064 "src/ocaml/preprocess/parser_raw.ml" +# 109323 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 107074 "src/ocaml/preprocess/parser_raw.ml" +# 109333 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 107081 "src/ocaml/preprocess/parser_raw.ml" +# 109340 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107086 "src/ocaml/preprocess/parser_raw.ml" +# 109345 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 107096 "src/ocaml/preprocess/parser_raw.ml" +# 109355 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -107100,15 +109359,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 107106 "src/ocaml/preprocess/parser_raw.ml" +# 109365 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107112 "src/ocaml/preprocess/parser_raw.ml" +# 109371 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -107184,9 +109443,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 107190 "src/ocaml/preprocess/parser_raw.ml" +# 109449 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -107199,97 +109458,97 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 107205 "src/ocaml/preprocess/parser_raw.ml" +# 109464 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107212 "src/ocaml/preprocess/parser_raw.ml" +# 109471 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 107217 "src/ocaml/preprocess/parser_raw.ml" +# 109476 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 107227 "src/ocaml/preprocess/parser_raw.ml" +# 109486 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 107236 "src/ocaml/preprocess/parser_raw.ml" +# 109495 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 107243 "src/ocaml/preprocess/parser_raw.ml" +# 109502 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 107249 "src/ocaml/preprocess/parser_raw.ml" +# 109508 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107256 "src/ocaml/preprocess/parser_raw.ml" +# 109515 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 107261 "src/ocaml/preprocess/parser_raw.ml" +# 109520 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 107271 "src/ocaml/preprocess/parser_raw.ml" +# 109530 "src/ocaml/preprocess/parser_raw.ml" in let label = let _1 = -# 4638 "src/ocaml/preprocess/parser_raw.mly" +# 4650 "src/ocaml/preprocess/parser_raw.mly" ( Labelled label ) -# 107278 "src/ocaml/preprocess/parser_raw.ml" +# 109537 "src/ocaml/preprocess/parser_raw.ml" in -# 4643 "src/ocaml/preprocess/parser_raw.mly" +# 4655 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107283 "src/ocaml/preprocess/parser_raw.ml" +# 109542 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 107293 "src/ocaml/preprocess/parser_raw.ml" +# 109552 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -107297,15 +109556,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 107303 "src/ocaml/preprocess/parser_raw.ml" +# 109562 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107309 "src/ocaml/preprocess/parser_raw.ml" +# 109568 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -107375,30 +109634,30 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 107381 "src/ocaml/preprocess/parser_raw.ml" +# 109640 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 107386 "src/ocaml/preprocess/parser_raw.ml" +# 109645 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 107395 "src/ocaml/preprocess/parser_raw.ml" +# 109654 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 107402 "src/ocaml/preprocess/parser_raw.ml" +# 109661 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -107409,24 +109668,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 107413 "src/ocaml/preprocess/parser_raw.ml" +# 109672 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 107418 "src/ocaml/preprocess/parser_raw.ml" +# 109677 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107424 "src/ocaml/preprocess/parser_raw.ml" +# 109683 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 107430 "src/ocaml/preprocess/parser_raw.ml" +# 109689 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -107434,53 +109693,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 107440 "src/ocaml/preprocess/parser_raw.ml" +# 109699 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107446 "src/ocaml/preprocess/parser_raw.ml" +# 109705 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 107453 "src/ocaml/preprocess/parser_raw.ml" +# 109712 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 107460 "src/ocaml/preprocess/parser_raw.ml" +# 109719 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 107469 "src/ocaml/preprocess/parser_raw.ml" +# 109728 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 107475 "src/ocaml/preprocess/parser_raw.ml" +# 109734 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 107484 "src/ocaml/preprocess/parser_raw.ml" +# 109743 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -107488,15 +109747,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 107494 "src/ocaml/preprocess/parser_raw.ml" +# 109753 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107500 "src/ocaml/preprocess/parser_raw.ml" +# 109759 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -107574,30 +109833,30 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined1 in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 107580 "src/ocaml/preprocess/parser_raw.ml" +# 109839 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 107585 "src/ocaml/preprocess/parser_raw.ml" +# 109844 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 107594 "src/ocaml/preprocess/parser_raw.ml" +# 109853 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 107601 "src/ocaml/preprocess/parser_raw.ml" +# 109860 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -107608,24 +109867,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 107612 "src/ocaml/preprocess/parser_raw.ml" +# 109871 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 107617 "src/ocaml/preprocess/parser_raw.ml" +# 109876 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107623 "src/ocaml/preprocess/parser_raw.ml" +# 109882 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 107629 "src/ocaml/preprocess/parser_raw.ml" +# 109888 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -107633,53 +109892,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 107639 "src/ocaml/preprocess/parser_raw.ml" +# 109898 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107645 "src/ocaml/preprocess/parser_raw.ml" +# 109904 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 107652 "src/ocaml/preprocess/parser_raw.ml" +# 109911 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 107659 "src/ocaml/preprocess/parser_raw.ml" +# 109918 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 107668 "src/ocaml/preprocess/parser_raw.ml" +# 109927 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 107674 "src/ocaml/preprocess/parser_raw.ml" +# 109933 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 107683 "src/ocaml/preprocess/parser_raw.ml" +# 109942 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -107687,15 +109946,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 107693 "src/ocaml/preprocess/parser_raw.ml" +# 109952 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107699 "src/ocaml/preprocess/parser_raw.ml" +# 109958 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -107773,37 +110032,37 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined1 in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 107779 "src/ocaml/preprocess/parser_raw.ml" +# 110038 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107785 "src/ocaml/preprocess/parser_raw.ml" +# 110044 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 107790 "src/ocaml/preprocess/parser_raw.ml" +# 110049 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 107800 "src/ocaml/preprocess/parser_raw.ml" +# 110059 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 107807 "src/ocaml/preprocess/parser_raw.ml" +# 110066 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -107814,24 +110073,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 107818 "src/ocaml/preprocess/parser_raw.ml" +# 110077 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 107823 "src/ocaml/preprocess/parser_raw.ml" +# 110082 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107829 "src/ocaml/preprocess/parser_raw.ml" +# 110088 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 107835 "src/ocaml/preprocess/parser_raw.ml" +# 110094 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -107839,53 +110098,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 107845 "src/ocaml/preprocess/parser_raw.ml" +# 110104 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107851 "src/ocaml/preprocess/parser_raw.ml" +# 110110 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 107858 "src/ocaml/preprocess/parser_raw.ml" +# 110117 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 107865 "src/ocaml/preprocess/parser_raw.ml" +# 110124 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 107874 "src/ocaml/preprocess/parser_raw.ml" +# 110133 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 107880 "src/ocaml/preprocess/parser_raw.ml" +# 110139 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 107889 "src/ocaml/preprocess/parser_raw.ml" +# 110148 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -107893,15 +110152,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 107899 "src/ocaml/preprocess/parser_raw.ml" +# 110158 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 107905 "src/ocaml/preprocess/parser_raw.ml" +# 110164 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -107988,38 +110247,38 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 107994 "src/ocaml/preprocess/parser_raw.ml" +# 110253 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108001 "src/ocaml/preprocess/parser_raw.ml" +# 110260 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 108006 "src/ocaml/preprocess/parser_raw.ml" +# 110265 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 108016 "src/ocaml/preprocess/parser_raw.ml" +# 110275 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 108023 "src/ocaml/preprocess/parser_raw.ml" +# 110282 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = @@ -108030,24 +110289,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 108034 "src/ocaml/preprocess/parser_raw.ml" +# 110293 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 108039 "src/ocaml/preprocess/parser_raw.ml" +# 110298 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108045 "src/ocaml/preprocess/parser_raw.ml" +# 110304 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 108051 "src/ocaml/preprocess/parser_raw.ml" +# 110310 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -108055,53 +110314,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 108061 "src/ocaml/preprocess/parser_raw.ml" +# 110320 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108067 "src/ocaml/preprocess/parser_raw.ml" +# 110326 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 108074 "src/ocaml/preprocess/parser_raw.ml" +# 110333 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 108081 "src/ocaml/preprocess/parser_raw.ml" +# 110340 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 108090 "src/ocaml/preprocess/parser_raw.ml" +# 110349 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 108096 "src/ocaml/preprocess/parser_raw.ml" +# 110355 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 108105 "src/ocaml/preprocess/parser_raw.ml" +# 110364 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -108109,15 +110368,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 108115 "src/ocaml/preprocess/parser_raw.ml" +# 110374 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108121 "src/ocaml/preprocess/parser_raw.ml" +# 110380 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -108194,32 +110453,32 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 108200 "src/ocaml/preprocess/parser_raw.ml" +# 110459 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 108205 "src/ocaml/preprocess/parser_raw.ml" +# 110464 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 108214 "src/ocaml/preprocess/parser_raw.ml" +# 110473 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 108223 "src/ocaml/preprocess/parser_raw.ml" +# 110482 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -108231,24 +110490,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 108235 "src/ocaml/preprocess/parser_raw.ml" +# 110494 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 108240 "src/ocaml/preprocess/parser_raw.ml" +# 110499 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108246 "src/ocaml/preprocess/parser_raw.ml" +# 110505 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 108252 "src/ocaml/preprocess/parser_raw.ml" +# 110511 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -108256,53 +110515,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 108262 "src/ocaml/preprocess/parser_raw.ml" +# 110521 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108268 "src/ocaml/preprocess/parser_raw.ml" +# 110527 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 108275 "src/ocaml/preprocess/parser_raw.ml" +# 110534 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 108282 "src/ocaml/preprocess/parser_raw.ml" +# 110541 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 108291 "src/ocaml/preprocess/parser_raw.ml" +# 110550 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 108297 "src/ocaml/preprocess/parser_raw.ml" +# 110556 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 108306 "src/ocaml/preprocess/parser_raw.ml" +# 110565 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -108310,15 +110569,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 108316 "src/ocaml/preprocess/parser_raw.ml" +# 110575 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108322 "src/ocaml/preprocess/parser_raw.ml" +# 110581 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -108403,32 +110662,32 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 108409 "src/ocaml/preprocess/parser_raw.ml" +# 110668 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 108414 "src/ocaml/preprocess/parser_raw.ml" +# 110673 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 108423 "src/ocaml/preprocess/parser_raw.ml" +# 110682 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 108432 "src/ocaml/preprocess/parser_raw.ml" +# 110691 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -108440,24 +110699,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 108444 "src/ocaml/preprocess/parser_raw.ml" +# 110703 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 108449 "src/ocaml/preprocess/parser_raw.ml" +# 110708 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108455 "src/ocaml/preprocess/parser_raw.ml" +# 110714 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 108461 "src/ocaml/preprocess/parser_raw.ml" +# 110720 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -108465,53 +110724,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 108471 "src/ocaml/preprocess/parser_raw.ml" +# 110730 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108477 "src/ocaml/preprocess/parser_raw.ml" +# 110736 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 108484 "src/ocaml/preprocess/parser_raw.ml" +# 110743 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 108491 "src/ocaml/preprocess/parser_raw.ml" +# 110750 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 108500 "src/ocaml/preprocess/parser_raw.ml" +# 110759 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 108506 "src/ocaml/preprocess/parser_raw.ml" +# 110765 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 108515 "src/ocaml/preprocess/parser_raw.ml" +# 110774 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -108519,15 +110778,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 108525 "src/ocaml/preprocess/parser_raw.ml" +# 110784 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108531 "src/ocaml/preprocess/parser_raw.ml" +# 110790 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -108612,39 +110871,39 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 108618 "src/ocaml/preprocess/parser_raw.ml" +# 110877 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108624 "src/ocaml/preprocess/parser_raw.ml" +# 110883 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 108629 "src/ocaml/preprocess/parser_raw.ml" +# 110888 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 108639 "src/ocaml/preprocess/parser_raw.ml" +# 110898 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 108648 "src/ocaml/preprocess/parser_raw.ml" +# 110907 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -108656,24 +110915,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 108660 "src/ocaml/preprocess/parser_raw.ml" +# 110919 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 108665 "src/ocaml/preprocess/parser_raw.ml" +# 110924 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108671 "src/ocaml/preprocess/parser_raw.ml" +# 110930 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 108677 "src/ocaml/preprocess/parser_raw.ml" +# 110936 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -108681,53 +110940,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 108687 "src/ocaml/preprocess/parser_raw.ml" +# 110946 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108693 "src/ocaml/preprocess/parser_raw.ml" +# 110952 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 108700 "src/ocaml/preprocess/parser_raw.ml" +# 110959 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 108707 "src/ocaml/preprocess/parser_raw.ml" +# 110966 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 108716 "src/ocaml/preprocess/parser_raw.ml" +# 110975 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 108722 "src/ocaml/preprocess/parser_raw.ml" +# 110981 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 108731 "src/ocaml/preprocess/parser_raw.ml" +# 110990 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -108735,15 +110994,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 108741 "src/ocaml/preprocess/parser_raw.ml" +# 111000 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108747 "src/ocaml/preprocess/parser_raw.ml" +# 111006 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -108837,40 +111096,40 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 108843 "src/ocaml/preprocess/parser_raw.ml" +# 111102 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108850 "src/ocaml/preprocess/parser_raw.ml" +# 111109 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 108855 "src/ocaml/preprocess/parser_raw.ml" +# 111114 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 108865 "src/ocaml/preprocess/parser_raw.ml" +# 111124 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 108874 "src/ocaml/preprocess/parser_raw.ml" +# 111133 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -108882,24 +111141,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 108886 "src/ocaml/preprocess/parser_raw.ml" +# 111145 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 108891 "src/ocaml/preprocess/parser_raw.ml" +# 111150 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108897 "src/ocaml/preprocess/parser_raw.ml" +# 111156 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 108903 "src/ocaml/preprocess/parser_raw.ml" +# 111162 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -108907,53 +111166,53 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 108913 "src/ocaml/preprocess/parser_raw.ml" +# 111172 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108919 "src/ocaml/preprocess/parser_raw.ml" +# 111178 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 108926 "src/ocaml/preprocess/parser_raw.ml" +# 111185 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_) in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 108933 "src/ocaml/preprocess/parser_raw.ml" +# 111192 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 108942 "src/ocaml/preprocess/parser_raw.ml" +# 111201 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 108948 "src/ocaml/preprocess/parser_raw.ml" +# 111207 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 108957 "src/ocaml/preprocess/parser_raw.ml" +# 111216 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -108961,15 +111220,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 108967 "src/ocaml/preprocess/parser_raw.ml" +# 111226 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 108973 "src/ocaml/preprocess/parser_raw.ml" +# 111232 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -109012,72 +111271,72 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109018 "src/ocaml/preprocess/parser_raw.ml" +# 111277 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109023 "src/ocaml/preprocess/parser_raw.ml" +# 111282 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 109032 "src/ocaml/preprocess/parser_raw.ml" +# 111291 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109039 "src/ocaml/preprocess/parser_raw.ml" +# 111298 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 109045 "src/ocaml/preprocess/parser_raw.ml" +# 111304 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 109051 "src/ocaml/preprocess/parser_raw.ml" +# 111310 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109057 "src/ocaml/preprocess/parser_raw.ml" +# 111316 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 109066 "src/ocaml/preprocess/parser_raw.ml" +# 111325 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 109072 "src/ocaml/preprocess/parser_raw.ml" +# 111331 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 109081 "src/ocaml/preprocess/parser_raw.ml" +# 111340 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in @@ -109085,15 +111344,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 109091 "src/ocaml/preprocess/parser_raw.ml" +# 111350 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 109097 "src/ocaml/preprocess/parser_raw.ml" +# 111356 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -109143,72 +111402,72 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 109149 "src/ocaml/preprocess/parser_raw.ml" +# 111408 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109154 "src/ocaml/preprocess/parser_raw.ml" +# 111413 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 109163 "src/ocaml/preprocess/parser_raw.ml" +# 111422 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109170 "src/ocaml/preprocess/parser_raw.ml" +# 111429 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 109176 "src/ocaml/preprocess/parser_raw.ml" +# 111435 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 109182 "src/ocaml/preprocess/parser_raw.ml" +# 111441 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109188 "src/ocaml/preprocess/parser_raw.ml" +# 111447 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 109197 "src/ocaml/preprocess/parser_raw.ml" +# 111456 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 109203 "src/ocaml/preprocess/parser_raw.ml" +# 111462 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 109212 "src/ocaml/preprocess/parser_raw.ml" +# 111471 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_ty_ in @@ -109216,15 +111475,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 109222 "src/ocaml/preprocess/parser_raw.ml" +# 111481 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 109228 "src/ocaml/preprocess/parser_raw.ml" +# 111487 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -109274,79 +111533,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109280 "src/ocaml/preprocess/parser_raw.ml" +# 111539 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 109286 "src/ocaml/preprocess/parser_raw.ml" +# 111545 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 109291 "src/ocaml/preprocess/parser_raw.ml" +# 111550 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 109301 "src/ocaml/preprocess/parser_raw.ml" +# 111560 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109308 "src/ocaml/preprocess/parser_raw.ml" +# 111567 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 109314 "src/ocaml/preprocess/parser_raw.ml" +# 111573 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 109320 "src/ocaml/preprocess/parser_raw.ml" +# 111579 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109326 "src/ocaml/preprocess/parser_raw.ml" +# 111585 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 109335 "src/ocaml/preprocess/parser_raw.ml" +# 111594 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 109341 "src/ocaml/preprocess/parser_raw.ml" +# 111600 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 109350 "src/ocaml/preprocess/parser_raw.ml" +# 111609 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in @@ -109354,15 +111613,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 109360 "src/ocaml/preprocess/parser_raw.ml" +# 111619 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 109366 "src/ocaml/preprocess/parser_raw.ml" +# 111625 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -109421,80 +111680,80 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 109427 "src/ocaml/preprocess/parser_raw.ml" +# 111686 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 109434 "src/ocaml/preprocess/parser_raw.ml" +# 111693 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 109439 "src/ocaml/preprocess/parser_raw.ml" +# 111698 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 109449 "src/ocaml/preprocess/parser_raw.ml" +# 111708 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109456 "src/ocaml/preprocess/parser_raw.ml" +# 111715 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 109462 "src/ocaml/preprocess/parser_raw.ml" +# 111721 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 109468 "src/ocaml/preprocess/parser_raw.ml" +# 111727 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109474 "src/ocaml/preprocess/parser_raw.ml" +# 111733 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 109483 "src/ocaml/preprocess/parser_raw.ml" +# 111742 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 109489 "src/ocaml/preprocess/parser_raw.ml" +# 111748 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 109498 "src/ocaml/preprocess/parser_raw.ml" +# 111757 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_ty_) in @@ -109502,15 +111761,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 109508 "src/ocaml/preprocess/parser_raw.ml" +# 111767 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 109514 "src/ocaml/preprocess/parser_raw.ml" +# 111773 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -109560,72 +111819,72 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109566 "src/ocaml/preprocess/parser_raw.ml" +# 111825 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109571 "src/ocaml/preprocess/parser_raw.ml" +# 111830 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 109580 "src/ocaml/preprocess/parser_raw.ml" +# 111839 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 109587 "src/ocaml/preprocess/parser_raw.ml" +# 111846 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 109593 "src/ocaml/preprocess/parser_raw.ml" +# 111852 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 109599 "src/ocaml/preprocess/parser_raw.ml" +# 111858 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109605 "src/ocaml/preprocess/parser_raw.ml" +# 111864 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 109614 "src/ocaml/preprocess/parser_raw.ml" +# 111873 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 109620 "src/ocaml/preprocess/parser_raw.ml" +# 111879 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 109629 "src/ocaml/preprocess/parser_raw.ml" +# 111888 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in @@ -109633,15 +111892,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 109639 "src/ocaml/preprocess/parser_raw.ml" +# 111898 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 109645 "src/ocaml/preprocess/parser_raw.ml" +# 111904 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -109698,72 +111957,72 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 109704 "src/ocaml/preprocess/parser_raw.ml" +# 111963 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109709 "src/ocaml/preprocess/parser_raw.ml" +# 111968 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 109718 "src/ocaml/preprocess/parser_raw.ml" +# 111977 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 109725 "src/ocaml/preprocess/parser_raw.ml" +# 111984 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 109731 "src/ocaml/preprocess/parser_raw.ml" +# 111990 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 109737 "src/ocaml/preprocess/parser_raw.ml" +# 111996 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109743 "src/ocaml/preprocess/parser_raw.ml" +# 112002 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 109752 "src/ocaml/preprocess/parser_raw.ml" +# 112011 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 109758 "src/ocaml/preprocess/parser_raw.ml" +# 112017 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 109767 "src/ocaml/preprocess/parser_raw.ml" +# 112026 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_ty_) in @@ -109771,15 +112030,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 109777 "src/ocaml/preprocess/parser_raw.ml" +# 112036 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 109783 "src/ocaml/preprocess/parser_raw.ml" +# 112042 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -109836,79 +112095,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109842 "src/ocaml/preprocess/parser_raw.ml" +# 112101 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 109848 "src/ocaml/preprocess/parser_raw.ml" +# 112107 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 109853 "src/ocaml/preprocess/parser_raw.ml" +# 112112 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 109863 "src/ocaml/preprocess/parser_raw.ml" +# 112122 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 109870 "src/ocaml/preprocess/parser_raw.ml" +# 112129 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 109876 "src/ocaml/preprocess/parser_raw.ml" +# 112135 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 109882 "src/ocaml/preprocess/parser_raw.ml" +# 112141 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 109888 "src/ocaml/preprocess/parser_raw.ml" +# 112147 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 109897 "src/ocaml/preprocess/parser_raw.ml" +# 112156 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 109903 "src/ocaml/preprocess/parser_raw.ml" +# 112162 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 109912 "src/ocaml/preprocess/parser_raw.ml" +# 112171 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_ty_) in @@ -109916,15 +112175,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 109922 "src/ocaml/preprocess/parser_raw.ml" +# 112181 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 109928 "src/ocaml/preprocess/parser_raw.ml" +# 112187 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -109990,80 +112249,80 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 109996 "src/ocaml/preprocess/parser_raw.ml" +# 112255 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110003 "src/ocaml/preprocess/parser_raw.ml" +# 112262 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 110008 "src/ocaml/preprocess/parser_raw.ml" +# 112267 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 110018 "src/ocaml/preprocess/parser_raw.ml" +# 112277 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 110025 "src/ocaml/preprocess/parser_raw.ml" +# 112284 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 110031 "src/ocaml/preprocess/parser_raw.ml" +# 112290 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 110037 "src/ocaml/preprocess/parser_raw.ml" +# 112296 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 110043 "src/ocaml/preprocess/parser_raw.ml" +# 112302 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 110052 "src/ocaml/preprocess/parser_raw.ml" +# 112311 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 110058 "src/ocaml/preprocess/parser_raw.ml" +# 112317 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 110067 "src/ocaml/preprocess/parser_raw.ml" +# 112326 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_ty_) in @@ -110071,15 +112330,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 110077 "src/ocaml/preprocess/parser_raw.ml" +# 112336 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110083 "src/ocaml/preprocess/parser_raw.ml" +# 112342 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -110156,30 +112415,30 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 110162 "src/ocaml/preprocess/parser_raw.ml" +# 112421 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 110167 "src/ocaml/preprocess/parser_raw.ml" +# 112426 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 110176 "src/ocaml/preprocess/parser_raw.ml" +# 112435 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 110183 "src/ocaml/preprocess/parser_raw.ml" +# 112442 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -110191,24 +112450,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 110195 "src/ocaml/preprocess/parser_raw.ml" +# 112454 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 110200 "src/ocaml/preprocess/parser_raw.ml" +# 112459 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110206 "src/ocaml/preprocess/parser_raw.ml" +# 112465 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 110212 "src/ocaml/preprocess/parser_raw.ml" +# 112471 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -110216,60 +112475,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 110222 "src/ocaml/preprocess/parser_raw.ml" +# 112481 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110228 "src/ocaml/preprocess/parser_raw.ml" +# 112487 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 110235 "src/ocaml/preprocess/parser_raw.ml" +# 112494 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110243 "src/ocaml/preprocess/parser_raw.ml" +# 112502 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 110248 "src/ocaml/preprocess/parser_raw.ml" +# 112507 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 110258 "src/ocaml/preprocess/parser_raw.ml" +# 112517 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 110264 "src/ocaml/preprocess/parser_raw.ml" +# 112523 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 110273 "src/ocaml/preprocess/parser_raw.ml" +# 112532 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -110277,15 +112536,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 110283 "src/ocaml/preprocess/parser_raw.ml" +# 112542 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110289 "src/ocaml/preprocess/parser_raw.ml" +# 112548 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -110370,30 +112629,30 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 110376 "src/ocaml/preprocess/parser_raw.ml" +# 112635 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 110381 "src/ocaml/preprocess/parser_raw.ml" +# 112640 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 110390 "src/ocaml/preprocess/parser_raw.ml" +# 112649 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 110397 "src/ocaml/preprocess/parser_raw.ml" +# 112656 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -110405,24 +112664,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 110409 "src/ocaml/preprocess/parser_raw.ml" +# 112668 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 110414 "src/ocaml/preprocess/parser_raw.ml" +# 112673 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110420 "src/ocaml/preprocess/parser_raw.ml" +# 112679 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 110426 "src/ocaml/preprocess/parser_raw.ml" +# 112685 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -110430,60 +112689,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 110436 "src/ocaml/preprocess/parser_raw.ml" +# 112695 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110442 "src/ocaml/preprocess/parser_raw.ml" +# 112701 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 110449 "src/ocaml/preprocess/parser_raw.ml" +# 112708 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110457 "src/ocaml/preprocess/parser_raw.ml" +# 112716 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 110462 "src/ocaml/preprocess/parser_raw.ml" +# 112721 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 110472 "src/ocaml/preprocess/parser_raw.ml" +# 112731 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 110478 "src/ocaml/preprocess/parser_raw.ml" +# 112737 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 110487 "src/ocaml/preprocess/parser_raw.ml" +# 112746 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -110491,15 +112750,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 110497 "src/ocaml/preprocess/parser_raw.ml" +# 112756 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110503 "src/ocaml/preprocess/parser_raw.ml" +# 112762 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -110584,37 +112843,37 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined2 in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 110590 "src/ocaml/preprocess/parser_raw.ml" +# 112849 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110596 "src/ocaml/preprocess/parser_raw.ml" +# 112855 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 110601 "src/ocaml/preprocess/parser_raw.ml" +# 112860 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 110611 "src/ocaml/preprocess/parser_raw.ml" +# 112870 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 110618 "src/ocaml/preprocess/parser_raw.ml" +# 112877 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -110626,24 +112885,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 110630 "src/ocaml/preprocess/parser_raw.ml" +# 112889 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 110635 "src/ocaml/preprocess/parser_raw.ml" +# 112894 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110641 "src/ocaml/preprocess/parser_raw.ml" +# 112900 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 110647 "src/ocaml/preprocess/parser_raw.ml" +# 112906 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -110651,60 +112910,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 110657 "src/ocaml/preprocess/parser_raw.ml" +# 112916 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110663 "src/ocaml/preprocess/parser_raw.ml" +# 112922 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 110670 "src/ocaml/preprocess/parser_raw.ml" +# 112929 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110678 "src/ocaml/preprocess/parser_raw.ml" +# 112937 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 110683 "src/ocaml/preprocess/parser_raw.ml" +# 112942 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 110693 "src/ocaml/preprocess/parser_raw.ml" +# 112952 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 110699 "src/ocaml/preprocess/parser_raw.ml" +# 112958 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 110708 "src/ocaml/preprocess/parser_raw.ml" +# 112967 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -110712,15 +112971,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 110718 "src/ocaml/preprocess/parser_raw.ml" +# 112977 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110724 "src/ocaml/preprocess/parser_raw.ml" +# 112983 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -110814,38 +113073,38 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 110820 "src/ocaml/preprocess/parser_raw.ml" +# 113079 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110827 "src/ocaml/preprocess/parser_raw.ml" +# 113086 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 110832 "src/ocaml/preprocess/parser_raw.ml" +# 113091 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 110842 "src/ocaml/preprocess/parser_raw.ml" +# 113101 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 110849 "src/ocaml/preprocess/parser_raw.ml" +# 113108 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _startpos__1_ = _startpos__1_inlined1_ in @@ -110857,24 +113116,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 110861 "src/ocaml/preprocess/parser_raw.ml" +# 113120 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 110866 "src/ocaml/preprocess/parser_raw.ml" +# 113125 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110872 "src/ocaml/preprocess/parser_raw.ml" +# 113131 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 110878 "src/ocaml/preprocess/parser_raw.ml" +# 113137 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -110882,60 +113141,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 110888 "src/ocaml/preprocess/parser_raw.ml" +# 113147 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110894 "src/ocaml/preprocess/parser_raw.ml" +# 113153 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 110901 "src/ocaml/preprocess/parser_raw.ml" +# 113160 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110909 "src/ocaml/preprocess/parser_raw.ml" +# 113168 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 110914 "src/ocaml/preprocess/parser_raw.ml" +# 113173 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 110924 "src/ocaml/preprocess/parser_raw.ml" +# 113183 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 110930 "src/ocaml/preprocess/parser_raw.ml" +# 113189 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 110939 "src/ocaml/preprocess/parser_raw.ml" +# 113198 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -110943,15 +113202,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 110949 "src/ocaml/preprocess/parser_raw.ml" +# 113208 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 110955 "src/ocaml/preprocess/parser_raw.ml" +# 113214 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -111035,32 +113294,32 @@ module Tables = struct let _1 = let codomain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 111041 "src/ocaml/preprocess/parser_raw.ml" +# 113300 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 111046 "src/ocaml/preprocess/parser_raw.ml" +# 113305 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 111055 "src/ocaml/preprocess/parser_raw.ml" +# 113314 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 111064 "src/ocaml/preprocess/parser_raw.ml" +# 113323 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -111073,24 +113332,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 111077 "src/ocaml/preprocess/parser_raw.ml" +# 113336 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 111082 "src/ocaml/preprocess/parser_raw.ml" +# 113341 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111088 "src/ocaml/preprocess/parser_raw.ml" +# 113347 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 111094 "src/ocaml/preprocess/parser_raw.ml" +# 113353 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -111098,60 +113357,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 111104 "src/ocaml/preprocess/parser_raw.ml" +# 113363 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111110 "src/ocaml/preprocess/parser_raw.ml" +# 113369 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 111117 "src/ocaml/preprocess/parser_raw.ml" +# 113376 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111125 "src/ocaml/preprocess/parser_raw.ml" +# 113384 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 111130 "src/ocaml/preprocess/parser_raw.ml" +# 113389 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 111140 "src/ocaml/preprocess/parser_raw.ml" +# 113399 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 111146 "src/ocaml/preprocess/parser_raw.ml" +# 113405 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 111155 "src/ocaml/preprocess/parser_raw.ml" +# 113414 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -111159,15 +113418,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 111165 "src/ocaml/preprocess/parser_raw.ml" +# 113424 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111171 "src/ocaml/preprocess/parser_raw.ml" +# 113430 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -111259,32 +113518,32 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined3 in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 111265 "src/ocaml/preprocess/parser_raw.ml" +# 113524 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 111270 "src/ocaml/preprocess/parser_raw.ml" +# 113529 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 111279 "src/ocaml/preprocess/parser_raw.ml" +# 113538 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 111288 "src/ocaml/preprocess/parser_raw.ml" +# 113547 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -111297,24 +113556,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 111301 "src/ocaml/preprocess/parser_raw.ml" +# 113560 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 111306 "src/ocaml/preprocess/parser_raw.ml" +# 113565 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111312 "src/ocaml/preprocess/parser_raw.ml" +# 113571 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 111318 "src/ocaml/preprocess/parser_raw.ml" +# 113577 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -111322,60 +113581,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 111328 "src/ocaml/preprocess/parser_raw.ml" +# 113587 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111334 "src/ocaml/preprocess/parser_raw.ml" +# 113593 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 111341 "src/ocaml/preprocess/parser_raw.ml" +# 113600 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111349 "src/ocaml/preprocess/parser_raw.ml" +# 113608 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 111354 "src/ocaml/preprocess/parser_raw.ml" +# 113613 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 111364 "src/ocaml/preprocess/parser_raw.ml" +# 113623 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 111370 "src/ocaml/preprocess/parser_raw.ml" +# 113629 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 111379 "src/ocaml/preprocess/parser_raw.ml" +# 113638 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -111383,15 +113642,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 111389 "src/ocaml/preprocess/parser_raw.ml" +# 113648 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111395 "src/ocaml/preprocess/parser_raw.ml" +# 113654 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -111483,39 +113742,39 @@ module Tables = struct let codomain_with_modes = let _1 = _1_inlined3 in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 111489 "src/ocaml/preprocess/parser_raw.ml" +# 113748 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111495 "src/ocaml/preprocess/parser_raw.ml" +# 113754 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 111500 "src/ocaml/preprocess/parser_raw.ml" +# 113759 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 111510 "src/ocaml/preprocess/parser_raw.ml" +# 113769 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 111519 "src/ocaml/preprocess/parser_raw.ml" +# 113778 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -111528,24 +113787,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 111532 "src/ocaml/preprocess/parser_raw.ml" +# 113791 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 111537 "src/ocaml/preprocess/parser_raw.ml" +# 113796 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111543 "src/ocaml/preprocess/parser_raw.ml" +# 113802 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 111549 "src/ocaml/preprocess/parser_raw.ml" +# 113808 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -111553,60 +113812,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 111559 "src/ocaml/preprocess/parser_raw.ml" +# 113818 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111565 "src/ocaml/preprocess/parser_raw.ml" +# 113824 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 111572 "src/ocaml/preprocess/parser_raw.ml" +# 113831 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111580 "src/ocaml/preprocess/parser_raw.ml" +# 113839 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 111585 "src/ocaml/preprocess/parser_raw.ml" +# 113844 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 111595 "src/ocaml/preprocess/parser_raw.ml" +# 113854 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 111601 "src/ocaml/preprocess/parser_raw.ml" +# 113860 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 111610 "src/ocaml/preprocess/parser_raw.ml" +# 113869 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in @@ -111614,15 +113873,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 111620 "src/ocaml/preprocess/parser_raw.ml" +# 113879 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111626 "src/ocaml/preprocess/parser_raw.ml" +# 113885 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -111723,40 +113982,40 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 111729 "src/ocaml/preprocess/parser_raw.ml" +# 113988 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111736 "src/ocaml/preprocess/parser_raw.ml" +# 113995 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 111741 "src/ocaml/preprocess/parser_raw.ml" +# 114000 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 111751 "src/ocaml/preprocess/parser_raw.ml" +# 114010 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined2 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 111760 "src/ocaml/preprocess/parser_raw.ml" +# 114019 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -111769,24 +114028,24 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 111773 "src/ocaml/preprocess/parser_raw.ml" +# 114032 "src/ocaml/preprocess/parser_raw.ml" in -# 1398 "src/ocaml/preprocess/parser_raw.mly" +# 1410 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 111778 "src/ocaml/preprocess/parser_raw.ml" +# 114037 "src/ocaml/preprocess/parser_raw.ml" in -# 4480 "src/ocaml/preprocess/parser_raw.mly" +# 4454 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111784 "src/ocaml/preprocess/parser_raw.ml" +# 114043 "src/ocaml/preprocess/parser_raw.ml" in -# 4738 "src/ocaml/preprocess/parser_raw.mly" +# 4735 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_poly (bound_vars, inner_type) ) -# 111790 "src/ocaml/preprocess/parser_raw.ml" +# 114049 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in @@ -111794,60 +114053,60 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 111800 "src/ocaml/preprocess/parser_raw.ml" +# 114059 "src/ocaml/preprocess/parser_raw.ml" in -# 4740 "src/ocaml/preprocess/parser_raw.mly" +# 4737 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111806 "src/ocaml/preprocess/parser_raw.ml" +# 114065 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__5_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 111813 "src/ocaml/preprocess/parser_raw.ml" +# 114072 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos_ty_, _startpos_ty_) = (_endpos__5_, _startpos__1_inlined1_) in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111821 "src/ocaml/preprocess/parser_raw.ml" +# 114080 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 111826 "src/ocaml/preprocess/parser_raw.ml" +# 114085 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 111836 "src/ocaml/preprocess/parser_raw.ml" +# 114095 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 111842 "src/ocaml/preprocess/parser_raw.ml" +# 114101 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 111851 "src/ocaml/preprocess/parser_raw.ml" +# 114110 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -111855,15 +114114,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 111861 "src/ocaml/preprocess/parser_raw.ml" +# 114120 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111867 "src/ocaml/preprocess/parser_raw.ml" +# 114126 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -111913,79 +114172,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 111919 "src/ocaml/preprocess/parser_raw.ml" +# 114178 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 111924 "src/ocaml/preprocess/parser_raw.ml" +# 114183 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 111933 "src/ocaml/preprocess/parser_raw.ml" +# 114192 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 111940 "src/ocaml/preprocess/parser_raw.ml" +# 114199 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 111946 "src/ocaml/preprocess/parser_raw.ml" +# 114205 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 111952 "src/ocaml/preprocess/parser_raw.ml" +# 114211 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 111959 "src/ocaml/preprocess/parser_raw.ml" +# 114218 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 111964 "src/ocaml/preprocess/parser_raw.ml" +# 114223 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 111974 "src/ocaml/preprocess/parser_raw.ml" +# 114233 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 111980 "src/ocaml/preprocess/parser_raw.ml" +# 114239 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 111989 "src/ocaml/preprocess/parser_raw.ml" +# 114248 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_inlined1_ in @@ -111993,15 +114252,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 111999 "src/ocaml/preprocess/parser_raw.ml" +# 114258 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112005 "src/ocaml/preprocess/parser_raw.ml" +# 114264 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -112058,79 +114317,79 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112064 "src/ocaml/preprocess/parser_raw.ml" +# 114323 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 112069 "src/ocaml/preprocess/parser_raw.ml" +# 114328 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 112078 "src/ocaml/preprocess/parser_raw.ml" +# 114337 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 112085 "src/ocaml/preprocess/parser_raw.ml" +# 114344 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 112091 "src/ocaml/preprocess/parser_raw.ml" +# 114350 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 112097 "src/ocaml/preprocess/parser_raw.ml" +# 114356 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112104 "src/ocaml/preprocess/parser_raw.ml" +# 114363 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112109 "src/ocaml/preprocess/parser_raw.ml" +# 114368 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 112119 "src/ocaml/preprocess/parser_raw.ml" +# 114378 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 112125 "src/ocaml/preprocess/parser_raw.ml" +# 114384 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 112134 "src/ocaml/preprocess/parser_raw.ml" +# 114393 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -112138,15 +114397,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 112144 "src/ocaml/preprocess/parser_raw.ml" +# 114403 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112150 "src/ocaml/preprocess/parser_raw.ml" +# 114409 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -112203,86 +114462,86 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 112209 "src/ocaml/preprocess/parser_raw.ml" +# 114468 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112215 "src/ocaml/preprocess/parser_raw.ml" +# 114474 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112220 "src/ocaml/preprocess/parser_raw.ml" +# 114479 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 112230 "src/ocaml/preprocess/parser_raw.ml" +# 114489 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 112237 "src/ocaml/preprocess/parser_raw.ml" +# 114496 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 112243 "src/ocaml/preprocess/parser_raw.ml" +# 114502 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 112249 "src/ocaml/preprocess/parser_raw.ml" +# 114508 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112256 "src/ocaml/preprocess/parser_raw.ml" +# 114515 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112261 "src/ocaml/preprocess/parser_raw.ml" +# 114520 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 112271 "src/ocaml/preprocess/parser_raw.ml" +# 114530 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 112277 "src/ocaml/preprocess/parser_raw.ml" +# 114536 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 112286 "src/ocaml/preprocess/parser_raw.ml" +# 114545 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_inlined1_ in @@ -112290,15 +114549,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 112296 "src/ocaml/preprocess/parser_raw.ml" +# 114555 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112302 "src/ocaml/preprocess/parser_raw.ml" +# 114561 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -112364,87 +114623,87 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112370 "src/ocaml/preprocess/parser_raw.ml" +# 114629 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112377 "src/ocaml/preprocess/parser_raw.ml" +# 114636 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112382 "src/ocaml/preprocess/parser_raw.ml" +# 114641 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 112392 "src/ocaml/preprocess/parser_raw.ml" +# 114651 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 112399 "src/ocaml/preprocess/parser_raw.ml" +# 114658 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 112405 "src/ocaml/preprocess/parser_raw.ml" +# 114664 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 112411 "src/ocaml/preprocess/parser_raw.ml" +# 114670 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112418 "src/ocaml/preprocess/parser_raw.ml" +# 114677 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112423 "src/ocaml/preprocess/parser_raw.ml" +# 114682 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 112433 "src/ocaml/preprocess/parser_raw.ml" +# 114692 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 112439 "src/ocaml/preprocess/parser_raw.ml" +# 114698 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 112448 "src/ocaml/preprocess/parser_raw.ml" +# 114707 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -112452,15 +114711,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 112458 "src/ocaml/preprocess/parser_raw.ml" +# 114717 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112464 "src/ocaml/preprocess/parser_raw.ml" +# 114723 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -112517,82 +114776,82 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 112523 "src/ocaml/preprocess/parser_raw.ml" +# 114782 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 112528 "src/ocaml/preprocess/parser_raw.ml" +# 114787 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 112537 "src/ocaml/preprocess/parser_raw.ml" +# 114796 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112546 "src/ocaml/preprocess/parser_raw.ml" +# 114805 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 112553 "src/ocaml/preprocess/parser_raw.ml" +# 114812 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 112559 "src/ocaml/preprocess/parser_raw.ml" +# 114818 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112566 "src/ocaml/preprocess/parser_raw.ml" +# 114825 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112571 "src/ocaml/preprocess/parser_raw.ml" +# 114830 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 112581 "src/ocaml/preprocess/parser_raw.ml" +# 114840 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 112587 "src/ocaml/preprocess/parser_raw.ml" +# 114846 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 112596 "src/ocaml/preprocess/parser_raw.ml" +# 114855 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_inlined1_ in @@ -112600,15 +114859,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 112606 "src/ocaml/preprocess/parser_raw.ml" +# 114865 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112612 "src/ocaml/preprocess/parser_raw.ml" +# 114871 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -112672,82 +114931,82 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112678 "src/ocaml/preprocess/parser_raw.ml" +# 114937 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 112683 "src/ocaml/preprocess/parser_raw.ml" +# 114942 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 112692 "src/ocaml/preprocess/parser_raw.ml" +# 114951 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112701 "src/ocaml/preprocess/parser_raw.ml" +# 114960 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 112708 "src/ocaml/preprocess/parser_raw.ml" +# 114967 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 112714 "src/ocaml/preprocess/parser_raw.ml" +# 114973 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112721 "src/ocaml/preprocess/parser_raw.ml" +# 114980 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112726 "src/ocaml/preprocess/parser_raw.ml" +# 114985 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 112736 "src/ocaml/preprocess/parser_raw.ml" +# 114995 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 112742 "src/ocaml/preprocess/parser_raw.ml" +# 115001 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 112751 "src/ocaml/preprocess/parser_raw.ml" +# 115010 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -112755,15 +115014,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 112761 "src/ocaml/preprocess/parser_raw.ml" +# 115020 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112767 "src/ocaml/preprocess/parser_raw.ml" +# 115026 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -112827,89 +115086,89 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 112833 "src/ocaml/preprocess/parser_raw.ml" +# 115092 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112839 "src/ocaml/preprocess/parser_raw.ml" +# 115098 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112844 "src/ocaml/preprocess/parser_raw.ml" +# 115103 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 112854 "src/ocaml/preprocess/parser_raw.ml" +# 115113 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112863 "src/ocaml/preprocess/parser_raw.ml" +# 115122 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 112870 "src/ocaml/preprocess/parser_raw.ml" +# 115129 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 112876 "src/ocaml/preprocess/parser_raw.ml" +# 115135 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112883 "src/ocaml/preprocess/parser_raw.ml" +# 115142 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 112888 "src/ocaml/preprocess/parser_raw.ml" +# 115147 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 112898 "src/ocaml/preprocess/parser_raw.ml" +# 115157 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 112904 "src/ocaml/preprocess/parser_raw.ml" +# 115163 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 112913 "src/ocaml/preprocess/parser_raw.ml" +# 115172 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_inlined1_ in @@ -112917,15 +115176,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 112923 "src/ocaml/preprocess/parser_raw.ml" +# 115182 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 112929 "src/ocaml/preprocess/parser_raw.ml" +# 115188 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -112998,90 +115257,90 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 113004 "src/ocaml/preprocess/parser_raw.ml" +# 115263 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 113011 "src/ocaml/preprocess/parser_raw.ml" +# 115270 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 113016 "src/ocaml/preprocess/parser_raw.ml" +# 115275 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 113026 "src/ocaml/preprocess/parser_raw.ml" +# 115285 "src/ocaml/preprocess/parser_raw.ml" in let domain_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 113035 "src/ocaml/preprocess/parser_raw.ml" +# 115294 "src/ocaml/preprocess/parser_raw.ml" in let ty = let _1 = -# 4742 "src/ocaml/preprocess/parser_raw.mly" +# 4739 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 113042 "src/ocaml/preprocess/parser_raw.ml" +# 115301 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_ty_ in -# 1294 "src/ocaml/preprocess/parser_raw.mly" +# 1306 "src/ocaml/preprocess/parser_raw.mly" ( extra_rhs_core_type _1 ~pos:_endpos__1_ ) -# 113048 "src/ocaml/preprocess/parser_raw.ml" +# 115307 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 113055 "src/ocaml/preprocess/parser_raw.ml" +# 115314 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 113060 "src/ocaml/preprocess/parser_raw.ml" +# 115319 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 113070 "src/ocaml/preprocess/parser_raw.ml" +# 115329 "src/ocaml/preprocess/parser_raw.ml" in let label = -# 4645 "src/ocaml/preprocess/parser_raw.mly" +# 4657 "src/ocaml/preprocess/parser_raw.mly" ( Nolabel ) -# 113076 "src/ocaml/preprocess/parser_raw.ml" +# 115335 "src/ocaml/preprocess/parser_raw.ml" in -# 4575 "src/ocaml/preprocess/parser_raw.mly" +# 4587 "src/ocaml/preprocess/parser_raw.mly" ( let (domain, (_ : Lexing.position * Lexing.position)), arg_modes = domain_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in Ptyp_arrow(label, domain, maybe_curry_typ codomain codomain_loc, arg_modes, ret_modes) ) -# 113085 "src/ocaml/preprocess/parser_raw.ml" +# 115344 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -113089,15 +115348,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 113095 "src/ocaml/preprocess/parser_raw.ml" +# 115354 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4581 "src/ocaml/preprocess/parser_raw.mly" +# 4593 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 113101 "src/ocaml/preprocess/parser_raw.ml" +# 115360 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -113159,9 +115418,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 113165 "src/ocaml/preprocess/parser_raw.ml" +# 115424 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -113171,47 +115430,47 @@ module Tables = struct let _1 = let tuple_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 113177 "src/ocaml/preprocess/parser_raw.ml" +# 115436 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 113184 "src/ocaml/preprocess/parser_raw.ml" +# 115443 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 113189 "src/ocaml/preprocess/parser_raw.ml" +# 115448 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 113195 "src/ocaml/preprocess/parser_raw.ml" +# 115454 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 113202 "src/ocaml/preprocess/parser_raw.ml" +# 115461 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 113211 "src/ocaml/preprocess/parser_raw.ml" +# 115470 "src/ocaml/preprocess/parser_raw.ml" in -# 4599 "src/ocaml/preprocess/parser_raw.mly" +# 4611 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let ty, ltys = tuple in @@ -113219,7 +115478,7 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 113223 "src/ocaml/preprocess/parser_raw.ml" +# 115482 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -113227,15 +115486,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 113233 "src/ocaml/preprocess/parser_raw.ml" +# 115492 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4607 "src/ocaml/preprocess/parser_raw.mly" +# 4619 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 113239 "src/ocaml/preprocess/parser_raw.ml" +# 115498 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -113304,9 +115563,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 113310 "src/ocaml/preprocess/parser_raw.ml" +# 115569 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -113316,47 +115575,47 @@ module Tables = struct let _1 = let tuple_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 113322 "src/ocaml/preprocess/parser_raw.ml" +# 115581 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 113329 "src/ocaml/preprocess/parser_raw.ml" +# 115588 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 113334 "src/ocaml/preprocess/parser_raw.ml" +# 115593 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 113340 "src/ocaml/preprocess/parser_raw.ml" +# 115599 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 113347 "src/ocaml/preprocess/parser_raw.ml" +# 115606 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 113356 "src/ocaml/preprocess/parser_raw.ml" +# 115615 "src/ocaml/preprocess/parser_raw.ml" in -# 4599 "src/ocaml/preprocess/parser_raw.mly" +# 4611 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let ty, ltys = tuple in @@ -113364,7 +115623,7 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 113368 "src/ocaml/preprocess/parser_raw.ml" +# 115627 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -113372,15 +115631,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 113378 "src/ocaml/preprocess/parser_raw.ml" +# 115637 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4607 "src/ocaml/preprocess/parser_raw.mly" +# 4619 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 113384 "src/ocaml/preprocess/parser_raw.ml" +# 115643 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -113449,9 +115708,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 113455 "src/ocaml/preprocess/parser_raw.ml" +# 115714 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -113461,54 +115720,54 @@ module Tables = struct let _1 = let tuple_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 113467 "src/ocaml/preprocess/parser_raw.ml" +# 115726 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 113474 "src/ocaml/preprocess/parser_raw.ml" +# 115733 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 113479 "src/ocaml/preprocess/parser_raw.ml" +# 115738 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 113485 "src/ocaml/preprocess/parser_raw.ml" +# 115744 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 113493 "src/ocaml/preprocess/parser_raw.ml" +# 115752 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 113498 "src/ocaml/preprocess/parser_raw.ml" +# 115757 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 113508 "src/ocaml/preprocess/parser_raw.ml" +# 115767 "src/ocaml/preprocess/parser_raw.ml" in -# 4599 "src/ocaml/preprocess/parser_raw.mly" +# 4611 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let ty, ltys = tuple in @@ -113516,7 +115775,7 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 113520 "src/ocaml/preprocess/parser_raw.ml" +# 115779 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -113524,15 +115783,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 113530 "src/ocaml/preprocess/parser_raw.ml" +# 115789 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4607 "src/ocaml/preprocess/parser_raw.mly" +# 4619 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 113536 "src/ocaml/preprocess/parser_raw.ml" +# 115795 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -113608,9 +115867,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 113614 "src/ocaml/preprocess/parser_raw.ml" +# 115873 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -113622,9 +115881,9 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 113628 "src/ocaml/preprocess/parser_raw.ml" +# 115887 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -113632,45 +115891,45 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 113636 "src/ocaml/preprocess/parser_raw.ml" +# 115895 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 113641 "src/ocaml/preprocess/parser_raw.ml" +# 115900 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 113647 "src/ocaml/preprocess/parser_raw.ml" +# 115906 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 113655 "src/ocaml/preprocess/parser_raw.ml" +# 115914 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 113660 "src/ocaml/preprocess/parser_raw.ml" +# 115919 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 113670 "src/ocaml/preprocess/parser_raw.ml" +# 115929 "src/ocaml/preprocess/parser_raw.ml" in -# 4599 "src/ocaml/preprocess/parser_raw.mly" +# 4611 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let ty, ltys = tuple in @@ -113678,7 +115937,7 @@ module Tables = struct let domain = mktyp ~loc:tuple_loc (Ptyp_tuple ((None, ty) :: ltys)) in let domain = extra_rhs_core_type domain ~pos:(snd tuple_loc) in Ptyp_arrow(label, domain, codomain, arg_modes, []) ) -# 113682 "src/ocaml/preprocess/parser_raw.ml" +# 115941 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_codomain_, _startpos_label_) in @@ -113686,15 +115945,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 113692 "src/ocaml/preprocess/parser_raw.ml" +# 115951 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4607 "src/ocaml/preprocess/parser_raw.mly" +# 4619 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 113698 "src/ocaml/preprocess/parser_raw.ml" +# 115957 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -113756,9 +116015,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 113762 "src/ocaml/preprocess/parser_raw.ml" +# 116021 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -113769,68 +116028,68 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 113775 "src/ocaml/preprocess/parser_raw.ml" +# 116034 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 113780 "src/ocaml/preprocess/parser_raw.ml" +# 116039 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 113789 "src/ocaml/preprocess/parser_raw.ml" +# 116048 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 113796 "src/ocaml/preprocess/parser_raw.ml" +# 116055 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 113803 "src/ocaml/preprocess/parser_raw.ml" +# 116062 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 113808 "src/ocaml/preprocess/parser_raw.ml" +# 116067 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 113814 "src/ocaml/preprocess/parser_raw.ml" +# 116073 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 113821 "src/ocaml/preprocess/parser_raw.ml" +# 116080 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 113830 "src/ocaml/preprocess/parser_raw.ml" +# 116089 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -113843,7 +116102,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 113847 "src/ocaml/preprocess/parser_raw.ml" +# 116106 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -113851,15 +116110,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 113857 "src/ocaml/preprocess/parser_raw.ml" +# 116116 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 113863 "src/ocaml/preprocess/parser_raw.ml" +# 116122 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -113928,9 +116187,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 113934 "src/ocaml/preprocess/parser_raw.ml" +# 116193 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -113941,68 +116200,68 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 113947 "src/ocaml/preprocess/parser_raw.ml" +# 116206 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 113952 "src/ocaml/preprocess/parser_raw.ml" +# 116211 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 113961 "src/ocaml/preprocess/parser_raw.ml" +# 116220 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 113968 "src/ocaml/preprocess/parser_raw.ml" +# 116227 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 113975 "src/ocaml/preprocess/parser_raw.ml" +# 116234 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 113980 "src/ocaml/preprocess/parser_raw.ml" +# 116239 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 113986 "src/ocaml/preprocess/parser_raw.ml" +# 116245 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 113993 "src/ocaml/preprocess/parser_raw.ml" +# 116252 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 114002 "src/ocaml/preprocess/parser_raw.ml" +# 116261 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -114015,7 +116274,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 114019 "src/ocaml/preprocess/parser_raw.ml" +# 116278 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_label_ in @@ -114023,15 +116282,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 114029 "src/ocaml/preprocess/parser_raw.ml" +# 116288 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 114035 "src/ocaml/preprocess/parser_raw.ml" +# 116294 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -114100,9 +116359,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 114106 "src/ocaml/preprocess/parser_raw.ml" +# 116365 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -114113,75 +116372,75 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 114119 "src/ocaml/preprocess/parser_raw.ml" +# 116378 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 114125 "src/ocaml/preprocess/parser_raw.ml" +# 116384 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 114130 "src/ocaml/preprocess/parser_raw.ml" +# 116389 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 114140 "src/ocaml/preprocess/parser_raw.ml" +# 116399 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 114147 "src/ocaml/preprocess/parser_raw.ml" +# 116406 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 114154 "src/ocaml/preprocess/parser_raw.ml" +# 116413 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 114159 "src/ocaml/preprocess/parser_raw.ml" +# 116418 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 114165 "src/ocaml/preprocess/parser_raw.ml" +# 116424 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 114172 "src/ocaml/preprocess/parser_raw.ml" +# 116431 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 114181 "src/ocaml/preprocess/parser_raw.ml" +# 116440 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -114194,7 +116453,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 114198 "src/ocaml/preprocess/parser_raw.ml" +# 116457 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -114202,15 +116461,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 114208 "src/ocaml/preprocess/parser_raw.ml" +# 116467 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 114214 "src/ocaml/preprocess/parser_raw.ml" +# 116473 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -114286,9 +116545,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 114292 "src/ocaml/preprocess/parser_raw.ml" +# 116551 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -114301,76 +116560,76 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 114307 "src/ocaml/preprocess/parser_raw.ml" +# 116566 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 114314 "src/ocaml/preprocess/parser_raw.ml" +# 116573 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 114319 "src/ocaml/preprocess/parser_raw.ml" +# 116578 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 114329 "src/ocaml/preprocess/parser_raw.ml" +# 116588 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 114336 "src/ocaml/preprocess/parser_raw.ml" +# 116595 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 114343 "src/ocaml/preprocess/parser_raw.ml" +# 116602 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 114348 "src/ocaml/preprocess/parser_raw.ml" +# 116607 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 114354 "src/ocaml/preprocess/parser_raw.ml" +# 116613 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 114361 "src/ocaml/preprocess/parser_raw.ml" +# 116620 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 114370 "src/ocaml/preprocess/parser_raw.ml" +# 116629 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -114383,7 +116642,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 114387 "src/ocaml/preprocess/parser_raw.ml" +# 116646 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -114391,15 +116650,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 114397 "src/ocaml/preprocess/parser_raw.ml" +# 116656 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 114403 "src/ocaml/preprocess/parser_raw.ml" +# 116662 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -114468,9 +116727,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 114474 "src/ocaml/preprocess/parser_raw.ml" +# 116733 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -114481,68 +116740,68 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 114487 "src/ocaml/preprocess/parser_raw.ml" +# 116746 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 114492 "src/ocaml/preprocess/parser_raw.ml" +# 116751 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 114501 "src/ocaml/preprocess/parser_raw.ml" +# 116760 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 114508 "src/ocaml/preprocess/parser_raw.ml" +# 116767 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 114515 "src/ocaml/preprocess/parser_raw.ml" +# 116774 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 114520 "src/ocaml/preprocess/parser_raw.ml" +# 116779 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 114526 "src/ocaml/preprocess/parser_raw.ml" +# 116785 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 114533 "src/ocaml/preprocess/parser_raw.ml" +# 116792 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 114542 "src/ocaml/preprocess/parser_raw.ml" +# 116801 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -114555,7 +116814,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 114559 "src/ocaml/preprocess/parser_raw.ml" +# 116818 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -114563,15 +116822,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 114569 "src/ocaml/preprocess/parser_raw.ml" +# 116828 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 114575 "src/ocaml/preprocess/parser_raw.ml" +# 116834 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -114647,9 +116906,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 114653 "src/ocaml/preprocess/parser_raw.ml" +# 116912 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -114660,68 +116919,68 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 114666 "src/ocaml/preprocess/parser_raw.ml" +# 116925 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 114671 "src/ocaml/preprocess/parser_raw.ml" +# 116930 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 114680 "src/ocaml/preprocess/parser_raw.ml" +# 116939 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 114687 "src/ocaml/preprocess/parser_raw.ml" +# 116946 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 114694 "src/ocaml/preprocess/parser_raw.ml" +# 116953 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 114699 "src/ocaml/preprocess/parser_raw.ml" +# 116958 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 114705 "src/ocaml/preprocess/parser_raw.ml" +# 116964 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 114712 "src/ocaml/preprocess/parser_raw.ml" +# 116971 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 114721 "src/ocaml/preprocess/parser_raw.ml" +# 116980 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -114734,7 +116993,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 114738 "src/ocaml/preprocess/parser_raw.ml" +# 116997 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -114742,15 +117001,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 114748 "src/ocaml/preprocess/parser_raw.ml" +# 117007 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 114754 "src/ocaml/preprocess/parser_raw.ml" +# 117013 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -114826,9 +117085,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 114832 "src/ocaml/preprocess/parser_raw.ml" +# 117091 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -114839,75 +117098,75 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 114845 "src/ocaml/preprocess/parser_raw.ml" +# 117104 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 114851 "src/ocaml/preprocess/parser_raw.ml" +# 117110 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 114856 "src/ocaml/preprocess/parser_raw.ml" +# 117115 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 114866 "src/ocaml/preprocess/parser_raw.ml" +# 117125 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 114873 "src/ocaml/preprocess/parser_raw.ml" +# 117132 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 114880 "src/ocaml/preprocess/parser_raw.ml" +# 117139 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 114885 "src/ocaml/preprocess/parser_raw.ml" +# 117144 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 114891 "src/ocaml/preprocess/parser_raw.ml" +# 117150 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 114898 "src/ocaml/preprocess/parser_raw.ml" +# 117157 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 114907 "src/ocaml/preprocess/parser_raw.ml" +# 117166 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -114920,7 +117179,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 114924 "src/ocaml/preprocess/parser_raw.ml" +# 117183 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -114928,15 +117187,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 114934 "src/ocaml/preprocess/parser_raw.ml" +# 117193 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 114940 "src/ocaml/preprocess/parser_raw.ml" +# 117199 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -115019,9 +117278,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 115025 "src/ocaml/preprocess/parser_raw.ml" +# 117284 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -115034,76 +117293,76 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 115040 "src/ocaml/preprocess/parser_raw.ml" +# 117299 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 115047 "src/ocaml/preprocess/parser_raw.ml" +# 117306 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 115052 "src/ocaml/preprocess/parser_raw.ml" +# 117311 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 115062 "src/ocaml/preprocess/parser_raw.ml" +# 117321 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 115069 "src/ocaml/preprocess/parser_raw.ml" +# 117328 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 115076 "src/ocaml/preprocess/parser_raw.ml" +# 117335 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 115081 "src/ocaml/preprocess/parser_raw.ml" +# 117340 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 115087 "src/ocaml/preprocess/parser_raw.ml" +# 117346 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 115094 "src/ocaml/preprocess/parser_raw.ml" +# 117353 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 115103 "src/ocaml/preprocess/parser_raw.ml" +# 117362 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -115116,7 +117375,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 115120 "src/ocaml/preprocess/parser_raw.ml" +# 117379 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -115124,15 +117383,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 115130 "src/ocaml/preprocess/parser_raw.ml" +# 117389 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 115136 "src/ocaml/preprocess/parser_raw.ml" +# 117395 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -115201,9 +117460,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 115207 "src/ocaml/preprocess/parser_raw.ml" +# 117466 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -115214,75 +117473,75 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 115220 "src/ocaml/preprocess/parser_raw.ml" +# 117479 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 115225 "src/ocaml/preprocess/parser_raw.ml" +# 117484 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 115234 "src/ocaml/preprocess/parser_raw.ml" +# 117493 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 115241 "src/ocaml/preprocess/parser_raw.ml" +# 117500 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 115248 "src/ocaml/preprocess/parser_raw.ml" +# 117507 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 115253 "src/ocaml/preprocess/parser_raw.ml" +# 117512 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 115259 "src/ocaml/preprocess/parser_raw.ml" +# 117518 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 115267 "src/ocaml/preprocess/parser_raw.ml" +# 117526 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 115272 "src/ocaml/preprocess/parser_raw.ml" +# 117531 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 115282 "src/ocaml/preprocess/parser_raw.ml" +# 117541 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -115295,7 +117554,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 115299 "src/ocaml/preprocess/parser_raw.ml" +# 117558 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -115303,15 +117562,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 115309 "src/ocaml/preprocess/parser_raw.ml" +# 117568 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 115315 "src/ocaml/preprocess/parser_raw.ml" +# 117574 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -115387,9 +117646,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 115393 "src/ocaml/preprocess/parser_raw.ml" +# 117652 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -115400,75 +117659,75 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined1, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 115406 "src/ocaml/preprocess/parser_raw.ml" +# 117665 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 115411 "src/ocaml/preprocess/parser_raw.ml" +# 117670 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 115420 "src/ocaml/preprocess/parser_raw.ml" +# 117679 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 115427 "src/ocaml/preprocess/parser_raw.ml" +# 117686 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 115434 "src/ocaml/preprocess/parser_raw.ml" +# 117693 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 115439 "src/ocaml/preprocess/parser_raw.ml" +# 117698 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 115445 "src/ocaml/preprocess/parser_raw.ml" +# 117704 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 115453 "src/ocaml/preprocess/parser_raw.ml" +# 117712 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 115458 "src/ocaml/preprocess/parser_raw.ml" +# 117717 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 115468 "src/ocaml/preprocess/parser_raw.ml" +# 117727 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -115481,7 +117740,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 115485 "src/ocaml/preprocess/parser_raw.ml" +# 117744 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_label_) in @@ -115489,15 +117748,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 115495 "src/ocaml/preprocess/parser_raw.ml" +# 117754 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 115501 "src/ocaml/preprocess/parser_raw.ml" +# 117760 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -115573,9 +117832,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 115579 "src/ocaml/preprocess/parser_raw.ml" +# 117838 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -115586,82 +117845,82 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 115592 "src/ocaml/preprocess/parser_raw.ml" +# 117851 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 115598 "src/ocaml/preprocess/parser_raw.ml" +# 117857 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 115603 "src/ocaml/preprocess/parser_raw.ml" +# 117862 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 115613 "src/ocaml/preprocess/parser_raw.ml" +# 117872 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 115620 "src/ocaml/preprocess/parser_raw.ml" +# 117879 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 115627 "src/ocaml/preprocess/parser_raw.ml" +# 117886 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 115632 "src/ocaml/preprocess/parser_raw.ml" +# 117891 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 115638 "src/ocaml/preprocess/parser_raw.ml" +# 117897 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 115646 "src/ocaml/preprocess/parser_raw.ml" +# 117905 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 115651 "src/ocaml/preprocess/parser_raw.ml" +# 117910 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 115661 "src/ocaml/preprocess/parser_raw.ml" +# 117920 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -115674,7 +117933,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 115678 "src/ocaml/preprocess/parser_raw.ml" +# 117937 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -115682,15 +117941,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 115688 "src/ocaml/preprocess/parser_raw.ml" +# 117947 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 115694 "src/ocaml/preprocess/parser_raw.ml" +# 117953 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -115773,9 +118032,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 115779 "src/ocaml/preprocess/parser_raw.ml" +# 118038 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -115788,83 +118047,83 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 115794 "src/ocaml/preprocess/parser_raw.ml" +# 118053 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 115801 "src/ocaml/preprocess/parser_raw.ml" +# 118060 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 115806 "src/ocaml/preprocess/parser_raw.ml" +# 118065 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 115816 "src/ocaml/preprocess/parser_raw.ml" +# 118075 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 115823 "src/ocaml/preprocess/parser_raw.ml" +# 118082 "src/ocaml/preprocess/parser_raw.ml" in let ty = let ltys = let xs = # 264 "" ( List.rev xs ) -# 115830 "src/ocaml/preprocess/parser_raw.ml" +# 118089 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 115835 "src/ocaml/preprocess/parser_raw.ml" +# 118094 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 115841 "src/ocaml/preprocess/parser_raw.ml" +# 118100 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 115849 "src/ocaml/preprocess/parser_raw.ml" +# 118108 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 115854 "src/ocaml/preprocess/parser_raw.ml" +# 118113 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 115864 "src/ocaml/preprocess/parser_raw.ml" +# 118123 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -115877,7 +118136,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 115881 "src/ocaml/preprocess/parser_raw.ml" +# 118140 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -115885,15 +118144,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 115891 "src/ocaml/preprocess/parser_raw.ml" +# 118150 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 115897 "src/ocaml/preprocess/parser_raw.ml" +# 118156 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -115969,9 +118228,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 115975 "src/ocaml/preprocess/parser_raw.ml" +# 118234 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -115982,32 +118241,32 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 115988 "src/ocaml/preprocess/parser_raw.ml" +# 118247 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 115993 "src/ocaml/preprocess/parser_raw.ml" +# 118252 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 116002 "src/ocaml/preprocess/parser_raw.ml" +# 118261 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 116011 "src/ocaml/preprocess/parser_raw.ml" +# 118270 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -116015,45 +118274,45 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 116019 "src/ocaml/preprocess/parser_raw.ml" +# 118278 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 116024 "src/ocaml/preprocess/parser_raw.ml" +# 118283 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 116030 "src/ocaml/preprocess/parser_raw.ml" +# 118289 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 116038 "src/ocaml/preprocess/parser_raw.ml" +# 118297 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 116043 "src/ocaml/preprocess/parser_raw.ml" +# 118302 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 116053 "src/ocaml/preprocess/parser_raw.ml" +# 118312 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -116066,7 +118325,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 116070 "src/ocaml/preprocess/parser_raw.ml" +# 118329 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -116074,15 +118333,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 116080 "src/ocaml/preprocess/parser_raw.ml" +# 118339 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 116086 "src/ocaml/preprocess/parser_raw.ml" +# 118345 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -116165,9 +118424,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 116171 "src/ocaml/preprocess/parser_raw.ml" +# 118430 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -116178,32 +118437,32 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, _1, ty) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, _1_inlined2, ty_inlined1) in let m1 = -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 116184 "src/ocaml/preprocess/parser_raw.ml" +# 118443 "src/ocaml/preprocess/parser_raw.ml" in let m0 = -# 4662 "src/ocaml/preprocess/parser_raw.mly" +# 4674 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 116189 "src/ocaml/preprocess/parser_raw.ml" +# 118448 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 116198 "src/ocaml/preprocess/parser_raw.ml" +# 118457 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 116207 "src/ocaml/preprocess/parser_raw.ml" +# 118466 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -116211,45 +118470,45 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 116215 "src/ocaml/preprocess/parser_raw.ml" +# 118474 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 116220 "src/ocaml/preprocess/parser_raw.ml" +# 118479 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 116226 "src/ocaml/preprocess/parser_raw.ml" +# 118485 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 116234 "src/ocaml/preprocess/parser_raw.ml" +# 118493 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 116239 "src/ocaml/preprocess/parser_raw.ml" +# 118498 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 116249 "src/ocaml/preprocess/parser_raw.ml" +# 118508 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -116262,7 +118521,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 116266 "src/ocaml/preprocess/parser_raw.ml" +# 118525 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos_label_) in @@ -116270,15 +118529,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 116276 "src/ocaml/preprocess/parser_raw.ml" +# 118535 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 116282 "src/ocaml/preprocess/parser_raw.ml" +# 118541 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -116361,9 +118620,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 116367 "src/ocaml/preprocess/parser_raw.ml" +# 118626 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -116374,39 +118633,39 @@ module Tables = struct let codomain_with_modes = let (_endpos_ty_, _startpos_ty_, ty, _1) = (_endpos_ty_inlined1_, _startpos_ty_inlined1_, ty_inlined1, _1_inlined2) in let m1 = -# 4681 "src/ocaml/preprocess/parser_raw.mly" +# 4693 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 116380 "src/ocaml/preprocess/parser_raw.ml" +# 118639 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 116386 "src/ocaml/preprocess/parser_raw.ml" +# 118645 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 116391 "src/ocaml/preprocess/parser_raw.ml" +# 118650 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 116401 "src/ocaml/preprocess/parser_raw.ml" +# 118660 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 116410 "src/ocaml/preprocess/parser_raw.ml" +# 118669 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -116414,45 +118673,45 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 116418 "src/ocaml/preprocess/parser_raw.ml" +# 118677 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 116423 "src/ocaml/preprocess/parser_raw.ml" +# 118682 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 116429 "src/ocaml/preprocess/parser_raw.ml" +# 118688 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 116437 "src/ocaml/preprocess/parser_raw.ml" +# 118696 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 116442 "src/ocaml/preprocess/parser_raw.ml" +# 118701 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 116452 "src/ocaml/preprocess/parser_raw.ml" +# 118711 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -116465,7 +118724,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 116469 "src/ocaml/preprocess/parser_raw.ml" +# 118728 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_ty_inlined1_, _startpos_label_) in @@ -116473,15 +118732,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 116479 "src/ocaml/preprocess/parser_raw.ml" +# 118738 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 116485 "src/ocaml/preprocess/parser_raw.ml" +# 118744 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -116571,9 +118830,9 @@ module Tables = struct let _1 : (Parsetree.modes) = Obj.magic _1 in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 116577 "src/ocaml/preprocess/parser_raw.ml" +# 118836 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -116586,40 +118845,40 @@ module Tables = struct let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 116592 "src/ocaml/preprocess/parser_raw.ml" +# 118851 "src/ocaml/preprocess/parser_raw.ml" in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 116599 "src/ocaml/preprocess/parser_raw.ml" +# 118858 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 116604 "src/ocaml/preprocess/parser_raw.ml" +# 118863 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 116614 "src/ocaml/preprocess/parser_raw.ml" +# 118873 "src/ocaml/preprocess/parser_raw.ml" in let tuple_with_modes = let m1 = let _1 = _1_inlined1 in -# 4682 "src/ocaml/preprocess/parser_raw.mly" +# 4694 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 116623 "src/ocaml/preprocess/parser_raw.ml" +# 118882 "src/ocaml/preprocess/parser_raw.ml" in let ty = @@ -116627,45 +118886,45 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 116631 "src/ocaml/preprocess/parser_raw.ml" +# 118890 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 116636 "src/ocaml/preprocess/parser_raw.ml" +# 118895 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 116642 "src/ocaml/preprocess/parser_raw.ml" +# 118901 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_ty_ = _endpos_xs_ in let m0 = let _1 = -# 4658 "src/ocaml/preprocess/parser_raw.mly" +# 4670 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 116650 "src/ocaml/preprocess/parser_raw.ml" +# 118909 "src/ocaml/preprocess/parser_raw.ml" in -# 4663 "src/ocaml/preprocess/parser_raw.mly" +# 4675 "src/ocaml/preprocess/parser_raw.mly" (_1) -# 116655 "src/ocaml/preprocess/parser_raw.ml" +# 118914 "src/ocaml/preprocess/parser_raw.ml" in let _loc_ty_ = (_startpos_ty_, _endpos_ty_) in -# 4686 "src/ocaml/preprocess/parser_raw.mly" +# 4698 "src/ocaml/preprocess/parser_raw.mly" ( let m = m0 @ m1 in (ty, _loc_ty_), m ) -# 116665 "src/ocaml/preprocess/parser_raw.ml" +# 118924 "src/ocaml/preprocess/parser_raw.ml" in -# 4614 "src/ocaml/preprocess/parser_raw.mly" +# 4626 "src/ocaml/preprocess/parser_raw.mly" ( let (tuple, tuple_loc), arg_modes = tuple_with_modes in let (codomain, codomain_loc), ret_modes = codomain_with_modes in let ty, ltys = tuple in @@ -116678,7 +118937,7 @@ module Tables = struct arg_modes, ret_modes) ) -# 116682 "src/ocaml/preprocess/parser_raw.ml" +# 118941 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined3_, _startpos_label_) in @@ -116686,15 +118945,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 116692 "src/ocaml/preprocess/parser_raw.ml" +# 118951 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4627 "src/ocaml/preprocess/parser_raw.mly" +# 4639 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 116698 "src/ocaml/preprocess/parser_raw.ml" +# 118957 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -116742,9 +119001,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _2 : unit = Obj.magic _2 in let label : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 116748 "src/ocaml/preprocess/parser_raw.ml" +# 119007 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic label in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos_label_ in @@ -116755,18 +119014,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 116759 "src/ocaml/preprocess/parser_raw.ml" +# 119018 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 116764 "src/ocaml/preprocess/parser_raw.ml" +# 119023 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 116770 "src/ocaml/preprocess/parser_raw.ml" +# 119029 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__3_ = _endpos_xs_ in @@ -116774,11 +119033,11 @@ module Tables = struct let _symbolstartpos = _startpos_label_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4629 "src/ocaml/preprocess/parser_raw.mly" +# 4641 "src/ocaml/preprocess/parser_raw.mly" ( let ty, ltys = _3 in mktyp ~loc:_sloc (Ptyp_tuple ((Some label, ty) :: ltys)) ) -# 116782 "src/ocaml/preprocess/parser_raw.ml" +# 119041 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -116807,39 +119066,39 @@ module Tables = struct let ys = # 271 "" ( List.flatten xss ) -# 116811 "src/ocaml/preprocess/parser_raw.ml" +# 119070 "src/ocaml/preprocess/parser_raw.ml" in let xs = let items = -# 1366 "src/ocaml/preprocess/parser_raw.mly" +# 1378 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 116817 "src/ocaml/preprocess/parser_raw.ml" +# 119076 "src/ocaml/preprocess/parser_raw.ml" in -# 1842 "src/ocaml/preprocess/parser_raw.mly" +# 1854 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 116822 "src/ocaml/preprocess/parser_raw.ml" +# 119081 "src/ocaml/preprocess/parser_raw.ml" in # 278 "" ( xs @ ys ) -# 116828 "src/ocaml/preprocess/parser_raw.ml" +# 119087 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1288 "src/ocaml/preprocess/parser_raw.mly" +# 1300 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 116837 "src/ocaml/preprocess/parser_raw.ml" +# 119096 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1835 "src/ocaml/preprocess/parser_raw.mly" +# 1847 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 116843 "src/ocaml/preprocess/parser_raw.ml" +# 119102 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure)) in { @@ -116882,7 +119141,7 @@ module Tables = struct let ys = # 271 "" ( List.flatten xss ) -# 116886 "src/ocaml/preprocess/parser_raw.ml" +# 119145 "src/ocaml/preprocess/parser_raw.ml" in let xs = let items = @@ -116890,65 +119149,65 @@ module Tables = struct let _1 = let _1 = let attrs = -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 116896 "src/ocaml/preprocess/parser_raw.ml" +# 119155 "src/ocaml/preprocess/parser_raw.ml" in -# 1849 "src/ocaml/preprocess/parser_raw.mly" +# 1861 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 116901 "src/ocaml/preprocess/parser_raw.ml" +# 119160 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 1300 "src/ocaml/preprocess/parser_raw.mly" +# 1312 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 116909 "src/ocaml/preprocess/parser_raw.ml" +# 119168 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1319 "src/ocaml/preprocess/parser_raw.mly" +# 1331 "src/ocaml/preprocess/parser_raw.mly" ( mark_rhs_docs _startpos _endpos; _1 ) -# 116919 "src/ocaml/preprocess/parser_raw.ml" +# 119178 "src/ocaml/preprocess/parser_raw.ml" in -# 1368 "src/ocaml/preprocess/parser_raw.mly" +# 1380 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 116925 "src/ocaml/preprocess/parser_raw.ml" +# 119184 "src/ocaml/preprocess/parser_raw.ml" in -# 1842 "src/ocaml/preprocess/parser_raw.mly" +# 1854 "src/ocaml/preprocess/parser_raw.mly" ( items ) -# 116931 "src/ocaml/preprocess/parser_raw.ml" +# 119190 "src/ocaml/preprocess/parser_raw.ml" in # 278 "" ( xs @ ys ) -# 116937 "src/ocaml/preprocess/parser_raw.ml" +# 119196 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1288 "src/ocaml/preprocess/parser_raw.mly" +# 1300 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 116946 "src/ocaml/preprocess/parser_raw.ml" +# 119205 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1835 "src/ocaml/preprocess/parser_raw.mly" +# 1847 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 116952 "src/ocaml/preprocess/parser_raw.ml" +# 119211 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure)) in { @@ -116976,9 +119235,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1864 "src/ocaml/preprocess/parser_raw.mly" +# 1876 "src/ocaml/preprocess/parser_raw.mly" ( val_of_let_bindings ~loc:_sloc _1 ) -# 116982 "src/ocaml/preprocess/parser_raw.ml" +# 119241 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -117014,9 +119273,9 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117020 "src/ocaml/preprocess/parser_raw.ml" +# 119279 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -117024,10 +119283,10 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1867 "src/ocaml/preprocess/parser_raw.mly" +# 1879 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in Pstr_extension (_1, add_docs_attrs docs _2) ) -# 117031 "src/ocaml/preprocess/parser_raw.ml" +# 119290 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined1_ in @@ -117035,15 +119294,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1335 "src/ocaml/preprocess/parser_raw.mly" +# 1347 "src/ocaml/preprocess/parser_raw.mly" ( mkstr ~loc:_sloc _1 ) -# 117041 "src/ocaml/preprocess/parser_raw.ml" +# 119300 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117047 "src/ocaml/preprocess/parser_raw.ml" +# 119306 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -117069,23 +119328,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 1870 "src/ocaml/preprocess/parser_raw.mly" +# 1882 "src/ocaml/preprocess/parser_raw.mly" ( Pstr_attribute _1 ) -# 117075 "src/ocaml/preprocess/parser_raw.ml" +# 119334 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1335 "src/ocaml/preprocess/parser_raw.mly" +# 1347 "src/ocaml/preprocess/parser_raw.mly" ( mkstr ~loc:_sloc _1 ) -# 117083 "src/ocaml/preprocess/parser_raw.ml" +# 119342 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117089 "src/ocaml/preprocess/parser_raw.ml" +# 119348 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -117111,25 +119370,25 @@ module Tables = struct let _v = let _1 = let _1 = -# 1872 "src/ocaml/preprocess/parser_raw.mly" +# 1884 "src/ocaml/preprocess/parser_raw.mly" ( let name, jkind = _1 in Pstr_kind_abbrev (name, jkind) ) -# 117119 "src/ocaml/preprocess/parser_raw.ml" +# 119378 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1335 "src/ocaml/preprocess/parser_raw.mly" +# 1347 "src/ocaml/preprocess/parser_raw.mly" ( mkstr ~loc:_sloc _1 ) -# 117127 "src/ocaml/preprocess/parser_raw.ml" +# 119386 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117133 "src/ocaml/preprocess/parser_raw.ml" +# 119392 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -117155,23 +119414,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 1877 "src/ocaml/preprocess/parser_raw.mly" +# 1889 "src/ocaml/preprocess/parser_raw.mly" ( pstr_primitive _1 ) -# 117161 "src/ocaml/preprocess/parser_raw.ml" +# 119420 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1352 "src/ocaml/preprocess/parser_raw.mly" +# 1364 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 117169 "src/ocaml/preprocess/parser_raw.ml" +# 119428 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117175 "src/ocaml/preprocess/parser_raw.ml" +# 119434 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -117197,23 +119456,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 1879 "src/ocaml/preprocess/parser_raw.mly" +# 1891 "src/ocaml/preprocess/parser_raw.mly" ( pstr_primitive _1 ) -# 117203 "src/ocaml/preprocess/parser_raw.ml" +# 119462 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1352 "src/ocaml/preprocess/parser_raw.mly" +# 1364 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 117211 "src/ocaml/preprocess/parser_raw.ml" +# 119470 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117217 "src/ocaml/preprocess/parser_raw.ml" +# 119476 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -117250,26 +119509,26 @@ module Tables = struct let _1 = let _1 = let _1 = -# 1547 "src/ocaml/preprocess/parser_raw.mly" +# 1559 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 117256 "src/ocaml/preprocess/parser_raw.ml" +# 119515 "src/ocaml/preprocess/parser_raw.ml" in -# 4048 "src/ocaml/preprocess/parser_raw.mly" +# 4022 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117261 "src/ocaml/preprocess/parser_raw.ml" +# 119520 "src/ocaml/preprocess/parser_raw.ml" in -# 4031 "src/ocaml/preprocess/parser_raw.mly" +# 4005 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117267 "src/ocaml/preprocess/parser_raw.ml" +# 119526 "src/ocaml/preprocess/parser_raw.ml" in -# 1881 "src/ocaml/preprocess/parser_raw.mly" +# 1893 "src/ocaml/preprocess/parser_raw.mly" ( pstr_type _1 ) -# 117273 "src/ocaml/preprocess/parser_raw.ml" +# 119532 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_bs_, _startpos_a_) in @@ -117277,15 +119536,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1352 "src/ocaml/preprocess/parser_raw.mly" +# 1364 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 117283 "src/ocaml/preprocess/parser_raw.ml" +# 119542 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117289 "src/ocaml/preprocess/parser_raw.ml" +# 119548 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -117372,16 +119631,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117378 "src/ocaml/preprocess/parser_raw.ml" +# 119637 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in let cs = -# 1539 "src/ocaml/preprocess/parser_raw.mly" +# 1551 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 117385 "src/ocaml/preprocess/parser_raw.ml" +# 119644 "src/ocaml/preprocess/parser_raw.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in @@ -117389,46 +119648,46 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 117395 "src/ocaml/preprocess/parser_raw.ml" +# 119654 "src/ocaml/preprocess/parser_raw.ml" in let _4 = -# 5237 "src/ocaml/preprocess/parser_raw.mly" +# 5236 "src/ocaml/preprocess/parser_raw.mly" ( Recursive ) -# 117401 "src/ocaml/preprocess/parser_raw.ml" +# 119660 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117408 "src/ocaml/preprocess/parser_raw.ml" +# 119667 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4402 "src/ocaml/preprocess/parser_raw.mly" +# 4376 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 117420 "src/ocaml/preprocess/parser_raw.ml" +# 119679 "src/ocaml/preprocess/parser_raw.ml" in -# 4385 "src/ocaml/preprocess/parser_raw.mly" +# 4359 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117426 "src/ocaml/preprocess/parser_raw.ml" +# 119685 "src/ocaml/preprocess/parser_raw.ml" in -# 1883 "src/ocaml/preprocess/parser_raw.mly" +# 1895 "src/ocaml/preprocess/parser_raw.mly" ( pstr_typext _1 ) -# 117432 "src/ocaml/preprocess/parser_raw.ml" +# 119691 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined3_ in @@ -117436,15 +119695,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1352 "src/ocaml/preprocess/parser_raw.mly" +# 1364 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 117442 "src/ocaml/preprocess/parser_raw.ml" +# 119701 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117448 "src/ocaml/preprocess/parser_raw.ml" +# 119707 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -117538,16 +119797,16 @@ module Tables = struct let attrs2 = let _1 = _1_inlined4 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117544 "src/ocaml/preprocess/parser_raw.ml" +# 119803 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined4_ in let cs = -# 1539 "src/ocaml/preprocess/parser_raw.mly" +# 1551 "src/ocaml/preprocess/parser_raw.mly" ( List.rev xs ) -# 117551 "src/ocaml/preprocess/parser_raw.ml" +# 119810 "src/ocaml/preprocess/parser_raw.ml" in let tid = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined3_, _startpos__1_inlined3_, _1_inlined3) in @@ -117555,9 +119814,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 117561 "src/ocaml/preprocess/parser_raw.ml" +# 119820 "src/ocaml/preprocess/parser_raw.ml" in let _4 = @@ -117566,41 +119825,41 @@ module Tables = struct let _startpos = _startpos__1_ in let _loc = (_startpos, _endpos) in -# 5239 "src/ocaml/preprocess/parser_raw.mly" +# 5238 "src/ocaml/preprocess/parser_raw.mly" ( not_expecting _loc "nonrec flag"; Recursive ) -# 117572 "src/ocaml/preprocess/parser_raw.ml" +# 119831 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117580 "src/ocaml/preprocess/parser_raw.ml" +# 119839 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 4402 "src/ocaml/preprocess/parser_raw.mly" +# 4376 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let attrs = attrs1 @ attrs2 in Te.mk tid cs ~params ~priv ~attrs ~docs, ext ) -# 117592 "src/ocaml/preprocess/parser_raw.ml" +# 119851 "src/ocaml/preprocess/parser_raw.ml" in -# 4385 "src/ocaml/preprocess/parser_raw.mly" +# 4359 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117598 "src/ocaml/preprocess/parser_raw.ml" +# 119857 "src/ocaml/preprocess/parser_raw.ml" in -# 1883 "src/ocaml/preprocess/parser_raw.mly" +# 1895 "src/ocaml/preprocess/parser_raw.mly" ( pstr_typext _1 ) -# 117604 "src/ocaml/preprocess/parser_raw.ml" +# 119863 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined4_ in @@ -117608,15 +119867,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1352 "src/ocaml/preprocess/parser_raw.mly" +# 1364 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 117614 "src/ocaml/preprocess/parser_raw.ml" +# 119873 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117620 "src/ocaml/preprocess/parser_raw.ml" +# 119879 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -117642,23 +119901,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 1885 "src/ocaml/preprocess/parser_raw.mly" +# 1897 "src/ocaml/preprocess/parser_raw.mly" ( pstr_exception _1 ) -# 117648 "src/ocaml/preprocess/parser_raw.ml" +# 119907 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1352 "src/ocaml/preprocess/parser_raw.mly" +# 1364 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 117656 "src/ocaml/preprocess/parser_raw.ml" +# 119915 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117662 "src/ocaml/preprocess/parser_raw.ml" +# 119921 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -117723,25 +119982,25 @@ module Tables = struct let attrs2 = let _1 = _1_inlined2 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117729 "src/ocaml/preprocess/parser_raw.ml" +# 119988 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117738 "src/ocaml/preprocess/parser_raw.ml" +# 119997 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1914 "src/ocaml/preprocess/parser_raw.mly" +# 1926 "src/ocaml/preprocess/parser_raw.mly" ( let docs = symbol_docs _sloc in let loc = make_loc _sloc in let attrs = attrs1 @ attrs2 in @@ -117749,13 +120008,13 @@ module Tables = struct let body = maybe_pmod_constraint modes body in let body = Mb.mk name body ~attrs ~loc ~docs in Pstr_module body, ext ) -# 117753 "src/ocaml/preprocess/parser_raw.ml" +# 120012 "src/ocaml/preprocess/parser_raw.ml" in -# 1887 "src/ocaml/preprocess/parser_raw.mly" +# 1899 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117759 "src/ocaml/preprocess/parser_raw.ml" +# 120018 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos__1_inlined2_ in @@ -117763,15 +120022,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1352 "src/ocaml/preprocess/parser_raw.mly" +# 1364 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 117769 "src/ocaml/preprocess/parser_raw.ml" +# 120028 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117775 "src/ocaml/preprocess/parser_raw.ml" +# 120034 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -117852,25 +120111,25 @@ module Tables = struct let attrs2 = let _1 = _1_inlined2 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117858 "src/ocaml/preprocess/parser_raw.ml" +# 120117 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined2_ in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117867 "src/ocaml/preprocess/parser_raw.ml" +# 120126 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1957 "src/ocaml/preprocess/parser_raw.mly" +# 1977 "src/ocaml/preprocess/parser_raw.mly" ( let loc = make_loc _sloc in let attrs = attrs1 @ attrs2 in @@ -117880,25 +120139,25 @@ module Tables = struct ext, Mb.mk name body ~attrs ~loc ~docs ) -# 117884 "src/ocaml/preprocess/parser_raw.ml" +# 120143 "src/ocaml/preprocess/parser_raw.ml" in -# 1547 "src/ocaml/preprocess/parser_raw.mly" +# 1559 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 117890 "src/ocaml/preprocess/parser_raw.ml" +# 120149 "src/ocaml/preprocess/parser_raw.ml" in -# 1945 "src/ocaml/preprocess/parser_raw.mly" +# 1965 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117896 "src/ocaml/preprocess/parser_raw.ml" +# 120155 "src/ocaml/preprocess/parser_raw.ml" in -# 1889 "src/ocaml/preprocess/parser_raw.mly" +# 1901 "src/ocaml/preprocess/parser_raw.mly" ( pstr_recmodule _1 ) -# 117902 "src/ocaml/preprocess/parser_raw.ml" +# 120161 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_bs_ in @@ -117906,15 +120165,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1352 "src/ocaml/preprocess/parser_raw.mly" +# 1364 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 117912 "src/ocaml/preprocess/parser_raw.ml" +# 120171 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117918 "src/ocaml/preprocess/parser_raw.ml" +# 120177 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -117940,23 +120199,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 1891 "src/ocaml/preprocess/parser_raw.mly" +# 1903 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Pstr_modtype body, ext) ) -# 117946 "src/ocaml/preprocess/parser_raw.ml" +# 120205 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1352 "src/ocaml/preprocess/parser_raw.mly" +# 1364 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 117954 "src/ocaml/preprocess/parser_raw.ml" +# 120213 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 117960 "src/ocaml/preprocess/parser_raw.ml" +# 120219 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -117982,23 +120241,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 1893 "src/ocaml/preprocess/parser_raw.mly" +# 1905 "src/ocaml/preprocess/parser_raw.mly" ( let (body, ext) = _1 in (Pstr_open body, ext) ) -# 117988 "src/ocaml/preprocess/parser_raw.ml" +# 120247 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1352 "src/ocaml/preprocess/parser_raw.mly" +# 1364 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 117996 "src/ocaml/preprocess/parser_raw.ml" +# 120255 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 118002 "src/ocaml/preprocess/parser_raw.ml" +# 120261 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -118069,9 +120328,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 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 118075 "src/ocaml/preprocess/parser_raw.ml" +# 120334 "src/ocaml/preprocess/parser_raw.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 @@ -118090,9 +120349,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 118096 "src/ocaml/preprocess/parser_raw.ml" +# 120355 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -118102,24 +120361,24 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 118108 "src/ocaml/preprocess/parser_raw.ml" +# 120367 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 118116 "src/ocaml/preprocess/parser_raw.ml" +# 120375 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 2350 "src/ocaml/preprocess/parser_raw.mly" +# 2377 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -118127,25 +120386,25 @@ module Tables = struct ext, Ci.mk id body ~virt ~params ~attrs ~loc ~docs ) -# 118131 "src/ocaml/preprocess/parser_raw.ml" +# 120390 "src/ocaml/preprocess/parser_raw.ml" in -# 1547 "src/ocaml/preprocess/parser_raw.mly" +# 1559 "src/ocaml/preprocess/parser_raw.mly" ( let (x, b) = a in x, b :: bs ) -# 118137 "src/ocaml/preprocess/parser_raw.ml" +# 120396 "src/ocaml/preprocess/parser_raw.ml" in -# 2339 "src/ocaml/preprocess/parser_raw.mly" +# 2366 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 118143 "src/ocaml/preprocess/parser_raw.ml" +# 120402 "src/ocaml/preprocess/parser_raw.ml" in -# 1895 "src/ocaml/preprocess/parser_raw.mly" +# 1907 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Pstr_class l, ext) ) -# 118149 "src/ocaml/preprocess/parser_raw.ml" +# 120408 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_bs_ in @@ -118153,15 +120412,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1352 "src/ocaml/preprocess/parser_raw.mly" +# 1364 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 118159 "src/ocaml/preprocess/parser_raw.ml" +# 120418 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 118165 "src/ocaml/preprocess/parser_raw.ml" +# 120424 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -118187,23 +120446,23 @@ module Tables = struct let _v = let _1 = let _1 = -# 1897 "src/ocaml/preprocess/parser_raw.mly" +# 1909 "src/ocaml/preprocess/parser_raw.mly" ( let (ext, l) = _1 in (Pstr_class_type l, ext) ) -# 118193 "src/ocaml/preprocess/parser_raw.ml" +# 120452 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1352 "src/ocaml/preprocess/parser_raw.mly" +# 1364 "src/ocaml/preprocess/parser_raw.mly" ( wrap_mkstr_ext ~loc:_sloc _1 ) -# 118201 "src/ocaml/preprocess/parser_raw.ml" +# 120460 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1899 "src/ocaml/preprocess/parser_raw.mly" +# 1911 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 118207 "src/ocaml/preprocess/parser_raw.ml" +# 120466 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -118259,22 +120518,22 @@ module Tables = struct let attrs2 = let _1 = _1_inlined1 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 118265 "src/ocaml/preprocess/parser_raw.ml" +# 120524 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined1_ in let attrs1 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 118272 "src/ocaml/preprocess/parser_raw.ml" +# 120531 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos_kind_ in let _sloc = (_symbolstartpos, _endpos) in -# 2005 "src/ocaml/preprocess/parser_raw.mly" +# 2025 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in @@ -118282,7 +120541,7 @@ module Tables = struct let incl = Incl.mk ~kind thing ~attrs ~loc ~docs in incl, ext ) -# 118286 "src/ocaml/preprocess/parser_raw.ml" +# 120545 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos_kind_) in @@ -118290,12 +120549,12 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 1901 "src/ocaml/preprocess/parser_raw.mly" +# 1913 "src/ocaml/preprocess/parser_raw.mly" ( let incl, ext = _1 in let item = mkstr ~loc:_sloc (Pstr_include incl) in wrap_str_ext ~loc:_sloc item ext ) -# 118299 "src/ocaml/preprocess/parser_raw.ml" +# 120558 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.structure_item)) in { @@ -118319,9 +120578,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5314 "src/ocaml/preprocess/parser_raw.mly" +# 5313 "src/ocaml/preprocess/parser_raw.mly" ( "-" ) -# 118325 "src/ocaml/preprocess/parser_raw.ml" +# 120584 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -118344,9 +120603,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5315 "src/ocaml/preprocess/parser_raw.mly" +# 5314 "src/ocaml/preprocess/parser_raw.mly" ( "-." ) -# 118350 "src/ocaml/preprocess/parser_raw.ml" +# 120609 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -118400,9 +120659,9 @@ module Tables = struct let _5 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 118406 "src/ocaml/preprocess/parser_raw.ml" +# 120665 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined1_ in @@ -118411,18 +120670,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 118415 "src/ocaml/preprocess/parser_raw.ml" +# 120674 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 118420 "src/ocaml/preprocess/parser_raw.ml" +# 120679 "src/ocaml/preprocess/parser_raw.ml" in -# 4972 "src/ocaml/preprocess/parser_raw.mly" +# 4971 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 118426 "src/ocaml/preprocess/parser_raw.ml" +# 120685 "src/ocaml/preprocess/parser_raw.ml" in let _1 = @@ -118430,20 +120689,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 118436 "src/ocaml/preprocess/parser_raw.ml" +# 120695 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4958 "src/ocaml/preprocess/parser_raw.mly" +# 4957 "src/ocaml/preprocess/parser_raw.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 ) -# 118447 "src/ocaml/preprocess/parser_raw.ml" +# 120706 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.row_field)) in { @@ -118477,9 +120736,9 @@ module Tables = struct let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 118483 "src/ocaml/preprocess/parser_raw.ml" +# 120742 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__2_ = _endpos__1_inlined1_ in @@ -118488,20 +120747,20 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 118494 "src/ocaml/preprocess/parser_raw.ml" +# 120753 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4962 "src/ocaml/preprocess/parser_raw.mly" +# 4961 "src/ocaml/preprocess/parser_raw.mly" ( let info = symbol_info _endpos in let attrs = add_info_attrs info _2 in Rf.tag ~loc:(make_loc _sloc) ~attrs _1 true [] ) -# 118505 "src/ocaml/preprocess/parser_raw.ml" +# 120764 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.row_field)) in { @@ -118535,7 +120794,7 @@ module Tables = struct let arg = # 123 "" ( None ) -# 118539 "src/ocaml/preprocess/parser_raw.ml" +# 120798 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined1_ in let dir = @@ -118544,23 +120803,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 118550 "src/ocaml/preprocess/parser_raw.ml" +# 120809 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3203 "src/ocaml/preprocess/parser_raw.mly" +# 3179 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 118556 "src/ocaml/preprocess/parser_raw.ml" +# 120815 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 118564 "src/ocaml/preprocess/parser_raw.ml" +# 120823 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -118592,9 +120851,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 1141 "src/ocaml/preprocess/parser_raw.mly" +# 1153 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 118598 "src/ocaml/preprocess/parser_raw.ml" +# 120857 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -118606,23 +120865,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5204 "src/ocaml/preprocess/parser_raw.mly" +# 5203 "src/ocaml/preprocess/parser_raw.mly" ( let (s, _, _) = _1 in Pdir_string s ) -# 118612 "src/ocaml/preprocess/parser_raw.ml" +# 120871 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1357 "src/ocaml/preprocess/parser_raw.mly" +# 1369 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 118620 "src/ocaml/preprocess/parser_raw.ml" +# 120879 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 118626 "src/ocaml/preprocess/parser_raw.ml" +# 120885 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -118632,23 +120891,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 118638 "src/ocaml/preprocess/parser_raw.ml" +# 120897 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3203 "src/ocaml/preprocess/parser_raw.mly" +# 3179 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 118644 "src/ocaml/preprocess/parser_raw.ml" +# 120903 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 118652 "src/ocaml/preprocess/parser_raw.ml" +# 120911 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -118680,9 +120939,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 1078 "src/ocaml/preprocess/parser_raw.mly" +# 1090 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 118686 "src/ocaml/preprocess/parser_raw.ml" +# 120945 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -118694,23 +120953,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5205 "src/ocaml/preprocess/parser_raw.mly" +# 5204 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pdir_int (n ,m) ) -# 118700 "src/ocaml/preprocess/parser_raw.ml" +# 120959 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1357 "src/ocaml/preprocess/parser_raw.mly" +# 1369 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 118708 "src/ocaml/preprocess/parser_raw.ml" +# 120967 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 118714 "src/ocaml/preprocess/parser_raw.ml" +# 120973 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -118720,23 +120979,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 118726 "src/ocaml/preprocess/parser_raw.ml" +# 120985 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3203 "src/ocaml/preprocess/parser_raw.mly" +# 3179 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 118732 "src/ocaml/preprocess/parser_raw.ml" +# 120991 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 118740 "src/ocaml/preprocess/parser_raw.ml" +# 120999 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -118778,23 +121037,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5206 "src/ocaml/preprocess/parser_raw.mly" +# 5205 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 118784 "src/ocaml/preprocess/parser_raw.ml" +# 121043 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1357 "src/ocaml/preprocess/parser_raw.mly" +# 1369 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 118792 "src/ocaml/preprocess/parser_raw.ml" +# 121051 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 118798 "src/ocaml/preprocess/parser_raw.ml" +# 121057 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -118804,23 +121063,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 118810 "src/ocaml/preprocess/parser_raw.ml" +# 121069 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3203 "src/ocaml/preprocess/parser_raw.mly" +# 3179 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 118816 "src/ocaml/preprocess/parser_raw.ml" +# 121075 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 118824 "src/ocaml/preprocess/parser_raw.ml" +# 121083 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -118862,23 +121121,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5207 "src/ocaml/preprocess/parser_raw.mly" +# 5206 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 118868 "src/ocaml/preprocess/parser_raw.ml" +# 121127 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1357 "src/ocaml/preprocess/parser_raw.mly" +# 1369 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 118876 "src/ocaml/preprocess/parser_raw.ml" +# 121135 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 118882 "src/ocaml/preprocess/parser_raw.ml" +# 121141 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -118888,23 +121147,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 118894 "src/ocaml/preprocess/parser_raw.ml" +# 121153 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3203 "src/ocaml/preprocess/parser_raw.mly" +# 3179 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 118900 "src/ocaml/preprocess/parser_raw.ml" +# 121159 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 118908 "src/ocaml/preprocess/parser_raw.ml" +# 121167 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -118946,23 +121205,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let x = let _1 = -# 5208 "src/ocaml/preprocess/parser_raw.mly" +# 5207 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool false ) -# 118952 "src/ocaml/preprocess/parser_raw.ml" +# 121211 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1357 "src/ocaml/preprocess/parser_raw.mly" +# 1369 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 118960 "src/ocaml/preprocess/parser_raw.ml" +# 121219 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 118966 "src/ocaml/preprocess/parser_raw.ml" +# 121225 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -118972,23 +121231,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 118978 "src/ocaml/preprocess/parser_raw.ml" +# 121237 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3203 "src/ocaml/preprocess/parser_raw.mly" +# 3179 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 118984 "src/ocaml/preprocess/parser_raw.ml" +# 121243 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 118992 "src/ocaml/preprocess/parser_raw.ml" +# 121251 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -119030,23 +121289,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let x = let _1 = -# 5209 "src/ocaml/preprocess/parser_raw.mly" +# 5208 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool true ) -# 119036 "src/ocaml/preprocess/parser_raw.ml" +# 121295 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1357 "src/ocaml/preprocess/parser_raw.mly" +# 1369 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 119044 "src/ocaml/preprocess/parser_raw.ml" +# 121303 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 119050 "src/ocaml/preprocess/parser_raw.ml" +# 121309 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -119056,23 +121315,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 119062 "src/ocaml/preprocess/parser_raw.ml" +# 121321 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3203 "src/ocaml/preprocess/parser_raw.mly" +# 3179 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 119068 "src/ocaml/preprocess/parser_raw.ml" +# 121327 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 119076 "src/ocaml/preprocess/parser_raw.ml" +# 121335 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -119106,7 +121365,7 @@ module Tables = struct let arg = # 123 "" ( None ) -# 119110 "src/ocaml/preprocess/parser_raw.ml" +# 121369 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined1_ in let dir = @@ -119115,23 +121374,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 119121 "src/ocaml/preprocess/parser_raw.ml" +# 121380 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3204 "src/ocaml/preprocess/parser_raw.mly" +# 3180 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 119127 "src/ocaml/preprocess/parser_raw.ml" +# 121386 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 119135 "src/ocaml/preprocess/parser_raw.ml" +# 121394 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -119163,9 +121422,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 1141 "src/ocaml/preprocess/parser_raw.mly" +# 1153 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 119169 "src/ocaml/preprocess/parser_raw.ml" +# 121428 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -119177,23 +121436,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5204 "src/ocaml/preprocess/parser_raw.mly" +# 5203 "src/ocaml/preprocess/parser_raw.mly" ( let (s, _, _) = _1 in Pdir_string s ) -# 119183 "src/ocaml/preprocess/parser_raw.ml" +# 121442 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1357 "src/ocaml/preprocess/parser_raw.mly" +# 1369 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 119191 "src/ocaml/preprocess/parser_raw.ml" +# 121450 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 119197 "src/ocaml/preprocess/parser_raw.ml" +# 121456 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -119203,23 +121462,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 119209 "src/ocaml/preprocess/parser_raw.ml" +# 121468 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3204 "src/ocaml/preprocess/parser_raw.mly" +# 3180 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 119215 "src/ocaml/preprocess/parser_raw.ml" +# 121474 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 119223 "src/ocaml/preprocess/parser_raw.ml" +# 121482 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -119251,9 +121510,9 @@ module Tables = struct }; } = _menhir_stack in let _1_inlined2 : ( -# 1078 "src/ocaml/preprocess/parser_raw.mly" +# 1090 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 119257 "src/ocaml/preprocess/parser_raw.ml" +# 121516 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined2 in let _1_inlined1 : (string) = Obj.magic _1_inlined1 in let _1 : unit = Obj.magic _1 in @@ -119265,23 +121524,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5205 "src/ocaml/preprocess/parser_raw.mly" +# 5204 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pdir_int (n ,m) ) -# 119271 "src/ocaml/preprocess/parser_raw.ml" +# 121530 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1357 "src/ocaml/preprocess/parser_raw.mly" +# 1369 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 119279 "src/ocaml/preprocess/parser_raw.ml" +# 121538 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 119285 "src/ocaml/preprocess/parser_raw.ml" +# 121544 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -119291,23 +121550,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 119297 "src/ocaml/preprocess/parser_raw.ml" +# 121556 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3204 "src/ocaml/preprocess/parser_raw.mly" +# 3180 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 119303 "src/ocaml/preprocess/parser_raw.ml" +# 121562 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 119311 "src/ocaml/preprocess/parser_raw.ml" +# 121570 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -119349,23 +121608,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5206 "src/ocaml/preprocess/parser_raw.mly" +# 5205 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 119355 "src/ocaml/preprocess/parser_raw.ml" +# 121614 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1357 "src/ocaml/preprocess/parser_raw.mly" +# 1369 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 119363 "src/ocaml/preprocess/parser_raw.ml" +# 121622 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 119369 "src/ocaml/preprocess/parser_raw.ml" +# 121628 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -119375,23 +121634,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 119381 "src/ocaml/preprocess/parser_raw.ml" +# 121640 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3204 "src/ocaml/preprocess/parser_raw.mly" +# 3180 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 119387 "src/ocaml/preprocess/parser_raw.ml" +# 121646 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 119395 "src/ocaml/preprocess/parser_raw.ml" +# 121654 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -119433,23 +121692,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let x = let _1 = -# 5207 "src/ocaml/preprocess/parser_raw.mly" +# 5206 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_ident _1 ) -# 119439 "src/ocaml/preprocess/parser_raw.ml" +# 121698 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1357 "src/ocaml/preprocess/parser_raw.mly" +# 1369 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 119447 "src/ocaml/preprocess/parser_raw.ml" +# 121706 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 119453 "src/ocaml/preprocess/parser_raw.ml" +# 121712 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -119459,23 +121718,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 119465 "src/ocaml/preprocess/parser_raw.ml" +# 121724 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3204 "src/ocaml/preprocess/parser_raw.mly" +# 3180 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 119471 "src/ocaml/preprocess/parser_raw.ml" +# 121730 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 119479 "src/ocaml/preprocess/parser_raw.ml" +# 121738 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -119517,23 +121776,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let x = let _1 = -# 5208 "src/ocaml/preprocess/parser_raw.mly" +# 5207 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool false ) -# 119523 "src/ocaml/preprocess/parser_raw.ml" +# 121782 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1357 "src/ocaml/preprocess/parser_raw.mly" +# 1369 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 119531 "src/ocaml/preprocess/parser_raw.ml" +# 121790 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 119537 "src/ocaml/preprocess/parser_raw.ml" +# 121796 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -119543,23 +121802,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 119549 "src/ocaml/preprocess/parser_raw.ml" +# 121808 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3204 "src/ocaml/preprocess/parser_raw.mly" +# 3180 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 119555 "src/ocaml/preprocess/parser_raw.ml" +# 121814 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 119563 "src/ocaml/preprocess/parser_raw.ml" +# 121822 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -119601,23 +121860,23 @@ module Tables = struct let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined2_, _startpos__1_inlined2_) in let x = let _1 = -# 5209 "src/ocaml/preprocess/parser_raw.mly" +# 5208 "src/ocaml/preprocess/parser_raw.mly" ( Pdir_bool true ) -# 119607 "src/ocaml/preprocess/parser_raw.ml" +# 121866 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1357 "src/ocaml/preprocess/parser_raw.mly" +# 1369 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive_arg ~loc:_sloc _1 ) -# 119615 "src/ocaml/preprocess/parser_raw.ml" +# 121874 "src/ocaml/preprocess/parser_raw.ml" in # 126 "" ( Some x ) -# 119621 "src/ocaml/preprocess/parser_raw.ml" +# 121880 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_arg_ = _endpos__1_inlined2_ in @@ -119627,23 +121886,23 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 119633 "src/ocaml/preprocess/parser_raw.ml" +# 121892 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 3204 "src/ocaml/preprocess/parser_raw.mly" +# 3180 "src/ocaml/preprocess/parser_raw.mly" ( () ) -# 119639 "src/ocaml/preprocess/parser_raw.ml" +# 121898 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_arg_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5200 "src/ocaml/preprocess/parser_raw.mly" +# 5199 "src/ocaml/preprocess/parser_raw.mly" ( mk_directive ~loc:_sloc dir arg ) -# 119647 "src/ocaml/preprocess/parser_raw.ml" +# 121906 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -119685,37 +121944,37 @@ module Tables = struct let _1 = let _1 = let attrs = -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 119691 "src/ocaml/preprocess/parser_raw.ml" +# 121950 "src/ocaml/preprocess/parser_raw.ml" in -# 1849 "src/ocaml/preprocess/parser_raw.mly" +# 1861 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 119696 "src/ocaml/preprocess/parser_raw.ml" +# 121955 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 1300 "src/ocaml/preprocess/parser_raw.mly" +# 1312 "src/ocaml/preprocess/parser_raw.mly" ( text_str _startpos @ [_1] ) -# 119704 "src/ocaml/preprocess/parser_raw.ml" +# 121963 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1288 "src/ocaml/preprocess/parser_raw.mly" +# 1300 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 119713 "src/ocaml/preprocess/parser_raw.ml" +# 121972 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1587 "src/ocaml/preprocess/parser_raw.mly" +# 1599 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def _1 ) -# 119719 "src/ocaml/preprocess/parser_raw.ml" +# 121978 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -119750,21 +122009,21 @@ module Tables = struct let _1 = # 271 "" ( List.flatten xss ) -# 119754 "src/ocaml/preprocess/parser_raw.ml" +# 122013 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1288 "src/ocaml/preprocess/parser_raw.mly" +# 1300 "src/ocaml/preprocess/parser_raw.mly" ( extra_str _startpos _endpos _1 ) -# 119762 "src/ocaml/preprocess/parser_raw.ml" +# 122021 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1591 "src/ocaml/preprocess/parser_raw.mly" +# 1603 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def _1 ) -# 119768 "src/ocaml/preprocess/parser_raw.ml" +# 122027 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase)) in { @@ -119795,9 +122054,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.toplevel_phrase) = -# 1595 "src/ocaml/preprocess/parser_raw.mly" +# 1607 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 119801 "src/ocaml/preprocess/parser_raw.ml" +# 122060 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -119820,9 +122079,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Parsetree.toplevel_phrase) = -# 1598 "src/ocaml/preprocess/parser_raw.mly" +# 1610 "src/ocaml/preprocess/parser_raw.mly" ( raise End_of_file ) -# 119826 "src/ocaml/preprocess/parser_raw.ml" +# 122085 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -119845,9 +122104,9 @@ module Tables = struct let _startpos = _startpos_ty_ in let _endpos = _endpos_ty_ in let _v : (Parsetree.core_type) = -# 4760 "src/ocaml/preprocess/parser_raw.mly" +# 4757 "src/ocaml/preprocess/parser_raw.mly" ( ty ) -# 119851 "src/ocaml/preprocess/parser_raw.ml" +# 122110 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -119889,18 +122148,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 119893 "src/ocaml/preprocess/parser_raw.ml" +# 122152 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 119898 "src/ocaml/preprocess/parser_raw.ml" +# 122157 "src/ocaml/preprocess/parser_raw.ml" in -# 4771 "src/ocaml/preprocess/parser_raw.mly" +# 4768 "src/ocaml/preprocess/parser_raw.mly" ( ty, ltys ) -# 119904 "src/ocaml/preprocess/parser_raw.ml" +# 122163 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xs_, _startpos_ty_) in @@ -119908,11 +122167,11 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4762 "src/ocaml/preprocess/parser_raw.mly" +# 4759 "src/ocaml/preprocess/parser_raw.mly" ( let ty, ltys = _1 in mktyp ~loc:_sloc (Ptyp_tuple ((None, ty) :: ltys)) ) -# 119916 "src/ocaml/preprocess/parser_raw.ml" +# 122175 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type)) in { @@ -119943,9 +122202,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.type_constraint) = -# 3672 "src/ocaml/preprocess/parser_raw.mly" +# 3653 "src/ocaml/preprocess/parser_raw.mly" ( Pconstraint _2 ) -# 119949 "src/ocaml/preprocess/parser_raw.ml" +# 122208 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -119989,9 +122248,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__4_ in let _v : (Parsetree.type_constraint) = -# 3673 "src/ocaml/preprocess/parser_raw.mly" +# 3654 "src/ocaml/preprocess/parser_raw.mly" ( Pcoerce (Some _2, _4) ) -# 119995 "src/ocaml/preprocess/parser_raw.ml" +# 122254 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120021,9 +122280,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Parsetree.type_constraint) = -# 3674 "src/ocaml/preprocess/parser_raw.mly" +# 3655 "src/ocaml/preprocess/parser_raw.mly" ( Pcoerce (None, _2) ) -# 120027 "src/ocaml/preprocess/parser_raw.ml" +# 122286 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120039,9 +122298,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) = -# 4130 "src/ocaml/preprocess/parser_raw.mly" +# 4104 "src/ocaml/preprocess/parser_raw.mly" ( (Ptype_abstract, Public, None) ) -# 120045 "src/ocaml/preprocess/parser_raw.ml" +# 122304 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120071,9 +122330,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) = -# 4132 "src/ocaml/preprocess/parser_raw.mly" +# 4106 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 120077 "src/ocaml/preprocess/parser_raw.ml" +# 122336 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120096,9 +122355,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5155 "src/ocaml/preprocess/parser_raw.mly" +# 5154 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 120102 "src/ocaml/preprocess/parser_raw.ml" +# 122361 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120145,39 +122404,39 @@ module Tables = struct let _3 = let _1 = _1_inlined2 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 120151 "src/ocaml/preprocess/parser_raw.ml" +# 122410 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _startpos__1_ = _startpos__1_inlined1_ in let _1 = let _1 = -# 4224 "src/ocaml/preprocess/parser_raw.mly" +# 4198 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_var (tyvar, None) ) -# 120160 "src/ocaml/preprocess/parser_raw.ml" +# 122419 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__1_ = _endpos_tyvar_ in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 120169 "src/ocaml/preprocess/parser_raw.ml" +# 122428 "src/ocaml/preprocess/parser_raw.ml" in -# 4227 "src/ocaml/preprocess/parser_raw.mly" +# 4201 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 120175 "src/ocaml/preprocess/parser_raw.ml" +# 122434 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4218 "src/ocaml/preprocess/parser_raw.mly" +# 4192 "src/ocaml/preprocess/parser_raw.mly" ( {_2 with ptyp_attributes = _3}, _1 ) -# 120181 "src/ocaml/preprocess/parser_raw.ml" +# 122440 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity))) in { @@ -120218,38 +122477,38 @@ module Tables = struct let _3 = let _1 = _1_inlined2 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 120224 "src/ocaml/preprocess/parser_raw.ml" +# 122483 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let (_endpos__1_, _startpos__1_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let _1 = let _1 = -# 4226 "src/ocaml/preprocess/parser_raw.mly" +# 4200 "src/ocaml/preprocess/parser_raw.mly" ( Ptyp_any None ) -# 120233 "src/ocaml/preprocess/parser_raw.ml" +# 122492 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1333 "src/ocaml/preprocess/parser_raw.mly" +# 1345 "src/ocaml/preprocess/parser_raw.mly" ( mktyp ~loc:_sloc _1 ) -# 120241 "src/ocaml/preprocess/parser_raw.ml" +# 122500 "src/ocaml/preprocess/parser_raw.ml" in -# 4227 "src/ocaml/preprocess/parser_raw.mly" +# 4201 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 120247 "src/ocaml/preprocess/parser_raw.ml" +# 122506 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4218 "src/ocaml/preprocess/parser_raw.mly" +# 4192 "src/ocaml/preprocess/parser_raw.mly" ( {_2 with ptyp_attributes = _3}, _1 ) -# 120253 "src/ocaml/preprocess/parser_raw.ml" +# 122512 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity))) in { @@ -120266,9 +122525,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) = -# 4140 "src/ocaml/preprocess/parser_raw.mly" +# 4114 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 120272 "src/ocaml/preprocess/parser_raw.ml" +# 122531 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120291,9 +122550,9 @@ module Tables = struct let _startpos = _startpos_p_ in let _endpos = _endpos_p_ in let _v : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list) = -# 4142 "src/ocaml/preprocess/parser_raw.mly" +# 4116 "src/ocaml/preprocess/parser_raw.mly" ( [p] ) -# 120297 "src/ocaml/preprocess/parser_raw.ml" +# 122556 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120334,18 +122593,18 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 120338 "src/ocaml/preprocess/parser_raw.ml" +# 122597 "src/ocaml/preprocess/parser_raw.ml" in -# 1450 "src/ocaml/preprocess/parser_raw.mly" +# 1462 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 120343 "src/ocaml/preprocess/parser_raw.ml" +# 122602 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4146 "src/ocaml/preprocess/parser_raw.mly" +# 4120 "src/ocaml/preprocess/parser_raw.mly" ( ps ) -# 120349 "src/ocaml/preprocess/parser_raw.ml" +# 122608 "src/ocaml/preprocess/parser_raw.ml" : ((Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) list)) in { @@ -120372,17 +122631,17 @@ module Tables = struct } = _menhir_stack in let _2 : unit = Obj.magic _2 in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 120378 "src/ocaml/preprocess/parser_raw.ml" +# 122637 "src/ocaml/preprocess/parser_raw.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 : (string) = -# 5152 "src/ocaml/preprocess/parser_raw.mly" +# 5151 "src/ocaml/preprocess/parser_raw.mly" ( _1 ^ "#" ) -# 120386 "src/ocaml/preprocess/parser_raw.ml" +# 122645 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120401,17 +122660,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 120407 "src/ocaml/preprocess/parser_raw.ml" +# 122666 "src/ocaml/preprocess/parser_raw.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) = -# 5149 "src/ocaml/preprocess/parser_raw.mly" +# 5148 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 120415 "src/ocaml/preprocess/parser_raw.ml" +# 122674 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120434,9 +122693,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5158 "src/ocaml/preprocess/parser_raw.mly" +# 5157 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 120440 "src/ocaml/preprocess/parser_raw.ml" +# 122699 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120452,9 +122711,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4238 "src/ocaml/preprocess/parser_raw.mly" +# 4212 "src/ocaml/preprocess/parser_raw.mly" ( NoVariance, NoInjectivity ) -# 120458 "src/ocaml/preprocess/parser_raw.ml" +# 122717 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120477,9 +122736,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4239 "src/ocaml/preprocess/parser_raw.mly" +# 4213 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, NoInjectivity ) -# 120483 "src/ocaml/preprocess/parser_raw.ml" +# 122742 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120502,9 +122761,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4240 "src/ocaml/preprocess/parser_raw.mly" +# 4214 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, NoInjectivity ) -# 120508 "src/ocaml/preprocess/parser_raw.ml" +# 122767 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120527,9 +122786,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4241 "src/ocaml/preprocess/parser_raw.mly" +# 4215 "src/ocaml/preprocess/parser_raw.mly" ( NoVariance, Injective ) -# 120533 "src/ocaml/preprocess/parser_raw.ml" +# 122792 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120559,9 +122818,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4242 "src/ocaml/preprocess/parser_raw.mly" +# 4216 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, Injective ) -# 120565 "src/ocaml/preprocess/parser_raw.ml" +# 122824 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120591,9 +122850,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4242 "src/ocaml/preprocess/parser_raw.mly" +# 4216 "src/ocaml/preprocess/parser_raw.mly" ( Covariant, Injective ) -# 120597 "src/ocaml/preprocess/parser_raw.ml" +# 122856 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120623,9 +122882,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4243 "src/ocaml/preprocess/parser_raw.mly" +# 4217 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, Injective ) -# 120629 "src/ocaml/preprocess/parser_raw.ml" +# 122888 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120655,9 +122914,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.variance * Asttypes.injectivity) = -# 4243 "src/ocaml/preprocess/parser_raw.mly" +# 4217 "src/ocaml/preprocess/parser_raw.mly" ( Contravariant, Injective ) -# 120661 "src/ocaml/preprocess/parser_raw.ml" +# 122920 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120676,9 +122935,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1070 "src/ocaml/preprocess/parser_raw.mly" +# 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 120682 "src/ocaml/preprocess/parser_raw.ml" +# 122941 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -120686,12 +122945,12 @@ module Tables = struct let _v = let _loc__1_ = (_startpos__1_, _endpos__1_) in ( -# 4245 "src/ocaml/preprocess/parser_raw.mly" +# 4219 "src/ocaml/preprocess/parser_raw.mly" ( if _1 = "+!" then Covariant, Injective else if _1 = "-!" then Contravariant, Injective else (expecting _loc__1_ "type_variance"; NoVariance, NoInjectivity) ) -# 120695 "src/ocaml/preprocess/parser_raw.ml" +# 122954 "src/ocaml/preprocess/parser_raw.ml" : (Asttypes.variance * Asttypes.injectivity)) in { @@ -120711,9 +122970,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1124 "src/ocaml/preprocess/parser_raw.mly" +# 1136 "src/ocaml/preprocess/parser_raw.mly" (string) -# 120717 "src/ocaml/preprocess/parser_raw.ml" +# 122976 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -120721,12 +122980,12 @@ module Tables = struct let _v = let _loc__1_ = (_startpos__1_, _endpos__1_) in ( -# 4250 "src/ocaml/preprocess/parser_raw.mly" +# 4224 "src/ocaml/preprocess/parser_raw.mly" ( if _1 = "!+" then Covariant, Injective else if _1 = "!-" then Contravariant, Injective else (expecting _loc__1_ "type_variance"; NoVariance, NoInjectivity) ) -# 120730 "src/ocaml/preprocess/parser_raw.ml" +# 122989 "src/ocaml/preprocess/parser_raw.ml" : (Asttypes.variance * Asttypes.injectivity)) in { @@ -120746,9 +123005,9 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1079 "src/ocaml/preprocess/parser_raw.mly" +# 1091 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 120752 "src/ocaml/preprocess/parser_raw.ml" +# 123011 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1 in let _endpos__0_ = _menhir_stack.MenhirLib.EngineTypes.endp in let _startpos = _startpos__1_ in @@ -120758,9 +123017,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 5029 "src/ocaml/preprocess/parser_raw.mly" +# 5028 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_int _sloc _sloc Positive _1 ) -# 120764 "src/ocaml/preprocess/parser_raw.ml" +# 123023 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.constant)) in { @@ -120780,17 +123039,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1052 "src/ocaml/preprocess/parser_raw.mly" +# 1064 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 120786 "src/ocaml/preprocess/parser_raw.ml" +# 123045 "src/ocaml/preprocess/parser_raw.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) = -# 5030 "src/ocaml/preprocess/parser_raw.mly" +# 5029 "src/ocaml/preprocess/parser_raw.mly" ( unboxed_float Positive _1 ) -# 120794 "src/ocaml/preprocess/parser_raw.ml" +# 123053 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -120825,39 +123084,39 @@ module Tables = struct let ys = # 271 "" ( List.flatten xss ) -# 120829 "src/ocaml/preprocess/parser_raw.ml" +# 123088 "src/ocaml/preprocess/parser_raw.ml" in let xs = let _1 = -# 1366 "src/ocaml/preprocess/parser_raw.mly" +# 1378 "src/ocaml/preprocess/parser_raw.mly" ( [] ) -# 120835 "src/ocaml/preprocess/parser_raw.ml" +# 123094 "src/ocaml/preprocess/parser_raw.ml" in -# 1618 "src/ocaml/preprocess/parser_raw.mly" +# 1630 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 120840 "src/ocaml/preprocess/parser_raw.ml" +# 123099 "src/ocaml/preprocess/parser_raw.ml" in # 278 "" ( xs @ ys ) -# 120846 "src/ocaml/preprocess/parser_raw.ml" +# 123105 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_xss_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1292 "src/ocaml/preprocess/parser_raw.mly" +# 1304 "src/ocaml/preprocess/parser_raw.mly" ( extra_def _startpos _endpos _1 ) -# 120855 "src/ocaml/preprocess/parser_raw.ml" +# 123114 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1611 "src/ocaml/preprocess/parser_raw.mly" +# 1623 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 120861 "src/ocaml/preprocess/parser_raw.ml" +# 123120 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase list)) in { @@ -120907,7 +123166,7 @@ module Tables = struct let ys = # 271 "" ( List.flatten xss ) -# 120911 "src/ocaml/preprocess/parser_raw.ml" +# 123170 "src/ocaml/preprocess/parser_raw.ml" in let xs = let _1 = @@ -120915,61 +123174,61 @@ module Tables = struct let _1 = let _1 = let attrs = -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 120921 "src/ocaml/preprocess/parser_raw.ml" +# 123180 "src/ocaml/preprocess/parser_raw.ml" in -# 1849 "src/ocaml/preprocess/parser_raw.mly" +# 1861 "src/ocaml/preprocess/parser_raw.mly" ( mkstrexp e attrs ) -# 120926 "src/ocaml/preprocess/parser_raw.ml" +# 123185 "src/ocaml/preprocess/parser_raw.ml" in -# 1310 "src/ocaml/preprocess/parser_raw.mly" +# 1322 "src/ocaml/preprocess/parser_raw.mly" ( Ptop_def [_1] ) -# 120932 "src/ocaml/preprocess/parser_raw.ml" +# 123191 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__1_ = _startpos_e_ in let _startpos = _startpos__1_ in -# 1308 "src/ocaml/preprocess/parser_raw.mly" +# 1320 "src/ocaml/preprocess/parser_raw.mly" ( text_def _startpos @ [_1] ) -# 120940 "src/ocaml/preprocess/parser_raw.ml" +# 123199 "src/ocaml/preprocess/parser_raw.ml" in -# 1368 "src/ocaml/preprocess/parser_raw.mly" +# 1380 "src/ocaml/preprocess/parser_raw.mly" ( x ) -# 120946 "src/ocaml/preprocess/parser_raw.ml" +# 123205 "src/ocaml/preprocess/parser_raw.ml" in -# 1618 "src/ocaml/preprocess/parser_raw.mly" +# 1630 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 120952 "src/ocaml/preprocess/parser_raw.ml" +# 123211 "src/ocaml/preprocess/parser_raw.ml" in # 278 "" ( xs @ ys ) -# 120958 "src/ocaml/preprocess/parser_raw.ml" +# 123217 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos_xss_, _startpos_e_) in let _endpos = _endpos__1_ in let _startpos = _startpos__1_ in -# 1292 "src/ocaml/preprocess/parser_raw.mly" +# 1304 "src/ocaml/preprocess/parser_raw.mly" ( extra_def _startpos _endpos _1 ) -# 120967 "src/ocaml/preprocess/parser_raw.ml" +# 123226 "src/ocaml/preprocess/parser_raw.ml" in ( -# 1611 "src/ocaml/preprocess/parser_raw.mly" +# 1623 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 120973 "src/ocaml/preprocess/parser_raw.ml" +# 123232 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.toplevel_phrase list)) in { @@ -121007,9 +123266,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__3_ in let _v : (string) = -# 5059 "src/ocaml/preprocess/parser_raw.mly" +# 5058 "src/ocaml/preprocess/parser_raw.mly" ( _2 ) -# 121013 "src/ocaml/preprocess/parser_raw.ml" +# 123272 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -121028,17 +123287,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 121034 "src/ocaml/preprocess/parser_raw.ml" +# 123293 "src/ocaml/preprocess/parser_raw.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) = -# 5067 "src/ocaml/preprocess/parser_raw.mly" +# 5066 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121042 "src/ocaml/preprocess/parser_raw.ml" +# 123301 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -121061,9 +123320,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (string) = -# 5068 "src/ocaml/preprocess/parser_raw.mly" +# 5067 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121067 "src/ocaml/preprocess/parser_raw.ml" +# 123326 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -121086,9 +123345,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Longident.t) = -# 5143 "src/ocaml/preprocess/parser_raw.mly" +# 5142 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121092 "src/ocaml/preprocess/parser_raw.ml" +# 123351 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -121133,9 +123392,9 @@ module Tables = struct let ty : (Parsetree.core_type) = Obj.magic ty in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 121139 "src/ocaml/preprocess/parser_raw.ml" +# 123398 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let mutable_ : (Asttypes.mutable_flag) = Obj.magic mutable_ in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -121146,33 +123405,33 @@ module Tables = struct let label = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121152 "src/ocaml/preprocess/parser_raw.ml" +# 123411 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 121160 "src/ocaml/preprocess/parser_raw.ml" +# 123419 "src/ocaml/preprocess/parser_raw.ml" in let attrs = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121166 "src/ocaml/preprocess/parser_raw.ml" +# 123425 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5307 "src/ocaml/preprocess/parser_raw.mly" +# 5306 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 121171 "src/ocaml/preprocess/parser_raw.ml" +# 123430 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2495 "src/ocaml/preprocess/parser_raw.mly" +# 2522 "src/ocaml/preprocess/parser_raw.mly" ( (label, mutable_, Cfk_virtual ty), attrs ) -# 121176 "src/ocaml/preprocess/parser_raw.ml" +# 123435 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes)) in @@ -121219,9 +123478,9 @@ module Tables = struct let _6 : (Parsetree.expression) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 121225 "src/ocaml/preprocess/parser_raw.ml" +# 123484 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -121232,33 +123491,33 @@ module Tables = struct let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121238 "src/ocaml/preprocess/parser_raw.ml" +# 123497 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 121246 "src/ocaml/preprocess/parser_raw.ml" +# 123505 "src/ocaml/preprocess/parser_raw.ml" in let _2 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121252 "src/ocaml/preprocess/parser_raw.ml" +# 123511 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5310 "src/ocaml/preprocess/parser_raw.mly" +# 5309 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 121257 "src/ocaml/preprocess/parser_raw.ml" +# 123516 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2497 "src/ocaml/preprocess/parser_raw.mly" +# 2524 "src/ocaml/preprocess/parser_raw.mly" ( (_4, _3, Cfk_concrete (_1, _6)), _2 ) -# 121262 "src/ocaml/preprocess/parser_raw.ml" +# 123521 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes)) in @@ -121311,9 +123570,9 @@ module Tables = struct let _6 : (Parsetree.expression) = Obj.magic _6 in let _5 : unit = Obj.magic _5 in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 121317 "src/ocaml/preprocess/parser_raw.ml" +# 123576 "src/ocaml/preprocess/parser_raw.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 @@ -121325,36 +123584,36 @@ module Tables = struct let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121331 "src/ocaml/preprocess/parser_raw.ml" +# 123590 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 121339 "src/ocaml/preprocess/parser_raw.ml" +# 123598 "src/ocaml/preprocess/parser_raw.ml" in let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121347 "src/ocaml/preprocess/parser_raw.ml" +# 123606 "src/ocaml/preprocess/parser_raw.ml" in let _1 = -# 5311 "src/ocaml/preprocess/parser_raw.mly" +# 5310 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 121353 "src/ocaml/preprocess/parser_raw.ml" +# 123612 "src/ocaml/preprocess/parser_raw.ml" in ( -# 2497 "src/ocaml/preprocess/parser_raw.mly" +# 2524 "src/ocaml/preprocess/parser_raw.mly" ( (_4, _3, Cfk_concrete (_1, _6)), _2 ) -# 121358 "src/ocaml/preprocess/parser_raw.ml" +# 123617 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes)) in @@ -121408,9 +123667,9 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : (Parsetree.type_constraint) = Obj.magic _5 in let _1_inlined1 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 121414 "src/ocaml/preprocess/parser_raw.ml" +# 123673 "src/ocaml/preprocess/parser_raw.ml" ) = Obj.magic _1_inlined1 in let _3 : (Asttypes.mutable_flag) = Obj.magic _3 in let _1 : (Parsetree.attributes) = Obj.magic _1 in @@ -121421,30 +123680,30 @@ module Tables = struct let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined1_, _startpos__1_inlined1_, _1_inlined1) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121427 "src/ocaml/preprocess/parser_raw.ml" +# 123686 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 121435 "src/ocaml/preprocess/parser_raw.ml" +# 123694 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__4_ = _startpos__1_inlined1_ in let _2 = -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121442 "src/ocaml/preprocess/parser_raw.ml" +# 123701 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_, _startpos__1_) in let _1 = -# 5310 "src/ocaml/preprocess/parser_raw.mly" +# 5309 "src/ocaml/preprocess/parser_raw.mly" ( Fresh ) -# 121448 "src/ocaml/preprocess/parser_raw.ml" +# 123707 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__1_, _startpos__1_) = (_endpos__0_, _endpos__0_) in let _endpos = _endpos__7_ in @@ -121460,11 +123719,11 @@ module Tables = struct _startpos__4_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2500 "src/ocaml/preprocess/parser_raw.mly" +# 2527 "src/ocaml/preprocess/parser_raw.mly" ( let e = mkexp_type_constraint_with_modes ~loc:_sloc ~modes:[] _7 _5 in (_4, _3, Cfk_concrete (_1, e)), _2 ) -# 121468 "src/ocaml/preprocess/parser_raw.ml" +# 123727 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes)) in @@ -121524,9 +123783,9 @@ module Tables = struct let _6 : unit = Obj.magic _6 in let _5 : (Parsetree.type_constraint) = Obj.magic _5 in let _1_inlined2 : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 121530 "src/ocaml/preprocess/parser_raw.ml" +# 123789 "src/ocaml/preprocess/parser_raw.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 @@ -121538,33 +123797,33 @@ module Tables = struct let _4 = let (_endpos__1_, _startpos__1_, _1) = (_endpos__1_inlined2_, _startpos__1_inlined2_, _1_inlined2) in let _1 = -# 5016 "src/ocaml/preprocess/parser_raw.mly" +# 5015 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121544 "src/ocaml/preprocess/parser_raw.ml" +# 123803 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__1_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 121552 "src/ocaml/preprocess/parser_raw.ml" +# 123811 "src/ocaml/preprocess/parser_raw.ml" in let _startpos__4_ = _startpos__1_inlined2_ in let _2 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121561 "src/ocaml/preprocess/parser_raw.ml" +# 123820 "src/ocaml/preprocess/parser_raw.ml" in let (_endpos__2_, _startpos__2_) = (_endpos__1_inlined1_, _startpos__1_inlined1_) in let _1 = -# 5311 "src/ocaml/preprocess/parser_raw.mly" +# 5310 "src/ocaml/preprocess/parser_raw.mly" ( Override ) -# 121568 "src/ocaml/preprocess/parser_raw.ml" +# 123827 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__7_ in let _symbolstartpos = if _startpos__1_ != _endpos__1_ then @@ -121579,11 +123838,11 @@ module Tables = struct _startpos__4_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 2500 "src/ocaml/preprocess/parser_raw.mly" +# 2527 "src/ocaml/preprocess/parser_raw.mly" ( let e = mkexp_type_constraint_with_modes ~loc:_sloc ~modes:[] _7 _5 in (_4, _3, Cfk_concrete (_1, e)), _2 ) -# 121587 "src/ocaml/preprocess/parser_raw.ml" +# 123846 "src/ocaml/preprocess/parser_raw.ml" : ((string Location.loc * Asttypes.mutable_flag * Parsetree.class_field_kind) * Parsetree.attributes)) in @@ -121604,17 +123863,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1078 "src/ocaml/preprocess/parser_raw.mly" +# 1090 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 121610 "src/ocaml/preprocess/parser_raw.ml" +# 123869 "src/ocaml/preprocess/parser_raw.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) = -# 5022 "src/ocaml/preprocess/parser_raw.mly" +# 5021 "src/ocaml/preprocess/parser_raw.mly" ( let (n, m) = _1 in Pconst_integer (n, m) ) -# 121618 "src/ocaml/preprocess/parser_raw.ml" +# 123877 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -121633,17 +123892,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1028 "src/ocaml/preprocess/parser_raw.mly" +# 1040 "src/ocaml/preprocess/parser_raw.mly" (char) -# 121639 "src/ocaml/preprocess/parser_raw.ml" +# 123898 "src/ocaml/preprocess/parser_raw.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) = -# 5023 "src/ocaml/preprocess/parser_raw.mly" +# 5022 "src/ocaml/preprocess/parser_raw.mly" ( Pconst_char _1 ) -# 121647 "src/ocaml/preprocess/parser_raw.ml" +# 123906 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -121662,18 +123921,18 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1141 "src/ocaml/preprocess/parser_raw.mly" +# 1153 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 121668 "src/ocaml/preprocess/parser_raw.ml" +# 123927 "src/ocaml/preprocess/parser_raw.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) = -# 5024 "src/ocaml/preprocess/parser_raw.mly" +# 5023 "src/ocaml/preprocess/parser_raw.mly" ( let (s, strloc, d) = _1 in Pconst_string (s, strloc, d) ) -# 121677 "src/ocaml/preprocess/parser_raw.ml" +# 123936 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -121692,17 +123951,17 @@ module Tables = struct MenhirLib.EngineTypes.next = _menhir_stack; } = _menhir_stack in let _1 : ( -# 1051 "src/ocaml/preprocess/parser_raw.mly" +# 1063 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 121698 "src/ocaml/preprocess/parser_raw.ml" +# 123957 "src/ocaml/preprocess/parser_raw.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) = -# 5026 "src/ocaml/preprocess/parser_raw.mly" +# 5025 "src/ocaml/preprocess/parser_raw.mly" ( let (f, m) = _1 in Pconst_float (f, m) ) -# 121706 "src/ocaml/preprocess/parser_raw.ml" +# 123965 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -121777,9 +124036,9 @@ module Tables = struct let attrs2 = let _1 = _1_inlined3 in -# 5405 "src/ocaml/preprocess/parser_raw.mly" +# 5404 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121783 "src/ocaml/preprocess/parser_raw.ml" +# 124042 "src/ocaml/preprocess/parser_raw.ml" in let _endpos_attrs2_ = _endpos__1_inlined3_ in @@ -121789,30 +124048,30 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 121795 "src/ocaml/preprocess/parser_raw.ml" +# 124054 "src/ocaml/preprocess/parser_raw.ml" in let attrs1 = let _1 = _1_inlined1 in -# 5409 "src/ocaml/preprocess/parser_raw.mly" +# 5408 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 121803 "src/ocaml/preprocess/parser_raw.ml" +# 124062 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos_attrs2_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 3992 "src/ocaml/preprocess/parser_raw.mly" +# 3966 "src/ocaml/preprocess/parser_raw.mly" ( let attrs = attrs1 @ attrs2 in let loc = make_loc _sloc in let docs = symbol_docs _sloc in Val.mk id ty ~attrs ~modalities ~loc ~docs, ext ) -# 121816 "src/ocaml/preprocess/parser_raw.ml" +# 124075 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.value_description * string Location.loc option)) in { @@ -121829,9 +124088,9 @@ module Tables = struct let _startpos = _menhir_stack.MenhirLib.EngineTypes.endp in let _endpos = _startpos in let _v : (Asttypes.virtual_flag) = -# 5271 "src/ocaml/preprocess/parser_raw.mly" +# 5270 "src/ocaml/preprocess/parser_raw.mly" ( Concrete ) -# 121835 "src/ocaml/preprocess/parser_raw.ml" +# 124094 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -121854,9 +124113,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.virtual_flag) = -# 5272 "src/ocaml/preprocess/parser_raw.mly" +# 5271 "src/ocaml/preprocess/parser_raw.mly" ( Virtual ) -# 121860 "src/ocaml/preprocess/parser_raw.ml" +# 124119 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -121879,9 +124138,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.mutable_flag) = -# 5295 "src/ocaml/preprocess/parser_raw.mly" +# 5294 "src/ocaml/preprocess/parser_raw.mly" ( Immutable ) -# 121885 "src/ocaml/preprocess/parser_raw.ml" +# 124144 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -121911,9 +124170,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag) = -# 5296 "src/ocaml/preprocess/parser_raw.mly" +# 5295 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 121917 "src/ocaml/preprocess/parser_raw.ml" +# 124176 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -121943,9 +124202,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.mutable_flag) = -# 5297 "src/ocaml/preprocess/parser_raw.mly" +# 5296 "src/ocaml/preprocess/parser_raw.mly" ( Mutable ) -# 121949 "src/ocaml/preprocess/parser_raw.ml" +# 124208 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -121968,9 +124227,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag) = -# 5302 "src/ocaml/preprocess/parser_raw.mly" +# 5301 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 121974 "src/ocaml/preprocess/parser_raw.ml" +# 124233 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -122000,9 +124259,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 5303 "src/ocaml/preprocess/parser_raw.mly" +# 5302 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 122006 "src/ocaml/preprocess/parser_raw.ml" +# 124265 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -122032,9 +124291,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 5304 "src/ocaml/preprocess/parser_raw.mly" +# 5303 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 122038 "src/ocaml/preprocess/parser_raw.ml" +# 124297 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -122097,27 +124356,27 @@ module Tables = struct let xs = # 264 "" ( List.rev xs ) -# 122101 "src/ocaml/preprocess/parser_raw.ml" +# 124360 "src/ocaml/preprocess/parser_raw.ml" in -# 1380 "src/ocaml/preprocess/parser_raw.mly" +# 1392 "src/ocaml/preprocess/parser_raw.mly" ( xs ) -# 122106 "src/ocaml/preprocess/parser_raw.ml" +# 124365 "src/ocaml/preprocess/parser_raw.ml" in -# 4097 "src/ocaml/preprocess/parser_raw.mly" +# 4071 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 122112 "src/ocaml/preprocess/parser_raw.ml" +# 124371 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__6_ = _endpos_xs_ in let _5 = let _1 = _1_inlined2 in -# 4520 "src/ocaml/preprocess/parser_raw.mly" +# 4532 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 122121 "src/ocaml/preprocess/parser_raw.ml" +# 124380 "src/ocaml/preprocess/parser_raw.ml" in let _3 = @@ -122126,16 +124385,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 122132 "src/ocaml/preprocess/parser_raw.ml" +# 124391 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__6_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4435 "src/ocaml/preprocess/parser_raw.mly" +# 4409 "src/ocaml/preprocess/parser_raw.mly" ( let lident = loc_last _3 in Pwith_type (_3, @@ -122145,7 +124404,7 @@ module Tables = struct ~manifest:_5 ~priv:_4 ~loc:(make_loc _sloc))) ) -# 122149 "src/ocaml/preprocess/parser_raw.ml" +# 124408 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.with_constraint)) in { @@ -122200,9 +124459,9 @@ module Tables = struct let _5 = let _1 = _1_inlined2 in -# 4520 "src/ocaml/preprocess/parser_raw.mly" +# 4532 "src/ocaml/preprocess/parser_raw.mly" ( _1 ) -# 122206 "src/ocaml/preprocess/parser_raw.ml" +# 124465 "src/ocaml/preprocess/parser_raw.ml" in let _endpos__5_ = _endpos__1_inlined2_ in @@ -122212,16 +124471,16 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 122218 "src/ocaml/preprocess/parser_raw.ml" +# 124477 "src/ocaml/preprocess/parser_raw.ml" in let _endpos = _endpos__5_ in let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in ( -# 4448 "src/ocaml/preprocess/parser_raw.mly" +# 4422 "src/ocaml/preprocess/parser_raw.mly" ( let lident = loc_last _3 in Pwith_typesubst (_3, @@ -122229,7 +124488,7 @@ module Tables = struct ~params:_2 ~manifest:_5 ~loc:(make_loc _sloc))) ) -# 122233 "src/ocaml/preprocess/parser_raw.ml" +# 124492 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.with_constraint)) in { @@ -122280,9 +124539,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 122286 "src/ocaml/preprocess/parser_raw.ml" +# 124545 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -122291,15 +124550,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 122297 "src/ocaml/preprocess/parser_raw.ml" +# 124556 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4456 "src/ocaml/preprocess/parser_raw.mly" +# 4430 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_module (_2, _4) ) -# 122303 "src/ocaml/preprocess/parser_raw.ml" +# 124562 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.with_constraint)) in { @@ -122350,9 +124609,9 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 122356 "src/ocaml/preprocess/parser_raw.ml" +# 124615 "src/ocaml/preprocess/parser_raw.ml" in let _2 = @@ -122361,15 +124620,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 122367 "src/ocaml/preprocess/parser_raw.ml" +# 124626 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4458 "src/ocaml/preprocess/parser_raw.mly" +# 4432 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modsubst (_2, _4) ) -# 122373 "src/ocaml/preprocess/parser_raw.ml" +# 124632 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.with_constraint)) in { @@ -122427,15 +124686,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 122433 "src/ocaml/preprocess/parser_raw.ml" +# 124692 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4460 "src/ocaml/preprocess/parser_raw.mly" +# 4434 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modtype (l, rhs) ) -# 122439 "src/ocaml/preprocess/parser_raw.ml" +# 124698 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.with_constraint)) in { @@ -122493,15 +124752,15 @@ module Tables = struct let _symbolstartpos = _startpos__1_ in let _sloc = (_symbolstartpos, _endpos) in -# 1296 "src/ocaml/preprocess/parser_raw.mly" +# 1308 "src/ocaml/preprocess/parser_raw.mly" ( mkrhs _1 _sloc ) -# 122499 "src/ocaml/preprocess/parser_raw.ml" +# 124758 "src/ocaml/preprocess/parser_raw.ml" in ( -# 4462 "src/ocaml/preprocess/parser_raw.mly" +# 4436 "src/ocaml/preprocess/parser_raw.mly" ( Pwith_modtypesubst (l, rhs) ) -# 122505 "src/ocaml/preprocess/parser_raw.ml" +# 124764 "src/ocaml/preprocess/parser_raw.ml" : (Parsetree.with_constraint)) in { @@ -122525,9 +124784,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__1_ in let _v : (Asttypes.private_flag) = -# 4465 "src/ocaml/preprocess/parser_raw.mly" +# 4439 "src/ocaml/preprocess/parser_raw.mly" ( Public ) -# 122531 "src/ocaml/preprocess/parser_raw.ml" +# 124790 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -122557,9 +124816,9 @@ module Tables = struct let _startpos = _startpos__1_ in let _endpos = _endpos__2_ in let _v : (Asttypes.private_flag) = -# 4466 "src/ocaml/preprocess/parser_raw.mly" +# 4440 "src/ocaml/preprocess/parser_raw.mly" ( Private ) -# 122563 "src/ocaml/preprocess/parser_raw.ml" +# 124822 "src/ocaml/preprocess/parser_raw.ml" in { MenhirLib.EngineTypes.state = _menhir_s; @@ -122595,9 +124854,9 @@ module MenhirInterpreter = struct | T_UNIQUE : unit terminal | T_UNDERSCORE : unit terminal | T_UIDENT : ( -# 1155 "src/ocaml/preprocess/parser_raw.mly" +# 1167 "src/ocaml/preprocess/parser_raw.mly" (string) -# 122601 "src/ocaml/preprocess/parser_raw.ml" +# 124860 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_TYPE : unit terminal | T_TRY : unit terminal @@ -122607,9 +124866,9 @@ module MenhirInterpreter = struct | T_THEN : unit terminal | T_STRUCT : unit terminal | T_STRING : ( -# 1141 "src/ocaml/preprocess/parser_raw.mly" +# 1153 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string option) -# 122613 "src/ocaml/preprocess/parser_raw.ml" +# 124872 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_STAR : unit terminal | T_STACK : unit terminal @@ -122621,22 +124880,22 @@ module MenhirInterpreter = struct | T_RBRACKET : unit terminal | T_RBRACE : unit terminal | T_QUOTED_STRING_ITEM : ( -# 1146 "src/ocaml/preprocess/parser_raw.mly" +# 1158 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 122627 "src/ocaml/preprocess/parser_raw.ml" +# 124886 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_QUOTED_STRING_EXPR : ( -# 1143 "src/ocaml/preprocess/parser_raw.mly" +# 1155 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t * string * Location.t * string option) -# 122632 "src/ocaml/preprocess/parser_raw.ml" +# 124891 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_QUOTE : unit terminal | T_QUESTION : unit terminal | T_PRIVATE : unit terminal | T_PREFIXOP : ( -# 1124 "src/ocaml/preprocess/parser_raw.mly" +# 1136 "src/ocaml/preprocess/parser_raw.mly" (string) -# 122640 "src/ocaml/preprocess/parser_raw.ml" +# 124899 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_PLUSEQ : unit terminal | T_PLUSDOT : unit terminal @@ -122645,9 +124904,9 @@ module MenhirInterpreter = struct | T_OVERWRITE : unit terminal | T_OR : unit terminal | T_OPTLABEL : ( -# 1116 "src/ocaml/preprocess/parser_raw.mly" +# 1128 "src/ocaml/preprocess/parser_raw.mly" (string) -# 122651 "src/ocaml/preprocess/parser_raw.ml" +# 124910 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_OPEN : unit terminal | T_ONCE : unit terminal @@ -122666,14 +124925,14 @@ module MenhirInterpreter = struct | T_LPAREN : unit terminal | T_LOCAL : unit terminal | T_LIDENT : ( -# 1096 "src/ocaml/preprocess/parser_raw.mly" +# 1108 "src/ocaml/preprocess/parser_raw.mly" (string) -# 122672 "src/ocaml/preprocess/parser_raw.ml" +# 124931 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_LETOP : ( -# 1074 "src/ocaml/preprocess/parser_raw.mly" +# 1086 "src/ocaml/preprocess/parser_raw.mly" (string) -# 122677 "src/ocaml/preprocess/parser_raw.ml" +# 124936 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_LET : unit terminal | T_LESSMINUS : unit terminal @@ -122692,62 +124951,62 @@ module MenhirInterpreter = struct | T_LBRACE : unit terminal | T_LAZY : unit terminal | T_LABEL : ( -# 1082 "src/ocaml/preprocess/parser_raw.mly" +# 1094 "src/ocaml/preprocess/parser_raw.mly" (string) -# 122698 "src/ocaml/preprocess/parser_raw.ml" +# 124957 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_KIND_OF : unit terminal | T_KIND_ABBREV : unit terminal | T_INT : ( -# 1078 "src/ocaml/preprocess/parser_raw.mly" +# 1090 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 122705 "src/ocaml/preprocess/parser_raw.ml" +# 124964 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INITIALIZER : unit terminal | T_INHERIT : unit terminal | T_INFIXOP4 : ( -# 1072 "src/ocaml/preprocess/parser_raw.mly" +# 1084 "src/ocaml/preprocess/parser_raw.mly" (string) -# 122712 "src/ocaml/preprocess/parser_raw.ml" +# 124971 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP3 : ( -# 1071 "src/ocaml/preprocess/parser_raw.mly" +# 1083 "src/ocaml/preprocess/parser_raw.mly" (string) -# 122717 "src/ocaml/preprocess/parser_raw.ml" +# 124976 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP2 : ( -# 1070 "src/ocaml/preprocess/parser_raw.mly" +# 1082 "src/ocaml/preprocess/parser_raw.mly" (string) -# 122722 "src/ocaml/preprocess/parser_raw.ml" +# 124981 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP1 : ( -# 1069 "src/ocaml/preprocess/parser_raw.mly" +# 1081 "src/ocaml/preprocess/parser_raw.mly" (string) -# 122727 "src/ocaml/preprocess/parser_raw.ml" +# 124986 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INFIXOP0 : ( -# 1066 "src/ocaml/preprocess/parser_raw.mly" +# 1078 "src/ocaml/preprocess/parser_raw.mly" (string) -# 122732 "src/ocaml/preprocess/parser_raw.ml" +# 124991 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_INCLUDE : unit terminal | T_IN : unit terminal | T_IF : unit terminal | T_HASH_SUFFIX : unit terminal | T_HASH_INT : ( -# 1079 "src/ocaml/preprocess/parser_raw.mly" +# 1091 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 122741 "src/ocaml/preprocess/parser_raw.ml" +# 125000 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASH_FLOAT : ( -# 1052 "src/ocaml/preprocess/parser_raw.mly" +# 1064 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 122746 "src/ocaml/preprocess/parser_raw.ml" +# 125005 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASHOP : ( -# 1137 "src/ocaml/preprocess/parser_raw.mly" +# 1149 "src/ocaml/preprocess/parser_raw.mly" (string) -# 122751 "src/ocaml/preprocess/parser_raw.ml" +# 125010 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_HASHLPAREN : unit terminal | T_HASHLBRACE : unit terminal @@ -122762,9 +125021,9 @@ module MenhirInterpreter = struct | T_FUN : unit terminal | T_FOR : unit terminal | T_FLOAT : ( -# 1051 "src/ocaml/preprocess/parser_raw.mly" +# 1063 "src/ocaml/preprocess/parser_raw.mly" (string * char option) -# 122768 "src/ocaml/preprocess/parser_raw.ml" +# 125027 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_FALSE : unit terminal | T_EXTERNAL : unit terminal @@ -122778,9 +125037,9 @@ module MenhirInterpreter = struct | T_DOWNTO : unit terminal | T_DOTTILDE : unit terminal | T_DOTOP : ( -# 1073 "src/ocaml/preprocess/parser_raw.mly" +# 1085 "src/ocaml/preprocess/parser_raw.mly" (string) -# 122784 "src/ocaml/preprocess/parser_raw.ml" +# 125043 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_DOTLESS : unit terminal | T_DOTHASH : unit terminal @@ -122788,16 +125047,16 @@ module MenhirInterpreter = struct | T_DOT : unit terminal | T_DONE : unit terminal | T_DOCSTRING : ( -# 1163 "src/ocaml/preprocess/parser_raw.mly" +# 1175 "src/ocaml/preprocess/parser_raw.mly" (Docstrings.docstring) -# 122794 "src/ocaml/preprocess/parser_raw.ml" +# 125053 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_DO : unit terminal | T_CONSTRAINT : unit terminal | T_COMMENT : ( -# 1162 "src/ocaml/preprocess/parser_raw.mly" +# 1174 "src/ocaml/preprocess/parser_raw.mly" (string * Location.t) -# 122801 "src/ocaml/preprocess/parser_raw.ml" +# 125060 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_COMMA : unit terminal | T_COLONRBRACKET : unit terminal @@ -122807,9 +125066,9 @@ module MenhirInterpreter = struct | T_COLON : unit terminal | T_CLASS : unit terminal | T_CHAR : ( -# 1028 "src/ocaml/preprocess/parser_raw.mly" +# 1040 "src/ocaml/preprocess/parser_raw.mly" (char) -# 122813 "src/ocaml/preprocess/parser_raw.ml" +# 125072 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_BEGIN : unit terminal | T_BARRBRACKET : unit terminal @@ -122822,9 +125081,9 @@ module MenhirInterpreter = struct | T_ASSERT : unit terminal | T_AS : unit terminal | T_ANDOP : ( -# 1075 "src/ocaml/preprocess/parser_raw.mly" +# 1087 "src/ocaml/preprocess/parser_raw.mly" (string) -# 122828 "src/ocaml/preprocess/parser_raw.ml" +# 125087 "src/ocaml/preprocess/parser_raw.ml" ) terminal | T_AND : unit terminal | T_AMPERSAND : unit terminal @@ -122866,6 +125125,7 @@ module MenhirInterpreter = struct | N_str_exception_declaration : (Parsetree.type_exception * string Location.loc option) nonterminal | N_single_attr_id : (string) nonterminal | N_simple_pattern_not_ident : (Parsetree.pattern) nonterminal + | N_simple_pattern_extend_modes_or_poly : (Parsetree.pattern) nonterminal | N_simple_pattern : (Parsetree.pattern) nonterminal | N_simple_expr : (Parsetree.expression) nonterminal | N_simple_delimited_pattern : (Parsetree.pattern) nonterminal @@ -122915,6 +125175,7 @@ module MenhirInterpreter = struct | N_possibly_poly_core_type_no_attr_ : (Parsetree.core_type) nonterminal | N_possibly_poly_core_type_ : (Parsetree.core_type) nonterminal | N_payload : (Parsetree.payload) nonterminal + | N_pattern_with_modes_or_poly : (Parsetree.pattern) nonterminal | N_pattern_var : (Parsetree.pattern) nonterminal | N_pattern_no_exn : (Parsetree.pattern) nonterminal | N_pattern_gen : (Parsetree.pattern) nonterminal @@ -122933,9 +125194,9 @@ module MenhirInterpreter = struct | N_parenthesized_type_parameter : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) nonterminal | N_paren_module_expr : (Parsetree.module_expr) nonterminal | N_optlabel : (string) nonterminal + | N_optional_poly_type_and_modes : (Parsetree.core_type option * Parsetree.modes) nonterminal | N_optional_atomic_constraint_ : (Parsetree.function_constraint) nonterminal | N_optional_atat_modalities_expr : (Parsetree.modalities) nonterminal - | N_optional_at_modalities_expr : (Parsetree.modalities) nonterminal | N_option_type_constraint_ : (Parsetree.type_constraint option) nonterminal | N_option_preceded_EQUAL_seq_expr__ : (Parsetree.expression option) nonterminal | N_option_preceded_EQUAL_pattern__ : (Parsetree.pattern option) nonterminal @@ -122968,14 +125229,15 @@ module MenhirInterpreter = struct | N_mty_longident : (Longident.t) nonterminal | N_module_type_subst : (Parsetree.module_type_declaration * string Location.loc option) nonterminal | N_module_type_declaration : (Parsetree.module_type_declaration * string Location.loc option) nonterminal + | N_module_type_atomic : (Parsetree.module_type) nonterminal | N_module_type : (Parsetree.module_type) nonterminal | N_module_subst : (Parsetree.module_substitution * string Location.loc option) nonterminal + | N_module_name_modal_atat_modalities_expr_ : (string option Location.loc * Parsetree.modalities) nonterminal | N_module_name_modal_at_mode_expr_ : (Ocaml_parsing.Ast_helper.str_opt * Parsetree.modes) nonterminal - | N_module_name_modal_at_modalities_expr_ : (string option Location.loc * Parsetree.modalities) nonterminal | N_module_name : (string option) nonterminal | N_module_expr : (Parsetree.module_expr) nonterminal - | N_module_declaration_body_optional_atat_mode_expr_ : (Parsetree.module_type * Parsetree.modes) nonterminal - | N_module_declaration_body_optional_atat_modalities_expr_ : (Parsetree.module_type * Parsetree.modalities) nonterminal + | N_module_declaration_body_module_type_with_optional_modes_ : (Parsetree.module_type * Parsetree.modes) nonterminal + | N_module_declaration_body___anonymous_8_ : (Parsetree.module_type * Parsetree.modalities) nonterminal | N_module_binding_body : (Parsetree.module_expr) nonterminal | N_mod_longident : (Longident.t) nonterminal | N_mod_ext_longident : (Longident.t) nonterminal @@ -123010,9 +125272,7 @@ module MenhirInterpreter = struct | N_list_and_class_declaration_ : (Parsetree.class_expr Parsetree.class_infos list) nonterminal | N_letop_bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) nonterminal | N_letop_binding_body : (Parsetree.pattern * Parsetree.expression) nonterminal - | N_let_pattern_required_modes : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) nonterminal - | N_let_pattern_no_modes : (Parsetree.pattern * Parsetree.core_type option) nonterminal - | N_let_pattern : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) nonterminal + | N_let_pattern : (Parsetree.pattern) nonterminal | N_let_bindings_no_ext_ : (Parser_types.let_bindings) nonterminal | N_let_bindings_ext_ : (Parser_types.let_bindings) nonterminal | N_let_binding_body_no_punning : (Parsetree.pattern * Parsetree.expression * @@ -123024,7 +125284,7 @@ module MenhirInterpreter = struct | N_labeled_simple_pattern : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) nonterminal | N_labeled_simple_expr : (Parsetree.arg_label * Parsetree.expression) nonterminal | N_label_longident : (Longident.t) nonterminal - | N_label_let_pattern : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) nonterminal + | N_label_let_pattern : (string * Parsetree.pattern) nonterminal | N_label_declarations : (Parsetree.label_declaration list) nonterminal | N_label_declaration_semi : (Parsetree.label_declaration) nonterminal | N_label_declaration : (Parsetree.label_declaration) nonterminal @@ -123099,9 +125359,8 @@ module MenhirInterpreter = struct | N_attr_payload : (Parsetree.payload) nonterminal | N_attr_id : (string Location.loc) nonterminal | N_atomic_type : (Parsetree.core_type) nonterminal - | N_atat_mode_expr : (Parsetree.modes) nonterminal + | N_atat_modalities_expr : (Parsetree.modalities) nonterminal | N_at_mode_expr : (Parsetree.modes) nonterminal - | N_at_modalities_expr : (Parsetree.modalities) nonterminal | N_any_longident : (Longident.t) nonterminal | N_and_let_binding : (Parser_types.let_binding) nonterminal | N_alias_type : (Parsetree.core_type) nonterminal @@ -123431,451 +125690,451 @@ module MenhirInterpreter = struct | 272 -> X (N N_any_longident) | 271 -> - X (N N_at_modalities_expr) - | 270 -> X (N N_at_mode_expr) + | 270 -> + X (N N_atat_modalities_expr) | 269 -> - X (N N_atat_mode_expr) - | 268 -> X (N N_atomic_type) - | 267 -> + | 268 -> X (N N_attr_id) - | 266 -> + | 267 -> X (N N_attr_payload) - | 265 -> + | 266 -> X (N N_attribute) - | 264 -> + | 265 -> X (N N_class_expr) - | 263 -> + | 264 -> X (N N_class_field) - | 262 -> + | 263 -> X (N N_class_fun_binding) - | 261 -> + | 262 -> X (N N_class_fun_def) - | 260 -> + | 261 -> X (N N_class_longident) - | 259 -> + | 260 -> X (N N_class_self_pattern) - | 258 -> + | 259 -> X (N N_class_self_type) - | 257 -> + | 258 -> X (N N_class_sig_field) - | 256 -> + | 257 -> X (N N_class_signature) - | 255 -> + | 256 -> X (N N_class_simple_expr) - | 254 -> + | 255 -> X (N N_class_type) - | 253 -> + | 254 -> X (N N_class_type_declarations) - | 252 -> + | 253 -> X (N N_clty_longident) - | 251 -> + | 252 -> X (N N_comprehension_clause) - | 250 -> + | 251 -> X (N N_comprehension_clause_binding) - | 249 -> + | 250 -> X (N N_comprehension_iterator) - | 248 -> + | 249 -> X (N N_constant) - | 247 -> + | 248 -> X (N N_constr_extra_nonprefix_ident) - | 246 -> + | 247 -> X (N N_constr_ident) - | 245 -> + | 246 -> X (N N_constr_longident) - | 244 -> + | 245 -> X (N N_constrain_field) - | 243 -> + | 244 -> X (N N_constructor_arguments) - | 242 -> + | 243 -> X (N N_constructor_declarations) - | 241 -> + | 242 -> X (N N_core_type) - | 240 -> + | 241 -> X (N N_delimited_type) - | 239 -> + | 240 -> X (N N_delimited_type_supporting_local_open) - | 238 -> + | 239 -> X (N N_direction_flag) - | 237 -> + | 238 -> X (N N_ext) - | 236 -> + | 237 -> X (N N_extension) - | 235 -> + | 236 -> X (N N_extension_constructor_rebind_BAR_) - | 234 -> + | 235 -> X (N N_extension_constructor_rebind_epsilon_) - | 233 -> + | 234 -> X (N N_extension_type) - | 232 -> + | 233 -> X (N N_floating_attribute) - | 231 -> + | 232 -> X (N N_formal_class_parameters) - | 230 -> + | 231 -> X (N N_fun_) - | 229 -> + | 230 -> X (N N_fun_body) - | 228 -> + | 229 -> X (N N_fun_expr) - | 227 -> + | 228 -> X (N N_fun_param_as_list) - | 226 -> + | 227 -> X (N N_fun_params) - | 225 -> + | 226 -> X (N N_fun_seq_expr) - | 224 -> + | 225 -> X (N N_function_type) - | 223 -> + | 224 -> X (N N_functor_arg) - | 222 -> + | 223 -> X (N N_functor_args) - | 221 -> + | 222 -> X (N N_generalized_constructor_arguments) - | 220 -> + | 221 -> X (N N_generic_constructor_declaration_BAR_) - | 219 -> + | 220 -> X (N N_generic_constructor_declaration_epsilon_) - | 218 -> + | 219 -> X (N N_generic_type_declaration_no_nonrec_flag_type_subst_kind_) - | 217 -> + | 218 -> X (N N_generic_type_declaration_nonrec_flag_type_kind_) - | 216 -> + | 217 -> X (N N_ident) - | 215 -> + | 216 -> X (N N_implementation) - | 214 -> + | 215 -> X (N N_include_kind) - | 213 -> + | 214 -> X (N N_index_mod) - | 212 -> + | 213 -> X (N N_interface) - | 211 -> + | 212 -> X (N N_item_extension) - | 210 -> + | 211 -> X (N N_jkind_annotation) - | 209 -> + | 210 -> X (N N_jkind_constraint) - | 208 -> + | 209 -> X (N N_jkind_desc) - | 207 -> + | 208 -> X (N N_kind_abbreviation_decl) - | 206 -> + | 207 -> X (N N_label_declaration) - | 205 -> + | 206 -> X (N N_label_declaration_semi) - | 204 -> + | 205 -> X (N N_label_declarations) - | 203 -> + | 204 -> X (N N_label_let_pattern) - | 202 -> + | 203 -> X (N N_label_longident) - | 201 -> + | 202 -> X (N N_labeled_simple_expr) - | 200 -> + | 201 -> X (N N_labeled_simple_pattern) - | 199 -> + | 200 -> X (N N_labeled_tuple_pat_element_list_pattern_) - | 198 -> + | 199 -> X (N N_labeled_tuple_pat_element_list_pattern_no_exn_) - | 197 -> + | 198 -> X (N N_let_binding_body) - | 196 -> + | 197 -> X (N N_let_binding_body_no_punning) - | 195 -> + | 196 -> X (N N_let_bindings_ext_) - | 194 -> + | 195 -> X (N N_let_bindings_no_ext_) - | 193 -> + | 194 -> X (N N_let_pattern) + | 193 -> + X (N N_letop_binding_body) | 192 -> - X (N N_let_pattern_no_modes) + X (N N_letop_bindings) | 191 -> - X (N N_let_pattern_required_modes) + X (N N_list_and_class_declaration_) | 190 -> - X (N N_letop_binding_body) + X (N N_list_and_class_description_) | 189 -> - X (N N_letop_bindings) + X (N N_list_and_class_type_declaration_) | 188 -> - X (N N_list_and_class_declaration_) + X (N N_list_and_module_binding_) | 187 -> - X (N N_list_and_class_description_) + X (N N_list_and_module_declaration_) | 186 -> - X (N N_list_and_class_type_declaration_) + X (N N_list_attribute_) | 185 -> - X (N N_list_and_module_binding_) + X (N N_list_generic_and_type_declaration_type_kind__) | 184 -> - X (N N_list_and_module_declaration_) + X (N N_list_generic_and_type_declaration_type_subst_kind__) | 183 -> - X (N N_list_attribute_) + X (N N_list_post_item_attribute_) | 182 -> - X (N N_list_generic_and_type_declaration_type_kind__) + X (N N_list_signature_element_) | 181 -> - X (N N_list_generic_and_type_declaration_type_subst_kind__) + X (N N_list_structure_element_) | 180 -> - X (N N_list_post_item_attribute_) + X (N N_list_text_csig_class_sig_field__) | 179 -> - X (N N_list_signature_element_) + X (N N_list_text_cstr_class_field__) | 178 -> - X (N N_list_structure_element_) + X (N N_list_text_str_structure_item__) | 177 -> - X (N N_list_text_csig_class_sig_field__) + X (N N_list_use_file_element_) | 176 -> - X (N N_list_text_cstr_class_field__) + X (N N_listx_SEMI_record_pat_field_UNDERSCORE_) | 175 -> - X (N N_list_text_str_structure_item__) + X (N N_match_case) | 174 -> - X (N N_list_use_file_element_) + X (N N_meth_list) | 173 -> - X (N N_listx_SEMI_record_pat_field_UNDERSCORE_) + X (N N_method_) | 172 -> - X (N N_match_case) + X (N N_mk_longident_mod_ext_longident_LIDENT_) | 171 -> - X (N N_meth_list) + X (N N_mk_longident_mod_ext_longident_UIDENT_) | 170 -> - X (N N_method_) + X (N N_mk_longident_mod_ext_longident___anonymous_50_) | 169 -> - X (N N_mk_longident_mod_ext_longident_LIDENT_) + X (N N_mk_longident_mod_ext_longident_ident_) | 168 -> - X (N N_mk_longident_mod_ext_longident_UIDENT_) + X (N N_mk_longident_mod_ext_longident_type_trailing_hash_) | 167 -> - X (N N_mk_longident_mod_ext_longident___anonymous_50_) + X (N N_mk_longident_mod_ext_longident_type_trailing_no_hash_) | 166 -> - X (N N_mk_longident_mod_ext_longident_ident_) + X (N N_mk_longident_mod_longident_LIDENT_) | 165 -> - X (N N_mk_longident_mod_ext_longident_type_trailing_hash_) + X (N N_mk_longident_mod_longident_UIDENT_) | 164 -> - X (N N_mk_longident_mod_ext_longident_type_trailing_no_hash_) + X (N N_mk_longident_mod_longident_val_ident_) | 163 -> - X (N N_mk_longident_mod_longident_LIDENT_) + X (N N_mod_ext_longident) | 162 -> - X (N N_mk_longident_mod_longident_UIDENT_) + X (N N_mod_longident) | 161 -> - X (N N_mk_longident_mod_longident_val_ident_) + X (N N_module_binding_body) | 160 -> - X (N N_mod_ext_longident) + X (N N_module_declaration_body___anonymous_8_) | 159 -> - X (N N_mod_longident) + X (N N_module_declaration_body_module_type_with_optional_modes_) | 158 -> - X (N N_module_binding_body) + X (N N_module_expr) | 157 -> - X (N N_module_declaration_body_optional_atat_modalities_expr_) + X (N N_module_name) | 156 -> - X (N N_module_declaration_body_optional_atat_mode_expr_) + X (N N_module_name_modal_at_mode_expr_) | 155 -> - X (N N_module_expr) + X (N N_module_name_modal_atat_modalities_expr_) | 154 -> - X (N N_module_name) + X (N N_module_subst) | 153 -> - X (N N_module_name_modal_at_modalities_expr_) + X (N N_module_type) | 152 -> - X (N N_module_name_modal_at_mode_expr_) + X (N N_module_type_atomic) | 151 -> - X (N N_module_subst) + X (N N_module_type_declaration) | 150 -> - X (N N_module_type) + X (N N_module_type_subst) | 149 -> - X (N N_module_type_declaration) + X (N N_mty_longident) | 148 -> - X (N N_module_type_subst) + X (N N_mutable_flag) | 147 -> - X (N N_mty_longident) + X (N N_mutable_or_global_flag) | 146 -> - X (N N_mutable_flag) + X (N N_mutable_virtual_flags) | 145 -> - X (N N_mutable_or_global_flag) + X (N N_name_tag) | 144 -> - X (N N_mutable_virtual_flags) + X (N N_newtype) | 143 -> - X (N N_name_tag) + X (N N_newtypes) | 142 -> - X (N N_newtype) + X (N N_nonempty_list_mkrhs_LIDENT__) | 141 -> - X (N N_newtypes) + X (N N_nonempty_list_modality_) | 140 -> - X (N N_nonempty_list_mkrhs_LIDENT__) + X (N N_nonempty_list_mode_) | 139 -> - X (N N_nonempty_list_modality_) + X (N N_nonempty_list_mode_legacy_) | 138 -> - X (N N_nonempty_list_mode_) + X (N N_nonempty_list_newtype_) | 137 -> - X (N N_nonempty_list_mode_legacy_) + X (N N_nonempty_list_raw_string_) | 136 -> - X (N N_nonempty_list_newtype_) + X (N N_nonempty_type_kind) | 135 -> - X (N N_nonempty_list_raw_string_) + X (N N_object_type) | 134 -> - X (N N_nonempty_type_kind) + X (N N_open_declaration) | 133 -> - X (N N_object_type) + X (N N_open_description) | 132 -> - X (N N_open_declaration) + X (N N_operator) | 131 -> - X (N N_open_description) + X (N N_opt_ampersand) | 130 -> - X (N N_operator) + X (N N_option_BAR_) | 129 -> - X (N N_opt_ampersand) + X (N N_option_SEMI_) | 128 -> - X (N N_option_BAR_) + X (N N_option_constraint__) | 127 -> - X (N N_option_SEMI_) + X (N N_option_jkind_constraint_) | 126 -> - X (N N_option_constraint__) + X (N N_option_preceded_AS_mkrhs_LIDENT___) | 125 -> - X (N N_option_jkind_constraint_) + X (N N_option_preceded_COLON_core_type__) | 124 -> - X (N N_option_preceded_AS_mkrhs_LIDENT___) + X (N N_option_preceded_EQUAL_expr__) | 123 -> - X (N N_option_preceded_COLON_core_type__) + X (N N_option_preceded_EQUAL_module_type__) | 122 -> - X (N N_option_preceded_EQUAL_expr__) + X (N N_option_preceded_EQUAL_pattern__) | 121 -> - X (N N_option_preceded_EQUAL_module_type__) + X (N N_option_preceded_EQUAL_seq_expr__) | 120 -> - X (N N_option_preceded_EQUAL_pattern__) + X (N N_option_type_constraint_) | 119 -> - X (N N_option_preceded_EQUAL_seq_expr__) + X (N N_optional_atat_modalities_expr) | 118 -> - X (N N_option_type_constraint_) + X (N N_optional_atomic_constraint_) | 117 -> - X (N N_optional_at_modalities_expr) + X (N N_optional_poly_type_and_modes) | 116 -> - X (N N_optional_atat_modalities_expr) + X (N N_optlabel) | 115 -> - X (N N_optional_atomic_constraint_) + X (N N_paren_module_expr) | 114 -> - X (N N_optlabel) + X (N N_parenthesized_type_parameter) | 113 -> - X (N N_paren_module_expr) + X (N N_parse_any_longident) | 112 -> - X (N N_parenthesized_type_parameter) + X (N N_parse_constr_longident) | 111 -> - X (N N_parse_any_longident) + X (N N_parse_core_type) | 110 -> - X (N N_parse_constr_longident) + X (N N_parse_expression) | 109 -> - X (N N_parse_core_type) + X (N N_parse_mod_ext_longident) | 108 -> - X (N N_parse_expression) + X (N N_parse_mod_longident) | 107 -> - X (N N_parse_mod_ext_longident) + X (N N_parse_module_expr) | 106 -> - X (N N_parse_mod_longident) + X (N N_parse_module_type) | 105 -> - X (N N_parse_module_expr) + X (N N_parse_mty_longident) | 104 -> - X (N N_parse_module_type) + X (N N_parse_pattern) | 103 -> - X (N N_parse_mty_longident) + X (N N_parse_val_longident) | 102 -> - X (N N_parse_pattern) + X (N N_pattern) | 101 -> - X (N N_parse_val_longident) + X (N N_pattern_gen) | 100 -> - X (N N_pattern) + X (N N_pattern_no_exn) | 99 -> - X (N N_pattern_gen) + X (N N_pattern_var) | 98 -> - X (N N_pattern_no_exn) + X (N N_pattern_with_modes_or_poly) | 97 -> - X (N N_pattern_var) - | 96 -> X (N N_payload) - | 95 -> + | 96 -> X (N N_possibly_poly_core_type_) - | 94 -> + | 95 -> X (N N_possibly_poly_core_type_no_attr_) - | 93 -> + | 94 -> X (N N_post_item_attribute) - | 92 -> + | 93 -> X (N N_primitive_declaration) - | 91 -> + | 92 -> X (N N_private_flag) - | 90 -> + | 91 -> X (N N_private_virtual_flags) - | 89 -> + | 90 -> X (N N_rec_flag) - | 88 -> + | 89 -> X (N N_record_expr_content) - | 87 -> + | 88 -> X (N N_reverse_product_jkind) - | 86 -> + | 87 -> X (N N_reversed_bar_llist_constructor_declaration_) - | 85 -> + | 86 -> X (N N_reversed_bar_llist_extension_constructor_) - | 84 -> + | 85 -> X (N N_reversed_bar_llist_extension_constructor_declaration_) - | 83 -> + | 84 -> X (N N_reversed_labeled_tuple_body) - | 82 -> + | 83 -> X (N N_reversed_labeled_tuple_pattern_pattern_) - | 81 -> + | 82 -> X (N N_reversed_labeled_tuple_pattern_pattern_no_exn_) - | 80 -> + | 81 -> X (N N_reversed_llist_preceded_CONSTRAINT_constrain__) - | 79 -> + | 80 -> X (N N_reversed_nonempty_concat_fun_param_as_list_) - | 78 -> + | 79 -> X (N N_reversed_nonempty_llist_comprehension_clause_) - | 77 -> + | 78 -> X (N N_reversed_nonempty_llist_functor_arg_) - | 76 -> + | 77 -> X (N N_reversed_nonempty_llist_labeled_simple_expr_) - | 75 -> + | 76 -> X (N N_reversed_nonempty_llist_name_tag_) - | 74 -> + | 75 -> X (N N_reversed_nonempty_llist_typevar_) - | 73 -> + | 74 -> X (N N_reversed_preceded_or_separated_nonempty_llist_BAR_match_case_) - | 72 -> + | 73 -> X (N N_reversed_separated_nonempty_llist_AMPERSAND_core_type_no_attr_) - | 71 -> + | 72 -> X (N N_reversed_separated_nonempty_llist_AND_comprehension_clause_binding_) - | 70 -> + | 71 -> X (N N_reversed_separated_nonempty_llist_AND_with_constraint_) - | 69 -> + | 70 -> X (N N_reversed_separated_nonempty_llist_BAR_row_field_) - | 68 -> + | 69 -> X (N N_reversed_separated_nonempty_llist_COMMA_core_type_) - | 67 -> + | 68 -> X (N N_reversed_separated_nonempty_llist_COMMA_parenthesized_type_parameter_) - | 66 -> + | 67 -> X (N N_reversed_separated_nonempty_llist_COMMA_type_parameter_) - | 65 -> + | 66 -> X (N N_reversed_separated_nonempty_llist_STAR_constructor_argument_) - | 64 -> + | 65 -> X (N N_reversed_separated_nonempty_llist_STAR_labeled_tuple_typ_element_) - | 63 -> + | 64 -> X (N N_reversed_separated_nontrivial_llist_COMMA_one_type_parameter_of_several_) - | 62 -> + | 63 -> X (N N_row_field) - | 61 -> + | 62 -> X (N N_separated_or_terminated_nonempty_list_SEMI_expr_) - | 60 -> + | 61 -> X (N N_separated_or_terminated_nonempty_list_SEMI_object_expr_field_) - | 59 -> + | 60 -> X (N N_separated_or_terminated_nonempty_list_SEMI_pattern_) - | 58 -> + | 59 -> X (N N_separated_or_terminated_nonempty_list_SEMI_record_expr_field_) - | 57 -> + | 58 -> X (N N_seq_expr) - | 56 -> + | 57 -> X (N N_sig_exception_declaration) - | 55 -> + | 56 -> X (N N_signature) - | 54 -> + | 55 -> X (N N_signature_item) - | 53 -> + | 54 -> X (N N_signed_constant) - | 52 -> + | 53 -> X (N N_signed_value_constant) - | 51 -> + | 52 -> X (N N_simple_delimited_pattern) - | 50 -> + | 51 -> X (N N_simple_expr) - | 49 -> + | 50 -> X (N N_simple_pattern) + | 49 -> + X (N N_simple_pattern_extend_modes_or_poly) | 48 -> X (N N_simple_pattern_not_ident) | 47 -> @@ -123948,22 +126207,22 @@ module MenhirInterpreter = struct assert false and lr0_incoming = - (16, "\000\000\000\006\000H\000\004\000\006\000\b\000\n\000\012\000\018\000\020\000\022\000\024\000\026\000\030\000 \000(\0000\000>\000L\000P\000T\000V\000X\000Z\000\\\000^\000h\000j\000n\000p\000t\000\146\000\156\000\158\000\170\000\172\000\174\000\200\000\202\000\204\000\206\000\210\000\212\000\216\000\224\000\226\000\228\000\242\000\246\000\248\001\b\001\012\001\028\001\030\001\"\000_\000\240\002\023\002\023\001\219\000\138\002\023\000\012\001\219\001o\000l\000$\000@\000B\000D\000F\000H\000L\000`\000d\000f\000r\000x\000\160\000\162\000\164\000\166\000\168\000\182\000\196\000\218\000\232\000l\000,\000\238\001\171\000.\000v\000\140\001\171\0002\000v\000\144\001\171\0004\000v\001\002\001\016\001\020\001\024\001\026\001 \001$\001&\001\005\000.\000p\0001\001\006\000\014\000R\000n\001\019\001\019\001\019\000\016\000\018\0008\000:\000\018\000p\001\177\000<\000p\001\006\000N\000l\000\016\001\006\000\016\000l\000\150\000:\001\177\000l\000:\001\177\001\006\000\175\001$\001\161\001\165\000\004\000p\000\176\001\006\000l\000^\001\219\001o\000\018\000(\001o\001\024\000p\001\023\001\023\000o\000\224\000\233\000\020\001\219\001o\000@\000F\001\020\000X\000f\001\020\000l\000\164\001\020\000F\000f\0009\000\016\001o\001\006\001\165\000`\000p\001\025\001\025\001$\001\165\001\177\002\019\001o\000:\001\177\001o\001\006\001\165\000C\000\135\000.\000\252\000\225\000\225\0009\000\016\001o\000:\001\177\001o\000A\000p\001\006\001\165\000\251\000\218\000\018\000\024\000>\000l\000.\000x\000l\000:\001\177\000|\002\023\000\014\000\016\000\018\000\022\001\219\001o\000\028\000l\000p\001\000\000~\001\018\001\001\000\128\0002\001\001\000\140\000\184\000p\001\006\000p\000\188\000p\001A\000l\001A\000.\000\240\000\018\001Q\000\240\000p\001S\001\249\000;\000=\000?\000E\001\011\001A\000\240\000l\000K\000b\000K\001\026\000p\001\021\001\021\002\029\000b\000K\002\029\000Y\000\229\000l\000Y\000\127\000.\000\188\001\249\000;\000E\001A\000\240\000=\000?\001I\001K\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\019\000l\000\149\000:\001\177\000l\000:\001\177\001\006\001\165\000.\000\240\001\193\001\211\001\217\001\223\001\225\001\227\000.\000b\000K\002\029\000Y\001\019\000K\000b\000K\002\029\000Y\001\019\000K\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\025\000$\000p\001\006\002\025\000\188\001\249\000;\000E\000\129\000$\000p\001\006\002\025\002\025\002\025\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\019\002%\001\030\000:\001\177\000l\000\016\001\006\001\165\000.\000:\001\177\001\006\001\165\000.\001\227\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\227\000K\002\029\001\227\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\019\000K\002\029\000Y\001\019\000K\002\029\002\029\001\227\001\223\002\025\000$\000\129\000.\002\025\000$\000\129\000.\001\018\001\022\001\177\000Q\000}\000\139\0002\001\018\000}\001\031\000T\001$\001\003\000\145\001$\002%\001o\002%\001o\001\227\000Q\0002\000}\001\018\000\139\0002\000\139\0002\000\139\0002\000\196\000\151\0002\001\031\001\031\001\227\001\006\001\227\001\000\001\227\000I\000.\000\252\000\028\000l\000p\000I\000.\000p\000\252\000\028\000l\000p\000I\000.\000p\000\"\000&\000@\000V\001\219\001o\000l\000\016\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000F\000\154\000\178\000\180\000\208\000f\000\154\000\178\000\180\000\208\000l\000F\000^\001\219\001o\000\016\000\018\0015\000.\001\006\000^\000\020\000T\001o\000\016\000 \001o\000\020\001\219\001o\000X\000A\000p\000\251\000G\000\161\000\136\002\023\000&\000Z\001\219\001o\000p\001?\000\240\000\018\000p\001E\001G\002\t\000l\000@\000\130\000&\000\132\000&\000\140\000&\000\142\000p\000\218\000&\000\144\000p\000\154\000\178\000\180\000\184\000&\000\186\000\208\000\210\000\230\000\234\000&\000\202\001\219\001o\000\130\000\132\000\140\0002\000\144\001G\001[\0004\001\149\001\006\001\227\000\247\000\218\000\146\001\219\001o\000\176\000p\000E\001A\000\240\000\184\000\148\000\186\001[\0004\000\188\000E\001\n\000+\0001\0003\0007\000a\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000g\000i\000\238\000F\000f\000i\000k\001\031\001?\000\240\000l\000.\000\216\001\219\001o\000c\000\165\000\199\000\201\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\001\217\001\235\001\239\000\238\000\201\001\004\000\201\001\018\000\201\001\030\0001\002\019\001\031\000\201\001\143\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\201\001\235\000l\000\020\000l\000p\001\006\001\165\000.\000p\001\006\001\165\000.\000c\001\017\001\027\000.\000c\001\029\000p\001\017\000f\001\004\000.\000\201\000.\001\006\001\227\000.\000\201\001\004\000.\000\201\000.\000\140\0002\000w\0002\000\201\000,\000w\000g\000\238\000\201\000\165\000.\000\201\000c\000\201\000\241\000,\000\016\000,\000\255\001[\001\014\000w\001\014\000\254\000w\000\254\001\018\000\201\000\b\000D\000F\000J\001\219\001o\000R\000d\000f\000j\001\219\001o\000n\000p\000v\000&\000\202\001\219\001o\000\147\000\252\000\028\000l\000p\000I\000.\000p\000&\000\202\001\219\001o\000\147\001\018\001Y\001Y\000\204\001\219\001o\000\028\000l\000p\001\006\000\149\000\240\001\227\001\024\001\021\002\027\001\227\002\027\002\029\001\019\001\151\000.\001\151\000.\000p\000<\000l\001\019\001\151\000\218\000r\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\163\000\197\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\197\001\004\000\201\001\018\000\201\001\030\0001\002\019\000\199\001\141\000\252\000\028\000l\000p\001\006\001\227\000.\000p\000\148\000c\000\238\000\197\000\238\000\197\000\148\000c\000\238\000\197\000p\000\148\000c\0001\000N\000\016\000l\000l\000l\000\201\001\006\000\149\000\240\001\227\002\027\001\227\002\027\002\029\001\127\000.\001\127\000.\000\201\001\006\000\149\000\240\001\227\002\027\001\227\002\027\002\029\001\019\001\131\000\239\000.\001\131\000\239\000.\000p\000\195\000l\000\020\000p\001\006\001\165\000.\001\027\000.\000\201\001\006\000\149\000\240\001\227\000.\001\019\000\201\001\006\000\149\000\240\001\227\001\227\001\127\000.\001\129\000.\001\127\000.\000\148\000l\000\201\001\006\000\149\000\240\001\227\000.\001\019\000\201\000.\001\006\000\149\000\240\001\227\000.\001\227\001\127\000.\001\127\000.\000c\000\218\000t\000P\001\020\001\219\001o\000l\000\012\001o\000&\000\202\001\219\001o\000\147\000.\001\000\000l\000.\000b\000\200\001o\000l\000.\0015\001\006\001'\001-\000\004\000\020\000A\001\149\000\218\000>\001\002\002%\000\031\002%\000\161\000\248\001\227\000\218\001\227\000C\000^\000\020\001'\000\218\001-\000b\001-\002\019\002\029\000b\001-\002\029\001A\000\240\000\018\001\177\001M\001\177\001\217\002\029\001\002\001-\001?\000\218\001A\000\240\001\002\001A\000!\000\141\001\"\000!\001A\000.\002\027\000.\000\155\001\191\001\189\000b\001-\002\029\001\191\001-\002\029\001-\000.\001-\000.\001\006\001-\000.\001\000\001-\000.\001\012\001\219\001o\000\146\001\219\001o\001\020\000+\000/\0001\0007\000e\000\176\000p\000\182\000e\000\188\000p\000\232\000l\000&\000\202\001\219\001o\000\147\000,\000\148\000e\000\236\001\149\000\240\000l\000\174\001\219\001o\000\202\001\219\001o\000\147\000\252\000\028\000l\000p\000I\000.\000p\000&\000\202\001\219\001o\000\147\000e\001\031\001?\000\240\000l\000.\000D\000F\000^\001\219\001o\000\200\001o\001\189\000b\000\227\0017\000l\000.\0017\000.\001\006\001-\000.\002\027\000.\000\227\002\019\002\029\000.\001?\001\217\0017\001\006\001-\000.\000d\000f\000r\000c\001\006\001\227\000\218\000\204\001\219\001o\000c\000\159\001\145\001\199\001\197\001\006\002\025\002\027\000\231\000b\000\202\001\219\001o\000\147\000\206\001\219\001o\000\201\000\218\000\214\001\028\001\219\001o\000e\001C\001\217\001\235\001\241\000S\000&\000\202\001\219\001o\000\147\001\235\000e\000\202\001\219\001o\000\147\000e\000\028\000l\000p\000I\000.\000p\000<\000p\000N\000e\000\148\000e\000\232\000l\000\202\001\219\001o\000\147\000,\000{\000\167\000\252\000\028\000l\000p\000I\000.\000p\000&\000\202\001\219\001o\000\147\000\148\000e\000\252\000\028\000l\000p\000I\000.\000p\000&\000\202\001\219\001o\000\147\000\148\000e\000\202\001\219\001o\000\147\001\031\000e\001\135\000\172\000s\001\195\001\201\000$\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000B\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000D\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000F\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000H\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000L\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000`\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000d\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000f\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000x\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\160\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\162\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\164\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\166\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\168\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\196\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\218\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\252\000\028\000l\000p\000I\000.\000p\000&\000\202\001\219\001o\000\147\000\148\000e\000\202\001\219\001o\000\147\001\201\001\002\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\001\004\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\001\016\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\001\024\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\001\026\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\001$\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\001&\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\002\019\001\205\001\235\000e\002'\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000,\000H\002\023\000s\000s\001\"\001o\000l\0001\002\029\000.\000[\001\197\000I\002\027\000\253\000\218\001\195\001\203\002\029\001\199\0001\001\006\000\020\001\027\000\240\001\227\000\218\000s\002\027\000\218\000s\000\149\000\240\001\227\000\218\000s\002\027\000\218\000s\000I\000\218\000s\002\027\000\218\000s\000[\002\029\000\218\000s\000a\001\006\001\227\000\218\000s\002\027\000\218\000s\002\029\000\218\000s\000\197\000\218\000s\001\019\0001\001\006\000\149\000\240\001\227\000\218\000s\002\027\000\218\000s\000I\000\218\000s\002\027\000\218\000s\000[\002\029\000\218\000s\001\137\001\139\000\187\001i\001i\002#\001\201\000\202\001\219\001o\000\147\001\201\001\201\000,\000{\000{\000.\000v\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\140\000{\0002\000v\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\144\000{\0004\000v\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\240\000l\000s\000.\000v\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\140\000s\0002\000v\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\144\000s\0004\000v\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\001?\000\232\000l\000{\000.\000v\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\140\000{\0002\000v\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\144\000{\0004\000v\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\001\149\000v\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000e\000\153\001\147\001\147\001\201\000s\000s\000\026\000\228\001\221\000s\000\246\000s\000\242\001\203\002\029\000s\000\197\000\218\000s\001{\000\172\000s\001 \001}\001}\001\020\000s\000.\000\130\000&\000\202\001\219\001o\000\147\000\b\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\206\000\143\001\"\001o\000\014\000\201\000\172\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000R\000\201\000\172\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000n\000\201\000\172\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\201\000\172\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\218\000&\000\202\001\219\001o\000\147\001\221\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\202\001\219\001o\000\147\001\221\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\001\201\001\221\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\001\243\001\245\001\245\000\157\000\254\001\247\001\247\000\202\001\219\001o\000\147\000\157\000\254\000\254\000{\000\254\001\201\000\157\000\254\000\132\000&\000\202\001\219\001o\000\147\000\157\001\014\000\202\001\219\001o\000\147\000\157\001\014\001\014\000{\001\014\001\201\000\157\001\014\000\140\000&\000\202\001\219\001o\000\147\000\157\0002\0002\000\202\001\219\001o\000\147\000\157\0002\000{\0002\001\201\000\157\0002\000\142\000y\000\192\000\144\000e\000\004\000u\001\149\000I\000\237\000\245\000,\000u\000u\000\177\0004\001?\000\240\000p\0001\000\148\000e\000\202\001\219\001o\000\147\001\201\000s\000\030\000&\000\202\001\219\001o\000\147\000\226\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\202\001\219\001o\000\147\000\226\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\001\201\000\226\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000s\000.\000\140\000s\0002\000\144\000s\0004\001?\000\232\000l\000{\000.\000\140\000{\0002\000\144\000{\0004\001\149\000{\000{\000.\000\140\000{\0002\000\144\000{\0004\000e\000\224\000s\000\224\000\202\001\219\001o\000\147\000.\001\000\001-\000.\001\006\001-\000.\001\000\001-\000.\001\201\000.\001\000\001-\000.\001\006\001-\000.\001\000\001-\000.\0017\000\172\000s\001\219\001o\0017\000\172\000s\000^\001\219\001o\000l\0015\002\029\000.\0011\000\218\0017\001\006\001-\000\218\0017\002\027\000\218\0017\001=\000\172\000s\001\191\001=\002\029\000\218\0017\0015\000\216\001\219\001o\000\018\000l\001\004\000.\000\140\001\237\000T\000\144\000\\\000\198\001#\000p\001\006\000\149\000\240\002%\000\189\000\233\001o\000,\001o\002%\001\153\0004\001\155\001\153\001\157\000\198\002\025\000\233\000\131\000$\000\198\002\025\000\233\002\025\000\233\001\231\002\025\000\233\001\006\000l\000:\001\177\001\006\001\165\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\227\000\149\000\240\001\231\000b\002\025\002\025\001\231\000b\002\025\002\025\001\187\001o\000\172\000s\001\239\001\219\001o\0000\000\179\001\139\001i\000s\000[\000s\000\239\000.\001\151\000\239\000.\000p\001\197\000\231\000b\001\203\000\148\000e\000\202\001\219\001o\000\147\001\201\000\202\001\219\001o\000\147\001\201\000s\000s\000\004\000\147\000s\000s\000\004\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000s\000b\000s\000b\000\240\000s\001Y\000\147\000\194\000\202\001\219\001o\000\147\000\194\001\201\000\194\000e\000\177\0004\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\000\167\000.\001\201\000\177\0004\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\001\201\000\245\000,\000y\000\192\000y\000\192\000\202\001\219\001o\000\147\000\157\0002\000\202\001\219\001o\000\147\000\157\0002\000{\0002\001\201\000\157\0002\000\202\001\219\001o\000\147\000\157\001\014\000\202\001\219\001o\000\147\000\157\001\014\001\014\000{\001\014\001\201\000\157\001\014\000\202\001\219\001o\000\147\000\157\000\254\000\202\001\219\001o\000\147\000\157\000\254\000\254\000{\000\254\001\201\000\157\000\254\000e\000^\001\219\001o\0017\000.\001\006\001-\000.\000s\000.\000I\000.\002\027\000.\000\202\001\219\001o\000\147\000*\0006\000P\001\020\001\219\001o\0017\001i\001\219\001o\0017\001i\000^\000\020\001\219\001o\001\177\000\218\001-\000\243\001i\001\219\001o\0000\0011\001=\001i\001\"\001o\0011\001=\001i\001s\001s\0011\001=\001i\000z\002\023\000<\000\201\000\b\000s\000\134\002\023\000\152\000p\000\218\001\165\000\170\000\200\000\212\001\219\001o\0001\001\006\000\149\000\240\001\227\000\191\000\233\000\218\000\"\001\015\001\015\001i\001\227\000\216\001\219\001o\001\237\000\218\000l\001?\000\240\000l\001\235\001o\001i\001\187\001o\001i\001\006\000o\001\227\001\b\000\020\001\219\001o\000\n\000'\000\140\000C\000\133\0002\000\252\000C\001\207\000p\000\218\000V\001o\000l\001\227\000.\002\005\000\012\001o\000\n\000\\\000\\\000\n\001!\000p\001\006\001\227\001i\000h\001o\000\n\000>\000>\000\n\000\181\000p\001\006\000\191\001i\000\158\001o\000t\000P\001\020\001o\001?\000\172\000\140\000\137\0002\001\249\000\252\001\227\001\227\001\217\001\249\002\001\002\019\001o\001?\000\172\002\001\002\001\001i\000\248\001o\001\227\000\218\001\227\001\233\001i\001c\000\224\001\167\001i\001\209\002\003\001c\002\001\001i\001\"\001o\000'\001\207\000p\000\218\002\001\001i\001u\001u\001\219\001o\000'\001\207\000p\000l\000\218\000V\001o\002\007\000\012\001\020\001o\000\\\001%\000p\000\218\000s\000I\000\218\000s\000-\001i\001o\000\n\000\\\000\\\000\n\000%\000p\001\006\001\227\001%\000p\000\218\000s\000I\000\218\000s\000h\001\020\001o\000>\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\000\191\000\218\000s\000[\001U\001i\001o\000\n\000>\000>\000\n\000#\000p\001\006\000\191\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\000\191\000\218\000s\000[\000\156\001o\000s\001i\000\158\001\020\001o\000l\000t\000H\002\023\001o\000\179\001\139\001i\000P\001\020\001o\001?\000\172\000\140\000\137\0002\002\t\000\204\001o\001\145\000b\001\133\000\172\001\217\001\255\000\153\002\t\002\017\002\019\002#\002\017\002\011\002\011\002\017\001o\001?\000\172\002\017\001o\000\179\001\139\001i\002\017\000.\001\006\000p\001\006\000K\000b\000\140\001\227\000K\000b\000\229\000K\000b\001A\000\240\000p\001\217\001\253\002\001\001\253\001\253\001\253\000.\002\017\001\030\000p\000\249\001i\001o\002\017\000\249\001i\000\248\001o\001\233\001i\001a\000\224\001\167\001i\001\209\002\015\001a\002\017\001\006\001\253\000\218\002\017\001\145\002\r\002\r\001i\001\"\001o\000'\001\207\000p\002\r\001i\001y\001y\000)\000U\000t\000]\000q\000\185\001\t\001+\001e\001\135\001\159\001\167\001i\001\173\001\219\001o\0017\001i\001\179\001\"\001o\000A\000p\000\251\000G\000\161\001i\001m\001\163\001m\001\209\001\251\000W\000s\001i\001e\000\193\001e\001\135\002\021\0002\000\193\0002\000s\001i\001e\001e\002\021\0002\001i\000E\000B\000\183\001\018\001\237\000\218\001\235\001o\001\187\001o\000\171\001i\001\185\001\215\001\183\001\185\001\213\001\215\001\237\000\218\001\235\001o\001\187\001o\000A\000p\000\251\000G\000\161\001i\000E\000B\000\183\000\171\001i\000W\000\224\0017\001-\000.\000\148\000c\000\238\000\201\000\148\000c\000\238\000\201\000p\000\201\000.\001\006\001\227\000.\002\007\001a\000\224\000\202\001\219\001o\000\147\000\148\000e\000\202\001\219\001o\000\147\001\201\000&\000\202\001\219\001o\000\147\000\148\000e\000\202\001\219\001o\000\147\001\201\000p\000s\000\004\000\147\000s\000\193\0002\000p\001\006\000\189\001o\000,\001o\000\238\001W\002\025\000,\001W\000\196\001W\000\196\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000\140\000\144\001\153\0004\000\186\001\153\0004\000\238\001\018\001\237\000\173\001\018\001\185\001\183\001\185\001\227\001\229\001\237\000\144\001\153\0004\000\186\001\153\0004\000\238\001\r\001\227\000\218\000>\000\144\001\153\0004\000\186\001\153\0004\000\238\001\229\000\144\001\153\0004\000\186\001\153\0004\000\238\001\229\001\229\001\002\001\r\000\161\001i\000E\000B\000\183\000\169\001i\001\185\001\183\001\185\000A\000p\000\251\001\002\001\r\000\161\001i\000E\000B\000\183\000\169\001i\000*\000P\001\020\001\219\001o\001A\001i\001\219\001o\001A\001i\000^\000\020\001\219\001o\001\177\001\002\001-\001i\001\219\001o\000\018\001\002\001A\001i\0000\0015\001\006\001-\000\233\001i\001\"\001o\0015\001\006\001-\000\233\001i\001q\001q\000l\0015\001\026\001\023\002\031\000.\0013\000\218\001?\001\026\001\023\000\235\001i\001\006\001-\000\233\001;\001i\001\191\001\006\001-\002\027\0019\001\191\0019\0015\000\216\001\219\001o\001\237\001\b\001\219\001o\000'\001\207\000p\001\006\001\253\001i\001\"\001o\000'\001\207\000p\001\006\001\253\001i\001w\001w\000)\000m\000q\000\185\001\007\001)\001+\001/\001g\001\159\001\167\001i\001\173\001\219\001o\001-\001i\000\233\001\179\001m\001\181\001\"\001o\000A\000p\000\251\001\002\001\r\000\161\001i\001k\001k\001\209\001\251\001g\001g\001-\000.\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\000K\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\025\000$\000\129\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\002\025\000$\000\129\000b\000K\002\029\000Y\001\019\000K\002\029\002\029\000b\000K\002\029\000Y\001\019\000K\002\029\001\227\000\233\001\165\000.\001\227\001\161\000.\001\165\001\165\000.\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\001\227\000:\001\177\000\191\000\233\001i\002\021\0002\001o\000s\000\246\000s\000\242\000W\000\222\001\175\000\000\000o\000\222\001\169\000\000\000l\001\004\000.\0003\000\223\001A\000\240\000l\001\004\000.\0003\001\177\001O\001\177\001\239\002!\000\222\000\000\000\221\001\235\000\222\000\000\000\219\001\227\000\222\000\000\000s\000\222\000\217\000\000\000\215\001A\000\222\000\000\000\213\001?\000\222\000\000\000\211\0017\000\222\000\000\000\209\001-\000\222\000\000\000\207\001'\000\222\000\000\000\201\000\222\000\205\000\000\000/\000\222\000\203\001?\000\240\000\000\000\176\001\177\000\024\000\"\000\154\000\210\000/\001?\000\188\001\177\000\024\000\"\000\154\000\210\000/\001?\000\222\000M\000O\000*\000U\001_\000s\001i\000*\001_\000*\000\000\000*\000O\000U\001]\001]\000s\001i\001]\001]\0005\000s\001i\001]\000\222\001]\000\222") + (16, "\000\000\000\006\000H\000\004\000\006\000\b\000\n\000\012\000\018\000\020\000\022\000\024\000\026\000\030\000 \000(\0000\000>\000L\000P\000T\000V\000X\000Z\000\\\000^\000h\000j\000n\000p\000t\000\146\000\156\000\158\000\170\000\172\000\174\000\200\000\202\000\204\000\206\000\210\000\212\000\216\000\224\000\226\000\228\000\242\000\246\000\248\001\b\001\012\001\028\001\030\001\"\000_\000\240\002\025\002\025\001\221\000\138\002\025\000\012\001\221\001u\000l\000$\000@\000B\000D\000F\000H\000L\000`\000d\000f\000r\000x\000\160\000\162\000\164\000\166\000\168\000\182\000\196\000\218\000\232\000l\000,\000\238\001\173\000.\000v\000\140\001\173\0002\000v\000\144\001\173\0004\000v\001\002\001\016\001\020\001\024\001\026\001 \001$\001&\001\t\000.\000p\0001\001\006\000\014\000R\000n\001\023\001\023\001\023\000\016\000\018\0008\000:\000\018\000p\001\179\000<\000p\001\006\000N\000l\000\016\001\006\000\016\000l\000\150\000:\001\179\000l\000\020\001\006\000\177\001$\001\163\001\167\000\004\000p\000\176\001\006\000l\000:\001\179\001\006\001\167\000.\000`\000p\001\029\001\029\000\252\000\016\001\006\001\167\001$\001\167\001\179\000:\001\179\001\006\001\167\000x\000l\000:\001\179\000^\001\221\001u\000\018\000(\001u\001\024\000p\001\027\001\027\000q\000\224\000\239\000\020\001\221\001u\000@\000F\001\020\000X\000f\001\020\000l\000\164\001\020\000F\000f\0009\000\016\001u\001\006\001\167\002\021\001u\000:\001\179\001u\001\006\001\167\000C\000\137\000.\000\252\000\229\000\229\0009\000\016\001u\000:\001\179\001u\000A\000p\001\006\001\167\000\255\000\218\000\018\000\024\000>\000l\000.\000|\002\025\000\014\000\016\000\018\000\022\001\221\001u\000\028\000l\000p\001\000\000~\001\018\001\005\000\128\0002\001\005\000\140\000\184\000p\001\006\000p\000\188\000p\001G\000l\001G\000.\000\240\000\018\001W\000\240\000p\001Y\001\251\000;\000=\000?\000E\001\015\001G\000\240\000l\000K\000b\000K\001\026\000p\001\025\001\025\002\031\000b\000K\002\031\000Y\000\233\000l\000Y\000\129\000.\000\188\001\251\000;\000E\001G\000\240\000=\000?\001O\001Q\000\252\000\016\001\006\001\167\000:\001\179\001\006\001\167\001\023\000l\000\151\000:\001\179\000l\000:\001\179\001\006\001\167\000.\000\240\001\195\001\213\001\219\001\225\001\227\001\229\000.\000b\000K\002\031\000Y\001\023\000K\000b\000K\002\031\000Y\001\023\000K\002\031\000b\000K\002\031\000Y\001\023\000K\002\031\002\027\000$\000p\001\006\002\027\000\188\001\251\000;\000E\000\131\000$\000p\001\006\002\027\002\027\002\027\002\031\002\031\000b\000K\002\031\000Y\001\023\000K\002\031\002\021\002%\001\030\000:\001\179\000l\000\016\001\006\001\167\000.\000:\001\179\001\006\001\167\000.\001\229\000.\000\252\000\016\001\006\001\167\000:\001\179\001\006\001\167\001\229\000K\002\031\001\229\000\151\000\240\001\229\000.\000b\000K\002\031\000Y\001\023\000K\002\031\002\031\000b\000K\002\031\000Y\001\023\000K\002\031\000K\000b\000K\002\031\000Y\001\023\000K\002\031\002\031\000b\000K\002\031\000Y\001\023\000K\002\031\001\023\000l\000\151\000\240\001\229\000.\000b\000K\002\031\000Y\001\023\000K\002\031\002\031\000b\000K\002\031\000Y\001\023\000K\002\031\000K\000b\000K\002\031\000Y\001\023\000K\002\031\002\031\000b\000K\002\031\000Y\001\023\000K\002\031\001\023\000K\002\031\000Y\001\023\000K\002\031\002\031\001\229\001\225\002\027\000$\000\131\000.\002\027\000$\000\131\000.\001\018\001\022\001\179\000Q\000\127\000\141\0002\001\018\000\127\001#\000T\001$\001\007\000\147\001$\002%\001u\002%\001u\001\229\000Q\0002\000\127\001\018\000\141\0002\000\141\0002\000\141\0002\000\196\000\153\0002\001#\001#\001\229\001\006\001\229\001\000\001\229\000I\000.\000\252\000\028\000l\000p\000I\000.\000p\000\252\000\028\000l\000p\000I\000.\000p\000\"\000&\000@\000V\001\221\001u\000l\000\016\000\028\000l\000p\001\006\001\229\000.\000\252\000\028\000l\000p\001\006\001\229\000.\000p\000\252\000\028\000l\000p\001\006\001\229\000.\000p\000F\000\154\000\178\000\180\000\208\000f\000\154\000\178\000\180\000\208\000l\000F\000^\001\221\001u\000\016\000\018\001;\000.\001\006\000^\000\020\000T\001u\000\016\000 \001u\000\020\001\221\001u\000X\000A\000p\000\255\000G\000\163\000\136\002\025\000&\000Z\001\221\001u\000p\001E\000\240\000\018\000p\001K\001M\002\011\000l\000@\000\130\000&\000\132\000&\000\140\000&\000\142\000p\000\218\000&\000\144\000p\000\154\000\178\000\180\000\184\000&\000\186\000\208\000\210\000\230\000\234\000&\000\202\001\221\001u\000\130\000\132\000\140\0002\000\144\001M\001a\0004\001\151\001\006\001\229\000\251\000\218\000\146\001\221\001u\000\176\000p\000E\001G\000\240\000\184\000\148\000\186\001a\0004\000\188\000E\001\n\000+\0001\0003\0007\000a\000e\000\252\000\028\000l\000p\001\006\001\229\000.\000p\000\148\000e\000i\000k\000\238\000F\000f\000k\000m\001#\001E\000\240\000l\000.\000\216\001\221\001u\000e\000\167\000\203\000\205\000\252\000\028\000l\000p\001\006\001\229\000.\000p\000\148\000e\001\219\001\237\001\241\000\238\000\205\001\004\000\205\001\018\000\205\001\030\0001\002\021\001#\000\205\001\145\000\252\000\028\000l\000p\001\006\001\229\000.\000p\000\148\000e\000\238\000\205\001\237\000l\000\020\000l\000p\001\006\001\167\000.\000p\001\006\001\167\000.\000e\001\021\001\031\000.\000e\001!\000p\001\021\000f\001\004\000.\000\205\000.\001\006\001\229\000.\000\205\001\004\000.\000\205\000.\000\140\0002\000y\0002\000\205\000,\000y\000i\000\238\000\205\000\167\000.\000\205\000e\000\205\000\245\000,\000\016\000,\001\003\001a\001\014\000y\001\014\000\254\000y\000\254\001\018\000\205\000\b\000D\000F\000J\001\221\001u\000R\000d\000f\000j\001\221\001u\000n\000p\000v\000&\000\202\001\221\001u\000\149\000\252\000\028\000l\000p\000I\000.\000p\000&\000\202\001\221\001u\000\149\001\018\001_\001_\000\204\001\221\001u\000\028\000l\000p\001\006\000K\002\031\000\151\000\240\000K\002\031\001\229\000\193\001\229\000\235\002\031\001\023\000p\000\235\001\153\000.\000p\000<\000l\001\153\000\218\000r\000\028\000l\000p\001\006\001\229\000.\000\252\000\028\000l\000p\001\006\001\229\000.\000p\000\252\000\028\000l\000p\001\006\001\229\000.\000p\000\148\000e\000\252\000\028\000l\000p\001\006\001\229\000.\000p\000\148\000e\000\238\000\165\000\201\000\252\000\028\000l\000p\001\006\001\229\000.\000p\000\148\000e\000\238\000\201\001\004\000\205\001\018\000\205\001\030\0001\002\021\000\203\001\143\000\252\000\028\000l\000p\001\006\001\229\000.\000p\000\148\000e\000\238\000\201\000\238\000\201\000\148\000e\000\238\000\201\000p\000\148\000e\0001\000N\000\016\000l\000\205\000\235\001\023\000\205\000\235\001\133\000\243\000.\000p\000\199\000l\000\020\000p\001\006\001\167\000.\001\031\000.\000\197\000.\000\205\001\006\000K\002\031\000\151\000\240\000K\002\031\001\229\002\031\001\023\000\205\000\235\000\148\000l\000c\000e\000\218\000t\000P\001\020\001\221\001u\000l\000\012\001u\000&\000\202\001\221\001u\000\149\000.\001\000\000l\000\018\000.\000\200\001u\000l\001;\001\006\000\157\001\193\001+\0011\002\031\000.\000b\0011\002\031\0013\000\004\000\020\000A\001\151\000\218\000>\001\002\002%\000\031\002%\000\163\000\248\001\229\000\218\001\229\000C\000^\000\020\001+\000\218\0011\002\031\0013\000b\0011\002\031\0013\002\021\001G\000\240\000\018\001\179\001S\001\179\001\191\000b\0011\002\031\0013\001\193\001\219\001\002\0013\001E\000\218\001G\000\240\001\002\001G\000!\000\143\001\"\000!\001G\0013\000.\001\191\000b\0011\002\031\0013\0013\000.\0013\000.\001\006\0013\000.\001\000\0013\000.\001\012\001\221\001u\000\146\001\221\001u\001\020\000+\000/\0001\0007\000g\000\176\000p\000\182\000g\000\188\000p\000\232\000l\000&\000\202\001\221\001u\000\149\000,\000\148\000g\000\236\001\151\000\240\000l\000\174\001\221\001u\000\202\001\221\001u\000\149\000\252\000\028\000l\000p\000I\000.\000p\000&\000\202\001\221\001u\000\149\000g\001#\001E\000\240\000l\000.\000D\000F\000^\001\221\001u\000\200\001u\001\191\000b\000\231\001=\000l\000.\001=\000.\001\006\0011\002\031\000.\0013\000.\000\231\002\021\002\031\000.\001E\001\219\001=\001\006\0013\000.\000d\000f\000r\000e\001\006\001\229\000\218\000\204\001\221\001u\000c\000\161\001\147\001\201\001\199\001\006\002\027\000\237\000b\000\202\001\221\001u\000\149\000\206\001\221\001u\000\205\000\218\000\214\001\028\001\221\001u\000g\001I\001\219\001\237\001\243\000S\000&\000\202\001\221\001u\000\149\001\237\000g\000\202\001\221\001u\000\149\000g\000\028\000l\000p\000I\000.\000p\000<\000p\000N\000g\000\148\000g\000\232\000l\000\202\001\221\001u\000\149\000,\000}\000\169\000\252\000\028\000l\000p\000I\000.\000p\000&\000\202\001\221\001u\000\149\000\148\000g\000\252\000\028\000l\000p\000I\000.\000p\000&\000\202\001\221\001u\000\149\000\148\000g\000\202\001\221\001u\000\149\001#\000g\001\137\000\172\000u\001\197\001\203\000$\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000B\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000D\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000F\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000H\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000L\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000`\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000d\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000f\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000x\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\160\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\162\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\164\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\166\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\168\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\196\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\218\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\252\000\028\000l\000p\000I\000.\000p\000&\000\202\001\221\001u\000\149\000\148\000g\000\202\001\221\001u\000\149\001\203\001\002\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\001\004\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\001\016\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\001\024\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\001\026\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\001$\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\001&\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\002\021\001\207\001\237\000g\002'\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000,\000H\002\025\000u\000u\001\"\001u\000l\0001\002\031\000.\001\000\000K\002\031\000\218\000u\001\229\000\218\000u\001\006\000\020\001\031\000\240\000K\002\031\000\218\000u\001\229\000\218\000u\000K\002\031\000\218\000u\000\151\000\240\000K\002\031\000\218\000u\001\229\000\218\000u\001\229\000\218\000u\001\000\000K\002\031\000\218\000u\001\229\000\218\000u\000[\001\199\001\000\000K\002\031\001\229\001\006\000K\002\031\001\229\001\000\000K\002\031\001\229\001\001\000\218\001\197\001\205\002\031\001\201\002\031\000\218\000u\0001\001\000\000K\002\031\000\218\000u\001\229\000\218\000u\001\006\000\020\001\031\000\240\000K\002\031\000\218\000u\001\229\000\218\000u\000K\002\031\000\218\000u\000\151\000\240\000K\002\031\000\218\000u\001\229\000\218\000u\001\229\000\218\000u\001\000\000K\002\031\000\218\000u\001\229\000\218\000u\000[\002\031\000\218\000u\000a\001\006\000K\002\031\000\218\000u\001\229\000\218\000u\002\031\000\218\000u\000\201\000\218\000u\001\023\0001\001\000\000K\002\031\000\218\000u\001\229\000\218\000u\001\006\000\020\001\031\000\240\000K\002\031\000\218\000u\001\229\000\218\000u\000K\002\031\000\218\000u\000\151\000\240\000K\002\031\000\218\000u\001\229\000\218\000u\001\229\000\218\000u\001\000\000K\002\031\000\218\000u\001\229\000\218\000u\000[\002\031\000\218\000u\001\139\001\141\000\189\001o\001o\002#\001\203\000\202\001\221\001u\000\149\001\203\001\203\000,\000}\000}\000.\000v\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\140\000}\0002\000v\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\144\000}\0004\000v\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\240\000l\000u\000.\000v\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\140\000u\0002\000v\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\144\000u\0004\000v\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\001E\000\232\000l\000}\000.\000v\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\140\000}\0002\000v\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\144\000}\0004\000v\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\001\151\000v\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000g\000\155\001\149\001\149\001\203\000u\000u\000\026\000\228\001\223\000u\000\246\000u\000\242\001\205\002\031\000u\000\201\000\218\000u\001\129\000\172\000u\001 \001\131\001\131\001\020\000u\000.\000\130\000&\000\202\001\221\001u\000\149\000\b\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\206\000\145\001\"\001u\000\014\000\205\000\172\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000R\000\205\000\172\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000n\000\205\000\172\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\205\000\172\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\218\000&\000\202\001\221\001u\000\149\001\223\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\202\001\221\001u\000\149\001\223\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\001\203\001\223\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\001\245\001\247\001\247\000\159\000\254\001\249\001\249\000\202\001\221\001u\000\149\000\159\000\254\000\254\000}\000\254\001\203\000\159\000\254\000\132\000&\000\202\001\221\001u\000\149\000\159\001\014\000\202\001\221\001u\000\149\000\159\001\014\001\014\000}\001\014\001\203\000\159\001\014\000\140\000&\000\202\001\221\001u\000\149\000\159\0002\0002\000\202\001\221\001u\000\149\000\159\0002\000}\0002\001\203\000\159\0002\000\142\000{\000\192\000\144\000g\000\004\000w\001\151\000I\000\241\000\249\000,\000w\000w\000\179\0004\001E\000\240\000p\0001\000\148\000g\000\202\001\221\001u\000\149\001\203\000u\000\030\000&\000\202\001\221\001u\000\149\000\226\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\202\001\221\001u\000\149\000\226\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\001\203\000\226\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000u\000.\000\140\000u\0002\000\144\000u\0004\001E\000\232\000l\000}\000.\000\140\000}\0002\000\144\000}\0004\001\151\000}\000}\000.\000\140\000}\0002\000\144\000}\0004\000g\000\224\000u\000\224\000\202\001\221\001u\000\149\000.\001\000\0013\000.\001\006\0013\000.\001\000\0013\000.\001\203\000.\001\000\0013\000.\001\006\0013\000.\001\000\0013\000.\001=\000\172\000u\001\221\001u\001=\000\172\000u\000^\001\221\001u\000l\001;\002\031\000.\0019\000\218\001=\001\006\0011\002\031\000\218\001=\0013\000\218\001=\001C\000\172\000u\001\193\001C\002\031\000\218\001=\001;\000\216\001\221\001u\000\018\000l\001\004\000.\000\140\001\239\000T\000\144\000\\\000\198\001'\000p\001\006\000\151\000\240\002%\000\191\000\239\001u\000,\001u\002\029\002%\001\155\0004\001\157\001\155\001\159\000\198\002\027\000\239\000\133\000$\000\198\002\027\000\239\002\027\000\239\001\233\002\027\000\239\001\006\000l\000:\001\179\001\006\001\167\000.\000\151\000\240\001\233\000b\002\027\002\027\001\233\000b\002\027\002\027\001\189\001u\000\172\000u\001\241\001\221\001u\0000\000\181\001\141\001o\000u\000[\000u\000\243\000.\000p\001\199\000\237\000b\001\205\000\148\000g\000\202\001\221\001u\000\149\001\203\000\202\001\221\001u\000\149\001\203\000u\000u\000\004\000\149\000u\000u\000\004\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000u\000b\000u\000b\000\240\000u\001_\000\149\000\194\000\202\001\221\001u\000\149\000\194\001\203\000\194\000g\000\179\0004\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\000\169\000.\001\203\000\179\0004\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\001\203\000\249\000,\000{\000\192\000{\000\192\000\202\001\221\001u\000\149\000\159\0002\000\202\001\221\001u\000\149\000\159\0002\000}\0002\001\203\000\159\0002\000\202\001\221\001u\000\149\000\159\001\014\000\202\001\221\001u\000\149\000\159\001\014\001\014\000}\001\014\001\203\000\159\001\014\000\202\001\221\001u\000\149\000\159\000\254\000\202\001\221\001u\000\149\000\159\000\254\000\254\000}\000\254\001\203\000\159\000\254\000g\000^\001\221\001u\001=\000.\001\006\0013\000.\000u\000.\001\000\000K\002\031\000.\001\229\000.\001\006\000K\002\031\000.\001\229\000.\001\000\000K\002\031\000.\001\229\000.\000\202\001\221\001u\000\149\000*\0006\000P\001\020\001\221\001u\001=\001o\001\221\001u\001=\001o\000^\000\020\001\221\001u\001\179\000\218\0013\000\247\001o\001\221\001u\0000\0019\001C\001o\001\"\001u\0019\001C\001o\001y\001y\0019\001C\001o\000z\002\025\000<\000\205\000\b\000u\000\134\002\025\000\152\000p\000\218\001\167\000\170\000\200\000\212\001\221\001u\0001\001\006\000\151\000\240\000\193\000\239\000\218\000\"\001\019\001\019\001o\000\216\001\221\001u\001\239\000\218\000l\001E\000\240\000l\001\237\001u\001o\001\189\001u\001o\001\006\000q\001\229\001\b\000\020\001\221\001u\000\n\000'\000\140\000C\000\135\0002\000\252\000C\001\209\000p\000\218\000V\001u\000l\001\229\000.\002\007\000\012\001u\000\n\000\\\000\\\000\n\001%\000p\001\006\001\229\001o\000h\001u\000\n\000>\000>\000\n\000\183\000p\001\006\000\193\001o\000\158\001u\000t\000P\001\020\001u\001E\000\172\000\140\000\139\0002\001\251\000\252\001\229\001\229\001\219\001\251\002\003\002\021\001u\001E\000\172\002\003\002\003\001o\000\248\001u\001\229\000\218\001\229\001\235\001o\001i\000\224\001\169\001o\001\211\002\005\001i\002\003\001o\001\"\001u\000'\001\209\000p\000\218\002\003\001o\001{\001{\001\221\001u\000'\001\209\000p\000\218\000V\001u\002\t\000\012\001\020\001u\000\\\001)\000p\000\218\000u\000I\000\218\000u\000-\001o\001u\000\n\000\\\000\\\000\n\000%\000p\001\006\001\229\001)\000p\000\218\000u\000I\000\218\000u\000h\001\020\001u\000>\000\185\000p\001\006\000\020\001\031\000\240\001\229\000\218\000u\000\193\000\218\000u\000[\001[\001o\001u\000\n\000>\000>\000\n\000#\000p\001\006\000\193\000\185\000p\001\006\000\020\001\031\000\240\001\229\000\218\000u\000\193\000\218\000u\000[\000\156\001u\000u\001o\000\158\001\020\001u\000l\000t\000H\002\025\001u\000\181\001\141\001o\000P\001\020\001u\001E\000\172\000\140\000\139\0002\002\011\000\204\001u\001\147\000b\001\135\000\172\001\219\002\001\000\155\002\011\002\019\002\021\002#\002\019\002\r\002\r\002\019\001u\001E\000\172\002\019\001u\000\181\001\141\001o\002\019\000.\001\006\000p\001\006\000K\000b\000\140\001\229\000K\000b\000\233\000K\000b\001G\000\240\000p\001\219\001\255\002\003\001\255\001\255\001\255\000.\002\019\001\030\000p\000\253\001o\001u\002\019\000\253\001o\000\248\001u\001\235\001o\001g\000\224\001\169\001o\001\211\002\017\001g\002\019\001\006\001\255\000\218\002\019\001\147\002\015\002\015\001o\001\"\001u\000'\001\209\000p\002\015\001o\001\127\001\127\000)\000U\000t\000]\000s\000\187\001\r\001/\001k\001\137\001\161\001\169\001o\001\175\001\221\001u\001=\001o\001\181\001\"\001u\000A\000p\000\255\000G\000\163\001o\001s\001\165\001s\001\211\001\253\000W\000u\001o\001k\000\195\001k\001\137\002\023\0002\000\195\0002\000u\001o\001k\001k\002\023\0002\001o\000E\000B\000\185\001\018\001\239\000\218\001\237\001u\001\189\001u\000\173\001o\001\187\001\217\001\185\001\187\001\215\001\217\001\239\000\218\001\237\001u\001\189\001u\000A\000p\000\255\000G\000\163\001o\000E\000B\000\185\000\173\001o\000W\000\224\001=\0013\000.\000\148\000e\000\238\000\205\000\148\000e\000\238\000\205\000p\000\205\000.\001\006\001\229\000.\002\t\001g\000\224\000\202\001\221\001u\000\149\000\148\000g\000\202\001\221\001u\000\149\001\203\000&\000\202\001\221\001u\000\149\000\148\000g\000\202\001\221\001u\000\149\001\203\000p\000u\000\004\000\149\000u\000\195\0002\000\151\000\240\001\229\000.\000b\000K\002\031\000Y\001\023\000K\002\031\002\031\000b\000K\002\031\000Y\001\023\000K\002\031\000\140\000\144\001\155\0004\000\186\001\155\0004\000\238\001\018\001\239\000\175\001\018\001\187\001\185\001\187\001\229\001\231\001\239\000\144\001\155\0004\000\186\001\155\0004\000\238\001\017\001\229\000\218\000>\000\144\001\155\0004\000\186\001\155\0004\000\238\001\231\000\144\001\155\0004\000\186\001\155\0004\000\238\001\231\001\231\001\002\001\017\000\163\001o\000E\000B\000\185\000\171\001o\001\187\001\185\001\187\000A\000p\000\255\001\002\001\017\000\163\001o\000E\000B\000\185\000\171\001o\000*\000P\001\020\001\221\001u\001G\001o\001\221\001u\001G\001o\000^\000\020\001\221\001u\001\179\001\002\0013\001o\001\221\001u\000\018\001\002\001G\001o\0000\001;\001\006\0013\000\239\001o\001\"\001u\001;\001\006\0013\000\239\001o\001w\001w\000l\001;\002\029\000.\0017\000\218\001E\000\239\001o\001\006\0013\000\239\001A\001o\001\193\001\006\0011\002\031\0013\001?\001\193\001?\001;\000\216\001\221\001u\001\239\001\b\001\221\001u\000'\001\209\000p\001\006\001\255\001o\001\"\001u\000'\001\209\000p\001\006\001\255\001o\001}\001}\000)\000o\000s\000\187\001\011\001-\001/\0015\001m\001\161\001\169\001o\001\175\001\221\001u\0013\001o\000\239\001\181\001s\001\183\001\"\001u\000A\000p\000\255\001\002\001\017\000\163\001o\001q\001q\001\211\001\253\001m\001m\0013\000.\000p\001\006\000\191\001u\000,\001u\000\238\001]\002\027\000,\001]\000\196\001]\000\196\001\229\000\151\000\240\001\229\000.\000b\000K\002\031\000Y\001\023\000K\002\031\002\031\000b\000K\002\031\000Y\001\023\000K\002\031\000K\000b\000K\002\031\000Y\001\023\000K\002\031\002\031\000b\000K\002\031\000Y\001\023\000K\002\031\001\023\000l\000\151\000\240\001\229\000.\000b\000K\002\031\000Y\001\023\000K\002\031\002\031\000b\000K\002\031\000Y\001\023\000K\002\031\000K\000b\000K\002\031\000Y\001\023\000K\002\031\002\031\000b\000K\002\031\000Y\001\023\000K\002\031\002\027\000$\000\131\000b\000K\002\031\000Y\001\023\000K\002\031\002\031\000b\000K\002\031\000Y\001\023\000K\002\031\002\027\000$\000\131\000b\000K\002\031\000Y\001\023\000K\002\031\002\031\000b\000K\002\031\000Y\001\023\000K\002\031\001\229\000\239\001\167\000.\001\229\001\163\000.\001\167\001\167\000.\000\252\000\016\001\006\001\167\000:\001\179\001\006\001\167\001\229\000:\001\179\000\193\000\239\001o\002\023\0002\001u\000u\000\246\000u\000\242\000W\000\222\001\177\000\000\000q\000\222\001\171\000\000\000l\001\004\000.\0003\000\227\001G\000\240\000l\001\004\000.\0003\001\179\001U\001\179\001\241\002!\000\222\000\000\000\225\001\237\000\222\000\000\000\223\001\229\000\222\000\000\000u\000\222\000\221\000\000\000\219\001G\000\222\000\000\000\217\001E\000\222\000\000\000\215\001=\000\222\000\000\000\213\0013\000\222\000\000\000\211\001+\000\222\000\000\000\205\000\222\000\209\000\000\000/\000\222\000\207\001E\000\240\000\000\000\176\001\179\000\024\000\"\000\154\000\210\000/\001E\000\188\001\179\000\024\000\"\000\154\000\210\000/\001E\000\222\000M\000O\000*\000U\001e\000u\001o\000*\001e\000*\000\000\000*\000O\000U\001c\001c\000u\001o\001c\001c\0005\000u\001o\001c\000\222\001c\000\222") and rhs = - ((16, "\001\175\001\169\000\223\000\221\000\219\000\217\000\215\000\213\000\211\000\209\000\207\000\205\000\203\000M\0005\000F\000D\001\193\002%\001\030\000:\001\177\002%\001\030\000l\000:\001\177\001\006\001\165\000.\002%\001\030\000l\000\016\001\006\001\165\000.\001\"\001o\001\139\001i\001O\001\239\001\026\001\023\001\026\001\021\001\024\001\021\001\225\000E\002\025\000E\000l\000\127\000.\000E\000;\002\025\000;\000l\000\127\000.\000;\000\188\001\249\002\025\000\188\001\249\000l\000\127\000.\000\188\001\249\001A\000\240\001\223\000:\001\177\000\016\000l\000:\001\177\001\006\001\165\000.\000l\000\016\001\006\001\165\000.\000_\000_\000\240\002\023\000\193\000\138\002\023\002\021\0002\001\255\000\204\001o\002\011\001\133\000\172\002\017\000t\000P\001o\001?\000\172\002\017\000t\000P\001\020\001o\001?\000\172\002\017\002\017\002\019\001\255\000\153\001\217\000\158\001o\002\017\000\249\001i\000\158\001\020\001o\002\017\000\249\001i\000\012\000-\001i\000h\001U\001i\000\248\001o\001\233\001i\000\156\001o\000s\001i\001\167\001i\001\209\000\218\002\017\001\006\001\253\000\218\002\017\001\145\002\r\001\145\000b\002\017\001\145\002\011\001G\000l\000\201\000.\000l\000\201\001\006\001\227\000.\000l\001\227\000.\000\158\001o\002\001\001i\000\012\001o\001!\000p\001\006\001\227\001i\000h\001o\000\181\000p\001\006\000\191\001i\000\248\001o\001\233\001i\001\167\001i\001\209\001\249\000\140\000\137\0002\001\249\001\217\000V\001o\002\005\001c\000\224\002\001\002\019\000t\000P\001o\001?\000\172\002\001\000t\000P\001\020\001o\001?\000\172\002\001\000l\002\017\000.\002\t\000\140\000\137\0002\002\t\000l\002\017\001\006\001\253\000.\000V\001o\002\007\001a\000\224\002\001\000\229\000K\000b\001\253\000p\001\006\000K\000b\001\253\000K\000b\001\253\001\b\000\020\001\219\001o\000'\001\207\000p\000\218\002\001\001i\001u\001S\000\206\000\143\000\b\001\201\000\b\000\202\001\219\001o\000\147\000\b\000&\000\202\001\219\001o\000\147\001o\000\201\001\243\001o\000n\000\201\000\172\001\201\001o\000n\000\201\000\172\000\202\001\219\001o\000\147\001o\000n\000\201\000\172\000&\000\202\001\219\001o\000\147\001o\000\014\000\201\000\172\001\201\001o\000\014\000\201\000\172\000\202\001\219\001o\000\147\001o\000\014\000\201\000\172\000&\000\202\001\219\001o\000\147\001o\000R\000\201\000\172\001\201\001o\000R\000\201\000\172\000\202\001\219\001o\000\147\001o\000R\000\201\000\172\000&\000\202\001\219\001o\000\147\000\218\001\201\001\221\001\201\000\218\001\201\001\221\000\202\001\219\001o\000\147\000\218\001\201\001\221\000&\000\202\001\219\001o\000\147\000\218\000\202\001\219\001o\000\147\001\221\001\201\000\218\000\202\001\219\001o\000\147\001\221\000\202\001\219\001o\000\147\000\218\000\202\001\219\001o\000\147\001\221\000&\000\202\001\219\001o\000\147\000\218\000&\000\202\001\219\001o\000\147\001\221\001\201\000\218\000&\000\202\001\219\001o\000\147\001\221\000\202\001\219\001o\000\147\000\218\000&\000\202\001\219\001o\000\147\001\221\000&\000\202\001\219\001o\000\147\000\172\001\201\000\172\000\202\001\219\001o\000\147\000\172\000&\000\202\001\219\001o\000\147\000+\0007\000\140\0002\000l\000.\000\210\000\024\000\018\000l\001\004\000.\001\239\001?\001?\000\240\000l\001\004\000.\000l\001\004\000.\001\239\001\227\000\218\001\227\002\025\000\233\000\198\002\025\000\233\000\131\000$\002\025\000\233\000\131\000$\000\198\002\025\000\233\000\144\001\153\0004\001\018\000\173\002%\001\227\002\019\001\011\001\211\001\223\000l\001\227\000.\000l\000^\001\219\001o\001-\000.\000\140\000Q\0002\000\140\001\018\000\139\0002\000\140\000}\001\018\000\139\0002\000\128\001\001\000\139\0002\000\128\0002\000~\001\001\000\139\0002\000~\001\001\000\139\000\196\000\151\0002\000\184\002\025\000$\000\129\000.\000\184\000p\001\006\002\025\000$\000\129\000.\000\026\000\228\000H\002\023\000|\002\023\000\193\0002\0008\001\018\001\237\000\218\001\235\001o\001\237\000\218\001\235\001o\001\217\000\134\002\023\002\021\0002\000\140\000\133\0002\000\204\001\219\001o\001\197\000\231\000b\001\203\000&\000\204\001\219\001o\001\197\000\231\000b\001\203\000\202\001\219\001o\000\147\001\195\000e\000t\000^\001\219\001o\0011\001=\000\172\000s\000t\000\216\001\219\001o\001\237\001\187\001o\000\172\000s\000t\000P\001\219\001o\0017\000\172\000s\000t\000P\001\020\001\219\001o\0017\000\172\000s\000j\001\219\001o\000s\000\004\000\147\000\022\001\219\001o\000s\000\004\000\147\000J\001\219\001o\000s\000\004\001\201\000J\001\219\001o\000s\000\004\000\202\001\219\001o\000\147\000J\001\219\001o\000s\000\004\000&\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\001\201\000\226\001\201\000\174\001\219\001o\000s\000\030\001\201\000\226\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\001\201\000\226\000&\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\000\202\001\219\001o\000\147\000\226\001\201\000\174\001\219\001o\000s\000\030\000\202\001\219\001o\000\147\000\226\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\000\202\001\219\001o\000\147\000\226\000&\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\000&\000\202\001\219\001o\000\147\000\226\001\201\000\174\001\219\001o\000s\000\030\000&\000\202\001\219\001o\000\147\000\226\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\000&\000\202\001\219\001o\000\147\000\226\000&\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\001\201\000\174\001\219\001o\000s\000\030\000\202\001\219\001o\000\147\000\174\001\219\001o\000s\000\030\000&\000\202\001\219\001o\000\147\000\006\001\219\001o\000s\000\246\000s\000\242\000\206\001\219\001o\000\201\000\218\000s\001\221\000s\000\246\000s\000\242\001\028\001\219\001o\000e\000\146\001\219\001o\000e\000S\001\201\000S\000\202\001\219\001o\000\147\000S\000&\000\202\001\219\001o\000\147\002'\001\201\002'\000\202\001\219\001o\000\147\002'\000&\000\202\001\219\001o\000\147\001\205\000e\000\153\000&\000e\000\167\001\235\000e\000&\001\235\000e\001\031\000e\001\201\000\168\001\201\001\201\000\168\000\202\001\219\001o\000\147\001\201\000\168\000&\000\202\001\219\001o\000\147\001\201\001\026\001\201\001\201\001\026\000\202\001\219\001o\000\147\001\201\001\026\000&\000\202\001\219\001o\000\147\001\201\001\024\001\201\001\201\001\024\000\202\001\219\001o\000\147\001\201\001\024\000&\000\202\001\219\001o\000\147\001\201\000\166\001\201\001\201\000\166\000\202\001\219\001o\000\147\001\201\000\166\000&\000\202\001\219\001o\000\147\001\201\000\164\001\201\001\201\000\164\000\202\001\219\001o\000\147\001\201\000\164\000&\000\202\001\219\001o\000\147\001\201\000\162\001\201\001\201\000\162\000\202\001\219\001o\000\147\001\201\000\162\000&\000\202\001\219\001o\000\147\001\201\000`\001\201\001\201\000`\000\202\001\219\001o\000\147\001\201\000`\000&\000\202\001\219\001o\000\147\001\201\000\160\001\201\001\201\000\160\000\202\001\219\001o\000\147\001\201\000\160\000&\000\202\001\219\001o\000\147\001\201\000F\001\201\001\201\000F\000\202\001\219\001o\000\147\001\201\000F\000&\000\202\001\219\001o\000\147\001\201\000D\001\201\001\201\000D\000\202\001\219\001o\000\147\001\201\000D\000&\000\202\001\219\001o\000\147\001\201\000B\001\201\001\201\000B\000\202\001\219\001o\000\147\001\201\000B\000&\000\202\001\219\001o\000\147\001\201\000f\001\201\001\201\000f\000\202\001\219\001o\000\147\001\201\000f\000&\000\202\001\219\001o\000\147\001\201\000d\001\201\001\201\000d\000\202\001\219\001o\000\147\001\201\000d\000&\000\202\001\219\001o\000\147\001\201\000$\001\201\001\201\000$\000\202\001\219\001o\000\147\001\201\000$\000&\000\202\001\219\001o\000\147\001\201\000H\001\201\001\201\000H\000\202\001\219\001o\000\147\001\201\000H\000&\000\202\001\219\001o\000\147\001\201\000\218\001\201\001\201\000\218\000\202\001\219\001o\000\147\001\201\000\218\000&\000\202\001\219\001o\000\147\001\201\000x\001\201\001\201\000x\000\202\001\219\001o\000\147\001\201\000x\000&\000\202\001\219\001o\000\147\001\201\000\196\001\201\001\201\000\196\000\202\001\219\001o\000\147\001\201\000\196\000&\000\202\001\219\001o\000\147\001\201\000L\001\201\001\201\000L\000\202\001\219\001o\000\147\001\201\000L\000&\000\202\001\219\001o\000\147\001\201\001\016\001\201\001\201\001\016\000\202\001\219\001o\000\147\001\201\001\016\000&\000\202\001\219\001o\000\147\001\201\001$\001\201\001\201\001$\000\202\001\219\001o\000\147\001\201\001$\000&\000\202\001\219\001o\000\147\001\201\001&\001\201\001\201\001&\000\202\001\219\001o\000\147\001\201\001&\000&\000\202\001\219\001o\000\147\001\201\001\002\001\201\001\201\001\002\000\202\001\219\001o\000\147\001\201\001\002\000&\000\202\001\219\001o\000\147\001\135\000\172\000s\000r\001{\000\172\000s\001\201\001\004\001\201\001\201\001\004\000\202\001\219\001o\000\147\001\201\001\004\000&\000\202\001\219\001o\000\147\000p\000v\001\201\000p\000v\000\202\001\219\001o\000\147\000p\000v\000&\000\202\001\219\001o\000\147\000e\000\240\001\149\000v\001\201\000e\000\240\001\149\000v\000\202\001\219\001o\000\147\000e\000\240\001\149\000v\000&\000\202\001\219\001o\000\147\000e\000\240\000l\000s\000.\000v\001\201\000e\000\240\000l\000s\000.\000v\000\202\001\219\001o\000\147\000e\000\240\000l\000s\000.\000v\000&\000\202\001\219\001o\000\147\000e\000\240\000\144\000s\0004\000v\001\201\000e\000\240\000\144\000s\0004\000v\000\202\001\219\001o\000\147\000e\000\240\000\144\000s\0004\000v\000&\000\202\001\219\001o\000\147\000e\000\240\000\140\000s\0002\000v\001\201\000e\000\240\000\140\000s\0002\000v\000\202\001\219\001o\000\147\000e\000\240\000\140\000s\0002\000v\000&\000\202\001\219\001o\000\147\000e\000\232\000l\000{\000.\000v\001\201\000e\000\232\000l\000{\000.\000v\000\202\001\219\001o\000\147\000e\000\232\000l\000{\000.\000v\000&\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000l\000{\000.\000v\001\201\000e\000\240\001?\000\232\000l\000{\000.\000v\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000l\000{\000.\000v\000&\000\202\001\219\001o\000\147\000e\000\232\000\144\000{\0004\000v\001\201\000e\000\232\000\144\000{\0004\000v\000\202\001\219\001o\000\147\000e\000\232\000\144\000{\0004\000v\000&\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000\144\000{\0004\000v\001\201\000e\000\240\001?\000\232\000\144\000{\0004\000v\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000\144\000{\0004\000v\000&\000\202\001\219\001o\000\147\000e\000\232\000\140\000{\0002\000v\001\201\000e\000\232\000\140\000{\0002\000v\000\202\001\219\001o\000\147\000e\000\232\000\140\000{\0002\000v\000&\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000\140\000{\0002\000v\001\201\000e\000\240\001?\000\232\000\140\000{\0002\000v\000\202\001\219\001o\000\147\000e\000\240\001?\000\232\000\140\000{\0002\000v\000&\000\202\001\219\001o\000\147\001\201\002\019\000n\000s\000\014\000s\000R\000s\000\214\000s\000l\000\020\001\027\000.\000l\000\020\000p\001\006\001\165\000.\001\145\000\159\001\201\001\201\000,\001\201\000,\000s\001\201\000,\000H\002\023\000s\000K\000Y\000l\000.\000l\0015\001\006\001-\000.\000l\0015\001\006\001-\002\027\000.\000\155\000T\001\231\001\006\001\231\000b\002\025\001\006\000\149\000\240\001\231\000b\002\025\001\006\002\025\001\006\000\149\000\240\002\025\001\018\001\237\001\187\001o\001\237\001\187\001o\000\020\001\219\001o\000A\000p\000\251\001\002\001\r\000\161\001i\000\020\001\219\001o\000X\000A\000p\000\251\001\002\001\r\000\161\001i\000\020\001\219\001o\000A\000p\000\251\000G\000\161\001i\000\020\001\219\001o\000X\000A\000p\000\251\000G\000\161\001i\000\018\000p\000W\000\222\000\170\000\170\000\200\000,\000\238\000o\000\222\000z\002\023\000\193\0002\0006\001\161\001\006\001\165\001\165\000`\001\025\001\165\000\004\001\227\000\233\001\177\000\150\001\227\000\016\000\175\000l\001\161\000.\000\152\000p\000\218\001\165\001#\000p\001\006\000\189\000\233\001o\001#\000p\001\006\000\189\000\233\001o\000,\001o\001\157\001\155\001\155\001\153\000p\000p\002\029\000p\001\006\001\227\000p\001\006\001\227\002\027\000p\001\006\000\149\000\240\001\227\000p\001\006\000\149\000\240\001\227\002\027\001G\000e\000\148\000e\000\028\000p\000\028\000l\000p\000I\000.\000<\000p\000N\000e\000<\000l\001\151\000\239\000.\000<\000l\001\019\001\151\000\239\000.\000<\000p\000N\000l\001\131\000\239\000.\000N\000l\001\019\001\131\000\239\000.\000N\000\195\000\028\000l\001\151\000.\000\028\000l\001\019\001\151\000.\000\028\000p\000\148\000c\000\148\000l\001\127\000.\000\148\000l\001\019\001\127\000.\000\148\000l\001\019\000\201\000.\000c\000l\001\019\001\129\000.\000l\001\127\000.\000l\001\019\001\127\000.\000\148\000l\000\201\001\006\000\149\000\240\001\227\000.\000\148\000l\001\019\000\201\001\006\000\149\000\240\001\227\000.\000l\000\201\001\006\000\149\000\240\001\227\000.\001\143\000\252\000\201\001\143\000\252\000\148\000c\001\143\000\252\000\028\000p\001\143\000\252\000\028\000l\000p\001\006\001\227\000.\000\201\000\252\000\201\000\201\000\252\000\148\000c\000\201\000\252\000\028\000p\000\201\000\252\000\028\000l\000p\001\006\001\227\000.\000\148\000c\000\252\000\201\000\148\000c\000\252\000\148\000c\000\148\000c\000\252\000\028\000p\000\148\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000p\000\252\000\201\000\028\000p\000\252\000\148\000c\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000l\000p\001\006\001\227\000.\000\252\000\201\000\028\000l\000p\001\006\001\227\000.\000\252\000\148\000c\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000p\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\001\141\000\252\000\197\001\141\000\252\000\148\000c\001\141\000\252\000\028\000p\001\141\000\252\000\028\000l\000p\001\006\001\227\000.\000\197\000\252\000\197\000\197\000\252\000\148\000c\000\197\000\252\000\028\000p\000\197\000\252\000\028\000l\000p\001\006\001\227\000.\000\148\000c\000\252\000\197\000\148\000c\000\252\000\148\000c\000\148\000c\000\252\000\028\000p\000\148\000c\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000p\000\252\000\197\000\028\000p\000\252\000\148\000c\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\001\006\001\227\000.\000\028\000l\000p\001\006\001\227\000.\000\252\000\197\000\028\000l\000p\001\006\001\227\000.\000\252\000\148\000c\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000p\000\028\000l\000p\001\006\001\227\000.\000\252\000\028\000l\000p\001\006\001\227\000.\001\137\0001\0001\000[\0001\000I\000\218\000s\0001\000I\002\027\000\218\000s\0001\002\029\000\218\000s\001\019\0001\000I\000\218\000s\001\019\0001\000I\002\027\000\218\000s\001\019\0001\002\029\000\218\000s\0001\001\006\000\149\000\240\001\227\000\218\000s\0001\001\006\000\149\000\240\001\227\002\027\000\218\000s\001\019\0001\001\006\000\149\000\240\001\227\000\218\000s\001\019\0001\001\006\000\149\000\240\001\227\002\027\000\218\000s\0001\001\006\000\020\001\027\000\240\001\227\000\218\000s\0001\001\006\000\020\001\027\000\240\001\227\002\027\000\218\000s\000\197\000\218\000s\000a\002\029\000\218\000s\000a\001\006\001\227\000\218\000s\000a\001\006\001\227\002\027\000\218\000s\001\019\0001\000[\000l\0001\002\029\000.\000[\000t\001\219\001o\000\179\001\139\001i\001\135\002#\000t\001o\000\179\001\139\001i\000t\000H\002\023\001o\000\179\001\139\001i\001\133\002#\000\201\000\201\002\029\000\201\001\006\001\227\000\201\001\006\001\227\002\027\000\201\001\006\000\149\000\240\001\227\000\201\001\006\000\149\000\240\001\227\002\027\000l\001\127\000.\000\201\000\201\001\006\001\227\000\201\001\006\000\149\000\240\001\227\000\201\002\029\000\201\001\006\001\227\002\027\000\201\001\006\000\149\000\240\001\227\002\027\000l\001\127\000.\0001\000[\0001\000c\001\006\001\227\000\218\000s\000\197\000\218\000s\001}\001{\001 \001}\001\"\001o\000'\001\207\000p\002\r\001i\001y\001\"\001o\000'\001\207\000p\001\006\001\253\001i\001w\001\"\001o\000'\001\207\000p\000\218\002\001\001i\001u\001\"\001o\0011\001=\001i\001s\001\"\001o\0015\001\006\001-\000\233\001i\001q\002\019\001o\001\"\001o\000A\000p\000\251\000G\000\161\001i\001m\001\"\001o\000A\000p\000\251\001\002\001\r\000\161\001i\001k\000\187\001i\000*\001g\000m\001g\000*\001e\000*\000s\001i\001e\000U\001e\002\003\001c\002\015\001a\000U\001_\000*\001]\000*\000s\001i\001]\000U\001]\000O\001]\001\149\000\247\000\241\001\149\000\247\000\241\000,\001\149\000\247\000\241\000,\000\016\000\255\001\149\000\247\000\241\000,\001[\000\201\000b\000s\000\201\000\b\000s\000b\000s\000\201\000b\000\240\000p\001\006\000\189\001o\000,\001o\001W\002\025\000,\001W\000p\001\006\000\189\001o\000,\001o\002\025\000,\000p\001\006\000\189\001o\002\025\000\238\001o\000#\000p\001\006\000\191\001o\000\183\000p\000[\001\020\001o\000\183\000p\000[\001o\000\183\000p\001\006\000\191\000\218\000s\001\020\001o\000\183\000p\001\006\000\191\000\218\000s\001o\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\001\020\001o\000\183\000p\001\006\000\020\001\027\000\240\001\227\000\218\000s\000p\001A\000\240\000p\000\018\001A\000\240\000\018\001\177\000l\001\004\000.\0003\001A\000\240\001\177\001A\000\240\000l\001\004\000.\001A\000\240\0003\001\177\001A\000\240\001\177\000?\001A\000\240\000?\000=\001A\000\240\000=\000p\001?\000\240\000p\000\018\001?\000\240\000\018\0001\001?\000\240\0001\001Q\001A\000l\001A\000.\001E\000\218\0017\001\006\001-\000\218\0017\001\006\001-\002\027\000\218\0017\002\029\000\218\0017\001\191\001=\001\006\001-\000\233\001\191\0019\001\006\001-\001\006\001-\002\027\001\191\0019\000 \001o\000W\000\224\000\200\001o\001\189\000b\0017\000\227\0017\002\019\001?\0017\000\227\0017\000l\000.\001\217\000\016\000\018\000\016\0015\000l\0015\002\031\000.\0015\000l\0015\002\029\000.\000^\001\219\001o\000\018\001\002\001A\001i\000(\001o\000o\000\224\000\200\001o\001\189\000b\001-\000\200\001o\001\189\000b\001-\002\029\000^\000\020\000T\001o\0017\000l\001-\000.\001-\002\019\001'\000l\000.\000b\001-\000l\000.\000b\001-\002\029\001-\000b\001-\001-\000b\001-\002\029\001-\002\029\000b\001-\001-\002\029\000b\001-\002\029\001-\000\004\000\141\001\217\001-\000\004\001A\000^\000\020\001\219\001o\001\177\000\243\001i\000^\000\020\001\219\001o\001\177\001\002\001-\001i\001M\000\\\000\\\000\198\000\\\000\n\000\\\000\n\000\n\000\\\001\022\001\177\000p\000l\000p\001\006\001\165\000.\001\017\000p\000p\001\025\000p\000p\001\023\000p\000p\001\021\000n\000\014\000R\000n\001\019\000\014\001\019\000R\001\019\001\029\001\029\001\017\000\"\000\"\001\015\001\227\000>\001\227\001\229\000>\001\229\001\227\000\218\001\229\001\227\000\218\000>\001\229\000\238\000>\000\238\001\227\000\218\000\238\001\227\000\218\000>\000\238\000\144\001\153\0004\000>\000\144\001\153\0004\001\227\000\218\000\144\001\153\0004\001\227\000\218\000>\000\144\001\153\0004\000\186\001\153\0004\000>\000\186\001\153\0004\001\227\000\218\000\186\001\153\0004\001\227\000\218\000>\000\186\001\153\0004\000x\001W\000\196\000x\000\196\000P\001\219\001o\0017\001i\000P\001\020\001\219\001o\0017\001i\000P\001\219\001o\001A\001i\000P\001\020\001\219\001o\001A\001i\000@\000r\001 \000\232\000l\001\171\000.\000\232\000l\001\171\000.\000v\000\232\000\140\001\171\0002\000\232\000\140\001\171\0002\000v\000\232\000\144\001\171\0004\000\232\000\144\001\171\0004\000v\000\182\001\020\000\168\001\026\001\024\000\166\000\164\000\162\000`\000\160\000F\000D\000B\000f\000d\000$\000H\000\218\000x\000\196\000L\001\016\001$\001&\001\002\001$\001\018\000,\000I\000I\002\027\002\029\001\163\001\030\000p\001\006\001\227\000\218\001\201\000\218\000\202\001\219\001o\000\147\000\218\000&\000\202\001\219\001o\000\147\000\218\001-\000\218\000\201\000\218\000s\000I\001\026\001\023\001\024\001\023\001\006\002\025\001\006\002\025\002\027\002\029\000N\000<\000p\001\006\000l\0017\001\006\001-\000.\000l\0017\001\006\001-\002\027\000.\000l\0017\002\029\000.\000l\0017\000.\000l\000\012\001o\001\201\000.\000l\000\012\001o\000\202\001\219\001o\000\147\000.\000l\000\012\001o\000&\000\202\001\219\001o\000\147\000.\000l\000\012\001o\001\201\001\006\001-\000.\000l\000\012\001o\000\202\001\219\001o\000\147\001\006\001-\000.\000l\000\012\001o\000&\000\202\001\219\001o\000\147\001\006\001-\000.\000l\000\012\001o\001\201\001\006\001-\001\000\001-\000.\000l\000\012\001o\000\202\001\219\001o\000\147\001\006\001-\001\000\001-\000.\000l\000\012\001o\000&\000\202\001\219\001o\000\147\001\006\001-\001\000\001-\000.\000l\000\012\001o\001\201\001\000\001-\000.\000l\000\012\001o\000\202\001\219\001o\000\147\001\000\001-\000.\000l\000\012\001o\000&\000\202\001\219\001o\000\147\001\000\001-\000.\000C\0009\000:\001\177\001o\001\006\001\165\0009\000\016\001o\001\006\001\165\002!\000\222\001\235\000\222\001\227\000\222\000s\000\222\001A\000\222\001?\000\222\0017\000\222\001-\000\222\001'\000\222\000\201\000\222\000/\000\222\000\201\001\004\000\201\000\201\002\019\000\199\000\201\001\030\0001\000\201\001\018\000\201\000\165\000\216\001\219\001o\000\201\000c\001\235\000\201\001\235\000l\000\020\001\027\000.\000c\001\235\000l\000\020\000p\001\006\001\165\000.\000c\001\031\000\201\000\146\001\219\001o\000c\000\197\001\004\000\201\000\197\002\019\000\199\000\197\001\030\0001\000\197\001\018\000\201\000\163\000p\000\016\000W\001\006\000o\001\006\001\227\000<\000\201\000<\000\201\000\b\000s\001\227\000\149\000\240\001\227\002%\000\149\000\240\002%\000\136\002\023\002\021\0002\000\212\001\219\001o\0001\001\006\000\191\000\233\000\218\001\015\001i\000>\000>\000\n\000>\000\n\000\n\000>\0000\000u\000e\000\004\000u\001\165\001$\001\165\000\175\001$\001\165\001\183\001\185\000\173\001\185\001\183\001\213\001\185\001\215\000\171\001\185\000\171\001\215\001\183\001\185\000\169\001\185\000\167\000\252\001\201\000\167\000\252\000\202\001\219\001o\000\147\000\167\000\252\000&\000\202\001\219\001o\000\147\000\167\000\252\000\148\000e\000\167\000\252\000\028\000p\000\167\000\252\000\028\000l\000p\000I\000.\001\201\000\252\001\201\001\201\000\252\000\202\001\219\001o\000\147\001\201\000\252\000&\000\202\001\219\001o\000\147\001\201\000\252\000\148\000e\001\201\000\252\000\028\000p\001\201\000\252\000\028\000l\000p\000I\000.\000\202\001\219\001o\000\147\000\252\001\201\000\202\001\219\001o\000\147\000\252\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\000\252\000&\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\000\252\000\148\000e\000\202\001\219\001o\000\147\000\252\000\028\000p\000\202\001\219\001o\000\147\000\252\000\028\000l\000p\000I\000.\000&\000\202\001\219\001o\000\147\000\252\001\201\000&\000\202\001\219\001o\000\147\000\252\000\202\001\219\001o\000\147\000&\000\202\001\219\001o\000\147\000\252\000&\000\202\001\219\001o\000\147\000&\000\202\001\219\001o\000\147\000\252\000\148\000e\000&\000\202\001\219\001o\000\147\000\252\000\028\000p\000&\000\202\001\219\001o\000\147\000\252\000\028\000l\000p\000I\000.\000\148\000e\000\252\001\201\000\148\000e\000\252\000\202\001\219\001o\000\147\000\148\000e\000\252\000&\000\202\001\219\001o\000\147\000\148\000e\000\252\000\148\000e\000\148\000e\000\252\000\028\000p\000\148\000e\000\252\000\028\000l\000p\000I\000.\000\028\000p\000\252\001\201\000\028\000p\000\252\000\202\001\219\001o\000\147\000\028\000p\000\252\000&\000\202\001\219\001o\000\147\000\028\000p\000\252\000\148\000e\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\000I\000.\000\028\000l\000p\000I\000.\000\252\001\201\000\028\000l\000p\000I\000.\000\252\000\202\001\219\001o\000\147\000\028\000l\000p\000I\000.\000\252\000&\000\202\001\219\001o\000\147\000\028\000l\000p\000I\000.\000\252\000\148\000e\000\028\000l\000p\000I\000.\000\252\000\028\000p\000\028\000l\000p\000I\000.\000\252\000\028\000l\000p\000I\000.\001\143\001\143\000\252\000\238\000\201\000\252\000\238\000\148\000c\000\252\000\238\000\028\000p\000\252\000\238\000\028\000l\000p\001\006\001\227\000.\000\252\000\238\001\141\001\141\000\252\000\238\000\197\000\252\000\238\000\148\000c\000\252\000\238\000\028\000p\000\252\000\238\000\028\000l\000p\001\006\001\227\000.\000\252\000\238\000\161\000\248\001\227\000\218\001\227\001\199\000\159\001\199\001\247\000\157\001\247\001\191\000\155\001\191\001\147\000\153\001\147\001\031\000\151\001\031\000:\001\177\000l\000:\001\177\001\006\001\165\000.\000\149\000:\001\177\000\149\000l\000:\001\177\001\006\001\165\000.\001Y\001\018\001Y\000\147\001\018\001Y\002%\000\145\001$\002%\001\245\000\143\001\"\001\245\000!\000\141\001\"\000!\000}\000\139\001\018\000}\001\227\000\137\000\252\001\227\000\225\000\135\000\252\000\225\000C\000\133\000\252\000C\002\025\000\233\000\198\002\025\000\233\000\131\000$\002\025\000\233\000\131\000$\000\198\002\025\000\233\002\025\000p\001\006\002\025\000\129\000$\002\025\000\129\000$\000p\001\006\002\025\000\127\000\252\001\227\000\127\000\252\000:\001\177\001\006\001\165\000\127\000\252\000\016\001\006\001\165\001\227\000\252\001\227\001\227\000\252\000:\001\177\001\006\001\165\001\227\000\252\000\016\001\006\001\165\000:\001\177\001\006\001\165\000\252\001\227\000:\001\177\001\006\001\165\000\252\000:\001\177\001\006\001\165\000:\001\177\001\006\001\165\000\252\000\016\001\006\001\165\000\016\001\006\001\165\000\252\001\227\000\016\001\006\001\165\000\252\000:\001\177\001\006\001\165\000\016\001\006\001\165\000\252\000\016\001\006\001\165\000Q\001\227\001\201\001\201\000,\000\202\001\219\001o\000\147\000\202\001\219\001o\000\147\000,\000&\000\202\001\219\001o\000\147\000&\000\202\001\219\001o\000\147\000,\001\201\000,\000{\000\202\001\219\001o\000\147\000,\000{\000&\000\202\001\219\001o\000\147\000,\000{\000p\000\245\000p\000\245\000,\000p\000\245\000,\000y\000\201\000\201\000,\000\201\000,\000w\001\149\000\237\000\245\001\149\000\237\000\245\000,\001\149\000\237\000\245\000,\000u\001\195\000\202\001\219\001o\000\147\000&\000\202\001\219\001o\000\147\000\216\001\219\001o\001\237\001\187\001o\001i\000\233\001g\001\167\001i\001\209\001\159\000)\000\185\001\179\001m\001\181\001k\000\020\001\219\001o\000A\000E\000B\000\183\000\169\001i\000\020\001\219\001o\000X\000A\000E\000B\000\183\000\169\001i\000q\000^\001\219\001o\0013\001;\001i\000^\001\219\001o\0013\000\218\001?\000\235\001i\001/\000^\001\219\001o\0000\0015\001\006\001-\000\233\001i\001q\001+\001)\001\007\001\b\001\219\001o\000'\001\207\000p\001\006\001\253\001i\001w\001\251\001\173\001\219\001o\001-\001i\000\233\000i\0007\000f\000\178\000f\000\180\000F\000\178\000F\000\180\000+\000f\000\154\000f\000\208\000F\000\154\000F\000\208\000\144\001[\0004\000\186\001[\0004\000\140\000w\0002\000\132\000w\001\014\000\132\001\014\000\130\000w\000\254\000\130\000\254\000\184\000\165\000.\000\234\001\201\000\194\000\234\000\202\001\219\001o\000\147\000\194\000\234\000&\000\202\001\219\001o\000\147\000\194\000\230\000e\000l\000s\000.\000l\000s\000I\000.\000l\000s\000I\002\027\000.\000e\000\240\000l\000s\000.\000e\000\240\000\144\000s\0004\000e\000\240\000\140\000s\0002\000e\000\232\000l\000{\000.\000e\000\240\001?\000\232\000l\000{\000.\000e\000\232\000\144\000{\0004\000e\000\240\001?\000\232\000\144\000{\0004\000e\000\232\000\140\000{\0002\000e\000\240\001?\000\232\000\140\000{\0002\001\012\001\219\001o\000s\000\224\001\012\001\219\001o\000\224\000Z\001\219\001o\002\t\000l\000^\001\219\001o\0017\000.\000l\000^\001\219\001o\0017\001\006\001-\000.\000V\001\219\001o\002\007\001a\000\224\000/\001\235\001\031\000@\000e\001\020\000e\000\142\000y\000\192\000\142\000\192\000e\000\240\001\149\000e\000\236\001\149\001?\000\240\000l\000s\000.\001?\000\240\000\142\000y\000\192\000e\000\188\000p\000e\000\176\000p\000e\000\182\000e\001\217\000\016\001?\000\240\000l\000.\000\144\000\177\0004\000\186\000\177\0004\001?\000\240\000\144\000\177\0004\000\132\000{\001\014\000\132\001\014\001?\000\240\000\132\000{\001\014\001?\000\240\000\132\001\014\000\140\000{\0002\001?\000\240\000\140\001\201\000\157\0002\001?\000\240\000\140\000\202\001\219\001o\000\147\000\157\0002\001?\000\240\000\140\000&\000\202\001\219\001o\000\147\000\157\0002\001?\000\240\000\132\001\201\000\157\001\014\001?\000\240\000\132\000\202\001\219\001o\000\147\000\157\001\014\001?\000\240\000\132\000&\000\202\001\219\001o\000\147\000\157\001\014\001?\000\240\000\130\001\201\000\157\000\254\001?\000\240\000\130\000\202\001\219\001o\000\147\000\157\000\254\001?\000\240\000\130\000&\000\202\001\219\001o\000\147\000\157\000\254\001?\000\240\000\140\000{\0002\001?\000\240\000\140\0002\001?\000\240\000l\000^\001\219\001o\0017\001\006\001-\000.\000\184\000\167\000.\000\130\000{\000\254\000\130\000\254\001?\000\240\000\130\000{\000\254\001?\000\240\000\130\000\254\001\241\000\140\001\201\000\157\0002\000\140\000\202\001\219\001o\000\147\000\157\0002\000\140\000&\000\202\001\219\001o\000\147\000\157\0002\000\132\001\201\000\157\001\014\000\132\000\202\001\219\001o\000\147\000\157\001\014\000\132\000&\000\202\001\219\001o\000\147\000\157\001\014\000\130\001\201\000\157\000\254\000\130\000\202\001\219\001o\000\147\000\157\000\254\000\130\000&\000\202\001\219\001o\000\147\000\157\000\254\0001\000a\000l\000\201\000.\000g\000l\000^\001\219\001o\0015\000.\000l\000^\001\219\001o\0015\001\006\001-\000.\000\016\000i\000\238\000i\001\235\001\031\000\188\000E\000\176\000E\001?\000\240\000g\001?\000\240\000\140\0002\001?\000\240\000l\000.\001?\000\240\000l\000\201\000.\001\217\000l\000\201\001\006\001\227\000.\000k\000p\000\018\001\"\001\030\001\028\001\012\001\b\000\248\000\246\000\242\000\228\000\226\000\224\000\216\000\212\000\210\000\206\000\204\000\202\000\200\000\174\000\172\000\170\000\158\000\156\000\146\000t\000n\000j\000h\000^\000\\\000Z\000X\000V\000T\000P\000L\000>\0000\000(\000 \000\030\000\026\000\024\000\022\000\020\000\012\000\n\000\b\000\006\000\004\000q\000\216\001\219\001o\001\237\000\218\001\235\001o\001i\000\218\000s\001\197\000\253\000\218\001\203\000\229\000l\000\149\000\240\001\227\000.\000b\000Y\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000\229\000K\000b\000Y\000\229\000K\002\029\000b\000Y\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\000Y\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000\229\001\019\000K\000b\000Y\000\229\001\019\000K\002\029\000b\000Y\000p\001\006\000l\000\149\000\240\001\227\000.\000b\000Y\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000p\001\006\000K\000b\000Y\000p\001\006\000K\002\029\000b\000Y\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\000Y\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000p\001\006\001\019\000K\000b\000Y\000p\001\006\001\019\000K\002\029\000b\000Y\000l\000\149\000\240\001\227\000.\000b\000Y\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\000K\000b\000Y\000K\002\029\000b\000Y\001\019\000l\000\149\000\240\001\227\000.\000b\000Y\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000Y\001\019\000K\000b\000Y\001\019\000K\002\029\000b\000Y\000\229\000l\000\149\000\240\001\227\000.\000b\000K\000\229\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000\229\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000\229\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000\229\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000\229\000K\000b\000K\000\229\000K\000b\000K\002\029\000\229\000K\000b\001\019\000K\000\229\000K\000b\001\019\000K\002\029\000\229\000K\002\029\000b\000K\000\229\000K\002\029\000b\000K\002\029\000\229\000K\002\029\000b\001\019\000K\000\229\000K\002\029\000b\001\019\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000\229\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000\229\001\019\000K\000b\000K\000\229\001\019\000K\000b\000K\002\029\000\229\001\019\000K\000b\001\019\000K\000\229\001\019\000K\000b\001\019\000K\002\029\000\229\001\019\000K\002\029\000b\000K\000\229\001\019\000K\002\029\000b\000K\002\029\000\229\001\019\000K\002\029\000b\001\019\000K\000\229\001\019\000K\002\029\000b\001\019\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\000b\000K\000p\001\006\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000p\001\006\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000p\001\006\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000p\001\006\000K\000b\000K\000p\001\006\000K\000b\000K\002\029\000p\001\006\000K\000b\001\019\000K\000p\001\006\000K\000b\001\019\000K\002\029\000p\001\006\000K\002\029\000b\000K\000p\001\006\000K\002\029\000b\000K\002\029\000p\001\006\000K\002\029\000b\001\019\000K\000p\001\006\000K\002\029\000b\001\019\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000p\001\006\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000p\001\006\001\019\000K\000b\000K\000p\001\006\001\019\000K\000b\000K\002\029\000p\001\006\001\019\000K\000b\001\019\000K\000p\001\006\001\019\000K\000b\001\019\000K\002\029\000p\001\006\001\019\000K\002\029\000b\000K\000p\001\006\001\019\000K\002\029\000b\000K\002\029\000p\001\006\001\019\000K\002\029\000b\001\019\000K\000p\001\006\001\019\000K\002\029\000b\001\019\000K\002\029\000l\000\149\000\240\001\227\000.\000b\000K\000l\000\149\000\240\001\227\000.\000b\000K\002\029\000l\000\149\000\240\001\227\000.\000b\001\019\000K\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\000l\000\149\000\240\001\227\000.\002\029\000b\000K\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\000K\000b\000K\000K\000b\000K\002\029\000K\000b\001\019\000K\000K\000b\001\019\000K\002\029\000K\002\029\000b\000K\000K\002\029\000b\000K\002\029\000K\002\029\000b\001\019\000K\000K\002\029\000b\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\000K\001\019\000l\000\149\000\240\001\227\000.\000b\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\001\019\000l\000\149\000\240\001\227\000.\000b\001\019\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\000K\002\029\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\001\019\000l\000\149\000\240\001\227\000.\002\029\000b\001\019\000K\002\029\001\019\000K\000b\000K\001\019\000K\000b\000K\002\029\001\019\000K\000b\001\019\000K\001\019\000K\000b\001\019\000K\002\029\001\019\000K\002\029\000b\000K\001\019\000K\002\029\000b\000K\002\029\001\019\000K\002\029\000b\001\019\000K\001\019\000K\002\029\000b\001\019\000K\002\029\000p\001\006\002\025\000$\000\129\000b\000Y\000p\001\006\002\025\000$\000\129\002\029\000b\000Y\000p\001\006\001\019\002\025\000$\000\129\000b\000Y\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\000Y\000p\001\006\002\025\000$\000\129\000b\000K\000p\001\006\002\025\000$\000\129\000b\000K\002\029\000p\001\006\002\025\000$\000\129\000b\001\019\000K\000p\001\006\002\025\000$\000\129\000b\001\019\000K\002\029\000p\001\006\002\025\000$\000\129\002\029\000b\000K\000p\001\006\002\025\000$\000\129\002\029\000b\000K\002\029\000p\001\006\002\025\000$\000\129\002\029\000b\001\019\000K\000p\001\006\002\025\000$\000\129\002\029\000b\001\019\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\000b\000K\000p\001\006\001\019\002\025\000$\000\129\000b\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\000b\001\019\000K\000p\001\006\001\019\002\025\000$\000\129\000b\001\019\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\000K\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\000K\002\029\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\001\019\000K\000p\001\006\001\019\002\025\000$\000\129\002\029\000b\001\019\000K\002\029\000p\001\006\002\025\000$\000\129\001e\000s\001i\001e\001\135\001\167\001i\001\209\001\159\000\185\000)\001\179\001m\000\020\001\219\001o\000A\000E\000B\000\183\000\171\001i\000\020\001\219\001o\000X\000A\000E\000B\000\183\000\171\001i\000]\000^\001\219\001o\0011\001=\001i\000^\001\219\001o\0000\0011\001=\001i\001s\001+\001\t\001\b\001\219\001o\000'\001\207\000p\002\r\001i\001y\001\251\001\173\001\219\001o\0017\001i\000f\000d\001\031\000T\001\003\000\145\001o\001\031\001o\000\188\001\177\000\188\001\177\000\"\000\188\001\177\000\154\000\188\001\177\000/\000\188\001\177\001?\000\188\001\177\000\210\000\188\001\177\000\024\000\176\001\177\000\176\001\177\000\"\000\176\001\177\000\154\000\176\001\177\000/\000\176\001\177\001?\000\176\001\177\000\210\000\176\001\177\000\024\000s\001i\000*\001_\000*\000O\000*\000\222\002\025\002\025\000$\000\129\001\006\001\227\001\006\001\227\001\000\001\227\001\000\001\227\000\218\001\r\001I\0009\000:\001\177\001o\0009\000\016\001o\000C\000l\000\135\000.\000p\000\176\000p\001K\000F\000f\001\020\000F\001\020\001\020\000F\000f\001\020\001\020\000f\000\164\000@\000\178\000\180\001]\000\222\000s\001i\001]\000\222\000l\001\005\000.\000p\0003\001C\001o\000%\000p\001\006\001\227\001o\001%\000p\000\218\000s\001\020\001o\001%\000p\000\218\000s\001o\001%\000p\000I\000\218\000s\001\020\001o\001%\000p\000I\000\218\000s\000\154\001\n\000\"\000\208\000\012\001\219\001o\0001\001\006\000\191\000\233\001i\000\n\000\n\000\\\000\n\000\n\000\\\000\n\000>\000\n\000\n\000>\000\020\000A\001\149\000\031\002%\000\161\000\020\000A\001\149\001\002\002%\000^\001?\000\218\001A\000^\001?\001\002\001A\000^\000\020\001'\000\218\001-\000^\000\020\001'\001\002\001-\000\218\000\218\000>"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\022\000\030\000%\000)\000*\000+\000-\000/\0001\0002\0003\0005\0009\000:\000<\000@\000B\000E\000J\000M\000O\000P\000V\000[\000\\\000_\000`\000d\000e\000h\000k\000q\000x\000z\000|\000}\000\130\000\136\000\139\000\142\000\146\000\150\000\152\000\153\000\155\000\159\000\161\000\164\000\166\000\167\000\170\000\175\000\175\000\178\000\178\000\182\000\189\000\196\000\200\000\202\000\203\000\204\000\208\000\209\000\214\000\216\000\222\000\229\000\232\000\233\000\237\000\242\000\247\000\248\000\252\001\001\001\004\001\015\001\016\001\018\001\020\001\025\001\031\001\"\001'\001/\0018\001=\001E\001N\001S\001[\001d\001h\001o\001w\001~\001\136\001\147\001\155\001\166\001\178\001\180\001\185\001\191\001\192\001\193\001\195\001\197\001\198\001\199\001\200\001\203\001\204\001\205\001\210\001\213\001\214\001\217\001\219\001\222\001\226\001\231\001\234\001\235\001\236\001\237\001\239\001\240\001\241\001\242\001\245\001\251\001\254\002\002\002\007\002\011\002\r\002\017\002\023\002\028\002#\002$\002%\002%\002'\002+\002,\0021\0025\0026\002:\002:\002=\002D\002L\002P\002Q\002R\002Z\002c\002j\002r\002x\002~\002\132\002\141\002\151\002\159\002\170\002\182\002\193\002\207\002\222\002\234\002\249\003\t\003\015\003\024\003\"\003)\0034\0038\003<\003>\003C\003I\003K\003P\003V\003W\003Y\003[\003\\\003^\003a\003c\003f\003l\003s\003v\003|\003\131\003\134\003\140\003\147\003\150\003\156\003\163\003\166\003\172\003\179\003\182\003\188\003\195\003\198\003\204\003\211\003\214\003\220\003\227\003\230\003\236\003\243\003\246\003\252\004\003\004\006\004\012\004\019\004\022\004\028\004#\004&\004,\0043\0046\004<\004C\004F\004L\004S\004V\004\\\004c\004f\004l\004s\004v\004|\004\131\004\134\004\140\004\147\004\150\004\156\004\163\004\166\004\172\004\179\004\182\004\188\004\195\004\198\004\204\004\211\004\214\004\218\004\221\004\227\004\234\004\237\004\243\004\250\004\255\005\007\005\016\005\023\005!\005,\0053\005=\005H\005O\005Y\005d\005k\005u\005\128\005\137\005\149\005\162\005\169\005\179\005\190\005\199\005\211\005\224\005\231\005\241\005\252\006\005\006\017\006\030\006 \006\"\006$\006&\006(\006,\0062\0063\0064\0065\0067\006:\006?\006@\006A\006C\006H\006N\006O\006O\006Q\006U\006[\006]\006a\006e\006h\006r\006}\006\134\006\144\006\145\006\146\006\148\006\149\006\151\006\151\006\153\006\155\006\159\006\160\006\161\006\163\006\166\006\170\006\171\006\173\006\174\006\175\006\178\006\182\006\188\006\196\006\197\006\198\006\200\006\201\006\203\006\206\006\210\006\215\006\221\006\222\006\223\006\225\006\227\006\232\006\234\006\236\006\241\006\247\006\249\006\254\007\004\007\006\007\n\007\015\007\017\007\019\007\023\007\028\007!\007\"\007&\007)\007-\0075\007>\007E\007H\007L\007P\007X\007[\007_\007c\007k\007o\007t\007y\007\130\007\134\007\139\007\144\007\153\007\161\007\170\007\179\007\192\007\195\007\199\007\203\007\211\007\214\007\218\007\222\007\230\007\234\007\239\007\244\007\253\b\001\b\006\b\011\b\020\b\028\b%\b.\b;\b<\b=\b?\bC\bH\bL\bQ\bW\b\\\bc\bk\bs\b|\b\132\b\141\b\144\b\148\b\153\b\159\b\162\b\167\b\173\b\175\b\180\b\187\b\189\b\190\b\192\b\195\b\199\b\204\b\210\b\213\b\214\b\217\b\222\b\224\b\228\b\234\b\237\b\239\b\240\b\245\b\248\b\249\b\252\b\252\t\004\t\004\t\r\t\r\t\022\t\022\t\028\t\028\t$\t$\t&\t&\t/\t/\t9\t9\t;\t;\t=\t?\t?\tA\tE\tG\tG\tI\tI\tK\tK\tM\tM\tO\tS\tU\tW\tZ\t^\td\ti\tl\tq\tt\t{\t~\t\132\t\134\t\138\t\139\t\140\t\145\t\149\t\154\t\161\t\169\t\179\t\190\t\191\t\194\t\195\t\198\t\199\t\202\t\203\t\206\t\211\t\214\t\215\t\218\t\219\t\222\t\223\t\226\t\227\t\230\t\231\t\234\t\235\t\238\t\239\t\243\t\244\t\246\t\250\t\255\n\002\n\004\n\007\n\t\n\011\n\014\n\016\n\020\n\025\n\026\n\028\n\029\n\031\n\"\n#\n$\n%\n&\n'\n+\n,\n0\n7\n;\n@\nF\nK\nN\nP\nQ\nU\nZ\n]\na\ne\nj\nm\nn\nq\nx\n\128\n\129\n\129\n\130\n\130\n\131\n\132\n\132\n\133\n\134\n\136\n\138\n\140\n\141\n\146\n\147\n\148\n\150\n\151\n\153\n\154\n\156\n\157\n\158\n\159\n\161\n\163\n\165\n\166\n\168\n\169\n\171\n\172\n\174\n\175\n\177\n\180\n\184\n\185\n\187\n\190\n\194\n\197\n\201\n\206\n\212\n\215\n\219\n\224\n\230\n\233\n\235\n\240\n\246\n\251\011\001\011\002\011\003\011\004\011\b\011\r\011\017\011\022\011\026\011\031\011 \011!\011\"\011#\011$\011%\011&\011'\011(\011)\011*\011+\011,\011-\011.\011/\0110\0111\0112\0113\0114\0115\0116\0117\0118\0119\0119\0119\011:\011:\011;\011;\011<\011>\011?\011?\011@\011@\011B\011B\011D\011D\011F\011K\011Q\011Q\011S\011S\011U\011U\011W\011W\011X\011X\011Z\011Z\011\\\011^\011a\011b\011b\011c\011f\011k\011q\011u\011x\011}\011\133\011\142\011\149\011\159\011\170\011\179\011\191\011\204\011\211\011\221\011\232\011\233\011\239\011\244\011\246\011\248\011\250\011\252\011\254\012\000\012\002\012\004\012\006\012\b\012\n\012\r\012\015\012\016\012\019\012\022\012\023\012\027\012\028\012\030\012$\012,\012.\0122\0125\0127\0128\012;\012>\012?\012@\012A\012B\012D\012F\012H\012L\012M\012P\012Q\012T\012X\012b\012b\012c\012c\012d\012e\012g\012i\012i\012j\012k\012n\012q\012t\012u\012v\012x\012y\012z\012{\012|\012~\012\128\012\129\012\130\012\132\012\135\012\141\012\148\012\152\012\156\012\163\012\166\012\172\012\179\012\183\012\187\012\194\012\200\012\209\012\219\012\226\012\233\012\243\012\250\r\004\r\015\r\023\r\031\r*\r.\r5\r=\rB\rG\rO\rS\rZ\rb\rg\rl\rt\r{\r\133\r\144\r\152\r\160\r\171\r\172\r\175\r\178\r\182\r\186\r\194\r\195\r\198\r\201\r\205\r\209\r\217\r\217\r\222\r\223\r\225\r\226\r\228\r\229\r\231\r\232\r\234\r\235\r\237\r\239\r\245\r\248\r\255\014\000\014\002\014\005\014\006\014\t\014\n\014\r\014\014\014\017\014\018\014\021\014\022\014\025\014\026\014\029\014\030\014!\014#\014&\014*\014/\0140\0143\0146\014;\014>\014D\014I\014L\014R\014W\014]\014f\014n\014s\014{\014\130\014\131\014\132\014\133\014\135\014\139\014\144\014\149\014\155\014\158\014\164\014\171\014\173\014\176\014\180\014\181\014\183\014\186\014\189\014\193\014\198\014\199\014\203\014\208\014\215\014\217\014\219\014\220\014\221\014\222\014\223\014\225\014\227\014\236\014\246\014\247\014\253\015\005\015\006\015\016\015\017\015\018\015\019\015\029\015\030\015$\015%\015&\015(\015*\015,\015.\015/\0151\0153\0155\0157\015:\015=\015@\015C\015E\015H\015J\015M\015P\015V\015]\015_\015b\015f\015k\015p\015u\015z\015\127\015\134\015\139\015\146\015\151\015\158\015\163\015\167\015\171\015\177\015\185\015\191\015\192\015\193\015\194\015\196\015\198\015\201\015\203\015\206\015\209\015\214\015\219\015\222\015\225\015\228\015\229\015\230\015\234\015\237\015\240\015\245\015\248\015\250\015\255\016\003\016\006\016\012\016\021\016\031\016%\016.\0168\016>\016G\016Q\016V\016Z\016d\016g\016j\016l\016q\016u\016v\016z\016\129\016\137\016\141\016\148\016\156\016\160\016\167\016\175\016\176\016\177\016\180\016\181\016\187\016\195\016\196\016\199\016\200\016\201\016\203\016\205\016\208\016\212\016\216\016\221\016\222\016\227\016\228\016\229\016\230\016\231\016\232\016\233\016\234\016\235\016\236\016\237\016\238\016\239\016\240\016\241\016\242\016\243\016\244\016\245\016\246\016\247\016\248\016\249\016\250\016\251\016\252\016\253\016\254\016\255\017\000\017\001\017\002\017\003\017\004\017\005\017\006\017\007\017\b\017\t\017\n\017\011\017\012\017\r\017\014\017\015\017\016\017\017\017\018\017\019\017\020\017\021\017\022\017\023\017\024\017\025\017!\017#\017'\017/\0178\017<\017A\017J\017T\017Y\017_\017h\017r\017w\017}\017\135\017\146\017\152\017\159\017\166\017\174\017\177\017\181\017\189\017\198\017\202\017\207\017\215\017\224\017\233\017\243\017\252\018\006\018\016\018\027\018\031\018$\018)\018/\0184\018:\018@\018G\018P\018Z\018d\018o\018y\018\132\018\143\018\155\018\160\018\166\018\172\018\179\018\185\018\192\018\199\018\207\018\216\018\226\018\236\018\247\019\001\019\012\019\023\019#\019(\019.\0194\019;\019A\019H\019O\019W\019a\019l\019w\019\131\019\142\019\154\019\166\019\179\019\185\019\192\019\199\019\207\019\214\019\222\019\230\019\239\019\246\019\254\020\006\020\015\020\023\020 \020)\0203\0206\020:\020>\020C\020G\020L\020Q\020W\020_\020h\020q\020{\020\132\020\142\020\152\020\163\020\167\020\172\020\177\020\183\020\188\020\194\020\200\020\207\020\214\020\222\020\230\020\239\020\246\020\254\021\006\021\015\021\023\021 \021)\0213\021;\021D\021M\021W\021`\021j\021t\021\127\021\132\021\133\021\136\021\137\021\139\021\140\021\141\021\142\021\143\021\145\021\154\021\164\021\165\021\171\021\179\021\180\021\181\021\190\021\191\021\196\021\197\021\198\021\203\021\205\021\207\021\210\021\213\021\216\021\219\021\222\021\225\021\227\021\230\021\233\021\236\021\239\021\242\021\245\021\248\021\250\021\252\021\253\021\254\022\001\022\003\022\007\022\t\022\t\022\011\022\012\022\016\022\019\022\019\022\020\022\023\022\025\022\026\022\027\022\027\022\028\022\029\022\030\022 \022\"\022$\022&\022'\022(\022)\022*\022,\0220\0223\0224\0225\0226\022;\022@\022F\022L\022S\022T\022U\022V\022W\022_\022_\022`\022a\022c\022e\022f\022h\022j\022p\022u\022y\022}\022\130\022\135\022\136\022\138")) + ((16, "\001\177\001\171\000\227\000\225\000\223\000\221\000\219\000\217\000\215\000\213\000\211\000\209\000\207\000M\0005\000F\000D\001\195\002%\001\030\000:\001\179\002%\001\030\000l\000:\001\179\001\006\001\167\000.\002%\001\030\000l\000\016\001\006\001\167\000.\001\"\001u\001\141\001o\001U\001\241\001\026\001\025\001\024\001\027\001\227\000E\002\027\000E\000l\000\129\000.\000E\000;\002\027\000;\000l\000\129\000.\000;\000\188\001\251\002\027\000\188\001\251\000l\000\129\000.\000\188\001\251\001G\000\240\001\225\000:\001\179\000\016\000l\000:\001\179\001\006\001\167\000.\000l\000\016\001\006\001\167\000.\000l\000\020\001\006\001\167\000.\000_\000_\000\240\002\025\000\195\000\138\002\025\002\023\0002\002\001\000\204\001u\002\r\001\135\000\172\002\019\000t\000P\001u\001E\000\172\002\019\000t\000P\001\020\001u\001E\000\172\002\019\002\019\002\021\002\001\000\155\001\219\000\158\001u\002\019\000\253\001o\000\158\001\020\001u\002\019\000\253\001o\000\012\000-\001o\000h\001[\001o\000\248\001u\001\235\001o\000\156\001u\000u\001o\001\169\001o\001\211\000\218\002\019\001\006\001\255\000\218\002\019\001\147\002\015\001\147\000b\002\019\001\147\002\r\001M\000l\000\205\000.\000l\000\205\001\006\001\229\000.\000l\001\229\000.\000\158\001u\002\003\001o\000\012\001u\001%\000p\001\006\001\229\001o\000h\001u\000\183\000p\001\006\000\193\001o\000\248\001u\001\235\001o\001\169\001o\001\211\001\251\000\140\000\139\0002\001\251\001\219\000V\001u\002\007\001i\000\224\002\003\002\021\000t\000P\001u\001E\000\172\002\003\000t\000P\001\020\001u\001E\000\172\002\003\000l\002\019\000.\002\011\000\140\000\139\0002\002\011\000l\002\019\001\006\001\255\000.\000V\001u\002\t\001g\000\224\002\003\000\233\000K\000b\001\255\000p\001\006\000K\000b\001\255\000K\000b\001\255\001\b\000\020\001\221\001u\000'\001\209\000p\000\218\002\003\001o\001{\001Y\000\206\000\145\000\b\001\203\000\b\000\202\001\221\001u\000\149\000\b\000&\000\202\001\221\001u\000\149\001u\000\205\001\245\001u\000n\000\205\000\172\001\203\001u\000n\000\205\000\172\000\202\001\221\001u\000\149\001u\000n\000\205\000\172\000&\000\202\001\221\001u\000\149\001u\000\014\000\205\000\172\001\203\001u\000\014\000\205\000\172\000\202\001\221\001u\000\149\001u\000\014\000\205\000\172\000&\000\202\001\221\001u\000\149\001u\000R\000\205\000\172\001\203\001u\000R\000\205\000\172\000\202\001\221\001u\000\149\001u\000R\000\205\000\172\000&\000\202\001\221\001u\000\149\000\218\001\203\001\223\001\203\000\218\001\203\001\223\000\202\001\221\001u\000\149\000\218\001\203\001\223\000&\000\202\001\221\001u\000\149\000\218\000\202\001\221\001u\000\149\001\223\001\203\000\218\000\202\001\221\001u\000\149\001\223\000\202\001\221\001u\000\149\000\218\000\202\001\221\001u\000\149\001\223\000&\000\202\001\221\001u\000\149\000\218\000&\000\202\001\221\001u\000\149\001\223\001\203\000\218\000&\000\202\001\221\001u\000\149\001\223\000\202\001\221\001u\000\149\000\218\000&\000\202\001\221\001u\000\149\001\223\000&\000\202\001\221\001u\000\149\000\172\001\203\000\172\000\202\001\221\001u\000\149\000\172\000&\000\202\001\221\001u\000\149\000+\0007\000\140\0002\000l\000.\000\210\000\024\000\018\000l\001\004\000.\001\241\001E\001E\000\240\000l\001\004\000.\000l\001\004\000.\001\241\001\229\000\218\001\229\002\027\000\239\000\198\002\027\000\239\000\133\000$\002\027\000\239\000\133\000$\000\198\002\027\000\239\000\144\001\155\0004\001\018\000\175\002%\001\229\002\021\001\015\001\213\001\225\000l\001\229\000.\000l\000^\001\221\001u\0013\000.\000\140\000Q\0002\000\140\001\018\000\141\0002\000\140\000\127\001\018\000\141\0002\000\128\001\005\000\141\0002\000\128\0002\000~\001\005\000\141\0002\000~\001\005\000\141\000\196\000\153\0002\000\184\002\027\000$\000\131\000.\000\184\000p\001\006\002\027\000$\000\131\000.\000\026\000\228\000H\002\025\000|\002\025\000\195\0002\0008\001\018\001\239\000\218\001\237\001u\001\239\000\218\001\237\001u\001\219\000\134\002\025\002\023\0002\000\140\000\135\0002\000\204\001\221\001u\001\199\000\237\000b\001\205\000&\000\204\001\221\001u\001\199\000\237\000b\001\205\000\202\001\221\001u\000\149\001\197\000g\000t\000^\001\221\001u\0019\001C\000\172\000u\000t\000\216\001\221\001u\001\239\001\189\001u\000\172\000u\000t\000P\001\221\001u\001=\000\172\000u\000t\000P\001\020\001\221\001u\001=\000\172\000u\000j\001\221\001u\000u\000\004\000\149\000\022\001\221\001u\000u\000\004\000\149\000J\001\221\001u\000u\000\004\001\203\000J\001\221\001u\000u\000\004\000\202\001\221\001u\000\149\000J\001\221\001u\000u\000\004\000&\000\202\001\221\001u\000\149\000\174\001\221\001u\000u\000\030\001\203\000\226\001\203\000\174\001\221\001u\000u\000\030\001\203\000\226\000\202\001\221\001u\000\149\000\174\001\221\001u\000u\000\030\001\203\000\226\000&\000\202\001\221\001u\000\149\000\174\001\221\001u\000u\000\030\000\202\001\221\001u\000\149\000\226\001\203\000\174\001\221\001u\000u\000\030\000\202\001\221\001u\000\149\000\226\000\202\001\221\001u\000\149\000\174\001\221\001u\000u\000\030\000\202\001\221\001u\000\149\000\226\000&\000\202\001\221\001u\000\149\000\174\001\221\001u\000u\000\030\000&\000\202\001\221\001u\000\149\000\226\001\203\000\174\001\221\001u\000u\000\030\000&\000\202\001\221\001u\000\149\000\226\000\202\001\221\001u\000\149\000\174\001\221\001u\000u\000\030\000&\000\202\001\221\001u\000\149\000\226\000&\000\202\001\221\001u\000\149\000\174\001\221\001u\000u\000\030\001\203\000\174\001\221\001u\000u\000\030\000\202\001\221\001u\000\149\000\174\001\221\001u\000u\000\030\000&\000\202\001\221\001u\000\149\000\006\001\221\001u\000u\000\246\000u\000\242\000\206\001\221\001u\000\205\000\218\000u\001\223\000u\000\246\000u\000\242\001\028\001\221\001u\000g\000\146\001\221\001u\000g\000S\001\203\000S\000\202\001\221\001u\000\149\000S\000&\000\202\001\221\001u\000\149\002'\001\203\002'\000\202\001\221\001u\000\149\002'\000&\000\202\001\221\001u\000\149\001\207\000g\000\155\000&\000g\000\169\001\237\000g\000&\001\237\000g\001#\000g\001\203\000\168\001\203\001\203\000\168\000\202\001\221\001u\000\149\001\203\000\168\000&\000\202\001\221\001u\000\149\001\203\001\026\001\203\001\203\001\026\000\202\001\221\001u\000\149\001\203\001\026\000&\000\202\001\221\001u\000\149\001\203\001\024\001\203\001\203\001\024\000\202\001\221\001u\000\149\001\203\001\024\000&\000\202\001\221\001u\000\149\001\203\000\166\001\203\001\203\000\166\000\202\001\221\001u\000\149\001\203\000\166\000&\000\202\001\221\001u\000\149\001\203\000\164\001\203\001\203\000\164\000\202\001\221\001u\000\149\001\203\000\164\000&\000\202\001\221\001u\000\149\001\203\000\162\001\203\001\203\000\162\000\202\001\221\001u\000\149\001\203\000\162\000&\000\202\001\221\001u\000\149\001\203\000`\001\203\001\203\000`\000\202\001\221\001u\000\149\001\203\000`\000&\000\202\001\221\001u\000\149\001\203\000\160\001\203\001\203\000\160\000\202\001\221\001u\000\149\001\203\000\160\000&\000\202\001\221\001u\000\149\001\203\000F\001\203\001\203\000F\000\202\001\221\001u\000\149\001\203\000F\000&\000\202\001\221\001u\000\149\001\203\000D\001\203\001\203\000D\000\202\001\221\001u\000\149\001\203\000D\000&\000\202\001\221\001u\000\149\001\203\000B\001\203\001\203\000B\000\202\001\221\001u\000\149\001\203\000B\000&\000\202\001\221\001u\000\149\001\203\000f\001\203\001\203\000f\000\202\001\221\001u\000\149\001\203\000f\000&\000\202\001\221\001u\000\149\001\203\000d\001\203\001\203\000d\000\202\001\221\001u\000\149\001\203\000d\000&\000\202\001\221\001u\000\149\001\203\000$\001\203\001\203\000$\000\202\001\221\001u\000\149\001\203\000$\000&\000\202\001\221\001u\000\149\001\203\000H\001\203\001\203\000H\000\202\001\221\001u\000\149\001\203\000H\000&\000\202\001\221\001u\000\149\001\203\000\218\001\203\001\203\000\218\000\202\001\221\001u\000\149\001\203\000\218\000&\000\202\001\221\001u\000\149\001\203\000x\001\203\001\203\000x\000\202\001\221\001u\000\149\001\203\000x\000&\000\202\001\221\001u\000\149\001\203\000\196\001\203\001\203\000\196\000\202\001\221\001u\000\149\001\203\000\196\000&\000\202\001\221\001u\000\149\001\203\000L\001\203\001\203\000L\000\202\001\221\001u\000\149\001\203\000L\000&\000\202\001\221\001u\000\149\001\203\001\016\001\203\001\203\001\016\000\202\001\221\001u\000\149\001\203\001\016\000&\000\202\001\221\001u\000\149\001\203\001$\001\203\001\203\001$\000\202\001\221\001u\000\149\001\203\001$\000&\000\202\001\221\001u\000\149\001\203\001&\001\203\001\203\001&\000\202\001\221\001u\000\149\001\203\001&\000&\000\202\001\221\001u\000\149\001\203\001\002\001\203\001\203\001\002\000\202\001\221\001u\000\149\001\203\001\002\000&\000\202\001\221\001u\000\149\001\137\000\172\000u\000r\001\129\000\172\000u\001\203\001\004\001\203\001\203\001\004\000\202\001\221\001u\000\149\001\203\001\004\000&\000\202\001\221\001u\000\149\000p\000v\001\203\000p\000v\000\202\001\221\001u\000\149\000p\000v\000&\000\202\001\221\001u\000\149\000g\000\240\001\151\000v\001\203\000g\000\240\001\151\000v\000\202\001\221\001u\000\149\000g\000\240\001\151\000v\000&\000\202\001\221\001u\000\149\000g\000\240\000l\000u\000.\000v\001\203\000g\000\240\000l\000u\000.\000v\000\202\001\221\001u\000\149\000g\000\240\000l\000u\000.\000v\000&\000\202\001\221\001u\000\149\000g\000\240\000\144\000u\0004\000v\001\203\000g\000\240\000\144\000u\0004\000v\000\202\001\221\001u\000\149\000g\000\240\000\144\000u\0004\000v\000&\000\202\001\221\001u\000\149\000g\000\240\000\140\000u\0002\000v\001\203\000g\000\240\000\140\000u\0002\000v\000\202\001\221\001u\000\149\000g\000\240\000\140\000u\0002\000v\000&\000\202\001\221\001u\000\149\000g\000\232\000l\000}\000.\000v\001\203\000g\000\232\000l\000}\000.\000v\000\202\001\221\001u\000\149\000g\000\232\000l\000}\000.\000v\000&\000\202\001\221\001u\000\149\000g\000\240\001E\000\232\000l\000}\000.\000v\001\203\000g\000\240\001E\000\232\000l\000}\000.\000v\000\202\001\221\001u\000\149\000g\000\240\001E\000\232\000l\000}\000.\000v\000&\000\202\001\221\001u\000\149\000g\000\232\000\144\000}\0004\000v\001\203\000g\000\232\000\144\000}\0004\000v\000\202\001\221\001u\000\149\000g\000\232\000\144\000}\0004\000v\000&\000\202\001\221\001u\000\149\000g\000\240\001E\000\232\000\144\000}\0004\000v\001\203\000g\000\240\001E\000\232\000\144\000}\0004\000v\000\202\001\221\001u\000\149\000g\000\240\001E\000\232\000\144\000}\0004\000v\000&\000\202\001\221\001u\000\149\000g\000\232\000\140\000}\0002\000v\001\203\000g\000\232\000\140\000}\0002\000v\000\202\001\221\001u\000\149\000g\000\232\000\140\000}\0002\000v\000&\000\202\001\221\001u\000\149\000g\000\240\001E\000\232\000\140\000}\0002\000v\001\203\000g\000\240\001E\000\232\000\140\000}\0002\000v\000\202\001\221\001u\000\149\000g\000\240\001E\000\232\000\140\000}\0002\000v\000&\000\202\001\221\001u\000\149\001\203\002\021\000n\000u\000\014\000u\000R\000u\000\214\000u\000l\000\020\001\031\000.\000l\000\020\000p\001\006\001\167\000.\001\147\000\161\001\203\001\203\000,\001\203\000,\000u\001\203\000,\000H\002\025\000u\000K\000Y\000l\000.\000l\001;\001\006\0013\000.\000l\001;\001\006\0011\002\031\000.\000\157\000T\001\233\001\006\001\233\000b\002\027\001\006\000\151\000\240\001\233\000b\002\027\001\006\002\027\001\006\000\151\000\240\002\027\001\018\001\239\001\189\001u\001\239\001\189\001u\000\020\001\221\001u\000A\000p\000\255\001\002\001\017\000\163\001o\000\020\001\221\001u\000X\000A\000p\000\255\001\002\001\017\000\163\001o\000\020\001\221\001u\000A\000p\000\255\000G\000\163\001o\000\020\001\221\001u\000X\000A\000p\000\255\000G\000\163\001o\000\018\000p\000W\000\222\000\170\000\170\000\200\000,\000\238\000q\000\222\000z\002\025\000\195\0002\0006\001\163\001\006\001\167\001\167\000`\001\029\001\167\000\004\001\229\000\239\001\179\000\150\001\229\000\016\000\177\000l\001\163\000.\000\152\000p\000\218\001\167\001'\000p\001\006\000\191\000\239\001u\001'\000p\001\006\000\191\000\239\001u\000,\001u\001\159\001\157\001\157\001\155\000p\000\235\001\023\000p\000\235\001M\000g\000\148\000g\000\028\000p\000\028\000l\000p\000I\000.\000<\000p\000N\000g\000<\000l\001\153\000\243\000.\000<\000p\000N\000l\001\133\000\243\000.\000N\000\199\000\028\000l\001\153\000.\000\028\000p\000\148\000c\000c\001\145\000\252\000\205\001\145\000\252\000\148\000e\001\145\000\252\000\028\000p\001\145\000\252\000\028\000l\000p\001\006\001\229\000.\000\205\000\252\000\205\000\205\000\252\000\148\000e\000\205\000\252\000\028\000p\000\205\000\252\000\028\000l\000p\001\006\001\229\000.\000\148\000e\000\252\000\205\000\148\000e\000\252\000\148\000e\000\148\000e\000\252\000\028\000p\000\148\000e\000\252\000\028\000l\000p\001\006\001\229\000.\000\028\000p\000\252\000\205\000\028\000p\000\252\000\148\000e\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\001\006\001\229\000.\000\028\000l\000p\001\006\001\229\000.\000\252\000\205\000\028\000l\000p\001\006\001\229\000.\000\252\000\148\000e\000\028\000l\000p\001\006\001\229\000.\000\252\000\028\000p\000\028\000l\000p\001\006\001\229\000.\000\252\000\028\000l\000p\001\006\001\229\000.\001\143\000\252\000\201\001\143\000\252\000\148\000e\001\143\000\252\000\028\000p\001\143\000\252\000\028\000l\000p\001\006\001\229\000.\000\201\000\252\000\201\000\201\000\252\000\148\000e\000\201\000\252\000\028\000p\000\201\000\252\000\028\000l\000p\001\006\001\229\000.\000\148\000e\000\252\000\201\000\148\000e\000\252\000\148\000e\000\148\000e\000\252\000\028\000p\000\148\000e\000\252\000\028\000l\000p\001\006\001\229\000.\000\028\000p\000\252\000\201\000\028\000p\000\252\000\148\000e\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\001\006\001\229\000.\000\028\000l\000p\001\006\001\229\000.\000\252\000\201\000\028\000l\000p\001\006\001\229\000.\000\252\000\148\000e\000\028\000l\000p\001\006\001\229\000.\000\252\000\028\000p\000\028\000l\000p\001\006\001\229\000.\000\252\000\028\000l\000p\001\006\001\229\000.\001\139\0001\0001\000[\001\023\0001\000[\000l\0001\002\031\000.\000[\0001\001\006\001\229\000\218\000u\0001\001\006\000K\002\031\000\218\000u\0001\001\006\001\229\001\000\001\229\000\218\000u\0001\001\006\001\229\001\000\000K\002\031\000\218\000u\0001\001\000\001\229\000\218\000u\0001\001\000\000K\002\031\000\218\000u\0001\002\031\000\218\000u\001\023\0001\001\006\001\229\000\218\000u\001\023\0001\001\006\000K\002\031\000\218\000u\001\023\0001\001\006\001\229\001\000\001\229\000\218\000u\001\023\0001\001\006\001\229\001\000\000K\002\031\000\218\000u\001\023\0001\001\000\001\229\000\218\000u\001\023\0001\001\000\000K\002\031\000\218\000u\001\023\0001\002\031\000\218\000u\000l\0001\002\031\000.\001\006\001\229\000\218\000u\000l\0001\002\031\000.\001\006\000K\002\031\000\218\000u\000l\0001\002\031\000.\001\006\001\229\001\000\001\229\000\218\000u\000l\0001\002\031\000.\001\006\001\229\001\000\000K\002\031\000\218\000u\000l\0001\002\031\000.\001\000\001\229\000\218\000u\000l\0001\002\031\000.\001\000\000K\002\031\000\218\000u\000l\0001\002\031\000.\002\031\000\218\000u\0001\001\006\000\151\000\240\001\229\000\218\000u\0001\001\006\000\151\000\240\000K\002\031\000\218\000u\001\023\0001\001\006\000\151\000\240\001\229\000\218\000u\001\023\0001\001\006\000\151\000\240\000K\002\031\000\218\000u\000l\0001\002\031\000.\001\006\000\151\000\240\001\229\000\218\000u\000l\0001\002\031\000.\001\006\000\151\000\240\000K\002\031\000\218\000u\0001\001\006\000\020\001\031\000\240\001\229\000\218\000u\001\023\0001\001\006\000\020\001\031\000\240\001\229\000\218\000u\000l\0001\002\031\000.\001\006\000\020\001\031\000\240\001\229\000\218\000u\0001\001\006\000\020\001\031\000\240\000K\002\031\000\218\000u\001\023\0001\001\006\000\020\001\031\000\240\000K\002\031\000\218\000u\000l\0001\002\031\000.\001\006\000\020\001\031\000\240\000K\002\031\000\218\000u\000\201\000\218\000u\000a\002\031\000\218\000u\000a\001\006\001\229\000\218\000u\000a\001\006\000K\002\031\000\218\000u\000t\001\221\001u\000\181\001\141\001o\001\137\002#\000t\001u\000\181\001\141\001o\000t\000H\002\025\001u\000\181\001\141\001o\001\135\002#\000\205\000\235\001\023\000\205\000\235\0001\000[\0001\000e\001\006\001\229\000\218\000u\000\201\000\218\000u\001\131\001\129\001 \001\131\001\"\001u\000'\001\209\000p\002\015\001o\001\127\001\"\001u\000'\001\209\000p\001\006\001\255\001o\001}\001\"\001u\000'\001\209\000p\000\218\002\003\001o\001{\001\"\001u\0019\001C\001o\001y\001\"\001u\001;\001\006\0013\000\239\001o\001w\002\021\001u\001\"\001u\000A\000p\000\255\000G\000\163\001o\001s\001\"\001u\000A\000p\000\255\001\002\001\017\000\163\001o\001q\000\189\001o\000*\001m\000o\001m\000*\001k\000*\000u\001o\001k\000U\001k\002\005\001i\002\017\001g\000U\001e\000*\001c\000*\000u\001o\001c\000U\001c\000O\001c\001\151\000\251\000\245\001\151\000\251\000\245\000,\001\151\000\251\000\245\000,\000\016\001\003\001\151\000\251\000\245\000,\001a\000\205\000b\000u\000\205\000\b\000u\000b\000u\000\205\000b\000\240\000p\001\006\000\191\001u\000,\001u\001]\002\027\000,\001]\000p\001\006\000\191\001u\000,\001u\002\027\000,\000p\001\006\000\191\001u\002\027\000\238\001u\000#\000p\001\006\000\193\001u\000\185\000p\000[\001\020\001u\000\185\000p\000[\001u\000\185\000p\001\006\000\193\000\218\000u\001\020\001u\000\185\000p\001\006\000\193\000\218\000u\001u\000\185\000p\001\006\000\020\001\031\000\240\001\229\000\218\000u\001\020\001u\000\185\000p\001\006\000\020\001\031\000\240\001\229\000\218\000u\000p\001G\000\240\000p\000\018\001G\000\240\000\018\001\179\000l\001\004\000.\0003\001G\000\240\001\179\001G\000\240\000l\001\004\000.\001G\000\240\0003\001\179\001G\000\240\001\179\000?\001G\000\240\000?\000=\001G\000\240\000=\000p\001E\000\240\000p\000\018\001E\000\240\000\018\0001\001E\000\240\0001\001W\001G\000l\001G\000.\001K\000\218\001=\001\006\0013\000\218\001=\001\006\0011\002\031\000\218\001=\002\031\000\218\001=\001\193\001C\001\006\0013\000\239\001\193\001?\001\006\0013\001\006\0011\002\031\001\193\001?\000 \001u\000W\000\224\000\200\001u\001\191\000b\001=\000\231\001=\002\021\001E\001=\000\231\001=\000l\000.\001\219\000\016\000\018\000\016\001;\000l\001;\002\031\000.\001;\000l\001;\002\029\000.\000^\001\221\001u\000\018\001\002\001G\001o\0011\000\200\001u\001\191\000b\0013\000\200\001u\001\191\000b\0011\002\031\001\191\000b\0013\001\191\000b\0011\002\031\000^\000\020\000T\001u\001=\0013\002\021\0013\000b\0013\0013\000b\0011\002\031\0011\002\031\000b\0013\0011\002\031\000b\0011\002\031\0013\000\004\000\143\001\219\0013\000\004\001G\000(\001u\000q\000\224\000l\0013\000.\001+\000^\000\020\001\221\001u\001\179\000\247\001o\000^\000\020\001\221\001u\001\179\001\002\0013\001o\001S\000\\\000\\\000\198\000\\\000\n\000\\\000\n\000\n\000\\\001\022\001\179\000p\000l\000p\001\006\001\167\000.\001\021\000p\000p\001\029\000p\000p\001\027\000p\000p\001\025\000n\000\014\000R\000n\001\023\000\014\001\023\000R\001\023\001!\001!\001\021\000\"\000\"\001\019\001\229\000>\001\229\001\231\000>\001\231\001\229\000\218\001\231\001\229\000\218\000>\001\231\000\238\000>\000\238\001\229\000\218\000\238\001\229\000\218\000>\000\238\000\144\001\155\0004\000>\000\144\001\155\0004\001\229\000\218\000\144\001\155\0004\001\229\000\218\000>\000\144\001\155\0004\000\186\001\155\0004\000>\000\186\001\155\0004\001\229\000\218\000\186\001\155\0004\001\229\000\218\000>\000\186\001\155\0004\000x\001]\000\196\000x\000\196\000P\001\221\001u\001=\001o\000P\001\020\001\221\001u\001=\001o\000P\001\221\001u\001G\001o\000P\001\020\001\221\001u\001G\001o\000@\000r\001 \000\232\000l\001\173\000.\000\232\000l\001\173\000.\000v\000\232\000\140\001\173\0002\000\232\000\140\001\173\0002\000v\000\232\000\144\001\173\0004\000\232\000\144\001\173\0004\000v\000\182\001\020\000\168\001\026\001\024\000\166\000\164\000\162\000`\000\160\000F\000D\000B\000f\000d\000$\000H\000\218\000x\000\196\000L\001\016\001$\001&\001\002\001$\001\018\000,\001\006\001\229\001\006\000K\002\031\001\006\001\229\001\000\001\229\001\006\001\229\001\000\000K\002\031\001\000\001\229\001\000\000K\002\031\002\031\001\165\001\030\000p\001\006\001\229\000\218\001\203\000\218\000\202\001\221\001u\000\149\000\218\000&\000\202\001\221\001u\000\149\000\218\0013\000\218\000\205\000\218\000u\000I\002\029\001\006\002\027\002\031\002\031\001\006\000K\002\031\001\006\000\151\000\240\000K\002\031\001\006\000\193\000N\000<\000p\001\006\000l\001=\001\006\0013\000.\000l\001=\001\006\0011\002\031\000.\000l\001=\002\031\000.\000l\001=\000.\000l\000\012\001u\001\203\000.\000l\000\012\001u\000\202\001\221\001u\000\149\000.\000l\000\012\001u\000&\000\202\001\221\001u\000\149\000.\000l\000\012\001u\001\203\001\006\0013\000.\000l\000\012\001u\000\202\001\221\001u\000\149\001\006\0013\000.\000l\000\012\001u\000&\000\202\001\221\001u\000\149\001\006\0013\000.\000l\000\012\001u\001\203\001\006\0013\001\000\0013\000.\000l\000\012\001u\000\202\001\221\001u\000\149\001\006\0013\001\000\0013\000.\000l\000\012\001u\000&\000\202\001\221\001u\000\149\001\006\0013\001\000\0013\000.\000l\000\012\001u\001\203\001\000\0013\000.\000l\000\012\001u\000\202\001\221\001u\000\149\001\000\0013\000.\000l\000\012\001u\000&\000\202\001\221\001u\000\149\001\000\0013\000.\000C\0009\000:\001\179\001u\001\006\001\167\0009\000\016\001u\001\006\001\167\002!\000\222\001\237\000\222\001\229\000\222\000u\000\222\001G\000\222\001E\000\222\001=\000\222\0013\000\222\001+\000\222\000\205\000\222\000/\000\222\000\205\001\004\000\205\000\205\002\021\000\203\000\205\001\030\0001\000\205\001\018\000\205\000\167\000\216\001\221\001u\000\205\000e\001\237\000\205\001\237\000l\000\020\001\031\000.\000e\001\237\000l\000\020\000p\001\006\001\167\000.\000e\001#\000\205\000\146\001\221\001u\000e\000\201\001\004\000\205\000\201\002\021\000\203\000\201\001\030\0001\000\201\001\018\000\205\000\165\000p\000\016\001\023\000\205\000\235\000\205\001\006\000K\002\031\000\205\001\006\000\151\000\240\000K\002\031\000\205\002\031\000\205\001\006\000\151\000\240\001\229\000W\001\006\000q\001\006\001\229\000<\000\205\000<\000\205\000\b\000u\001\229\000\151\000\240\001\229\002%\000\151\000\240\002%\000\136\002\025\002\023\0002\000\212\001\221\001u\0001\001\006\000\193\000\239\000\218\001\019\001o\000>\000>\000\n\000>\000\n\000\n\000>\0000\000w\000g\000\004\000w\001\167\001$\001\167\000\177\001$\001\167\001\185\001\187\000\175\001\187\001\185\001\215\001\187\001\217\000\173\001\187\000\173\001\217\001\185\001\187\000\171\001\187\000\169\000\252\001\203\000\169\000\252\000\202\001\221\001u\000\149\000\169\000\252\000&\000\202\001\221\001u\000\149\000\169\000\252\000\148\000g\000\169\000\252\000\028\000p\000\169\000\252\000\028\000l\000p\000I\000.\001\203\000\252\001\203\001\203\000\252\000\202\001\221\001u\000\149\001\203\000\252\000&\000\202\001\221\001u\000\149\001\203\000\252\000\148\000g\001\203\000\252\000\028\000p\001\203\000\252\000\028\000l\000p\000I\000.\000\202\001\221\001u\000\149\000\252\001\203\000\202\001\221\001u\000\149\000\252\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\000\252\000&\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\000\252\000\148\000g\000\202\001\221\001u\000\149\000\252\000\028\000p\000\202\001\221\001u\000\149\000\252\000\028\000l\000p\000I\000.\000&\000\202\001\221\001u\000\149\000\252\001\203\000&\000\202\001\221\001u\000\149\000\252\000\202\001\221\001u\000\149\000&\000\202\001\221\001u\000\149\000\252\000&\000\202\001\221\001u\000\149\000&\000\202\001\221\001u\000\149\000\252\000\148\000g\000&\000\202\001\221\001u\000\149\000\252\000\028\000p\000&\000\202\001\221\001u\000\149\000\252\000\028\000l\000p\000I\000.\000\148\000g\000\252\001\203\000\148\000g\000\252\000\202\001\221\001u\000\149\000\148\000g\000\252\000&\000\202\001\221\001u\000\149\000\148\000g\000\252\000\148\000g\000\148\000g\000\252\000\028\000p\000\148\000g\000\252\000\028\000l\000p\000I\000.\000\028\000p\000\252\001\203\000\028\000p\000\252\000\202\001\221\001u\000\149\000\028\000p\000\252\000&\000\202\001\221\001u\000\149\000\028\000p\000\252\000\148\000g\000\028\000p\000\252\000\028\000p\000\028\000p\000\252\000\028\000l\000p\000I\000.\000\028\000l\000p\000I\000.\000\252\001\203\000\028\000l\000p\000I\000.\000\252\000\202\001\221\001u\000\149\000\028\000l\000p\000I\000.\000\252\000&\000\202\001\221\001u\000\149\000\028\000l\000p\000I\000.\000\252\000\148\000g\000\028\000l\000p\000I\000.\000\252\000\028\000p\000\028\000l\000p\000I\000.\000\252\000\028\000l\000p\000I\000.\001\145\001\145\000\252\000\238\000\205\000\252\000\238\000\148\000e\000\252\000\238\000\028\000p\000\252\000\238\000\028\000l\000p\001\006\001\229\000.\000\252\000\238\001\143\001\143\000\252\000\238\000\201\000\252\000\238\000\148\000e\000\252\000\238\000\028\000p\000\252\000\238\000\028\000l\000p\001\006\001\229\000.\000\252\000\238\000\163\000\248\001\229\000\218\001\229\001\201\000\161\001\201\001\249\000\159\001\249\001\193\000\157\001\193\001\149\000\155\001\149\001#\000\153\001#\000:\001\179\000l\000:\001\179\001\006\001\167\000.\000\151\000:\001\179\000\151\000l\000:\001\179\001\006\001\167\000.\001_\001\018\001_\000\149\001\018\001_\002%\000\147\001$\002%\001\247\000\145\001\"\001\247\000!\000\143\001\"\000!\000\127\000\141\001\018\000\127\001\229\000\139\000\252\001\229\000\229\000\137\000\252\000\229\000C\000\135\000\252\000C\002\027\000\239\000\198\002\027\000\239\000\133\000$\002\027\000\239\000\133\000$\000\198\002\027\000\239\002\027\000p\001\006\002\027\000\131\000$\002\027\000\131\000$\000p\001\006\002\027\000\129\000\252\001\229\000\129\000\252\000:\001\179\001\006\001\167\000\129\000\252\000\016\001\006\001\167\001\229\000\252\001\229\001\229\000\252\000:\001\179\001\006\001\167\001\229\000\252\000\016\001\006\001\167\000:\001\179\001\006\001\167\000\252\001\229\000:\001\179\001\006\001\167\000\252\000:\001\179\001\006\001\167\000:\001\179\001\006\001\167\000\252\000\016\001\006\001\167\000\016\001\006\001\167\000\252\001\229\000\016\001\006\001\167\000\252\000:\001\179\001\006\001\167\000\016\001\006\001\167\000\252\000\016\001\006\001\167\000Q\001\229\001\203\001\203\000,\000\202\001\221\001u\000\149\000\202\001\221\001u\000\149\000,\000&\000\202\001\221\001u\000\149\000&\000\202\001\221\001u\000\149\000,\001\203\000,\000}\000\202\001\221\001u\000\149\000,\000}\000&\000\202\001\221\001u\000\149\000,\000}\000p\000\249\000p\000\249\000,\000p\000\249\000,\000{\000\205\000\205\000,\000\205\000,\000y\001\151\000\241\000\249\001\151\000\241\000\249\000,\001\151\000\241\000\249\000,\000w\001\197\000\202\001\221\001u\000\149\000&\000\202\001\221\001u\000\149\000\216\001\221\001u\001\239\001\189\001u\001o\000\239\001m\001\169\001o\001\211\001\161\000)\000\187\001\181\001s\001\183\001q\000\020\001\221\001u\000A\000E\000B\000\185\000\171\001o\000\020\001\221\001u\000X\000A\000E\000B\000\185\000\171\001o\000s\000^\001\221\001u\0017\001A\001o\000^\001\221\001u\0017\000\218\001E\000\239\001o\0015\000^\001\221\001u\0000\001;\001\006\0013\000\239\001o\001w\001/\001-\001\011\001\b\001\221\001u\000'\001\209\000p\001\006\001\255\001o\001}\001\253\001\175\001\221\001u\0013\001o\000\239\000k\0007\000f\000\178\000f\000\180\000F\000\178\000F\000\180\000+\000f\000\154\000f\000\208\000F\000\154\000F\000\208\000\144\001a\0004\000\186\001a\0004\000\140\000y\0002\000\132\000y\001\014\000\132\001\014\000\130\000y\000\254\000\130\000\254\000\184\000\167\000.\000\234\001\203\000\194\000\234\000\202\001\221\001u\000\149\000\194\000\234\000&\000\202\001\221\001u\000\149\000\194\000\230\000g\000l\000u\000.\000l\000u\001\006\001\229\000.\000l\000u\001\006\000K\002\031\000.\000l\000u\001\006\001\229\001\000\001\229\000.\000l\000u\001\006\001\229\001\000\000K\002\031\000.\000l\000u\001\000\001\229\000.\000l\000u\001\000\000K\002\031\000.\000g\000\240\000l\000u\000.\000g\000\240\000\144\000u\0004\000g\000\240\000\140\000u\0002\000g\000\232\000l\000}\000.\000g\000\240\001E\000\232\000l\000}\000.\000g\000\232\000\144\000}\0004\000g\000\240\001E\000\232\000\144\000}\0004\000g\000\232\000\140\000}\0002\000g\000\240\001E\000\232\000\140\000}\0002\001\012\001\221\001u\000u\000\224\001\012\001\221\001u\000\224\000Z\001\221\001u\002\011\000l\000^\001\221\001u\001=\000.\000l\000^\001\221\001u\001=\001\006\0013\000.\000V\001\221\001u\002\t\001g\000\224\000/\001\237\001#\000@\000g\001\020\000g\000\142\000{\000\192\000\142\000\192\000g\000\240\001\151\000g\000\236\001\151\001E\000\240\000l\000u\000.\001E\000\240\000\142\000{\000\192\000g\000\188\000p\000g\000\176\000p\000g\000\182\000g\001\219\000\016\001E\000\240\000l\000.\000\144\000\179\0004\000\186\000\179\0004\001E\000\240\000\144\000\179\0004\000\132\000}\001\014\000\132\001\014\001E\000\240\000\132\000}\001\014\001E\000\240\000\132\001\014\000\140\000}\0002\001E\000\240\000\140\001\203\000\159\0002\001E\000\240\000\140\000\202\001\221\001u\000\149\000\159\0002\001E\000\240\000\140\000&\000\202\001\221\001u\000\149\000\159\0002\001E\000\240\000\132\001\203\000\159\001\014\001E\000\240\000\132\000\202\001\221\001u\000\149\000\159\001\014\001E\000\240\000\132\000&\000\202\001\221\001u\000\149\000\159\001\014\001E\000\240\000\130\001\203\000\159\000\254\001E\000\240\000\130\000\202\001\221\001u\000\149\000\159\000\254\001E\000\240\000\130\000&\000\202\001\221\001u\000\149\000\159\000\254\001E\000\240\000\140\000}\0002\001E\000\240\000\140\0002\001E\000\240\000l\000^\001\221\001u\001=\001\006\0013\000.\000\184\000\169\000.\000\130\000}\000\254\000\130\000\254\001E\000\240\000\130\000}\000\254\001E\000\240\000\130\000\254\001\243\000\140\001\203\000\159\0002\000\140\000\202\001\221\001u\000\149\000\159\0002\000\140\000&\000\202\001\221\001u\000\149\000\159\0002\000\132\001\203\000\159\001\014\000\132\000\202\001\221\001u\000\149\000\159\001\014\000\132\000&\000\202\001\221\001u\000\149\000\159\001\014\000\130\001\203\000\159\000\254\000\130\000\202\001\221\001u\000\149\000\159\000\254\000\130\000&\000\202\001\221\001u\000\149\000\159\000\254\0001\000a\000e\000l\000\197\000.\000l\000\205\000.\000i\000l\000^\001\221\001u\001;\000.\000l\000^\001\221\001u\001;\001\006\0013\000.\000\016\000k\000\238\000k\001\237\001#\000\188\000E\000\176\000E\001E\000\240\000i\001E\000\240\000\140\0002\001E\000\240\000l\000.\001E\000\240\000l\000\205\000.\001\219\000l\000\205\001\006\001\229\000.\000m\000p\000\018\001\"\001\030\001\028\001\012\001\b\000\248\000\246\000\242\000\228\000\226\000\224\000\216\000\212\000\210\000\206\000\204\000\202\000\200\000\174\000\172\000\170\000\158\000\156\000\146\000t\000n\000j\000h\000^\000\\\000Z\000X\000V\000T\000P\000L\000>\0000\000(\000 \000\030\000\026\000\024\000\022\000\020\000\012\000\n\000\b\000\006\000\004\000s\000\216\001\221\001u\001\239\000\218\001\237\001u\001o\000\218\000u\001\199\001\001\000\218\001\205\000\233\000l\000\151\000\240\001\229\000.\000b\000Y\000\233\000l\000\151\000\240\001\229\000.\002\031\000b\000Y\000\233\000K\000b\000Y\000\233\000K\002\031\000b\000Y\000\233\001\023\000l\000\151\000\240\001\229\000.\000b\000Y\000\233\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\000Y\000\233\001\023\000K\000b\000Y\000\233\001\023\000K\002\031\000b\000Y\000p\001\006\000l\000\151\000\240\001\229\000.\000b\000Y\000p\001\006\000l\000\151\000\240\001\229\000.\002\031\000b\000Y\000p\001\006\000K\000b\000Y\000p\001\006\000K\002\031\000b\000Y\000p\001\006\001\023\000l\000\151\000\240\001\229\000.\000b\000Y\000p\001\006\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\000Y\000p\001\006\001\023\000K\000b\000Y\000p\001\006\001\023\000K\002\031\000b\000Y\000l\000\151\000\240\001\229\000.\000b\000Y\000l\000\151\000\240\001\229\000.\002\031\000b\000Y\000K\000b\000Y\000K\002\031\000b\000Y\001\023\000l\000\151\000\240\001\229\000.\000b\000Y\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\000Y\001\023\000K\000b\000Y\001\023\000K\002\031\000b\000Y\000\233\000l\000\151\000\240\001\229\000.\000b\000K\000\233\000l\000\151\000\240\001\229\000.\000b\000K\002\031\000\233\000l\000\151\000\240\001\229\000.\000b\001\023\000K\000\233\000l\000\151\000\240\001\229\000.\000b\001\023\000K\002\031\000\233\000l\000\151\000\240\001\229\000.\002\031\000b\000K\000\233\000l\000\151\000\240\001\229\000.\002\031\000b\000K\002\031\000\233\000l\000\151\000\240\001\229\000.\002\031\000b\001\023\000K\000\233\000l\000\151\000\240\001\229\000.\002\031\000b\001\023\000K\002\031\000\233\000K\000b\000K\000\233\000K\000b\000K\002\031\000\233\000K\000b\001\023\000K\000\233\000K\000b\001\023\000K\002\031\000\233\000K\002\031\000b\000K\000\233\000K\002\031\000b\000K\002\031\000\233\000K\002\031\000b\001\023\000K\000\233\000K\002\031\000b\001\023\000K\002\031\000\233\001\023\000l\000\151\000\240\001\229\000.\000b\000K\000\233\001\023\000l\000\151\000\240\001\229\000.\000b\000K\002\031\000\233\001\023\000l\000\151\000\240\001\229\000.\000b\001\023\000K\000\233\001\023\000l\000\151\000\240\001\229\000.\000b\001\023\000K\002\031\000\233\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\000K\000\233\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\000K\002\031\000\233\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\001\023\000K\000\233\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\001\023\000K\002\031\000\233\001\023\000K\000b\000K\000\233\001\023\000K\000b\000K\002\031\000\233\001\023\000K\000b\001\023\000K\000\233\001\023\000K\000b\001\023\000K\002\031\000\233\001\023\000K\002\031\000b\000K\000\233\001\023\000K\002\031\000b\000K\002\031\000\233\001\023\000K\002\031\000b\001\023\000K\000\233\001\023\000K\002\031\000b\001\023\000K\002\031\000p\001\006\000l\000\151\000\240\001\229\000.\000b\000K\000p\001\006\000l\000\151\000\240\001\229\000.\000b\000K\002\031\000p\001\006\000l\000\151\000\240\001\229\000.\000b\001\023\000K\000p\001\006\000l\000\151\000\240\001\229\000.\000b\001\023\000K\002\031\000p\001\006\000l\000\151\000\240\001\229\000.\002\031\000b\000K\000p\001\006\000l\000\151\000\240\001\229\000.\002\031\000b\000K\002\031\000p\001\006\000l\000\151\000\240\001\229\000.\002\031\000b\001\023\000K\000p\001\006\000l\000\151\000\240\001\229\000.\002\031\000b\001\023\000K\002\031\000p\001\006\000K\000b\000K\000p\001\006\000K\000b\000K\002\031\000p\001\006\000K\000b\001\023\000K\000p\001\006\000K\000b\001\023\000K\002\031\000p\001\006\000K\002\031\000b\000K\000p\001\006\000K\002\031\000b\000K\002\031\000p\001\006\000K\002\031\000b\001\023\000K\000p\001\006\000K\002\031\000b\001\023\000K\002\031\000p\001\006\001\023\000l\000\151\000\240\001\229\000.\000b\000K\000p\001\006\001\023\000l\000\151\000\240\001\229\000.\000b\000K\002\031\000p\001\006\001\023\000l\000\151\000\240\001\229\000.\000b\001\023\000K\000p\001\006\001\023\000l\000\151\000\240\001\229\000.\000b\001\023\000K\002\031\000p\001\006\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\000K\000p\001\006\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\000K\002\031\000p\001\006\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\001\023\000K\000p\001\006\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\001\023\000K\002\031\000p\001\006\001\023\000K\000b\000K\000p\001\006\001\023\000K\000b\000K\002\031\000p\001\006\001\023\000K\000b\001\023\000K\000p\001\006\001\023\000K\000b\001\023\000K\002\031\000p\001\006\001\023\000K\002\031\000b\000K\000p\001\006\001\023\000K\002\031\000b\000K\002\031\000p\001\006\001\023\000K\002\031\000b\001\023\000K\000p\001\006\001\023\000K\002\031\000b\001\023\000K\002\031\000l\000\151\000\240\001\229\000.\000b\000K\000l\000\151\000\240\001\229\000.\000b\000K\002\031\000l\000\151\000\240\001\229\000.\000b\001\023\000K\000l\000\151\000\240\001\229\000.\000b\001\023\000K\002\031\000l\000\151\000\240\001\229\000.\002\031\000b\000K\000l\000\151\000\240\001\229\000.\002\031\000b\000K\002\031\000l\000\151\000\240\001\229\000.\002\031\000b\001\023\000K\000l\000\151\000\240\001\229\000.\002\031\000b\001\023\000K\002\031\000K\000b\000K\000K\000b\000K\002\031\000K\000b\001\023\000K\000K\000b\001\023\000K\002\031\000K\002\031\000b\000K\000K\002\031\000b\000K\002\031\000K\002\031\000b\001\023\000K\000K\002\031\000b\001\023\000K\002\031\001\023\000l\000\151\000\240\001\229\000.\000b\000K\001\023\000l\000\151\000\240\001\229\000.\000b\000K\002\031\001\023\000l\000\151\000\240\001\229\000.\000b\001\023\000K\001\023\000l\000\151\000\240\001\229\000.\000b\001\023\000K\002\031\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\000K\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\000K\002\031\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\001\023\000K\001\023\000l\000\151\000\240\001\229\000.\002\031\000b\001\023\000K\002\031\001\023\000K\000b\000K\001\023\000K\000b\000K\002\031\001\023\000K\000b\001\023\000K\001\023\000K\000b\001\023\000K\002\031\001\023\000K\002\031\000b\000K\001\023\000K\002\031\000b\000K\002\031\001\023\000K\002\031\000b\001\023\000K\001\023\000K\002\031\000b\001\023\000K\002\031\000p\001\006\002\027\000$\000\131\000b\000Y\000p\001\006\002\027\000$\000\131\002\031\000b\000Y\000p\001\006\001\023\002\027\000$\000\131\000b\000Y\000p\001\006\001\023\002\027\000$\000\131\002\031\000b\000Y\000p\001\006\002\027\000$\000\131\000b\000K\000p\001\006\002\027\000$\000\131\000b\000K\002\031\000p\001\006\002\027\000$\000\131\000b\001\023\000K\000p\001\006\002\027\000$\000\131\000b\001\023\000K\002\031\000p\001\006\002\027\000$\000\131\002\031\000b\000K\000p\001\006\002\027\000$\000\131\002\031\000b\000K\002\031\000p\001\006\002\027\000$\000\131\002\031\000b\001\023\000K\000p\001\006\002\027\000$\000\131\002\031\000b\001\023\000K\002\031\000p\001\006\001\023\002\027\000$\000\131\000b\000K\000p\001\006\001\023\002\027\000$\000\131\000b\000K\002\031\000p\001\006\001\023\002\027\000$\000\131\000b\001\023\000K\000p\001\006\001\023\002\027\000$\000\131\000b\001\023\000K\002\031\000p\001\006\001\023\002\027\000$\000\131\002\031\000b\000K\000p\001\006\001\023\002\027\000$\000\131\002\031\000b\000K\002\031\000p\001\006\001\023\002\027\000$\000\131\002\031\000b\001\023\000K\000p\001\006\001\023\002\027\000$\000\131\002\031\000b\001\023\000K\002\031\000p\001\006\002\027\000$\000\131\001k\000u\001o\001k\001\137\001\169\001o\001\211\001\161\000\187\000)\001\181\001s\000\020\001\221\001u\000A\000E\000B\000\185\000\173\001o\000\020\001\221\001u\000X\000A\000E\000B\000\185\000\173\001o\000]\000^\001\221\001u\0019\001C\001o\000^\001\221\001u\0000\0019\001C\001o\001y\001/\001\r\001\b\001\221\001u\000'\001\209\000p\002\015\001o\001\127\001\253\001\175\001\221\001u\001=\001o\000f\000d\001#\000T\001\007\000\147\001u\001#\001u\000\188\001\179\000\188\001\179\000\"\000\188\001\179\000\154\000\188\001\179\000/\000\188\001\179\001E\000\188\001\179\000\210\000\188\001\179\000\024\000\176\001\179\000\176\001\179\000\"\000\176\001\179\000\154\000\176\001\179\000/\000\176\001\179\001E\000\176\001\179\000\210\000\176\001\179\000\024\000u\001o\000*\001e\000*\000O\000*\000\222\002\027\002\027\000$\000\131\001\006\001\229\001\006\001\229\001\000\001\229\001\000\001\229\000\218\001\017\001O\0009\000:\001\179\001u\0009\000\016\001u\000C\000l\000\137\000.\000p\000\176\000p\001Q\000F\000f\001\020\000F\001\020\001\020\000F\000f\001\020\001\020\000f\000\164\000@\000\178\000\180\001c\000\222\000u\001o\001c\000\222\000l\001\t\000.\000p\0003\001I\001u\000%\000p\001\006\001\229\001u\001)\000p\000\218\000u\001\020\001u\001)\000p\000\218\000u\001u\001)\000p\000I\000\218\000u\001\020\001u\001)\000p\000I\000\218\000u\000\154\001\n\000\"\000\208\000\012\001\221\001u\0001\001\006\000\193\000\239\001o\000\n\000\n\000\\\000\n\000\n\000\\\000\n\000>\000\n\000\n\000>\000\020\000A\001\151\000\031\002%\000\163\000\020\000A\001\151\001\002\002%\000^\001E\000\218\001G\000^\001E\001\002\001G\000^\000\020\001+\000\218\0013\000^\000\020\001+\001\002\0013\000\218\000\218\000>"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\022\000\030\000%\000)\000*\000+\000-\000/\0000\0001\0003\0007\0008\000:\000>\000@\000C\000H\000K\000M\000N\000T\000Y\000^\000_\000b\000c\000g\000h\000k\000n\000t\000{\000}\000\127\000\128\000\133\000\139\000\142\000\145\000\149\000\153\000\155\000\156\000\158\000\162\000\164\000\167\000\169\000\170\000\173\000\178\000\178\000\181\000\181\000\185\000\192\000\199\000\203\000\205\000\206\000\207\000\211\000\212\000\217\000\219\000\225\000\232\000\235\000\236\000\240\000\245\000\250\000\251\000\255\001\004\001\007\001\018\001\019\001\021\001\023\001\028\001\"\001%\001*\0012\001;\001@\001H\001Q\001V\001^\001g\001k\001r\001z\001\129\001\139\001\150\001\158\001\169\001\181\001\183\001\188\001\194\001\195\001\196\001\198\001\200\001\201\001\202\001\203\001\206\001\207\001\208\001\213\001\216\001\217\001\220\001\222\001\225\001\229\001\234\001\237\001\238\001\239\001\240\001\242\001\243\001\244\001\245\001\248\001\254\002\001\002\005\002\n\002\014\002\016\002\020\002\026\002\031\002&\002'\002(\002(\002*\002.\002/\0024\0028\0029\002=\002=\002@\002G\002O\002S\002T\002U\002]\002f\002m\002u\002{\002\129\002\135\002\144\002\154\002\162\002\173\002\185\002\196\002\210\002\225\002\237\002\252\003\012\003\018\003\027\003%\003,\0037\003;\003?\003A\003F\003L\003N\003S\003Y\003Z\003\\\003^\003_\003a\003d\003f\003i\003o\003v\003y\003\127\003\134\003\137\003\143\003\150\003\153\003\159\003\166\003\169\003\175\003\182\003\185\003\191\003\198\003\201\003\207\003\214\003\217\003\223\003\230\003\233\003\239\003\246\003\249\003\255\004\006\004\t\004\015\004\022\004\025\004\031\004&\004)\004/\0046\0049\004?\004F\004I\004O\004V\004Y\004_\004f\004i\004o\004v\004y\004\127\004\134\004\137\004\143\004\150\004\153\004\159\004\166\004\169\004\175\004\182\004\185\004\191\004\198\004\201\004\207\004\214\004\217\004\221\004\224\004\230\004\237\004\240\004\246\004\253\005\002\005\n\005\019\005\026\005$\005/\0056\005@\005K\005R\005\\\005g\005n\005x\005\131\005\140\005\152\005\165\005\172\005\182\005\193\005\202\005\214\005\227\005\234\005\244\005\255\006\b\006\020\006!\006#\006%\006'\006)\006+\006/\0065\0066\0067\0068\006:\006=\006B\006C\006D\006F\006K\006Q\006R\006R\006T\006X\006^\006`\006d\006h\006k\006u\006\128\006\137\006\147\006\148\006\149\006\151\006\152\006\154\006\154\006\156\006\158\006\162\006\163\006\164\006\166\006\169\006\173\006\174\006\176\006\177\006\178\006\181\006\185\006\191\006\199\006\200\006\201\006\203\006\205\006\208\006\209\006\210\006\212\006\214\006\219\006\221\006\223\006\228\006\230\006\235\006\237\006\241\006\243\006\245\006\246\006\249\006\253\007\001\007\t\007\012\007\016\007\020\007\028\007 \007%\007*\0073\0077\007<\007A\007J\007R\007[\007d\007q\007t\007x\007|\007\132\007\135\007\139\007\143\007\151\007\155\007\160\007\165\007\174\007\178\007\183\007\188\007\197\007\205\007\214\007\223\007\236\007\237\007\238\007\240\007\243\007\248\007\253\b\003\b\n\b\018\b\023\b\029\b!\b'\b.\b6\b?\bE\bL\bQ\bY\bb\bl\bw\b\127\b\136\b\143\b\150\b\158\b\166\b\175\b\185\b\196\b\204\b\213\b\224\b\233\b\243\b\255\t\002\t\006\t\011\t\017\t\023\t\025\t\030\t%\t'\t)\t,\t.\t/\t4\t7\t8\t;\t;\tC\tC\tL\tL\tU\tU\t[\t[\tc\tc\te\te\tn\tn\tx\tx\tz\tz\t|\t~\t~\t\128\t\132\t\134\t\134\t\136\t\136\t\138\t\138\t\140\t\140\t\142\t\146\t\148\t\150\t\153\t\157\t\163\t\168\t\171\t\176\t\179\t\186\t\189\t\195\t\197\t\201\t\202\t\203\t\208\t\212\t\217\t\224\t\232\t\242\t\253\t\254\n\001\n\002\n\005\n\006\n\t\n\n\n\r\n\018\n\021\n\022\n\025\n\026\n\029\n\030\n!\n\"\n%\n&\n)\n*\n-\n.\n2\n3\n5\n9\n>\nA\nC\nF\nH\nJ\nM\nO\nS\nX\nY\n[\n\\\n^\na\nb\nc\nd\ne\nf\nj\nk\no\nv\nw\n|\n\130\n\133\n\137\n\142\n\144\n\147\n\151\n\155\n\160\n\163\n\164\n\167\n\171\n\174\n\175\n\182\n\190\n\191\n\191\n\192\n\192\n\193\n\194\n\194\n\195\n\196\n\198\n\200\n\202\n\203\n\208\n\209\n\210\n\212\n\213\n\215\n\216\n\218\n\219\n\220\n\221\n\223\n\225\n\227\n\228\n\230\n\231\n\233\n\234\n\236\n\237\n\239\n\242\n\246\n\247\n\249\n\252\011\000\011\003\011\007\011\012\011\018\011\021\011\025\011\030\011$\011'\011)\011.\0114\0119\011?\011@\011A\011B\011F\011K\011O\011T\011X\011]\011^\011_\011`\011a\011b\011c\011d\011e\011f\011g\011h\011i\011j\011k\011l\011m\011n\011o\011p\011q\011r\011s\011t\011u\011v\011w\011w\011w\011x\011x\011y\011y\011{\011~\011\130\011\135\011\137\011\140\011\141\011\141\011\142\011\142\011\144\011\144\011\146\011\146\011\148\011\153\011\159\011\159\011\161\011\161\011\163\011\163\011\165\011\165\011\166\011\166\011\167\011\169\011\170\011\170\011\170\011\171\011\174\011\179\011\181\011\182\011\185\011\190\011\196\011\200\011\203\011\208\011\216\011\225\011\232\011\242\011\253\012\006\012\018\012\031\012&\0120\012;\012<\012B\012G\012I\012K\012M\012O\012Q\012S\012U\012W\012Y\012[\012]\012`\012b\012c\012f\012i\012j\012n\012o\012q\012w\012\127\012\129\012\133\012\136\012\138\012\139\012\142\012\145\012\146\012\147\012\148\012\151\012\155\012\161\012\163\012\168\012\169\012\171\012\173\012\175\012\179\012\180\012\183\012\184\012\187\012\191\012\201\012\201\012\202\012\202\012\203\012\204\012\206\012\208\012\208\012\209\012\210\012\213\012\216\012\219\012\220\012\221\012\223\012\224\012\225\012\226\012\227\012\229\012\231\012\232\012\233\012\235\012\238\012\244\012\251\012\255\r\003\r\n\r\r\r\019\r\026\r\030\r\"\r)\r/\r8\rB\rI\rP\rZ\ra\rk\rv\r~\r\134\r\145\r\149\r\156\r\164\r\169\r\174\r\182\r\186\r\193\r\201\r\206\r\211\r\219\r\226\r\236\r\247\r\255\014\007\014\018\014\019\014\022\014\025\014\029\014!\014)\014*\014-\0140\0144\0148\014@\014@\014E\014F\014H\014I\014K\014L\014N\014O\014Q\014R\014T\014V\014\\\014_\014f\014g\014i\014l\014m\014p\014q\014t\014u\014x\014y\014|\014}\014\128\014\129\014\132\014\133\014\136\014\138\014\141\014\145\014\150\014\151\014\154\014\157\014\162\014\165\014\171\014\176\014\179\014\185\014\190\014\196\014\205\014\213\014\218\014\226\014\233\014\234\014\235\014\236\014\238\014\242\014\247\014\252\015\002\015\005\015\011\015\018\015\020\015\023\015\027\015\028\015\030\015!\015$\015(\015-\015.\0152\0157\015>\015@\015B\015C\015D\015E\015F\015H\015J\015S\015]\015^\015d\015l\015m\015w\015x\015y\015z\015\132\015\133\015\139\015\140\015\141\015\143\015\145\015\147\015\149\015\150\015\152\015\154\015\156\015\158\015\161\015\164\015\167\015\170\015\172\015\175\015\177\015\180\015\183\015\189\015\196\015\198\015\201\015\206\015\212\015\219\015\227\015\232\015\238\015\243\015\248\015\253\016\002\016\t\016\014\016\021\016\026\016!\016&\016*\016.\0164\016<\016B\016C\016D\016E\016G\016I\016L\016N\016Q\016T\016Y\016^\016a\016d\016g\016h\016i\016m\016p\016s\016x\016{\016}\016\130\016\134\016\137\016\143\016\152\016\162\016\168\016\177\016\187\016\193\016\202\016\212\016\217\016\221\016\231\016\234\016\237\016\239\016\244\016\248\016\249\016\253\017\004\017\012\017\016\017\023\017\031\017#\017*\0172\0173\0174\0175\0178\017;\017<\017B\017J\017K\017N\017O\017P\017R\017T\017W\017[\017_\017d\017e\017j\017k\017l\017m\017n\017o\017p\017q\017r\017s\017t\017u\017v\017w\017x\017y\017z\017{\017|\017}\017~\017\127\017\128\017\129\017\130\017\131\017\132\017\133\017\134\017\135\017\136\017\137\017\138\017\139\017\140\017\141\017\142\017\143\017\144\017\145\017\146\017\147\017\148\017\149\017\150\017\151\017\152\017\153\017\154\017\155\017\156\017\157\017\158\017\159\017\160\017\168\017\170\017\174\017\182\017\191\017\195\017\200\017\209\017\219\017\224\017\230\017\239\017\249\017\254\018\004\018\014\018\025\018\031\018&\018-\0185\0188\018<\018D\018M\018Q\018V\018^\018g\018p\018z\018\131\018\141\018\151\018\162\018\166\018\171\018\176\018\182\018\187\018\193\018\199\018\206\018\215\018\225\018\235\018\246\019\000\019\011\019\022\019\"\019'\019-\0193\019:\019@\019G\019N\019V\019_\019i\019s\019~\019\136\019\147\019\158\019\170\019\175\019\181\019\187\019\194\019\200\019\207\019\214\019\222\019\232\019\243\019\254\020\n\020\021\020!\020-\020:\020@\020G\020N\020V\020]\020e\020m\020v\020}\020\133\020\141\020\150\020\158\020\167\020\176\020\186\020\189\020\193\020\197\020\202\020\206\020\211\020\216\020\222\020\230\020\239\020\248\021\002\021\011\021\021\021\031\021*\021.\0213\0218\021>\021C\021I\021O\021V\021]\021e\021m\021v\021}\021\133\021\141\021\150\021\158\021\167\021\176\021\186\021\194\021\203\021\212\021\222\021\231\021\241\021\251\022\006\022\011\022\012\022\015\022\016\022\018\022\019\022\020\022\021\022\022\022\024\022!\022+\022,\0222\022:\022;\022<\022E\022F\022K\022L\022M\022R\022T\022V\022Y\022\\\022_\022b\022e\022h\022j\022m\022p\022s\022v\022y\022|\022\127\022\129\022\131\022\132\022\133\022\136\022\138\022\142\022\144\022\144\022\146\022\147\022\151\022\154\022\154\022\155\022\158\022\160\022\161\022\162\022\162\022\163\022\164\022\165\022\167\022\169\022\171\022\173\022\174\022\175\022\176\022\177\022\179\022\183\022\186\022\187\022\188\022\189\022\194\022\199\022\205\022\211\022\218\022\219\022\220\022\221\022\222\022\230\022\230\022\231\022\232\022\234\022\236\022\237\022\239\022\241\022\247\022\252\023\000\023\004\023\t\023\014\023\015\023\017")) and lr0_core = - (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0008\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000X\000Y\000Z\000[\000\\\000]\000^\000_\000`\000a\000b\000c\000d\000e\000f\000g\000h\000i\000j\000k\000l\000m\000n\000o\000p\000q\000r\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\144\000\145\000\146\000\190\r\004\000\147\000\148\000\149\000\150\000\151\000\152\000\153\000\154\000\155\000\156\000\157\000\158\000\159\000\160\000\161\000\162\000\163\000\164\000\165\000\166\000\167\000\168\000\169\000\170\000\171\000\172\000\173\000\174\000\175\000\176\000\177\000\178\000\179\000\180\000\181\000\182\000\183\000\184\000\185\000\186\000\187\000\188\000\189\000\191\000\192\000\193\000\194\000\195\000\196\000\197\000\198\000\199\000\200\000\201\000\202\000\203\000\204\000\205\000\206\000\207\000\208\000\209\000\210\000\211\000\212\000\213\000\214\000\215\000\216\000\217\000\218\000\219\000\220\000\221\000\222\000\223\000\224\000\225\000\226\000\227\000\228\000\229\000\230\000\231\000\232\000\233\000\234\000\235\000\236\000\237\000\238\000\239\000\240\000\241\000\242\000\243\000\244\000\245\000\246\000\247\000\248\000\249\000\250\000\251\000\252\000\253\000\254\000\255\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\b\001\t\001\n\001\011\001\012\001\r\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001 \001!\001\"\001#\001$\001%\001&\001'\001(\001)\001*\001+\001,\001-\001.\001/\0010\0011\0012\0013\0014\0015\0016\0017\0018\0019\001:\001;\001<\001=\001>\001?\001@\001A\001B\001C\001D\001E\001F\001G\001H\001I\001J\001K\001L\001M\001N\001O\001P\001Q\001R\001S\001T\001U\001V\001W\001X\001Y\001Z\001[\001\\\001]\001^\001_\001`\001a\001b\001c\001d\001e\001f\001g\001h\001i\001j\001k\001l\001m\001n\001o\001p\001q\001r\001s\001t\001u\001v\001w\001x\001y\001z\001{\001|\001}\001~\001\127\001\128\001\129\001\130\001\131\001\132\001\133\001\134\001\135\001\136\001\137\001\138\001\139\001\140\001\141\001\142\001\143\001\144\001\145\001\146\001\147\001\148\001\149\001\150\001\151\001\152\001\153\001\154\001\155\001\156\001\157\001\158\001\159\001\160\001\161\001\162\001\163\001\164\001\165\001\166\001\167\001\168\001\169\001\170\001\171\001\172\001\173\001\174\001\175\001\176\001\177\001\178\001\179\001\180\001\181\001\182\001\183\001\184\001\185\001\186\001\187\001\188\001\189\001\190\001\191\001\192\001\193\001\194\001\195\001\196\001\197\001\198\001\199\001\200\001\201\001\202\001\203\001\204\001\205\001\206\001\207\001\208\001\209\001\210\001\211\001\212\001\213\001\214\001\215\001\216\001\217\001\218\001\219\001\220\001\221\001\222\001\223\001\224\001\225\001\226\001\227\001\228\001\229\001\230\001\231\001\232\001\233\001\234\001\235\001\236\001\237\001\238\001\239\001\240\001\241\001\242\001\243\001\244\001\245\001\246\001\247\001\248\001\249\001\250\001\251\001\252\001\253\001\254\001\255\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\b\002\t\002\n\002\011\002\012\002\r\002\014\002\015\002\016\002\017\002\018\002\019\002\020\002\021\002\022\002\023\002\031\011\157\002!\002\"\002#\002$\002%\002&\002'\002(\002)\002*\002+\002,\002-\002.\002/\0020\0021\0022\0023\0024\002=\002>\002?\002@\002A\002B\002C\002D\002E\002F\002G\002H\002I\002J\002K\002L\002M\002N\002O\002P\002Q\002R\002S\002T\002U\002V\002W\002X\002Y\002Z\002[\002\\\002]\002^\002_\002`\002a\002b\002c\002d\002e\002f\002g\002h\002i\002j\002k\002l\002m\002n\002o\002p\002q\002r\002s\002t\002u\002v\002w\002x\002y\002z\002{\002|\002}\002~\002\127\002\128\002\129\002\130\002\131\002\132\002\133\002\134\002\135\002\136\002\137\002\138\002\139\002\140\002\141\002\142\002\143\002\144\002\145\002\146\002\147\002\148\002\149\002\150\002\151\002\152\002\153\002\154\002\155\002\156\002\157\002\158\002\159\002\160\002\161\002\162\002\163\002\164\002\165\002\166\002\167\002\168\002\169\002\170\002\171\002\172\002\173\002\174\002\175\002\176\002\177\002\178\002\179\002\180\002\181\002\182\002\183\002\184\002\185\002\186\002\187\002\188\002\189\002\190\002\191\002\192\002\193\002\194\002\195\002\196\002\197\002\198\002\199\002\200\002\201\002\202\002\224\002\225\002\226\002\227\002\228\002\229\002\230\002\231\002\232\002\233\002\234\002\235\002\236\002\237\002\213\002\214\002\215\002\238\002\239\002\218\002\219\002\240\002\241\002\242\002\243\002\244\002\245\002\246\002\247\002\248\002\249\002\250\002\251\002\252\002\253\002\254\002\255\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\b\002\203\002\204\002\205\002\206\002\207\002\208\002\209\002\210\002\211\002\212\002\216\002\217\003\t\003\n\003\011\002\220\002\221\002\222\002\223\003\012\003\r\003\014\003\015\003\016\003\017\003\018\003\019\003\020\003\021\003\022\003\023\003\024\003\025\003\026\003\027\003\028\003\029\003\030\003\031\003 \003!\003\"\003#\003$\003%\003&\003'\003(\003)\003*\003+\003,\003-\003.\003/\0030\0031\0032\0033\0034\0035\0036\0037\0038\0039\003:\003;\003<\003=\003>\003?\003@\003A\003B\003C\003D\003E\003F\003G\003H\003I\003J\003K\003L\003M\003N\003O\003P\003Q\003R\003S\003T\003U\003V\003W\003X\003Y\003Z\003[\003\\\003]\003^\003_\003`\003a\003b\003c\003d\003e\003f\003g\003h\003i\003j\003k\003l\003m\003n\003o\003p\003q\003r\003s\003t\003u\003v\003w\003x\003y\003z\003\181\003\182\003\183\003\144\003\184\003\158\003\159\003\164\003\165\003\166\003\167\003\168\003\169\003\170\003\171\003\172\003\173\003\174\003\175\003\176\003\177\003\178\003\185\003{\003|\003}\003~\003\127\003\128\003\129\003\130\003\131\003\132\003\179\003\180\003\186\003\187\003\133\003\134\003\135\003\136\003\137\003\138\003\139\003\140\003\141\003\142\003\143\003\145\003\188\003\189\003\190\003\191\003\192\003\193\003\194\003\195\003\196\003\197\003\198\003\199\003\200\003\201\003\202\003\203\003\204\003\205\003\206\003\207\003\208\003\209\003\210\003\211\003\212\003\213\003\214\003\215\003\216\003\217\003\218\003\219\003\220\003\221\003\222\003\223\003\224\003\225\003\226\003\227\003\228\003\229\003\230\003\231\003\232\003\233\003\234\003\235\003\236\003\237\003\238\003\239\003\240\003\241\003\242\003\243\003\244\003\245\003\246\003\247\003\248\003\249\003\250\003\251\003\252\003\253\003\254\003\255\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\b\004\t\004\n\004\011\004\012\004\r\004\014\004\015\004\016\004\017\004\018\004\019\004\020\004\021\004\022\004\023\004\024\004\025\004\026\004\027\004\028\004\029\004\030\004\031\004 \004!\004\"\004#\004$\004%\004&\004'\004(\004)\004*\004+\004,\004-\004.\004/\0040\0041\0042\0043\0044\0045\0046\0047\0048\0049\004:\004;\004<\004=\004>\004?\004@\004A\004D\004P\004F\004G\004B\004C\004E\004I\004J\004K\004L\004M\004N\004O\004H\004Q\004R\004S\004T\004U\004V\004W\004X\004Y\004Z\004[\004\\\004]\004^\004_\004`\004a\004b\004c\004d\004e\004f\004g\004h\004i\004j\004k\004l\004m\004n\004o\004p\004q\004r\004s\004t\004u\004v\004w\004x\004y\004z\004{\004|\004}\004~\004\127\004\168\004\169\004\170\004\171\004\172\004\173\004\174\004\175\004\176\004\177\004\178\004\179\004\180\004\181\004\182\004\183\004\184\004\185\004\186\004\187\004\188\004\189\004\190\004\191\004\192\004\193\004\194\004\195\004\196\004\197\004\198\004\199\004\200\004\201\004\202\004\203\004\204\004\205\004\206\004\207\004\208\004\209\004\142\004\143\004\128\004\129\004\130\004\131\004\134\004\135\004\136\004\137\004\138\004\139\004\140\004\141\004\148\004\149\004\150\004\151\004\152\004\153\004\154\004\155\004\156\004\157\004\158\004\159\004\160\004\161\004\162\004\163\004\164\004\165\004\166\004\167\004\132\004\133\004\144\004\145\004\146\004\147\004\210\004\211\004\212\004\213\004\214\004\215\004\216\004\217\004\218\004\219\004\220\004\221\004\222\004\223\004\224\004\225\004\226\004\227\004\228\004\229\004\230\004\231\004\232\004\233\004\234\004\235\004\236\004\237\004\238\004\239\004\240\004\241\004\242\004\243\004\244\004\245\004\246\004\247\004\248\004\249\004\250\004\251\004\252\004\253\004\254\004\255\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\005\b\005\t\005\n\005\011\005\012\005\r\005\014\005\015\005\016\005\017\005\018\005\019\005\020\005\021\005\022\005\023\005\024\005\025\005\026\005\027\005\028\005\029\005\030\005\031\005 \006\192\006\193\006\194\006\195\0053\0054\0055\0056\0057\0058\0059\005:\005;\005<\005=\005>\005?\005@\005A\005B\005C\005D\005\168\005\169\005\170\005\171\005\172\005\173\005\174\005\175\005\176\005\177\005\178\006U\006V\006W\006X\006Y\006Z\006[\006\\\006]\006^\006_\006`\006a\006b\006c\006d\006e\006f\006g\006h\005E\005F\005G\005H\005I\005J\005K\005L\005M\005N\005O\005f\005g\005h\005i\005j\005k\005l\005m\005n\005o\005p\005|\005}\005~\005\127\005\128\005\129\005\130\005\131\005\132\005\133\005\134\005\179\005\180\005\181\005\182\005\183\005\184\005\185\005\186\005\187\005\188\005\189\005P\005Q\005R\005S\005T\005U\005V\005W\005X\005Y\005Z\005[\005\\\005]\005^\005_\005`\005a\005b\005c\005d\005e\005q\005r\005s\005t\005u\005v\005w\005x\005y\005z\005{\005\135\005\136\005\137\005\138\005\139\005\140\005\141\005\142\005\143\005\144\005\145\005\146\005\147\005\148\005\149\005\150\005\151\005\152\005\153\005\154\005\155\005\156\005\157\005\158\005\159\005\160\005\161\005\162\005\163\005\164\005\165\005\166\005\167\005\190\005\191\005\192\005\193\005\194\005\195\005\196\005\197\005\198\005\199\005\200\005\201\005\202\005\203\005\204\005\205\005\206\005\207\005\208\005\209\005\210\005\211\006\019\006\020\006\021\006\022\006\023\006\024\006\025\006\026\006\027\006\028\006\029\006)\006*\006+\006,\006-\006.\006/\0060\0061\0062\0063\0064\0065\0066\0067\0068\0069\006:\006;\006<\006=\006>\005\212\005\213\005\214\005\215\005\216\005\217\005\218\005\219\005\220\005\221\005\222\005\223\005\224\005\225\005\226\005\227\005\228\005\229\005\230\005\231\005\232\005\233\005\234\005\235\005\236\005\237\005\238\005\239\005\240\005\241\005\242\005\243\005\244\006\030\006\031\006 \006!\006\"\006#\006$\006%\006&\006'\006(\006?\006@\006A\006B\006C\006D\006E\006F\006G\006H\006I\006J\006K\006L\006M\006N\006O\006P\006Q\006R\006S\006T\005\245\005\246\005\247\005\248\005\249\005\250\005\251\005\252\005\253\005\254\005\255\006\000\006\001\006\002\006\003\006\004\006\005\006\006\006\007\006\b\006\t\006\n\006\011\006\012\006\r\006\014\006\015\006\016\006\017\006\018\006i\006j\006k\006l\006m\006n\006o\006p\006q\006r\006s\006t\006u\006v\006w\006x\006y\006z\006{\006|\006}\006~\006\127\006\128\006\129\006\130\006\131\006\132\006\133\006\134\006\135\006\136\006\137\006\138\006\139\006\140\006\141\006\142\006\143\006\144\006\145\006\146\006\147\006\148\006\149\006\150\006\151\006\152\006\153\006\154\006\155\006\156\006\157\006\158\006\159\006\160\006\161\006\162\006\163\003\146\003\147\003\148\003\149\003\150\003\151\003\152\003\153\003\154\003\155\003\156\003\157\003\160\003\161\003\162\003\163\006\164\006\165\006\166\006\167\006\168\006\169\006\170\006\171\006\172\006\173\006\174\006\175\006\176\006\177\006\178\006\179\006\180\006\181\006\182\006\183\006\184\006\185\006\186\006\187\006\188\006\189\006\190\006\196\006\197\006\198\006\199\006\200\006\201\006\202\006\203\006\204\006\205\006\206\006\207\006\208\006\209\006\210\006\211\006\212\006\213\006\214\006\215\006\216\006\217\006\218\006\219\006\220\006\221\006\222\006\223\006\224\006\225\006\226\006\227\006\228\006\229\006\230\006\231\006\232\006\233\006\234\006\235\006\236\006\237\006\238\006\239\006\240\006\241\006\242\006\243\006\244\006\245\006\246\006\247\006\248\006\249\006\250\006\251\006\252\006\253\006\254\006\255\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\b\007\t\007\n\007\011\007\012\007\r\007\014\007\015\007\016\007\017\007\018\007\019\007\020\007\021\007\022\007\023\007\024\007\025\007\026\007\027\007\028\007\029\007\030\007\031\007 \007!\007\"\007#\007$\007%\007&\007'\007(\007)\007*\007+\007,\007-\007.\007/\0070\0071\0072\0073\0074\0075\0076\0077\0078\0079\007:\007;\007<\007=\007>\007?\007@\007A\007B\007C\007D\007E\007F\007G\007H\007I\007J\007K\007L\007M\007N\007O\007P\007Q\007R\007S\007T\007U\007V\007W\007X\007Y\007Z\007[\007\\\007]\007^\007_\007`\007a\007b\007c\bh\bi\bj\bk\bl\bm\bn\bo\bp\bq\br\bs\bt\bu\bv\bw\bx\by\bz\b{\b4\b5\b6\b7\b8\b9\b:\b;\b<\b=\b>\b?\b@\bA\bB\bC\bD\bE\bF\bG\bH\bI\bJ\bK\bL\bM\bN\bO\bP\bQ\bR\bS\bT\bU\bV\bW\bX\bY\bZ\b[\b\\\b]\b^\b_\b`\ba\bb\bc\bd\be\bf\bg\b|\b}\b~\b\127\b\128\b\129\b\130\b\131\b\132\005!\005\"\005#\005$\005%\005&\005'\005(\005)\005*\005+\005,\005-\005.\005/\0050\0051\0052\006\191\007d\007e\007f\007g\007h\007i\007j\007k\007l\007m\007n\007o\007p\007q\007r\007s\007t\007u\007v\007w\007x\007y\007z\007{\007|\007}\007~\007\127\007\128\007\129\007\130\007\131\007\132\007\133\007\134\007\135\007\136\007\137\007\138\007\139\007\140\007\141\007\142\007\143\007\144\007\145\007\146\007\147\007\148\007\149\007\150\007\151\007\152\007\153\007\154\007\155\007\156\007\157\007\158\007\159\007\160\007\161\007\162\007\163\007\164\007\165\007\166\007\167\007\168\007\169\007\170\007\171\007\172\007\173\007\174\007\175\007\176\007\177\007\178\007\179\007\180\007\181\007\182\007\183\007\184\007\185\007\186\007\187\007\188\007\189\007\190\007\191\007\192\007\193\007\194\007\195\007\196\007\197\007\198\007\199\007\200\007\201\007\202\007\203\007\204\007\205\007\206\007\207\007\208\007\209\007\210\007\211\007\212\007\213\007\214\007\215\007\216\007\217\007\218\007\219\007\220\007\221\007\222\007\223\007\224\007\225\007\226\007\227\007\228\007\229\007\230\007\231\007\232\007\233\007\234\007\235\007\236\007\237\007\238\007\239\007\240\007\241\007\242\007\243\007\244\007\245\007\246\007\247\007\248\007\249\007\250\007\251\007\252\007\253\007\254\007\255\b\000\b\001\b\002\b\003\b\004\b\005\b\006\b\007\b\b\b\t\b\n\b\011\b\012\b\r\b\014\b\015\b\016\b\017\b\018\b\019\b\020\b\021\b\022\b\023\b\024\b\025\b\026\b\027\b\028\b\029\b\030\b\031\b \b!\b\"\b#\b$\b%\b&\b'\b(\b)\b*\b+\b,\b-\b.\b/\b0\b1\b2\b3\b\133\b\134\b\135\b\136\b\137\b\138\b\139\b\140\b\141\b\142\b\143\b\144\b\145\b\146\b\147\b\148\b\149\b\150\b\151\b\152\b\153\b\154\b\155\b\156\b\157\b\158\b\159\b\160\b\161\b\162\b\163\b\164\b\165\b\166\b\167\b\168\b\169\b\170\b\171\b\172\b\173\b\174\b\175\b\176\b\177\b\178\b\179\b\180\b\181\b\182\b\183\b\184\b\185\b\186\b\187\b\188\b\189\b\190\b\191\b\192\b\193\b\194\b\195\b\196\b\197\b\198\b\199\b\200\b\201\b\202\b\203\b\204\b\205\b\206\b\207\b\208\b\209\b\210\b\211\b\212\b\213\b\214\b\215\b\216\b\217\b\218\b\219\b\220\b\221\b\222\b\223\b\224\b\225\b\226\b\227\b\228\b\229\b\230\b\231\b\232\b\233\b\234\b\235\b\236\b\237\b\238\b\239\b\240\b\241\b\242\b\243\b\244\b\245\b\246\b\247\b\248\b\249\b\250\b\251\b\252\b\253\b\254\b\255\t\000\t\001\t\002\t\003\t\004\t\005\t\006\t\007\t\b\t\t\t\n\t\011\t\012\t\r\t\014\t\015\t\016\t\017\t\018\t\019\t\020\t\021\t\022\t\023\t\024\t\025\t\026\t\027\t\028\t\029\t\030\t\031\t \t!\t\"\t#\t$\t%\t&\t'\t(\t)\t*\t+\t,\t-\t.\t/\t0\t1\t2\t3\t4\t5\t6\t7\t8\t9\t:\t;\t<\t=\t>\t?\t@\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\tK\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tY\tZ\t[\t\\\t]\t^\t_\t`\ta\tb\tc\td\te\tf\tg\th\ti\tj\tk\tl\tm\tn\to\tp\tq\tr\ts\tt\tu\tv\tw\tx\ty\tz\t{\t|\t}\t~\t\127\t\128\t\129\t\130\t\131\t\132\t\133\t\134\t\135\t\136\t\137\t\138\t\139\t\140\t\141\t\142\t\143\t\144\t\145\t\146\t\147\t\148\t\149\t\150\t\151\t\152\t\153\t\154\t\155\t\156\t\157\t\158\t\159\t\160\t\161\t\162\t\163\t\164\t\165\t\166\t\167\t\168\t\169\t\170\t\171\t\172\t\173\t\174\t\175\t\176\t\177\t\178\t\179\t\180\t\181\t\182\t\183\t\184\t\185\t\186\t\187\t\188\t\189\t\190\t\191\t\192\t\193\t\194\t\195\t\196\t\197\t\198\t\199\t\200\t\201\t\202\t\203\t\204\t\205\t\206\t\207\t\208\t\209\t\210\t\211\t\212\t\213\t\214\t\215\t\216\t\217\t\218\t\219\t\220\t\221\t\222\t\223\t\224\t\225\t\226\t\227\t\228\t\229\t\230\t\231\t\232\t\233\t\234\t\235\t\236\t\237\t\238\t\239\t\240\t\241\t\242\t\243\t\244\t\245\t\246\t\247\t\248\t\249\t\250\t\251\t\252\t\253\t\254\t\255\n\000\n\001\n\002\n\003\n\004\n\005\n\006\n\007\n\b\n\t\n\n\n\011\n\012\n\r\n\014\n\015\n\016\n\017\n\018\n\019\n\020\n\021\n\022\n\023\n\024\n\025\n\026\n\027\n\028\n\029\n\030\n\031\n \n!\n\"\n#\n$\n%\n&\n'\n(\n)\n*\n+\n,\n-\n.\n/\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n:\n;\n<\n=\n>\n?\n@\nA\nB\nC\nD\nE\nF\nG\nH\nI\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nS\nT\nU\nV\nW\nX\nY\nZ\n[\n\\\n]\n^\n_\n`\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\nr\ns\nt\nu\nv\nw\nx\ny\nz\n{\n|\n}\n~\n\127\n\128\n\129\n\130\n\131\n\132\n\133\n\134\n\135\n\136\n\137\n\138\n\139\n\140\n\141\n\142\n\143\n\144\n\145\n\146\n\147\n\148\n\149\n\150\n\151\n\152\n\153\n\154\n\155\n\156\n\157\n\158\n\159\n\160\n\161\n\162\n\163\n\164\n\165\n\166\n\167\n\168\n\169\n\170\n\171\n\172\n\173\n\174\n\175\n\176\n\177\n\178\n\179\n\180\n\181\n\182\n\183\n\184\n\185\n\186\n\187\n\188\n\189\n\190\n\191\n\192\n\193\n\194\n\195\n\196\n\197\n\198\n\199\n\200\n\201\n\202\n\203\n\204\n\205\n\206\n\207\n\208\n\209\n\210\n\211\n\212\n\213\n\214\n\215\n\216\n\217\n\218\n\219\n\220\n\221\n\222\n\223\n\224\n\225\n\226\n\227\n\228\n\229\n\230\n\231\n\232\n\233\n\234\n\235\n\236\n\237\n\238\n\239\n\240\n\241\n\242\n\243\n\244\n\245\n\246\n\247\n\248\n\249\n\250\n\251\n\252\n\253\n\254\n\255\011\000\011\001\011\002\011\003\011\004\011\005\011\006\011\007\011\b\011\t\011\n\011\011\011\012\011\r\011\014\011\015\011\016\011\017\011\018\011\019\011\020\011\021\011\022\011\023\011\024\011\025\011\026\011\027\011\028\011\029\011\030\011\031\011 \011!\011\"\011#\011$\011%\011&\011'\011(\011)\011*\011+\011,\011-\011.\011/\0110\0111\0112\0113\0114\0115\0116\0117\0118\0119\011:\011;\011<\011=\011>\011?\011@\011A\011B\011C\011D\011E\011F\011G\011H\011I\011J\011K\011L\011M\011N\011O\011P\011Q\011R\011S\011T\011U\011V\011W\011X\011Y\011Z\011[\011\\\011]\011^\011_\011`\011a\011b\011c\011d\011e\011f\011g\011h\011i\011j\011k\011l\011m\011n\011o\011p\011q\011r\011s\011t\011u\011v\011w\011x\011y\011z\011{\011|\011}\011~\011\127\011\128\011\133\011\134\011\135\011\136\011\137\0025\0026\0027\0028\0029\002:\002;\002<\011\129\011\130\011\131\011\132\011\138\011\139\011\140\011\141\011\142\011\143\011\144\011\145\011\158\011\159\011\160\011\161\011\162\011\163\011\164\011\165\011\166\011\167\011\168\011\169\002\024\002\025\002\026\002\027\002\028\002\029\002\030\002 \011\146\011\147\011\148\011\149\011\150\011\151\011\152\011\153\011\154\011\155\011\156\011\170\011\171\011\172\011\173\011\174\011\175\011\176\011\177\011\178\011\179\011\180\011\181\011\182\011\183\011\184\011\185\011\186\011\187\011\188\011\189\011\190\011\191\011\192\011\193\011\194\011\195\011\196\011\197\011\198\011\199\011\200\011\201\011\202\011\203\011\204\011\205\011\206\011\207\011\208\011\209\011\210\011\211\011\212\011\213\011\214\011\215\011\216\011\217\011\218\011\219\011\220\011\221\011\222\011\223\011\224\011\225\011\226\011\227\011\228\011\229\011\230\011\231\011\232\011\233\011\234\011\235\011\236\011\237\011\238\011\239\011\240\011\241\011\242\011\243\011\244\011\245\011\246\011\247\011\248\011\249\011\250\011\251\011\252\011\253\011\254\011\255\012\000\012\001\012\002\012\003\012\004\012\005\012\006\012\007\012\b\012\t\012\n\012\011\012\012\012\r\012\014\012\015\012\016\012\017\012\018\012\019\012\020\012\021\012\022\012\023\012\024\012\025\012\026\012\027\012\028\012\029\012\030\012\031\012 \012!\012\"\012#\012$\012%\012&\012'\012(\012)\012*\012+\012,\012-\012.\012/\0120\0121\0122\0123\0124\0125\0126\0127\0128\0129\012:\012;\012<\012=\012>\012?\012@\012A\012B\012C\012D\012E\012F\012G\012H\012I\012J\012K\012L\012M\012N\012O\012P\012Q\012R\012S\012T\012U\012V\012W\012X\012Y\012Z\012[\012\\\012]\012^\012_\012`\012a\012b\012c\012d\012e\012f\012g\012h\012i\012j\012k\012l\012m\012n\012o\012p\012q\012r\012s\012t\012u\012v\012w\012x\012y\012z\012{\012|\012}\012~\012\127\012\128\012\129\012\130\012\131\012\132\012\133\012\134\012\135\012\136\012\137\012\138\012\139\012\140\012\141\012\142\012\143\012\144\012\145\012\146\012\147\012\148\012\149\012\150\012\151\012\152\012\153\012\154\012\155\012\156\012\157\012\158\012\159\012\160\012\161\012\162\012\163\012\164\012\165\012\166\012\167\012\168\012\169\012\170\012\171\012\172\012\173\012\174\012\175\012\176\012\177\012\178\012\179\012\180\012\181\012\182\012\183\012\184\012\185\012\186\012\187\012\188\012\189\012\190\012\191\012\192\012\193\012\194\012\195\012\196\012\197\012\198\012\199\012\200\012\201\012\202\012\203\012\204\012\205\012\206\012\207\012\208\012\209\012\210\012\211\012\212\012\213\012\214\012\215\012\216\012\217\012\218\012\219\012\220\012\221\012\222\012\223\012\224\012\225\012\226\012\227\012\228\012\229\012\230\012\231\012\232\012\233\012\234\012\235\012\236\012\237\012\238\012\239\012\240\012\241\012\242\012\243\012\244\012\245\012\246\012\247\012\248\012\249\012\250\012\251\012\252\012\253\012\254\012\255\r\000\r\001\r\002\r\003\r\005\r\006\r\007\r\b\r\t\r\n\r\011\r\012\r\r\r\014\r\015\r\016\r\017\r\018\r\019\r\020\r\021\r\022\r\023\r\024\r\025\r\026\r\027\r\028\r\029\r\030\r\031\r \r!\r\"\r#\r$\r%\r&\r'\r(\r)\r*\r+\r,\r-\r.\r/\r0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r:\r;\r<\r=\r>\r?\r@\rA\rB\rC\rD\rE\rF\rG\rH\rI\rJ\rK\rL\rM\rN\rO\rP\rQ\rR\rS\rT\rU\rV\rW\rX\rY\rZ\r[\r\\\r]\r^\r_\r`\ra\rb\rc\rd\re\rf\rg\rh\ri\rj\rk\rl\rm\rn\ro\rp\rq\rr\rs\rt\ru\rv\rw\rx\ry\rz\r{\r|\r}\r~\r\127\r\128\r\129\r\130\r\131\r\132\r\133\r\134\r\135\r\136\r\137\r\138\r\139\r\140\r\141\r\142\r\143\r\144") + (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0008\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000X\000Y\000Z\000[\000\\\000]\000^\000_\000`\000a\000b\000c\000d\000e\000f\000g\000h\000i\000j\000k\000l\000m\000n\000o\000p\000q\000r\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\130\000\131\000\132\000\133\000\134\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\142\000\143\000\144\000\145\000\166\rR\000\146\000\147\000\148\000\149\000\150\000\151\000\152\000\153\000\154\000\155\000\156\000\157\000\158\000\159\000\160\000\161\000\162\000\163\000\164\000\165\000\167\000\168\000\169\000\170\000\171\000\172\000\173\000\174\000\175\000\176\000\177\000\178\000\179\000\180\000\181\000\182\000\183\000\184\000\185\000\186\000\187\000\188\000\189\000\190\000\191\000\192\000\193\000\194\000\195\000\196\000\197\000\198\000\199\000\200\000\201\000\202\000\203\000\204\000\205\000\206\000\207\000\208\000\209\000\210\000\211\000\212\000\213\000\214\000\215\000\216\000\217\000\218\000\219\000\220\000\221\000\222\000\223\000\224\000\225\000\226\000\227\000\228\000\229\000\230\000\231\000\232\000\233\000\234\000\235\000\236\000\237\000\238\000\239\000\240\000\241\000\242\000\243\000\244\000\245\000\246\000\247\000\248\000\249\000\250\000\251\000\252\000\253\000\254\000\255\001\000\001\001\001\002\001\003\001\004\001\005\001\006\001\007\001\b\001\t\001\n\001\011\001\012\001\r\001\014\001\015\001\016\001\017\001\018\001\019\001\020\001\021\001\022\001\023\001\024\001\025\001\026\001\027\001\028\001\029\001\030\001\031\001 \001!\001\"\001#\001$\001%\001&\001'\001(\001)\001*\001+\001,\001-\001.\001/\0010\0011\0012\0013\0014\0015\0016\0017\0018\0019\001:\001;\001<\001=\001>\001?\001@\001A\001B\001C\001D\001E\001F\001G\001H\001I\001J\001K\001L\001M\001N\001O\001P\001Q\001R\001S\001T\001U\001V\001W\001X\001Y\001Z\001[\001\\\001]\001^\001_\001`\001a\001b\001c\001d\001e\001f\001g\001h\001i\001j\001k\001l\001m\001n\001o\001p\001q\001r\001s\001t\001u\001v\001w\001x\001y\001z\001{\001|\001}\001~\001\127\001\128\001\129\001\130\001\131\001\132\001\133\001\134\001\135\001\136\001\137\001\138\001\139\001\140\001\141\001\142\001\143\001\144\001\145\001\146\001\147\001\148\001\149\001\150\001\151\001\152\001\153\001\154\001\155\001\156\001\157\001\158\001\159\001\160\001\161\001\162\001\163\001\164\001\165\001\166\001\167\001\168\001\169\001\170\001\171\001\172\001\173\001\174\001\175\001\176\001\177\001\178\001\179\001\180\001\181\001\182\001\183\001\184\001\185\001\186\001\187\001\188\001\189\001\190\001\191\001\192\001\193\001\194\001\195\001\196\001\197\001\198\001\199\001\200\001\201\001\202\001\203\001\204\001\205\001\206\001\207\001\208\001\209\001\210\001\211\001\212\001\213\001\214\001\215\001\216\001\217\001\218\001\219\001\220\001\221\001\222\001\223\001\224\001\225\001\226\001\227\001\228\001\229\001\230\001\231\001\232\001\233\001\234\001\235\001\236\001\237\001\238\001\239\001\240\001\241\001\242\001\243\001\244\001\245\001\246\001\247\001\248\001\249\001\250\001\251\001\252\001\253\001\254\001\255\002\000\002\001\002\002\002\003\002\004\002\005\002\006\002\007\002\b\002\t\002\n\002\011\002\012\002\r\002\014\002\015\002\016\002\017\002\018\002\019\002\020\002\021\002\022\002\023\002\024\002\025\002\026\002\027\002\028\002\029\002\030\002\031\002 \002!\002\"\002#\002+\011\237\002-\002.\002/\0020\0021\0022\0023\0024\0025\0026\0027\0028\0029\002:\002;\002<\002=\002>\002?\002@\002I\002J\002K\002L\002M\002N\002O\002P\002Q\002R\002S\002T\002U\002V\002W\002X\002Y\002Z\002[\002\\\002]\002^\002_\002`\002a\002b\002c\002d\002e\002f\002g\002h\002i\002j\002k\002l\002m\002n\002o\002p\002q\002r\002s\002t\002u\002v\002w\002x\002y\002z\002{\002|\002}\002~\002\127\002\128\002\129\002\130\002\131\002\132\002\133\002\134\002\135\002\136\002\137\002\138\002\139\002\140\002\141\002\142\002\143\002\144\002\145\002\146\002\147\002\148\002\149\002\150\002\151\002\152\002\153\002\154\002\155\002\156\002\157\002\158\002\159\002\160\002\161\002\162\002\163\002\164\002\165\002\166\002\167\002\168\002\169\002\170\002\171\002\172\002\173\002\174\002\175\002\176\002\177\002\178\002\179\002\180\002\181\002\182\002\183\002\184\002\185\002\186\002\187\002\188\002\189\002\190\002\191\002\192\002\193\002\194\002\195\002\196\002\197\002\198\002\199\002\200\002\201\002\202\002\203\002\204\002\205\002\206\002\207\002\208\002\209\002\210\002\211\002\212\002\213\002\214\002\236\002\237\002\238\002\239\002\240\002\241\002\242\002\243\002\244\002\245\002\246\002\247\002\248\002\249\002\225\002\226\002\227\002\250\002\251\002\230\002\231\002\252\002\253\002\254\002\255\003\000\003\001\003\002\003\003\003\004\003\005\003\006\003\007\003\b\003\t\003\n\003\011\003\012\003\r\003\014\003\015\003\016\003\017\003\018\003\019\003\020\002\215\002\216\002\217\002\218\002\219\002\220\002\221\002\222\002\223\002\224\002\228\002\229\003\021\003\022\003\023\002\232\002\233\002\234\002\235\003\024\003\025\003\026\003\027\003\028\003\029\003\030\003\031\003 \003!\003\"\003#\003$\003%\003&\003'\003(\003)\003*\003+\003,\003-\003.\003/\0030\0031\0032\0033\0034\0035\0036\0037\0038\0039\003:\003;\003<\003=\003>\003?\003@\003A\003B\003C\003D\003E\003F\003G\003H\003I\003J\003K\003L\003M\003N\003O\003P\003Q\003R\003S\003T\003U\003V\003W\003X\003Y\003Z\003[\003\\\003]\003^\003_\003`\003a\003b\003c\003d\003e\003f\003g\003h\003i\003j\003k\003l\003m\003n\003o\003p\003q\003r\003s\003t\003u\003v\003w\003x\003y\003z\003{\003|\003}\003~\003\127\003\128\003\129\003\130\003\131\003\132\003\133\003\134\003\135\003\194\003\195\003\196\003\157\003\197\003\171\003\172\003\177\003\178\003\179\003\180\003\181\003\182\003\183\003\184\003\185\003\186\003\187\003\188\003\189\003\190\003\191\003\198\003\136\003\137\003\138\003\139\003\140\003\141\003\142\003\143\003\144\003\145\003\192\003\193\003\199\003\200\003\146\003\147\003\148\003\149\003\150\003\151\003\152\003\153\003\154\003\155\003\156\003\158\003\201\003\202\003\203\003\204\003\205\003\206\003\207\003\208\003\209\003\210\003\211\003\212\003\213\003\214\003\215\003\216\003\217\003\218\003\219\003\220\003\221\003\222\003\223\003\224\003\225\003\226\003\227\003\228\003\229\003\230\003\231\003\232\003\233\003\234\003\235\003\236\003\237\003\238\003\239\003\240\003\241\003\242\003\243\003\244\003\245\003\246\003\247\003\248\003\249\003\250\003\251\003\252\003\253\003\254\003\255\004\000\004\001\004\002\004\003\004\004\004\005\004\006\004\007\004\b\004\t\004\n\004\011\004\012\004\r\004\014\004\015\004\016\004\017\004\018\004\019\004\020\004\021\004\022\004\023\004\024\004\025\004\026\004\027\004\028\004\029\004\030\004\031\004 \004!\004\"\004#\004$\004%\004&\004'\004(\004)\004*\004/\0040\0041\0042\0043\0044\0045\0046\0047\0048\0049\004:\004+\004,\004-\004.\004;\004<\004=\004>\004?\004@\004A\004B\004C\004D\004E\004F\004G\004H\004I\004J\004K\004L\004M\004N\004O\004P\004Q\004R\004S\004T\004U\004V\004W\004X\004Y\004Z\004[\004\\\004]\004^\004_\004`\004a\004b\004c\004d\004e\004f\004\143\004\144\004\145\004\146\004\147\004\148\004\149\004\150\004\151\004\152\004\153\004\154\004\155\004\156\004\157\004\158\004\159\004\160\004\161\004\162\004\163\004\164\004\165\004\166\004\167\004\168\004\169\004\170\004\171\004\172\004\173\004\174\004\175\004\176\004\177\004\178\004\179\004\180\004\181\004\182\004\183\004\184\004\185\004u\004v\004g\004h\004i\004j\004m\004n\004o\004p\004q\004r\004s\004t\004{\004|\004}\004~\004\127\004\128\004\129\004\130\004\131\004\132\004\133\004\134\004\135\004\136\004\137\004\138\004\139\004\140\004\141\004\142\004k\004l\004w\004x\004y\004z\004\186\004\187\004\188\004\189\004\190\004\191\004\192\004\193\004\194\004\195\004\196\004\197\004\198\004\199\004\200\004\201\004\202\004\203\004\204\004\205\004\206\004\207\004\208\004\209\004\210\004\211\004\212\004\213\004\214\004\215\004\216\004\217\004\218\004\219\004\220\004\221\004\222\004\223\004\224\004\225\004\226\004\227\004\228\004\229\004\230\004\231\004\232\004\233\004\234\004\235\004\236\004\237\004\238\004\239\004\240\004\241\004\242\004\243\004\244\004\245\004\246\004\247\004\248\004\249\004\250\004\251\004\252\004\253\004\254\004\255\005\000\005\001\005\002\005\003\005\004\005\005\005\006\005\007\007\015\007\016\007\017\007\018\005\026\005\027\005\028\005\029\005\030\005\031\005 \005!\005\"\005#\005$\005%\005&\005'\005(\005)\005*\005+\005\143\005\144\005\145\005\146\005\147\005\148\005\149\005\150\005\151\005\152\005\153\006<\006=\006>\006?\006@\006A\006B\006C\006D\006E\006F\006G\006H\006I\006J\006K\006L\006M\006N\006O\005,\005-\005.\005/\0050\0051\0052\0053\0054\0055\0056\005M\005N\005O\005P\005Q\005R\005S\005T\005U\005V\005W\005c\005d\005e\005f\005g\005h\005i\005j\005k\005l\005m\005\154\005\155\005\156\005\157\005\158\005\159\005\160\005\161\005\162\005\163\005\164\0057\0058\0059\005:\005;\005<\005=\005>\005?\005@\005A\005B\005C\005D\005E\005F\005G\005H\005I\005J\005K\005L\005X\005Y\005Z\005[\005\\\005]\005^\005_\005`\005a\005b\005n\005o\005p\005q\005r\005s\005t\005u\005v\005w\005x\005y\005z\005{\005|\005}\005~\005\127\005\128\005\129\005\130\005\131\005\132\005\133\005\134\005\135\005\136\005\137\005\138\005\139\005\140\005\141\005\142\005\165\005\166\005\167\005\168\005\169\005\170\005\171\005\172\005\173\005\174\005\175\005\176\005\177\005\178\005\179\005\180\005\181\005\182\005\183\005\184\005\185\005\186\005\250\005\251\005\252\005\253\005\254\005\255\006\000\006\001\006\002\006\003\006\004\006\016\006\017\006\018\006\019\006\020\006\021\006\022\006\023\006\024\006\025\006\026\006\027\006\028\006\029\006\030\006\031\006 \006!\006\"\006#\006$\006%\005\187\005\188\005\189\005\190\005\191\005\192\005\193\005\194\005\195\005\196\005\197\005\198\005\199\005\200\005\201\005\202\005\203\005\204\005\205\005\206\005\207\005\208\005\209\005\210\005\211\005\212\005\213\005\214\005\215\005\216\005\217\005\218\005\219\006\005\006\006\006\007\006\b\006\t\006\n\006\011\006\012\006\r\006\014\006\015\006&\006'\006(\006)\006*\006+\006,\006-\006.\006/\0060\0061\0062\0063\0064\0065\0066\0067\0068\0069\006:\006;\005\220\005\221\005\222\005\223\005\224\005\225\005\226\005\227\005\228\005\229\005\230\005\231\005\232\005\233\005\234\005\235\005\236\005\237\005\238\005\239\005\240\005\241\005\242\005\243\005\244\005\245\005\246\005\247\005\248\005\249\006P\006Q\006R\006S\006T\006U\006V\006W\006X\006Y\006Z\006[\006\\\006]\006^\006_\006`\006a\006b\006c\006d\006e\006f\006g\006h\006i\006j\006k\006l\006m\006n\006o\006p\006q\006r\006s\006t\006u\006v\006w\006x\006y\006z\006{\006|\006}\006~\006\127\006\128\006\129\006\130\006\131\006\132\006\133\006\134\006\135\006\136\006\137\006\138\006\139\006\140\006\141\006\142\006\143\006\144\006\145\006\146\006\147\006\148\006\149\006\150\006\151\006\152\006\153\006\154\006\155\006\156\006\157\006\158\006\159\006\160\006\161\006\162\006\163\006\164\006\165\006\166\006\167\006\168\006\169\006\170\006\171\006\172\006\173\006\174\006\175\006\176\006\177\006\178\006\179\006\180\006\181\006\182\006\183\006\184\006\185\006\186\006\187\006\188\006\189\006\190\006\191\006\192\006\193\006\194\006\195\006\196\006\197\006\198\006\199\006\200\006\201\006\202\006\203\006\204\006\205\006\206\006\207\006\208\006\209\006\210\006\211\006\212\006\213\006\214\003\159\003\160\003\161\003\162\003\163\003\164\003\165\003\166\003\167\003\168\003\169\003\170\003\173\003\174\003\175\003\176\006\215\006\216\006\217\006\218\006\219\006\220\006\221\006\222\006\223\006\224\006\225\006\226\006\227\006\228\006\229\006\230\006\231\006\232\006\233\006\234\006\235\006\236\006\237\006\238\006\239\006\240\006\241\006\242\006\243\006\244\006\245\006\246\006\247\006\248\006\249\006\250\006\251\006\252\006\253\006\254\006\255\007\000\007\001\007\002\007\003\007\004\007\005\007\006\007\007\007\b\007\t\007\n\007\011\007\012\007\r\007\019\007\020\007\021\007\022\007\023\007\024\007\025\007\026\007\027\007\028\007\029\007\030\007\031\007 \007!\007\"\007#\007$\007%\007&\007'\007(\007)\007*\007+\007,\007-\007.\007/\0070\0071\0072\0073\0074\0075\0076\0077\0078\0079\007:\007;\007<\007=\007>\007?\007@\007A\007B\007C\007D\007E\007F\007G\007H\007I\007J\007K\007L\007M\007N\007O\007P\007Q\007R\007S\007T\007U\007V\007W\007X\007Y\007Z\007[\007\\\007]\007^\007_\007`\007a\007b\007c\007d\007e\007f\007g\007h\007i\007j\007k\007l\007m\007n\007o\007p\007q\007r\007s\007t\007u\007v\007w\007x\007y\007z\007{\007|\007}\007~\007\127\007\128\007\129\007\130\007\131\007\132\007\133\007\134\007\135\007\136\007\137\007\138\007\139\007\140\007\141\007\142\007\143\007\144\007\145\007\146\007\147\007\148\007\149\007\150\007\151\007\152\007\153\007\154\007\155\007\156\007\157\007\158\007\159\007\160\007\161\007\162\007\163\007\164\007\165\007\166\007\167\007\168\007\169\007\170\007\171\007\172\007\173\007\174\007\175\007\176\007\177\007\178\b\183\b\184\b\185\b\186\b\187\b\188\b\189\b\190\b\191\b\192\b\193\b\194\b\195\b\196\b\197\b\198\b\199\b\200\b\201\b\202\b\131\b\132\b\133\b\134\b\135\b\136\b\137\b\138\b\139\b\140\b\141\b\142\b\143\b\144\b\145\b\146\b\147\b\148\b\149\b\150\b\151\b\152\b\153\b\154\b\155\b\156\b\157\b\158\b\159\b\160\b\161\b\162\b\163\b\164\b\165\b\166\b\167\b\168\b\169\b\170\b\171\b\172\b\173\b\174\b\175\b\176\b\177\b\178\b\179\b\180\b\181\b\182\b\203\b\204\b\205\b\206\b\207\b\208\b\209\b\210\b\211\005\b\005\t\005\n\005\011\005\012\005\r\005\014\005\015\005\016\005\017\005\018\005\019\005\020\005\021\005\022\005\023\005\024\005\025\007\014\007\179\007\180\007\181\007\182\007\183\007\184\007\185\007\186\007\187\007\188\007\189\007\190\007\191\007\192\007\193\007\194\007\195\007\196\007\197\007\198\007\199\007\200\007\201\007\202\007\203\007\204\007\205\007\206\007\207\007\208\007\209\007\210\007\211\007\212\007\213\007\214\007\215\007\216\007\217\007\218\007\219\007\220\007\221\007\222\007\223\007\224\007\225\007\226\007\227\007\228\007\229\007\230\007\231\007\232\007\233\007\234\007\235\007\236\007\237\007\238\007\239\007\240\007\241\007\242\007\243\007\244\007\245\007\246\007\247\007\248\007\249\007\250\007\251\007\252\007\253\007\254\007\255\b\000\b\001\b\002\b\003\b\004\b\005\b\006\b\007\b\b\b\t\b\n\b\011\b\012\b\r\b\014\b\015\b\016\b\017\b\018\b\019\b\020\b\021\b\022\b\023\b\024\b\025\b\026\b\027\b\028\b\029\b\030\b\031\b \b!\b\"\b#\b$\b%\b&\b'\b(\b)\b*\b+\b,\b-\b.\b/\b0\b1\b2\b3\b4\b5\b6\b7\b8\b9\b:\b;\b<\b=\b>\b?\b@\bA\bB\bC\bD\bE\bF\bG\bH\bI\bJ\bK\bL\bM\bN\bO\bP\bQ\bR\bS\bT\bU\bV\bW\bX\bY\bZ\b[\b\\\b]\b^\b_\b`\ba\bb\bc\bd\be\bf\bg\bh\bi\bj\bk\bl\bm\bn\bo\bp\bq\br\bs\bt\bu\bv\bw\bx\by\bz\b{\b|\b}\b~\b\127\b\128\b\129\b\130\b\212\b\213\b\214\b\215\b\216\b\217\b\218\b\219\b\220\b\221\b\222\b\223\b\224\b\225\b\226\b\227\b\228\b\229\b\230\b\231\b\232\b\233\b\234\b\235\b\236\b\237\b\238\b\239\b\240\b\241\b\242\b\243\b\244\b\245\b\246\b\247\b\248\b\249\b\250\b\251\b\252\b\253\b\254\b\255\t\000\t\001\t\002\t\003\t\004\t\005\t\006\t\007\t\b\t\t\t\n\t\011\t\012\t\r\t\014\t\015\t\016\t\017\t\018\t\019\t\020\t\021\t\022\t\023\t\024\t\025\t\026\t\027\t\028\t\029\t\030\t\031\t \t!\t\"\t#\t$\t%\t&\t'\t(\t)\t*\t+\t,\t-\t.\t/\t0\t1\t2\t3\t4\t5\t6\t7\t8\t9\t:\t;\t<\t=\t>\t?\t@\tA\tB\tC\tD\tE\tF\tG\tH\tI\tJ\tK\tL\tM\tN\tO\tP\tQ\tR\tS\tT\tU\tV\tW\tX\tY\tZ\t[\t\\\t]\t^\t_\t`\ta\tb\tc\td\te\tf\tg\th\ti\tj\tk\tl\tm\tn\to\tp\tq\tr\ts\tt\tu\tv\tw\tx\ty\tz\t{\t|\t}\t~\t\127\t\128\t\129\t\130\t\131\t\132\t\133\t\134\t\135\t\136\t\137\t\138\t\139\t\140\t\141\t\142\t\143\t\144\t\145\t\146\t\147\t\148\t\149\t\150\t\151\t\152\t\153\t\154\t\155\t\156\t\157\t\158\t\159\t\160\t\161\t\162\t\163\t\164\t\165\t\166\t\167\t\168\t\169\t\170\t\171\t\172\t\173\t\174\t\175\t\176\t\177\t\178\t\179\t\180\t\181\t\182\t\183\t\184\t\185\t\186\t\187\t\188\t\189\t\190\t\191\t\192\t\193\t\194\t\195\t\196\t\197\t\198\t\199\t\200\t\201\t\202\t\203\t\204\t\205\t\206\t\207\t\208\t\209\t\210\t\211\t\212\t\213\t\214\t\215\t\216\t\217\t\218\t\219\t\220\t\221\t\222\t\223\t\224\t\225\t\226\t\227\t\228\t\229\t\230\t\231\t\232\t\233\t\234\t\235\t\236\t\237\t\238\t\239\t\240\t\241\t\242\t\243\t\244\t\245\t\246\t\247\t\248\t\249\t\250\t\251\t\252\t\253\t\254\t\255\n\000\n\001\n\002\n\003\n\004\n\005\n\006\n\007\n\b\n\t\n\n\n\011\n\012\n\r\n\014\n\015\n\016\n\017\n\018\n\019\n\020\n\021\n\022\n\023\n\024\n\025\n\026\n\027\n\028\n\029\n\030\n\031\n \n!\n\"\n#\n$\n%\n&\n'\n(\n)\n*\n+\n,\n-\n.\n/\n0\n1\n2\n3\n4\n5\n6\n7\n8\n9\n:\n;\n<\n=\n>\n?\n@\nA\nB\nC\nD\nE\nF\nG\nH\nI\nJ\nK\nL\nM\nN\nO\nP\nQ\nR\nS\nT\nU\nV\nW\nX\nY\nZ\n[\n\\\n]\n^\n_\n`\na\nb\nc\nd\ne\nf\ng\nh\ni\nj\nk\nl\nm\nn\no\np\nq\nr\ns\nt\nu\nv\nw\nx\ny\nz\n{\n|\n}\n~\n\127\n\128\n\129\n\130\n\131\n\132\n\133\n\134\n\135\n\136\n\137\n\138\n\139\n\140\n\141\n\142\n\143\n\144\n\145\n\146\n\147\n\148\n\149\n\150\n\151\n\152\n\153\n\154\n\155\n\156\n\157\n\158\n\159\n\160\n\161\n\162\n\163\n\164\n\165\n\166\n\167\n\168\n\169\n\170\n\171\n\172\n\173\n\174\n\175\n\176\n\177\n\178\n\179\n\180\n\181\n\182\n\183\n\184\n\185\n\186\n\187\n\188\n\189\n\190\n\191\n\192\n\193\n\194\n\195\n\196\n\197\n\198\n\199\n\200\n\201\n\202\n\203\n\204\n\205\n\206\n\207\n\208\n\209\n\210\n\211\n\212\n\213\n\214\n\215\n\216\n\217\n\218\n\219\n\220\n\221\n\222\n\223\n\224\n\225\n\226\n\227\n\228\n\229\n\230\n\231\n\232\n\233\n\234\n\235\n\236\n\237\n\238\n\239\n\240\n\241\n\242\n\243\n\244\n\245\n\246\n\247\n\248\n\249\n\250\n\251\n\252\n\253\n\254\n\255\011\000\011\001\011\002\011\003\011\004\011\005\011\006\011\007\011\b\011\t\011\n\011\011\011\012\011\r\011\014\011\015\011\016\011\017\011\018\011\019\011\020\011\021\011\022\011\023\011\024\011\025\011\026\011\027\011\028\011\029\011\030\011\031\011 \011!\011\"\011#\011$\011%\011&\011'\011(\011)\011*\011+\011,\011-\011.\011/\0110\0111\0112\0113\0114\0115\0116\0117\0118\0119\011:\011;\011<\011=\011>\011?\011@\011A\011B\011C\011D\011E\011F\011G\011H\011I\011J\011K\011L\011M\011N\011O\011P\011Q\011R\011S\011T\011U\011V\011W\011X\011Y\011Z\011[\011\\\011]\011^\011_\011`\011a\011b\011c\011d\011e\011f\011g\011h\011i\011j\011k\011l\011m\011n\011o\011p\011q\011r\011s\011t\011u\011v\011w\011x\011y\011z\011{\011|\011}\011~\011\127\011\128\011\129\011\130\011\131\011\132\011\133\011\134\011\135\011\136\011\137\011\138\011\139\011\140\011\141\011\142\011\143\011\144\011\145\011\146\011\147\011\148\011\149\011\150\011\151\011\152\011\153\011\154\011\155\011\156\011\157\011\158\011\159\011\160\011\161\011\162\011\163\011\164\011\165\011\166\011\167\011\168\011\169\011\170\011\171\011\172\011\173\011\174\011\175\011\176\011\177\011\178\011\179\011\180\011\181\011\182\011\183\011\184\011\185\011\186\011\187\011\188\011\189\011\190\011\191\011\192\011\193\011\194\011\195\011\196\011\197\011\198\011\199\011\200\011\201\011\202\011\203\011\204\011\205\011\206\011\207\011\208\011\213\011\214\011\215\011\216\011\217\002A\002B\002C\002D\002E\002F\002G\002H\011\209\011\210\011\211\011\212\011\218\011\219\011\220\011\221\011\222\011\223\011\224\011\225\011\238\011\239\011\240\011\241\011\242\011\243\011\244\011\245\011\246\011\247\011\248\011\249\002$\002%\002&\002'\002(\002)\002*\002,\011\226\011\227\011\228\011\229\011\230\011\231\011\232\011\233\011\234\011\235\011\236\011\250\011\251\011\252\011\253\011\254\011\255\012\000\012\001\012\002\012\003\012\004\012\005\012\006\012\007\012\b\012\t\012\n\012\011\012\012\012\r\012\014\012\015\012\016\012\017\012\018\012\019\012\020\012\021\012\022\012\023\012\024\012\025\012\026\012\027\012\028\012\029\012\030\012\031\012 \012!\012\"\012#\012$\012%\012&\012'\012(\012)\012*\012+\012,\012-\012.\012/\0120\0121\0122\0123\0124\0125\0126\0127\0128\0129\012:\012;\012<\012=\012>\012?\012@\012A\012B\012C\012D\012E\012F\012G\012H\012I\012J\012K\012L\012M\012N\012O\012P\012Q\012R\012S\012T\012U\012V\012W\012X\012Y\012Z\012[\012\\\012]\012^\012_\012`\012a\012b\012c\012d\012e\012f\012g\012h\012i\012j\012k\012l\012m\012n\012o\012p\012q\012r\012s\012t\012u\012v\012w\012x\012y\012z\012{\012|\012}\012~\012\127\012\128\012\129\012\130\012\131\012\132\012\133\012\134\012\135\012\136\012\137\012\138\012\139\012\140\012\141\012\142\012\143\012\144\012\145\012\146\012\147\012\148\012\149\012\150\012\151\012\152\012\153\012\154\012\155\012\156\012\157\012\158\012\159\012\160\012\161\012\162\012\163\012\164\012\165\012\166\012\167\012\168\012\169\012\170\012\171\012\172\012\173\012\174\012\175\012\176\012\177\012\178\012\179\012\180\012\181\012\182\012\183\012\184\012\185\012\186\012\187\012\188\012\189\012\190\012\191\012\192\012\193\012\194\012\195\012\196\012\197\012\198\012\199\012\200\012\201\012\202\012\203\012\204\012\205\012\206\012\207\012\208\012\209\012\210\012\211\012\212\012\213\012\214\012\215\012\216\012\217\012\218\012\219\012\220\012\221\012\222\012\223\012\224\012\225\012\226\012\227\012\228\012\229\012\230\012\231\012\232\012\233\012\234\012\235\012\236\012\237\012\238\012\239\012\240\012\241\012\242\012\243\012\244\012\245\012\246\012\247\012\248\012\249\012\250\012\251\012\252\012\253\012\254\012\255\r\000\r\001\r\002\r\003\r\004\r\005\r\006\r\007\r\b\r\t\r\n\r\011\r\012\r\r\r\014\r\015\r\016\r\017\r\018\r\019\r\020\r\021\r\022\r\023\r\024\r\025\r\026\r\027\r\028\r\029\r\030\r\031\r \r!\r\"\r#\r$\r%\r&\r'\r(\r)\r*\r+\r,\r-\r.\r/\r0\r1\r2\r3\r4\r5\r6\r7\r8\r9\r:\r;\r<\r=\r>\r?\r@\rA\rB\rC\rD\rE\rF\rG\rH\rI\rJ\rK\rL\rM\rN\rO\rP\rQ\rS\rT\rU\rV\rW\rX\rY\rZ\r[\r\\\r]\r^\r_\r`\ra\rb\rc\rd\re\rf\rg\rh\ri\rj\rk\rl\rm\rn\ro\rp\rq\rr\rs\rt\ru\rv\rw\rx\ry\rz\r{\r|\r}\r~\r\127\r\128\r\129\r\130\r\131\r\132\r\133\r\134\r\135\r\136\r\137\r\138\r\139\r\140\r\141\r\142\r\143\r\144\r\145\r\146\r\147\r\148\r\149\r\150\r\151\r\152\r\153\r\154\r\155\r\156\r\157\r\158\r\159\r\160\r\161\r\162\r\163\r\164\r\165\r\166\r\167\r\168\r\169\r\170\r\171\r\172\r\173\r\174\r\175\r\176\r\177\r\178\r\179\r\180\r\181\r\182\r\183\r\184\r\185\r\186\r\187\r\188\r\189\r\190\r\191\r\192\r\193\r\194\r\195\r\196\r\197\r\198\r\199\r\200\r\201\r\202\r\203\r\204\r\205\r\206\r\207\r\208\r\209\r\210\r\211\r\212\r\213\r\214\r\215\r\216\r\217\r\218\r\219\r\220\r\221\r\222") and lr0_items = - ((32, "\000\000\000\000\000\003\024\001\000\002\140\001\000\018\000\001\000\017\252\001\000\017\248\001\000\017\244\001\000\017\240\001\000\0178\001\000\017\236\001\000\017\232\001\000\017\228\001\000\017\224\001\000\017\220\001\000\017\216\001\000\017\212\001\000\017\208\001\000\017\204\001\000\017\200\001\000\017\196\001\000\017\192\001\000\017\188\001\000\017\184\001\000\017\180\001\000\017\176\001\000\017\172\001\000\017\168\001\000\017\164\001\000\017\160\001\000\0174\001\000\017\156\001\000\017\152\001\000\017\148\001\000\017\144\001\000\017\140\001\000\017\136\001\000\017\132\001\000\017\128\001\000\017|\001\000\017x\001\000\017t\001\000\017p\001\000\017l\001\000\017h\001\000\017d\001\000\017`\001\000\017\\\001\000\017X\001\000\017T\001\000\017P\001\000\017L\001\000\017H\001\000\017D\001\000\017@\001\000\017<\001\000\000\172\001\000\000\168\001\000\000\172\002\000\000\172\003\000\002\140\002\000\003\024\002\000\000\180\001\000\000\180\002\000\021\152\001\000\021\152\002\000\021\152\003\000\021d\001\000\n\248\001\000\n\152\001\000\n\236\001\000\n\232\001\000\n\228\001\000\n\252\001\000\011\012\001\000\n\220\001\000\n\244\001\000\n\240\001\000\n\156\001\000\011\004\001\000\n\224\001\000\n\216\001\000\n\212\001\000\n\208\001\000\n\196\001\000\n\188\001\000\011\b\001\000\011\000\001\000\n\184\001\000\n\180\001\000\n\176\001\000\n\172\001\000\n\168\001\000\n\164\001\000\n\168\002\000\n\164\002\000\005\156\001\000\005\156\002\000\n\168\003\000\n\164\003\000\n\168\004\000\n\164\004\000\n\168\005\000\n\176\002\000\n\172\002\000\n\176\003\000\n\172\003\000\n\176\004\000\n\172\004\000\n\176\005\000\n\184\002\000\n\180\002\000\n\184\003\000\n\180\003\000\n\184\004\000\n\180\004\000\n\184\005\000\011\028\001\000\011\016\001\000\n\192\001\000\n\204\001\000\n\200\001\000\n\160\001\000\011\020\001\000\011\024\001\000\021d\002\000\021d\003\000\021h\001\000\021\152\004\000\021\152\005\000\n \001\000\n\020\001\000\n$\001\000\n\024\001\000\n\028\001\000\n\016\001\000\n\028\002\000\n$\002\000\n \002\000\000\156\001\000\b\176\001\000\002\148\001\000\014\028\001\000\000\152\001\000\005\132\001\000\005\136\001\000\014\028\002\000\000\152\002\000\011\180\001\000\011\180\002\000\011\180\003\000\011\176\001\000\019\144\001\000\019\140\001\000\019\136\001\000\019\132\001\000\019\128\001\000\019|\001\000\019x\001\000\019t\001\000\018X\001\000\018T\001\000\014 \001\000\002X\001\000\002T\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\014\188\001\000\014\184\001\000\014\180\001\000\000\164\002\000\000\156\001\000\014\188\002\000\014\184\002\000\014\180\002\000\000\164\003\000\005\196\001\000\005\204\001\000\005\192\001\000\000\152\001\000\000\152\002\000\019\144\001\000\019\140\001\000\019\136\001\000\019\132\001\000\019\128\001\000\019|\001\000\019x\001\000\019t\001\000\018X\001\000\018T\001\000\002X\001\000\002T\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014\028\001\000\000\160\002\000\000\152\001\000\014\176\002\000\014\172\002\000\014\168\002\000\014\028\002\000\000\160\003\000\000\152\002\000\014\176\003\000\014\172\003\000\014\168\003\000\000\160\004\000\012\224\001\000\005\200\001\000\012\224\002\000\005\172\001\000\012\224\003\000\012\220\001\000\005\184\001\000\005\180\001\000\005\184\002\000\021$\001\000\021 \001\000\020D\001\000\020@\001\000\020<\001\000\0208\001\000\0204\001\000\0200\001\000\020,\001\000\020(\001\000\020$\001\000\020 \001\000\020\028\001\000\020\024\001\000\020\020\001\000\020\016\001\000\020\012\001\000\020\b\001\000\020\004\001\000\020\000\001\000\019\252\001\000\019\248\001\000\019\244\001\000\019p\001\000\019l\001\000\019h\001\000\019d\001\000\019`\001\000\019\\\001\000\019X\001\000\019T\001\000\019P\001\000\019L\001\000\019H\001\000\019D\001\000\019@\001\000\019<\001\000\0198\001\000\0194\001\000\0190\001\000\019,\001\000\019(\001\000\019$\001\000\019 \001\000\019\028\001\000\019\024\001\000\019\020\001\000\019\016\001\000\019\012\001\000\019\b\001\000\019\004\001\000\019\000\001\000\018\252\001\000\018\248\001\000\018\244\001\000\018P\001\000\018L\001\000\018H\001\000\018D\001\000\018@\001\000\018<\001\000\0188\001\000\0184\001\000\021 \002\000\020D\002\000\020@\002\000\020<\002\000\0208\002\000\0204\002\000\0200\002\000\020,\002\000\020(\002\000\020$\002\000\020 \002\000\020\028\002\000\020\024\002\000\020\020\002\000\020\016\002\000\020\012\002\000\020\b\002\000\020\004\002\000\020\000\002\000\019\252\002\000\019\248\002\000\019\244\002\000\019p\002\000\019l\002\000\019h\002\000\019d\002\000\019`\002\000\019\\\002\000\019X\002\000\019T\002\000\019P\002\000\019L\002\000\019H\002\000\019D\002\000\019@\002\000\019<\002\000\0198\002\000\0194\002\000\0190\002\000\019,\002\000\019(\002\000\019$\002\000\019 \002\000\019\028\002\000\019\024\002\000\019\020\002\000\019\016\002\000\019\012\002\000\019\b\002\000\019\004\002\000\019\000\002\000\018\252\002\000\018\248\002\000\018\244\002\000\018P\002\000\018L\002\000\018H\002\000\018D\002\000\018@\002\000\018<\002\000\0188\002\000\0184\002\000\019\016\003\000\019\012\003\000\019\b\003\000\019\004\003\000\019\000\003\000\018\252\003\000\018\248\003\000\018\244\003\000\0188\003\000\0184\003\000\002X\001\000\002T\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\002X\002\000\002X\003\000\002X\004\000\b\176\001\000\005\132\001\000\tt\001\000\tt\002\000\011\156\001\000\n\004\001\000\n\000\001\000\n\004\002\000\011\156\002\000\tt\003\000\tt\004\000\015 \001\000\015D\001\000\015@\001\000\005\128\001\000\005|\001\000\005x\001\000\005t\001\000\015D\002\000\015@\002\000\005\128\002\000\005|\002\000\005x\002\000\005t\002\000\015D\003\000\015@\003\000\005\128\003\000\005|\003\000\005x\003\000\005t\003\000\021P\001\000\021<\001\000\0210\001\000\021<\002\000\015D\004\000\005\128\004\000\005x\004\000\021D\001\000\0214\001\000\021D\002\000\021\028\001\000\021L\001\000\021H\001\000\021@\001\000\0218\001\000\021@\002\000\021H\002\000\021\016\001\000\021\012\001\000\012\000\001\000\011\252\001\000\021\016\002\000\012\000\002\000\021\016\003\000\012\000\003\000\012\000\004\000\012\220\001\000\012\000\005\000\005\184\001\000\005\180\001\000\005\180\002\000\t\252\001\000\t\248\001\000\t\252\002\000\005\180\003\000\012\220\002\000\012\220\003\000\012\220\001\000\005\184\001\000\005\180\001\000\005\188\001\000\007\240\001\000\007\240\002\000\021\012\002\000\011\252\002\000\021\012\003\000\011\252\003\000\021\012\004\000\011\252\004\000\011\252\005\000\012\220\001\000\011\252\006\000\005\184\001\000\005\180\001\000\011\248\001\000\021\028\002\000\014d\001\000\021\028\003\000\014d\002\000\014d\003\000\014`\001\000\021\016\001\000\021\012\001\000\021\016\002\000\021\016\003\000\021\012\002\000\021\012\003\000\021\012\004\000\015D\005\000\005\128\005\000\005x\005\000\021$\001\000\005\128\006\000\005x\006\000\005\176\001\000\012\220\001\000\005\184\001\000\005\180\001\000\005\176\002\000\005\128\007\000\005x\007\000\021\004\001\000\b\176\001\000\002\004\001\000\002\000\001\000\nt\001\000\nd\001\000\nT\001\000\nD\001\000\n<\001\000\019\144\001\000\019\140\001\000\019\136\001\000\019\132\001\000\019\128\001\000\019|\001\000\019x\001\000\019t\001\000\018X\001\000\018T\001\000\002X\001\000\002T\001\000\002\b\001\000\001\248\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\001\248\002\000\n\132\001\000\n\128\001\000\002X\001\000\002T\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\014\176\001\000\014\172\001\000\014\168\001\000\000\160\002\000\000\152\001\000\014\176\002\000\014\172\002\000\014\168\002\000\000\160\003\000\000\152\002\000\002\144\001\000\002\144\002\000\005\016\001\000\016T\001\000\b\240\001\000\002\216\001\000\002\216\002\000\002\216\003\000\r\184\001\000\r\180\001\000\r\176\001\000\r\172\001\000\r\168\001\000\r\164\001\000\r\160\001\000\r\156\001\000\r\152\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\184\002\000\r\180\002\000\r\176\002\000\r\172\002\000\r\168\002\000\r\164\002\000\r\184\003\000\r\180\003\000\r\176\003\000\r\172\003\000\r\168\003\000\r\164\003\000\020\252\001\000\002t\001\000\002p\001\000\011,\001\000\002t\002\000\002p\002\000\002l\001\000\002h\001\000\002l\002\000\002h\002\000\002d\001\000\002`\001\000\002\\\001\000\002|\001\000\002x\001\000\021$\001\000\021 \001\000\002|\002\000\002|\003\000\021$\001\000\021 \001\000\000\136\001\000\b\168\001\000\t\004\001\000\b\180\001\000\b\172\001\000\t\004\002\000\t\004\003\000\t\004\001\000\b\180\001\000\t\004\004\000\b\180\002\000\b\180\003\000\t\000\001\000\b\180\002\000\b\172\002\000\b\172\003\000\001\128\001\000\000\136\002\000\000|\001\000\b\224\001\000\b\216\001\000\000p\001\000\002H\001\000\t\004\001\000\b\228\001\000\b\220\001\000\b\180\001\000\000\148\001\000\b\228\002\000\b\220\002\000\b\180\002\000\000\148\002\000\002X\001\000\002T\001\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018`\001\000\018\\\001\000\005<\001\000\019\160\002\000\019\156\002\000\019\152\002\000\019\148\002\000\018\\\002\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\003\000\019\152\001\000\019\148\003\000\019\148\001\000\018`\001\000\018\\\001\000\000d\001\000\n\012\001\000\n\b\001\000\n\012\002\000\000d\002\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\019\152\004\000\018`\002\000\019\176\003\000\019\172\003\000\019\168\003\000\019\164\003\000\018`\003\000\019\176\001\000\019\172\001\000\019\168\004\000\019\168\001\000\019\164\004\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\005\000\019\168\002\000\019\164\002\000\018`\002\000\018`\004\000\018\240\001\000\018\236\001\000\018\232\001\000\018\228\001\000\018\224\001\000\018\220\001\000\018\216\001\000\018\212\001\000\018\208\001\000\018\204\001\000\018\200\001\000\018\196\001\000\018\192\001\000\018\188\001\000\018\184\001\000\018\180\001\000\018\176\001\000\018\172\001\000\018\168\001\000\018\164\001\000\018\160\001\000\018\156\001\000\018\152\001\000\018\148\001\000\018\144\001\000\018\140\001\000\018\136\001\000\018\132\001\000\018\128\001\000\018|\001\000\018x\001\000\018t\001\000\0180\001\000\018,\001\000\018(\001\000\018$\001\000\018 \001\000\018\028\001\000\018\024\001\000\018\020\001\000\018\144\002\000\018\140\002\000\018\136\002\000\018\132\002\000\018\128\002\000\018|\002\000\018x\002\000\018t\002\000\018\024\002\000\018\020\002\000\002X\001\000\002T\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\005@\001\000\014\152\001\000\014\148\001\000\014\144\001\000\000\144\002\000\000\132\002\000\000x\002\000\000\144\003\000\000\132\003\000\000x\003\000\000\144\004\000\000\144\005\000\000\132\004\000\000x\004\000\t\004\001\000\b\228\001\000\b\220\001\000\b\180\001\000\b\228\002\000\b\220\002\000\b\180\002\000\b\228\003\000\b\220\003\000\021\b\001\000\021(\001\000\014\152\002\000\014\148\002\000\014\144\002\000\014\152\003\000\000\156\001\000\014\152\004\000\014\152\005\000\012\220\001\000\005\184\001\000\005\180\001\000\014\148\003\000\000\152\001\000\014\148\004\000\000\152\002\000\014\148\005\000\014\148\006\000\012\220\001\000\005\184\001\000\005\180\001\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\208\002\000\019\204\002\000\019\200\002\000\019\196\002\000\019\192\002\000\019\188\002\000\019\184\002\000\019\180\002\000\018h\002\000\018d\002\000\002X\001\000\002T\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\019\208\003\000\019\204\003\000\019\200\003\000\019\196\003\000\019\192\003\000\019\188\003\000\019\184\003\000\019\180\003\000\018h\003\000\018d\003\000\014(\001\000\014$\001\000\014$\002\000\014$\003\000\014(\002\000\014(\003\000\014(\004\000\014(\005\000\014(\006\000\012\220\001\000\005\184\001\000\005\180\001\000\014(\007\000\019\208\004\000\019\204\004\000\019\200\004\000\019\196\004\000\019\192\004\000\019\188\004\000\019\184\004\000\019\180\004\000\018h\004\000\018d\004\000\000D\001\000\002L\001\000\002\160\001\000\002P\001\000\000l\001\000\019\208\005\000\019\204\005\000\019\200\005\000\019\196\005\000\019\192\005\000\019\188\005\000\019\184\005\000\019\180\005\000\018h\005\000\018d\005\000\002D\001\000\019\208\006\000\019\204\006\000\019\200\006\000\019\196\006\000\019\192\006\000\019\188\006\000\019\184\006\000\019\180\006\000\018h\006\000\018d\006\000\019\192\007\000\019\188\007\000\019\184\007\000\019\180\007\000\018d\007\000\019\184\b\000\019\180\b\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018`\001\000\018\\\001\000\019\184\t\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018`\002\000\018d\b\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\b\000\019\192\001\000\019\188\b\000\019\188\001\000\019\184\001\000\019\180\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\019\192\t\000\019\188\t\000\018p\002\000\018l\002\000\019\224\003\000\019\220\003\000\019\216\003\000\019\212\003\000\018l\003\000\019\216\004\000\019\212\004\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018`\001\000\018\\\001\000\019\216\005\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018`\002\000\018l\004\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\004\000\019\224\001\000\019\220\004\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\005\000\019\224\002\000\019\220\005\000\019\220\002\000\019\216\002\000\019\212\002\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\019\224\006\000\018p\003\000\019\240\004\000\019\236\004\000\019\232\004\000\019\228\004\000\018p\004\000\019\232\005\000\019\228\005\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018`\001\000\018\\\001\000\019\232\006\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018`\002\000\018p\005\000\019\240\005\000\019\240\001\000\019\236\005\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\006\000\019\240\002\000\019\236\006\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\018p\002\000\018l\002\000\019\240\007\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\018p\003\000\020\240\001\000\020\236\001\000\000\140\001\000\000\128\001\000\000t\001\000\020\240\002\000\021$\001\000\021 \001\000\014\132\001\000\014\132\002\000\014\132\003\000\000\140\001\000\000\128\001\000\000t\001\000\000\140\002\000\000\140\003\000\000\128\002\000\000t\002\000\020\240\003\000\014\140\001\000\014\136\001\000\014\140\002\000\014\136\002\000\021$\001\000\021 \001\000\014\140\003\000\014\140\004\000\014\140\005\000\000\140\001\000\000\128\001\000\000t\001\000\014\136\003\000\000\140\001\000\000\128\001\000\000t\001\000\014\128\001\000\000\140\001\000\000\128\001\000\000t\001\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\019\192\n\000\018p\003\000\019\208\007\000\019\204\007\000\019\200\007\000\019\196\007\000\018h\007\000\019\208\b\000\019\204\b\000\019\200\b\000\019\196\b\000\018h\b\000\019\200\t\000\019\196\t\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018`\001\000\018\\\001\000\019\200\n\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018`\002\000\018h\t\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\t\000\019\208\001\000\019\204\t\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\019\208\n\000\019\204\n\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\019\208\011\000\018p\003\000\002D\002\000\002@\001\000\000P\001\000\000L\001\000\000H\001\000\000P\002\000\000L\002\000\000H\002\000\000H\003\000\000H\004\000\000P\003\000\000L\003\000\000P\004\000\000P\005\000\012\220\001\000\005\184\001\000\005\180\001\000\000P\006\000\000P\007\000\000L\004\000\000L\005\000\000L\006\000\012\220\001\000\005\184\001\000\005\180\001\000\000L\007\000\000L\b\000\014\164\001\000\014\160\001\000\014\156\001\000\002T\002\000\002D\001\000\002T\003\000\014\164\002\000\014\160\002\000\014\156\002\000\014\164\003\000\000\156\001\000\014\164\004\000\014\164\005\000\012\220\001\000\005\184\001\000\005\180\001\000\014\160\003\000\000\152\001\000\014\160\004\000\000\152\002\000\014\160\005\000\014\160\006\000\012\220\001\000\005\184\001\000\005\180\001\000\014\156\003\000\002D\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\018p\003\000\014\144\003\000\002D\001\000\018\144\003\000\018\140\003\000\018\136\003\000\018\132\003\000\018\128\003\000\018|\003\000\018x\003\000\018t\003\000\018\024\003\000\018\020\003\000\014(\001\000\014$\001\000\018\144\004\000\018\140\004\000\018\136\004\000\018\132\004\000\018\128\004\000\018|\004\000\018x\004\000\018t\004\000\018\024\004\000\018\020\004\000\018\144\005\000\018\140\005\000\018\136\005\000\018\132\005\000\018\128\005\000\018|\005\000\018x\005\000\018t\005\000\018\024\005\000\018\020\005\000\002D\001\000\018\144\006\000\018\140\006\000\018\136\006\000\018\132\006\000\018\128\006\000\018|\006\000\018x\006\000\018t\006\000\018\024\006\000\018\020\006\000\018\128\007\000\018|\007\000\018x\007\000\018t\007\000\018\020\007\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018x\b\000\018t\b\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018x\t\000\018`\002\000\018\020\b\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018\128\b\000\018|\b\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\018\128\t\000\018|\t\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\018\128\n\000\018p\003\000\018\144\007\000\018\140\007\000\018\136\007\000\018\132\007\000\018\024\007\000\018\144\b\000\018\140\b\000\018\136\b\000\018\132\b\000\018\024\b\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018\136\t\000\018\132\t\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018\136\n\000\018`\002\000\018\024\t\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018\144\t\000\018\140\t\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\018\144\n\000\018\140\n\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\018\144\011\000\018p\003\000\018\176\002\000\018\172\002\000\018\168\002\000\018\164\002\000\018\160\002\000\018\156\002\000\018\152\002\000\018\148\002\000\018 \002\000\018\028\002\000\018\160\003\000\018\156\003\000\018\152\003\000\018\148\003\000\018\028\003\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018\152\004\000\018\148\004\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018\152\005\000\018`\002\000\018\028\004\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018\160\004\000\018\156\004\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\018\160\005\000\018\156\005\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\018\160\006\000\018p\003\000\018\176\003\000\018\172\003\000\018\168\003\000\018\164\003\000\018 \003\000\018\176\004\000\018\172\004\000\018\168\004\000\018\164\004\000\018 \004\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018\168\005\000\018\164\005\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018\168\006\000\018`\002\000\018 \005\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018\176\005\000\018\172\005\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\018\176\006\000\018\172\006\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\018\176\007\000\018p\003\000\018\240\002\000\018\236\002\000\018\232\002\000\018\228\002\000\018\224\002\000\018\220\002\000\018\216\002\000\018\212\002\000\018\208\002\000\018\204\002\000\018\200\002\000\018\196\002\000\018\192\002\000\018\188\002\000\018\184\002\000\018\180\002\000\0180\002\000\018,\002\000\018(\002\000\018$\002\000\018\208\003\000\018\204\003\000\018\200\003\000\018\196\003\000\018\192\003\000\018\188\003\000\018\184\003\000\018\180\003\000\018(\003\000\018$\003\000\002X\001\000\002T\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\018\208\004\000\018\204\004\000\018\200\004\000\018\196\004\000\018\192\004\000\018\188\004\000\018\184\004\000\018\180\004\000\018(\004\000\018$\004\000\014(\001\000\014$\001\000\018\208\005\000\018\204\005\000\018\200\005\000\018\196\005\000\018\192\005\000\018\188\005\000\018\184\005\000\018\180\005\000\018(\005\000\018$\005\000\018\208\006\000\018\204\006\000\018\200\006\000\018\196\006\000\018\192\006\000\018\188\006\000\018\184\006\000\018\180\006\000\018(\006\000\018$\006\000\002D\001\000\018\208\007\000\018\204\007\000\018\200\007\000\018\196\007\000\018\192\007\000\018\188\007\000\018\184\007\000\018\180\007\000\018(\007\000\018$\007\000\018\192\b\000\018\188\b\000\018\184\b\000\018\180\b\000\018$\b\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018\184\t\000\018\180\t\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018\184\n\000\018`\002\000\018$\t\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018\192\t\000\018\188\t\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\018\192\n\000\018\188\n\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\018\192\011\000\018p\003\000\018\208\b\000\018\204\b\000\018\200\b\000\018\196\b\000\018(\b\000\018\208\t\000\018\204\t\000\018\200\t\000\018\196\t\000\018(\t\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018\200\n\000\018\196\n\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018\200\011\000\018`\002\000\018(\n\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018\208\n\000\018\204\n\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\018\208\011\000\018\204\011\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\018\208\012\000\018p\003\000\018\240\003\000\018\236\003\000\018\232\003\000\018\228\003\000\018\224\003\000\018\220\003\000\018\216\003\000\018\212\003\000\0180\003\000\018,\003\000\018\224\004\000\018\220\004\000\018\216\004\000\018\212\004\000\018,\004\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018\216\005\000\018\212\005\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018\216\006\000\018`\002\000\018,\005\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018\224\005\000\018\220\005\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\018\224\006\000\018\220\006\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\018\224\007\000\018p\003\000\018\240\004\000\018\236\004\000\018\232\004\000\018\228\004\000\0180\004\000\018\240\005\000\018\236\005\000\018\232\005\000\018\228\005\000\0180\005\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018\232\006\000\018\228\006\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018\232\007\000\018`\002\000\0180\006\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018\240\006\000\018\236\006\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\018\240\007\000\018\236\007\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\018\240\b\000\018p\003\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\019\176\004\000\019\172\004\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\019\176\005\000\019\172\005\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\019\176\006\000\018p\003\000\018\\\003\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\019\160\003\000\019\156\003\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\019\160\004\000\019\156\004\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\019\160\005\000\018p\003\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018`\002\000\002T\002\000\002D\001\000\000\148\003\000\002|\004\000\000\140\001\000\000\128\001\000\000t\001\000\002|\005\000\014\140\001\000\014\136\001\000\002|\006\000\002|\007\000\002x\002\000\000\140\001\000\000\128\001\000\000t\001\000\002x\003\000\014\140\001\000\014\136\001\000\002x\004\000\002x\005\000\002`\002\000\t\232\001\000\t\232\002\000\014\192\001\000\014P\001\000\014T\001\000\002`\003\000\002`\004\000\014T\002\000\014T\003\000\020\160\001\000\020\156\001\000\020\156\002\000\011 \001\000\020\156\003\000\020\156\004\000\014<\001\000\014<\002\000\014<\003\000\000P\001\000\000L\001\000\000H\001\000\020\156\005\000\0148\001\000\000P\001\000\000L\001\000\000H\001\000\020\160\002\000\014\196\001\000\002D\001\000\014\192\001\000\002\\\002\000\002\\\003\000\002d\002\000\002d\003\000\014T\001\000\002d\004\000\002d\005\000\014T\001\000\002h\003\000\002h\004\000\014T\001\000\002t\003\000\002p\003\000\002p\004\000\002t\004\000\014\024\001\000\002t\005\000\002t\006\000\014\024\002\000\014\020\001\000\020\252\002\000\002D\001\000\020\248\001\000\020\244\001\000\020\248\002\000\020\244\002\000\002D\001\000\020\248\003\000\020\248\004\000\002D\001\000\r\184\004\000\r\180\004\000\r\176\004\000\r\172\004\000\r\168\004\000\r\164\004\000\r\184\005\000\r\180\005\000\r\176\005\000\r\172\005\000\r\168\005\000\r\164\005\000\r\184\006\000\r\180\006\000\r\176\006\000\r\172\006\000\r\168\006\000\r\164\006\000\r\184\007\000\r\184\001\000\r\180\007\000\r\180\001\000\r\176\001\000\r\172\001\000\r\168\001\000\r\164\001\000\r\160\001\000\r\156\001\000\r\152\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\184\b\000\r\184\002\000\r\180\002\000\r\176\002\000\r\172\002\000\r\168\002\000\r\164\002\000\r\184\t\000\r\184\003\000\r\180\003\000\r\176\003\000\r\172\003\000\r\168\003\000\r\164\003\000\r\184\n\000\r\184\004\000\r\180\004\000\r\176\004\000\r\172\004\000\r\168\004\000\r\164\004\000\r\184\011\000\r\184\005\000\r\180\005\000\r\176\005\000\r\172\005\000\r\168\005\000\r\164\005\000\r\180\b\000\r\160\002\000\r\156\002\000\r\152\002\000\r\148\002\000\r\144\002\000\r\140\002\000\r\160\003\000\r\156\003\000\r\152\003\000\r\148\003\000\r\144\003\000\r\140\003\000\r\184\001\000\r\180\001\000\r\176\001\000\r\172\001\000\r\168\001\000\r\164\001\000\r\160\004\000\r\160\001\000\r\156\004\000\r\156\001\000\r\152\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\184\002\000\r\180\002\000\r\176\002\000\r\172\002\000\r\168\002\000\r\164\002\000\r\160\005\000\r\184\003\000\r\180\003\000\r\176\003\000\r\172\003\000\r\168\003\000\r\164\003\000\r\160\006\000\r\184\004\000\r\180\004\000\r\176\004\000\r\172\004\000\r\168\004\000\r\164\004\000\r\160\007\000\r\184\005\000\r\180\005\000\r\176\005\000\r\172\005\000\r\168\005\000\r\164\005\000\r\160\b\000\r\160\002\000\r\156\005\000\r\156\002\000\r\152\002\000\r\148\002\000\r\144\002\000\r\140\002\000\021\144\001\000\r\148\004\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\016$\001\000\016\020\001\000\016\020\002\000\016\020\003\000\001\020\001\000\001\016\001\000\017\000\001\000\r\208\001\000\r\204\001\000\006\184\001\000\006\180\001\000\006\176\001\000\006\172\001\000\006\168\001\000\006\164\001\000\006\160\001\000\006\156\001\000\r\208\002\000\006\184\002\000\006\180\002\000\006\176\002\000\006\172\002\000\r\208\003\000\006\184\003\000\006\180\003\000\006\176\003\000\006\172\003\000\r\208\004\000\006\184\004\000\006\180\004\000\006\176\004\000\006\172\004\000\r\208\005\000\006\184\005\000\006\180\005\000\006\176\005\000\006\172\005\000\002D\001\000\r\208\006\000\006\184\006\000\006\180\006\000\006\176\006\000\006\172\006\000\r\208\007\000\006\184\007\000\006\180\007\000\006\176\007\000\006\172\007\000\r\208\001\000\r\204\001\000\006\184\b\000\006\184\001\000\006\180\b\000\006\180\001\000\006\176\001\000\006\172\001\000\006\168\001\000\006\164\001\000\006\160\001\000\006\156\001\000\r\208\002\000\006\184\t\000\006\184\002\000\006\180\002\000\006\176\002\000\006\172\002\000\r\208\003\000\006\184\n\000\006\184\003\000\006\180\003\000\006\176\003\000\006\172\003\000\r\208\004\000\006\184\011\000\006\184\004\000\006\180\004\000\006\176\004\000\006\172\004\000\r\208\005\000\006\184\012\000\006\184\005\000\006\180\005\000\006\176\005\000\006\172\005\000\002D\001\000\r\208\006\000\006\184\r\000\006\184\006\000\006\180\006\000\006\176\006\000\006\172\006\000\r\204\002\000\006\180\t\000\006\168\002\000\006\164\002\000\006\160\002\000\006\156\002\000\r\204\003\000\006\168\003\000\006\164\003\000\006\160\003\000\006\156\003\000\r\208\001\000\r\204\001\000\006\184\001\000\006\180\001\000\006\176\001\000\006\172\001\000\006\168\004\000\006\168\001\000\006\164\004\000\006\164\001\000\006\160\001\000\006\156\001\000\r\208\002\000\006\184\002\000\006\180\002\000\006\176\002\000\006\172\002\000\006\168\005\000\r\208\003\000\006\184\003\000\006\180\003\000\006\176\003\000\006\172\003\000\006\168\006\000\r\208\004\000\006\184\004\000\006\180\004\000\006\176\004\000\006\172\004\000\006\168\007\000\r\208\005\000\006\184\005\000\006\180\005\000\006\176\005\000\006\172\005\000\006\168\b\000\002D\001\000\r\208\006\000\006\184\006\000\006\180\006\000\006\176\006\000\006\172\006\000\006\168\t\000\r\204\002\000\006\168\002\000\006\164\005\000\006\164\002\000\006\160\002\000\006\156\002\000\015\156\001\000\015\152\001\000\015\136\001\000\015\132\001\000\015\152\002\000\015\132\002\000\015\136\002\000\015\156\002\000\015\148\001\000\015\144\001\000\015\128\001\000\015|\001\000\015\144\002\000\015|\002\000\015\128\002\000\015\148\002\000\021d\001\000\017,\001\000\016\252\001\000\016\248\001\000\016\240\001\000\002\024\001\000\001\248\001\000\015\156\001\000\015\152\001\000\015\136\001\000\015\132\001\000\n\228\001\000\016\252\002\000\016\248\002\000\016\252\003\000\016\248\003\000\016\252\004\000\016\248\004\000\t\\\001\000\tX\001\000\016\252\005\000\016\248\005\000\016\248\006\000\016\252\006\000\t\128\001\000\t\128\002\000\t\128\003\000\t\128\004\000\tT\001\000\t4\001\000\t4\002\000\020p\001\000\020l\001\000\005\128\001\000\005|\001\000\020p\002\000\020l\002\000\005\128\002\000\005|\002\000\020p\003\000\020l\003\000\005\128\003\000\005|\003\000\020p\004\000\005\128\004\000\020p\005\000\005\128\005\000\021$\001\000\005\128\006\000\005\128\007\000\005\128\b\000\r\240\001\000\005\128\t\000\012\168\001\000\012\168\002\000\015\024\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\016\b\001\000\016\b\002\000\016\b\003\000\b\232\001\000\b\244\001\000\b\236\001\000\b\244\002\000\b\236\002\000\b\244\003\000\b\236\003\000\t\b\001\000\001\012\001\000\016\b\004\000\021d\001\000\016\016\001\000\016\012\001\000\015\216\001\000\015\212\001\000\015\208\001\000\002\024\001\000\001\248\001\000\016$\001\000\n\152\001\000\016\228\001\000\016\224\001\000\016\220\001\000\016\180\001\000\016\176\001\000\016\228\002\000\014\232\001\000\014\220\001\000\014\216\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\016\216\001\000\016\212\001\000\016\208\001\000\016l\001\000\016h\001\000\016\216\002\000\014\232\001\000\014\220\001\000\014\216\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\016\204\001\000\016\200\001\000\016\196\001\000\016x\001\000\001\244\001\000\016\204\002\000\014\232\001\000\014\220\001\000\014\216\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\0160\001\000\016,\001\000\014\244\001\000\014\240\001\000\014\236\001\000\011l\001\000\011h\001\000\011d\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\011l\002\000\003T\001\000\003H\001\000\002\180\001\000\016\\\001\000\021h\001\000\b\232\001\000\021\136\001\000\021T\001\000\021X\001\000\016\172\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\016`\001\000\021\148\001\000\001\252\001\000\015\204\001\000\015\200\001\000\015\196\001\000\015\192\001\000\015\200\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\015\200\003\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\015\200\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\015\200\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\015\184\001\000\015\180\001\000\015\176\001\000\015\172\001\000\015\168\001\000\001\244\001\000\001\244\002\000\015\160\001\000\006\000\001\000\015\160\002\000\015\160\003\000\b`\001\000\b\\\001\000\bX\001\000\bT\001\000\011\\\001\000\011\\\002\000\002D\001\000\b`\002\000\b\\\002\000\bX\002\000\bT\002\000\011|\001\000\012`\001\000\012`\002\000\012`\003\000\017\020\001\000\021$\001\000\017\020\002\000\t\004\001\000\b\228\001\000\b\180\001\000\b\228\002\000\b\180\002\000\015\188\001\000\r\200\001\000\006\152\001\000\006\148\001\000\006\144\001\000\006\140\001\000\015\164\001\000\015\164\002\000\015\164\003\000\017\016\001\000\017\016\002\000\021\140\001\000\015\140\001\000\016\232\001\000\021l\001\000\015x\001\000\016\236\001\000\r\200\002\000\006\152\002\000\006\148\002\000\006\144\002\000\006\140\002\000\r\200\003\000\006\152\003\000\006\148\003\000\006\144\003\000\006\140\003\000\r\208\001\000\r\204\001\000\006\184\001\000\006\180\001\000\006\176\001\000\006\172\001\000\006\168\001\000\006\164\001\000\006\160\001\000\006\156\001\000\006\152\004\000\006\148\004\000\r\208\002\000\006\184\002\000\006\180\002\000\006\176\002\000\006\172\002\000\006\152\005\000\r\208\003\000\006\184\003\000\006\180\003\000\006\176\003\000\006\172\003\000\006\152\006\000\r\208\004\000\006\184\004\000\006\180\004\000\006\176\004\000\006\172\004\000\006\152\007\000\r\208\005\000\006\184\005\000\006\180\005\000\006\176\005\000\006\172\005\000\006\152\b\000\002D\001\000\r\208\006\000\006\184\006\000\006\180\006\000\006\176\006\000\006\172\006\000\006\152\t\000\r\204\002\000\006\168\002\000\006\164\002\000\006\160\002\000\006\156\002\000\006\148\005\000\r\200\001\000\006\152\001\000\006\148\001\000\006\144\004\000\006\144\001\000\006\140\001\000\r\200\002\000\006\152\002\000\006\148\002\000\006\144\005\000\006\144\002\000\006\140\002\000\016\244\001\000\017\004\001\000\015t\001\000\017\004\002\000\015\156\001\000\015\152\001\000\015\148\001\000\015\144\001\000\017\004\003\000\0170\001\000\017\012\001\000\017$\001\000\017 \001\000\017\028\001\000\017\024\001\000\b\244\001\000\002\020\001\000\002\016\001\000\017$\002\000\017 \002\000\017\028\002\000\017\024\002\000\b\244\002\000\002\020\002\000\017$\003\000\017 \003\000\002\020\003\000\017 \004\000\012H\001\000\012H\002\000\012H\003\000\012L\001\000\012D\001\000\0128\001\000\r\196\001\000\012H\004\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\r\196\002\000\006\136\002\000\006\132\002\000\006\128\002\000\006|\002\000\r\208\001\000\r\204\001\000\006\184\001\000\006\180\001\000\006\176\001\000\006\172\001\000\006\168\001\000\006\164\001\000\006\160\001\000\006\156\001\000\006\136\003\000\006\132\003\000\r\208\002\000\006\184\002\000\006\180\002\000\006\176\002\000\006\172\002\000\006\136\004\000\r\208\003\000\006\184\003\000\006\180\003\000\006\176\003\000\006\172\003\000\006\136\005\000\r\208\004\000\006\184\004\000\006\180\004\000\006\176\004\000\006\172\004\000\006\136\006\000\r\208\005\000\006\184\005\000\006\180\005\000\006\176\005\000\006\172\005\000\006\136\007\000\002D\001\000\r\208\006\000\006\184\006\000\006\180\006\000\006\176\006\000\006\172\006\000\006\136\b\000\r\204\002\000\006\168\002\000\006\164\002\000\006\160\002\000\006\156\002\000\006\132\004\000\r\200\001\000\006\152\001\000\006\148\001\000\006\144\001\000\006\140\001\000\006\128\003\000\r\200\002\000\006\152\002\000\006\148\002\000\006\144\002\000\006\140\002\000\006\128\004\000\017(\001\000\017\b\001\000\002\028\001\000\r\196\003\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\003\000\006|\001\000\0120\002\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\003\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\012@\002\000\r\196\001\000\012@\003\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\012<\002\000\012<\003\000\0124\002\000\017\012\001\000\012\\\001\000\r\196\001\000\012\\\002\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\r\192\001\000\r\188\001\000\006x\001\000\006t\001\000\006p\001\000\006l\001\000\r\192\002\000\006x\002\000\006t\002\000\006p\002\000\006l\002\000\r\208\001\000\r\204\001\000\006\184\001\000\006\180\001\000\006\176\001\000\006\172\001\000\006\168\001\000\006\164\001\000\006\160\001\000\006\156\001\000\006x\003\000\006t\003\000\r\208\002\000\006\184\002\000\006\180\002\000\006\176\002\000\006\172\002\000\006x\004\000\r\208\003\000\006\184\003\000\006\180\003\000\006\176\003\000\006\172\003\000\006x\005\000\r\208\004\000\006\184\004\000\006\180\004\000\006\176\004\000\006\172\004\000\006x\006\000\r\208\005\000\006\184\005\000\006\180\005\000\006\176\005\000\006\172\005\000\006x\007\000\002D\001\000\r\208\006\000\006\184\006\000\006\180\006\000\006\176\006\000\006\172\006\000\006x\b\000\r\204\002\000\006\168\002\000\006\164\002\000\006\160\002\000\006\156\002\000\006t\004\000\r\200\001\000\006\152\001\000\006\148\001\000\006\144\001\000\006\140\001\000\006p\003\000\r\200\002\000\006\152\002\000\006\148\002\000\006\144\002\000\006\140\002\000\006p\004\000\r\192\003\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\006l\003\000\017\b\001\000\012X\001\000\012T\001\000\012P\001\000\021d\001\000\017,\001\000\016\252\001\000\016\248\001\000\016\240\001\000\012X\002\000\012T\002\000\002\024\001\000\001\248\001\000\012X\003\000\012T\003\000\t\240\001\000\t\240\002\000\t\240\003\000\012\220\001\000\t\240\004\000\005\184\001\000\005\180\001\000\t\240\005\000\012X\004\000\t\236\001\000\012X\005\000\012\220\001\000\012X\006\000\005\184\001\000\005\180\001\000\012X\007\000\012X\b\000\t\244\001\000\012T\004\000\012T\005\000\012T\006\000\n,\001\000\n(\001\000\t\236\001\000\n,\002\000\015\148\001\000\015\144\001\000\015\128\001\000\015|\001\000\n\240\001\000\002\024\002\000\002\024\003\000\017,\002\000\016\240\002\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\016\240\003\000\017,\003\000\017,\004\000\002D\001\000\017,\005\000\r\196\001\000\012P\002\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\002\020\004\000\002\020\005\000\017$\004\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\017$\005\000\017\028\003\000\015\168\001\000\017\028\004\000\015\168\002\000\015\168\003\000\015\000\001\000\014\252\001\000\014\248\001\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\015\000\002\000\014\252\002\000\015\000\003\000\017\024\003\000\r\200\004\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\140\004\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\015\188\002\000\012D\001\000\015\188\003\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\012`\004\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\011|\002\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\b`\003\000\b\\\003\000\bX\003\000\bT\003\000\b`\004\000\b\\\004\000\bX\004\000\b\\\005\000\0114\001\000\b\\\006\000\b`\005\000\015\176\002\000\015\172\002\000\015\172\003\000\015\184\002\000\015\180\002\000\015\180\003\000\0140\001\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\bl\001\000\bh\001\000\bd\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\bh\002\000\000@\001\000\000<\001\000\002\228\001\000\002\224\001\000\002\220\001\000\002\228\002\000\002\224\002\000\002\220\002\000\002\228\003\000\002\224\003\000\002\220\003\000\005\020\001\000\020\152\001\000\020\148\001\000\002\212\001\000\002\212\002\000\002\212\003\000\005\012\001\000\021h\001\000\004\140\001\000\004\136\001\000\004\132\001\000\004\140\002\000\004\136\002\000\004\132\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004\140\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004\140\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004\140\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004\140\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004\140\007\000\rp\006\000\rl\006\000\rh\006\000\rd\006\000\r`\006\000\r\\\006\000\r\184\001\000\r\180\001\000\r\176\001\000\r\172\001\000\r\168\001\000\r\164\001\000\r\160\001\000\r\156\001\000\r\152\001\000\r\148\001\000\r\144\001\000\r\140\001\000\rp\007\000\rl\007\000\r\184\002\000\r\180\002\000\r\176\002\000\r\172\002\000\r\168\002\000\r\164\002\000\rp\b\000\r\184\003\000\r\180\003\000\r\176\003\000\r\172\003\000\r\168\003\000\r\164\003\000\rp\t\000\r\184\004\000\r\180\004\000\r\176\004\000\r\172\004\000\r\168\004\000\r\164\004\000\rp\n\000\r\184\005\000\r\180\005\000\r\176\005\000\r\172\005\000\r\168\005\000\r\164\005\000\rp\011\000\r\160\002\000\r\156\002\000\r\152\002\000\r\148\002\000\r\144\002\000\r\140\002\000\rl\b\000\rp\001\000\rl\001\000\rh\001\000\rd\007\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\b\000\rd\002\000\r`\002\000\r\\\002\000\rp\003\000\rl\003\000\rh\003\000\rd\t\000\rd\003\000\r`\003\000\r\\\003\000\rp\004\000\rl\004\000\rh\004\000\rd\n\000\rd\004\000\r`\004\000\r\\\004\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\011\000\rd\005\000\r`\005\000\r\\\005\000\0144\002\000\0144\003\000\014,\001\000\002\180\002\000\002\180\003\000\002\180\004\000\006<\001\000\0068\001\000\0064\001\000\0068\002\000\0064\002\000\005\252\001\000\005\248\001\000\005\244\001\000\005\240\001\000\005\236\001\000\005\232\001\000\005\252\002\000\005\248\002\000\005\244\002\000\005\240\002\000\014(\001\000\014$\001\000\005\252\003\000\005\248\003\000\005\252\004\000\005\248\004\000\005\252\005\000\005\248\005\000\002D\001\000\000h\001\000\000h\002\000\005\252\006\000\005\244\003\000\005\240\003\000\002D\001\000\005\244\004\000\005\236\002\000\0068\003\000\0068\004\000\0068\005\000\0064\003\000\0064\004\000\006<\002\000\006$\001\000\006 \001\000\006\028\001\000\006 \002\000\006\028\002\000\006 \003\000\006 \004\000\011\132\001\000\004t\001\000\r\232\001\000\r\228\001\000\007\b\001\000\007\004\001\000\007\000\001\000\006\252\001\000\006\248\001\000\006\244\001\000\006\240\001\000\006\236\001\000\r\232\002\000\007\b\002\000\007\004\002\000\007\000\002\000\006\252\002\000\r\232\003\000\007\b\003\000\007\004\003\000\007\000\003\000\006\252\003\000\r\232\004\000\007\b\004\000\007\004\004\000\007\000\004\000\006\252\004\000\r\232\005\000\007\b\005\000\007\004\005\000\007\000\005\000\006\252\005\000\002D\001\000\r\232\006\000\007\b\006\000\007\004\006\000\007\000\006\000\006\252\006\000\r\232\007\000\007\b\007\000\007\004\007\000\007\000\007\000\006\252\007\000\r\232\001\000\r\228\001\000\007\b\b\000\007\b\001\000\007\004\b\000\007\004\001\000\007\000\001\000\006\252\001\000\006\248\001\000\006\244\001\000\006\240\001\000\006\236\001\000\r\232\002\000\007\b\t\000\007\b\002\000\007\004\002\000\007\000\002\000\006\252\002\000\r\232\003\000\007\b\n\000\007\b\003\000\007\004\003\000\007\000\003\000\006\252\003\000\r\232\004\000\007\b\011\000\007\b\004\000\007\004\004\000\007\000\004\000\006\252\004\000\r\232\005\000\007\b\012\000\007\b\005\000\007\004\005\000\007\000\005\000\006\252\005\000\002D\001\000\r\232\006\000\007\b\r\000\007\b\006\000\007\004\006\000\007\000\006\000\006\252\006\000\r\228\002\000\007\004\t\000\006\248\002\000\006\244\002\000\006\240\002\000\006\236\002\000\r\228\003\000\006\248\003\000\006\244\003\000\006\240\003\000\006\236\003\000\r\232\001\000\r\228\001\000\007\b\001\000\007\004\001\000\007\000\001\000\006\252\001\000\006\248\004\000\006\248\001\000\006\244\004\000\006\244\001\000\006\240\001\000\006\236\001\000\r\232\002\000\007\b\002\000\007\004\002\000\007\000\002\000\006\252\002\000\006\248\005\000\r\232\003\000\007\b\003\000\007\004\003\000\007\000\003\000\006\252\003\000\006\248\006\000\r\232\004\000\007\b\004\000\007\004\004\000\007\000\004\000\006\252\004\000\006\248\007\000\r\232\005\000\007\b\005\000\007\004\005\000\007\000\005\000\006\252\005\000\006\248\b\000\002D\001\000\r\232\006\000\007\b\006\000\007\004\006\000\007\000\006\000\006\252\006\000\006\248\t\000\r\228\002\000\006\248\002\000\006\244\005\000\006\244\002\000\006\240\002\000\006\236\002\000\r\224\001\000\006\240\004\000\006\232\001\000\006\228\001\000\006\224\001\000\006\220\001\000\r\224\002\000\006\240\005\000\006\232\002\000\006\228\002\000\006\224\002\000\006\220\002\000\r\224\003\000\006\232\003\000\006\228\003\000\006\224\003\000\006\220\003\000\r\232\001\000\r\228\001\000\007\b\001\000\007\004\001\000\007\000\001\000\006\252\001\000\006\248\001\000\006\244\001\000\006\240\001\000\006\236\001\000\006\232\004\000\006\228\004\000\r\232\002\000\007\b\002\000\007\004\002\000\007\000\002\000\006\252\002\000\006\232\005\000\r\232\003\000\007\b\003\000\007\004\003\000\007\000\003\000\006\252\003\000\006\232\006\000\r\232\004\000\007\b\004\000\007\004\004\000\007\000\004\000\006\252\004\000\006\232\007\000\r\232\005\000\007\b\005\000\007\004\005\000\007\000\005\000\006\252\005\000\006\232\b\000\002D\001\000\r\232\006\000\007\b\006\000\007\004\006\000\007\000\006\000\006\252\006\000\006\232\t\000\r\228\002\000\006\248\002\000\006\244\002\000\006\240\002\000\006\236\002\000\006\228\005\000\r\224\001\000\006\232\001\000\006\228\001\000\006\224\004\000\006\224\001\000\006\220\001\000\r\224\002\000\006\232\002\000\006\228\002\000\006\224\005\000\006\224\002\000\006\220\002\000\r\224\004\000\012x\001\000\r\220\001\000\012t\001\000\012p\001\000\012h\001\000\012d\001\000\006\220\004\000\006\216\001\000\006\212\001\000\006\208\001\000\006\204\001\000\r\220\002\000\006\216\002\000\006\212\002\000\006\208\002\000\006\204\002\000\r\232\001\000\r\228\001\000\007\b\001\000\007\004\001\000\007\000\001\000\006\252\001\000\006\248\001\000\006\244\001\000\006\240\001\000\006\236\001\000\006\216\003\000\006\212\003\000\r\232\002\000\007\b\002\000\007\004\002\000\007\000\002\000\006\252\002\000\006\216\004\000\r\232\003\000\007\b\003\000\007\004\003\000\007\000\003\000\006\252\003\000\006\216\005\000\r\232\004\000\007\b\004\000\007\004\004\000\007\000\004\000\006\252\004\000\006\216\006\000\r\232\005\000\007\b\005\000\007\004\005\000\007\000\005\000\006\252\005\000\006\216\007\000\002D\001\000\r\232\006\000\007\b\006\000\007\004\006\000\007\000\006\000\006\252\006\000\006\216\b\000\r\228\002\000\006\248\002\000\006\244\002\000\006\240\002\000\006\236\002\000\006\212\004\000\r\224\001\000\006\232\001\000\006\228\001\000\006\224\001\000\006\220\001\000\006\208\003\000\r\224\002\000\006\232\002\000\006\228\002\000\006\224\002\000\006\220\002\000\006\208\004\000\r\220\003\000\r\220\001\000\012t\001\000\012p\001\000\012h\001\000\012d\001\000\006\216\001\000\006\212\001\000\006\208\001\000\006\204\003\000\006\204\001\000\012d\002\000\r\196\001\000\012d\003\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\012t\002\000\r\196\001\000\012t\003\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\012p\002\000\012p\003\000\012h\002\000\012l\001\000\r\216\001\000\r\212\001\000\006\200\001\000\006\196\001\000\006\192\001\000\006\188\001\000\r\216\002\000\006\200\002\000\006\196\002\000\006\192\002\000\006\188\002\000\r\232\001\000\r\228\001\000\007\b\001\000\007\004\001\000\007\000\001\000\006\252\001\000\006\248\001\000\006\244\001\000\006\240\001\000\006\236\001\000\006\200\003\000\006\196\003\000\r\232\002\000\007\b\002\000\007\004\002\000\007\000\002\000\006\252\002\000\006\200\004\000\r\232\003\000\007\b\003\000\007\004\003\000\007\000\003\000\006\252\003\000\006\200\005\000\r\232\004\000\007\b\004\000\007\004\004\000\007\000\004\000\006\252\004\000\006\200\006\000\r\232\005\000\007\b\005\000\007\004\005\000\007\000\005\000\006\252\005\000\006\200\007\000\002D\001\000\r\232\006\000\007\b\006\000\007\004\006\000\007\000\006\000\006\252\006\000\006\200\b\000\r\228\002\000\006\248\002\000\006\244\002\000\006\240\002\000\006\236\002\000\006\196\004\000\r\224\001\000\006\232\001\000\006\228\001\000\006\224\001\000\006\220\001\000\006\192\003\000\r\224\002\000\006\232\002\000\006\228\002\000\006\224\002\000\006\220\002\000\006\192\004\000\r\216\003\000\r\220\001\000\012t\001\000\012p\001\000\012h\001\000\012d\001\000\006\216\001\000\006\212\001\000\006\208\001\000\006\204\001\000\006\188\003\000\r\228\004\000\r\220\001\000\012t\001\000\012p\001\000\012h\001\000\012d\001\000\006\236\004\000\006\216\001\000\006\212\001\000\006\208\001\000\006\204\001\000\r\224\001\000\007\000\b\000\006\232\001\000\006\228\001\000\006\224\001\000\006\220\001\000\r\224\002\000\007\000\t\000\006\232\002\000\006\228\002\000\006\224\002\000\006\220\002\000\r\232\b\000\r\220\001\000\012t\001\000\012p\001\000\012h\001\000\012d\001\000\006\252\b\000\006\216\001\000\006\212\001\000\006\208\001\000\006\204\001\000\r\228\002\000\006\248\002\000\006\244\002\000\006\240\002\000\006\236\002\000\r\224\001\000\006\232\001\000\006\228\001\000\006\224\001\000\006\220\001\000\r\224\002\000\006\232\002\000\006\228\002\000\006\224\002\000\006\220\002\000\016\232\001\000\007\176\001\000\007\172\001\000\0060\001\000\006,\001\000\006(\001\000\012\128\001\000\006,\002\000\006(\002\000\021d\001\000\017,\001\000\016\252\001\000\016\248\001\000\016\240\001\000\007\140\001\000\002\024\001\000\001\248\001\000\021d\001\000\017,\001\000\016\252\001\000\016\248\001\000\016\240\001\000\007\168\001\000\002\024\001\000\001\248\001\000\017,\002\000\016\240\002\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\007\164\001\000\007\160\001\000\007\156\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\017,\003\000\007\164\002\000\007\160\002\000\014(\001\000\014$\001\000\007\164\003\000\007\164\004\000\007\164\005\000\002D\001\000\007\164\006\000\017,\004\000\007\160\003\000\002D\001\000\007\160\004\000\007\156\002\000\007\168\002\000\007\168\003\000\007\140\002\000\007\140\003\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\007\136\001\000\007\132\001\000\007\128\001\000\007|\001\000\007x\001\000\007t\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\007\136\002\000\007\132\002\000\007\128\002\000\007|\002\000\014(\001\000\014$\001\000\007\136\003\000\007\132\003\000\007\136\004\000\007\132\004\000\007\136\005\000\007\132\005\000\002D\001\000\007\136\006\000\007\128\003\000\007|\003\000\002D\001\000\007\128\004\000\007x\002\000\006,\003\000\006,\004\000\006,\005\000\006,\006\000\006(\003\000\006(\004\000\006(\005\000\012|\001\000\0060\002\000\021d\001\000\017,\001\000\016\252\001\000\016\248\001\000\016\240\001\000\006h\001\000\006\\\001\000\006X\001\000\006T\001\000\005 \001\000\005\028\001\000\002\024\001\000\001\248\001\000\005 \002\000\005\028\002\000\t\236\001\000\005 \003\000\005 \004\000\012\220\001\000\005\184\001\000\005\180\001\000\005 \005\000\005 \006\000\005\028\003\000\005\028\004\000\017,\002\000\016\240\002\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\007\164\001\000\007\160\001\000\007\156\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\006h\002\000\017,\003\000\007\164\002\000\007\160\002\000\006h\003\000\014(\001\000\014$\001\000\007\164\003\000\006h\004\000\007\164\004\000\006h\005\000\007\164\005\000\006h\006\000\002D\001\000\006h\007\000\006\\\002\000\006T\002\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\007\164\001\000\007\160\001\000\007\156\001\000\007\152\001\000\007\148\001\000\007\144\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\007\164\002\000\007\160\002\000\007\152\002\000\007\148\002\000\014(\001\000\014$\001\000\007\164\003\000\007\152\003\000\007\164\004\000\007\152\004\000\007\164\005\000\007\152\005\000\002D\001\000\007\160\003\000\007\148\003\000\002D\001\000\006\\\003\000\006\\\004\000\006T\003\000\006T\004\000\006X\002\000\006X\003\000\006d\001\000\006`\001\000\006L\001\000\006H\001\000\006D\001\000\006@\001\000\021d\001\000\017,\001\000\016\252\001\000\016\248\001\000\016\240\001\000\006d\002\000\006`\002\000\006L\002\000\006H\002\000\006D\002\000\002\024\001\000\001\248\001\000\017,\002\000\016\240\002\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\007\164\001\000\007\160\001\000\007\156\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\006`\003\000\017,\003\000\007\164\002\000\007\160\002\000\006`\004\000\014(\001\000\014$\001\000\007\164\003\000\006`\005\000\007\164\004\000\006`\006\000\007\164\005\000\006`\007\000\002D\001\000\006`\b\000\006d\003\000\006L\003\000\006H\003\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\007\164\001\000\007\160\001\000\007\156\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\006d\004\000\006L\004\000\006L\005\000\007\164\002\000\007\160\002\000\006d\005\000\014(\001\000\014$\001\000\007\164\003\000\006d\006\000\007\164\004\000\006d\007\000\007\164\005\000\006d\b\000\002D\001\000\006d\t\000\007\160\003\000\002D\001\000\006H\004\000\006H\005\000\006D\003\000\006D\004\000\006@\002\000\018\012\001\000\007`\001\000\002\208\001\000\002\204\001\000\002\200\001\000\002\196\001\000\002\208\002\000\002\204\002\000\002\208\003\000\002\208\004\000\002\208\005\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\011\228\001\000\011\224\001\000\011\220\001\000\011\216\001\000\011\212\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\011\188\001\000\011\184\001\000\011\244\002\000\011\240\002\000\011\236\002\000\011\232\002\000\011\228\002\000\011\224\002\000\011\220\002\000\011\216\002\000\011\212\002\000\011\208\002\000\011\204\002\000\011\200\002\000\011\244\003\000\011\240\003\000\011\236\003\000\011\232\003\000\011\228\003\000\011\224\003\000\011\220\003\000\011\216\003\000\011\212\003\000\011\208\003\000\011\204\003\000\011\200\003\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\011\244\004\000\011\232\004\000\011\220\004\000\011\208\004\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\011\244\005\000\011\232\005\000\011\220\005\000\011\208\005\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\011\244\006\000\011\232\006\000\011\220\006\000\011\208\006\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\011\244\007\000\011\232\007\000\011\220\007\000\011\208\007\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\011\244\b\000\011\232\b\000\011\220\b\000\011\208\b\000\011\208\t\000\011\244\t\000\t\148\001\000\t\144\001\000\t\132\001\000\t\148\002\000\t\144\002\000\t\148\003\000\t\144\003\000\t|\001\000\tx\001\000\t|\002\000\tx\002\000\005L\001\000\005H\001\000\005D\001\000\005D\002\000\005L\002\000\005H\002\000\005L\003\000\005H\003\000\t\140\001\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\005L\004\000\005H\004\000\t\176\002\000\t\168\002\000\021\192\001\000\021\188\001\000\021\192\002\000\021\188\002\000\021\192\003\000\021\188\003\000\021\216\001\000\021\212\001\000\021\216\002\000\021\192\004\000\021\192\005\000\000P\001\000\000L\001\000\000H\001\000\021\188\004\000\021\188\005\000\000P\001\000\000L\001\000\000H\001\000\021\188\006\000\r\240\001\000\r\240\002\000\r\240\003\000\002D\001\000\r\240\004\000\r\240\005\000\002D\001\000\021\024\001\000\021\208\001\000\021\204\001\000\021\200\001\000\021\196\001\000\021\208\002\000\021\204\002\000\021\208\003\000\021\204\003\000\021\204\004\000\021\204\005\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\t\156\002\000\t\152\002\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\003\000\t\156\001\000\t\152\003\000\t\152\001\000\t\136\001\000\t\136\002\000\t\164\002\000\t\160\002\000\t\156\004\000\t\164\003\000\t\160\003\000\t\176\001\000\t\168\001\000\t\164\004\000\t\164\001\000\t\160\004\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\t\164\005\000\t\164\002\000\t\160\002\000\t\004\001\000\b\212\001\000\b\180\001\000\b\212\002\000\b\180\002\000\b\180\003\000\005\132\001\000\b\212\003\000\t\188\001\000\b\208\001\000\t\172\001\000\t\164\002\000\t\160\002\000\021\208\004\000\021\208\005\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\021\200\002\000\021\196\002\000\b\244\001\000\021\196\003\000\021\196\004\000\t\004\001\000\b\180\001\000\b\244\002\000\021\200\003\000\021\200\004\000\t\004\001\000\b\180\001\000\014H\001\000\014L\001\000\t\168\003\000\014L\002\000\014L\003\000\t\176\003\000\t\004\001\000\b\180\001\000\005H\005\000\005L\005\000\005L\006\000\014\b\001\000\005P\001\000\014\b\002\000\t|\003\000\tx\003\000\t|\004\000\tx\004\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\t|\005\000\tx\005\000\t\164\002\000\t\160\002\000\t|\006\000\014\004\001\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\148\004\000\t\144\004\000\t\136\001\000\t\164\002\000\t\160\002\000\t\148\005\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\t\132\002\000\t\132\003\000\011\244\n\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\011\244\011\000\011\232\t\000\011\220\t\000\011\232\n\000\011\220\n\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\011\220\011\000\011\232\011\000\011\232\012\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\011\232\r\000\016\004\001\000\016\000\001\000\016\004\002\000\016\000\002\000\016\004\003\000\016\000\003\000\003$\001\000\003$\002\000\003$\003\000\016(\001\000\001\236\001\000\016\024\001\000\b\248\001\000\001\240\001\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\016(\002\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\016H\002\000\016H\003\000\016L\002\000\016L\003\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\016D\002\000\016D\003\000\015\248\002\000\015\240\002\000\015\232\002\000\015\232\003\000\014\232\001\000\014\220\001\000\014\216\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\014\232\002\000\014\220\002\000\014\216\002\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\014\232\003\000\014\220\003\000\014\216\003\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\014\232\004\000\014\220\004\000\014\216\004\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\014\232\005\000\014\220\005\000\014\216\005\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\014\232\006\000\014\220\006\000\r\136\001\000\r\132\001\000\r\128\001\000\r|\001\000\rx\001\000\rt\001\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\r\136\002\000\r\132\002\000\r\128\002\000\r|\002\000\rx\002\000\rt\002\000\0168\002\000\0168\003\000\0164\002\000\015\252\002\000\015\244\002\000\015\236\002\000\015\228\002\000\015\224\002\000\015\220\002\000\015\220\003\000\003\020\001\000\003\016\001\000\003\012\001\000\003\b\001\000\003\004\001\000\003\000\001\000\002\252\001\000\002\248\001\000\002\244\001\000\002\240\001\000\002\236\001\000\002\232\001\000\003\020\002\000\003\016\002\000\003\012\002\000\003\b\002\000\003\004\002\000\003\000\002\000\002\252\002\000\002\248\002\000\002\244\002\000\002\240\002\000\002\236\002\000\002\232\002\000\003\020\003\000\003\016\003\000\003\012\003\000\003\b\003\000\003\004\003\000\003\000\003\000\002\252\003\000\002\248\003\000\002\244\003\000\002\240\003\000\002\236\003\000\002\232\003\000\015\020\001\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\015\020\002\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\015\020\003\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\015\020\004\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\rX\005\000\rT\005\000\rP\005\000\rL\005\000\rH\005\000\rD\005\000\r\184\001\000\r\180\001\000\r\176\001\000\r\172\001\000\r\168\001\000\r\164\001\000\r\160\001\000\r\156\001\000\r\152\001\000\r\148\001\000\r\144\001\000\r\140\001\000\rX\006\000\rT\006\000\r\184\002\000\r\180\002\000\r\176\002\000\r\172\002\000\r\168\002\000\r\164\002\000\rX\007\000\r\184\003\000\r\180\003\000\r\176\003\000\r\172\003\000\r\168\003\000\r\164\003\000\rX\b\000\r\184\004\000\r\180\004\000\r\176\004\000\r\172\004\000\r\168\004\000\r\164\004\000\rX\t\000\r\184\005\000\r\180\005\000\r\176\005\000\r\172\005\000\r\168\005\000\r\164\005\000\rX\n\000\r\160\002\000\r\156\002\000\r\152\002\000\r\148\002\000\r\144\002\000\r\140\002\000\rT\007\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\rL\006\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\rL\007\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\rL\b\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\rL\t\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\rL\n\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\003H\002\000\016 \001\000\016\188\001\000\016\184\001\000\016\168\001\000\016\164\001\000\016\160\001\000\016\156\001\000\016\152\001\000\016\148\001\000\016\144\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\016|\001\000\016t\001\000\016p\001\000\016d\001\000\016X\001\000\016@\001\000\016<\001\000\b\252\001\000\b\244\001\000\002\020\001\000\002\016\001\000\016\188\002\000\016\184\002\000\016\168\002\000\016\164\002\000\016\160\002\000\016\156\002\000\016\152\002\000\016\148\002\000\016\144\002\000\016\140\002\000\016\136\002\000\016\132\002\000\016\128\002\000\016|\002\000\016t\002\000\016p\002\000\016d\002\000\016X\002\000\016@\002\000\016<\002\000\b\252\002\000\b\244\002\000\002\020\002\000\021d\001\000\016\168\003\000\016X\003\000\016<\003\000\002\020\003\000\016X\004\000\n\232\001\000\000@\001\000\n\228\001\000\000<\001\000\016\168\004\000\016\168\005\000\016\168\006\000\t8\001\000\t8\002\000\t8\003\000\t8\004\000\t<\001\000\tL\001\000\tH\001\000\t@\001\000\t8\005\000\011\244\001\000\011\240\001\000\011\236\001\000\011\232\001\000\011\228\001\000\011\224\001\000\011\220\001\000\011\216\001\000\011\212\001\000\011\208\001\000\011\204\001\000\011\200\001\000\011\196\001\000\011\192\001\000\011\188\001\000\011\184\001\000\tL\002\000\tL\003\000\011\196\002\000\011\192\002\000\011\188\002\000\011\184\002\000\tL\001\000\tH\001\000\t@\001\000\011\196\003\000\011\188\003\000\011\184\003\000\011\188\004\000\011\184\004\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\011\184\005\000\011\188\005\000\011\188\006\000\tH\002\000\t@\002\000\011\192\003\000\011\192\004\000\tD\001\000\b\244\001\000\tP\001\000\016\168\007\000\tL\001\000\tH\001\000\t@\001\000\016\168\b\000\016\168\t\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\016\168\n\000\020\152\001\000\n\244\001\000\020\148\001\000\n\240\001\000\n\156\001\000\004t\001\000\012L\001\000\007\180\001\000\007\180\002\000\007\180\003\000\002D\001\000\007\180\004\000\002\176\001\000\002\176\002\000\002\176\003\000\006P\001\000\r\248\001\000\005(\001\000\005$\001\000\r\248\002\000\002\176\004\000\011\164\001\000\011\160\001\000\011\164\002\000\011\160\002\000\000\140\001\000\000\128\001\000\000t\001\000\011\164\003\000\002\176\005\000\002\176\006\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\002\184\001\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\002\184\002\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\002\184\003\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\002\184\004\000\003\028\001\000\003\028\002\000\003\028\003\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\003\028\004\000\003\028\005\000\005\024\001\000\003 \001\000\003 \002\000\003 \003\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\003 \004\000\021p\001\000\016P\001\000\016\028\001\000\016\192\001\000\0030\001\000\003,\001\000\003(\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\0030\002\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\0030\003\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\0030\004\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\0030\005\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\0030\006\000\016\028\001\000\003T\002\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\003T\003\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003,\002\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003,\003\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003,\004\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003,\005\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\005\004\001\000\005\000\001\000\004\252\001\000\004\248\001\000\004\244\001\000\004\240\001\000\004\236\001\000\004\232\001\000\004\228\001\000\004\224\001\000\004\220\001\000\004\216\001\000\004\212\001\000\004\208\001\000\004\204\001\000\004\200\001\000\004\196\001\000\004\192\001\000\004\188\001\000\004\184\001\000\004\180\001\000\004\176\001\000\004\172\001\000\004\168\001\000\004\164\001\000\004\160\001\000\004\156\001\000\004\152\001\000\004\148\001\000\004\144\001\000\003D\001\000\002\192\001\000\006\016\001\000\006\012\001\000\006\016\002\000\006\016\003\000\006\016\004\000\006\016\005\000\006\012\002\000\006\020\001\000\006\020\002\000\006\024\001\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\006\024\002\000\006\b\001\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\006\b\002\000\015\248\002\000\015\240\002\000\015\232\002\000\004\248\002\000\004\244\002\000\004\240\002\000\004\224\002\000\004\220\002\000\004\216\002\000\004\200\002\000\004\196\002\000\004\192\002\000\015\232\003\000\004\200\003\000\004\196\003\000\004\192\003\000\014\228\001\000\014\212\001\000\014\208\001\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\014\228\002\000\014\212\002\000\014\208\002\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\014\228\003\000\014\212\003\000\014\208\003\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\014\228\004\000\014\212\004\000\014\208\004\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\014\228\005\000\014\212\005\000\014\228\006\000\r(\001\000\r$\001\000\r \001\000\r\028\001\000\r\024\001\000\r\020\001\000\003L\001\000\r(\002\000\r$\002\000\r \002\000\r\028\002\000\r\024\002\000\r\020\002\000\r\184\001\000\r\180\001\000\r\176\001\000\r\172\001\000\r\168\001\000\r\164\001\000\r\160\001\000\r\156\001\000\r\152\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r(\003\000\r$\003\000\r\184\002\000\r\180\002\000\r\176\002\000\r\172\002\000\r\168\002\000\r\164\002\000\r(\004\000\r\184\003\000\r\180\003\000\r\176\003\000\r\172\003\000\r\168\003\000\r\164\003\000\r(\005\000\r\184\004\000\r\180\004\000\r\176\004\000\r\172\004\000\r\168\004\000\r\164\004\000\r(\006\000\r\184\005\000\r\180\005\000\r\176\005\000\r\172\005\000\r\168\005\000\r\164\005\000\r(\007\000\r\160\002\000\r\156\002\000\r\152\002\000\r\148\002\000\r\144\002\000\r\140\002\000\r$\004\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\r\028\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\r\028\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\r\028\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\r\028\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\r\028\007\000\r\136\001\000\r\132\001\000\r\128\001\000\r|\001\000\rx\001\000\rt\001\000\r \003\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\r\136\002\000\r\132\002\000\r\128\002\000\r|\002\000\rx\002\000\rt\002\000\r \004\000\r\136\003\000\r\132\003\000\r\128\003\000\r|\003\000\rx\003\000\rt\003\000\r\184\001\000\r\180\001\000\r\176\001\000\r\172\001\000\r\168\001\000\r\164\001\000\r\160\001\000\r\156\001\000\r\152\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r\136\004\000\r\132\004\000\r\184\002\000\r\180\002\000\r\176\002\000\r\172\002\000\r\168\002\000\r\164\002\000\r\136\005\000\r\184\003\000\r\180\003\000\r\176\003\000\r\172\003\000\r\168\003\000\r\164\003\000\r\136\006\000\r\184\004\000\r\180\004\000\r\176\004\000\r\172\004\000\r\168\004\000\r\164\004\000\r\136\007\000\r\184\005\000\r\180\005\000\r\176\005\000\r\172\005\000\r\168\005\000\r\164\005\000\r\136\b\000\r\160\002\000\r\156\002\000\r\152\002\000\r\148\002\000\r\144\002\000\r\140\002\000\r\132\005\000\r|\004\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\r|\005\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\r|\006\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\r|\007\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\0144\001\000\r|\b\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\r\136\001\000\r\132\001\000\r\128\004\000\r\128\001\000\r|\001\000\rx\001\000\rt\001\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\r\136\002\000\r\132\002\000\r\128\005\000\r\128\002\000\r|\002\000\rx\002\000\rt\002\000\rx\004\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\rx\005\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\rx\006\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\0144\001\000\rx\007\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\016 \001\000\003X\001\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\003X\002\000\007d\001\000\004p\001\000\004p\002\000\004p\003\000\015\016\001\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\0058\001\000\0054\001\000\0050\001\000\005,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\004\000\002\000\003\252\002\000\003\248\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004\000\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004\000\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004\000\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004\000\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004\000\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003\252\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003\252\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003\252\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003\252\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\003\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003\220\002\000\003\216\002\000\003\212\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003\220\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003\220\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003\220\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003\220\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003\220\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003\216\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003\216\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003\216\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003\216\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\003\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003\208\002\000\003\204\002\000\003\200\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003\208\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003\208\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003\208\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003\208\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003\208\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003\204\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003\204\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003\204\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003\204\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\003\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003\196\002\000\003\192\002\000\003\188\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003\196\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003\196\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003\196\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003\196\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003\196\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003\192\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003\192\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003\192\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003\192\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\003\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\004\012\002\000\004\b\002\000\004\004\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004\012\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004\012\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004\012\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004\012\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004\012\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004\b\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004\b\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004\b\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004\b\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\003\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\004<\002\000\0048\002\000\0044\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004<\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004<\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004<\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004<\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004<\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\0048\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\0048\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\0048\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\0048\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\003\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003\172\002\000\003\168\002\000\003\164\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003\172\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003\172\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003\172\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003\172\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003\172\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003\168\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003\168\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003\168\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003\168\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\003\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003\244\002\000\003\240\002\000\003\236\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003\244\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003\244\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003\244\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003\244\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003\244\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003\240\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003\240\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003\240\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003\240\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\003\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003\232\002\000\003\228\002\000\003\224\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003\232\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003\232\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003\232\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003\232\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003\232\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003\228\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003\228\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003\228\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003\228\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\003\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\004$\002\000\004 \002\000\004\028\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004$\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004$\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004$\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004$\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004$\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004 \003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004 \004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004 \005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004 \006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\003\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003\184\002\000\003\180\002\000\003\176\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003\184\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003\184\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003\184\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003\184\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003\184\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003\180\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003\180\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003\180\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003\180\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\003\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003\160\002\000\003\156\002\000\003\152\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003\160\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003\160\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003\160\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003\160\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003\160\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003\156\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003\156\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003\156\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003\156\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\003\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003\148\002\000\003\144\002\000\003\140\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003\148\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003\148\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003\148\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003\148\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003\148\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003\144\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003\144\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003\144\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003\144\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\003\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003\136\002\000\003\132\002\000\003\128\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003\136\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003\136\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003\136\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003\136\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003\136\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003\132\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003\132\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003\132\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003\132\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\003\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003d\002\000\003`\002\000\003\\\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003d\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003d\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003d\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003d\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003d\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003`\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003`\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003`\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003`\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\003\000\003\\\001\000\0040\002\000\004,\002\000\004(\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\0040\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\0040\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\0040\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\0040\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\0040\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004,\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004,\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004,\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004,\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\003\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\004\024\002\000\004\020\002\000\004\016\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004\024\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004\024\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004\024\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004\024\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004\024\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004\020\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004\020\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004\020\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004\020\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\003\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\r@\002\000\r<\002\000\r8\002\000\r4\002\000\r0\002\000\r,\002\000\r\184\001\000\r\180\001\000\r\176\001\000\r\172\001\000\r\168\001\000\r\164\001\000\r\160\001\000\r\156\001\000\r\152\001\000\r\148\001\000\r\144\001\000\r\140\001\000\r@\003\000\r<\003\000\r\184\002\000\r\180\002\000\r\176\002\000\r\172\002\000\r\168\002\000\r\164\002\000\r@\004\000\r\184\003\000\r\180\003\000\r\176\003\000\r\172\003\000\r\168\003\000\r\164\003\000\r@\005\000\r\184\004\000\r\180\004\000\r\176\004\000\r\172\004\000\r\168\004\000\r\164\004\000\r@\006\000\r\184\005\000\r\180\005\000\r\176\005\000\r\172\005\000\r\168\005\000\r\164\005\000\r@\007\000\r\160\002\000\r\156\002\000\r\152\002\000\r\148\002\000\r\144\002\000\r\140\002\000\r<\004\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\r4\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\r4\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\r4\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\r4\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\r4\007\000\r\136\001\000\r\132\001\000\r\128\001\000\r|\001\000\rx\001\000\rt\001\000\r8\003\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\r\136\002\000\r\132\002\000\r\128\002\000\r|\002\000\rx\002\000\rt\002\000\r8\004\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\r0\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\r0\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\r0\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\r0\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\003\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\004l\002\000\004h\002\000\004d\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004l\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004l\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004l\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004l\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004l\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004h\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004h\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004h\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004h\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\003\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\004\128\002\000\004|\002\000\004x\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004\128\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004\128\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004\128\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004\128\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004\128\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004|\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004|\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004|\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004|\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\003\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\004H\002\000\004D\002\000\004@\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004H\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004H\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004H\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004H\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004H\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004D\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004D\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004D\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004D\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\003\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003|\002\000\003x\002\000\003t\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003|\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003|\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003|\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003|\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003|\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003x\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003x\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003x\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003x\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\003\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003p\002\000\003l\002\000\003h\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003p\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003p\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003p\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003p\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003p\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003l\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003l\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003l\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003l\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\003\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\004T\002\000\004P\002\000\004L\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004T\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004T\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004T\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004T\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004T\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004P\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004P\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004P\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004P\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\003\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\004`\002\000\004\\\002\000\004X\002\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004`\003\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004`\004\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004`\005\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004`\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004`\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004\\\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004\\\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004\\\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004\\\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\003\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\005\b\002\000\003@\001\000\016\028\001\000\003P\001\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\003P\002\000\003<\001\000\0038\001\000\0034\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\003<\002\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003<\003\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003<\004\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003<\005\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003<\006\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\0038\002\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\0038\003\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\0038\004\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\0038\005\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\0034\002\000\0058\002\000\0054\002\000\0050\002\000\0058\003\000\0058\004\000\0058\005\000\0054\003\000\000T\001\000\000T\002\000\021d\001\000\017,\001\000\016\252\001\000\016\248\001\000\016\240\001\000\007\\\001\000\002\024\001\000\001\248\001\000\016\232\001\000\007\\\002\000\007\\\003\000\007\\\004\000\007\\\005\000\018\016\001\000\011@\001\000\011<\001\000\011@\002\000\018\016\002\000\018\016\003\000\002\188\001\000\018\016\004\000\011D\001\000\r\244\001\000\016\232\001\000\007D\001\000\007@\001\000\0074\001\000\0070\001\000\007 \001\000\007\028\001\000\007\024\001\000\007\020\001\000\007\016\001\000\020\248\001\000\020\244\001\000\007D\002\000\007@\002\000\0074\002\000\0070\002\000\007D\003\000\007@\003\000\007D\004\000\007@\004\000\007D\005\000\007@\005\000\007D\006\000\007@\006\000\002D\001\000\007@\007\000\007@\b\000\007D\007\000\007D\b\000\007D\t\000\014(\001\000\014$\001\000\0074\003\000\0070\003\000\0074\004\000\0070\004\000\0074\005\000\0070\005\000\002D\001\000\0070\006\000\0070\007\000\0074\006\000\0074\007\000\0074\b\000\007\028\002\000\007\024\002\000\007\024\003\000\007\024\004\000\007\028\003\000\007\028\004\000\007\028\005\000\007\020\002\000\007 \002\000\007 \003\000\007 \004\000\016\236\001\000\007T\001\000\007P\001\000\007L\001\000\007T\002\000\007P\002\000\007T\003\000\007P\003\000\002D\001\000\007P\004\000\007P\005\000\007T\004\000\007T\005\000\007T\006\000\007L\002\000\007L\003\000\007L\004\000\r\220\001\000\012t\001\000\012p\001\000\012h\001\000\012d\001\000\007H\001\000\006\216\001\000\006\212\001\000\006\208\001\000\006\204\001\000\007H\002\000\007H\003\000\007X\001\000\007<\001\000\0078\001\000\007,\001\000\007(\001\000\007$\001\000\007X\002\000\007<\002\000\0078\002\000\007,\002\000\007(\002\000\007$\002\000\020\248\001\000\020\244\001\000\007<\003\000\0078\003\000\014(\001\000\014$\001\000\007<\004\000\0078\004\000\007<\005\000\0078\005\000\007<\006\000\0078\006\000\002D\001\000\0078\007\000\0078\b\000\007<\007\000\007<\b\000\007<\t\000\007(\003\000\007$\003\000\007$\004\000\007$\005\000\007(\004\000\007(\005\000\007(\006\000\007X\003\000\007,\003\000\007,\004\000\007,\005\000\007\012\001\000\000T\003\000\b\b\001\000\b\b\002\000\000T\004\000\007d\002\000\rt\004\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\r\024\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\r\024\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\r\024\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\r\024\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\r\020\003\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\014\224\001\000\014\204\001\000\014\200\001\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\014\224\002\000\014\204\002\000\014\224\003\000\015\232\004\000\004\200\004\000\004\196\004\000\004\192\004\000\015\232\005\000\004\200\005\000\004\196\005\000\004\192\005\000\004\200\006\000\004\196\006\000\004\192\006\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004\200\007\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004\200\b\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004\200\t\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004\200\n\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004\200\011\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004\196\007\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004\196\b\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004\196\t\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004\196\n\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\192\007\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\015\248\003\000\004\248\003\000\004\244\003\000\004\240\003\000\015\248\004\000\004\248\004\000\004\244\004\000\004\240\004\000\015\248\005\000\004\248\005\000\004\244\005\000\004\240\005\000\004\248\006\000\004\244\006\000\004\240\006\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004\248\007\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004\248\b\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004\248\t\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004\248\n\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004\248\011\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004\244\007\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004\244\b\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004\244\t\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004\244\n\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\240\007\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\015\240\003\000\004\224\003\000\004\220\003\000\004\216\003\000\015\240\004\000\004\224\004\000\004\220\004\000\004\216\004\000\015\240\005\000\004\224\005\000\004\220\005\000\004\216\005\000\004\224\006\000\004\220\006\000\004\216\006\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004\224\007\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004\224\b\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004\224\t\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004\224\n\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004\224\011\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004\220\007\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004\220\b\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004\220\t\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004\220\n\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\216\007\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\0164\002\000\015\252\002\000\015\244\002\000\015\236\002\000\015\228\002\000\015\224\002\000\015\220\002\000\005\004\002\000\005\000\002\000\004\252\002\000\004\236\002\000\004\232\002\000\004\228\002\000\004\212\002\000\004\208\002\000\004\204\002\000\004\188\002\000\004\184\002\000\004\180\002\000\004\176\002\000\004\172\002\000\004\168\002\000\004\164\002\000\004\160\002\000\004\156\002\000\004\152\002\000\004\148\002\000\004\144\002\000\015\220\003\000\004\164\003\000\004\160\003\000\004\156\003\000\015\220\004\000\004\164\004\000\004\160\004\000\004\156\004\000\015\220\005\000\004\164\005\000\004\160\005\000\004\156\005\000\004\164\006\000\004\160\006\000\004\156\006\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004\164\007\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004\164\b\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004\164\t\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004\164\n\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004\164\011\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004\160\007\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004\160\b\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004\160\t\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004\160\n\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\156\007\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\015\228\003\000\004\188\003\000\004\184\003\000\004\180\003\000\015\228\004\000\004\188\004\000\004\184\004\000\004\180\004\000\015\228\005\000\004\188\005\000\004\184\005\000\004\180\005\000\004\188\006\000\004\184\006\000\004\180\006\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004\188\007\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004\188\b\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004\188\t\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004\188\n\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004\188\011\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004\184\007\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004\184\b\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004\184\t\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004\184\n\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\180\007\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\015\224\003\000\004\176\003\000\004\172\003\000\004\168\003\000\015\224\004\000\004\176\004\000\004\172\004\000\004\168\004\000\015\224\005\000\004\176\005\000\004\172\005\000\004\168\005\000\004\176\006\000\004\172\006\000\004\168\006\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004\176\007\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004\176\b\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004\176\t\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004\176\n\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004\176\011\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004\172\007\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004\172\b\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004\172\t\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004\172\n\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\168\007\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\015\252\003\000\015\244\003\000\015\236\003\000\b\244\001\000\b\236\001\000\005\004\003\000\005\000\003\000\004\252\003\000\004\236\003\000\004\232\003\000\004\228\003\000\004\212\003\000\004\208\003\000\004\204\003\000\015\252\004\000\015\244\004\000\015\236\004\000\005\004\004\000\005\000\004\000\004\252\004\000\004\236\004\000\004\232\004\000\004\228\004\000\004\212\004\000\004\208\004\000\004\204\004\000\015\236\005\000\004\212\005\000\004\208\005\000\004\204\005\000\015\236\006\000\004\212\006\000\004\208\006\000\004\204\006\000\015\236\007\000\004\212\007\000\004\208\007\000\004\204\007\000\004\212\b\000\004\208\b\000\004\204\b\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004\212\t\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004\212\n\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004\212\011\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004\212\012\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004\212\r\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004\208\t\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004\208\n\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004\208\011\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004\208\012\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\204\t\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\015\252\005\000\005\004\005\000\005\000\005\000\004\252\005\000\015\252\006\000\005\004\006\000\005\000\006\000\004\252\006\000\015\252\007\000\005\004\007\000\005\000\007\000\004\252\007\000\005\004\b\000\005\000\b\000\004\252\b\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\005\004\t\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\005\004\n\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\005\004\011\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\005\004\012\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\005\004\r\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\005\000\t\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\005\000\n\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\005\000\011\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\005\000\012\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\252\t\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\015\244\005\000\004\236\005\000\004\232\005\000\004\228\005\000\015\244\006\000\004\236\006\000\004\232\006\000\004\228\006\000\015\244\007\000\004\236\007\000\004\232\007\000\004\228\007\000\004\236\b\000\004\232\b\000\004\228\b\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004\236\t\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004\236\n\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004\236\011\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004\236\012\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004\236\r\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004\232\t\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004\232\n\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004\232\011\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004\232\012\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\228\t\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\0164\003\000\004\152\003\000\004\148\003\000\004\144\003\000\004\152\004\000\004\148\004\000\004\144\004\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\004\152\005\000\003T\001\000\003H\001\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\004\152\006\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\004\152\007\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\004\152\b\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\004\152\t\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004\148\005\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004\148\006\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004\148\007\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004\148\b\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\144\005\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\006\004\001\000\014\016\001\000\003D\002\000\014\016\002\000\014\012\001\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003(\002\000\005\024\002\000\003\028\006\000\002\128\001\000\002\132\001\000\003\028\007\000\003\028\b\000\003\028\t\000\003\028\n\000\003\028\011\000\002\176\007\000\011\168\001\000\007\180\005\000\r\220\001\000\012t\001\000\012p\001\000\012h\001\000\012d\001\000\007\184\001\000\006\216\001\000\006\212\001\000\006\208\001\000\006\204\001\000\007\184\002\000\007\184\003\000\007\192\001\000\004t\002\000\004t\003\000\004t\004\000\007\192\002\000\007\192\003\000\007\188\001\000\016(\001\000\n\192\001\000\016<\004\000\016<\005\000\016\188\003\000\016\184\003\000\016\156\003\000\016\152\003\000\016\148\003\000\016\156\004\000\014\232\001\000\014\220\001\000\014\216\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\016\156\005\000\014\232\002\000\014\220\002\000\014\216\002\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\016\156\006\000\014\232\003\000\014\220\003\000\014\216\003\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\016\156\007\000\014\232\004\000\014\220\004\000\014\216\004\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\016\156\b\000\014\232\005\000\014\220\005\000\014\216\005\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\001\144\001\000\001\140\001\000\001\136\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\001\144\002\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\001\144\003\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\001\144\004\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\001\144\005\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\001\144\006\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\001\140\002\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\001\140\003\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\001\140\004\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\001\140\005\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\001\136\002\000\001\132\001\000\014D\001\000\001\132\002\000\014D\002\000\001\184\001\000\001\180\001\000\001\176\001\000\001\172\001\000\001\168\001\000\001\164\001\000\001\160\001\000\001\156\001\000\001\152\001\000\001\148\001\000\001\172\002\000\001\168\002\000\001\164\002\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\001\172\003\000\001\168\003\000\001\164\003\000\001\172\004\000\001\168\004\000\001\164\004\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\001\172\005\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\001\172\006\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\001\172\007\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\001\172\b\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\001\172\t\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\001\168\005\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\001\168\006\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\001\168\007\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\001\168\b\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\001\164\005\000\001\184\002\000\001\180\002\000\001\176\002\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\001\184\003\000\001\180\003\000\001\176\003\000\001\184\004\000\001\180\004\000\001\176\004\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\001\184\005\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\001\184\006\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\001\184\007\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\001\184\b\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\001\184\t\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\001\180\005\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\001\180\006\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\001\180\007\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\001\180\b\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\001\176\005\000\001\160\002\000\001\156\002\000\001\152\002\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\001\160\003\000\001\156\003\000\001\152\003\000\001\160\004\000\001\156\004\000\001\152\004\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\001\160\005\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\001\160\006\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\001\160\007\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\001\160\b\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\001\160\t\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\001\156\005\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\001\156\006\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\001\156\007\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\001\156\b\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\001\152\005\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\001\148\002\000\001\232\001\000\001\228\001\000\001\224\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\001\232\002\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\001\232\003\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\001\232\004\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\001\232\005\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\001\232\006\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\001\228\002\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\001\228\003\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\001\228\004\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\001\228\005\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\001\224\002\000\001\220\001\000\001\216\001\000\001\212\001\000\001\208\001\000\001\204\001\000\001\200\001\000\001\196\001\000\001\192\001\000\001\188\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\001\220\002\000\001\216\002\000\001\212\002\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\001\220\003\000\001\216\003\000\001\212\003\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\001\220\004\000\001\216\004\000\001\212\004\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\001\220\005\000\001\216\005\000\001\212\005\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\001\220\006\000\001\216\006\000\001\212\006\000\001\220\007\000\001\216\007\000\001\212\007\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\001\220\b\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\001\220\t\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\001\220\n\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\001\220\011\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\001\220\012\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\001\216\b\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\001\216\t\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\001\216\n\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\001\216\011\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\001\212\b\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\001\208\002\000\001\204\002\000\001\200\002\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\001\208\003\000\001\204\003\000\001\200\003\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\001\208\004\000\001\204\004\000\001\200\004\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\001\208\005\000\001\204\005\000\001\200\005\000\001\208\006\000\001\204\006\000\001\200\006\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\001\208\007\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\001\208\b\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\001\208\t\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\001\208\n\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\001\208\011\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\001\204\007\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\001\204\b\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\001\204\t\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\001\204\n\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\001\200\007\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\001\196\002\000\001\192\002\000\001\188\002\000\001\196\003\000\001\192\003\000\001\188\003\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\001\196\004\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\001\196\005\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\001\196\006\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\001\196\007\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\001\196\b\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\001\192\004\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\001\192\005\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\001\192\006\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\001\192\007\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\001\188\004\000\001\148\003\000\014D\003\000\014@\001\000\016\156\t\000\014\000\001\000\016\156\n\000\014\000\002\000\r\252\001\000\016\152\004\000\014\228\001\000\014\212\001\000\014\208\001\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\016\152\005\000\014\228\002\000\014\212\002\000\014\208\002\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\016\152\006\000\014\228\003\000\014\212\003\000\014\208\003\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\016\152\007\000\014\228\004\000\014\212\004\000\014\208\004\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\016\152\b\000\014\000\001\000\016\152\t\000\016\188\004\000\016\184\004\000\016\184\005\000\016\148\004\000\014\224\001\000\014\204\001\000\014\200\001\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\016\148\005\000\014\000\001\000\016\148\006\000\016\144\003\000\016\140\003\000\016\136\003\000\016t\003\000\016p\003\000\016\144\004\000\014\232\001\000\014\220\001\000\014\216\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\016\144\005\000\014\232\002\000\014\220\002\000\014\216\002\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\016\144\006\000\014\232\003\000\014\220\003\000\014\216\003\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\016\144\007\000\014\232\004\000\014\220\004\000\014\216\004\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\016\144\b\000\014\232\005\000\014\220\005\000\014\216\005\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\016\144\t\000\014\000\001\000\016\144\n\000\016\140\004\000\014\228\001\000\014\212\001\000\014\208\001\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\016\140\005\000\014\228\002\000\014\212\002\000\014\208\002\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\016\140\006\000\014\228\003\000\014\212\003\000\014\208\003\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\016\140\007\000\014\228\004\000\014\212\004\000\014\208\004\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\016\140\b\000\014\000\001\000\016\140\t\000\016t\004\000\016p\004\000\016p\005\000\016\136\004\000\014\224\001\000\014\204\001\000\014\200\001\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\016\136\005\000\014\000\001\000\016\136\006\000\016\164\003\000\016\160\003\000\016\132\003\000\016\128\003\000\016|\003\000\016\132\004\000\014\232\001\000\014\220\001\000\014\216\001\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\016\132\005\000\014\232\002\000\014\220\002\000\014\216\002\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\016\132\006\000\014\232\003\000\014\220\003\000\014\216\003\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\016\132\007\000\014\232\004\000\014\220\004\000\014\216\004\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\016\132\b\000\014\232\005\000\014\220\005\000\014\216\005\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\016\132\t\000\014\000\001\000\016\132\n\000\016\164\004\000\016\128\004\000\014\228\001\000\014\212\001\000\014\208\001\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\016\128\005\000\014\228\002\000\014\212\002\000\014\208\002\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\016\128\006\000\014\228\003\000\014\212\003\000\014\208\003\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\016\128\007\000\014\228\004\000\014\212\004\000\014\208\004\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\016\128\b\000\014\000\001\000\016\128\t\000\016\160\004\000\016\160\005\000\016|\004\000\014\224\001\000\014\204\001\000\014\200\001\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\016|\005\000\014\000\001\000\016|\006\000\016@\003\000\016@\004\000\016@\005\000\016d\003\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\012\216\001\000\012\216\002\000\012\216\003\000\015\012\001\000\015\b\001\000\015\004\001\000\011\140\001\000\015\012\002\000\015\b\002\000\015\004\002\000\015\012\003\000\015\b\003\000\015\004\003\000\015\012\004\000\015\b\004\000\015\012\005\000\012\212\001\000\016d\004\000\016d\005\000\016\188\001\000\016\184\001\000\016\168\001\000\016\164\001\000\016\160\001\000\016\156\001\000\016\152\001\000\016\148\001\000\016\144\001\000\016\140\001\000\016\136\001\000\016\132\001\000\016\128\001\000\016|\001\000\016t\001\000\016p\001\000\016d\001\000\016X\001\000\016@\001\000\016<\001\000\b\252\001\000\b\244\001\000\b\236\001\000\002\020\001\000\002\016\001\000\016\188\002\000\016\184\002\000\016\168\002\000\016\164\002\000\016\160\002\000\016\156\002\000\016\152\002\000\016\148\002\000\016\144\002\000\016\140\002\000\016\136\002\000\016\132\002\000\016\128\002\000\016|\002\000\016t\002\000\016p\002\000\016d\002\000\016X\002\000\016@\002\000\016<\002\000\b\252\002\000\b\244\002\000\b\236\002\000\002\020\002\000\021h\001\000\b\236\003\000\b\252\003\000\r\136\001\000\r\132\001\000\r\128\001\000\r|\001\000\rx\001\000\rt\001\000\rP\006\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\r\136\002\000\r\132\002\000\r\128\002\000\r|\002\000\rx\002\000\rt\002\000\rP\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\006\000\rH\001\000\rD\001\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\007\000\rH\002\000\rD\002\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\b\000\rH\003\000\rD\003\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\t\000\rH\004\000\rD\004\000\rD\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003\020\004\000\003\016\004\000\003\012\004\000\003\b\004\000\003\004\004\000\003\000\004\000\002\252\004\000\002\248\004\000\002\244\004\000\002\240\004\000\002\236\004\000\002\232\004\000\003\020\005\000\003\016\005\000\003\012\005\000\003\b\005\000\003\004\005\000\003\000\005\000\002\252\005\000\002\248\005\000\002\244\005\000\002\240\005\000\002\236\005\000\002\232\005\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\003\020\006\000\003\b\006\000\003\004\006\000\003\000\006\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003\020\007\000\003\b\007\000\003\004\007\000\003\000\007\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003\020\b\000\003\b\b\000\003\004\b\000\003\000\b\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003\020\t\000\003\b\t\000\003\004\t\000\003\000\t\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003\020\n\000\003\b\n\000\003\004\n\000\003\000\n\000\003\b\011\000\003\004\011\000\003\000\011\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\003\b\012\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\003\b\r\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\003\b\014\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\003\b\015\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\003\b\016\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003\004\012\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003\004\r\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003\004\014\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003\004\015\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003\000\012\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\003\016\006\000\002\252\006\000\002\248\006\000\002\244\006\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\003\016\007\000\002\252\007\000\002\248\007\000\002\244\007\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\003\016\b\000\002\252\b\000\002\248\b\000\002\244\b\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\003\016\t\000\002\252\t\000\002\248\t\000\002\244\t\000\002\252\n\000\002\248\n\000\002\244\n\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\252\011\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\002\252\012\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\002\252\r\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\002\252\014\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\002\252\015\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\002\248\011\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\002\248\012\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\002\248\r\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\002\248\014\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\002\244\011\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\003\012\006\000\002\240\006\000\002\236\006\000\002\232\006\000\002\240\007\000\002\236\007\000\002\232\007\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\240\b\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\002\240\t\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\002\240\n\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\002\240\011\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\002\240\012\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\002\236\b\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\002\236\t\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\002\236\n\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\002\236\011\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\002\232\b\000\015\220\004\000\015\220\005\000\015\228\003\000\015\228\004\000\015\228\005\000\015\224\003\000\015\224\004\000\015\224\005\000\015\252\003\000\015\244\003\000\015\236\003\000\b\244\001\000\b\236\001\000\015\252\004\000\015\244\004\000\015\236\004\000\015\236\005\000\015\236\006\000\015\236\007\000\015\252\005\000\015\252\006\000\015\252\007\000\015\244\005\000\015\244\006\000\015\244\007\000\0164\003\000\014\232\007\000\015\232\004\000\015\232\005\000\015\248\003\000\015\248\004\000\015\248\005\000\015\240\003\000\015\240\004\000\015\240\005\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\003$\004\000\016\004\004\000\016\000\004\000\016\000\005\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\011\240\004\000\011\228\004\000\011\216\004\000\011\204\004\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\011\240\005\000\011\228\005\000\011\216\005\000\011\204\005\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\011\240\006\000\011\228\006\000\011\216\006\000\011\204\006\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\011\240\007\000\011\228\007\000\011\216\007\000\011\204\007\000\011\204\b\000\011\240\b\000\011\240\t\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\011\240\n\000\011\228\b\000\011\216\b\000\011\228\t\000\011\216\t\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\011\216\n\000\011\228\n\000\011\228\011\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\011\228\012\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\011\236\004\000\011\224\004\000\011\212\004\000\011\200\004\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\011\200\005\000\011\236\005\000\011\236\006\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\011\236\007\000\011\224\005\000\011\212\005\000\011\224\006\000\011\212\006\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\011\212\007\000\011\224\007\000\011\224\b\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\011\224\t\000\tL\001\000\tH\001\000\t@\001\000\002\208\006\000\002\208\007\000\002\208\b\000\002\204\003\000\002\204\004\000\tL\001\000\tH\001\000\t@\001\000\002\204\005\000\002\204\006\000\002\204\007\000\002\196\002\000\002\196\003\000\002\196\004\000\tl\001\000\tl\002\000\tl\003\000\tl\004\000\002\196\005\000\t\012\001\000\tL\001\000\tH\001\000\t@\001\000\t\012\002\000\t\020\001\000\t\016\001\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\t\020\002\000\t\016\002\000\t\016\003\000\tL\001\000\tH\001\000\t@\001\000\t\016\004\000\t\020\003\000\t\020\004\000\tL\001\000\tH\001\000\t@\001\000\t\020\005\000\002\196\006\000\002\196\007\000\002\196\b\000\t\028\001\000\t\028\002\000\t\024\001\000\t\024\002\000\tL\001\000\tH\001\000\t@\001\000\t\024\003\000\th\001\000\002\200\002\000\002\200\003\000\002\200\004\000\002\004\001\000\002\b\001\000\001\248\001\000\002\b\002\000\002\b\003\000\001\244\001\000\002\200\005\000\005X\001\000\0024\001\000\t\204\001\000\t\208\001\000\005\216\001\000\005\212\001\000\005\216\002\000\005\212\002\000\005\216\003\000\005\212\003\000\014(\001\000\014$\001\000\012\164\001\000\012\164\002\000\012\164\003\000\000P\001\000\000L\001\000\000H\001\000\005\216\004\000\005\212\004\000\005\216\005\000\005\212\005\000\005\216\006\000\005\212\006\000\005\216\007\000\005\216\b\000\012\160\001\000\000P\001\000\000L\001\000\000H\001\000\0024\002\000\0024\003\000\005\228\001\000\005\224\001\000\005\228\002\000\005\220\001\000\014t\001\000\002(\001\000\014t\002\000\002(\002\000\000\140\001\000\000\128\001\000\000t\001\000\014t\003\000\002(\003\000\014|\001\000\014x\001\000\0020\001\000\002,\001\000\014|\002\000\014x\002\000\0020\002\000\002,\002\000\014|\003\000\0020\003\000\014|\004\000\0020\004\000\000\140\001\000\000\128\001\000\000t\001\000\014|\005\000\0020\005\000\014x\003\000\002,\003\000\000\140\001\000\000\128\001\000\000t\001\000\014x\004\000\002,\004\000\005X\002\000\014p\001\000\002$\001\000\000\140\001\000\000\128\001\000\000t\001\000\014p\002\000\002$\002\000\005h\001\000\005d\001\000\005`\001\000\005\\\001\000\014 \001\000\002X\001\000\002T\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014 \002\000\000\160\002\000\000\152\001\000\014\176\002\000\014\172\002\000\014\168\002\000\014 \003\000\000\160\003\000\000\152\002\000\014\176\003\000\014\172\003\000\014\168\003\000\014 \004\000\000\160\004\000\014\176\004\000\014\172\004\000\014\168\004\000\014 \005\000\012\220\001\000\005\184\001\000\005\180\001\000\000\160\005\000\014 \006\000\000\160\006\000\014\176\005\000\014\172\005\000\014\168\005\000\014\176\006\000\000\156\001\000\014\176\007\000\014\176\b\000\012\220\001\000\005\184\001\000\005\180\001\000\014\172\006\000\000\152\001\000\014\172\007\000\000\152\002\000\014\172\b\000\014\172\t\000\012\220\001\000\005\184\001\000\005\180\001\000\014\168\006\000\002D\001\000\014(\001\000\014$\001\000\005h\002\000\005`\002\000\005h\003\000\005`\003\000\005`\004\000\005`\005\000\005`\006\000\000\140\001\000\000\128\001\000\000t\001\000\014p\001\000\005h\004\000\002$\001\000\000\140\001\000\000\128\001\000\000t\001\000\005\\\002\000\005\\\003\000\005\\\004\000\000\140\001\000\000\128\001\000\000t\001\000\014p\001\000\005d\002\000\002$\001\000\000\140\001\000\000\128\001\000\000t\001\000\002\200\006\000\002\200\007\000\002\200\b\000\002\200\t\000\002\012\001\000\007`\002\000\007`\003\000\012\208\001\000\007`\004\000\007`\005\000\007`\006\000\018\012\002\000\007\172\002\000\011\132\002\000\006 \005\000\006 \006\000\006\028\003\000\006\028\004\000\006\028\005\000\006$\002\000\002\180\005\000\002\180\006\000\002\180\007\000\002\180\b\000\r\136\001\000\r\132\001\000\r\128\001\000\r|\001\000\rx\001\000\rt\001\000\rh\007\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\r\136\002\000\r\132\002\000\r\128\002\000\r|\002\000\rx\002\000\rt\002\000\rh\b\000\r`\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\r`\b\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\r`\t\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\0144\001\000\r`\n\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\r\\\007\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\004\136\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\004\136\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\004\136\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\004\136\006\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\132\003\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\005\012\002\000\002\212\004\000\002\212\005\000\0144\001\000\002\212\006\000\005\020\002\000\002\228\004\000\002\224\004\000\002\220\004\000\002\228\005\000\002\224\005\000\002\220\005\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\228\006\000\002\180\001\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\002\228\007\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\002\228\b\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\002\228\t\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\002\228\n\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\002\224\006\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\002\224\007\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\002\224\b\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\002\224\t\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\002\220\006\000\bh\003\000\bh\004\000\bh\005\000\bl\002\000\bd\002\000\bl\003\000\bd\003\000\0140\002\000\015\200\006\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\015\200\007\000\015\196\002\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\015\196\003\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\015\196\004\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\015\196\005\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\015\196\006\000\015\192\002\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\015\192\003\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\015\204\002\000\016`\002\000\016`\003\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\016\172\002\000\r(\001\000\r$\001\000\r \001\000\r\028\001\000\r\024\001\000\r\020\001\000\003L\001\000\016\172\003\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\016\\\002\000\016\\\003\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\011l\003\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\011l\004\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\011l\005\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\011l\006\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\011h\002\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\011h\003\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\011h\004\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\011h\005\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\011d\002\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\014\244\002\000\014\240\002\000\014\236\002\000\014\244\003\000\014\240\003\000\014\244\004\000\0160\002\000\016,\002\000\016,\003\000\016\204\003\000\014\232\002\000\014\220\002\000\014\216\002\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\016\204\004\000\014\232\003\000\014\220\003\000\014\216\003\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\016\204\005\000\014\232\004\000\014\220\004\000\014\216\004\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\016\204\006\000\014\232\005\000\014\220\005\000\014\216\005\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\016\204\007\000\014\000\001\000\016\204\b\000\016\200\002\000\014\228\001\000\014\212\001\000\014\208\001\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\016\200\003\000\014\228\002\000\014\212\002\000\014\208\002\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\016\200\004\000\014\228\003\000\014\212\003\000\014\208\003\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\016\200\005\000\014\228\004\000\014\212\004\000\014\208\004\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\016\200\006\000\014\000\001\000\016\200\007\000\016x\002\000\016x\003\000\016\196\002\000\014\224\001\000\014\204\001\000\014\200\001\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\016\196\003\000\014\000\001\000\016\196\004\000\016\216\003\000\014\232\002\000\014\220\002\000\014\216\002\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\016\216\004\000\014\232\003\000\014\220\003\000\014\216\003\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\016\216\005\000\014\232\004\000\014\220\004\000\014\216\004\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\016\216\006\000\014\232\005\000\014\220\005\000\014\216\005\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\016\216\007\000\014\000\001\000\016\216\b\000\016\212\002\000\014\228\001\000\014\212\001\000\014\208\001\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\016\212\003\000\014\228\002\000\014\212\002\000\014\208\002\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\016\212\004\000\014\228\003\000\014\212\003\000\014\208\003\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\016\212\005\000\014\228\004\000\014\212\004\000\014\208\004\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\016\212\006\000\014\000\001\000\016\212\007\000\016l\002\000\016h\002\000\016h\003\000\016\208\002\000\014\224\001\000\014\204\001\000\014\200\001\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\016\208\003\000\014\000\001\000\016\208\004\000\016\228\003\000\014\232\002\000\014\220\002\000\014\216\002\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\016\228\004\000\014\232\003\000\014\220\003\000\014\216\003\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\016\228\005\000\014\232\004\000\014\220\004\000\014\216\004\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\016\228\006\000\014\232\005\000\014\220\005\000\014\216\005\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\016\228\007\000\014\000\001\000\016\228\b\000\016\224\002\000\014\228\001\000\014\212\001\000\014\208\001\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\016\224\003\000\014\228\002\000\014\212\002\000\014\208\002\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\016\224\004\000\014\228\003\000\014\212\003\000\014\208\003\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\016\224\005\000\014\228\004\000\014\212\004\000\014\208\004\000\0144\001\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\016\224\006\000\014\000\001\000\016\224\007\000\016\180\002\000\016\176\002\000\016\176\003\000\016\220\002\000\014\224\001\000\014\204\001\000\014\200\001\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\016\220\003\000\014\000\001\000\016\220\004\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\016$\002\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\016\016\002\000\016\012\002\000\016\016\003\000\016\012\003\000\016\016\004\000\016\012\004\000\016\016\005\000\016\012\005\000\tL\001\000\tH\001\000\t@\001\000\016\012\006\000\016\016\006\000\016\016\007\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\016\016\b\000\015\216\002\000\015\212\002\000\015\208\002\000\015\208\003\000\015\216\003\000\015\212\003\000\015\212\004\000\015\216\004\000\015\216\005\000\015\024\002\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\015\024\003\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\015\024\004\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\015\024\005\000\0144\001\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\b \001\000\b\028\001\000\005\168\001\000\n\140\001\000\n\136\001\000\n\140\002\000\n\140\003\000\n\140\004\000\n\140\005\000\tL\001\000\tH\001\000\t@\001\000\n\140\006\000\n\136\002\000\n\136\003\000\n\136\004\000\tL\001\000\tH\001\000\t@\001\000\n\136\005\000\020|\001\000\020x\001\000\t\180\001\000\t\180\002\000\t\180\003\000\t\180\004\000\t\180\005\000\011t\001\000\011t\002\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\t\180\006\000\t\180\007\000\020|\002\000\020x\002\000\020|\003\000\020x\003\000\020|\004\000\020|\005\000\020|\006\000\020|\007\000\007\224\001\000\007\224\002\000\007\224\003\000\007\224\004\000\007\224\005\000\007\224\006\000\020|\b\000\020x\004\000\020x\005\000\020x\006\000\005\164\001\000\005\164\002\000\012\148\001\000\012\144\001\000\r\196\001\000\012\148\002\000\012\144\002\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\012\148\003\000\012\148\004\000\002\164\001\000\002\164\002\000\005\208\001\000\005\208\002\000\005\208\003\000\012\220\001\000\005\208\004\000\005\184\001\000\005\180\001\000\005\148\001\000\005\144\001\000\005\148\002\000\012\172\001\000\012\172\002\000\012\172\003\000\012\172\004\000\012\172\005\000\014(\001\000\014$\001\000\012\156\001\000\012\156\002\000\012\156\003\000\002D\001\000\012\172\006\000\012\172\007\000\012\172\b\000\n4\001\000\n0\001\000\n4\002\000\012\172\t\000\012\172\n\000\012\152\001\000\002D\001\000\018\b\001\000\015\028\001\000\018\b\002\000\015\028\002\000\018\b\003\000\015\028\003\000\018\b\004\000\015\028\004\000\018\b\005\000\002\024\001\000\001\248\001\000\b\244\001\000\002\020\001\000\002\016\001\000\b\244\002\000\002\020\002\000\002\020\003\000\018\b\006\000\018\b\007\000\018\b\b\000\015\028\005\000\015\028\006\000\015\028\007\000\012\140\001\000\012\136\001\000\012\136\002\000\012\140\002\000\002D\001\000\020\136\001\000\001|\001\000\001|\002\000\001|\003\000\001|\004\000\021\160\001\000\001|\005\000\002\172\001\000\014h\001\000\014l\001\000\002\172\002\000\002\172\003\000\014l\002\000\014l\003\000\001|\006\000\001|\007\000\001|\b\000\001H\001\000\001H\002\000\001\028\001\000\002D\001\000\001\028\002\000\001\028\003\000\001H\003\000\001(\001\000\001(\002\000\t\228\001\000\t\220\001\000\t\228\002\000\t\224\001\000\t\216\001\000\t\224\002\000\001(\003\000\001(\004\000\001(\005\000\002D\001\000\001(\006\000\001(\007\000\001,\001\000\001,\002\000\012\200\001\000\012\192\001\000\012\200\002\000\012\196\001\000\012\188\001\000\012\196\002\000\001,\003\000\001,\004\000\001,\005\000\001,\006\000\001,\007\000\001$\001\000\001$\002\000\001T\001\000\001P\001\000\001T\002\000\001P\002\000\001T\003\000\001T\004\000\b\244\001\000\001T\005\000\001T\006\000\001@\001\000\014\\\001\000\001@\002\000\001@\003\000\001@\004\000\014\\\002\000\014\\\003\000\002D\001\000\014X\001\000\002D\001\000\001D\001\000\001<\001\000\001T\007\000\001L\001\000\001L\002\000\001P\003\000\b\244\001\000\001P\004\000\001P\005\000\001P\006\000\001L\001\000\001L\001\000\001$\003\000\001$\004\000\0010\001\000\0010\002\000\002D\001\000\002 \001\000\002 \002\000\002D\001\000\002 \003\000\0010\003\000\0010\004\000\001H\004\000\001H\005\000\0014\001\000\0014\002\000\0018\001\000\b,\001\000\b,\002\000\001|\t\000\001L\001\000\001|\n\000\007\216\001\000\007\216\002\000\007\216\003\000\007\216\004\000\007\216\005\000\007\216\006\000\007\216\007\000\001L\001\000\007\216\b\000\007\216\t\000\001|\011\000\020\136\002\000\020\136\003\000\020\136\004\000\020\136\005\000\020\136\006\000\021d\001\000\017,\001\000\016\252\001\000\016\248\001\000\016\240\001\000\006h\001\000\006\\\001\000\006X\001\000\006T\001\000\002\024\001\000\001\248\001\000\000\248\001\000\001h\001\000\001h\002\000\001h\003\000\000\224\001\000\021\132\001\000\021|\001\000\021\132\002\000\021|\002\000\t\196\001\000\021\132\003\000\021|\003\000\021\132\004\000\021|\004\000\021|\005\000\021|\006\000\021\132\005\000\021\132\006\000\021\132\007\000\000\224\002\000\000\224\003\000\021\128\001\000\021x\001\000\021t\001\000\021\172\001\000\021\164\001\000\021\172\002\000\021\168\001\000\t\196\001\000\021\168\002\000\021t\002\000\021t\003\000\021t\004\000\021t\005\000\002D\001\000\021\128\002\000\021x\002\000\021\128\003\000\021x\003\000\021x\004\000\021x\005\000\021\128\004\000\021\128\005\000\021\128\006\000\000\228\001\000\b\164\001\000\b\156\001\000\b\148\001\000\b\164\002\000\b\156\002\000\b\148\002\000\012\180\001\000\b\164\003\000\b\156\003\000\b\148\003\000\b\164\004\000\b\156\004\000\b\148\004\000\b\164\005\000\b\156\005\000\b\164\006\000\b\164\007\000\b\164\b\000\b\164\t\000\002D\001\000\b\164\n\000\b\164\011\000\b\156\006\000\b\156\007\000\b\156\b\000\b\148\005\000\000\228\002\000\000\228\003\000\b\160\001\000\b\152\001\000\b\144\001\000\b\140\001\000\021\184\001\000\021\176\001\000\021\184\002\000\021\180\001\000\012\180\001\000\021\180\002\000\b\140\002\000\b\140\003\000\b\140\004\000\b\140\005\000\b\160\002\000\b\152\002\000\b\144\002\000\b\160\003\000\b\152\003\000\b\144\003\000\b\160\004\000\b\152\004\000\b\160\005\000\b\160\006\000\b\160\007\000\b\160\b\000\002D\001\000\b\160\t\000\b\160\n\000\b\152\005\000\b\152\006\000\b\152\007\000\b\144\004\000\000\236\001\000\000\236\002\000\000\236\003\000\000\236\004\000\000\220\001\000\000\216\001\000\000\220\002\000\000\220\003\000\001d\001\000\001X\001\000\007l\001\000\007h\001\000\000\200\001\000\000\196\001\000\007l\002\000\007l\003\000\007l\004\000\007l\005\000\007l\006\000\007l\007\000\000\200\002\000\000\196\002\000\000\200\003\000\000\200\004\000\b\244\001\000\000\200\005\000\000\200\006\000\001`\001\000\014\\\001\000\001`\002\000\001`\003\000\001`\004\000\000\188\001\000\000\188\002\000\001\b\001\000\001\004\001\000\001\004\002\000\007p\001\000\000\192\001\000\000\192\002\000\000\212\001\000\000\208\001\000\000\184\001\000\014\016\001\000\000\208\002\000\001\\\001\000\000\204\001\000\000\192\003\000\000\204\002\000\007p\002\000\001\004\003\000\000\204\001\000\001\b\002\000\000\188\003\000\000\204\001\000\000\200\007\000\000\196\003\000\b\244\001\000\000\196\004\000\000\196\005\000\000\204\001\000\000\196\006\000\007h\002\000\007h\003\000\007h\004\000\007h\005\000\001d\002\000\001X\002\000\000\204\001\000\001X\003\000\001d\003\000\021$\001\000\021 \001\000\b\168\001\000\001t\001\000\001t\002\000\001t\003\000\001t\004\000\002d\001\000\002`\001\000\002\\\001\000\001@\001\000\014\196\001\000\014X\001\000\002D\001\000\001x\001\000\001x\002\000\001p\001\000\001p\002\000\001p\003\000\t\004\001\000\b\228\001\000\b\220\001\000\b\180\001\000\b\172\001\000\000\148\001\000\b\228\002\000\b\220\002\000\b\180\002\000\b\172\002\000\000\148\002\000\021$\001\000\021 \001\000\b\172\003\000\002\160\001\000\001D\001\000\001p\004\000\001l\001\000\001L\001\000\001x\003\000\001t\005\000\001d\004\000\001d\005\000\000\220\004\000\000\204\001\000\011T\001\000\011T\002\000\000\220\005\000\000\220\006\000\000\216\002\000\000\216\003\000\000\204\001\000\000\216\004\000\000\216\005\000\000\232\001\000\000\232\002\000\000\232\003\000\000\232\004\000\001h\004\000\001h\005\000\000\240\001\000\000\240\002\000\000\244\001\000\b4\001\000\b4\002\000\000\248\002\000\000\204\001\000\000\252\001\000\000\252\002\000\000\252\003\000\000\252\004\000\000\204\001\000\001\000\001\000\001\000\002\000\020\136\007\000\020\136\b\000\007\200\001\000\007\200\002\000\007\200\003\000\007\200\004\000\007\200\005\000\007\200\006\000\007\200\007\000\007\200\b\000\020\136\t\000\020d\001\000\b$\001\000\007`\001\000\020t\001\000\018\004\001\000\020`\001\000\020\132\001\000\020\128\001\000\b$\002\000\020P\001\000\007d\001\000\020\\\001\000\020T\001\000\020T\002\000\020\144\001\000\020\144\002\000\020\144\003\000\020\144\004\000\tL\001\000\tH\001\000\t@\001\000\020\144\005\000\020h\001\000\007\248\001\000\007\248\002\000\007\248\003\000\007\248\004\000\007\248\005\000\007\248\006\000\r\240\001\000\007\248\007\000\007\248\b\000\007\248\t\000\011L\001\000\020h\002\000\020X\001\000\020\140\001\000\012\132\001\000\020L\001\000\020L\002\000\020L\003\000\000\176\001\000\020H\001\000\020P\001\000\007d\001\000\004p\001\000\002\164\003\000\002\164\004\000\005\164\003\000\005\164\004\000\b \002\000\b \003\000\b \004\000\b\028\002\000\012\168\003\000\012\168\004\000\005\128\n\000\020p\006\000\020p\007\000\020p\b\000\005l\001\000\002\152\001\000\005l\002\000\002\152\002\000\002\152\003\000\002\152\004\000\002\152\005\000\005l\003\000\005l\004\000\020p\t\000\r\004\001\000\r\000\001\000\020p\n\000\r\000\002\000\r\004\002\000\012\240\001\000\012\248\001\000\012\244\001\000\012\252\001\000\005p\001\000\002\156\001\000\002\156\002\000\002\156\003\000\002\156\004\000\005p\002\000\005p\003\000\020l\004\000\005|\004\000\021$\001\000\005|\005\000\005|\006\000\005|\007\000\r\240\001\000\005|\b\000\005|\t\000\020l\005\000\020l\006\000\020l\007\000\020l\b\000\r\004\001\000\r\000\001\000\020l\t\000\t4\003\000\t4\004\000\t\128\005\000\tL\001\000\tH\001\000\t@\001\000\016\252\007\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\016\252\b\000\r\200\001\000\006\160\004\000\006\152\001\000\006\148\001\000\006\144\001\000\006\140\001\000\r\200\002\000\006\160\005\000\006\152\002\000\006\148\002\000\006\144\002\000\006\140\002\000\r\204\004\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\156\004\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\r\200\001\000\006\176\b\000\006\152\001\000\006\148\001\000\006\144\001\000\006\140\001\000\r\200\002\000\006\176\t\000\006\152\002\000\006\148\002\000\006\144\002\000\006\140\002\000\r\208\b\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\172\b\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\r\204\002\000\006\168\002\000\006\164\002\000\006\160\002\000\006\156\002\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\001\020\002\000\001\016\002\000\001\016\003\000\001\020\003\000\002D\001\000\001\020\004\000\001\020\005\000\016\020\004\000\016\020\005\000\016\020\006\000\r\148\005\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\r\148\006\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\r\148\007\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\0144\001\000\r\148\b\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\r\152\004\000\r\136\001\000\r\132\001\000\r\128\001\000\r|\001\000\rx\001\000\rt\001\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\r\152\005\000\r\136\002\000\r\132\002\000\r\128\002\000\r|\002\000\rx\002\000\rt\002\000\r\144\004\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\r\144\005\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\r\144\006\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\0144\001\000\r\144\007\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\r\140\004\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\r\172\007\000\rp\001\000\rl\001\000\rh\001\000\rd\001\000\r`\001\000\r\\\001\000\003T\001\000\003H\001\000\002\180\001\000\r\172\b\000\rp\002\000\rl\002\000\rh\002\000\rd\002\000\r`\002\000\r\\\002\000\r\172\t\000\rp\003\000\rl\003\000\rh\003\000\rd\003\000\r`\003\000\r\\\003\000\r\172\n\000\rp\004\000\rl\004\000\rh\004\000\rd\004\000\r`\004\000\r\\\004\000\0144\001\000\r\172\011\000\rp\005\000\rl\005\000\rh\005\000\rd\005\000\r`\005\000\r\\\005\000\r\176\007\000\r\136\001\000\r\132\001\000\r\128\001\000\r|\001\000\rx\001\000\rt\001\000\016L\001\000\016H\001\000\016D\001\000\0168\001\000\0164\001\000\015\252\001\000\015\248\001\000\015\244\001\000\015\240\001\000\015\236\001\000\015\232\001\000\015\228\001\000\015\224\001\000\015\220\001\000\r\176\b\000\r\136\002\000\r\132\002\000\r\128\002\000\r|\002\000\rx\002\000\rt\002\000\r\168\007\000\rX\001\000\rT\001\000\rP\001\000\rL\001\000\rH\001\000\rD\001\000\r\168\b\000\rX\002\000\rT\002\000\rP\002\000\rL\002\000\rH\002\000\rD\002\000\r\168\t\000\rX\003\000\rT\003\000\rP\003\000\rL\003\000\rH\003\000\rD\003\000\0144\001\000\r\168\n\000\rX\004\000\rT\004\000\rP\004\000\rL\004\000\rH\004\000\rD\004\000\r\164\007\000\r@\001\000\r<\001\000\r8\001\000\r4\001\000\r0\001\000\r,\001\000\005\b\001\000\004\128\001\000\004|\001\000\004x\001\000\004l\001\000\004h\001\000\004d\001\000\004`\001\000\004\\\001\000\004X\001\000\004T\001\000\004P\001\000\004L\001\000\004H\001\000\004D\001\000\004@\001\000\004<\001\000\0048\001\000\0044\001\000\0040\001\000\004,\001\000\004(\001\000\004$\001\000\004 \001\000\004\028\001\000\004\024\001\000\004\020\001\000\004\016\001\000\004\012\001\000\004\b\001\000\004\004\001\000\004\000\001\000\003\252\001\000\003\248\001\000\003\244\001\000\003\240\001\000\003\236\001\000\003\232\001\000\003\228\001\000\003\224\001\000\003\220\001\000\003\216\001\000\003\212\001\000\003\208\001\000\003\204\001\000\003\200\001\000\003\196\001\000\003\192\001\000\003\188\001\000\003\184\001\000\003\180\001\000\003\176\001\000\003\172\001\000\003\168\001\000\003\164\001\000\003\160\001\000\003\156\001\000\003\152\001\000\003\148\001\000\003\144\001\000\003\140\001\000\003\136\001\000\003\132\001\000\003\128\001\000\003|\001\000\003x\001\000\003t\001\000\003p\001\000\003l\001\000\003h\001\000\003d\001\000\003`\001\000\003\\\001\000\r\160\002\000\r\156\002\000\r\152\002\000\r\148\002\000\r\144\002\000\r\140\002\000\002\216\004\000\002\216\005\000\0144\001\000\002\216\006\000\005\016\002\000\002\144\003\000\002\144\004\000\021$\001\000\021 \001\000\b\128\001\000\bx\001\000\bp\001\000\b\128\002\000\bx\002\000\bp\002\000\b\128\003\000\bx\003\000\bp\003\000\b\128\004\000\bx\004\000\bp\004\000\bx\005\000\bp\005\000\bx\006\000\bp\006\000\b\136\001\000\bp\007\000\b\132\001\000\b|\001\000\bt\001\000\000\140\001\000\000\128\001\000\000t\001\000\b|\002\000\bt\002\000\bt\003\000\n\132\002\000\n\128\002\000\n\128\003\000\019\144\002\000\019\140\002\000\019\136\002\000\019\132\002\000\019\128\002\000\019|\002\000\019x\002\000\019t\002\000\018X\002\000\018T\002\000\014(\001\000\014$\001\000\019\144\003\000\019\140\003\000\019\136\003\000\019\132\003\000\019\128\003\000\019|\003\000\019x\003\000\019t\003\000\018X\003\000\018T\003\000\019\144\004\000\019\140\004\000\019\136\004\000\019\132\004\000\019\128\004\000\019|\004\000\019x\004\000\019t\004\000\018X\004\000\018T\004\000\002D\001\000\019\144\005\000\019\140\005\000\019\136\005\000\019\132\005\000\019\128\005\000\019|\005\000\019x\005\000\019t\005\000\018X\005\000\018T\005\000\019\128\006\000\019|\006\000\019x\006\000\019t\006\000\018T\006\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\019x\007\000\019t\007\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\019x\b\000\018`\002\000\018T\007\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\019\128\007\000\019|\007\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\019\128\b\000\019|\b\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\019\128\t\000\018p\003\000\019\144\006\000\019\140\006\000\019\136\006\000\019\132\006\000\018X\006\000\019\144\007\000\019\140\007\000\019\136\007\000\019\132\007\000\018X\007\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\019\136\b\000\019\132\b\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\019\136\t\000\018`\002\000\018X\b\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\019\144\b\000\019\140\b\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\019\144\t\000\019\140\t\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\019\144\n\000\018p\003\000\002d\001\000\002`\001\000\002\\\001\000\001\244\001\000\nd\002\000\nd\003\000\nd\004\000\nt\002\000\nt\003\000\nt\004\000\nT\002\000\005l\001\000\0028\001\000\005l\002\000\012\236\001\000\002<\001\000\005l\001\000\012\236\002\000\012\228\001\000\012\232\001\000\n<\002\000\002D\001\000\nD\002\000\005p\001\000\n`\001\000\n`\002\000\n`\003\000\np\001\000\np\002\000\np\003\000\nP\001\000\021\004\002\000\n|\001\000\nx\001\000\nl\001\000\nh\001\000\n\\\001\000\nX\001\000\nL\001\000\nH\001\000\n8\001\000\002D\001\000\n|\002\000\nx\002\000\nl\002\000\nh\002\000\n\\\002\000\nX\002\000\nL\002\000\nH\002\000\n|\003\000\nl\003\000\n\\\003\000\nL\003\000\nl\004\000\nl\005\000\nl\006\000\n|\004\000\n|\005\000\n|\006\000\n\\\004\000\nL\004\000\nh\003\000\nh\004\000\nh\005\000\nx\003\000\nx\004\000\nx\005\000\nX\003\000\nH\003\000\n@\001\000\005x\b\000\005x\t\000\r\240\001\000\005x\n\000\005x\011\000\015D\006\000\015D\007\000\015D\b\000\015D\t\000\r\016\001\000\015D\n\000\r\016\002\000\r\b\001\000\r\012\001\000\015@\004\000\005|\004\000\005t\004\000\021$\001\000\005|\005\000\005t\005\000\005|\006\000\005t\006\000\005t\007\000\005t\b\000\r\240\001\000\005t\t\000\005t\n\000\015@\005\000\015@\006\000\015@\007\000\015@\b\000\r\016\001\000\015@\t\000\b\016\001\000\n\148\001\000\n\144\001\000\n\148\002\000\n\148\003\000\n\148\004\000\n\148\005\000\t\004\001\000\b\180\001\000\n\148\006\000\n\144\002\000\n\144\003\000\n\144\004\000\t\004\001\000\b\180\001\000\n\144\005\000\015X\001\000\015P\001\000\015L\001\000\t\184\001\000\t\180\001\000\tp\001\000\t\184\002\000\t\180\002\000\t\184\003\000\t\180\003\000\t\184\004\000\t\180\004\000\t\184\005\000\t\180\005\000\t\184\006\000\t\184\007\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\t\184\b\000\015X\002\000\015P\002\000\015L\002\000\tp\002\000\015X\003\000\015P\003\000\015L\003\000\tp\003\000\tp\004\000\tX\001\000\tp\005\000\tp\006\000\t\004\001\000\b\180\001\000\tp\007\000\015X\004\000\015X\005\000\015X\006\000\015X\007\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\015X\b\000\015X\t\000\007\232\001\000\007\232\002\000\007\232\003\000\007\232\004\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\007\232\005\000\007\232\006\000\007\232\007\000\007\232\b\000\015X\n\000\td\001\000\td\002\000\000`\001\000\000`\002\000\td\003\000\td\004\000\015P\004\000\015L\004\000\015P\005\000\015P\006\000\b\244\001\000\011\148\001\000\011\148\002\000\015P\007\000\015P\b\000\t \001\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\t \002\000\t \003\000\015L\005\000\015L\006\000\t$\001\000\t,\001\000\t(\001\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\t,\002\000\t(\002\000\t,\003\000\t$\002\000\t0\001\000\t0\002\000\t`\001\000\015\028\001\000\015\028\002\000\015\028\003\000\015\028\004\000\015h\001\000\001|\001\000\015h\002\000\015h\003\000\015h\004\000\015h\005\000\015h\006\000\015h\007\000\015h\b\000\015h\t\000\007\208\001\000\007\208\002\000\007\208\003\000\007\208\004\000\007\208\005\000\007\208\006\000\007\208\007\000\007\208\b\000\007\208\t\000\015h\n\000\0150\001\000\b\020\001\000\015H\001\000\0154\001\000\015d\001\000\015`\001\000\015\\\001\000\015T\001\000\b\020\002\000\015,\001\000\015$\001\000\015$\002\000\015p\001\000\015p\002\000\015p\003\000\015p\004\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\015p\005\000\015p\006\000\0158\001\000\0158\002\000\015<\001\000\b\000\001\000\b\000\002\000\b\000\003\000\b\000\004\000\b\000\005\000\b\000\006\000\b\000\007\000\r\240\001\000\b\000\b\000\b\000\t\000\b\000\n\000\015<\002\000\015(\001\000\015l\001\000\b\016\002\000\015 \002\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\002X\005\000\002X\006\000\019\016\004\000\019\012\004\000\019\b\004\000\019\004\004\000\019\000\004\000\018\252\004\000\018\248\004\000\018\244\004\000\0188\004\000\0184\004\000\014(\001\000\014$\001\000\019\016\005\000\019\012\005\000\019\b\005\000\019\004\005\000\019\000\005\000\018\252\005\000\018\248\005\000\018\244\005\000\0188\005\000\0184\005\000\019\016\006\000\019\012\006\000\019\b\006\000\019\004\006\000\019\000\006\000\018\252\006\000\018\248\006\000\018\244\006\000\0188\006\000\0184\006\000\002D\001\000\019\016\007\000\019\012\007\000\019\b\007\000\019\004\007\000\019\000\007\000\018\252\007\000\018\248\007\000\018\244\007\000\0188\007\000\0184\007\000\019\000\b\000\018\252\b\000\018\248\b\000\018\244\b\000\0184\b\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018\248\t\000\018\244\t\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018\248\n\000\018`\002\000\0184\t\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\019\000\t\000\018\252\t\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\019\000\n\000\018\252\n\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\019\000\011\000\018p\003\000\019\016\b\000\019\012\b\000\019\b\b\000\019\004\b\000\0188\b\000\019\016\t\000\019\012\t\000\019\b\t\000\019\004\t\000\0188\t\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\019\b\n\000\019\004\n\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\019\b\011\000\018`\002\000\0188\n\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\019\016\n\000\019\012\n\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\019\016\011\000\019\012\011\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\019\016\012\000\018p\003\000\0190\003\000\019,\003\000\019(\003\000\019$\003\000\019 \003\000\019\028\003\000\019\024\003\000\019\020\003\000\018@\003\000\018<\003\000\019 \004\000\019\028\004\000\019\024\004\000\019\020\004\000\018<\004\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\019\024\005\000\019\020\005\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\019\024\006\000\018`\002\000\018<\005\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\019 \005\000\019\028\005\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\019 \006\000\019\028\006\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\019 \007\000\018p\003\000\0190\004\000\019,\004\000\019(\004\000\019$\004\000\018@\004\000\0190\005\000\019,\005\000\019(\005\000\019$\005\000\018@\005\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\019(\006\000\019$\006\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\019(\007\000\018`\002\000\018@\006\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\0190\006\000\019,\006\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\0190\007\000\019,\007\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\0190\b\000\018p\003\000\020@\003\000\020<\003\000\0208\003\000\0204\003\000\0200\003\000\020,\003\000\020(\003\000\020$\003\000\020\000\003\000\019\252\003\000\019p\003\000\019l\003\000\019h\003\000\019d\003\000\019`\003\000\019\\\003\000\019X\003\000\019T\003\000\019P\003\000\019L\003\000\019H\003\000\019D\003\000\019@\003\000\019<\003\000\0198\003\000\0194\003\000\018P\003\000\018L\003\000\018H\003\000\018D\003\000\019P\004\000\019L\004\000\019H\004\000\019D\004\000\019@\004\000\019<\004\000\0198\004\000\0194\004\000\018H\004\000\018D\004\000\002X\001\000\002T\001\000\000\164\001\000\000\160\001\000\000\144\001\000\000\132\001\000\000x\001\000\019P\005\000\019L\005\000\019H\005\000\019D\005\000\019@\005\000\019<\005\000\0198\005\000\0194\005\000\018H\005\000\018D\005\000\014(\001\000\014$\001\000\019P\006\000\019L\006\000\019H\006\000\019D\006\000\019@\006\000\019<\006\000\0198\006\000\0194\006\000\018H\006\000\018D\006\000\019P\007\000\019L\007\000\019H\007\000\019D\007\000\019@\007\000\019<\007\000\0198\007\000\0194\007\000\018H\007\000\018D\007\000\002D\001\000\019P\b\000\019L\b\000\019H\b\000\019D\b\000\019@\b\000\019<\b\000\0198\b\000\0194\b\000\018H\b\000\018D\b\000\019@\t\000\019<\t\000\0198\t\000\0194\t\000\018D\t\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\0198\n\000\0194\n\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\0198\011\000\018`\002\000\018D\n\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\019@\n\000\019<\n\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\019@\011\000\019<\011\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\019@\012\000\018p\003\000\019P\t\000\019L\t\000\019H\t\000\019D\t\000\018H\t\000\019P\n\000\019L\n\000\019H\n\000\019D\n\000\018H\n\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\019H\011\000\019D\011\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\019H\012\000\018`\002\000\018H\011\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\019P\011\000\019L\011\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\019P\012\000\019L\012\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\019P\r\000\018p\003\000\019p\004\000\019l\004\000\019h\004\000\019d\004\000\019`\004\000\019\\\004\000\019X\004\000\019T\004\000\018P\004\000\018L\004\000\019`\005\000\019\\\005\000\019X\005\000\019T\005\000\018L\005\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\019X\006\000\019T\006\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\019X\007\000\018`\002\000\018L\006\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\019`\006\000\019\\\006\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\019`\007\000\019\\\007\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\019`\b\000\018p\003\000\019p\005\000\019l\005\000\019h\005\000\019d\005\000\018P\005\000\019p\006\000\019l\006\000\019h\006\000\019d\006\000\018P\006\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\019h\007\000\019d\007\000\018`\001\000\018\\\001\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\019h\b\000\018`\002\000\018P\007\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\019p\007\000\019l\007\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\019p\b\000\019l\b\000\018p\002\000\018l\002\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\019p\t\000\018p\003\000\020\240\001\000\020\236\001\000\020@\004\000\020<\004\000\0208\004\000\0204\004\000\0200\004\000\020,\004\000\020(\004\000\020$\004\000\020\000\004\000\019\252\004\000\000\140\001\000\000\128\001\000\000t\001\000\020\240\002\000\020@\005\000\020<\005\000\0208\005\000\0204\005\000\0200\005\000\020,\005\000\020(\005\000\020$\005\000\020\000\005\000\019\252\005\000\020\240\003\000\020@\006\000\020<\006\000\0208\006\000\0204\006\000\0200\006\000\020,\006\000\020(\006\000\020$\006\000\020\000\006\000\019\252\006\000\014\140\001\000\014\136\001\000\0200\007\000\020,\007\000\020(\007\000\020$\007\000\019\252\007\000\020(\b\000\020$\b\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018`\001\000\018\\\001\000\020(\t\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018`\002\000\019\252\b\000\0200\b\000\020,\b\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\0200\t\000\020,\t\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\018p\002\000\018l\002\000\0200\n\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\018p\003\000\020@\007\000\020<\007\000\0208\007\000\0204\007\000\020\000\007\000\020@\b\000\020<\b\000\0208\b\000\0204\b\000\020\000\b\000\0208\t\000\0204\t\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018`\001\000\018\\\001\000\0208\n\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018`\002\000\020\000\t\000\020@\t\000\020<\t\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\020@\n\000\020<\n\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\018p\002\000\018l\002\000\020@\011\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\018p\003\000\020\240\001\000\020\236\001\000\020D\003\000\020 \003\000\020\028\003\000\020\024\003\000\020\020\003\000\020\016\003\000\020\012\003\000\020\b\003\000\020\004\003\000\019\248\003\000\019\244\003\000\000\140\001\000\000\128\001\000\000t\001\000\020\240\002\000\020D\004\000\020 \004\000\020\028\004\000\020\024\004\000\020\020\004\000\020\016\004\000\020\012\004\000\020\b\004\000\020\004\004\000\019\248\004\000\019\244\004\000\020\240\003\000\020D\005\000\020 \005\000\020\028\005\000\020\024\005\000\020\020\005\000\020\016\005\000\020\012\005\000\020\b\005\000\020\004\005\000\019\248\005\000\019\244\005\000\014\140\001\000\014\136\001\000\020\016\006\000\020\012\006\000\020\b\006\000\020\004\006\000\019\244\006\000\020\b\007\000\020\004\007\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018`\001\000\018\\\001\000\020\b\b\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018`\002\000\019\244\007\000\020\016\007\000\020\012\007\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\020\016\b\000\020\012\b\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\018p\002\000\018l\002\000\020\016\t\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\018p\003\000\020 \006\000\020\028\006\000\020\024\006\000\020\020\006\000\019\248\006\000\020 \007\000\020\028\007\000\020\024\007\000\020\020\007\000\019\248\007\000\020\024\b\000\020\020\b\000\019\176\001\000\019\172\001\000\019\168\001\000\019\164\001\000\019\160\001\000\019\156\001\000\019\152\001\000\019\148\001\000\018`\001\000\018\\\001\000\020\024\t\000\019\176\002\000\019\172\002\000\019\168\002\000\019\164\002\000\018`\002\000\019\248\b\000\020 \b\000\020\028\b\000\019\240\001\000\019\236\001\000\019\232\001\000\019\228\001\000\019\224\001\000\019\220\001\000\019\216\001\000\019\212\001\000\019\208\001\000\019\204\001\000\019\200\001\000\019\196\001\000\019\192\001\000\019\188\001\000\019\184\001\000\019\180\001\000\018p\001\000\018l\001\000\018h\001\000\018d\001\000\020 \t\000\020\028\t\000\019\240\002\000\019\236\002\000\019\232\002\000\019\228\002\000\019\224\002\000\019\220\002\000\019\216\002\000\019\212\002\000\018p\002\000\018l\002\000\020 \n\000\019\240\003\000\019\236\003\000\019\232\003\000\019\228\003\000\018p\003\000\005\184\003\000\002D\001\000\005\184\004\000\014\176\004\000\014\172\004\000\014\168\004\000\012\220\001\000\005\184\001\000\005\180\001\000\000\160\005\000\000\160\006\000\005\192\002\000\002D\001\000\005\204\002\000\005\172\001\000\005\204\003\000\012\220\001\000\005\184\001\000\005\180\001\000\014\188\003\000\014\184\003\000\014\180\003\000\012\220\001\000\005\184\001\000\005\180\001\000\000\164\004\000\000\164\005\000\014\188\004\000\014\184\004\000\014\180\004\000\014\188\005\000\000\156\001\000\014\188\006\000\014\188\007\000\012\220\001\000\005\184\001\000\005\180\001\000\014\184\005\000\000\152\001\000\014\184\006\000\000\152\002\000\014\184\007\000\014\184\b\000\012\220\001\000\005\184\001\000\005\180\001\000\014\180\005\000\002D\001\000\014\176\001\000\014\172\001\000\014\168\001\000\014 \002\000\014\028\001\000\000\160\002\000\000\152\001\000\014\176\002\000\014\172\002\000\014\168\002\000\014 \003\000\014\028\002\000\000\160\003\000\000\152\002\000\021\152\006\000\021\152\007\000\021\152\b\000\000\180\003\000\000\180\004\000\003\024\003\000\003\024\004\000\003\024\005\000\003\024\006\000\003\024\007\000\005\140\001\000\005\140\002\000\000\000\001\000\000\004\000\000\005\160\001\000\005\160\002\000\000\004\001\000\000\b\000\000\021d\001\000\b\188\001\000\001\248\001\000\b\188\002\000\b\188\003\000\b\192\001\000\000\b\001\000\t\004\001\000\b\204\001\000\b\200\001\000\b\196\001\000\b\180\001\000\b\204\002\000\b\200\002\000\b\196\002\000\b\180\002\000\021d\001\000\b\200\003\000\b\200\004\000\b\200\005\000\b\204\003\000\b\196\003\000\000X\001\000\b\184\001\000\000\\\001\000\012\004\001\000\012\004\002\000\000\012\000\000\000\012\001\000\012\b\001\000\012\b\002\000\000\016\000\000\000\016\001\000\012\012\001\000\002D\001\000\012\012\002\000\000\020\000\000\012\016\001\000\012\016\002\000\000\020\001\000\000\024\000\000\000\024\001\000\012\020\001\000\t\004\001\000\b\180\001\000\012\020\002\000\000\028\000\000\000\028\001\000\012\024\001\000\b\244\001\000\012\024\002\000\000 \000\000\000 \001\000\012\028\001\000\tL\001\000\tH\001\000\t@\001\000\012\028\002\000\000$\000\000\000$\001\000\012 \001\000\t\176\001\000\t\168\001\000\t\164\001\000\t\160\001\000\t\156\001\000\t\152\001\000\t\136\001\000\012 \002\000\000(\000\000\000(\001\000\012$\001\000\012$\002\000\000,\000\000\r\196\001\000\012@\001\000\012<\001\000\0124\001\000\0120\001\000\012(\001\000\006\136\001\000\006\132\001\000\006\128\001\000\006|\001\000\012(\002\000\000,\001\000\0000\000\000\012,\001\000\012,\002\000\0000\001\000\b\252\001\000\b\244\001\000\b\252\002\000\b\244\002\000\0004\000\000\020\216\001\000\020\212\001\000\020\208\001\000\020\204\001\000\020\200\001\000\020\196\001\000\020\192\001\000\020\216\002\000\020\212\002\000\020\208\002\000\020\204\002\000\020\200\002\000\020\196\002\000\020\192\002\000\020\216\003\000\020\196\003\000\020\200\003\000\020\212\003\000\020\204\003\000\020\208\003\000\b\252\001\000\b\244\001\000\020\188\001\000\020\184\001\000\020\180\001\000\020\176\001\000\020\172\001\000\020\168\001\000\020\164\001\000\020\188\002\000\020\184\002\000\020\180\002\000\020\176\002\000\020\172\002\000\020\168\002\000\020\164\002\000\020\188\003\000\020\168\003\000\020\172\003\000\020\184\003\000\020\176\003\000\020\180\003\000\b\252\001\000\b\244\001\000\020\232\001\000\0004\001\000\020\228\001\000\020\228\002\000\b<\001\000\b<\002\000\020\220\001\000\020\220\002\000\020\220\003\000\020\224\001\000\020\224\002\000\0008\000\000\bH\001\000\bD\001\000\bP\001\000\bL\001\000\bL\002\000\bP\002\000\bH\002\000\bH\003\000\bH\004\000\bD\002\000\0008\001\000\021`\001\000\021`\002\000\021`\003\000\021`\004\000\021\\\001\000\021\\\002"), (16, "\000\000\000\001\000\002\000\003\000\004\000\005\000\006\000\007\000\b\000\t\000\n\000\011\000\012\000\r\000\014\000\015\000\016\000\017\000\018\000\019\000\020\000\021\000\022\000\023\000\024\000\025\000\026\000\027\000\028\000\029\000\030\000\031\000 \000!\000\"\000#\000$\000%\000&\000'\000(\000)\000*\000+\000,\000-\000.\000/\0000\0001\0002\0003\0004\0005\0006\0007\0009\000:\000;\000<\000=\000>\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000]\000_\000`\000a\000c\000e\000f\000h\000j\000l\000m\000o\000q\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\131\000\133\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\143\000\144\000\145\000\147\000\148\000\149\000\150\000\151\000\169\000\174\000\178\000\179\000\180\000\181\000\182\000\183\000\200\000\206\000\212\000\216\000\218\000\219\000\220\000\224\000\225\001 \001!\001^\001o\001p\001q\001r\001t\001u\001v\001w\001y\001z\001{\001|\001}\001~\001\132\001\138\001\144\001\145\001\147\001\148\001\151\001\153\001\154\001\155\001\156\001\159\001\160\001\161\001\165\001\167\001\169\001\170\001\174\001\175\001\177\001\178\001\179\001\180\001\184\001\185\001\186\001\187\001\189\001\191\001\193\001\194\001\198\001\199\001\201\001\202\001\203\001\204\001\205\001\207\001\208\001\209\001\210\001\211\001\212\001\215\001\218\001\219\001\223\001\225\001\226\001\228\001\229\001\234\001\253\001\254\002\000\002\007\002\012\002\017\002\018\002\019\002\020\002\021\002\022\002\023\002\024\002\025\002%\002+\0021\0022\0024\0025\0027\0029\002:\002;\002>\002@\002C\002D\002F\002G\002H\002K\002L\002O\002P\002Q\002R\002S\002U\002V\002W\002X\002Y\002Z\002[\002\\\002]\002b\002f\002h\002s\002x\002\132\002\133\002\135\002\136\002\137\002\143\002\148\002\160\002\166\002\167\002\207\002\224\002\225\002\231\002\234\002\235\002\236\002\237\002\238\002\242\002\245\002\246\002\247\002\248\002\249\002\252\002\254\002\255\003\003\003\005\003\007\003\b\003\012\003 \0031\003=\003>\003?\003@\003A\003B\003C\003G\003H\003R\003S\003T\003U\003V\003W\003b\003l\003q\003}\003\131\003\132\003\154\003\166\003\171\003\183\003\189\003\190\003\212\003\224\003\230\003\235\003\247\003\253\003\254\004\020\004 \004&\004+\004,\004/\0040\0044\0045\0046\0047\0048\004;\004=\004@\004A\004E\004I\004M\004S\004X\004]\004i\004o\004p\004\134\004\146\004\152\004\153\004\157\004\160\004\161\004\162\004\164\004\165\004\166\004\170\004\171\004\172\004\173\004\174\004\178\004\179\004\184\004\185\004\188\004\190\004\191\004\195\004\197\004\199\004\200\004\204\004\206\004\216\004\221\004\223\004\235\004\245\005\000\005\n\005\015\005\027\005!\005\"\0058\005D\005J\005O\005T\005`\005f\005g\005}\005\137\005\143\005\153\005\158\005\170\005\176\005\177\005\199\005\211\005\217\005\222\005\227\005\239\005\245\005\246\006\012\006\024\006\030\0062\006C\006O\006Y\006d\006n\006s\006\127\006\133\006\134\006\156\006\168\006\174\006\179\006\184\006\196\006\202\006\203\006\225\006\237\006\243\006\253\007\002\007\014\007\020\007\021\007+\0077\007=\007B\007G\007S\007Y\007Z\007p\007|\007\130\007\152\007\164\007\170\007\171\007\193\007\205\007\211\007\216\007\218\007\219\007\223\007\224\007\227\007\228\007\232\007\233\007\236\007\237\007\238\007\239\007\240\007\241\007\242\007\244\007\245\007\246\007\247\007\249\007\250\007\251\007\252\007\254\007\255\b\003\b\004\b\b\b\t\b\011\b\r\b\014\b\015\b\016\b\018\b\019\b\021\b\022\b\025\b\026\b\027\b\029\b\030\b\031\b \b\"\b$\b'\b(\b*\b0\b6\b<\bJ\bQ\bX\b_\bf\bm\bs\b\129\b\136\b\143\b\150\b\157\b\164\b\165\b\175\b\176\b\177\b\178\b\179\b\181\b\182\b\192\b\197\b\202\b\207\b\213\b\218\b\223\b\235\b\241\b\247\b\253\t\004\t\n\t\016\t\021\t!\t'\t-\t3\t:\t@\tF\tJ\tK\tL\tM\tN\tR\tS\tT\tU\tV\t]\tb\td\tf\th\ti\tj\tl\tm\tn\to\tp\tq\tr\ts\tt\tu\ty\t}\t\129\t\131\t\133\t\135\t\136\t\137\t\139\t\140\t\141\t\151\t\152\t\153\t\154\t\155\t\157\t\159\t\160\t\161\t\162\t\163\t\164\t\172\t\174\t\179\t\192\t\197\t\210\t\215\t\228\t\230\t\233\t\236\t\246\t\247\t\249\t\250\t\251\t\252\t\253\n\006\n\007\n\b\n\t\n\n\n\r\n\023\n\030\n%\n,\n.\n0\n2\n3\n4\n5\n6\n7\n;\n<\n>\nB\nC\nD\nE\nF\nG\nH\nI\nL\nN\nO\nT\nU\nV\nW\nX\nY\nZ\n[\n\\\n]\n^\n_\nd\ni\nu\n{\n\129\n\135\n\142\n\148\n\154\n\160\n\166\n\167\n\169\n\170\n\172\n\174\n\175\n\176\n\177\n\184\n\190\n\193\n\194\n\195\n\196\n\197\n\198\n\199\n\200\n\210\n\215\n\227\n\233\n\239\n\245\n\252\011\002\011\b\011\014\011\020\011\021\011\022\011\023\011\024\011\"\011#\011-\011.\0118\0119\011:\011;\011=\011G\011M\011R\011^\011d\011j\011p\011w\011}\011\131\011\137\011\143\011\144\011\154\011\158\011\167\011\169\011\170\011\171\011\172\011\176\011\177\011\179\011\180\011\184\011\185\011\186\011\187\011\188\011\189\011\190\011\192\011\193\011\194\011\199\011\200\011\201\011\212\011\213\011\214\011\216\011\217\011\227\011\228\011\229\011\239\011\240\011\242\011\243\011\244\011\245\012\001\012\003\012\004\012\005\012\006\012\016\012\018\012\019\012\028\012\029\012'\012+\012.\012/\0120\0121\0122\0123\0124\0125\0126\0127\0128\0129\012E\012F\012G\012H\012K\012N\012Q\012R\012S\012T\012U\012V\012W\012X\012\\\012_\012i\012p\012w\012~\012\134\012\140\012\154\012\161\012\168\012\175\012\182\012\189\012\199\012\206\012\213\012\220\012\228\012\229\012\230\012\231\012\232\012\233\012\234\012\237\012\239\012\245\012\249\012\253\012\255\r\002\r\003\r\004\r\005\r\b\r\t\r\n\r\011\r\012\r\r\r\014\r\015\r\016\r\019\r\021\r\022\r\023\r\024\r\025\r#\r(\r-\r2\r8\r=\rB\rN\rT\rZ\r`\rg\rm\rs\rx\r\132\r\138\r\144\r\150\r\157\r\163\r\169\r\175\r\181\r\186\r\198\r\204\r\210\r\216\r\223\r\229\r\235\r\241\r\247\r\248\r\249\014\003\014\b\014\020\014\026\014 \014&\014-\0143\0149\014?\014E\014F\014P\014Q\014[\014\\\014f\014g\014h\014i\014j\014p\014u\014\129\014\135\014\141\014\147\014\154\014\160\014\166\014\172\014\178\014\179\014\189\014\190\014\200\014\206\014\212\014\213\014\223\014\228\014\233\014\238\014\241\014\244\014\245\014\247\014\255\015\007\015\021\015\024\015\027\015\028\015\030\015\031\015\"\015#\015$\015%\015&\015'\015(\0157\015;\015?\015A\015D\015E\015H\015I\015J\015K\015L\015M\015N\015O\015P\015Q\015R\015S\015`\015b\015d\015e\015i\015j\015k\015l\015{\015\127\015\131\015\133\015\136\015\137\015\139\015\154\015\158\015\162\015\164\015\167\015\170\015\171\015\172\015\173\015\174\015\175\015\176\015\182\015\194\015\209\015\213\015\217\015\219\015\222\015\223\015\226\015\240\015\241\015\244\015\248\015\250\015\253\015\254\016\000\016\001\016\002\016\003\016\004\016\005\016\006\016\011\016\r\016\014\016\015\016\016\016 \016,\0168\016E\016O\016Y\016c\016n\016o\016p\016s\016u\016w\016y\016{\016~\016\127\016\129\016\131\016\132\016\141\016\143\016\145\016\147\016\149\016\151\016\152\016\153\016\157\016\158\016\162\016\164\016\165\016\167\016\168\016\170\016\171\016\175\016\177\016\179\016\180\016\188\016\190\016\199\016\200\016\203\016\205\016\214\016\217\016\220\016\222\016\224\016\225\016\226\016\227\016\228\016\230\016\231\016\239\016\242\016\243\016\246\016\247\016\248\016\251\016\252\016\254\016\255\017\000\017\003\017\004\017\005\017\006\017\b\017\t\017\011\017\r\017\022\017\025\017\026\017#\017&\017.\017/\0177\0178\017:\017C\017D\017E\017M\017N\017P\017R\017T\017U\017V\017W\017X\017Y\017Z\017[\017\\\017k\017l\017m\017n\017}\017~\017\127\017\130\017\131\017\143\017\152\017\161\017\170\017\180\017\182\017\188\017\208\017\209\017\210\017\217\017\218\017\230\017\242\017\254\018\005\018\012\018\019\018\027\018!\018/\0186\018=\018D\018K\018R\018\\\018c\018j\018q\018y\018\136\018\137\018\161\018\184\018\189\018\190\018\192\018\194\018\195\018\196\018\197\018\198\018\199\018\200\018\201\018\202\018\206\018\223\018\224\018\231\018\232\018\234\018\243\018\244\018\245\018\246\018\247\018\248\018\249\018\250\018\252\018\253\019\001\019\002\019\n\019\011\019\r\019\015\019\017\019\019\019\020\019\022\019\023\019\024\019\025\019\026\019\027\019\029\019\030\019\031\019 \019\"\019'\019(\019)\019*\0191\0198\019?\019G\019H\019I\019J\019T\019U\019V\019W\019X\019Y\019h\019i\019j\019k\019l\019o\019y\019\128\019\135\019\142\019\150\019\152\019\167\019\174\019\181\019\188\019\196\019\242\019\244\019\245\019\246\019\247\019\248\019\249\019\250\019\251\019\252\020\011\020\012\020\027\020'\020+\0204\020=\020F\020P\020R\020S\020Z\020`\020n\020u\020|\020\131\020\138\020\145\020\155\020\162\020\169\020\176\020\184\020\191\020\212\020\218\020\232\020\239\020\246\020\253\021\004\021\011\021\021\021\028\021#\021*\0212\0219\021N\021U\021\\\021c\021k\021m\021|\021~\021\127\021\128\021\129\021\212\021\215\021\225\021\232\021\239\021\246\021\254\022\005\022\012\022\019\022\027\022k\022n\022x\022\127\022\134\022\141\022\149\022\156\022\163\022\170\022\178\023\002\023\005\023\015\023\022\023\029\023$\023,\0233\023:\023A\023I\023\153\023\156\023\166\023\173\023\180\023\187\023\195\023\202\023\209\023\216\023\224\0240\0243\024=\024D\024K\024R\024Z\024a\024h\024o\024w\024\199\024\202\024\212\024\219\024\226\024\233\024\241\024\248\024\255\025\006\025\014\025^\025a\025k\025r\025y\025\128\025\136\025\143\025\150\025\157\025\165\025\245\025\248\026\002\026\t\026\016\026\023\026\031\026&\026-\0264\026<\026\140\026\143\026\153\026\160\026\167\026\174\026\182\026\189\026\196\026\203\026\211\027#\027&\0270\0277\027>\027E\027M\027T\027[\027b\027j\027\186\027\189\027\199\027\206\027\213\027\220\027\228\027\235\027\242\027\249\028\001\028Q\028T\028^\028e\028l\028s\028{\028\130\028\137\028\144\028\152\028\232\028\235\028\245\028\252\029\003\029\n\029\018\029\025\029 \029'\029/\029\127\029\130\029\140\029\147\029\154\029\161\029\169\029\176\029\183\029\190\029\198\030\022\030\025\030#\030*\0301\0308\030@\030G\030N\030U\030]\030\173\030\176\030\186\030\193\030\200\030\207\030\215\030\222\030\229\030\236\030\244\031D\031G\031Q\031X\031_\031f\031n\031u\031|\031\131\031\139\031\219\031\225\031\239\031\246\031\253 \004 \011 \018 \028 # * 1 9 @ U \\ c j r \194 \197 \207 \214 \221 \228 \236 \243 \250!\001!\t!Y!\\!f!m!t!{!\131!\138!\145!\152!\160!\240!\243!\253\"\004\"\011\"\018\"\026\"!\"(\"/\"7\"\135\"\138\"\148\"\155\"\162\"\169\"\177\"\184\"\191\"\198\"\206#\030#!#+#2#9#@#H#O#V#]#e#\181#\184#\194#\201#\208#\215#\223#\230#\237#\244#\252$L$O$Y$`$g$n$v$}$\132$\139$\147$\227$\228$\229$\231$\246$\249%\003%\n%\017%\024% %'%.%5%=%\141%\144%\145%\146%\147%\148%\149%\150%\158%\160%\161%\162%\163%\164%\166%\167%\168%\169%\170%\171%\172%\173%\183%\189%\191%\193%\195%\198%\199%\200%\201%\202%\203%\207%\209%\212%\213%\214%\215%\216%\217%\219%\220%\221%\222%\223%\224%\225%\226%\227%\228%\232%\234%\237%\238%\239%\240%\241%\242%\243%\244%\245%\255&\000&\001&\007&\r&\017&\021&\023&\026&\027&\028&\029&\030&\031&!&\"&#&$&%&&&'&(&)&*&+&,&-&.&/&0&\128&\135&\142&\149&\157&\237'?'A'B'F'J'M'W'^'e'l't'{'\130'\137'\145'\225'\229'\233'\237'\240'\250(\001(\b(\015(\023(\030(%(,(4(\132(\136(\140(\144(\147(\157(\164(\171(\178(\186(\193(\200(\207(\215)')C)G)K)O)R)\\)c)j)q)y)\128)\135)\142)\150)\230)\234)\238)\242)\245)\255*\006*\r*\020*\028*#***1*9*\137*\141*\145*\149*\152*\162*\169*\176*\183*\191*\198*\205*\212*\220+,+:+F+J+N+R+U+_+f+m+t+|+\131+\138+\145+\153+\233+\237+\241+\245+\248,\002,\t,\016,\023,\031,&,-,4,<,\140,\144,\148,\152,\155,\165,\172,\179,\186,\194,\201,\208,\215,\223-/-3-6-@-G-N-U-]-d-k-r-z-\202-\217-\219-\220-\221.-.../.0.1.2.3.4.5.6.7.8.9.C.D.E.G.H.I.J.K.L.N.O.P.U.b.l.v.\128.\139.\142.\152.\159.\166.\173.\181.\188.\195.\202.\210/\"/#/%/&/0/3/?/B/L/S/Z/a/i/p/w/~/\134/\214/\217/\229/\232/\242/\2490\0000\0070\0150\0220\0290$0,0|0\1270\1390\1420\1520\1590\1660\1730\1810\1880\1950\2020\2101\"1,1/191@1G1N1V1]1d1k1s1\1951\2041\2161\2251\2341\2431\2532\0002\n2\0172\0242\0312'2.252<2D2\1482\1572\1662\1752\1852\1882\1982\2052\2122\2192\2272\2342\2412\2483\0003P3\1623\1653\1753\1823\1893\1963\2043\2113\2183\2253\233494:4;4<4>4?4@4A4K4U4_4j4l4m4n4o4p4\1954\1974\1984\2034\2164\2264\2364\2465\0015\0035\0045\0145\0245\"5-5/505152535\1345\1365\1375\1425\1555\1655\1755\1855\1965\1985\1995\2005\2105\2205\2305\2415\2435\2445\2455\2466I6K6L6M6N6O6P6_6`6a6d6e6h6k6m6n6o6p6q6\1386\1626\1646\1656\1726\1936\2006\2076\2146\2227.7:7F7S7]7g7q7|7\1277\1377\1447\1517\1587\1667\1737\1807\1877\1958\0198\0298'818<8?8I8P8W8^8f8m8t8{8\1318\2119&9)939:9A9H9P9W9^9e9m9\1899\1909\1919\1929\1939\1949\1959\1969\1979\2029\2059\2069\2079\2089\2099\2109\2119\2129\2139\2149\2159\2169\2179\2189\2199\2209\2219\2229\2239\2249\2399\2409\2419\2429\252:\006:\016:\027:\028:\029:%:&:(:1:2:3:;:<:\143:\144:\145:\153:\154:\156:\165:\166:\167:\175:\176:\180:\181:\182:\183:\184:\188:\189:\190:\191:\192:\193:\194:\195:\196:\197:\198:\199:\203:\205:\214:\215:\219:\220:\221:\225:\226:\227:\228:\229:\230:\231:\232:\236:\237:\238:\239:\240:\241:\243:\244:\245:\246:\247:\248:\249:\250:\251:\253:\255;\001;\004;\005;\t;\011;\r;\015;\016;\017;\021;\022;\023;\025;\026;\027;\029;\";$;(;,;.;3;5;:;<;=;B;D;H;P;V;\\;a;i;k;n;p;q;u;w;y;z;~;\128;\132;\134;\135;\136;\140;\146;\147;\148;\152;\158;\159;\160;\161;\162;\163;\164;\165;\166;\167;\168;\169;\170;\171;\172;\173;\174;\175;\176;\177;\178;\179;\180;\181;\182;\189;\210;\217;\224;\231;\239\002>\b>\015>\023>\024>g>h>i>p>w>~>\134>\141>\148>\155>\163>\243>\246>\248>\249>\250>\251>\252?\006?\016?\026?%?'?(?2?B?B@BABBBCBDBEBGBHBIBJBKBLBMBNBPBQBRBSBTBUBVBWBXBcBdBeBfBgBhBjBlBmBoBqBrBsBtBuBvBwBxB{B}B~B\128B\129B\130B\131B\132B\134B\136B\138B\139B\140B\141B\142B\143B\144B\147B\150B\151B\154B\157B\159B\160B\161B\162B\164B\165B\166B\167B\168B\169B\170B\171B\172B\176B\178B\179B\181B\182B\183B\184B\185B\186B\189B\192B\194B\195B\196B\197B\199B\200B\201B\202B\203B\204B\205B\206B\207B\208B\209B\211B\212B\213B\215B\219B\220B\221B\222B\223B\224B\225B\227B\228B\229B\231B\232B\233B\235B\236B\237B\238B\239B\241B\242B\244B\245B\246B\248B\250B\251B\253B\254B\255C\001C\002C\003C\005C\006C\bC\tC\011C\012C\rC\014C\015C\018C\019C\020C\024C\025C\026C\027C\031C\"C#C$C%C&C'C-C2C5C7C8C:C;CC@CACBCCCDCECGCHCICJCKCLCMCNCOCPCQCRCSCTCVCWCXCYC[C\\C]C^C_C`CaCbCcCdCeCfCgChCiCjCkClCmCnCoCpCqCsCtCuCvCwCxCyC}C~C\127C\128C\129C\130C\131C\132C\133C\135C\136C\137C\138C\139C\140C\141C\142C\143C\144C\145C\146C\147C\150C\151C\152C\153C\154C\155C\156C\157C\158C\159C\160C\161C\162C\163C\164C\166C\168C\169C\170C\171C\172C\173C\176C\177C\178C\179C\180C\181C\182C\183C\185C\186C\187C\188C\189C\190C\192C\194C\195C\196C\198C\199C\200C\201C\202C\205C\206C\207C\208C\212C\220C\221C\227C\233C\234C\244C\250D\000D\001D\011D\016D\027D\028D\029D\031D D!D\"D#D*D1D8D@DGD\\DcDjDqDyD\201D\211D\218D\225D\232D\240D\247E\012E\019E\026E!E)EyE\127E\128E\129E\131E\132E\133E\134E\139E\142E\145E\148E\150E\152E\153E\154E\160E\162E\163E\164E\165E\166E\178E\188E\199E\209E\214E\226E\232E\233E\255F\011F\017F\022F\027F'F-F.FDFPFVFZF[F\\F]F^F_F`FaFcFdFfFgFhFiFjFlFmFnFoFpFqFrFsFtFuFvF\128F\136F\140F\141F\142F\143F\144F\145F\146F\147F\148F\149F\150F\151F\152F\153F\154F\155F\156F\157F\158F\159F\161F\162F\163F\164F\165F\167F\168F\169F\170F\171F\174F\177F\179F\180F\181F\183F\184F\185F\186F\187F\189F\190F\191F\193F\194F\195F\196F\199F\200F\201F\202F\205F\206F\212F\214F\216F\218F\220F\221F\229F\230F\234F\238F\240F\241F\244F\245F\246F\247F\248G\000G\001G\002G\003G\004G\005G\006G\014G\015G\016G\017G\018G\019G\020G\021G\022G\023G\024G\026G\027G\029G\030G\031G G!G\"G*G+G,G-G.G0G9G:G;GG?G@GAGBGDGEGFGGGHGIGJGKGLGMGNGOGPGQGRGSGTGUGVGWGXGYGZG[G\\G]G^G_G`GaGbGcGdGeGmGnGoGpGqGrGsGtGuGvGwGxGyG{G|G}G~G\127G\128G\129G\130G\138G\139G\151G\161G\172G\182G\187G\199G\205G\206G\228G\240G\246G\251H\000H\012H\018H\019H)H5H;HEHJHVH\\H]HsH\127H\133H\138H\143H\155H\161H\162H\184H\196H\202H\232H\249I\005I\015I\026I$I)I5I;I\000?\000@\000A\000B\000C\000D\000E\000F\000G\000H\000I\000J\000K\000L\000M\000N\000O\000P\000Q\000R\000S\000T\000U\000V\000W\000]\000_\000`\000a\000c\000e\000f\000h\000j\000l\000m\000o\000q\000s\000t\000u\000v\000w\000x\000y\000z\000{\000|\000}\000~\000\127\000\128\000\129\000\131\000\133\000\135\000\136\000\137\000\138\000\139\000\140\000\141\000\143\000\144\000\145\000\147\000\148\000\149\000\150\000\151\000\170\000\175\000\179\000\180\000\181\000\182\000\183\000\184\000\202\000\203\000\204\000\206\000\207\000\208\000\212\000\213\001\020\001\021\001R\001d\001j\001p\001t\001{\001|\001}\001\127\001\128\001\129\001\132\001\134\001\135\001\139\001\140\001\144\001\145\001\147\001\149\001\150\001\154\001\156\001\164\001\169\001\174\001\175\001\176\001\177\001\179\001\180\001\181\001\182\001\184\001\185\001\186\001\187\001\188\001\189\001\195\001\201\001\207\001\208\001\210\001\211\001\214\001\216\001\217\001\218\001\219\001\222\001\223\001\224\001\228\001\230\001\232\001\233\001\237\001\238\001\239\001\241\001\243\001\245\001\246\001\250\001\251\001\253\001\254\001\255\002\000\002\001\002\003\002\004\002\005\002\006\002\007\002\b\002\011\002\014\002\015\002\019\002\021\002\022\002\024\002\025\002\030\0022\0023\0024\0025\0026\0027\0028\0029\002:\002;\002G\002M\002S\002T\002V\002W\002Y\002[\002\\\002]\002`\002b\002e\002f\002h\002i\002j\002m\002n\002q\002r\002s\002t\002u\002w\002x\002y\002z\002{\002|\002}\002~\002\127\002\132\002\136\002\138\002\149\002\154\002\166\002\167\002\169\002\170\002\171\002\177\002\182\002\194\002\200\002\201\002\241\003\003\003\004\003\n\003\r\003\014\003\015\003\016\003\017\003\021\003\024\003\025\003\026\003\027\003\028\003\031\003!\003\"\003&\003(\003*\003+\003/\003C\003U\003a\003b\003c\003d\003e\003f\003g\003k\003l\003v\003w\003x\003y\003z\003{\003\134\003\144\003\149\003\161\003\167\003\168\003\190\003\202\003\207\003\219\003\225\003\226\003\248\004\004\004\n\004\015\004\027\004!\004\"\0048\004D\004J\004O\004P\004S\004T\004X\004Y\004Z\004[\004\\\004_\004a\004d\004e\004i\004m\004q\004w\004|\004\129\004\141\004\147\004\148\004\170\004\182\004\188\004\189\004\193\004\196\004\197\004\198\004\200\004\201\004\202\004\206\004\207\004\208\004\209\004\210\004\214\004\215\004\220\004\221\004\224\004\226\004\227\004\231\004\233\004\235\004\236\004\240\004\242\004\252\005\001\005\003\005\015\005\025\005$\005.\0053\005?\005E\005F\005\\\005h\005n\005s\005x\005\132\005\138\005\139\005\161\005\173\005\179\005\189\005\194\005\206\005\212\005\213\005\235\005\247\005\253\006\002\006\007\006\019\006\025\006\026\0060\006<\006B\006V\006h\006t\006~\006\137\006\147\006\152\006\164\006\170\006\171\006\193\006\205\006\211\006\216\006\221\006\233\006\239\006\240\007\006\007\018\007\024\007\"\007'\0073\0079\007:\007P\007\\\007b\007g\007l\007x\007~\007\127\007\149\007\161\007\167\007\189\007\201\007\207\007\208\007\230\007\242\007\248\007\253\007\255\b\000\b\004\b\005\b\b\b\t\b\r\b\014\b\017\b\018\b\019\b\020\b\021\b\022\b\023\b\025\b\026\b\027\b\028\b\030\b\031\b \b!\b#\b$\b(\b)\b-\b.\b0\b2\b3\b4\b5\b7\b8\b:\b;\b>\b?\b@\bB\bC\bD\bE\bG\bI\bL\bM\bO\bU\b[\ba\bo\bv\b}\b\132\b\139\b\146\b\152\b\166\b\173\b\180\b\187\b\194\b\201\b\202\b\212\b\213\b\214\b\215\b\216\b\218\b\219\b\229\b\234\b\239\b\244\b\250\b\255\t\004\t\016\t\022\t\028\t\"\t)\t/\t5\t:\tF\tL\tR\tX\t_\te\tk\to\tp\tq\tr\ts\tw\tx\ty\tz\t{\t\130\t\135\t\137\t\139\t\141\t\142\t\143\t\145\t\146\t\147\t\148\t\149\t\150\t\151\t\152\t\153\t\154\t\158\t\162\t\166\t\168\t\170\t\172\t\173\t\174\t\176\t\177\t\178\t\188\t\189\t\190\t\191\t\192\t\194\t\196\t\197\t\198\t\199\t\200\t\201\t\213\t\215\t\220\t\233\t\238\t\251\n\000\n\r\n\015\n\018\n\021\n\031\n \n\"\n#\n$\n%\n&\n/\n0\n1\n2\n3\n6\n@\nG\nN\nU\nW\nY\n[\n\\\n]\n^\n_\n`\nd\ne\ng\nk\nl\nm\nn\no\np\nq\nr\nu\nw\nx\n}\n~\n\127\n\128\n\129\n\130\n\131\n\132\n\133\n\134\n\135\n\136\n\141\n\146\n\158\n\164\n\170\n\176\n\183\n\189\n\195\n\201\n\207\n\208\n\210\n\211\n\213\n\215\n\216\n\217\n\218\n\225\n\231\n\234\n\235\n\236\n\237\n\238\n\239\n\240\n\241\n\251\011\000\011\012\011\018\011\024\011\030\011%\011+\0111\0117\011=\011>\011?\011@\011A\011K\011L\011V\011W\011a\011b\011c\011d\011f\011p\011v\011{\011\135\011\141\011\147\011\153\011\160\011\166\011\172\011\178\011\184\011\185\011\195\011\199\011\208\011\210\011\211\011\212\011\213\011\217\011\218\011\220\011\221\011\225\011\226\011\227\011\228\011\229\011\230\011\231\011\233\011\234\011\235\011\240\011\241\011\242\011\253\011\254\011\255\012\001\012\002\012\012\012\r\012\014\012\024\012\025\012\027\012\028\012\029\012\030\012*\012,\012-\012.\012/\0129\012;\012<\012E\012F\012P\012T\012W\012X\012Y\012Z\012[\012\\\012]\012^\012_\012`\012a\012b\012n\012o\012p\012q\012t\012w\012z\012{\012|\012}\012~\012\127\012\128\012\129\012\133\012\136\012\146\012\153\012\160\012\167\012\175\012\181\012\195\012\202\012\209\012\216\012\223\012\230\012\240\012\247\012\254\r\005\r\r\r\014\r\015\r\016\r\017\r\018\r\019\r\021\r\022\r\023\r\026\r&\r,\r0\r2\r>\rD\rF\rG\rI\rJ\rK\rL\rM\rN\rO\rP\rQ\rS\rT\rU\rV\rW\ra\rf\rk\rp\rv\r{\r\128\r\140\r\146\r\152\r\158\r\165\r\171\r\177\r\182\r\194\r\200\r\206\r\212\r\219\r\225\r\231\r\237\r\243\r\248\014\004\014\n\014\016\014\022\014\029\014#\014)\014/\0145\0146\0147\014A\014F\014R\014X\014^\014d\014k\014q\014w\014}\014\131\014\132\014\142\014\143\014\153\014\154\014\164\014\165\014\166\014\167\014\168\014\174\014\179\014\191\014\197\014\203\014\209\014\216\014\222\014\228\014\234\014\240\014\241\014\251\014\252\015\006\015\012\015\018\015\019\015\029\015\"\015'\015,\015/\0151\0152\0153\015=\015>\015?\015I\015J\015K\015L\015M\015N\015O\015Y\015[\015]\015^\015b\015c\015d\015e\015f\015g\015v\015z\015\134\015\140\015\144\015\146\015\158\015\164\015\166\015\167\015\168\015\178\015\179\015\180\015\188\015\189\015\190\015\191\015\196\015\198\015\199\015\200\015\201\015\217\015\229\015\241\015\254\016\b\016\018\016\028\016'\016(\016)\016-\0160\0161\0163\0165\0168\016:\016<\016>\016?\016@\016D\016G\016H\016J\016N\016Q\016W\016Y\016[\016]\016_\016a\016b\016c\016g\016h\016l\016n\016o\016q\016r\016t\016u\016y\016{\016}\016~\016\129\016\131\016\137\016\139\016\143\016\146\016\152\016\153\016\156\016\158\016\160\016\161\016\162\016\163\016\165\016\167\016\171\016\174\016\180\016\181\016\182\016\183\016\189\016\192\016\193\016\196\016\197\016\198\016\201\016\202\016\204\016\205\016\206\016\209\016\215\016\216\016\218\016\220\016\224\016\227\016\233\016\239\016\240\016\246\016\247\016\249\017\000\017\001\017\002\017\b\017\t\017\011\017\r\017\015\017\016\017\017\017\018\017\019\017\020\017\021\017\022\017\023\017&\017'\017(\017)\0178\0179\017:\017=\017>\017J\017S\017\\\017e\017o\017q\017w\017\139\017\140\017\141\017\148\017\149\017\161\017\173\017\185\017\192\017\199\017\206\017\214\017\220\017\234\017\241\017\248\017\255\018\006\018\r\018\023\018\030\018%\018,\0184\018C\018D\018\\\018s\018x\018y\018{\018}\018~\018\127\018\128\018\129\018\130\018\131\018\132\018\133\018\137\018\154\018\155\018\162\018\163\018\165\018\169\018\172\018\173\018\179\018\180\018\181\018\182\018\183\018\184\018\186\018\187\018\191\018\192\018\198\018\199\018\201\018\203\018\205\018\207\018\208\018\210\018\211\018\212\018\213\018\214\018\215\018\217\018\218\018\219\018\220\018\221\018\225\018\226\018\227\018\234\018\241\018\248\019\000\019\001\019\002\019\003\019\r\019\014\019\015\019\016\019\017\019\018\019!\019\"\019#\019$\019%\019(\0192\0199\019@\019G\019O\019Q\019`\019g\019n\019u\019}\019\171\019\173\019\174\019\175\019\176\019\177\019\178\019\179\019\180\019\181\019\196\019\197\019\212\019\224\019\228\019\237\019\246\019\255\020\t\020\011\020\012\020\019\020\025\020'\020.\0205\020<\020C\020J\020T\020[\020b\020i\020q\020x\020\141\020\147\020\161\020\168\020\175\020\182\020\189\020\196\020\206\020\213\020\220\020\227\020\235\020\242\021\007\021\014\021\021\021\028\021$\021&\0215\0217\0218\0219\021:\021\141\021\144\021\154\021\161\021\168\021\175\021\183\021\190\021\197\021\204\021\212\022$\022'\0221\0228\022?\022F\022N\022U\022\\\022c\022k\022\187\022\190\022\200\022\207\022\214\022\221\022\229\022\236\022\243\022\250\023\002\023R\023U\023_\023f\023m\023t\023|\023\131\023\138\023\145\023\153\023\233\023\236\023\246\023\253\024\004\024\011\024\019\024\026\024!\024(\0240\024\128\024\131\024\141\024\148\024\155\024\162\024\170\024\177\024\184\024\191\024\199\025\023\025\026\025$\025+\0252\0259\025A\025H\025O\025V\025^\025\174\025\177\025\187\025\194\025\201\025\208\025\216\025\223\025\230\025\237\025\245\026E\026H\026R\026Y\026`\026g\026o\026v\026}\026\132\026\140\026\220\026\223\026\233\026\240\026\247\026\254\027\006\027\r\027\020\027\027\027#\027s\027v\027\128\027\135\027\142\027\149\027\157\027\164\027\171\027\178\027\186\028\n\028\r\028\023\028\030\028%\028,\0284\028;\028B\028I\028Q\028\161\028\164\028\174\028\181\028\188\028\195\028\203\028\210\028\217\028\224\028\232\0298\029;\029E\029L\029S\029Z\029b\029i\029p\029w\029\127\029\207\029\210\029\220\029\227\029\234\029\241\029\249\030\000\030\007\030\014\030\022\030f\030i\030s\030z\030\129\030\136\030\144\030\151\030\158\030\165\030\173\030\253\031\000\031\n\031\017\031\024\031\031\031'\031.\0315\031<\031D\031\148\031\154\031\168\031\175\031\182\031\189\031\196\031\203\031\213\031\220\031\227\031\234\031\242\031\249 \014 \021 \028 # + { ~ \136 \143 \150 \157 \165 \172 \179 \186 \194!\018!\021!\031!&!-!4!2J2M2W2^2e2l2t2{2\1302\1372\1452\2252\2352\2382\2482\2553\0063\r3\0213\0283#3*323\1303\1393\1513\1603\1693\1783\1883\1913\2013\2083\2153\2223\2303\2373\2443\2514\0034S4\\4e4n4x4{4\1334\1404\1474\1544\1624\1694\1764\1834\1915\0155a5d5n5u5|5\1315\1395\1465\1535\1605\1685\2485\2495\2505\2515\2535\2545\2556\0006\n6\0206\0306)6+6,6-6.6/6\1306\1326\1336\1386\1516\1616\1716\1816\1926\1946\1956\2056\2156\2256\2366\2386\2396\2406\2416\2427E7G7H7M7Z7d7n7x7\1317\1337\1347\1357\1457\1557\1657\1767\1787\1797\1807\1818\b8\n8\0118\0128\r8\0148\0158\0308\0318 8#8$8'8*8,8-8.8/808I8a8c8d8k8\1288\1358\1428\1498\1578\2378\2499\0059\0189\0289&909;9>9H9O9V9]9e9l9s9z9\1309\2109\2209\2309\2409\2519\254:\b:\015:\022:\029:%:,:3:::B:\146:\229:\232:\242:\249;\000;\007;\015;\022;\029;$;,;|;};~;\127;\128;\129;\130;\131;\132;\137;\140;\141;\142;\143;\144;\145;\146;\147;\148;\149;\150;\151;\152;\153;\154;\155;\156;\157;\158;\159;\174;\175;\176;\177;\187;\197;\207;\218;\219;\220;\226;\227;\229;\236;\237;\238;\244;\245L>M>N>O>Q>R>U>X>b>i>p>w>\127>\134>\141>\148>\156>\236>\237>\238>\239>\241>\242>\243>\244>\252>\253?\004?\011?\018?\026?\027?k?l?{?|?}?\131?\137?\143?\150?\156?\162?\168?\175?\183?\184@\007@\b@\t@\016@\023@\030@&@-@4@;@C@\147@\150@\152@\153@\154@\155@\156@\166@\176@\186@\197@\199@\200@\210@\220@\230@\241@\243@\244@\245@\246AIAKALAVA`AjAuAwAxA\130A\140A\150A\161A\163A\164A\165A\166A\167A\250A\252A\253B\007B\017B\027B&B(B)B3B=BGBRBTBUBVBWBXB\171B\173B\174B\189B\191B\193B\195B\200B\201B\202B\208B\209B\216B\217B\219B\231B\237B\238B\240B\241B\245C\001C\007C\bC\012C\rC\015C\027C!C\"C$C%C,C3C:CBCDCECGCHCICJCNCOCPCQCUCVCYCZC[C\\C]C^CdCeCfChCjCkClCmCnCoCpCqCrCsCtCuCvCwCxCyCzC|C\135C\136C\137C\138C\139C\140C\141C\142C\146C\148C\149C\150C\151C\152C\153C\154C\157C\158C\159C\160C\161C\163C\164C\165C\166C\168C\170C\172C\174C\175C\177C\180C\182C\183C\184C\185C\186C\187C\188C\189C\191C\192C\194C\196C\197C\198C\199C\200C\201C\202C\203C\205C\206C\207C\208C\209C\210C\211C\212C\213C\214C\216C\217C\218C\219C\220C\222C\223C\225C\226C\227C\228C\229C\231C\232C\233C\234C\236C\237C\239C\240C\241C\242C\243C\244C\245C\246C\247C\249C\251C\252C\253C\255D\000D\001D\003D\004D\005D\006D\bD\nD\011D\012D\014D\015D\016D\018D\019D\021D\023D\024D\025D\026D\028D\029D\031D D!D\"D#D$D%D&D'D(D*D+D,D-D.D/D0D1D3D4D5D6D7D8D9D:D;DD?D@DBDDDEDGDIDJDKDLDMDNDODPDSDUDVDXDYDZD[D\\D^D`DbDcDdDeDfDgDhDkDnDoDrDuDwDxDyDzD|D}D~D\127D\128D\129D\130D\131D\132D\136D\138D\139D\141D\142D\143D\144D\145D\146D\149D\152D\154D\155D\156D\157D\159D\160D\161D\162D\163D\164D\165D\166D\167D\168D\169D\171D\172D\173D\175D\179D\180D\181D\182D\183D\184D\185D\187D\188D\189D\191D\192D\193D\195D\196D\197D\198D\199D\201D\202D\204D\205D\206D\208D\210D\211D\213D\214D\215D\217D\218D\219D\221D\222D\224D\225D\227D\228D\229D\230D\231D\234D\235D\236D\240D\241D\242D\243D\247D\250D\251D\252D\253D\254D\255E\005E\nE\rE\015E\016E\018E\019E\020E\021E\022E\024E\025E\026E\027E\028E\029E\031E E!E\"E#E$E%E&E'E(E)E*E+E,E.E/E0E1E3E4E5E6E7E8E9E:E;EE?E@EAEBECEDEEEFEGEHEIEKELEMENEOEPEQEUEVEWEXEYEZE[E\\E]E_E`EaEbEcEdEeEfEgEhEiEjEkEnEoEpEqErEsEtEuEvEwExEyEzE{E|E~E\128E\129E\130E\131E\132E\133E\136E\137E\138E\139E\140E\141E\142E\143E\145E\146E\147E\148E\149E\150E\152E\154E\155E\156E\158E\159E\160E\161E\162E\165E\166E\167E\168E\172E\178E\179E\185E\191E\192E\202E\208E\214E\215E\225E\230E\241E\242E\243E\245E\246E\247E\248E\249F\000F\007F\014F\022F\029F2F9F@FGFOF\159F\169F\176F\183F\190F\198F\205F\226F\233F\240F\247F\255GOGUGVGWGYGZG[G\\GhGrG}G\135G\140G\152G\158G\159G\181G\193G\199G\204G\209G\221G\227G\228G\250H\006H\012H\016H\017H\018H\019H\020H\021H\022H\023H\025H\026H\028H\029H\030H\031H H\"H#H$H%H&H'H(H)H*H+H,H6H>HBHCHDHEHFHGHHHIHJHKHLHMHNHOHPHQHRHSHTHUHWHXHYHZH[H]H^H_H`HaHdHgHiHjHkHmHnHoHpHqHsHtHuHwHxHyHzH}H~H\127H\128H\131H\132H\138H\140H\142H\144H\146H\147H\153H\154H\158H\162H\164H\165H\168H\169H\170H\171H\172H\178H\179H\180H\181H\182H\183H\184H\190H\191H\192H\193H\194H\195H\196H\197H\198H\200H\201H\203H\204H\205H\206H\212H\213H\214H\215H\216H\218H\222H\225H\231H\232H\233H\234H\235H\236H\237H\238H\239H\241H\242H\243H\244H\245H\246H\247H\248H\249H\250H\251H\252H\253H\254H\255I\000I\001I\002I\003I\004I\005I\006I\007I\bI\tI\nI\011I\012I\rI\014I\015I\016I\017I\018I\024I\025I\026I\027I\028I\029I\030I\031I I!I\"I#I$I&I'I(I)I*I+I,I-I3I4I9IJJJPJUJZJfJlJmJ\131J\143J\149J\179J\197J\209J\219J\230J\240J\245K\001K\007K\bK\030K*K0K5K:KFKLKMKcKoKuK\127K\132K\144K\150K\151K\173K\185K\191K\196K\201K\213K\219K\220K\242K\254L\004L\019L\030L+L0LN?N@NANCNDNENFNGNHNINJNKNLNMNNNONPNQNR")) and nullable = - "\000\000\016\b\144\016\001\000\000\000\128p\128\000\031\255\192\000\224\000\000\003\255\248\000\000\004\004\001\004\000\0000 \000" + "\000\000\016\b\144\016\000\128\000\000@8@\000\007\255\240\0008\000\000\000\127\255\000\000\002\002\000\130\000\000\024\016\000" and first = - (147, "'\244\1681i\170o\204\231\216\011\220\015\242(\000\028d\004\254\149\006-5M\249\156\251\001{\129\254E\000\003\140\128\002\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004\016\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000 \000\004\n\b\000\000\000\000 \000\000\000\000\000\000`@\004\000\000\001\001\000\000\000\000\004\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000H\000\000\000\000\002\000\002\000\000\000\000@\000\000\000\000\000\t\000\000\000\000\000P\000@\000\000\000\b\000\000\000\000\000\b\128\016@\002\004\000\016@ \016\000\000\164\000\000 \t\253*\012Zj\155\2439\246\002\182\003\252\138\000\007\025\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\001\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\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\001\000\000\000\000\000\000\000\016\000\000\002\000\000\000\016\000\002\000\000\000\000\001\000@\002\000\000\000\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\000\000\005\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\159\210\160\197\166\169\1913\159`/p?\200\160\000q\144\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\000\000\000\000\000\000\018\000\002\000\000\000\004\000\000\000\000\000\000\004\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\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000$\000\000\000@\000\000\000\000\000\000@\000 \000\001$\000\004\000\000\000\b\000\000\000\000\000\000\b\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\t\253*\012Zj\155\2439\246\002\247\003\252\138\000\007\025\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\012\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\128\004\b\001 \128@ \000\001@\000\000@\000\019\250T\024\180\2137\230s\236\005l\007\248\020\000\0142\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\003)\000(D\000J\t\138\144\003\184\003\016\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\003\231\216\136\016+\240\218\000\0040p\000\246\142\005\128\1604\001\144\128\016 \000$\004\197\b\001\220\001\128\000\000\b \0002\016\002\004\000\004\160\152\161\000;\1280\000\000\001\004\000\006B\000D\000\160\020\019\028 \003`\006\000\160\0001\128\000\000\000\000\000\000\000\000b\128\000\012\000\000\000\000\000\000\000\000\b\000\002\000\002\000\000\000\128\000\000\016\000\000\000\128\000\000\001\000\000@\000@\000\000\016\001\128\002\000\000\000\016\000\001\016\000\b\000@\128\002\b\004\002\000\000\020\000\000\004\000\000\"\000A\000\b\016\000A\000\128@\000\002\128\000\000\128\128\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\002\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004\016\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\b\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\001\128\000\024\000\000\005\023\004\000\000\020\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\132\000\000\000\000\000\000\004\000\000$\128\000\128\000\000\001\000\000\000\000\000\000\001\000\000\128\000\004\144\000\016\000\000\000 \000\000\000\000\000\000 \0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000@\000\016\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\000\028\164\000\129\004\0018&n@\014\224\012\128\000\000A\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\0002\144\002\004\000\004\160\152\185\000;\1282\000\000\001\020\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\016\000\025H\001P\"\128PLt\128\r\128\024\002\128\000\198\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\128\000\000\000\000\000\012\164\000\161\016\001(&*@\014\224\012\000\000\000A\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\0002\144\002\004\000\004\160\152\185\000;\1280\000\000\001\004\000\006R\000@\128\000\148\019\023 \007p\006@\000\000 \128\017\218P\b\180T7\226c\228\001l\007\208\020\000\0062\000\t\000\000\000\000\000@\000@\000\000\000\b\000\000\000\b\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\001\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000 \000\012\000\000\000\000\000(\000\001\000\000\000\000\000\000\000\000\000\001\144\128\017\000(\005\004\199\b\000\216\001\128(\000\012`\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\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\004\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\007\000\160\001\197\193\000\000\005\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000'\244\1685i\170o\204\231\216\n\216\015\240(\000\192V\192\127\145@\000\227 \000\128\000\000\000\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\001\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\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\b\000\000\000\000\000\000\128\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\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\006R\000P\136\000\148\019\021 \007p\006\000\000\000 \128\000\202@\n\017\000\018\130b\164\000\238\000\192\000\000\004\016\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\000\000\b\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\002\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\002@\000\000\000\000\016\000\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\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\002\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000 \024 \000\000\128\000\000\000\000\000\000\000\000\000\016\000\000\004\023\004\000\000\016\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\002@\000\000\000\000\016\000\016\000\000\000\002\000\000\000\002\000\000\192\000\012\000\000\002\139\130\128\000\n\016\000\000\000\000\000\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\000\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\000\128\000\000\000\000 \000 \000\000\000\004\000\000\000\000\000\000\000\128\000\000\000\000\000\000\b\000\192\001\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\000\128\000\001\000\000\000\000\000\014R\000@\130\000\156\0197 \007p\006@\000\000 \128\b\000\000\000\000\000\000\000\000\000\000\000\001\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\007\000\136\001U\193\000\000\005\000\000\000\000\000\000\000\004\000\000\000\001\000(\000 \000\000\000\000\000\000\000\000\000\000\128\000\016\000 \001D\004\000\000\000\000\000\000\000\000\000\000\128\000\004\000\000\002\001\004\000@\000\000\000\000\002\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\002\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\003)\000(D\000J\t\138\144\003\184\003\000\000\000\016@\000e \005\b\128\tA1R\000w\000b\000\000\n\b\000 \000\001\000\000\000\128A\0000\000\000\000\000\000\128\000\000\000\128\000\016\000 \005D\004\000\000\000\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\159\210\160\213\166\169\1913\159`+`?\192\160\000\241\144>}\136\129\002\191\r\160\000C\007\000\015h\224X\n\003@\024\000\001\128\000\000Qp@\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\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\144\000\000\000\000\005\000\004\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\016\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") + (147, "'\244\1681i\170o\204\231\216\011\220\015\242(\000\028d\004\254\149\006-5M\249\156\251\001{\129\254E\000\003\140\128\002\000\000\000\000\000\020\000\000\000\000\000\000\000\000\000\000\000\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004\016\000\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\001\000 \000\004\n\b\000\000\000\000 \000\000\000\000\000\000`@\004\000\000\001\001\000\000\000\000\004\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\128\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004v\148\002-\021\r\248\152\249\000[\001\244\005\000\001\140\128\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000H\000\000\000\000\002\000\002\000\000\000\000@\000\000\000\000\000\t\000\000\000\000\000P\000@\000\000\000\b\000\000\000\000\000\b\128\016@\002\004\000\016@ \016\000\000\164\000\000 \t\253*\012Zj\155\2439\246\002\182\003\252\138\000\007\025\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\001\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\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\001\000\000\000\000\000\000\000\016\000\000\002\000\000\000\016\000\002\000\000\000\000\001\000@\002\000\000\000\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\000\000\005\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\159\210\160\197\166\169\1913\159`/p?\200\160\000q\144\000\000\000\000\000\000\000\000\000\000\000`\000\000\000\000\000\000\000\000\000\000\018\000\002\000\000\000\004\000\000\000\000\000\000\004\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\000\000\000\000\b\000\000\000\000\000\000\000\000\000\000\000\001\000\000\t \000$\000\000\000@\000\000\000\000\000\000@\000 \000\001$\000\004\000\000\000\b\000\000\000\000\000\000\b\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\018\000\000\003\000\0000\000\000\n.\b\000\000(\000\000\000\000\000\000\t\253*\012Zj\155\2439\246\002\247\003\252\138\000\007\025\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\012\000\000\000\000\000\000\000\000\000\000\000\000\017\000\000\128\004\b\001 \128@ \000\001@\000\000@\000\019\250T\024\180\2137\230s\236\005l\007\248\020\000\0142\0008\000\001\192(\000qp@\000\001@\000\000\000\000\000\000\003)\000(D\000J\t\138\144\003\184\003\016\000\000\016@\000\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\003\231\216\136\016+\240\218\000\0040p\000\246\142\005\128\1604\001\144\128\016 \000$\004\197\b\001\220\001\128\000\000\b \0002\016\002\004\000\004\160\152\161\000;\1280\000\000\001\004\000\006B\000@\128\000\148\019\020 \007p\006\000\000\000 \128\000\200@\b\128\020\002\130c\132\000l\000\192\020\000\0060\000\000\000\000\000\000\000\000\012P\000\001\128\000\000\000\000\000\000\000\001\000\000@\000@\000\000\016\000\000\002\000\000\000\016\000\000\000 \000\b\000\b\000\000\002\0000\000@\000\000\002\000\000\"\000\001\000\b\016\000A\000\128@\000\002\128\000\000\128\000\004@\b \001\002\000\b \016\b\000\000P\000\000\016\016\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\025H\001\002\000\002PL\\\128\029\192\025\000\000\000\130\000\000\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\001\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\0000\000\003\000\000\000\162\224\128\000\002\128\000\000\000\000\000\000\006\000\000`\000\000\020\\\016\000\000P\128\000\000\000\000\000\000\128\000\004\144\000\016\000\000\000 \000\000\000\000\000\000 \000\016\000\000\146\000\002\000\000\000\004\000\000\000\000\000\000\004\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000\224\000\007\000\160\001\197\193\000\000\005\000\000\000\000\000\b\000\002\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\000\003\148\128\016 \128'\004\205\200\001\220\001\144\000\000\b \000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\006R\000@\128\000\148\019\023 \007p\006@\000\000\"\128\000\000\000\004\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\002\000\003)\000*\004P\n\t\142\144\001\176\003\000P\000\024\192\000\000\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\016\000\000\000\000\000\001\148\128\020\"\000%\004\197H\001\220\001\128\000\000\b \000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\006R\000@\128\000\148\019\023 \007p\006\000\000\000 \128\000\202@\b\016\000\018\130b\228\000\238\000\200\000\000\004\016\002;J\001\022\138\134\252L|\128-\128\250\002\128\000\198@\001 \000\000\000\000\b\000\b\000\000\000\001\000\000\000\001\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000 \000\004\128\000\000\000\000 \000 \000\000\000\004\000\000\000\004\000\001\128\000\000\000\000\005\000\000 \000\000\000\000\000\000\000\000\0002\016\002 \005\000\160\152\225\000\027\0000\005\000\001\140\000\000\000\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\004\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\128\000\000\000\000\000\000\000\000\000\000\000\000\004\000\000\000\000\000\000\000\000\000\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\003\128\000\028\002\128\007\023\004\000\000\020\000\000\000\000\000\000\004\254\149\006\1735M\249\156\251\001[\001\254\005\000\007\140\128\014R\000@\130\000\156\019\023 \007p\006@\000\000 \128\000\128\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000\025H\001\002\000\002PL\\\128\029\192\024\000\000\000\130\000\003!\000 @\000J\t\139\016\003\184\003\000\000\000\016@\000e \004\b\000\tA1r\000w\000d\000\000\002\b\000\004\000\000\000\000\000(\000\000\000\000\000\000\000\000\000\000\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b \000\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\002\000@@\000\b\020\016\000\000\000\000@\000\000\000\000\000\000\192\128\b\000\000\002\002\000\000\000\000\b\000\000\000\000\000\000\b\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\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\000\028\000\000\224\020\0008\184 \000\000\160\000\000\000\000\000\000\000\144\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\000\000\018\000\000\000\000\000\160\000\128\000\000\000\016\000\000\000\000\000\004\000\000$\128\000\128\000\000\001\000\000\000\000\000\000\001\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@\016\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\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\001 \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\004\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\128\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\001 \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\000\002\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000 \000\004\000\031@\022\t\000\000\031\002\004\000\129\000\b\021\150\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\128\000\000\000\000\000\000\000\000\000\000\003\144\000\030\002\128\007\023\005\000\000\028\000\128\002\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\020\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\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\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\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\004\000 \000\000\000\000\016\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\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\128\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\128\016\000\000\000\005\000\000\000\000\000\000\000\000\000\000\000\000\016\002\002\000\000@\160\128\000\000\000\002\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\192\000\000\000\000\002\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\003\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000`@\004\000\000\001\001\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\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\128\000\000\000\000\000\001\000\000\004\001\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\b\000\000\000\000\000P\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\004\000\000\000\000\000\b\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\016\000\000\000\000\000 \000\000\000\000\000\000\000\000\000\000\000\002\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\b\000\000\000\000\000\016\000\000\000\000\000\000\000\000\000\000\000\016\000\000\004\000\000\002\000\016\000\000\000\000\000\000\000\000\128\000`\000\006\000\000\001E\193\000\000\005\000\000\000\128\000\000\000\012\164\000\129\000\001(&.@\014\224\012\128\000\000A\000\000\128\000\000\000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\136\001\004\000 @\t\004\002\001 \128\n\000\000\002\000\000\017\000\000\128\004\b\001 \128@ \000\001@\000\000@\000\002\000\000\016\000\000\b\004\016\003\000\000\000\000\000\b\000\000\000@\000\002\000\000\001\000\130\000 \000\000\000\000\001\000\000\000\b\128\016@\002\004\000\144@ \016\000\000\160\000\000 \000\001\016\002\b\000@\128\002\b\004\002\000\000\020\000\000\004\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\128\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\000\000\000\000\000\000\b\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\004\001\148\128\016 \000%\004\197\200\001\220\001\128\000\000\b \0002\144\002\004\000\004\160\152\185\000;\1280\000\000\001\004\000\014R\000@\130\000\156\019\023 \007p\006@\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\004\000\000\000\000\000\000\000\000\000\000\000\007)\000 A\000N\t\139\144\003\184\003\000\000\000\016@\000\229 \004\b \t\1931r\000w\000`\000\000\002\b\000\012\164\000\129\000\001(&.@\014\224\012\000\000\000A\000\001\148\128\016 \000%\004\197\200\001\220\001\144\000\000\b \0002\144\002\132@\004\160\152\169\000;\1280\000\000\001\004\000\006R\000T\b\160\020\019\029 \003`\006\000\160\0001\128\000@\000\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\000 \000\000\000\b\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\b\002\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 \b\000\000\000\000\001\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\000\000\000\000\160\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\128\000\000\192\000\000\000\000\002\128\000\016\000\000\000\000\000\000\000\000\000\000\000\002\000\000\000\000\128\000\000\000\000\000\000\000\000\000\000\b\128\016@\002\004\000\016@ \016\000\000\164\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'\244\1681i\170o\204\231\216\n\216\015\242(\000\028d\000\016\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\t\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\001\000\000\000\000\000\000\016\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\004\000\000\000\000\000\000\000\000\000\000\000\000p\000\003\128P\000\226\224\128\000\002\128\000\000\000\000\000\000\142\210\128E\162\161\191\019\031 \011`>\128\160\0001\144\000\202@\n\017\000\018\130b\164\000\238\000\192\000\000\004\016\000\025H\001B \002PLT\128\029\192\024\000\000\000\130\000Gi@\"\209P\223\137\143\144\005\176\031@P\000\024\200\b\237(\004Z*\027\2411\242\000\182\003\232\n\000\003\025\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\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\016\000\000\000\000\000\000\000\000\000\000\000H\000\000\000\000\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\b\000\000\000\000 \000\000\000\b\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\002\000\000\000\000\000\000\000\000\000\000\004\003\004\000\000\016\000\000\000\000\000\000\000\000\000\002\000\000\000\130\224\128\000\002\000\000\000\000\000\000\000\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000H\000\000\000\000\002\000\002\000\000\000\000@\000\000\000@\000\024\000\001\128\000\000QpP\000\001B\000\000\000\000\000\000\007\000\0008\005\000\014.\b\000\000(\000\000\000\000\000\000\000$\000\000\000\000\001\000\001\000\000\000\000 \000\000\000\000\000\004\128\000\000\000\000 \000 \000\000\000\004\000\000\000\000\000\000\016\000\000\000\000\004\000\004\000\000\000\000\128\000\000\000\000\000\000\016\000\000\000\000\000\000\001\000\024\000 \000\000\001\000\000\000\000\000\000\000\000\000\000\000\000\016\000\000 \000\000\000\000\001\202@\b\016@\019\130f\228\000\238\000\200\000\000\004\016\001\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\004\000\000\012\000\000\224\017\000*\184 \000\000\160\000\000\000\000\000\000\000\128\000\000\000 \005\000\004\000\000\000\000\000\000\000\000\000\000\016\000\002\000\004\000(\128\128\000\000\000\000\000\000\000\000\000\016\000\000\128\000\000@ \128\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\000\000\000\000\000\001\000\000\000\000\000\002\000\000\000\000\000\000\000\000\000\000\000\000e \005\b\128\tA1R\000w\000`\000\000\002\b\000\012\164\000\161\016\001(&*@\014\224\012@\000\001A\000\004\000\000 \000\000\016\b \006\000\000\000\000\000\016\000\000\000\016\000\002\000\004\000\168\128\128\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\019\250T\026\180\2137\230s\236\005l\007\248\020\000\0302\007\207\177\016 W\225\180\000\b`\224\001\237\028\011\001@h\003\000\0000\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\004\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000\000@\000\144\000\000\000\000\005\000\004\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\016\014\000\000p\n\000\028\\\016\000\000P\000\000\000\000\000\000\000\000\000\0000\000\000\000\000\000\000\000\000\000\000\000\000\000\000") end) (ET) (TI) @@ -123971,59 +126230,59 @@ end let use_file = fun lexer lexbuf : (Parsetree.toplevel_phrase list) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3456 lexer lexbuf) + Obj.magic (MenhirInterpreter.entry `Legacy 3534 lexer lexbuf) and toplevel_phrase = fun lexer lexbuf : (Parsetree.toplevel_phrase) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3428 lexer lexbuf) + Obj.magic (MenhirInterpreter.entry `Legacy 3506 lexer lexbuf) and parse_val_longident = fun lexer lexbuf : (Longident.t) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3422 lexer lexbuf) + Obj.magic (MenhirInterpreter.entry `Legacy 3500 lexer lexbuf) and parse_pattern = fun lexer lexbuf : (Parsetree.pattern) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3418 lexer lexbuf) + Obj.magic (MenhirInterpreter.entry `Legacy 3496 lexer lexbuf) and parse_mty_longident = fun lexer lexbuf : (Longident.t) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3414 lexer lexbuf) + Obj.magic (MenhirInterpreter.entry `Legacy 3492 lexer lexbuf) and parse_module_type = fun lexer lexbuf : (Parsetree.module_type) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3410 lexer lexbuf) + Obj.magic (MenhirInterpreter.entry `Legacy 3488 lexer lexbuf) and parse_module_expr = fun lexer lexbuf : (Parsetree.module_expr) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3406 lexer lexbuf) + Obj.magic (MenhirInterpreter.entry `Legacy 3484 lexer lexbuf) and parse_mod_longident = fun lexer lexbuf : (Longident.t) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3402 lexer lexbuf) + Obj.magic (MenhirInterpreter.entry `Legacy 3480 lexer lexbuf) and parse_mod_ext_longident = fun lexer lexbuf : (Longident.t) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3398 lexer lexbuf) + Obj.magic (MenhirInterpreter.entry `Legacy 3476 lexer lexbuf) and parse_expression = fun lexer lexbuf : (Parsetree.expression) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3394 lexer lexbuf) + Obj.magic (MenhirInterpreter.entry `Legacy 3472 lexer lexbuf) and parse_core_type = fun lexer lexbuf : (Parsetree.core_type) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3390 lexer lexbuf) + Obj.magic (MenhirInterpreter.entry `Legacy 3468 lexer lexbuf) and parse_constr_longident = fun lexer lexbuf : (Longident.t) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3386 lexer lexbuf) + Obj.magic (MenhirInterpreter.entry `Legacy 3464 lexer lexbuf) and parse_any_longident = fun lexer lexbuf : (Longident.t) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3368 lexer lexbuf) + Obj.magic (MenhirInterpreter.entry `Legacy 3446 lexer lexbuf) and interface = fun lexer lexbuf : (Parsetree.signature) -> - Obj.magic (MenhirInterpreter.entry `Legacy 3364 lexer lexbuf) + Obj.magic (MenhirInterpreter.entry `Legacy 3442 lexer lexbuf) and implementation = fun lexer lexbuf : (Parsetree.structure) -> @@ -124033,59 +126292,59 @@ module Incremental = struct let use_file = fun initial_position : (Parsetree.toplevel_phrase list) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3456 initial_position) + Obj.magic (MenhirInterpreter.start 3534 initial_position) and toplevel_phrase = fun initial_position : (Parsetree.toplevel_phrase) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3428 initial_position) + Obj.magic (MenhirInterpreter.start 3506 initial_position) and parse_val_longident = fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3422 initial_position) + Obj.magic (MenhirInterpreter.start 3500 initial_position) and parse_pattern = fun initial_position : (Parsetree.pattern) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3418 initial_position) + Obj.magic (MenhirInterpreter.start 3496 initial_position) and parse_mty_longident = fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3414 initial_position) + Obj.magic (MenhirInterpreter.start 3492 initial_position) and parse_module_type = fun initial_position : (Parsetree.module_type) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3410 initial_position) + Obj.magic (MenhirInterpreter.start 3488 initial_position) and parse_module_expr = fun initial_position : (Parsetree.module_expr) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3406 initial_position) + Obj.magic (MenhirInterpreter.start 3484 initial_position) and parse_mod_longident = fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3402 initial_position) + Obj.magic (MenhirInterpreter.start 3480 initial_position) and parse_mod_ext_longident = fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3398 initial_position) + Obj.magic (MenhirInterpreter.start 3476 initial_position) and parse_expression = fun initial_position : (Parsetree.expression) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3394 initial_position) + Obj.magic (MenhirInterpreter.start 3472 initial_position) and parse_core_type = fun initial_position : (Parsetree.core_type) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3390 initial_position) + Obj.magic (MenhirInterpreter.start 3468 initial_position) and parse_constr_longident = fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3386 initial_position) + Obj.magic (MenhirInterpreter.start 3464 initial_position) and parse_any_longident = fun initial_position : (Longident.t) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3368 initial_position) + Obj.magic (MenhirInterpreter.start 3446 initial_position) and interface = fun initial_position : (Parsetree.signature) MenhirInterpreter.checkpoint -> - Obj.magic (MenhirInterpreter.start 3364 initial_position) + Obj.magic (MenhirInterpreter.start 3442 initial_position) and implementation = fun initial_position : (Parsetree.structure) MenhirInterpreter.checkpoint -> @@ -124093,7 +126352,7 @@ module Incremental = struct end -# 5455 "src/ocaml/preprocess/parser_raw.mly" +# 5454 "src/ocaml/preprocess/parser_raw.mly" -# 124100 "src/ocaml/preprocess/parser_raw.ml" +# 126359 "src/ocaml/preprocess/parser_raw.ml" diff --git a/src/ocaml/preprocess/parser_raw.mli b/src/ocaml/preprocess/parser_raw.mli index 1b3eb6aa4..fd805cf46 100644 --- a/src/ocaml/preprocess/parser_raw.mli +++ b/src/ocaml/preprocess/parser_raw.mli @@ -381,6 +381,7 @@ module MenhirInterpreter : sig | N_str_exception_declaration : (Parsetree.type_exception * string Location.loc option) nonterminal | N_single_attr_id : (string) nonterminal | N_simple_pattern_not_ident : (Parsetree.pattern) nonterminal + | N_simple_pattern_extend_modes_or_poly : (Parsetree.pattern) nonterminal | N_simple_pattern : (Parsetree.pattern) nonterminal | N_simple_expr : (Parsetree.expression) nonterminal | N_simple_delimited_pattern : (Parsetree.pattern) nonterminal @@ -430,6 +431,7 @@ module MenhirInterpreter : sig | N_possibly_poly_core_type_no_attr_ : (Parsetree.core_type) nonterminal | N_possibly_poly_core_type_ : (Parsetree.core_type) nonterminal | N_payload : (Parsetree.payload) nonterminal + | N_pattern_with_modes_or_poly : (Parsetree.pattern) nonterminal | N_pattern_var : (Parsetree.pattern) nonterminal | N_pattern_no_exn : (Parsetree.pattern) nonterminal | N_pattern_gen : (Parsetree.pattern) nonterminal @@ -448,9 +450,9 @@ module MenhirInterpreter : sig | N_parenthesized_type_parameter : (Parsetree.core_type * (Asttypes.variance * Asttypes.injectivity)) nonterminal | N_paren_module_expr : (Parsetree.module_expr) nonterminal | N_optlabel : (string) nonterminal + | N_optional_poly_type_and_modes : (Parsetree.core_type option * Parsetree.modes) nonterminal | N_optional_atomic_constraint_ : (Parsetree.function_constraint) nonterminal | N_optional_atat_modalities_expr : (Parsetree.modalities) nonterminal - | N_optional_at_modalities_expr : (Parsetree.modalities) nonterminal | N_option_type_constraint_ : (Parsetree.type_constraint option) nonterminal | N_option_preceded_EQUAL_seq_expr__ : (Parsetree.expression option) nonterminal | N_option_preceded_EQUAL_pattern__ : (Parsetree.pattern option) nonterminal @@ -483,14 +485,15 @@ module MenhirInterpreter : sig | N_mty_longident : (Longident.t) nonterminal | N_module_type_subst : (Parsetree.module_type_declaration * string Location.loc option) nonterminal | N_module_type_declaration : (Parsetree.module_type_declaration * string Location.loc option) nonterminal + | N_module_type_atomic : (Parsetree.module_type) nonterminal | N_module_type : (Parsetree.module_type) nonterminal | N_module_subst : (Parsetree.module_substitution * string Location.loc option) nonterminal + | N_module_name_modal_atat_modalities_expr_ : (string option Location.loc * Parsetree.modalities) nonterminal | N_module_name_modal_at_mode_expr_ : (Ocaml_parsing.Ast_helper.str_opt * Parsetree.modes) nonterminal - | N_module_name_modal_at_modalities_expr_ : (string option Location.loc * Parsetree.modalities) nonterminal | N_module_name : (string option) nonterminal | N_module_expr : (Parsetree.module_expr) nonterminal - | N_module_declaration_body_optional_atat_mode_expr_ : (Parsetree.module_type * Parsetree.modes) nonterminal - | N_module_declaration_body_optional_atat_modalities_expr_ : (Parsetree.module_type * Parsetree.modalities) nonterminal + | N_module_declaration_body_module_type_with_optional_modes_ : (Parsetree.module_type * Parsetree.modes) nonterminal + | N_module_declaration_body___anonymous_8_ : (Parsetree.module_type * Parsetree.modalities) nonterminal | N_module_binding_body : (Parsetree.module_expr) nonterminal | N_mod_longident : (Longident.t) nonterminal | N_mod_ext_longident : (Longident.t) nonterminal @@ -525,9 +528,7 @@ module MenhirInterpreter : sig | N_list_and_class_declaration_ : (Parsetree.class_expr Parsetree.class_infos list) nonterminal | N_letop_bindings : (Parsetree.pattern * Parsetree.expression * Parsetree.binding_op list) nonterminal | N_letop_binding_body : (Parsetree.pattern * Parsetree.expression) nonterminal - | N_let_pattern_required_modes : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) nonterminal - | N_let_pattern_no_modes : (Parsetree.pattern * Parsetree.core_type option) nonterminal - | N_let_pattern : (Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) nonterminal + | N_let_pattern : (Parsetree.pattern) nonterminal | N_let_bindings_no_ext_ : (Parser_types.let_bindings) nonterminal | N_let_bindings_ext_ : (Parser_types.let_bindings) nonterminal | N_let_binding_body_no_punning : (Parsetree.pattern * Parsetree.expression * @@ -539,7 +540,7 @@ module MenhirInterpreter : sig | N_labeled_simple_pattern : (Parsetree.arg_label * Parsetree.expression option * Parsetree.pattern) nonterminal | N_labeled_simple_expr : (Parsetree.arg_label * Parsetree.expression) nonterminal | N_label_longident : (Longident.t) nonterminal - | N_label_let_pattern : (string * Parsetree.pattern * Parsetree.core_type option * Parsetree.modes) nonterminal + | N_label_let_pattern : (string * Parsetree.pattern) nonterminal | N_label_declarations : (Parsetree.label_declaration list) nonterminal | N_label_declaration_semi : (Parsetree.label_declaration) nonterminal | N_label_declaration : (Parsetree.label_declaration) nonterminal @@ -614,9 +615,8 @@ module MenhirInterpreter : sig | N_attr_payload : (Parsetree.payload) nonterminal | N_attr_id : (string Location.loc) nonterminal | N_atomic_type : (Parsetree.core_type) nonterminal - | N_atat_mode_expr : (Parsetree.modes) nonterminal + | N_atat_modalities_expr : (Parsetree.modalities) nonterminal | N_at_mode_expr : (Parsetree.modes) nonterminal - | N_at_modalities_expr : (Parsetree.modalities) nonterminal | N_any_longident : (Longident.t) nonterminal | N_and_let_binding : (Parser_types.let_binding) nonterminal | N_alias_type : (Parsetree.core_type) nonterminal diff --git a/src/ocaml/preprocess/parser_raw.mly b/src/ocaml/preprocess/parser_raw.mly index 6d191f602..fc53b61eb 100644 --- a/src/ocaml/preprocess/parser_raw.mly +++ b/src/ocaml/preprocess/parser_raw.mly @@ -817,6 +817,18 @@ let mkfunction ~loc ~attrs params body_constraint body = attrs end +let mk_functor_typ args mty_mm = + let mty, _ = + List.fold_left (fun (mty, mm) (startpos, arg) -> + let mty = + mkmty ~loc:(startpos, mty.pmty_loc.loc_end) (Pmty_functor (arg, mty, mm)) + in + let mm = [] in + mty, mm) + mty_mm args + in + mty + (* Alternatively, we could keep the generic module type in the Parsetree and extract the package type during type-checking. In that case, the assertions below should be turned into explicit checks. *) @@ -990,7 +1002,7 @@ let merloc startpos ?endpos x = let default_pattern () = Pat.any ~loc:!default_loc () let default_pattern_and_mode () = - Pat.any ~loc:!default_loc (), None, [] + Pat.any ~loc:!default_loc () let default_module_expr () = Mod.structure ~loc:!default_loc [] let default_module_type () = @@ -1704,8 +1716,9 @@ functor_arg: LPAREN RPAREN { $startpos, Unit } | (* An argument accompanied with an explicit type. *) - LPAREN x = mkrhs(module_name) COLON mty = module_type mm = optional_atat_mode_expr RPAREN - { $startpos, Named (x, mty, mm) } + LPAREN x = mkrhs(module_name) COLON mty_mm = module_type_with_optional_modes RPAREN + { let mty, mm = mty_mm in + $startpos, Named (x, mty, mm) } ; module_name: @@ -1782,10 +1795,9 @@ module_expr [@recovery default_module_expr ()]: paren_module_expr: (* A module expression annotated with a module type. *) - LPAREN me = module_expr COLON mty = module_type mm = optional_atat_mode_expr RPAREN - { mkmod ~loc:$sloc (Pmod_constraint(me, Some mty, mm)) } - | LPAREN me = module_expr mm = at_mode_expr RPAREN - { mkmod ~loc:$sloc (Pmod_constraint(me, None, mm)) } + LPAREN me = module_expr mty_mm = module_constraint RPAREN + { let mty, mm = mty_mm in + mkmod ~loc:$sloc (Pmod_constraint(me, mty, mm)) } (* | LPAREN module_expr COLON module_type error { unclosed "(" $loc($1) ")" $loc($5) } @@ -1920,6 +1932,14 @@ structure [@recovery []]: Pstr_module body, ext } ; +%inline module_constraint: + COLON mty_mm = module_type_with_optional_modes + { let mty, mm = mty_mm in + (Some mty, mm) + } + | at_mode_expr + { (None, $1) } + (* The body (right-hand side) of a module binding. *) module_binding_body: EQUAL me = module_expr @@ -1929,10 +1949,10 @@ module_binding_body: { expecting $loc($1) "=" } *) | mkmod( - COLON mty = module_type mm = optional_atat_mode_expr EQUAL me = module_expr - { Pmod_constraint(me, Some mty, mm) } - | mm = at_mode_expr EQUAL me = module_expr - { Pmod_constraint(me, None, mm) } + mty_mm = module_constraint EQUAL me = module_expr + { + let mty, mm = mty_mm in + Pmod_constraint(me, mty, mm) } | arg_and_pos = functor_arg body = module_binding_body { let (_, arg) = arg_and_pos in Pmod_functor(arg, body) } @@ -2071,7 +2091,7 @@ open_description: /* Module types */ -module_type [@recovery default_module_type ()]: +module_type_atomic [@recovery default_module_type ()]: | SIG attrs = attributes s = signature END { mkmty ~loc:$sloc ~attrs (Pmty_signature s) } (* @@ -2082,43 +2102,43 @@ module_type [@recovery default_module_type ()]: | STRUCT error { expecting $loc($1) "sig" } *) - | FUNCTOR attrs = attributes args = functor_args - MINUSGREATER mty = module_type mm = optional_at_mode_expr - %prec below_WITH - { wrap_mty_attrs ~loc:$sloc attrs ( - (* return modes go to the innermost functor arrow; - all other return modes are empty *) - let mty, mm = - List.fold_left (fun (acc, mm) (startpos, arg) -> - mkmty ~loc:(startpos, $endpos) (Pmty_functor (arg, acc, mm)), [] - ) (mty, mm) args - in - match mm with - | [] -> mty - | _ :: _ -> assert false - ) } - | MODULE TYPE OF attributes module_expr %prec below_LBRACKETAT - { mkmty ~loc:$sloc ~attrs:$4 (Pmty_typeof $5) } | LPAREN module_type RPAREN { $2 } (* | LPAREN module_type error { unclosed "(" $loc($1) ")" $loc($3) } *) - | module_type attribute - { Mty.attr $1 $2 } | mkmty( mkrhs(mty_longident) { Pmty_ident $1 } - | LPAREN RPAREN MINUSGREATER module_type optional_at_mode_expr - { Pmty_functor(Unit, $4, $5) } - | module_type m1=optional_at_mode_expr MINUSGREATER module_type m2=optional_at_mode_expr +/* | LPAREN MODULE mkrhs(mod_longident) RPAREN + { Pmty_alias $3 } */ + ) + { $1 } +; + +module_type: + | module_type_atomic { $1 } + | FUNCTOR attrs = attributes args = functor_args + MINUSGREATER mty_mm = module_type_with_optional_modes + %prec below_WITH + { wrap_mty_attrs ~loc:$sloc attrs (mk_functor_typ args mty_mm) } + | args = functor_args + MINUSGREATER mty_mm = module_type_with_optional_modes + %prec below_WITH + { mk_functor_typ args mty_mm } + | MODULE TYPE OF attributes module_expr %prec below_LBRACKETAT + { mkmty ~loc:$sloc ~attrs:$4 (Pmty_typeof $5) } + | module_type attribute + { Mty.attr $1 $2 } + | mkmty( + module_type_with_optional_modes MINUSGREATER module_type_with_optional_modes %prec below_WITH - { Pmty_functor(Named (mknoloc None, $1, m1), $4, m2) } + { let mty0, mm0 = $1 in + let mty1, mm1 = $3 in + Pmty_functor(Named (mknoloc None, mty0, mm0), mty1, mm1) } | module_type WITH separated_nonempty_llist(AND, with_constraint) { Pmty_with($1, $3) } -/* | LPAREN MODULE mkrhs(mod_longident) RPAREN - { Pmty_alias $3 } */ | extension { Pmty_extension $1 } | module_type WITH mkrhs(mod_ext_longident) @@ -2126,6 +2146,11 @@ module_type [@recovery default_module_type ()]: ) { $1 } ; + +%inline module_type_with_optional_modes: + | module_type { $1, [] } + | module_type_atomic at_mode_expr { $1, $2 } + (* A signature, which appears between SIG and END (among other places), is a list of signature elements. *) signature: @@ -2201,8 +2226,10 @@ signature_item: %inline module_declaration: MODULE ext = ext attrs1 = attributes - name_ = module_name_modal(at_modalities_expr) - body = module_declaration_body(optional_atat_modalities_expr) + name_ = module_name_modal(atat_modalities_expr) + body = module_declaration_body( + module_type optional_atat_modalities_expr { ($1, $2) } + ) attrs2 = post_item_attributes { let attrs = attrs1 @ attrs2 in @@ -2216,15 +2243,15 @@ signature_item: ; (* The body (right-hand side) of a module declaration. *) -module_declaration_body(optional_atat_modal_expr): - COLON mty = module_type mm = optional_atat_modal_expr - { mty, mm } +module_declaration_body(module_type_with_optional_modal_expr): + COLON mty_mm = module_type_with_optional_modal_expr + { mty_mm } (* | EQUAL error { expecting $loc($1) ":" } *) | mkmty( - arg_and_pos = functor_arg body = module_declaration_body(optional_atat_mode_expr) + arg_and_pos = functor_arg body = module_declaration_body(module_type_with_optional_modes) { let (_, arg) = arg_and_pos in let (ret, mret) = body in Pmty_functor(arg, ret, mret) } @@ -2236,10 +2263,10 @@ module_declaration_body(optional_atat_modal_expr): %inline module_alias: MODULE ext = ext attrs1 = attributes - name_ = module_name_modal(at_modalities_expr) + name_ = module_name_modal(atat_modalities_expr) EQUAL body = module_expr_alias - modalities = optional_at_modalities_expr + modalities = optional_atat_modalities_expr attrs2 = post_item_attributes { let attrs = attrs1 @ attrs2 in @@ -2756,73 +2783,22 @@ seq_expr: ; labeled_simple_pattern: - QUESTION LPAREN modes0=optional_mode_expr_legacy x=label_let_pattern opt_default RPAREN - { let lbl, pat, cty, modes = x in - let loc = $startpos(modes0), $endpos(x) in - (Optional lbl, $5, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - } + QUESTION LPAREN label_let_pattern opt_default RPAREN + { (Optional (fst $3), $4, snd $3) } | QUESTION label_var { (Optional (fst $2), None, snd $2) } - | OPTLABEL LPAREN modes0=optional_mode_expr_legacy x=let_pattern opt_default RPAREN - { let pat, cty, modes = x in - let loc = $startpos(modes0), $endpos(x) in - (Optional $1, $5, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - } + | OPTLABEL LPAREN let_pattern opt_default RPAREN + { (Optional $1, $4, $3) } | OPTLABEL pattern_var { (Optional $1, None, $2) } - | TILDE LPAREN modes0=optional_mode_expr_legacy x=label_let_pattern RPAREN - { let lbl, pat, cty, modes = x in - let loc = $startpos(modes0), $endpos(x) in - (Labelled lbl, None, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - } + | TILDE LPAREN label_let_pattern RPAREN + { (Labelled (fst $3), None, snd $3) } | TILDE label_var { (Labelled (fst $2), None, snd $2) } - | LABEL simple_pattern + | LABEL simple_pattern_extend_modes_or_poly { (Labelled $1, None, $2) } - | LABEL LPAREN modes0=optional_mode_expr_legacy x=let_pattern_required_modes RPAREN - { let pat, cty, modes = x in - let loc = $startpos(modes0), $endpos(x) in - (Labelled $1, None, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - } - | LABEL LPAREN modes=mode_expr_legacy pat=pattern RPAREN - { let loc = $startpos(modes), $endpos(pat) in - (Labelled $1, None, - mkpat_with_modes ~loc ~pat ~cty:None ~modes) - } - | simple_pattern + | simple_pattern_extend_modes_or_poly { (Nolabel, None, $1) } - | LPAREN modes=mode_expr_legacy x=let_pattern_no_modes RPAREN - { let pat, cty = x in - let loc = $startpos(modes), $endpos(x) in - (Nolabel, None, - mkpat_with_modes ~loc ~pat ~cty ~modes) - } - | LPAREN modes0=optional_mode_expr_legacy x=let_pattern_required_modes RPAREN - { let pat, cty, modes = x in - let loc = $startpos(modes0), $endpos(x) in - (Nolabel, None, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - } - | LABEL LPAREN x=poly_pattern_no_modes RPAREN - { let pat, cty = x in - (Labelled $1, None, - mkpat_with_modes ~loc:$loc(x) ~pat ~cty ~modes:[]) - } - | LABEL LPAREN modes=mode_expr_legacy x=poly_pattern_no_modes RPAREN - { let pat, cty = x in - let loc = $startpos(modes), $endpos(x) in - (Labelled $1, None, - mkpat_with_modes ~loc ~pat ~cty ~modes) - } - | LPAREN x=poly_pattern_no_modes RPAREN - { let pat, cty = x in - (Nolabel, None, - mkpat_with_modes ~loc:$loc(x) ~pat ~cty ~modes:[]) - } ; pattern_var: @@ -2836,23 +2812,26 @@ pattern_var: preceded(EQUAL, seq_expr)? { $1 } ; -label_let_pattern: - x = label_var modes = optional_at_mode_expr - { let lab, pat = x in - lab, pat, None, modes - } - | x = label_var COLON cty = core_type modes = optional_atat_mode_expr - { let lab, pat = x in - lab, pat, Some cty, modes + +optional_poly_type_and_modes: + { None, [] } + | at_mode_expr + { None, $1 } + | COLON cty_mm = poly_type_with_optional_modes + { let cty, mm = cty_mm in + Some cty, mm } - | x = label_var COLON - cty = mktyp (bound_vars = typevar_list - DOT - inner_type = core_type - { Ptyp_poly (bound_vars, inner_type) }) - modes = optional_atat_mode_expr +; + +label_let_pattern: + modes0 = optional_mode_expr_legacy x = label_var + cty_modes1 = optional_poly_type_and_modes { let lab, pat = x in - lab, pat, Some cty, modes + let cty, modes1 = cty_modes1 in + let modes = modes0 @ modes1 in + let loc = $startpos(modes0), $endpos(cty_modes1) in + let pat = mkpat_with_modes ~loc ~pat ~cty ~modes in + lab, pat } ; %inline label_var: @@ -2860,46 +2839,43 @@ label_let_pattern: { ($1.Location.txt, mkpat ~loc:$sloc (Ppat_var $1)) } ; let_pattern [@recovery default_pattern_and_mode ()]: - x=let_pattern_awaiting_at_modes modes=optional_at_mode_expr - { let pat, cty = x in pat, cty, modes } - | x=let_pattern_awaiting_atat_modes modes=optional_atat_mode_expr - { let pat, cty = x in pat, cty, modes } - | LPAREN let_pattern_required_modes RPAREN { $2 } -; - -let_pattern_required_modes: - x=let_pattern_awaiting_at_modes modes=at_mode_expr - { let pat, cty = x in pat, cty, modes } - | x=let_pattern_awaiting_atat_modes modes=atat_mode_expr - { let pat, cty = x in pat, cty, modes } - | LPAREN let_pattern_required_modes RPAREN { $2 } -; - -let_pattern_no_modes: - x=let_pattern_awaiting_at_modes { x } - | x=let_pattern_awaiting_atat_modes { x } -; - -%inline let_pattern_awaiting_atat_modes: - pat=pattern COLON cty=core_type - { pat, Some cty } - | poly_pattern_no_modes - { $1 } + modes0 = optional_mode_expr_legacy pat = pattern + cty_modes1 = optional_poly_type_and_modes + { + let cty, modes1 = cty_modes1 in + let modes = modes0 @ modes1 in + let loc = $startpos(modes0), $endpos(cty_modes1) in + mkpat_with_modes ~loc ~pat ~cty ~modes + } ; -%inline let_pattern_awaiting_at_modes: - pat=pattern { pat, None } -; +(* simple_pattern extended with poly_type and modes *) +simple_pattern_extend_modes_or_poly: + simple_pattern { $1 } + | LPAREN pattern_with_modes_or_poly RPAREN + { $2 } -%inline poly_pattern_no_modes: - pat = pattern - COLON - cty = mktyp(bound_vars = typevar_list - DOT - inner_type = core_type - { Ptyp_poly (bound_vars, inner_type) }) - { pat, Some cty } -; +pattern_with_modes_or_poly: + modes0 = mode_expr_legacy pat = pattern cty_modes1 = optional_poly_type_and_modes + { + let cty, modes1 = cty_modes1 in + let modes = modes0 @ modes1 in + let loc = $startpos(modes0), $endpos(cty_modes1) in + mkpat_with_modes ~loc ~pat ~cty:cty ~modes + } + | pat = pattern COLON cty_modes = poly_type_with_modes + { + let cty, modes = cty_modes in + mkpat_with_modes ~loc:$sloc ~pat ~cty:(Some cty) ~modes + } + | pat = pattern modes = at_mode_expr + { + mkpat_with_modes ~loc:$sloc ~pat ~cty:None ~modes + } + | pat = pattern COLON cty = strictly_poly_type + { + mkpat_with_modes ~loc:$sloc ~pat ~cty:(Some cty) ~modes:[] + } %inline indexop_expr(dot, index, right): | array=simple_expr d=dot LPAREN i=index RPAREN r=right @@ -2922,10 +2898,10 @@ let_pattern_no_modes: %inline qualified_dotop: ioption(DOT mod_longident {$2}) DOTOP { $1, $2 }; optional_atomic_constraint_: - | COLON atomic_type optional_atat_mode_expr { + | COLON atomic_type { { ret_type_constraint = Some (Pconstraint $2) ; mode_annotations = [] - ; ret_mode_annotations = $3 + ; ret_mode_annotations = [] } } | at_mode_expr { @@ -3331,18 +3307,29 @@ labeled_simple_expr: ; %inline pvc_modes: | at_mode_expr {None, $1} - | COLON core_type optional_atat_mode_expr { - Some(Pvc_constraint { locally_abstract_univars=[]; typ=$2 }), $3 + | COLON core_type_with_optional_modes { + let typ, mm = $2 in + Some(Pvc_constraint { locally_abstract_univars=[]; typ }), mm } ; + +%inline empty_list: { [] } + +%inline let_ident_with_modes: + optional_mode_expr_legacy let_ident + { ($2, $1) } + | LPAREN let_ident at_mode_expr RPAREN + { ($2, $3) } + let_binding_body_no_punning: - let_ident strict_binding - { ($1, $2, None, []) } - | modes0 = optional_mode_expr_legacy let_ident constraint_ EQUAL seq_expr + let_ident_with_modes strict_binding_modes + { let v, modes = $1 in + (v, $2 modes, None, modes) } + | let_ident_with_modes constraint_ EQUAL seq_expr (* CR zqian: modes are duplicated, and one of them needs to be made ghost to make internal tools happy. We should try to avoid that. *) - { let v = $2 in (* PR#7344 *) - let typ, modes1 = $3 in + { let v, modes0 = $1 in + let typ, modes1 = $2 in let t = Option.map (function | Pconstraint t -> @@ -3351,17 +3338,17 @@ let_binding_body_no_punning: ) typ in let modes = modes0 @ modes1 in - (v, $5, t, modes) + (v, $4, t, modes) } - | modes0 = optional_mode_expr_legacy let_ident COLON poly(core_type) modes1 = optional_atat_mode_expr EQUAL seq_expr - { let bound_vars, inner_type = $4 in - let ltyp = Ptyp_poly (bound_vars, inner_type) in - let typ = ghtyp ~loc:$loc($4) ltyp in + | let_ident_with_modes COLON strictly_poly_type_with_optional_modes EQUAL seq_expr + { let v, modes0 = $1 in + let typ, modes1 = $3 in let modes = modes0 @ modes1 in - ($2, $7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), + (v, $5, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) } - | let_ident COLON TYPE newtypes DOT core_type modes=optional_atat_mode_expr EQUAL seq_expr + | let_ident_with_modes COLON TYPE ntys = newtypes DOT cty = core_type modes1 = empty_list EQUAL e = seq_expr + | let_ident_with_modes COLON TYPE ntys = newtypes DOT cty = tuple_type modes1=at_mode_expr EQUAL e = seq_expr (* The code upstream looks like: {[ let constraint' = @@ -3378,10 +3365,12 @@ let_binding_body_no_punning: version, even though we are creating a slightly different [core_type]. *) { let exp, poly = - wrap_type_annotation ~loc:$sloc ~modes:[] ~typloc:$loc($6) $4 $6 $9 + wrap_type_annotation ~loc:$sloc ~modes:[] ~typloc:$loc(cty) ntys cty e in - let loc = ($startpos($1), $endpos($6)) in - (ghpat_with_modes ~loc ~pat:$1 ~cty:(Some poly) ~modes:[], exp, None, modes) + let v, modes0 = $1 in + let modes = modes0 @ modes1 in + let loc = ($startpos($1), $endpos(modes1)) in + (ghpat_with_modes ~loc ~pat:v ~cty:(Some poly) ~modes:[], exp, None, modes) } | pattern_no_exn EQUAL seq_expr { ($1, $3, None, []) } @@ -3390,14 +3379,6 @@ let_binding_body_no_punning: let pvc, modes = $2 in ($1, $4, pvc, modes) } - | modes=mode_expr_legacy let_ident strict_binding_modes - { - ($2, $3 modes, None, modes) - } - | LPAREN let_ident modes=at_mode_expr RPAREN strict_binding_modes - { - ($2, $5 modes, None, modes) - } ; let_binding_body: | let_binding_body_no_punning @@ -3677,8 +3658,17 @@ type_constraint: ; %inline type_constraint_with_modes: - | type_constraint optional_atat_mode_expr - { $1, $2 } + | COLON core_type_with_optional_modes { + let cty, mm = $2 in + Pconstraint cty, mm } + | COLON core_type COLONGREATER core_type_with_optional_modes { + let cty, mm = $4 in + Pcoerce (Some $2, cty), mm } + | COLONGREATER core_type_with_optional_modes { + let cty, mm = $2 in + Pcoerce (None, cty), mm } +// | COLON error { syntax_error() } +// | COLONGREATER error { syntax_error() } ; %inline constraint_: @@ -3896,24 +3886,8 @@ simple_pattern_not_ident: | extension { Ppat_extension $1 } ) { $1 } - (* CR modes: when modes on patterns are fully supported, replace the below - cases with these two *) - (* | LPAREN pattern modes=at_mode_expr RPAREN - * { mkpat ~loc:$sloc (Ppat_constraint($2, None, modes)) } - * | LPAREN pattern COLON core_type modes=optional_atat_mode_expr RPAREN - * { mkpat ~loc:$sloc (Ppat_constraint($2, Some $4, modes)) } *) | LPAREN pattern COLON core_type RPAREN { mkpat_with_modes ~loc:$sloc ~pat:$2 ~cty:(Some $4) ~modes:[] } - (* CR cgunn: figure out how to get these errors to work without reduce/reduce - conflicts *) - (* | LPAREN pattern COLON core_type ATAT error - * { - * raise (Syntaxerr.Error (Syntaxerr.Modes_on_pattern (make_loc $sloc))) - * } - * | LPAREN pattern AT error - * { - * raise (Syntaxerr.Error (Syntaxerr.Modes_on_pattern (make_loc $sloc))) - * } *) ; simple_delimited_pattern: @@ -4483,17 +4457,51 @@ with_type_binder: typevar_list DOT X { ($1, $3) } ; -possibly_poly(X): - X - { $1 } +%inline strictly_poly(X): | poly(X) { let bound_vars, inner_type = $1 in mktyp ~loc:$sloc (Ptyp_poly (bound_vars, inner_type)) } ; + +possibly_poly(X): + X + { $1 } +| strictly_poly(X) + { $1 } +; %inline poly_type: possibly_poly(core_type) { $1 } ; + +%inline strictly_poly_type: + strictly_poly(core_type) + { $1 } +; + +%inline strictly_poly_tuple_type: + strictly_poly(tuple_type) + { $1 } + +%inline poly_tuple_type: + | tuple_type { $1 } + | strictly_poly_tuple_type { $1 } +; + +%inline poly_type_with_modes: + | poly_tuple_type at_mode_expr { $1, $2 } +; + +%inline poly_type_with_optional_modes: + | poly_type_with_modes { $1 } + | poly_type { $1, [] } +; + +%inline strictly_poly_type_with_optional_modes: + | strictly_poly_type { $1, [] } + | strictly_poly_tuple_type at_mode_expr { $1, $2 } +; + %inline poly_type_no_attr: possibly_poly(core_type_no_attr) { $1 } @@ -4512,6 +4520,10 @@ core_type: { Typ.attr $1 $2 } ; +%inline core_type_with_optional_modes: + core_type { $1, [] } + | tuple_type at_mode_expr { $1, $2 } + (* A core type without attributes is currently defined as an alias type, but this could change in the future if new forms of types are introduced. From the outside, one should use core_type_no_attr. *) @@ -4689,15 +4701,6 @@ at_mode_expr: } ; -atat_mode_expr: - | ATAT mode_expr {$2} -(* | ATAT error { expecting $loc($2) "mode expression" } *) -; - -%inline optional_atat_mode_expr: - | { [] } - | atat_mode_expr {$1} -; /* Modalities */ @@ -4707,22 +4710,16 @@ atat_mode_expr: %inline modalities: | modality+ { $1 } -at_modalities_expr: - | AT modalities {$2} - // | AT error { expecting $loc($2) "modality expression" } +atat_modalities_expr: + | ATAT modalities {$2} + // | ATAT error { expecting $loc($2) "modality expression" } ; optional_atat_modalities_expr: | %prec below_HASH { [] } - | ATAT modalities { $2 } - // | ATAT error { expecting $loc($2) "modality expression" } -; - -optional_at_modalities_expr: - | { [] } - | AT modalities { $2 } - // | AT error { expecting $loc($2) "modality expression" } + | atat_modalities_expr + { $1 } ; %inline stack(expr): @@ -4905,6 +4902,8 @@ atomic_type: { mktyp ~loc:$sloc (Ptyp_var (name, Some jkind)) } | LPAREN UNDERSCORE COLON jkind=jkind_annotation RPAREN { mktyp ~loc:$sloc (Ptyp_any (Some jkind)) } + | LPAREN TYPE COLON jkind=jkind_annotation RPAREN + { mktyp ~loc:$loc (Ptyp_of_kind jkind) } (* This is the syntax of the actual type parameters in an application of diff --git a/src/ocaml/preprocess/parser_recover.ml b/src/ocaml/preprocess/parser_recover.ml index 7baf772ec..90a7f0b48 100644 --- a/src/ocaml/preprocess/parser_recover.ml +++ b/src/ocaml/preprocess/parser_recover.ml @@ -13,7 +13,7 @@ module Default = struct let default_pattern () = Pat.any ~loc:!default_loc () let default_pattern_and_mode () = - Pat.any ~loc:!default_loc (), None, [] + Pat.any ~loc:!default_loc () let default_module_expr () = Mod.structure ~loc:!default_loc [] let default_module_type () = @@ -207,6 +207,7 @@ module Default = struct | MenhirInterpreter.N MenhirInterpreter.N_str_exception_declaration -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_single_attr_id -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_simple_pattern_not_ident -> raise Not_found + | MenhirInterpreter.N MenhirInterpreter.N_simple_pattern_extend_modes_or_poly -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_simple_pattern -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_simple_expr -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_simple_delimited_pattern -> raise Not_found @@ -255,6 +256,7 @@ module Default = struct | MenhirInterpreter.N MenhirInterpreter.N_possibly_poly_core_type_no_attr_ -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_possibly_poly_core_type_ -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_payload -> raise Not_found + | MenhirInterpreter.N MenhirInterpreter.N_pattern_with_modes_or_poly -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_pattern_var -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_pattern_no_exn -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_pattern_gen -> raise Not_found @@ -273,9 +275,9 @@ module Default = struct | MenhirInterpreter.N MenhirInterpreter.N_parenthesized_type_parameter -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_paren_module_expr -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_optlabel -> raise Not_found + | MenhirInterpreter.N MenhirInterpreter.N_optional_poly_type_and_modes -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_optional_atomic_constraint_ -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_optional_atat_modalities_expr -> raise Not_found - | MenhirInterpreter.N MenhirInterpreter.N_optional_at_modalities_expr -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_option_type_constraint_ -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_option_preceded_EQUAL_seq_expr__ -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_option_preceded_EQUAL_pattern__ -> raise Not_found @@ -308,14 +310,15 @@ module Default = struct | MenhirInterpreter.N MenhirInterpreter.N_mty_longident -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_module_type_subst -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_module_type_declaration -> raise Not_found - | MenhirInterpreter.N MenhirInterpreter.N_module_type -> default_module_type () + | MenhirInterpreter.N MenhirInterpreter.N_module_type_atomic -> default_module_type () + | MenhirInterpreter.N MenhirInterpreter.N_module_type -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_module_subst -> raise Not_found + | MenhirInterpreter.N MenhirInterpreter.N_module_name_modal_atat_modalities_expr_ -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_module_name_modal_at_mode_expr_ -> raise Not_found - | MenhirInterpreter.N MenhirInterpreter.N_module_name_modal_at_modalities_expr_ -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_module_name -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_module_expr -> default_module_expr () - | MenhirInterpreter.N MenhirInterpreter.N_module_declaration_body_optional_atat_mode_expr_ -> raise Not_found - | MenhirInterpreter.N MenhirInterpreter.N_module_declaration_body_optional_atat_modalities_expr_ -> raise Not_found + | MenhirInterpreter.N MenhirInterpreter.N_module_declaration_body_module_type_with_optional_modes_ -> raise Not_found + | MenhirInterpreter.N MenhirInterpreter.N_module_declaration_body___anonymous_8_ -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_module_binding_body -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_mod_longident -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_mod_ext_longident -> raise Not_found @@ -349,8 +352,6 @@ module Default = struct | MenhirInterpreter.N MenhirInterpreter.N_list_and_class_declaration_ -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_letop_bindings -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_letop_binding_body -> raise Not_found - | MenhirInterpreter.N MenhirInterpreter.N_let_pattern_required_modes -> raise Not_found - | MenhirInterpreter.N MenhirInterpreter.N_let_pattern_no_modes -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_let_pattern -> default_pattern_and_mode () | MenhirInterpreter.N MenhirInterpreter.N_let_bindings_no_ext_ -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_let_bindings_ext_ -> raise Not_found @@ -427,9 +428,8 @@ module Default = struct | MenhirInterpreter.N MenhirInterpreter.N_attr_payload -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_attr_id -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_atomic_type -> raise Not_found - | MenhirInterpreter.N MenhirInterpreter.N_atat_mode_expr -> raise Not_found + | MenhirInterpreter.N MenhirInterpreter.N_atat_modalities_expr -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_at_mode_expr -> raise Not_found - | MenhirInterpreter.N MenhirInterpreter.N_at_modalities_expr -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_any_longident -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_and_let_binding -> raise Not_found | MenhirInterpreter.N MenhirInterpreter.N_alias_type -> raise Not_found @@ -452,7 +452,7 @@ type decision = | Select of (int -> action list) let depth = - [|0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;3;2;2;1;2;1;2;3;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;1;2;3;4;5;2;3;4;5;2;3;4;5;1;1;1;1;1;1;1;1;2;3;1;4;5;1;1;1;2;2;2;1;1;1;1;1;1;2;1;2;3;1;1;2;3;1;1;1;1;2;1;2;3;4;1;2;1;3;1;5;2;1;2;2;3;2;3;4;1;1;2;1;1;2;2;3;4;1;1;2;3;1;1;2;4;1;2;1;1;1;2;2;1;2;3;4;5;2;1;2;3;2;3;1;2;2;3;4;5;6;1;2;3;2;3;1;1;2;3;2;3;4;5;6;1;2;7;1;1;1;1;1;2;1;1;2;3;1;2;1;1;1;1;2;3;1;2;3;1;1;1;2;1;2;2;1;1;2;3;1;1;1;1;2;3;4;2;3;1;2;3;1;2;1;1;1;1;1;1;2;1;1;2;3;1;1;2;2;4;3;4;5;4;1;2;1;2;3;4;5;4;4;1;2;3;3;1;1;2;3;4;5;3;4;5;6;1;2;3;2;3;2;3;4;5;6;7;4;1;1;1;1;1;5;6;7;8;9;8;8;9;3;4;5;4;4;5;6;4;5;6;5;5;6;7;1;2;1;2;3;2;3;2;2;3;2;3;4;5;3;1;10;7;8;9;10;9;9;10;11;2;1;2;3;4;3;4;5;6;7;4;5;6;7;8;2;3;2;3;4;5;3;4;5;6;3;2;3;3;3;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;2;3;4;5;4;4;5;6;3;4;5;6;5;5;6;7;2;3;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;4;5;6;3;3;4;5;2;2;3;4;5;6;7;2;3;4;5;2;1;2;1;1;3;4;2;3;1;2;1;3;4;2;3;5;1;2;1;2;3;2;3;4;5;3;4;3;4;4;5;6;2;1;2;1;2;3;4;4;5;6;7;8;9;10;11;8;1;7;1;1;2;3;1;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;1;2;2;2;2;1;2;2;2;2;1;1;2;3;4;1;1;5;6;6;1;2;3;4;1;1;2;1;2;3;4;5;6;7;8;9;1;2;1;1;2;3;1;1;2;3;3;1;1;4;1;1;1;2;1;2;1;2;1;1;1;2;1;1;1;1;1;1;1;1;1;1;1;1;2;3;4;5;1;1;1;2;1;1;2;3;1;1;2;2;1;1;2;3;1;1;2;1;2;1;1;1;2;3;1;2;1;1;1;1;1;1;2;3;4;5;6;7;8;9;5;4;5;1;1;2;1;1;3;1;1;1;2;3;4;1;2;3;1;1;1;4;2;1;2;1;2;3;4;5;6;7;8;4;3;4;1;1;1;3;3;2;3;1;2;3;1;2;3;4;5;4;5;6;7;8;1;4;5;6;1;1;2;1;2;3;2;3;2;3;4;5;6;7;8;4;3;4;3;3;3;4;5;2;3;2;3;2;4;5;4;5;3;4;2;3;1;2;3;3;4;4;2;3;1;4;2;3;4;5;1;6;5;2;2;3;2;2;3;1;1;2;1;1;1;2;3;1;1;1;1;2;3;1;1;2;3;4;5;6;7;6;7;8;9;10;11;8;7;8;9;10;11;2;3;1;2;3;4;1;2;1;2;3;4;5;1;2;6;3;4;2;3;4;5;3;4;2;1;2;3;4;1;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;8;9;8;1;8;2;3;2;1;1;2;3;4;5;6;7;8;4;3;4;3;3;2;3;4;5;6;7;8;9;5;4;5;4;4;1;2;3;4;5;6;7;8;9;5;4;5;4;4;1;1;1;2;1;1;2;3;3;4;5;6;4;4;2;2;3;2;3;1;2;3;4;5;6;3;4;2;3;4;5;6;3;4;5;1;2;1;2;3;4;5;6;3;4;2;3;4;5;6;7;2;1;2;3;4;5;3;3;4;3;4;2;3;1;2;3;4;5;6;7;8;3;4;5;5;6;7;8;9;3;4;5;3;4;2;1;1;2;3;4;5;1;2;3;4;5;6;7;8;9;9;1;2;3;1;2;1;2;2;3;1;4;2;1;2;3;1;2;4;5;4;5;6;2;3;4;5;1;1;2;3;4;5;2;2;3;4;2;3;4;1;2;3;3;1;1;1;5;4;5;2;3;4;2;3;4;1;3;2;3;3;5;5;6;1;2;3;4;5;6;1;4;5;2;3;10;11;9;10;11;11;12;13;1;2;3;1;2;3;1;1;1;1;1;2;1;1;2;3;4;1;1;4;5;6;1;2;3;4;1;5;2;3;2;3;3;4;5;5;6;2;2;3;4;1;1;7;8;9;10;1;1;1;1;2;3;4;1;2;2;3;2;3;2;3;1;2;3;4;5;6;1;2;3;1;2;3;4;5;6;7;8;9;10;7;6;7;8;9;10;2;2;3;2;3;2;3;1;2;3;1;1;1;2;4;1;2;3;5;6;1;2;3;4;1;2;3;4;5;1;1;2;3;4;1;1;1;1;1;2;3;4;5;6;2;3;2;3;4;5;1;1;2;3;4;5;2;1;2;1;2;1;2;2;3;1;2;3;4;5;6;1;2;3;4;5;6;7;4;3;4;5;6;7;3;4;3;4;5;6;1;2;1;2;3;1;1;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;1;1;2;1;2;3;4;5;6;2;3;4;5;2;2;3;4;5;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;4;3;4;5;6;7;3;4;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;1;2;1;2;3;4;5;1;1;2;2;3;1;4;1;1;1;2;3;4;5;6;7;8;7;8;9;3;4;5;6;7;6;7;8;2;3;4;3;4;5;2;2;3;4;1;2;3;4;5;4;5;6;2;3;4;1;2;3;2;3;4;5;6;7;8;4;3;4;3;3;2;3;2;3;1;2;3;4;5;6;7;8;7;8;9;3;4;5;4;5;6;3;3;4;5;1;3;1;2;4;2;3;1;2;3;4;5;6;7;8;9;10;11;7;8;9;10;7;3;4;5;6;7;8;9;10;11;7;8;9;10;7;3;4;5;6;7;8;9;10;11;7;8;9;10;7;2;3;4;5;6;7;8;9;10;11;7;8;9;10;7;3;4;5;6;7;8;9;10;11;7;8;9;10;7;3;4;5;6;7;8;9;10;11;7;8;9;10;7;3;4;5;6;7;8;9;10;11;12;13;9;10;11;12;9;5;6;7;8;9;10;11;12;13;9;10;11;12;9;5;6;7;8;9;10;11;12;13;9;10;11;12;9;3;4;5;6;7;8;9;5;6;7;8;5;1;2;2;1;2;2;6;1;1;7;8;9;10;11;7;1;4;5;3;4;5;3;4;5;3;4;5;6;7;5;6;7;5;6;7;3;6;7;6;7;8;9;6;4;5;6;7;8;9;10;11;12;13;14;15;16;12;13;14;15;12;6;7;8;9;10;11;12;13;14;15;11;12;13;14;11;6;7;8;9;10;11;12;8;9;10;11;8;7;4;5;3;4;5;3;4;5;3;4;5;6;7;8;5;4;5;6;7;8;4;5;4;5;6;7;4;5;1;2;3;2;3;4;2;3;1;1;4;5;3;4;5;6;7;8;1;2;3;4;5;6;2;3;4;5;2;1;2;2;1;2;3;4;5;6;7;8;9;5;6;7;8;5;2;3;4;5;6;7;8;9;5;6;7;8;5;2;3;4;5;6;7;8;9;5;6;7;8;5;2;1;2;3;4;5;6;2;3;4;5;2;1;2;3;4;5;6;7;8;9;10;11;12;8;9;10;11;8;2;3;4;5;6;7;8;9;10;11;7;8;9;10;7;2;3;4;5;6;7;8;4;5;6;7;4;3;3;1;9;10;2;1;4;5;6;7;8;9;4;4;5;4;5;6;3;4;5;6;7;8;9;10;4;5;6;7;8;9;4;4;5;4;5;6;3;4;5;6;7;8;9;10;4;4;5;6;7;8;9;4;5;4;5;6;3;4;5;3;1;2;3;1;1;2;3;4;5;1;4;5;1;2;3;3;4;4;4;5;4;5;6;7;8;8;9;10;8;9;10;10;11;12;4;5;5;6;7;5;6;7;7;8;9;6;7;8;3;4;5;6;7;2;3;4;1;2;3;4;5;1;2;1;2;3;4;3;4;5;6;7;8;1;2;1;2;3;1;2;3;4;1;1;2;3;1;5;1;1;1;1;1;2;3;1;2;3;4;5;6;7;8;1;2;3;1;2;1;1;2;3;1;2;3;4;5;3;4;2;1;2;1;1;2;3;4;5;6;5;6;7;8;6;7;8;9;6;2;3;4;5;6;4;2;3;4;2;6;7;8;9;1;2;3;1;4;5;6;2;2;2;5;6;3;4;5;2;5;6;7;8;7;8;7;8;9;10;7;3;4;5;6;3;2;4;5;6;2;4;5;6;7;8;9;10;6;7;8;9;6;3;4;5;2;3;3;2;6;7;2;3;4;5;6;2;3;2;2;3;2;3;4;5;1;2;3;4;2;3;1;2;3;3;4;5;6;2;3;4;5;2;2;3;4;2;2;3;3;4;5;6;7;8;2;3;4;5;6;7;2;3;2;3;4;3;4;5;6;7;8;2;3;4;5;6;7;2;2;3;2;3;4;3;4;5;6;7;8;2;3;4;5;6;7;2;2;3;2;3;4;2;2;3;4;5;6;6;7;8;2;3;3;4;4;5;2;3;4;5;1;1;1;2;3;4;5;6;2;3;4;5;1;2;3;4;5;1;2;6;7;2;3;4;5;6;7;1;2;3;4;5;6;8;4;5;6;1;2;1;2;3;4;1;2;1;2;3;4;1;2;1;2;3;4;5;1;2;3;6;7;8;1;2;9;10;1;1;2;3;4;5;1;1;2;3;6;7;8;5;6;7;1;2;2;1;2;3;4;1;5;1;1;2;3;2;3;6;7;8;1;2;1;2;3;3;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;3;4;5;6;1;2;3;4;2;3;1;1;1;7;2;3;4;5;6;3;4;1;2;1;2;3;3;4;4;5;1;2;1;1;2;9;10;1;2;3;4;5;6;7;8;9;11;2;3;4;5;6;1;1;1;2;3;1;1;2;1;3;4;5;6;5;6;7;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;4;5;6;1;1;2;1;3;4;5;6;7;8;9;10;11;6;7;8;5;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;6;7;8;9;10;5;6;7;4;1;2;3;4;1;2;3;1;1;2;3;4;5;6;7;2;3;4;5;6;1;2;3;4;1;2;1;2;1;2;1;1;2;1;3;2;2;3;2;3;7;3;4;5;6;2;3;4;5;2;3;3;1;2;3;4;1;1;1;2;1;2;3;1;2;3;1;4;1;3;5;4;5;4;1;2;5;6;2;3;4;5;1;2;3;4;4;5;1;2;1;1;2;2;1;2;3;4;1;2;7;8;1;2;3;4;5;6;7;8;9;1;1;1;1;1;1;1;1;2;1;1;1;2;1;2;3;4;5;1;1;2;3;4;5;6;7;8;9;1;2;1;1;1;1;2;3;1;1;1;3;4;3;4;2;3;4;2;3;4;10;6;7;8;1;2;3;4;5;3;4;9;10;2;2;1;1;1;1;1;2;3;4;2;3;4;5;6;7;8;9;5;6;7;8;9;3;4;5;7;8;8;9;8;8;2;3;4;5;6;7;8;9;5;4;5;4;4;2;3;3;4;5;4;5;6;8;9;10;11;7;8;7;8;9;10;7;2;3;4;5;6;7;8;5;4;5;6;7;8;4;5;4;5;6;7;4;4;5;6;2;3;4;1;2;3;4;5;6;1;7;1;2;3;2;2;3;2;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;1;2;3;4;2;3;4;2;1;2;1;1;2;1;1;2;2;1;1;2;3;1;2;3;1;2;1;2;3;4;5;6;4;5;6;4;4;3;4;5;3;4;5;3;3;1;8;9;10;11;6;7;8;9;10;2;1;1;4;5;6;7;8;9;10;5;6;7;8;9;1;1;2;3;4;5;6;2;3;4;5;1;2;3;4;5;6;7;8;2;3;4;5;6;7;4;5;6;7;8;9;1;2;3;4;5;6;7;8;10;1;2;1;2;3;4;4;5;6;1;2;7;8;1;2;3;5;6;1;1;2;3;2;1;2;1;1;2;3;4;1;2;3;4;5;6;7;8;9;1;2;3;4;5;6;7;8;9;10;1;1;1;1;1;1;1;1;2;1;1;2;1;2;3;4;5;6;1;2;1;1;2;3;4;5;6;7;8;9;10;2;1;1;2;2;5;6;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;3;4;5;6;7;8;9;10;11;10;10;11;12;9;10;11;12;11;11;12;13;4;5;6;7;6;6;7;8;5;6;7;8;7;7;8;9;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;3;4;6;2;2;3;1;4;5;4;5;6;7;5;6;7;8;5;2;3;6;7;8;3;4;3;4;5;6;7;1;2;1;0;1;2;1;0;1;2;3;1;1;1;2;3;4;5;3;3;1;1;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;2;1;1;2;0;1;2;3;3;3;3;3;3;1;2;3;3;3;3;3;3;1;1;1;2;1;2;1;2;3;1;2;0;1;1;1;2;2;2;3;4;2;1;1;2;3;4;1;2;|] + [|0;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;3;2;2;1;2;1;2;3;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;1;2;1;2;3;4;5;2;3;4;5;2;3;4;5;1;1;1;1;1;1;1;1;2;3;1;4;5;1;1;1;2;2;2;1;1;1;1;1;1;2;1;2;3;1;1;2;3;1;1;1;1;2;1;2;3;1;2;1;3;1;4;2;1;2;2;3;2;3;4;5;6;2;1;2;3;5;6;7;8;2;3;6;7;8;9;1;1;2;3;2;3;4;1;1;2;1;1;2;2;3;4;1;1;2;3;1;1;2;4;1;2;1;1;1;2;2;1;2;3;4;5;1;2;2;3;4;5;6;1;2;3;2;3;1;1;2;3;2;3;4;5;6;1;2;7;1;1;1;1;1;2;1;2;1;1;1;1;2;3;1;2;3;1;1;1;2;1;2;2;1;1;2;3;1;1;1;1;2;3;4;2;3;1;2;3;1;2;1;1;1;1;1;1;2;1;1;2;3;1;1;2;2;4;3;4;5;4;1;2;1;2;3;4;5;4;4;1;2;3;3;1;1;2;3;4;5;3;4;5;6;1;2;3;2;3;2;3;4;5;6;7;4;1;1;1;1;1;5;6;7;8;9;8;8;9;3;4;5;4;4;5;6;4;5;6;5;5;6;7;1;2;1;2;3;2;3;2;2;3;2;3;4;5;3;1;10;7;8;9;10;9;9;10;11;2;1;2;3;4;3;4;5;6;7;4;5;6;7;8;2;3;2;3;4;5;3;4;5;6;3;2;3;3;3;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;2;3;4;5;4;4;5;6;3;4;5;6;5;5;6;7;2;3;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;4;5;6;3;3;4;5;2;2;3;4;5;6;7;2;3;4;5;2;1;2;1;1;3;4;2;3;1;2;1;3;4;2;3;5;1;2;1;2;3;2;3;4;5;3;4;3;4;4;5;6;2;1;2;1;2;3;4;4;5;6;7;8;9;10;11;8;1;7;1;1;2;3;1;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;1;2;2;2;2;1;2;2;2;2;1;1;2;3;4;1;1;5;6;6;1;2;3;4;1;1;2;1;2;3;4;5;6;7;8;9;1;2;1;1;2;3;1;1;2;3;3;1;1;4;1;1;1;2;1;2;1;2;1;1;1;2;1;1;1;1;1;1;1;1;1;1;1;1;2;3;4;5;1;1;1;2;1;1;2;3;1;1;2;2;1;1;2;3;1;1;2;1;2;1;1;1;2;3;1;2;1;1;1;1;1;1;2;3;4;5;6;7;8;9;5;4;5;1;1;2;1;1;3;1;1;1;2;3;4;1;2;3;1;1;1;4;2;1;2;1;2;3;4;5;6;7;8;4;3;4;1;1;1;3;3;2;3;1;2;3;1;2;3;4;5;4;5;6;7;8;1;4;5;6;1;1;2;1;2;3;2;3;2;3;4;5;6;7;8;4;3;4;3;3;3;4;5;2;3;2;3;2;4;5;4;5;3;4;2;3;1;2;3;3;4;4;2;3;1;4;2;3;4;5;1;6;5;2;2;3;2;2;3;1;1;2;1;1;1;2;3;1;1;1;1;2;3;1;1;2;3;4;5;6;7;6;7;8;9;10;11;8;7;8;9;10;11;2;3;1;2;3;4;1;2;1;1;2;3;2;3;4;5;3;2;1;2;1;1;2;3;3;4;2;1;2;3;1;1;1;2;3;4;5;6;7;8;9;10;11;12;13;9;8;9;8;1;8;2;3;2;1;1;2;3;4;5;6;7;8;4;3;4;3;3;2;3;4;5;6;7;8;9;5;4;5;4;4;1;2;3;4;5;6;7;8;9;5;4;5;4;4;1;1;1;2;1;2;1;2;3;3;4;5;1;2;1;2;3;4;5;6;3;4;2;3;2;3;3;4;3;4;5;6;5;2;1;2;3;1;1;2;1;1;1;2;3;4;5;1;2;3;4;5;6;7;8;9;9;1;1;2;1;2;1;2;3;1;2;1;4;5;6;3;4;5;4;2;1;2;3;1;2;4;5;4;5;6;2;3;4;5;1;1;2;3;4;1;2;5;2;1;2;3;3;1;1;1;2;3;4;3;2;3;4;3;1;1;4;5;2;3;4;2;3;4;1;3;2;3;3;4;5;3;4;5;6;5;2;3;10;11;9;10;11;11;12;13;1;2;3;1;2;3;1;1;1;1;1;2;1;1;2;3;4;1;1;4;5;6;1;2;3;4;1;5;2;3;2;3;3;4;5;6;4;5;2;2;3;4;1;1;7;8;9;10;1;1;1;1;2;3;4;1;2;2;3;2;3;2;3;1;2;3;4;5;6;1;2;3;1;2;3;4;5;6;7;8;9;10;7;6;7;8;9;10;2;2;3;2;3;2;3;1;2;3;1;1;1;2;4;1;2;5;6;1;2;3;4;1;2;3;4;5;1;1;2;3;4;1;1;1;1;1;2;3;4;5;6;2;3;2;3;4;5;1;1;2;3;4;5;2;1;2;1;2;1;2;2;3;1;2;3;4;5;6;1;2;3;4;5;6;7;4;3;4;5;6;7;3;4;3;4;5;6;1;2;1;2;3;1;1;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;1;1;2;1;2;3;4;5;6;2;3;4;5;2;2;3;4;5;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;2;3;4;5;6;7;4;3;4;5;6;7;3;4;3;4;5;6;3;2;3;4;5;6;7;3;4;5;6;3;1;2;1;2;3;4;5;6;7;8;9;6;7;8;5;6;7;8;9;10;11;12;9;10;11;6;7;8;9;6;7;8;9;10;11;8;9;10;6;7;8;7;8;9;10;11;8;9;10;5;1;1;2;3;2;1;2;3;2;3;4;5;4;2;3;1;4;1;1;5;6;7;1;2;3;4;5;6;3;4;5;2;3;4;5;6;7;8;9;6;7;8;3;4;5;6;3;4;5;6;7;8;5;6;7;3;4;5;4;5;6;7;8;5;6;7;2;2;3;4;1;2;3;4;5;6;3;4;5;2;3;4;1;2;3;2;3;4;5;6;7;8;4;3;4;3;3;2;3;2;3;1;2;3;4;5;6;7;4;5;6;3;4;5;6;7;8;9;10;7;8;9;4;5;6;7;4;5;6;7;8;9;6;7;8;4;5;6;5;6;7;8;9;6;7;8;3;3;4;5;1;3;1;2;4;2;3;1;2;3;4;5;6;7;8;9;10;11;7;8;9;10;7;3;4;5;6;7;8;9;10;11;7;8;9;10;7;3;4;5;6;7;8;9;10;11;7;8;9;10;7;2;3;4;5;6;7;8;9;10;11;7;8;9;10;7;3;4;5;6;7;8;9;10;11;7;8;9;10;7;3;4;5;6;7;8;9;10;11;7;8;9;10;7;3;4;5;6;7;8;9;10;11;12;13;9;10;11;12;9;5;6;7;8;9;10;11;12;13;9;10;11;12;9;5;6;7;8;9;10;11;12;13;9;10;11;12;9;3;4;5;6;7;8;9;5;6;7;8;5;1;2;2;1;2;2;6;1;1;7;8;9;10;11;7;1;4;5;3;4;5;3;4;5;3;4;5;6;7;5;6;7;5;6;7;3;6;7;6;7;8;9;6;4;5;6;7;8;9;10;11;12;13;14;15;16;12;13;14;15;12;6;7;8;9;10;11;12;13;14;15;11;12;13;14;11;6;7;8;9;10;11;12;8;9;10;11;8;7;4;5;3;4;5;3;4;5;3;4;5;6;7;8;5;4;5;6;7;8;4;5;4;5;6;7;4;5;1;2;3;2;3;4;2;3;1;1;4;5;3;4;5;6;7;8;1;2;3;4;5;6;2;3;4;5;2;1;2;2;1;2;3;4;5;6;7;8;9;5;6;7;8;5;2;3;4;5;6;7;8;9;5;6;7;8;5;2;3;4;5;6;7;8;9;5;6;7;8;5;2;1;2;3;4;5;6;2;3;4;5;2;1;2;3;4;5;6;7;8;9;10;11;12;8;9;10;11;8;2;3;4;5;6;7;8;9;10;11;7;8;9;10;7;2;3;4;5;6;7;8;4;5;6;7;4;3;3;1;9;10;2;1;4;5;6;7;8;9;4;4;5;4;5;6;3;4;5;6;7;8;9;10;4;5;6;7;8;9;4;4;5;4;5;6;3;4;5;6;7;8;9;10;4;4;5;6;7;8;9;4;5;4;5;6;3;4;5;3;1;2;3;1;1;2;3;4;5;1;4;5;1;2;3;3;4;4;4;5;4;5;6;7;8;8;9;10;8;9;10;10;11;12;4;5;5;6;7;5;6;7;7;8;9;6;7;8;3;4;5;6;7;2;3;4;1;2;3;4;5;1;2;1;2;3;4;5;2;3;4;6;7;8;1;2;1;2;3;1;2;3;4;1;1;2;3;1;5;1;1;1;1;1;2;3;1;2;3;4;5;6;7;8;1;1;2;3;1;2;1;1;2;3;1;2;3;4;5;3;4;2;1;2;1;1;2;3;4;5;6;2;3;4;5;6;4;2;3;4;2;6;7;8;9;1;2;3;1;4;5;6;2;2;2;4;5;2;5;6;7;8;7;8;7;8;9;10;7;3;4;5;6;3;2;4;5;6;2;4;5;6;7;8;9;10;6;7;8;9;6;3;4;5;2;3;3;2;6;7;2;3;4;5;6;2;3;2;2;3;2;3;4;5;1;2;3;4;2;3;1;2;3;3;4;5;6;2;3;4;5;2;2;3;4;2;2;3;3;4;5;6;7;8;2;3;4;5;6;7;2;3;2;3;4;3;4;5;6;7;8;2;3;4;5;6;7;2;2;3;2;3;4;3;4;5;6;7;8;2;3;4;5;6;7;2;2;3;2;3;4;2;2;3;4;5;6;6;7;8;2;3;3;4;5;6;4;5;3;4;5;6;4;5;5;6;7;8;6;7;2;3;4;5;1;1;1;2;3;4;5;6;2;3;4;5;1;2;3;4;5;1;2;6;7;2;3;4;5;6;7;1;2;3;4;5;6;8;4;5;6;1;2;1;2;3;4;1;2;1;2;3;4;1;2;1;2;3;4;5;1;2;6;7;8;1;2;9;10;1;2;3;4;5;1;1;2;3;6;7;8;5;6;7;1;2;2;1;2;3;4;1;5;1;1;2;3;2;3;6;7;8;1;2;1;2;3;3;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;1;2;3;4;5;6;7;1;2;1;2;3;4;5;6;1;2;3;4;2;3;1;1;1;7;2;3;4;5;6;3;4;1;2;1;2;3;3;4;4;5;1;2;1;1;2;9;10;1;2;3;4;5;6;7;8;9;11;2;3;4;5;6;1;1;2;3;1;1;2;1;3;4;5;6;5;6;7;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;4;5;6;1;1;2;1;3;4;5;6;7;8;9;10;11;6;7;8;5;2;3;1;1;2;1;2;2;3;4;5;2;3;4;5;6;7;8;9;10;5;6;7;4;1;2;3;4;1;2;3;1;1;2;3;4;5;6;7;2;3;4;5;6;1;2;3;4;1;2;1;2;1;2;1;1;2;1;3;2;2;3;2;3;7;3;4;5;6;2;3;4;5;2;3;3;1;2;3;4;1;1;1;2;1;2;3;1;2;3;1;4;1;3;5;4;5;4;1;2;5;6;2;3;4;5;1;2;3;4;4;5;1;2;1;1;2;2;1;2;3;4;1;2;7;8;1;2;3;4;5;6;7;8;9;1;1;1;1;1;1;1;1;2;1;1;1;2;1;2;3;4;5;1;1;2;3;4;5;6;7;8;9;1;2;1;1;1;1;2;3;1;1;1;3;4;3;4;2;3;4;2;3;4;10;6;7;8;1;2;3;4;5;3;4;9;10;2;2;1;1;1;1;1;2;3;4;2;3;4;5;6;7;8;9;5;6;7;8;9;3;4;5;7;8;8;9;8;8;2;3;4;5;6;7;8;9;5;4;5;4;4;2;3;3;4;5;4;5;6;8;9;10;11;7;8;7;8;9;10;7;2;3;4;5;6;7;8;5;4;5;6;7;8;4;5;4;5;6;7;4;4;5;6;2;3;4;2;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;1;2;3;4;2;3;4;2;1;2;1;1;2;1;1;2;2;1;1;2;3;1;2;3;1;2;1;2;3;4;5;6;4;5;6;4;4;3;4;5;3;4;5;3;3;1;8;9;10;11;6;7;8;9;10;2;1;1;4;5;6;7;8;9;10;5;6;7;8;9;1;1;2;3;4;5;6;2;3;4;5;1;2;3;4;5;6;7;8;2;3;4;5;6;7;4;5;6;7;8;9;1;2;3;4;5;6;7;8;10;1;2;3;4;4;5;6;7;8;1;2;3;5;6;1;1;2;3;2;2;1;2;1;1;2;3;4;1;2;3;4;5;6;7;8;9;1;2;3;4;5;6;7;8;9;10;1;1;1;1;1;1;1;1;2;1;1;2;1;2;3;4;5;6;1;2;1;1;2;3;4;5;6;7;8;9;10;2;1;1;2;2;5;6;1;2;3;4;5;6;1;7;1;2;3;2;2;3;6;4;5;6;7;8;9;10;9;9;10;11;8;9;10;11;10;10;11;12;3;4;5;6;5;5;6;7;4;5;6;7;6;6;7;8;3;4;5;6;7;8;9;10;11;10;10;11;12;9;10;11;12;11;11;12;13;4;5;6;7;6;6;7;8;5;6;7;8;7;7;8;9;4;5;6;7;8;9;8;8;9;10;7;8;9;10;9;9;10;11;3;4;5;6;7;8;7;7;8;9;6;7;8;9;8;8;9;10;3;4;5;2;2;3;1;4;5;4;5;6;7;5;6;7;8;5;2;3;6;7;8;3;4;3;4;5;6;7;1;2;1;0;1;2;1;0;1;2;3;1;1;1;2;3;4;5;3;3;1;1;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;1;2;0;1;2;1;0;1;2;1;1;2;0;1;2;3;3;3;3;3;3;1;2;3;3;3;3;3;3;1;1;1;2;1;2;1;2;3;1;2;0;1;1;1;2;2;2;3;4;2;1;1;2;3;4;1;2;|] let can_pop (type a) : a terminal -> bool = function | T_WITH -> true @@ -581,32 +581,32 @@ let can_pop (type a) : a terminal -> bool = function let recover = let r0 = [R 331] in let r1 = S (N N_fun_expr) :: r0 in - let r2 = [R 964] in + let r2 = [R 969] in let r3 = Sub (r1) :: r2 in let r4 = [R 198] in let r5 = S (T T_DONE) :: r4 in let r6 = Sub (r3) :: r5 in let r7 = S (T T_DO) :: r6 in let r8 = Sub (r3) :: r7 in - let r9 = R 507 :: r8 in - let r10 = [R 1103] in + let r9 = R 500 :: r8 in + let r10 = [R 1114] in let r11 = S (T T_AND) :: r10 in let r12 = [R 42] in let r13 = Sub (r11) :: r12 in let r14 = [R 163] in let r15 = [R 43] in - let r16 = [R 801] in + let r16 = [R 806] in let r17 = S (N N_structure) :: r16 in let r18 = [R 44] in let r19 = Sub (r17) :: r18 in let r20 = [R 45] in let r21 = S (T T_RBRACKET) :: r20 in let r22 = Sub (r19) :: r21 in - let r23 = [R 1370] in + let r23 = [R 1381] in let r24 = S (T T_LIDENT) :: r23 in - let r25 = [R 39] in + let r25 = [R 38] in let r26 = S (T T_UNDERSCORE) :: r25 in - let r27 = [R 1339] in + let r27 = [R 1350] in let r28 = Sub (r26) :: r27 in let r29 = [R 335] in let r30 = Sub (r28) :: r29 in @@ -614,3328 +614,3384 @@ let recover = let r32 = Sub (r30) :: r31 in let r33 = [R 144] in let r34 = Sub (r32) :: r33 in - let r35 = [R 806] in + let r35 = [R 811] in let r36 = Sub (r34) :: r35 in - let r37 = [R 1382] in - let r38 = R 513 :: r37 in - let r39 = R 742 :: r38 in + let r37 = [R 1393] in + let r38 = R 506 :: r37 in + let r39 = R 738 :: r38 in let r40 = Sub (r36) :: r39 in let r41 = S (T T_COLON) :: r40 in let r42 = Sub (r24) :: r41 in - let r43 = R 507 :: r42 in - let r44 = [R 710] in + let r43 = R 500 :: r42 in + let r44 = [R 704] in let r45 = S (T T_AMPERAMPER) :: r44 in - let r46 = [R 1369] in + let r46 = [R 1380] in let r47 = S (T T_RPAREN) :: r46 in let r48 = Sub (r45) :: r47 in - let r49 = [R 681] in + let r49 = [R 675] in let r50 = S (T T_RPAREN) :: r49 in let r51 = R 358 :: r50 in let r52 = [R 359] in - let r53 = [R 683] in + let r53 = [R 677] in let r54 = S (T T_RBRACKET) :: r53 in - let r55 = [R 685] in + let r55 = [R 679] in let r56 = S (T T_RBRACE) :: r55 in - let r57 = [R 556] in - let r58 = [R 165] in - let r59 = [R 354] in - let r60 = S (T T_LIDENT) :: r59 in - let r61 = [R 903] in - let r62 = Sub (r60) :: r61 in - let r63 = [R 38] in - let r64 = Sub (r60) :: r63 in - let r65 = [R 749] in - let r66 = S (T T_COLON) :: r65 in - let r67 = S (T T_QUOTE) :: r62 in - let r68 = [R 1245] in - let r69 = Sub (r28) :: r68 in - let r70 = S (T T_MINUSGREATER) :: r69 in - let r71 = S (T T_RPAREN) :: r70 in - let r72 = Sub (r34) :: r71 in - let r73 = S (T T_DOT) :: r72 in - let r74 = Sub (r67) :: r73 in - let r75 = [R 369] in - let r76 = S (T T_UNDERSCORE) :: r75 in - let r77 = [R 363] in - let r78 = Sub (r76) :: r77 in - let r79 = [R 904] in - let r80 = S (T T_RPAREN) :: r79 in - let r81 = Sub (r78) :: r80 in - let r82 = S (T T_COLON) :: r81 in - let r83 = Sub (r60) :: r82 in - let r84 = [R 41] in - let r85 = S (T T_RPAREN) :: r84 in - let r86 = Sub (r78) :: r85 in - let r87 = S (T T_COLON) :: r86 in - let r88 = [R 371] in - let r89 = S (T T_RPAREN) :: r88 in - let r90 = [R 368] in - let r91 = [R 150] in - let r92 = S (T T_RPAREN) :: r91 in - let r93 = S (N N_module_type) :: r92 in - let r94 = R 507 :: r93 in - let r95 = R 162 :: r94 in - let r96 = [R 40] in - let r97 = S (T T_RPAREN) :: r96 in - let r98 = Sub (r78) :: r97 in - let r99 = S (T T_COLON) :: r98 in - let r100 = Sub (r60) :: r99 in - let r101 = [R 824] in - let r102 = [R 366] in - let r103 = R 742 :: r102 in - let r104 = [R 1353] in - let r105 = [R 928] in - let r106 = Sub (r26) :: r105 in - let r107 = [R 1297] in - let r108 = Sub (r106) :: r107 in - let r109 = S (T T_STAR) :: r108 in - let r110 = Sub (r26) :: r109 in - let r111 = [R 968] in - let r112 = R 515 :: r111 in - let r113 = R 742 :: r112 in - let r114 = [R 605] in - let r115 = S (T T_END) :: r114 in - let r116 = Sub (r113) :: r115 in - let r117 = [R 640] in + let r57 = [R 638] in + let r58 = [R 549] in + let r59 = [R 165] in + let r60 = [R 354] in + let r61 = S (T T_LIDENT) :: r60 in + let r62 = [R 908] in + let r63 = Sub (r61) :: r62 in + let r64 = [R 37] in + let r65 = Sub (r61) :: r64 in + let r66 = [R 749] in + let r67 = S (T T_COLON) :: r66 in + let r68 = S (T T_QUOTE) :: r63 in + let r69 = [R 1256] in + let r70 = Sub (r28) :: r69 in + let r71 = S (T T_MINUSGREATER) :: r70 in + let r72 = S (T T_RPAREN) :: r71 in + let r73 = Sub (r34) :: r72 in + let r74 = S (T T_DOT) :: r73 in + let r75 = Sub (r68) :: r74 in + let r76 = [R 369] in + let r77 = S (T T_UNDERSCORE) :: r76 in + let r78 = [R 363] in + let r79 = Sub (r77) :: r78 in + let r80 = [R 909] in + let r81 = S (T T_RPAREN) :: r80 in + let r82 = Sub (r79) :: r81 in + let r83 = S (T T_COLON) :: r82 in + let r84 = Sub (r61) :: r83 in + let r85 = [R 40] in + let r86 = S (T T_RPAREN) :: r85 in + let r87 = Sub (r79) :: r86 in + let r88 = S (T T_COLON) :: r87 in + let r89 = [R 371] in + let r90 = S (T T_RPAREN) :: r89 in + let r91 = [R 368] in + let r92 = [R 598] in + let r93 = S (N N_module_type_atomic) :: r92 in + let r94 = [R 150] in + let r95 = S (T T_RPAREN) :: r94 in + let r96 = Sub (r93) :: r95 in + let r97 = R 500 :: r96 in + let r98 = R 162 :: r97 in + let r99 = [R 41] in + let r100 = S (T T_RPAREN) :: r99 in + let r101 = Sub (r79) :: r100 in + let r102 = [R 829] in + let r103 = [R 366] in + let r104 = R 738 :: r103 in + let r105 = [R 1364] in + let r106 = [R 933] in + let r107 = Sub (r26) :: r106 in + let r108 = [R 1308] in + let r109 = Sub (r107) :: r108 in + let r110 = S (T T_STAR) :: r109 in + let r111 = Sub (r26) :: r110 in + let r112 = [R 39] in + let r113 = S (T T_RPAREN) :: r112 in + let r114 = Sub (r79) :: r113 in + let r115 = S (T T_COLON) :: r114 in + let r116 = Sub (r61) :: r115 in + let r117 = [R 632] in let r118 = S (T T_LIDENT) :: r117 in - let r119 = [R 743] in - let r120 = S (T T_LIDENT) :: r104 in - let r121 = [R 568] in - let r122 = Sub (r120) :: r121 in - let r123 = [R 1346] in - let r124 = Sub (r122) :: r123 in - let r125 = [R 127] in - let r126 = S (T T_FALSE) :: r125 in - let r127 = [R 131] in - let r128 = Sub (r126) :: r127 in - let r129 = [R 348] in - let r130 = R 507 :: r129 in - let r131 = R 341 :: r130 in - let r132 = Sub (r128) :: r131 in - let r133 = [R 834] in - let r134 = Sub (r132) :: r133 in - let r135 = [R 976] in - let r136 = R 513 :: r135 in - let r137 = Sub (r134) :: r136 in - let r138 = R 812 :: r137 in - let r139 = S (T T_PLUSEQ) :: r138 in - let r140 = Sub (r124) :: r139 in - let r141 = R 1349 :: r140 in - let r142 = R 507 :: r141 in - let r143 = [R 977] in - let r144 = R 513 :: r143 in - let r145 = Sub (r134) :: r144 in - let r146 = R 812 :: r145 in - let r147 = S (T T_PLUSEQ) :: r146 in - let r148 = Sub (r124) :: r147 in - let r149 = [R 1348] in - let r150 = R 507 :: r149 in - let r151 = S (T T_UNDERSCORE) :: r150 in - let r152 = R 1355 :: r151 in - let r153 = [R 766] in - let r154 = Sub (r152) :: r153 in - let r155 = [R 920] in - let r156 = Sub (r154) :: r155 in - let r157 = [R 1351] in - let r158 = S (T T_RPAREN) :: r157 in - let r159 = [R 768] in - let r160 = [R 638] in - let r161 = S (T T_LIDENT) :: r160 in - let r162 = [R 365] in - let r163 = [R 823] in - let r164 = Sub (r78) :: r163 in - let r165 = [R 508] in - let r166 = [R 1347] in - let r167 = R 507 :: r166 in - let r168 = Sub (r60) :: r167 in - let r169 = [R 767] in - let r170 = [R 921] in - let r171 = [R 364] in - let r172 = [R 352] in - let r173 = R 513 :: r172 in - let r174 = R 891 :: r173 in - let r175 = R 1344 :: r174 in - let r176 = [R 660] in - let r177 = S (T T_DOTDOT) :: r176 in - let r178 = [R 1345] in - let r179 = [R 661] in - let r180 = [R 130] in - let r181 = S (T T_RPAREN) :: r180 in - let r182 = [R 126] in - let r183 = [R 673] in - let r184 = [R 164] in - let r185 = S (T T_RBRACKET) :: r184 in - let r186 = Sub (r17) :: r185 in - let r187 = [R 324] in - let r188 = [R 1045] in - let r189 = [R 572] in - let r190 = [R 537] in - let r191 = Sub (r3) :: r190 in - let r192 = S (T T_MINUSGREATER) :: r191 in - let r193 = S (N N_pattern) :: r192 in - let r194 = [R 907] in - let r195 = Sub (r193) :: r194 in - let r196 = [R 182] in - let r197 = Sub (r195) :: r196 in - let r198 = S (T T_WITH) :: r197 in - let r199 = Sub (r3) :: r198 in - let r200 = R 507 :: r199 in - let r201 = [R 867] in - let r202 = S (N N_fun_expr) :: r201 in - let r203 = S (T T_COMMA) :: r202 in - let r204 = [R 1341] in - let r205 = Sub (r34) :: r204 in - let r206 = S (T T_COLON) :: r205 in - let r207 = [R 873] in - let r208 = S (N N_fun_expr) :: r207 in - let r209 = S (T T_COMMA) :: r208 in - let r210 = S (T T_RPAREN) :: r209 in - let r211 = Sub (r206) :: r210 in - let r212 = [R 1343] in - let r213 = [R 945] in - let r214 = Sub (r34) :: r213 in - let r215 = [R 916] in - let r216 = Sub (r214) :: r215 in - let r217 = [R 156] in - let r218 = S (T T_RBRACKET) :: r217 in - let r219 = Sub (r216) :: r218 in - let r220 = [R 155] in - let r221 = S (T T_RBRACKET) :: r220 in - let r222 = [R 154] in - let r223 = S (T T_RBRACKET) :: r222 in - let r224 = [R 634] in - let r225 = Sub (r60) :: r224 in - let r226 = S (T T_BACKQUOTE) :: r225 in - let r227 = [R 1320] in - let r228 = R 507 :: r227 in - let r229 = Sub (r226) :: r228 in - let r230 = [R 151] in + let r119 = [R 365] in + let r120 = [R 945] in + let r121 = Sub (r79) :: r120 in + let r122 = S (T T_COLON) :: r121 in + let r123 = [R 828] in + let r124 = Sub (r79) :: r123 in + let r125 = [R 944] in + let r126 = Sub (r79) :: r125 in + let r127 = S (T T_COLON) :: r126 in + let r128 = [R 667] in + let r129 = [R 973] in + let r130 = R 508 :: r129 in + let r131 = R 738 :: r130 in + let r132 = [R 612] in + let r133 = S (T T_END) :: r132 in + let r134 = Sub (r131) :: r133 in + let r135 = [R 634] in + let r136 = S (T T_LIDENT) :: r135 in + let r137 = [R 25] in + let r138 = Sub (r136) :: r137 in + let r139 = S (T T_LIDENT) :: r105 in + let r140 = [R 561] in + let r141 = Sub (r139) :: r140 in + let r142 = [R 1357] in + let r143 = Sub (r141) :: r142 in + let r144 = [R 127] in + let r145 = S (T T_FALSE) :: r144 in + let r146 = [R 131] in + let r147 = Sub (r145) :: r146 in + let r148 = [R 348] in + let r149 = R 500 :: r148 in + let r150 = R 341 :: r149 in + let r151 = Sub (r147) :: r150 in + let r152 = [R 839] in + let r153 = Sub (r151) :: r152 in + let r154 = [R 981] in + let r155 = R 506 :: r154 in + let r156 = Sub (r153) :: r155 in + let r157 = R 817 :: r156 in + let r158 = S (T T_PLUSEQ) :: r157 in + let r159 = Sub (r143) :: r158 in + let r160 = R 1360 :: r159 in + let r161 = R 500 :: r160 in + let r162 = [R 982] in + let r163 = R 506 :: r162 in + let r164 = Sub (r153) :: r163 in + let r165 = R 817 :: r164 in + let r166 = S (T T_PLUSEQ) :: r165 in + let r167 = Sub (r143) :: r166 in + let r168 = [R 1359] in + let r169 = R 500 :: r168 in + let r170 = S (T T_UNDERSCORE) :: r169 in + let r171 = R 1366 :: r170 in + let r172 = [R 766] in + let r173 = Sub (r171) :: r172 in + let r174 = [R 925] in + let r175 = Sub (r173) :: r174 in + let r176 = [R 1362] in + let r177 = S (T T_RPAREN) :: r176 in + let r178 = [R 768] in + let r179 = [R 501] in + let r180 = [R 1358] in + let r181 = R 500 :: r180 in + let r182 = Sub (r61) :: r181 in + let r183 = [R 767] in + let r184 = [R 926] in + let r185 = [R 364] in + let r186 = [R 352] in + let r187 = R 506 :: r186 in + let r188 = R 896 :: r187 in + let r189 = R 1355 :: r188 in + let r190 = [R 654] in + let r191 = S (T T_DOTDOT) :: r190 in + let r192 = [R 1356] in + let r193 = [R 655] in + let r194 = [R 130] in + let r195 = S (T T_RPAREN) :: r194 in + let r196 = [R 126] in + let r197 = [R 164] in + let r198 = S (T T_RBRACKET) :: r197 in + let r199 = Sub (r17) :: r198 in + let r200 = [R 324] in + let r201 = [R 1054] in + let r202 = [R 565] in + let r203 = [R 530] in + let r204 = Sub (r3) :: r203 in + let r205 = S (T T_MINUSGREATER) :: r204 in + let r206 = S (N N_pattern) :: r205 in + let r207 = [R 912] in + let r208 = Sub (r206) :: r207 in + let r209 = [R 182] in + let r210 = Sub (r208) :: r209 in + let r211 = S (T T_WITH) :: r210 in + let r212 = Sub (r3) :: r211 in + let r213 = R 500 :: r212 in + let r214 = [R 872] in + let r215 = S (N N_fun_expr) :: r214 in + let r216 = S (T T_COMMA) :: r215 in + let r217 = [R 1352] in + let r218 = Sub (r34) :: r217 in + let r219 = S (T T_COLON) :: r218 in + let r220 = [R 878] in + let r221 = S (N N_fun_expr) :: r220 in + let r222 = S (T T_COMMA) :: r221 in + let r223 = S (T T_RPAREN) :: r222 in + let r224 = Sub (r219) :: r223 in + let r225 = [R 1354] in + let r226 = [R 950] in + let r227 = Sub (r34) :: r226 in + let r228 = [R 921] in + let r229 = Sub (r227) :: r228 in + let r230 = [R 156] in let r231 = S (T T_RBRACKET) :: r230 in - let r232 = [R 158] in - let r233 = S (T T_RPAREN) :: r232 in - let r234 = Sub (r106) :: r233 in - let r235 = S (T T_STAR) :: r234 in - let r236 = [R 159] in - let r237 = S (T T_RPAREN) :: r236 in - let r238 = Sub (r106) :: r237 in - let r239 = S (T T_STAR) :: r238 in - let r240 = Sub (r26) :: r239 in - let r241 = [R 554] in - let r242 = S (T T_LIDENT) :: r241 in - let r243 = [R 96] in - let r244 = Sub (r242) :: r243 in - let r245 = [R 34] in - let r246 = [R 555] in - let r247 = S (T T_LIDENT) :: r246 in - let r248 = S (T T_DOT) :: r247 in - let r249 = S (T T_UIDENT) :: r57 in - let r250 = [R 576] in - let r251 = Sub (r249) :: r250 in - let r252 = [R 577] in - let r253 = S (T T_RPAREN) :: r252 in - let r254 = [R 557] in - let r255 = S (T T_UIDENT) :: r254 in - let r256 = S (T T_DOT) :: r255 in - let r257 = S (T T_LBRACKETGREATER) :: r221 in - let r258 = [R 37] in - let r259 = Sub (r257) :: r258 in - let r260 = [R 1253] in - let r261 = [R 642] in - let r262 = S (T T_LIDENT) :: r261 in - let r263 = [R 25] in + let r232 = Sub (r229) :: r231 in + let r233 = [R 155] in + let r234 = S (T T_RBRACKET) :: r233 in + let r235 = [R 154] in + let r236 = S (T T_RBRACKET) :: r235 in + let r237 = [R 628] in + let r238 = Sub (r61) :: r237 in + let r239 = S (T T_BACKQUOTE) :: r238 in + let r240 = [R 1331] in + let r241 = R 500 :: r240 in + let r242 = Sub (r239) :: r241 in + let r243 = [R 151] in + let r244 = S (T T_RBRACKET) :: r243 in + let r245 = [R 158] in + let r246 = S (T T_RPAREN) :: r245 in + let r247 = Sub (r107) :: r246 in + let r248 = S (T T_STAR) :: r247 in + let r249 = [R 159] in + let r250 = S (T T_RPAREN) :: r249 in + let r251 = Sub (r107) :: r250 in + let r252 = S (T T_STAR) :: r251 in + let r253 = Sub (r26) :: r252 in + let r254 = [R 547] in + let r255 = S (T T_LIDENT) :: r254 in + let r256 = [R 96] in + let r257 = Sub (r255) :: r256 in + let r258 = [R 33] in + let r259 = [R 548] in + let r260 = S (T T_LIDENT) :: r259 in + let r261 = S (T T_DOT) :: r260 in + let r262 = S (T T_UIDENT) :: r58 in + let r263 = [R 569] in let r264 = Sub (r262) :: r263 in - let r265 = [R 1257] in - let r266 = Sub (r28) :: r265 in - let r267 = [R 1189] in - let r268 = Sub (r28) :: r267 in - let r269 = S (T T_MINUSGREATER) :: r268 in - let r270 = [R 30] in - let r271 = Sub (r124) :: r270 in - let r272 = [R 36] in - let r273 = [R 569] in - let r274 = Sub (r120) :: r273 in - let r275 = S (T T_DOT) :: r274 in - let r276 = [R 934] in - let r277 = Sub (r78) :: r276 in - let r278 = S (T T_COLON) :: r277 in - let r279 = [R 933] in - let r280 = Sub (r78) :: r279 in - let r281 = S (T T_COLON) :: r280 in - let r282 = [R 1269] in - let r283 = Sub (r28) :: r282 in - let r284 = S (T T_MINUSGREATER) :: r283 in - let r285 = [R 1261] in - let r286 = Sub (r28) :: r285 in - let r287 = S (T T_MINUSGREATER) :: r286 in - let r288 = S (T T_RPAREN) :: r287 in - let r289 = Sub (r34) :: r288 in - let r290 = [R 905] in - let r291 = [R 906] in - let r292 = S (T T_RPAREN) :: r291 in - let r293 = Sub (r78) :: r292 in + let r265 = [R 570] in + let r266 = S (T T_RPAREN) :: r265 in + let r267 = [R 550] in + let r268 = S (T T_UIDENT) :: r267 in + let r269 = S (T T_DOT) :: r268 in + let r270 = S (T T_LBRACKETGREATER) :: r234 in + let r271 = [R 36] in + let r272 = Sub (r270) :: r271 in + let r273 = [R 1264] in + let r274 = [R 636] in + let r275 = S (T T_LIDENT) :: r274 in + let r276 = [R 24] in + let r277 = Sub (r275) :: r276 in + let r278 = [R 1268] in + let r279 = Sub (r28) :: r278 in + let r280 = [R 1200] in + let r281 = Sub (r28) :: r280 in + let r282 = S (T T_MINUSGREATER) :: r281 in + let r283 = [R 29] in + let r284 = Sub (r143) :: r283 in + let r285 = [R 35] in + let r286 = [R 562] in + let r287 = Sub (r139) :: r286 in + let r288 = S (T T_DOT) :: r287 in + let r289 = [R 939] in + let r290 = Sub (r79) :: r289 in + let r291 = S (T T_COLON) :: r290 in + let r292 = [R 938] in + let r293 = Sub (r79) :: r292 in let r294 = S (T T_COLON) :: r293 in - let r295 = Sub (r60) :: r294 in - let r296 = [R 1263] in - let r297 = [R 1271] in - let r298 = [R 1273] in + let r295 = [R 1280] in + let r296 = Sub (r28) :: r295 in + let r297 = S (T T_MINUSGREATER) :: r296 in + let r298 = [R 1272] in let r299 = Sub (r28) :: r298 in - let r300 = [R 1275] in - let r301 = [R 1340] in - let r302 = [R 929] in - let r303 = Sub (r26) :: r302 in - let r304 = [R 35] in - let r305 = [R 930] in - let r306 = [R 931] in - let r307 = Sub (r26) :: r306 in - let r308 = [R 1265] in - let r309 = Sub (r28) :: r308 in - let r310 = [R 1267] in - let r311 = [R 18] in - let r312 = Sub (r60) :: r311 in - let r313 = [R 20] in - let r314 = S (T T_RPAREN) :: r313 in - let r315 = Sub (r78) :: r314 in - let r316 = S (T T_COLON) :: r315 in - let r317 = [R 19] in - let r318 = S (T T_RPAREN) :: r317 in - let r319 = Sub (r78) :: r318 in - let r320 = S (T T_COLON) :: r319 in - let r321 = [R 149] in - let r322 = [R 937] in - let r323 = Sub (r78) :: r322 in - let r324 = S (T T_COLON) :: r323 in - let r325 = [R 936] in - let r326 = Sub (r78) :: r325 in - let r327 = S (T T_COLON) :: r326 in - let r328 = [R 1181] in - let r329 = Sub (r28) :: r328 in - let r330 = S (T T_MINUSGREATER) :: r329 in + let r300 = S (T T_MINUSGREATER) :: r299 in + let r301 = S (T T_RPAREN) :: r300 in + let r302 = Sub (r34) :: r301 in + let r303 = [R 910] in + let r304 = [R 911] in + let r305 = S (T T_RPAREN) :: r304 in + let r306 = Sub (r79) :: r305 in + let r307 = S (T T_COLON) :: r306 in + let r308 = Sub (r61) :: r307 in + let r309 = [R 1274] in + let r310 = [R 1282] in + let r311 = [R 1284] in + let r312 = Sub (r28) :: r311 in + let r313 = [R 1286] in + let r314 = [R 1351] in + let r315 = [R 934] in + let r316 = Sub (r26) :: r315 in + let r317 = [R 34] in + let r318 = [R 935] in + let r319 = [R 936] in + let r320 = Sub (r26) :: r319 in + let r321 = [R 1276] in + let r322 = Sub (r28) :: r321 in + let r323 = [R 1278] in + let r324 = [R 18] in + let r325 = Sub (r61) :: r324 in + let r326 = [R 20] in + let r327 = S (T T_RPAREN) :: r326 in + let r328 = Sub (r79) :: r327 in + let r329 = S (T T_COLON) :: r328 in + let r330 = [R 19] in let r331 = S (T T_RPAREN) :: r330 in - let r332 = Sub (r34) :: r331 in - let r333 = [R 1183] in - let r334 = [R 1185] in - let r335 = Sub (r28) :: r334 in - let r336 = [R 1187] in - let r337 = [R 1191] in - let r338 = [R 1193] in - let r339 = Sub (r28) :: r338 in - let r340 = [R 1195] in - let r341 = [R 1205] in + let r332 = Sub (r79) :: r331 in + let r333 = S (T T_COLON) :: r332 in + let r334 = [R 149] in + let r335 = [R 942] in + let r336 = Sub (r79) :: r335 in + let r337 = S (T T_COLON) :: r336 in + let r338 = [R 941] in + let r339 = Sub (r79) :: r338 in + let r340 = S (T T_COLON) :: r339 in + let r341 = [R 1192] in let r342 = Sub (r28) :: r341 in let r343 = S (T T_MINUSGREATER) :: r342 in - let r344 = [R 1197] in - let r345 = Sub (r28) :: r344 in - let r346 = S (T T_MINUSGREATER) :: r345 in - let r347 = S (T T_RPAREN) :: r346 in - let r348 = Sub (r34) :: r347 in - let r349 = [R 1199] in - let r350 = [R 1201] in - let r351 = Sub (r28) :: r350 in - let r352 = [R 1203] in - let r353 = [R 1207] in - let r354 = [R 1209] in + let r344 = S (T T_RPAREN) :: r343 in + let r345 = Sub (r34) :: r344 in + let r346 = [R 1194] in + let r347 = [R 1196] in + let r348 = Sub (r28) :: r347 in + let r349 = [R 1198] in + let r350 = [R 1202] in + let r351 = [R 1204] in + let r352 = Sub (r28) :: r351 in + let r353 = [R 1206] in + let r354 = [R 1216] in let r355 = Sub (r28) :: r354 in - let r356 = [R 1211] in - let r357 = [R 1259] in - let r358 = [R 1255] in - let r359 = [R 152] in - let r360 = S (T T_RBRACKET) :: r359 in - let r361 = [R 917] in - let r362 = [R 910] in - let r363 = Sub (r32) :: r362 in - let r364 = [R 1319] in - let r365 = R 507 :: r364 in - let r366 = Sub (r363) :: r365 in - let r367 = [R 911] in - let r368 = [R 153] in - let r369 = S (T T_RBRACKET) :: r368 in - let r370 = Sub (r216) :: r369 in - let r371 = [R 901] in - let r372 = Sub (r226) :: r371 in - let r373 = [R 157] in - let r374 = S (T T_RBRACKET) :: r373 in - let r375 = [R 1342] in - let r376 = [R 877] in - let r377 = [R 878] in - let r378 = S (T T_RPAREN) :: r377 in - let r379 = Sub (r206) :: r378 in - let r380 = S (T T_UNDERSCORE) :: r188 in - let r381 = [R 210] in - let r382 = Sub (r380) :: r381 in - let r383 = [R 1033] in - let r384 = [R 1029] in - let r385 = S (T T_END) :: r384 in - let r386 = R 524 :: r385 in - let r387 = R 70 :: r386 in - let r388 = R 507 :: r387 in - let r389 = [R 68] in - let r390 = S (T T_RPAREN) :: r389 in - let r391 = [R 1088] in - let r392 = [R 883] in - let r393 = S (T T_DOTDOT) :: r392 in - let r394 = S (T T_COMMA) :: r393 in - let r395 = [R 884] in - let r396 = S (T T_DOTDOT) :: r395 in - let r397 = S (T T_COMMA) :: r396 in - let r398 = S (T T_RPAREN) :: r397 in - let r399 = Sub (r34) :: r398 in - let r400 = S (T T_COLON) :: r399 in - let r401 = [R 429] in - let r402 = [R 430] in + let r356 = S (T T_MINUSGREATER) :: r355 in + let r357 = [R 1208] in + let r358 = Sub (r28) :: r357 in + let r359 = S (T T_MINUSGREATER) :: r358 in + let r360 = S (T T_RPAREN) :: r359 in + let r361 = Sub (r34) :: r360 in + let r362 = [R 1210] in + let r363 = [R 1212] in + let r364 = Sub (r28) :: r363 in + let r365 = [R 1214] in + let r366 = [R 1218] in + let r367 = [R 1220] in + let r368 = Sub (r28) :: r367 in + let r369 = [R 1222] in + let r370 = [R 1270] in + let r371 = [R 1266] in + let r372 = [R 152] in + let r373 = S (T T_RBRACKET) :: r372 in + let r374 = [R 922] in + let r375 = [R 915] in + let r376 = Sub (r32) :: r375 in + let r377 = [R 1330] in + let r378 = R 500 :: r377 in + let r379 = Sub (r376) :: r378 in + let r380 = [R 916] in + let r381 = [R 153] in + let r382 = S (T T_RBRACKET) :: r381 in + let r383 = Sub (r229) :: r382 in + let r384 = [R 906] in + let r385 = Sub (r239) :: r384 in + let r386 = [R 157] in + let r387 = S (T T_RBRACKET) :: r386 in + let r388 = [R 1353] in + let r389 = [R 882] in + let r390 = [R 883] in + let r391 = S (T T_RPAREN) :: r390 in + let r392 = Sub (r219) :: r391 in + let r393 = S (T T_UNDERSCORE) :: r201 in + let r394 = [R 210] in + let r395 = Sub (r393) :: r394 in + let r396 = [R 1042] in + let r397 = [R 1038] in + let r398 = S (T T_END) :: r397 in + let r399 = R 517 :: r398 in + let r400 = R 70 :: r399 in + let r401 = R 500 :: r400 in + let r402 = [R 68] in let r403 = S (T T_RPAREN) :: r402 in - let r404 = Sub (r34) :: r403 in - let r405 = S (T T_COLON) :: r404 in - let r406 = [R 998] in - let r407 = [R 996] in - let r408 = [R 1084] in - let r409 = S (T T_RPAREN) :: r408 in - let r410 = S (N N_pattern) :: r409 in - let r411 = [R 599] in - let r412 = S (T T_UNDERSCORE) :: r411 in - let r413 = [R 1086] in - let r414 = S (T T_RPAREN) :: r413 in - let r415 = Sub (r412) :: r414 in - let r416 = R 507 :: r415 in - let r417 = [R 1087] in - let r418 = S (T T_RPAREN) :: r417 in - let r419 = [R 608] in - let r420 = S (N N_module_expr) :: r419 in - let r421 = R 507 :: r420 in - let r422 = S (T T_OF) :: r421 in - let r423 = [R 589] in - let r424 = S (T T_END) :: r423 in - let r425 = S (N N_structure) :: r424 in - let r426 = [R 828] in - let r427 = Sub (r132) :: r426 in - let r428 = [R 1307] in - let r429 = R 513 :: r428 in - let r430 = Sub (r427) :: r429 in - let r431 = R 812 :: r430 in - let r432 = S (T T_PLUSEQ) :: r431 in - let r433 = Sub (r124) :: r432 in - let r434 = R 1349 :: r433 in - let r435 = R 507 :: r434 in - let r436 = [R 351] in - let r437 = R 513 :: r436 in - let r438 = R 891 :: r437 in - let r439 = R 1344 :: r438 in - let r440 = R 722 :: r439 in - let r441 = S (T T_LIDENT) :: r440 in - let r442 = R 1349 :: r441 in - let r443 = R 507 :: r442 in - let r444 = [R 1308] in - let r445 = R 513 :: r444 in - let r446 = Sub (r427) :: r445 in - let r447 = R 812 :: r446 in - let r448 = S (T T_PLUSEQ) :: r447 in - let r449 = Sub (r124) :: r448 in - let r450 = R 722 :: r175 in - let r451 = S (T T_LIDENT) :: r450 in - let r452 = [R 810] in - let r453 = S (T T_RBRACKET) :: r452 in - let r454 = Sub (r19) :: r453 in - let r455 = [R 966] in - let r456 = Sub (r195) :: r455 in - let r457 = R 507 :: r456 in - let r458 = R 162 :: r457 in - let r459 = [R 570] in - let r460 = S (T T_LIDENT) :: r459 in - let r461 = [R 67] in - let r462 = Sub (r460) :: r461 in - let r463 = [R 1026] in - let r464 = Sub (r462) :: r463 in - let r465 = R 507 :: r464 in - let r466 = [R 571] in - let r467 = S (T T_LIDENT) :: r466 in - let r468 = [R 573] in - let r469 = [R 578] in - let r470 = [R 1012] in - let r471 = S (T T_RPAREN) :: r470 in - let r472 = [R 134] in - let r473 = S (T T_RPAREN) :: r472 in - let r474 = [R 1069] in - let r475 = [R 1051] in - let r476 = [R 946] in - let r477 = S (N N_fun_expr) :: r476 in - let r478 = [R 1054] in - let r479 = S (T T_RBRACKET) :: r478 in - let r480 = [R 125] in - let r481 = [R 1036] in - let r482 = [R 955] in - let r483 = R 728 :: r482 in - let r484 = [R 729] in - let r485 = [R 384] in - let r486 = Sub (r460) :: r485 in - let r487 = [R 961] in - let r488 = R 728 :: r487 in - let r489 = R 738 :: r488 in - let r490 = Sub (r486) :: r489 in - let r491 = [R 821] in - let r492 = Sub (r490) :: r491 in - let r493 = [R 1047] in - let r494 = S (T T_RBRACE) :: r493 in - let r495 = [R 1378] in - let r496 = [R 843] in - let r497 = S (N N_fun_expr) :: r496 in - let r498 = S (T T_COMMA) :: r497 in - let r499 = S (N N_fun_expr) :: r498 in - let r500 = [R 1067] in - let r501 = S (T T_RPAREN) :: r500 in - let r502 = [R 855] in - let r503 = S (N N_fun_expr) :: r502 in - let r504 = S (T T_COMMA) :: r503 in - let r505 = Sub (r195) :: r504 in - let r506 = R 507 :: r505 in - let r507 = R 162 :: r506 in - let r508 = [R 1048] in - let r509 = S (T T_RBRACE) :: r508 in - let r510 = [R 1011] in - let r511 = [R 1008] in - let r512 = S (T T_GREATERDOT) :: r511 in - let r513 = [R 1010] in - let r514 = S (T T_GREATERDOT) :: r513 in - let r515 = Sub (r195) :: r514 in - let r516 = R 507 :: r515 in - let r517 = [R 1006] in - let r518 = [R 1004] in - let r519 = [R 958] in - let r520 = S (N N_pattern) :: r519 in - let r521 = [R 1002] in - let r522 = S (T T_RBRACKET) :: r521 in - let r523 = [R 533] in - let r524 = R 734 :: r523 in - let r525 = R 726 :: r524 in - let r526 = Sub (r486) :: r525 in - let r527 = [R 1000] in - let r528 = S (T T_RBRACE) :: r527 in - let r529 = [R 727] in - let r530 = [R 735] in - let r531 = S (T T_UNDERSCORE) :: r391 in - let r532 = [R 1083] in - let r533 = Sub (r531) :: r532 in - let r534 = [R 792] in - let r535 = Sub (r533) :: r534 in - let r536 = R 507 :: r535 in - let r537 = [R 1093] in - let r538 = [R 881] in - let r539 = S (T T_DOTDOT) :: r538 in - let r540 = S (T T_COMMA) :: r539 in - let r541 = S (N N_pattern) :: r540 in - let r542 = [R 1007] in - let r543 = S (T T_RPAREN) :: r542 in - let r544 = [R 882] in - let r545 = S (T T_DOTDOT) :: r544 in - let r546 = S (T T_COMMA) :: r545 in - let r547 = [R 1001] in - let r548 = S (T T_RBRACE) :: r547 in - let r549 = [R 1092] in - let r550 = [R 995] in - let r551 = [R 421] in - let r552 = [R 422] in - let r553 = S (T T_RPAREN) :: r552 in - let r554 = Sub (r34) :: r553 in - let r555 = S (T T_COLON) :: r554 in - let r556 = [R 420] in - let r557 = S (T T_INT) :: r495 in - let r558 = Sub (r557) :: r550 in - let r559 = [R 1089] in - let r560 = Sub (r558) :: r559 in - let r561 = [R 1095] in - let r562 = S (T T_RBRACKET) :: r561 in - let r563 = S (T T_LBRACKET) :: r562 in - let r564 = [R 1096] in - let r565 = [R 786] in - let r566 = S (N N_pattern) :: r565 in - let r567 = R 507 :: r566 in - let r568 = [R 791] in - let r569 = [R 880] in - let r570 = [R 413] in - let r571 = [R 414] in - let r572 = S (T T_RPAREN) :: r571 in - let r573 = Sub (r34) :: r572 in - let r574 = S (T T_COLON) :: r573 in - let r575 = [R 412] in - let r576 = [R 135] in - let r577 = [R 780] in - let r578 = [R 788] in - let r579 = [R 635] in - let r580 = S (T T_LIDENT) :: r579 in - let r581 = [R 650] in - let r582 = Sub (r580) :: r581 in - let r583 = [R 637] in - let r584 = Sub (r582) :: r583 in - let r585 = [R 789] in - let r586 = Sub (r533) :: r585 in - let r587 = S (T T_RPAREN) :: r586 in - let r588 = [R 636] in - let r589 = S (T T_RPAREN) :: r588 in - let r590 = Sub (r78) :: r589 in - let r591 = S (T T_COLON) :: r590 in - let r592 = [R 790] in - let r593 = Sub (r533) :: r592 in - let r594 = S (T T_RPAREN) :: r593 in - let r595 = [R 417] in - let r596 = [R 418] in - let r597 = S (T T_RPAREN) :: r596 in - let r598 = Sub (r34) :: r597 in - let r599 = S (T T_COLON) :: r598 in - let r600 = [R 416] in - let r601 = [R 1099] in - let r602 = S (T T_RPAREN) :: r601 in - let r603 = Sub (r34) :: r602 in - let r604 = [R 784] in - let r605 = [R 783] in - let r606 = [R 133] in - let r607 = S (T T_RPAREN) :: r606 in - let r608 = [R 1097] in - let r609 = [R 535] in - let r610 = [R 1003] in - let r611 = [R 1005] in - let r612 = [R 908] in - let r613 = [R 538] in - let r614 = Sub (r3) :: r613 in - let r615 = S (T T_MINUSGREATER) :: r614 in - let r616 = [R 183] in - let r617 = S (N N_fun_expr) :: r616 in - let r618 = S (T T_WITH) :: r617 in - let r619 = Sub (r3) :: r618 in - let r620 = R 507 :: r619 in - let r621 = [R 325] in - let r622 = [R 181] in - let r623 = Sub (r195) :: r622 in - let r624 = S (T T_WITH) :: r623 in + let r404 = [R 1099] in + let r405 = [R 888] in + let r406 = S (T T_DOTDOT) :: r405 in + let r407 = S (T T_COMMA) :: r406 in + let r408 = [R 889] in + let r409 = S (T T_DOTDOT) :: r408 in + let r410 = S (T T_COMMA) :: r409 in + let r411 = S (T T_RPAREN) :: r410 in + let r412 = Sub (r34) :: r411 in + let r413 = S (T T_COLON) :: r412 in + let r414 = [R 413] in + let r415 = [R 414] in + let r416 = S (T T_RPAREN) :: r415 in + let r417 = Sub (r34) :: r416 in + let r418 = S (T T_COLON) :: r417 in + let r419 = [R 1003] in + let r420 = [R 1001] in + let r421 = [R 1095] in + let r422 = S (T T_RPAREN) :: r421 in + let r423 = [R 592] in + let r424 = S (T T_UNDERSCORE) :: r423 in + let r425 = [R 1097] in + let r426 = S (T T_RPAREN) :: r425 in + let r427 = Sub (r424) :: r426 in + let r428 = R 500 :: r427 in + let r429 = [R 1098] in + let r430 = S (T T_RPAREN) :: r429 in + let r431 = [R 603] in + let r432 = S (N N_module_expr) :: r431 in + let r433 = R 500 :: r432 in + let r434 = S (T T_OF) :: r433 in + let r435 = [R 582] in + let r436 = S (T T_END) :: r435 in + let r437 = S (N N_structure) :: r436 in + let r438 = [R 833] in + let r439 = Sub (r151) :: r438 in + let r440 = [R 1318] in + let r441 = R 506 :: r440 in + let r442 = Sub (r439) :: r441 in + let r443 = R 817 :: r442 in + let r444 = S (T T_PLUSEQ) :: r443 in + let r445 = Sub (r143) :: r444 in + let r446 = R 1360 :: r445 in + let r447 = R 500 :: r446 in + let r448 = [R 351] in + let r449 = R 506 :: r448 in + let r450 = R 896 :: r449 in + let r451 = R 1355 :: r450 in + let r452 = R 720 :: r451 in + let r453 = S (T T_LIDENT) :: r452 in + let r454 = R 1360 :: r453 in + let r455 = R 500 :: r454 in + let r456 = [R 1319] in + let r457 = R 506 :: r456 in + let r458 = Sub (r439) :: r457 in + let r459 = R 817 :: r458 in + let r460 = S (T T_PLUSEQ) :: r459 in + let r461 = Sub (r143) :: r460 in + let r462 = R 720 :: r189 in + let r463 = S (T T_LIDENT) :: r462 in + let r464 = [R 815] in + let r465 = S (T T_RBRACKET) :: r464 in + let r466 = Sub (r19) :: r465 in + let r467 = [R 971] in + let r468 = Sub (r208) :: r467 in + let r469 = R 500 :: r468 in + let r470 = R 162 :: r469 in + let r471 = [R 563] in + let r472 = S (T T_LIDENT) :: r471 in + let r473 = [R 67] in + let r474 = Sub (r472) :: r473 in + let r475 = [R 1035] in + let r476 = Sub (r474) :: r475 in + let r477 = R 500 :: r476 in + let r478 = [R 564] in + let r479 = S (T T_LIDENT) :: r478 in + let r480 = [R 566] in + let r481 = [R 571] in + let r482 = [R 1017] in + let r483 = S (T T_RPAREN) :: r482 in + let r484 = [R 134] in + let r485 = S (T T_RPAREN) :: r484 in + let r486 = [R 1078] in + let r487 = [R 1060] in + let r488 = [R 951] in + let r489 = S (N N_fun_expr) :: r488 in + let r490 = [R 1063] in + let r491 = S (T T_RBRACKET) :: r490 in + let r492 = [R 125] in + let r493 = [R 1045] in + let r494 = [R 960] in + let r495 = R 726 :: r494 in + let r496 = [R 727] in + let r497 = [R 380] in + let r498 = Sub (r472) :: r497 in + let r499 = [R 966] in + let r500 = R 726 :: r499 in + let r501 = R 736 :: r500 in + let r502 = Sub (r498) :: r501 in + let r503 = [R 826] in + let r504 = Sub (r502) :: r503 in + let r505 = [R 1056] in + let r506 = S (T T_RBRACE) :: r505 in + let r507 = [R 1389] in + let r508 = [R 848] in + let r509 = S (N N_fun_expr) :: r508 in + let r510 = S (T T_COMMA) :: r509 in + let r511 = S (N N_fun_expr) :: r510 in + let r512 = [R 1076] in + let r513 = S (T T_RPAREN) :: r512 in + let r514 = [R 860] in + let r515 = S (N N_fun_expr) :: r514 in + let r516 = S (T T_COMMA) :: r515 in + let r517 = Sub (r208) :: r516 in + let r518 = R 500 :: r517 in + let r519 = R 162 :: r518 in + let r520 = [R 1057] in + let r521 = S (T T_RBRACE) :: r520 in + let r522 = [R 1016] in + let r523 = [R 1013] in + let r524 = S (T T_GREATERDOT) :: r523 in + let r525 = [R 1015] in + let r526 = S (T T_GREATERDOT) :: r525 in + let r527 = Sub (r208) :: r526 in + let r528 = R 500 :: r527 in + let r529 = [R 1011] in + let r530 = [R 1009] in + let r531 = [R 963] in + let r532 = S (N N_pattern) :: r531 in + let r533 = [R 1007] in + let r534 = S (T T_RBRACKET) :: r533 in + let r535 = [R 526] in + let r536 = R 732 :: r535 in + let r537 = R 724 :: r536 in + let r538 = Sub (r498) :: r537 in + let r539 = [R 1005] in + let r540 = S (T T_RBRACE) :: r539 in + let r541 = [R 725] in + let r542 = [R 733] in + let r543 = S (T T_UNDERSCORE) :: r404 in + let r544 = [R 1092] in + let r545 = Sub (r543) :: r544 in + let r546 = [R 792] in + let r547 = Sub (r545) :: r546 in + let r548 = R 500 :: r547 in + let r549 = [R 1104] in + let r550 = [R 886] in + let r551 = S (T T_DOTDOT) :: r550 in + let r552 = S (T T_COMMA) :: r551 in + let r553 = S (N N_pattern) :: r552 in + let r554 = [R 1012] in + let r555 = S (T T_RPAREN) :: r554 in + let r556 = [R 887] in + let r557 = S (T T_DOTDOT) :: r556 in + let r558 = S (T T_COMMA) :: r557 in + let r559 = [R 1006] in + let r560 = S (T T_RBRACE) :: r559 in + let r561 = [R 1103] in + let r562 = [R 1000] in + let r563 = [R 405] in + let r564 = [R 406] in + let r565 = S (T T_RPAREN) :: r564 in + let r566 = Sub (r34) :: r565 in + let r567 = S (T T_COLON) :: r566 in + let r568 = [R 404] in + let r569 = S (T T_INT) :: r507 in + let r570 = Sub (r569) :: r562 in + let r571 = [R 1100] in + let r572 = Sub (r570) :: r571 in + let r573 = [R 1106] in + let r574 = S (T T_RBRACKET) :: r573 in + let r575 = S (T T_LBRACKET) :: r574 in + let r576 = [R 1107] in + let r577 = [R 786] in + let r578 = S (N N_pattern) :: r577 in + let r579 = R 500 :: r578 in + let r580 = [R 791] in + let r581 = [R 885] in + let r582 = [R 397] in + let r583 = [R 398] in + let r584 = S (T T_RPAREN) :: r583 in + let r585 = Sub (r34) :: r584 in + let r586 = S (T T_COLON) :: r585 in + let r587 = [R 396] in + let r588 = [R 135] in + let r589 = [R 780] in + let r590 = [R 788] in + let r591 = [R 629] in + let r592 = S (T T_LIDENT) :: r591 in + let r593 = [R 644] in + let r594 = Sub (r592) :: r593 in + let r595 = [R 631] in + let r596 = Sub (r594) :: r595 in + let r597 = [R 789] in + let r598 = Sub (r545) :: r597 in + let r599 = S (T T_RPAREN) :: r598 in + let r600 = [R 630] in + let r601 = S (T T_RPAREN) :: r600 in + let r602 = Sub (r79) :: r601 in + let r603 = S (T T_COLON) :: r602 in + let r604 = [R 790] in + let r605 = Sub (r545) :: r604 in + let r606 = S (T T_RPAREN) :: r605 in + let r607 = [R 401] in + let r608 = [R 402] in + let r609 = S (T T_RPAREN) :: r608 in + let r610 = Sub (r34) :: r609 in + let r611 = S (T T_COLON) :: r610 in + let r612 = [R 400] in + let r613 = [R 1110] in + let r614 = S (T T_RPAREN) :: r613 in + let r615 = [R 784] in + let r616 = [R 783] in + let r617 = [R 133] in + let r618 = S (T T_RPAREN) :: r617 in + let r619 = [R 1108] in + let r620 = [R 528] in + let r621 = [R 1008] in + let r622 = [R 1010] in + let r623 = [R 913] in + let r624 = [R 531] in let r625 = Sub (r3) :: r624 in - let r626 = R 507 :: r625 in - let r627 = [R 323] in - let r628 = [R 289] in - let r629 = [R 291] in - let r630 = Sub (r195) :: r629 in - let r631 = R 507 :: r630 in - let r632 = [R 859] in - let r633 = [R 860] in - let r634 = S (T T_RPAREN) :: r633 in - let r635 = Sub (r206) :: r634 in - let r636 = [R 857] in - let r637 = Sub (r195) :: r636 in - let r638 = R 507 :: r637 in - let r639 = [R 909] in - let r640 = [R 404] in - let r641 = Sub (r533) :: r640 in - let r642 = [R 329] in - let r643 = Sub (r641) :: r642 in - let r644 = [R 893] in - let r645 = Sub (r643) :: r644 in - let r646 = [R 330] in - let r647 = Sub (r645) :: r646 in - let r648 = [R 175] in - let r649 = Sub (r1) :: r648 in - let r650 = [R 173] in - let r651 = Sub (r649) :: r650 in - let r652 = S (T T_MINUSGREATER) :: r651 in - let r653 = R 747 :: r652 in - let r654 = Sub (r647) :: r653 in - let r655 = R 507 :: r654 in - let r656 = [R 399] in - let r657 = [R 378] in - let r658 = S (T T_LIDENT) :: r657 in - let r659 = [R 397] in - let r660 = S (T T_RPAREN) :: r659 in - let r661 = [R 380] in - let r662 = [R 382] in - let r663 = Sub (r34) :: r662 in - let r664 = [R 26] in - let r665 = Sub (r262) :: r664 in - let r666 = [R 398] in - let r667 = S (T T_RPAREN) :: r666 in - let r668 = [R 393] in - let r669 = [R 391] in - let r670 = S (T T_RPAREN) :: r669 in - let r671 = R 736 :: r670 in - let r672 = [R 392] in - let r673 = S (T T_RPAREN) :: r672 in - let r674 = R 736 :: r673 in - let r675 = [R 737] in - let r676 = [R 492] in - let r677 = Sub (r24) :: r676 in - let r678 = [R 495] in - let r679 = Sub (r677) :: r678 in - let r680 = [R 285] in - let r681 = Sub (r3) :: r680 in - let r682 = S (T T_IN) :: r681 in - let r683 = [R 889] in - let r684 = S (T T_DOTDOT) :: r683 in - let r685 = S (T T_COMMA) :: r684 in - let r686 = [R 890] in - let r687 = S (T T_DOTDOT) :: r686 in - let r688 = S (T T_COMMA) :: r687 in - let r689 = S (T T_RPAREN) :: r688 in - let r690 = Sub (r34) :: r689 in - let r691 = S (T T_COLON) :: r690 in - let r692 = [R 449] in - let r693 = [R 450] in - let r694 = S (T T_RPAREN) :: r693 in - let r695 = Sub (r34) :: r694 in - let r696 = S (T T_COLON) :: r695 in - let r697 = [R 448] in - let r698 = [R 793] in - let r699 = [R 886] in - let r700 = [R 433] in - let r701 = [R 434] in - let r702 = S (T T_RPAREN) :: r701 in - let r703 = Sub (r34) :: r702 in - let r704 = S (T T_COLON) :: r703 in - let r705 = [R 432] in - let r706 = [R 445] in - let r707 = [R 446] in - let r708 = S (T T_RPAREN) :: r707 in - let r709 = Sub (r34) :: r708 in - let r710 = S (T T_COLON) :: r709 in - let r711 = [R 444] in - let r712 = [R 888] in - let r713 = S (T T_DOTDOT) :: r712 in - let r714 = S (T T_COMMA) :: r713 in - let r715 = [R 441] in - let r716 = [R 442] in - let r717 = S (T T_RPAREN) :: r716 in - let r718 = Sub (r34) :: r717 in - let r719 = S (T T_COLON) :: r718 in - let r720 = [R 440] in - let r721 = [R 800] in - let r722 = S (T T_UNDERSCORE) :: r721 in - let r723 = [R 396] in - let r724 = [R 394] in - let r725 = S (T T_RPAREN) :: r724 in - let r726 = R 736 :: r725 in - let r727 = S (T T_ATAT) :: r665 in - let r728 = [R 489] in - let r729 = Sub (r727) :: r728 in - let r730 = Sub (r34) :: r729 in - let r731 = [R 488] in - let r732 = [R 490] in - let r733 = [R 483] in - let r734 = [R 479] in - let r735 = [R 481] in - let r736 = Sub (r34) :: r735 in - let r737 = [R 395] in - let r738 = S (T T_RPAREN) :: r737 in - let r739 = R 736 :: r738 in - let r740 = [R 327] in - let r741 = S (T T_RPAREN) :: r740 in - let r742 = [R 328] in - let r743 = S (T T_RPAREN) :: r742 in - let r744 = [R 410] in - let r745 = S (T T_RPAREN) :: r744 in - let r746 = Sub (r34) :: r745 in - let r747 = [R 484] in - let r748 = S (N N_pattern) :: r747 in - let r749 = [R 405] in - let r750 = S (T T_RPAREN) :: r749 in - let r751 = [R 485] in - let r752 = [R 486] in - let r753 = Sub (r34) :: r752 in - let r754 = [R 407] in - let r755 = [R 406] in - let r756 = [R 400] in - let r757 = [R 408] in - let r758 = S (T T_RPAREN) :: r757 in - let r759 = Sub (r34) :: r758 in - let r760 = [R 403] in - let r761 = S (T T_RPAREN) :: r760 in - let r762 = Sub (r727) :: r731 in - let r763 = [R 409] in - let r764 = S (T T_RPAREN) :: r763 in - let r765 = Sub (r34) :: r764 in - let r766 = [R 402] in - let r767 = [R 401] in - let r768 = [R 1155] in - let r769 = Sub (r3) :: r768 in - let r770 = [R 179] in - let r771 = Sub (r3) :: r770 in - let r772 = S (T T_IN) :: r771 in - let r773 = S (N N_module_expr) :: r772 in - let r774 = R 507 :: r773 in - let r775 = R 162 :: r774 in - let r776 = [R 452] in - let r777 = Sub (r24) :: r776 in - let r778 = [R 472] in - let r779 = R 513 :: r778 in - let r780 = Sub (r777) :: r779 in - let r781 = R 819 :: r780 in - let r782 = R 507 :: r781 in - let r783 = R 162 :: r782 in - let r784 = [R 180] in - let r785 = Sub (r3) :: r784 in - let r786 = S (T T_IN) :: r785 in - let r787 = S (N N_module_expr) :: r786 in - let r788 = R 507 :: r787 in - let r789 = [R 753] in + let r626 = S (T T_MINUSGREATER) :: r625 in + let r627 = [R 183] in + let r628 = S (N N_fun_expr) :: r627 in + let r629 = S (T T_WITH) :: r628 in + let r630 = Sub (r3) :: r629 in + let r631 = R 500 :: r630 in + let r632 = [R 325] in + let r633 = [R 181] in + let r634 = Sub (r208) :: r633 in + let r635 = S (T T_WITH) :: r634 in + let r636 = Sub (r3) :: r635 in + let r637 = R 500 :: r636 in + let r638 = [R 323] in + let r639 = [R 289] in + let r640 = [R 291] in + let r641 = Sub (r208) :: r640 in + let r642 = R 500 :: r641 in + let r643 = [R 864] in + let r644 = [R 865] in + let r645 = S (T T_RPAREN) :: r644 in + let r646 = Sub (r219) :: r645 in + let r647 = [R 862] in + let r648 = Sub (r208) :: r647 in + let r649 = R 500 :: r648 in + let r650 = [R 914] in + let r651 = [R 1093] in + let r652 = Sub (r545) :: r651 in + let r653 = [R 394] in + let r654 = Sub (r652) :: r653 in + let r655 = [R 329] in + let r656 = Sub (r654) :: r655 in + let r657 = [R 898] in + let r658 = Sub (r656) :: r657 in + let r659 = [R 330] in + let r660 = Sub (r658) :: r659 in + let r661 = [R 175] in + let r662 = Sub (r1) :: r661 in + let r663 = [R 173] in + let r664 = Sub (r662) :: r663 in + let r665 = S (T T_MINUSGREATER) :: r664 in + let r666 = R 742 :: r665 in + let r667 = Sub (r660) :: r666 in + let r668 = R 500 :: r667 in + let r669 = [R 392] in + let r670 = [R 378] in + let r671 = R 743 :: r670 in + let r672 = S (T T_LIDENT) :: r671 in + let r673 = [R 391] in + let r674 = S (T T_RPAREN) :: r673 in + let r675 = [R 747] in + let r676 = [R 812] in + let r677 = Sub (r34) :: r676 in + let r678 = S (T T_DOT) :: r677 in + let r679 = [R 379] in + let r680 = R 743 :: r679 in + let r681 = [R 388] in + let r682 = [R 387] in + let r683 = S (T T_RPAREN) :: r682 in + let r684 = R 734 :: r683 in + let r685 = [R 735] in + let r686 = [R 485] in + let r687 = Sub (r24) :: r686 in + let r688 = [R 488] in + let r689 = Sub (r687) :: r688 in + let r690 = [R 285] in + let r691 = Sub (r3) :: r690 in + let r692 = S (T T_IN) :: r691 in + let r693 = [R 894] in + let r694 = S (T T_DOTDOT) :: r693 in + let r695 = S (T T_COMMA) :: r694 in + let r696 = [R 895] in + let r697 = S (T T_DOTDOT) :: r696 in + let r698 = S (T T_COMMA) :: r697 in + let r699 = S (T T_RPAREN) :: r698 in + let r700 = Sub (r34) :: r699 in + let r701 = S (T T_COLON) :: r700 in + let r702 = [R 433] in + let r703 = [R 434] in + let r704 = S (T T_RPAREN) :: r703 in + let r705 = Sub (r34) :: r704 in + let r706 = S (T T_COLON) :: r705 in + let r707 = [R 432] in + let r708 = [R 793] in + let r709 = [R 891] in + let r710 = [R 417] in + let r711 = [R 418] in + let r712 = S (T T_RPAREN) :: r711 in + let r713 = Sub (r34) :: r712 in + let r714 = S (T T_COLON) :: r713 in + let r715 = [R 416] in + let r716 = [R 429] in + let r717 = [R 430] in + let r718 = S (T T_RPAREN) :: r717 in + let r719 = Sub (r34) :: r718 in + let r720 = S (T T_COLON) :: r719 in + let r721 = [R 428] in + let r722 = [R 893] in + let r723 = S (T T_DOTDOT) :: r722 in + let r724 = S (T T_COMMA) :: r723 in + let r725 = [R 425] in + let r726 = [R 426] in + let r727 = S (T T_RPAREN) :: r726 in + let r728 = Sub (r34) :: r727 in + let r729 = S (T T_COLON) :: r728 in + let r730 = [R 424] in + let r731 = [R 800] in + let r732 = S (T T_UNDERSCORE) :: r731 in + let r733 = [R 390] in + let r734 = [R 389] in + let r735 = S (T T_RPAREN) :: r734 in + let r736 = R 734 :: r735 in + let r737 = [R 482] in + let r738 = [R 483] in + let r739 = R 743 :: r738 in + let r740 = S (T T_LOCAL) :: r57 in + let r741 = [R 801] in + let r742 = R 743 :: r741 in + let r743 = S (N N_pattern) :: r742 in + let r744 = Sub (r740) :: r743 in + let r745 = [R 1094] in + let r746 = S (T T_RPAREN) :: r745 in + let r747 = Sub (r744) :: r746 in + let r748 = [R 327] in + let r749 = S (T T_RPAREN) :: r748 in + let r750 = [R 328] in + let r751 = S (T T_RPAREN) :: r750 in + let r752 = S (T T_AT) :: r277 in + let r753 = [R 804] in + let r754 = [R 802] in + let r755 = Sub (r752) :: r754 in + let r756 = [R 805] in + let r757 = Sub (r34) :: r756 in + let r758 = [R 393] in + let r759 = [R 1166] in + let r760 = Sub (r3) :: r759 in + let r761 = [R 179] in + let r762 = Sub (r3) :: r761 in + let r763 = S (T T_IN) :: r762 in + let r764 = S (N N_module_expr) :: r763 in + let r765 = R 500 :: r764 in + let r766 = R 162 :: r765 in + let r767 = [R 436] in + let r768 = Sub (r24) :: r767 in + let r769 = [R 477] in + let r770 = R 506 :: r769 in + let r771 = Sub (r768) :: r770 in + let r772 = R 824 :: r771 in + let r773 = R 500 :: r772 in + let r774 = R 162 :: r773 in + let r775 = [R 180] in + let r776 = Sub (r3) :: r775 in + let r777 = S (T T_IN) :: r776 in + let r778 = S (N N_module_expr) :: r777 in + let r779 = R 500 :: r778 in + let r780 = [R 753] in + let r781 = S (T T_RPAREN) :: r780 in + let r782 = [R 754] in + let r783 = S (T T_RPAREN) :: r782 in + let r784 = S (N N_fun_expr) :: r783 in + let r785 = [R 756] in + let r786 = S (T T_RPAREN) :: r785 in + let r787 = Sub (r208) :: r786 in + let r788 = R 500 :: r787 in + let r789 = [R 765] in let r790 = S (T T_RPAREN) :: r789 in - let r791 = [R 754] in - let r792 = S (T T_RPAREN) :: r791 in - let r793 = S (N N_fun_expr) :: r792 in - let r794 = [R 756] in - let r795 = S (T T_RPAREN) :: r794 in - let r796 = Sub (r195) :: r795 in - let r797 = R 507 :: r796 in - let r798 = [R 765] in + let r791 = [R 337] in + let r792 = [R 613] in + let r793 = S (T T_RPAREN) :: r792 in + let r794 = [R 599] in + let r795 = Sub (r93) :: r794 in + let r796 = S (T T_MINUSGREATER) :: r795 in + let r797 = S (N N_functor_args) :: r796 in + let r798 = [R 338] in let r799 = S (T T_RPAREN) :: r798 in - let r800 = [R 609] in - let r801 = S (T T_RPAREN) :: r800 in - let r802 = [R 612] in - let r803 = S (N N_module_type) :: r802 in - let r804 = [R 606] in - let r805 = S (N N_module_type) :: r804 in - let r806 = S (T T_MINUSGREATER) :: r805 in - let r807 = S (N N_functor_args) :: r806 in - let r808 = [R 337] in - let r809 = [R 338] in - let r810 = S (T T_RPAREN) :: r809 in - let r811 = S (N N_module_type) :: r810 in - let r812 = [R 620] in - let r813 = [R 1392] in - let r814 = Sub (r32) :: r813 in - let r815 = S (T T_COLONEQUAL) :: r814 in - let r816 = Sub (r486) :: r815 in - let r817 = [R 1391] in - let r818 = R 891 :: r817 in - let r819 = [R 892] in - let r820 = Sub (r34) :: r819 in - let r821 = S (T T_EQUAL) :: r820 in - let r822 = [R 564] in - let r823 = Sub (r60) :: r822 in - let r824 = [R 623] in - let r825 = Sub (r823) :: r824 in - let r826 = [R 1395] in - let r827 = S (N N_module_type) :: r826 in - let r828 = S (T T_EQUAL) :: r827 in - let r829 = Sub (r825) :: r828 in - let r830 = S (T T_TYPE) :: r829 in - let r831 = [R 616] in - let r832 = S (N N_module_type) :: r831 in - let r833 = [R 614] in - let r834 = [R 565] in - let r835 = Sub (r60) :: r834 in - let r836 = [R 1396] in - let r837 = [R 1393] in - let r838 = Sub (r251) :: r837 in - let r839 = S (T T_UIDENT) :: r468 in - let r840 = [R 1394] in - let r841 = S (T T_MODULE) :: r830 in - let r842 = [R 915] in - let r843 = [R 339] in - let r844 = [R 759] in - let r845 = S (T T_RPAREN) :: r844 in - let r846 = [R 762] in + let r800 = Sub (r93) :: r799 in + let r801 = [R 339] in + let r802 = [R 607] in + let r803 = Sub (r93) :: r802 in + let r804 = [R 611] in + let r805 = [R 1403] in + let r806 = Sub (r32) :: r805 in + let r807 = S (T T_COLONEQUAL) :: r806 in + let r808 = Sub (r498) :: r807 in + let r809 = [R 1402] in + let r810 = R 896 :: r809 in + let r811 = [R 897] in + let r812 = Sub (r34) :: r811 in + let r813 = S (T T_EQUAL) :: r812 in + let r814 = [R 557] in + let r815 = Sub (r61) :: r814 in + let r816 = [R 617] in + let r817 = Sub (r815) :: r816 in + let r818 = [R 1406] in + let r819 = Sub (r93) :: r818 in + let r820 = S (T T_EQUAL) :: r819 in + let r821 = Sub (r817) :: r820 in + let r822 = S (T T_TYPE) :: r821 in + let r823 = [R 558] in + let r824 = Sub (r61) :: r823 in + let r825 = [R 601] in + let r826 = Sub (r93) :: r825 in + let r827 = [R 605] in + let r828 = [R 1407] in + let r829 = [R 1404] in + let r830 = Sub (r264) :: r829 in + let r831 = S (T T_UIDENT) :: r480 in + let r832 = [R 1405] in + let r833 = S (T T_MODULE) :: r822 in + let r834 = [R 920] in + let r835 = [R 759] in + let r836 = S (T T_RPAREN) :: r835 in + let r837 = [R 762] in + let r838 = S (T T_RPAREN) :: r837 in + let r839 = [R 1034] in + let r840 = S (T T_END) :: r839 in + let r841 = R 500 :: r840 in + let r842 = [R 201] in + let r843 = Sub (r393) :: r842 in + let r844 = R 500 :: r843 in + let r845 = [R 1043] in + let r846 = [R 1055] in let r847 = S (T T_RPAREN) :: r846 in - let r848 = [R 1025] in - let r849 = S (T T_END) :: r848 in - let r850 = R 507 :: r849 in - let r851 = [R 201] in - let r852 = Sub (r380) :: r851 in - let r853 = R 507 :: r852 in - let r854 = [R 1034] in - let r855 = [R 1046] in - let r856 = S (T T_RPAREN) :: r855 in - let r857 = S (T T_LPAREN) :: r856 in - let r858 = S (T T_DOT) :: r857 in - let r859 = [R 1066] in - let r860 = S (T T_RPAREN) :: r859 in - let r861 = S (N N_module_type) :: r860 in - let r862 = S (T T_COLON) :: r861 in - let r863 = S (N N_module_expr) :: r862 in - let r864 = R 507 :: r863 in - let r865 = [R 590] in - let r866 = S (N N_module_expr) :: r865 in - let r867 = S (T T_MINUSGREATER) :: r866 in - let r868 = S (N N_functor_args) :: r867 in - let r869 = [R 595] in - let r870 = [R 750] in - let r871 = S (T T_RPAREN) :: r870 in - let r872 = [R 751] in - let r873 = [R 752] in - let r874 = [R 493] in - let r875 = Sub (r3) :: r874 in - let r876 = S (T T_EQUAL) :: r875 in - let r877 = [R 861] in - let r878 = S (N N_fun_expr) :: r877 in - let r879 = S (T T_COMMA) :: r878 in - let r880 = [R 1042] in - let r881 = [R 1043] in - let r882 = [R 1018] in - let r883 = S (T T_RPAREN) :: r882 in - let r884 = Sub (r477) :: r883 in - let r885 = S (T T_LPAREN) :: r884 in - let r886 = [R 950] in - let r887 = Sub (r195) :: r886 in - let r888 = R 507 :: r887 in - let r889 = R 162 :: r888 in - let r890 = [R 195] in - let r891 = S (N N_fun_expr) :: r890 in - let r892 = S (T T_THEN) :: r891 in - let r893 = Sub (r3) :: r892 in - let r894 = R 507 :: r893 in - let r895 = [R 965] in - let r896 = Sub (r195) :: r895 in - let r897 = R 507 :: r896 in - let r898 = [R 849] in - let r899 = S (N N_fun_expr) :: r898 in - let r900 = [R 853] in - let r901 = [R 854] in - let r902 = S (T T_RPAREN) :: r901 in - let r903 = Sub (r206) :: r902 in - let r904 = [R 851] in - let r905 = Sub (r195) :: r904 in - let r906 = R 507 :: r905 in - let r907 = [R 1041] in - let r908 = [R 1038] in - let r909 = [R 1015] in - let r910 = S (T T_RPAREN) :: r909 in - let r911 = Sub (r3) :: r910 in - let r912 = S (T T_LPAREN) :: r911 in - let r913 = [R 172] in - let r914 = Sub (r649) :: r913 in - let r915 = S (T T_MINUSGREATER) :: r914 in - let r916 = R 747 :: r915 in - let r917 = Sub (r647) :: r916 in - let r918 = R 507 :: r917 in - let r919 = [R 744] in - let r920 = [R 174] in - let r921 = Sub (r195) :: r920 in - let r922 = R 507 :: r921 in - let r923 = [R 161] in - let r924 = S (T T_DOWNTO) :: r923 in - let r925 = [R 199] in - let r926 = S (T T_DONE) :: r925 in - let r927 = Sub (r3) :: r926 in - let r928 = S (T T_DO) :: r927 in - let r929 = Sub (r3) :: r928 in - let r930 = Sub (r924) :: r929 in - let r931 = Sub (r3) :: r930 in - let r932 = S (T T_EQUAL) :: r931 in - let r933 = S (N N_pattern) :: r932 in - let r934 = R 507 :: r933 in - let r935 = [R 326] in - let r936 = [R 200] in - let r937 = Sub (r380) :: r936 in - let r938 = R 507 :: r937 in - let r939 = [R 202] in - let r940 = [R 204] in - let r941 = Sub (r195) :: r940 in - let r942 = R 507 :: r941 in - let r943 = [R 203] in - let r944 = Sub (r195) :: r943 in - let r945 = R 507 :: r944 in - let r946 = [R 387] in - let r947 = [R 388] in - let r948 = S (T T_RPAREN) :: r947 in - let r949 = Sub (r206) :: r948 in - let r950 = [R 389] in - let r951 = [R 390] in - let r952 = [R 386] in - let r953 = [R 948] in - let r954 = Sub (r195) :: r953 in - let r955 = R 507 :: r954 in - let r956 = R 162 :: r955 in - let r957 = [R 837] in - let r958 = [R 841] in - let r959 = [R 842] in - let r960 = S (T T_RPAREN) :: r959 in - let r961 = Sub (r206) :: r960 in - let r962 = [R 839] in - let r963 = Sub (r195) :: r962 in - let r964 = R 507 :: r963 in - let r965 = [R 840] in - let r966 = [R 838] in - let r967 = Sub (r195) :: r966 in - let r968 = R 507 :: r967 in - let r969 = [R 284] in - let r970 = Sub (r3) :: r969 in - let r971 = [R 254] in - let r972 = [R 256] in - let r973 = Sub (r195) :: r972 in - let r974 = R 507 :: r973 in - let r975 = [R 255] in - let r976 = Sub (r195) :: r975 in - let r977 = R 507 :: r976 in - let r978 = [R 236] in - let r979 = [R 238] in - let r980 = Sub (r195) :: r979 in - let r981 = R 507 :: r980 in - let r982 = [R 237] in - let r983 = Sub (r195) :: r982 in - let r984 = R 507 :: r983 in - let r985 = [R 205] in - let r986 = [R 207] in - let r987 = Sub (r195) :: r986 in - let r988 = R 507 :: r987 in - let r989 = [R 206] in - let r990 = Sub (r195) :: r989 in - let r991 = R 507 :: r990 in - let r992 = [R 334] in - let r993 = Sub (r3) :: r992 in - let r994 = [R 245] in - let r995 = [R 247] in - let r996 = Sub (r195) :: r995 in - let r997 = R 507 :: r996 in - let r998 = [R 246] in - let r999 = Sub (r195) :: r998 in - let r1000 = R 507 :: r999 in - let r1001 = [R 257] in - let r1002 = [R 259] in - let r1003 = Sub (r195) :: r1002 in - let r1004 = R 507 :: r1003 in - let r1005 = [R 258] in - let r1006 = Sub (r195) :: r1005 in - let r1007 = R 507 :: r1006 in - let r1008 = [R 233] in - let r1009 = [R 235] in - let r1010 = Sub (r195) :: r1009 in - let r1011 = R 507 :: r1010 in - let r1012 = [R 234] in - let r1013 = Sub (r195) :: r1012 in - let r1014 = R 507 :: r1013 in - let r1015 = [R 230] in - let r1016 = [R 232] in - let r1017 = Sub (r195) :: r1016 in - let r1018 = R 507 :: r1017 in - let r1019 = [R 231] in - let r1020 = Sub (r195) :: r1019 in - let r1021 = R 507 :: r1020 in - let r1022 = [R 242] in - let r1023 = [R 244] in - let r1024 = Sub (r195) :: r1023 in - let r1025 = R 507 :: r1024 in - let r1026 = [R 243] in - let r1027 = Sub (r195) :: r1026 in - let r1028 = R 507 :: r1027 in - let r1029 = [R 239] in - let r1030 = [R 241] in - let r1031 = Sub (r195) :: r1030 in - let r1032 = R 507 :: r1031 in - let r1033 = [R 240] in - let r1034 = Sub (r195) :: r1033 in - let r1035 = R 507 :: r1034 in - let r1036 = [R 269] in - let r1037 = [R 271] in - let r1038 = Sub (r195) :: r1037 in - let r1039 = R 507 :: r1038 in - let r1040 = [R 270] in - let r1041 = Sub (r195) :: r1040 in - let r1042 = R 507 :: r1041 in - let r1043 = [R 251] in - let r1044 = [R 253] in - let r1045 = Sub (r195) :: r1044 in - let r1046 = R 507 :: r1045 in - let r1047 = [R 252] in - let r1048 = Sub (r195) :: r1047 in - let r1049 = R 507 :: r1048 in - let r1050 = [R 248] in - let r1051 = [R 250] in - let r1052 = Sub (r195) :: r1051 in - let r1053 = R 507 :: r1052 in - let r1054 = [R 249] in - let r1055 = Sub (r195) :: r1054 in - let r1056 = R 507 :: r1055 in - let r1057 = [R 263] in - let r1058 = [R 265] in - let r1059 = Sub (r195) :: r1058 in - let r1060 = R 507 :: r1059 in - let r1061 = [R 264] in - let r1062 = Sub (r195) :: r1061 in - let r1063 = R 507 :: r1062 in - let r1064 = [R 227] in - let r1065 = [R 229] in - let r1066 = Sub (r195) :: r1065 in - let r1067 = R 507 :: r1066 in - let r1068 = [R 228] in - let r1069 = Sub (r195) :: r1068 in - let r1070 = R 507 :: r1069 in - let r1071 = [R 224] in - let r1072 = [R 226] in - let r1073 = Sub (r195) :: r1072 in - let r1074 = R 507 :: r1073 in - let r1075 = [R 225] in - let r1076 = Sub (r195) :: r1075 in - let r1077 = R 507 :: r1076 in - let r1078 = [R 286] in - let r1079 = [R 288] in - let r1080 = Sub (r195) :: r1079 in - let r1081 = R 507 :: r1080 in - let r1082 = [R 287] in - let r1083 = Sub (r195) :: r1082 in - let r1084 = R 507 :: r1083 in - let r1085 = [R 221] in - let r1086 = [R 223] in - let r1087 = Sub (r195) :: r1086 in - let r1088 = R 507 :: r1087 in - let r1089 = [R 222] in - let r1090 = Sub (r195) :: r1089 in - let r1091 = R 507 :: r1090 in - let r1092 = [R 218] in - let r1093 = [R 220] in - let r1094 = Sub (r195) :: r1093 in - let r1095 = R 507 :: r1094 in - let r1096 = [R 219] in - let r1097 = Sub (r195) :: r1096 in - let r1098 = R 507 :: r1097 in - let r1099 = [R 215] in - let r1100 = [R 217] in - let r1101 = Sub (r195) :: r1100 in - let r1102 = R 507 :: r1101 in - let r1103 = [R 216] in - let r1104 = Sub (r195) :: r1103 in - let r1105 = R 507 :: r1104 in - let r1106 = [R 266] in - let r1107 = [R 268] in - let r1108 = Sub (r195) :: r1107 in - let r1109 = R 507 :: r1108 in - let r1110 = [R 267] in - let r1111 = Sub (r195) :: r1110 in - let r1112 = R 507 :: r1111 in - let r1113 = [R 260] in - let r1114 = [R 262] in - let r1115 = Sub (r195) :: r1114 in - let r1116 = R 507 :: r1115 in - let r1117 = [R 261] in - let r1118 = Sub (r195) :: r1117 in - let r1119 = R 507 :: r1118 in - let r1120 = [R 272] in - let r1121 = [R 274] in - let r1122 = Sub (r195) :: r1121 in - let r1123 = R 507 :: r1122 in - let r1124 = [R 273] in - let r1125 = Sub (r195) :: r1124 in - let r1126 = R 507 :: r1125 in - let r1127 = [R 275] in - let r1128 = [R 277] in - let r1129 = Sub (r195) :: r1128 in - let r1130 = R 507 :: r1129 in - let r1131 = [R 276] in - let r1132 = Sub (r195) :: r1131 in - let r1133 = R 507 :: r1132 in - let r1134 = [R 278] in - let r1135 = [R 280] in - let r1136 = Sub (r195) :: r1135 in - let r1137 = R 507 :: r1136 in - let r1138 = [R 279] in - let r1139 = Sub (r195) :: r1138 in - let r1140 = R 507 :: r1139 in - let r1141 = [R 847] in - let r1142 = [R 848] in - let r1143 = S (T T_RPAREN) :: r1142 in - let r1144 = Sub (r206) :: r1143 in - let r1145 = [R 845] in - let r1146 = Sub (r195) :: r1145 in - let r1147 = R 507 :: r1146 in - let r1148 = [R 846] in - let r1149 = [R 844] in - let r1150 = Sub (r195) :: r1149 in - let r1151 = R 507 :: r1150 in - let r1152 = [R 281] in - let r1153 = [R 283] in - let r1154 = Sub (r195) :: r1153 in - let r1155 = R 507 :: r1154 in - let r1156 = [R 282] in - let r1157 = Sub (r195) :: r1156 in - let r1158 = R 507 :: r1157 in - let r1159 = [R 21] in - let r1160 = R 513 :: r1159 in - let r1161 = Sub (r777) :: r1160 in - let r1162 = S (T T_EQUAL) :: r769 in - let r1163 = [R 471] in - let r1164 = Sub (r1162) :: r1163 in - let r1165 = [R 1156] in - let r1166 = Sub (r649) :: r1165 in - let r1167 = S (T T_EQUAL) :: r1166 in - let r1168 = [R 464] in - let r1169 = Sub (r3) :: r1168 in - let r1170 = S (T T_EQUAL) :: r1169 in - let r1171 = Sub (r34) :: r1170 in - let r1172 = S (T T_DOT) :: r1171 in + let r848 = S (T T_LPAREN) :: r847 in + let r849 = S (T T_DOT) :: r848 in + let r850 = [R 1075] in + let r851 = S (T T_RPAREN) :: r850 in + let r852 = Sub (r93) :: r851 in + let r853 = S (T T_COLON) :: r852 in + let r854 = S (N N_module_expr) :: r853 in + let r855 = R 500 :: r854 in + let r856 = [R 583] in + let r857 = S (N N_module_expr) :: r856 in + let r858 = S (T T_MINUSGREATER) :: r857 in + let r859 = S (N N_functor_args) :: r858 in + let r860 = [R 588] in + let r861 = [R 750] in + let r862 = S (T T_RPAREN) :: r861 in + let r863 = [R 751] in + let r864 = [R 752] in + let r865 = [R 486] in + let r866 = Sub (r3) :: r865 in + let r867 = S (T T_EQUAL) :: r866 in + let r868 = [R 866] in + let r869 = S (N N_fun_expr) :: r868 in + let r870 = S (T T_COMMA) :: r869 in + let r871 = [R 1051] in + let r872 = [R 1052] in + let r873 = [R 1027] in + let r874 = S (T T_RPAREN) :: r873 in + let r875 = Sub (r489) :: r874 in + let r876 = S (T T_LPAREN) :: r875 in + let r877 = [R 955] in + let r878 = Sub (r208) :: r877 in + let r879 = R 500 :: r878 in + let r880 = R 162 :: r879 in + let r881 = [R 195] in + let r882 = S (N N_fun_expr) :: r881 in + let r883 = S (T T_THEN) :: r882 in + let r884 = Sub (r3) :: r883 in + let r885 = R 500 :: r884 in + let r886 = [R 970] in + let r887 = Sub (r208) :: r886 in + let r888 = R 500 :: r887 in + let r889 = [R 854] in + let r890 = S (N N_fun_expr) :: r889 in + let r891 = [R 858] in + let r892 = [R 859] in + let r893 = S (T T_RPAREN) :: r892 in + let r894 = Sub (r219) :: r893 in + let r895 = [R 856] in + let r896 = Sub (r208) :: r895 in + let r897 = R 500 :: r896 in + let r898 = [R 1050] in + let r899 = [R 1047] in + let r900 = [R 1024] in + let r901 = S (T T_RPAREN) :: r900 in + let r902 = Sub (r3) :: r901 in + let r903 = S (T T_LPAREN) :: r902 in + let r904 = [R 172] in + let r905 = Sub (r662) :: r904 in + let r906 = S (T T_MINUSGREATER) :: r905 in + let r907 = R 742 :: r906 in + let r908 = Sub (r660) :: r907 in + let r909 = R 500 :: r908 in + let r910 = [R 740] in + let r911 = [R 174] in + let r912 = Sub (r208) :: r911 in + let r913 = R 500 :: r912 in + let r914 = [R 161] in + let r915 = S (T T_DOWNTO) :: r914 in + let r916 = [R 199] in + let r917 = S (T T_DONE) :: r916 in + let r918 = Sub (r3) :: r917 in + let r919 = S (T T_DO) :: r918 in + let r920 = Sub (r3) :: r919 in + let r921 = Sub (r915) :: r920 in + let r922 = Sub (r3) :: r921 in + let r923 = S (T T_EQUAL) :: r922 in + let r924 = S (N N_pattern) :: r923 in + let r925 = R 500 :: r924 in + let r926 = [R 326] in + let r927 = [R 200] in + let r928 = Sub (r393) :: r927 in + let r929 = R 500 :: r928 in + let r930 = [R 202] in + let r931 = [R 204] in + let r932 = Sub (r208) :: r931 in + let r933 = R 500 :: r932 in + let r934 = [R 203] in + let r935 = Sub (r208) :: r934 in + let r936 = R 500 :: r935 in + let r937 = [R 383] in + let r938 = [R 384] in + let r939 = S (T T_RPAREN) :: r938 in + let r940 = Sub (r219) :: r939 in + let r941 = [R 385] in + let r942 = [R 386] in + let r943 = [R 382] in + let r944 = [R 953] in + let r945 = Sub (r208) :: r944 in + let r946 = R 500 :: r945 in + let r947 = R 162 :: r946 in + let r948 = [R 842] in + let r949 = [R 846] in + let r950 = [R 847] in + let r951 = S (T T_RPAREN) :: r950 in + let r952 = Sub (r219) :: r951 in + let r953 = [R 844] in + let r954 = Sub (r208) :: r953 in + let r955 = R 500 :: r954 in + let r956 = [R 845] in + let r957 = [R 843] in + let r958 = Sub (r208) :: r957 in + let r959 = R 500 :: r958 in + let r960 = [R 284] in + let r961 = Sub (r3) :: r960 in + let r962 = [R 254] in + let r963 = [R 256] in + let r964 = Sub (r208) :: r963 in + let r965 = R 500 :: r964 in + let r966 = [R 255] in + let r967 = Sub (r208) :: r966 in + let r968 = R 500 :: r967 in + let r969 = [R 236] in + let r970 = [R 238] in + let r971 = Sub (r208) :: r970 in + let r972 = R 500 :: r971 in + let r973 = [R 237] in + let r974 = Sub (r208) :: r973 in + let r975 = R 500 :: r974 in + let r976 = [R 205] in + let r977 = [R 207] in + let r978 = Sub (r208) :: r977 in + let r979 = R 500 :: r978 in + let r980 = [R 206] in + let r981 = Sub (r208) :: r980 in + let r982 = R 500 :: r981 in + let r983 = [R 334] in + let r984 = Sub (r3) :: r983 in + let r985 = [R 245] in + let r986 = [R 247] in + let r987 = Sub (r208) :: r986 in + let r988 = R 500 :: r987 in + let r989 = [R 246] in + let r990 = Sub (r208) :: r989 in + let r991 = R 500 :: r990 in + let r992 = [R 257] in + let r993 = [R 259] in + let r994 = Sub (r208) :: r993 in + let r995 = R 500 :: r994 in + let r996 = [R 258] in + let r997 = Sub (r208) :: r996 in + let r998 = R 500 :: r997 in + let r999 = [R 233] in + let r1000 = [R 235] in + let r1001 = Sub (r208) :: r1000 in + let r1002 = R 500 :: r1001 in + let r1003 = [R 234] in + let r1004 = Sub (r208) :: r1003 in + let r1005 = R 500 :: r1004 in + let r1006 = [R 230] in + let r1007 = [R 232] in + let r1008 = Sub (r208) :: r1007 in + let r1009 = R 500 :: r1008 in + let r1010 = [R 231] in + let r1011 = Sub (r208) :: r1010 in + let r1012 = R 500 :: r1011 in + let r1013 = [R 242] in + let r1014 = [R 244] in + let r1015 = Sub (r208) :: r1014 in + let r1016 = R 500 :: r1015 in + let r1017 = [R 243] in + let r1018 = Sub (r208) :: r1017 in + let r1019 = R 500 :: r1018 in + let r1020 = [R 239] in + let r1021 = [R 241] in + let r1022 = Sub (r208) :: r1021 in + let r1023 = R 500 :: r1022 in + let r1024 = [R 240] in + let r1025 = Sub (r208) :: r1024 in + let r1026 = R 500 :: r1025 in + let r1027 = [R 269] in + let r1028 = [R 271] in + let r1029 = Sub (r208) :: r1028 in + let r1030 = R 500 :: r1029 in + let r1031 = [R 270] in + let r1032 = Sub (r208) :: r1031 in + let r1033 = R 500 :: r1032 in + let r1034 = [R 251] in + let r1035 = [R 253] in + let r1036 = Sub (r208) :: r1035 in + let r1037 = R 500 :: r1036 in + let r1038 = [R 252] in + let r1039 = Sub (r208) :: r1038 in + let r1040 = R 500 :: r1039 in + let r1041 = [R 248] in + let r1042 = [R 250] in + let r1043 = Sub (r208) :: r1042 in + let r1044 = R 500 :: r1043 in + let r1045 = [R 249] in + let r1046 = Sub (r208) :: r1045 in + let r1047 = R 500 :: r1046 in + let r1048 = [R 263] in + let r1049 = [R 265] in + let r1050 = Sub (r208) :: r1049 in + let r1051 = R 500 :: r1050 in + let r1052 = [R 264] in + let r1053 = Sub (r208) :: r1052 in + let r1054 = R 500 :: r1053 in + let r1055 = [R 227] in + let r1056 = [R 229] in + let r1057 = Sub (r208) :: r1056 in + let r1058 = R 500 :: r1057 in + let r1059 = [R 228] in + let r1060 = Sub (r208) :: r1059 in + let r1061 = R 500 :: r1060 in + let r1062 = [R 224] in + let r1063 = [R 226] in + let r1064 = Sub (r208) :: r1063 in + let r1065 = R 500 :: r1064 in + let r1066 = [R 225] in + let r1067 = Sub (r208) :: r1066 in + let r1068 = R 500 :: r1067 in + let r1069 = [R 286] in + let r1070 = [R 288] in + let r1071 = Sub (r208) :: r1070 in + let r1072 = R 500 :: r1071 in + let r1073 = [R 287] in + let r1074 = Sub (r208) :: r1073 in + let r1075 = R 500 :: r1074 in + let r1076 = [R 221] in + let r1077 = [R 223] in + let r1078 = Sub (r208) :: r1077 in + let r1079 = R 500 :: r1078 in + let r1080 = [R 222] in + let r1081 = Sub (r208) :: r1080 in + let r1082 = R 500 :: r1081 in + let r1083 = [R 218] in + let r1084 = [R 220] in + let r1085 = Sub (r208) :: r1084 in + let r1086 = R 500 :: r1085 in + let r1087 = [R 219] in + let r1088 = Sub (r208) :: r1087 in + let r1089 = R 500 :: r1088 in + let r1090 = [R 215] in + let r1091 = [R 217] in + let r1092 = Sub (r208) :: r1091 in + let r1093 = R 500 :: r1092 in + let r1094 = [R 216] in + let r1095 = Sub (r208) :: r1094 in + let r1096 = R 500 :: r1095 in + let r1097 = [R 266] in + let r1098 = [R 268] in + let r1099 = Sub (r208) :: r1098 in + let r1100 = R 500 :: r1099 in + let r1101 = [R 267] in + let r1102 = Sub (r208) :: r1101 in + let r1103 = R 500 :: r1102 in + let r1104 = [R 260] in + let r1105 = [R 262] in + let r1106 = Sub (r208) :: r1105 in + let r1107 = R 500 :: r1106 in + let r1108 = [R 261] in + let r1109 = Sub (r208) :: r1108 in + let r1110 = R 500 :: r1109 in + let r1111 = [R 272] in + let r1112 = [R 274] in + let r1113 = Sub (r208) :: r1112 in + let r1114 = R 500 :: r1113 in + let r1115 = [R 273] in + let r1116 = Sub (r208) :: r1115 in + let r1117 = R 500 :: r1116 in + let r1118 = [R 275] in + let r1119 = [R 277] in + let r1120 = Sub (r208) :: r1119 in + let r1121 = R 500 :: r1120 in + let r1122 = [R 276] in + let r1123 = Sub (r208) :: r1122 in + let r1124 = R 500 :: r1123 in + let r1125 = [R 278] in + let r1126 = [R 280] in + let r1127 = Sub (r208) :: r1126 in + let r1128 = R 500 :: r1127 in + let r1129 = [R 279] in + let r1130 = Sub (r208) :: r1129 in + let r1131 = R 500 :: r1130 in + let r1132 = [R 852] in + let r1133 = [R 853] in + let r1134 = S (T T_RPAREN) :: r1133 in + let r1135 = Sub (r219) :: r1134 in + let r1136 = [R 850] in + let r1137 = Sub (r208) :: r1136 in + let r1138 = R 500 :: r1137 in + let r1139 = [R 851] in + let r1140 = [R 849] in + let r1141 = Sub (r208) :: r1140 in + let r1142 = R 500 :: r1141 in + let r1143 = [R 281] in + let r1144 = [R 283] in + let r1145 = Sub (r208) :: r1144 in + let r1146 = R 500 :: r1145 in + let r1147 = [R 282] in + let r1148 = Sub (r208) :: r1147 in + let r1149 = R 500 :: r1148 in + let r1150 = [R 21] in + let r1151 = R 506 :: r1150 in + let r1152 = Sub (r768) :: r1151 in + let r1153 = S (T T_EQUAL) :: r760 in + let r1154 = [R 439] in + let r1155 = Sub (r1153) :: r1154 in + let r1156 = [R 458] in + let r1157 = Sub (r3) :: r1156 in + let r1158 = S (T T_EQUAL) :: r1157 in + let r1159 = [R 459] in + let r1160 = Sub (r3) :: r1159 in + let r1161 = [R 454] in + let r1162 = Sub (r3) :: r1161 in + let r1163 = S (T T_EQUAL) :: r1162 in + let r1164 = [R 469] in + let r1165 = Sub (r3) :: r1164 in + let r1166 = S (T T_EQUAL) :: r1165 in + let r1167 = Sub (r34) :: r1166 in + let r1168 = S (T T_DOT) :: r1167 in + let r1169 = [R 472] in + let r1170 = Sub (r3) :: r1169 in + let r1171 = [R 455] in + let r1172 = Sub (r3) :: r1171 in let r1173 = [R 465] in let r1174 = Sub (r3) :: r1173 in - let r1175 = [R 460] in - let r1176 = Sub (r3) :: r1175 in - let r1177 = S (T T_EQUAL) :: r1176 in - let r1178 = Sub (r34) :: r1177 in - let r1179 = [R 461] in + let r1175 = S (T T_EQUAL) :: r1174 in + let r1176 = Sub (r34) :: r1175 in + let r1177 = [R 466] in + let r1178 = Sub (r3) :: r1177 in + let r1179 = [R 456] in let r1180 = Sub (r3) :: r1179 in - let r1181 = [R 454] in - let r1182 = Sub (r3) :: r1181 in - let r1183 = [R 455] in - let r1184 = Sub (r3) :: r1183 in - let r1185 = [R 456] in - let r1186 = Sub (r3) :: r1185 in - let r1187 = [R 468] in - let r1188 = Sub (r3) :: r1187 in - let r1189 = S (T T_EQUAL) :: r1188 in - let r1190 = [R 469] in + let r1181 = S (T T_EQUAL) :: r1180 in + let r1182 = [R 457] in + let r1183 = Sub (r3) :: r1182 in + let r1184 = [R 1167] in + let r1185 = Sub (r662) :: r1184 in + let r1186 = S (T T_EQUAL) :: r1185 in + let r1187 = [R 717] in + let r1188 = [R 713] in + let r1189 = [R 715] in + let r1190 = [R 460] in let r1191 = Sub (r3) :: r1190 in - let r1192 = [R 467] in + let r1192 = [R 444] in let r1193 = Sub (r3) :: r1192 in - let r1194 = [R 466] in - let r1195 = Sub (r3) :: r1194 in - let r1196 = [R 887] in - let r1197 = [R 437] in - let r1198 = [R 438] in - let r1199 = S (T T_RPAREN) :: r1198 in - let r1200 = Sub (r34) :: r1199 in - let r1201 = S (T T_COLON) :: r1200 in - let r1202 = [R 436] in - let r1203 = [R 797] in - let r1204 = [R 796] in + let r1194 = S (T T_EQUAL) :: r1193 in + let r1195 = [R 445] in + let r1196 = Sub (r3) :: r1195 in + let r1197 = [R 440] in + let r1198 = Sub (r3) :: r1197 in + let r1199 = S (T T_EQUAL) :: r1198 in + let r1200 = [R 467] in + let r1201 = Sub (r3) :: r1200 in + let r1202 = S (T T_EQUAL) :: r1201 in + let r1203 = Sub (r34) :: r1202 in + let r1204 = S (T T_DOT) :: r1203 in let r1205 = [R 470] in - let r1206 = Sub (r1162) :: r1205 in - let r1207 = [R 462] in + let r1206 = Sub (r3) :: r1205 in + let r1207 = [R 441] in let r1208 = Sub (r3) :: r1207 in - let r1209 = S (T T_EQUAL) :: r1208 in - let r1210 = Sub (r34) :: r1209 in - let r1211 = [R 463] in - let r1212 = Sub (r3) :: r1211 in - let r1213 = [R 457] in + let r1209 = [R 461] in + let r1210 = Sub (r3) :: r1209 in + let r1211 = S (T T_EQUAL) :: r1210 in + let r1212 = Sub (r34) :: r1211 in + let r1213 = [R 462] in let r1214 = Sub (r3) :: r1213 in - let r1215 = [R 458] in + let r1215 = [R 442] in let r1216 = Sub (r3) :: r1215 in - let r1217 = [R 459] in - let r1218 = Sub (r3) :: r1217 in - let r1219 = [R 514] in - let r1220 = [R 304] in - let r1221 = [R 306] in - let r1222 = Sub (r195) :: r1221 in - let r1223 = R 507 :: r1222 in - let r1224 = [R 305] in - let r1225 = Sub (r195) :: r1224 in - let r1226 = R 507 :: r1225 in - let r1227 = [R 1022] in - let r1228 = S (T T_RBRACKET) :: r1227 in - let r1229 = Sub (r477) :: r1228 in - let r1230 = [R 316] in - let r1231 = [R 318] in - let r1232 = Sub (r195) :: r1231 in - let r1233 = R 507 :: r1232 in - let r1234 = [R 317] in - let r1235 = Sub (r195) :: r1234 in - let r1236 = R 507 :: r1235 in - let r1237 = [R 1020] in - let r1238 = S (T T_RBRACE) :: r1237 in - let r1239 = Sub (r477) :: r1238 in - let r1240 = [R 310] in - let r1241 = [R 312] in - let r1242 = Sub (r195) :: r1241 in - let r1243 = R 507 :: r1242 in - let r1244 = [R 311] in - let r1245 = Sub (r195) :: r1244 in - let r1246 = R 507 :: r1245 in - let r1247 = [R 295] in - let r1248 = [R 297] in - let r1249 = Sub (r195) :: r1248 in - let r1250 = R 507 :: r1249 in - let r1251 = [R 296] in - let r1252 = Sub (r195) :: r1251 in - let r1253 = R 507 :: r1252 in - let r1254 = [R 1017] in - let r1255 = S (T T_RBRACKET) :: r1254 in + let r1217 = S (T T_EQUAL) :: r1216 in + let r1218 = [R 443] in + let r1219 = Sub (r3) :: r1218 in + let r1220 = [R 446] in + let r1221 = Sub (r3) :: r1220 in + let r1222 = [R 475] in + let r1223 = Sub (r3) :: r1222 in + let r1224 = S (T T_EQUAL) :: r1223 in + let r1225 = [R 476] in + let r1226 = Sub (r3) :: r1225 in + let r1227 = [R 474] in + let r1228 = Sub (r3) :: r1227 in + let r1229 = [R 473] in + let r1230 = Sub (r3) :: r1229 in + let r1231 = [R 892] in + let r1232 = [R 421] in + let r1233 = [R 422] in + let r1234 = S (T T_RPAREN) :: r1233 in + let r1235 = Sub (r34) :: r1234 in + let r1236 = S (T T_COLON) :: r1235 in + let r1237 = [R 420] in + let r1238 = [R 797] in + let r1239 = [R 796] in + let r1240 = [R 438] in + let r1241 = Sub (r1153) :: r1240 in + let r1242 = [R 451] in + let r1243 = Sub (r3) :: r1242 in + let r1244 = S (T T_EQUAL) :: r1243 in + let r1245 = [R 452] in + let r1246 = Sub (r3) :: r1245 in + let r1247 = [R 447] in + let r1248 = Sub (r3) :: r1247 in + let r1249 = S (T T_EQUAL) :: r1248 in + let r1250 = [R 468] in + let r1251 = Sub (r3) :: r1250 in + let r1252 = S (T T_EQUAL) :: r1251 in + let r1253 = Sub (r34) :: r1252 in + let r1254 = S (T T_DOT) :: r1253 in + let r1255 = [R 471] in let r1256 = Sub (r3) :: r1255 in - let r1257 = [R 301] in - let r1258 = [R 303] in - let r1259 = Sub (r195) :: r1258 in - let r1260 = R 507 :: r1259 in - let r1261 = [R 302] in - let r1262 = Sub (r195) :: r1261 in - let r1263 = R 507 :: r1262 in - let r1264 = [R 1016] in - let r1265 = S (T T_RBRACE) :: r1264 in + let r1257 = [R 448] in + let r1258 = Sub (r3) :: r1257 in + let r1259 = [R 463] in + let r1260 = Sub (r3) :: r1259 in + let r1261 = S (T T_EQUAL) :: r1260 in + let r1262 = Sub (r34) :: r1261 in + let r1263 = [R 464] in + let r1264 = Sub (r3) :: r1263 in + let r1265 = [R 449] in let r1266 = Sub (r3) :: r1265 in - let r1267 = [R 298] in - let r1268 = [R 300] in - let r1269 = Sub (r195) :: r1268 in - let r1270 = R 507 :: r1269 in - let r1271 = [R 299] in - let r1272 = Sub (r195) :: r1271 in - let r1273 = R 507 :: r1272 in - let r1274 = [R 1019] in - let r1275 = S (T T_RPAREN) :: r1274 in - let r1276 = Sub (r477) :: r1275 in - let r1277 = S (T T_LPAREN) :: r1276 in - let r1278 = [R 307] in - let r1279 = [R 309] in - let r1280 = Sub (r195) :: r1279 in - let r1281 = R 507 :: r1280 in - let r1282 = [R 308] in - let r1283 = Sub (r195) :: r1282 in - let r1284 = R 507 :: r1283 in - let r1285 = [R 1023] in - let r1286 = S (T T_RBRACKET) :: r1285 in - let r1287 = Sub (r477) :: r1286 in - let r1288 = [R 319] in - let r1289 = [R 321] in - let r1290 = Sub (r195) :: r1289 in - let r1291 = R 507 :: r1290 in - let r1292 = [R 320] in - let r1293 = Sub (r195) :: r1292 in - let r1294 = R 507 :: r1293 in - let r1295 = [R 1021] in - let r1296 = S (T T_RBRACE) :: r1295 in - let r1297 = Sub (r477) :: r1296 in - let r1298 = [R 313] in - let r1299 = [R 315] in - let r1300 = Sub (r195) :: r1299 in - let r1301 = R 507 :: r1300 in - let r1302 = [R 314] in - let r1303 = Sub (r195) :: r1302 in - let r1304 = R 507 :: r1303 in - let r1305 = [R 292] in - let r1306 = [R 294] in - let r1307 = Sub (r195) :: r1306 in - let r1308 = R 507 :: r1307 in - let r1309 = [R 293] in - let r1310 = Sub (r195) :: r1309 in - let r1311 = R 507 :: r1310 in - let r1312 = [R 852] in - let r1313 = [R 850] in - let r1314 = Sub (r195) :: r1313 in - let r1315 = R 507 :: r1314 in - let r1316 = [R 197] in - let r1317 = Sub (r195) :: r1316 in - let r1318 = R 507 :: r1317 in - let r1319 = [R 192] in - let r1320 = [R 194] in - let r1321 = Sub (r195) :: r1320 in - let r1322 = R 507 :: r1321 in - let r1323 = [R 193] in - let r1324 = Sub (r195) :: r1323 in - let r1325 = R 507 :: r1324 in - let r1326 = [R 196] in - let r1327 = Sub (r195) :: r1326 in - let r1328 = R 507 :: r1327 in - let r1329 = [R 189] in - let r1330 = [R 191] in - let r1331 = Sub (r195) :: r1330 in - let r1332 = R 507 :: r1331 in - let r1333 = [R 190] in - let r1334 = Sub (r195) :: r1333 in - let r1335 = R 507 :: r1334 in - let r1336 = [R 186] in - let r1337 = [R 188] in - let r1338 = Sub (r195) :: r1337 in - let r1339 = R 507 :: r1338 in - let r1340 = [R 187] in - let r1341 = Sub (r195) :: r1340 in - let r1342 = R 507 :: r1341 in - let r1343 = [R 865] in - let r1344 = [R 866] in - let r1345 = S (T T_RPAREN) :: r1344 in - let r1346 = Sub (r206) :: r1345 in - let r1347 = [R 863] in - let r1348 = Sub (r195) :: r1347 in - let r1349 = R 507 :: r1348 in - let r1350 = [R 864] in - let r1351 = [R 862] in - let r1352 = Sub (r195) :: r1351 in - let r1353 = R 507 :: r1352 in - let r1354 = [R 494] in - let r1355 = Sub (r3) :: r1354 in - let r1356 = [R 496] in - let r1357 = [R 1039] in - let r1358 = [R 1071] in - let r1359 = [R 98] in - let r1360 = [R 100] in - let r1361 = Sub (r195) :: r1360 in - let r1362 = R 507 :: r1361 in - let r1363 = [R 99] in - let r1364 = Sub (r195) :: r1363 in - let r1365 = R 507 :: r1364 in - let r1366 = [R 120] in - let r1367 = S (N N_fun_expr) :: r1366 in - let r1368 = S (T T_IN) :: r1367 in - let r1369 = [R 101] in - let r1370 = Sub (r1368) :: r1369 in - let r1371 = S (N N_pattern) :: r1370 in - let r1372 = R 507 :: r1371 in - let r1373 = [R 912] in - let r1374 = Sub (r1372) :: r1373 in - let r1375 = [R 97] in - let r1376 = [R 913] in - let r1377 = [R 105] in - let r1378 = S (N N_fun_expr) :: r1377 in - let r1379 = S (T T_IN) :: r1378 in - let r1380 = [R 107] in - let r1381 = Sub (r195) :: r1380 in - let r1382 = R 507 :: r1381 in - let r1383 = [R 106] in - let r1384 = Sub (r195) :: r1383 in - let r1385 = R 507 :: r1384 in - let r1386 = [R 108] in - let r1387 = S (N N_fun_expr) :: r1386 in - let r1388 = S (T T_IN) :: r1387 in - let r1389 = [R 110] in - let r1390 = Sub (r195) :: r1389 in - let r1391 = R 507 :: r1390 in - let r1392 = [R 109] in - let r1393 = Sub (r195) :: r1392 in - let r1394 = R 507 :: r1393 in - let r1395 = [R 102] in - let r1396 = S (N N_fun_expr) :: r1395 in - let r1397 = S (T T_IN) :: r1396 in - let r1398 = [R 104] in - let r1399 = Sub (r195) :: r1398 in - let r1400 = R 507 :: r1399 in - let r1401 = [R 103] in - let r1402 = Sub (r195) :: r1401 in - let r1403 = R 507 :: r1402 in - let r1404 = [R 122] in - let r1405 = Sub (r195) :: r1404 in - let r1406 = R 507 :: r1405 in - let r1407 = [R 121] in - let r1408 = Sub (r195) :: r1407 in - let r1409 = R 507 :: r1408 in - let r1410 = [R 111] in - let r1411 = S (N N_fun_expr) :: r1410 in - let r1412 = Sub (r924) :: r1411 in - let r1413 = [R 117] in - let r1414 = S (N N_fun_expr) :: r1413 in - let r1415 = Sub (r924) :: r1414 in - let r1416 = Sub (r195) :: r1415 in - let r1417 = R 507 :: r1416 in - let r1418 = [R 119] in - let r1419 = Sub (r195) :: r1418 in - let r1420 = R 507 :: r1419 in - let r1421 = [R 118] in - let r1422 = Sub (r195) :: r1421 in - let r1423 = R 507 :: r1422 in - let r1424 = [R 114] in - let r1425 = S (N N_fun_expr) :: r1424 in - let r1426 = Sub (r924) :: r1425 in - let r1427 = Sub (r195) :: r1426 in - let r1428 = R 507 :: r1427 in - let r1429 = [R 116] in - let r1430 = Sub (r195) :: r1429 in - let r1431 = R 507 :: r1430 in - let r1432 = [R 115] in - let r1433 = Sub (r195) :: r1432 in - let r1434 = R 507 :: r1433 in - let r1435 = [R 113] in - let r1436 = Sub (r195) :: r1435 in - let r1437 = R 507 :: r1436 in - let r1438 = [R 112] in - let r1439 = Sub (r195) :: r1438 in - let r1440 = R 507 :: r1439 in - let r1441 = [R 1063] in - let r1442 = [R 1062] in - let r1443 = [R 1070] in - let r1444 = [R 1061] in - let r1445 = [R 1053] in - let r1446 = [R 1060] in - let r1447 = [R 1059] in - let r1448 = [R 1052] in - let r1449 = [R 1058] in - let r1450 = [R 1065] in - let r1451 = [R 1057] in - let r1452 = [R 1056] in - let r1453 = [R 1064] in - let r1454 = [R 1055] in - let r1455 = S (T T_LIDENT) :: r483 in - let r1456 = [R 1040] in - let r1457 = S (T T_GREATERRBRACE) :: r1456 in - let r1458 = [R 1049] in - let r1459 = S (T T_RBRACE) :: r1458 in - let r1460 = [R 822] in - let r1461 = Sub (r490) :: r1460 in - let r1462 = [R 1024] in - let r1463 = [R 755] in - let r1464 = S (T T_RPAREN) :: r1463 in - let r1465 = Sub (r195) :: r1464 in - let r1466 = R 507 :: r1465 in - let r1467 = [R 764] in - let r1468 = S (T T_RPAREN) :: r1467 in - let r1469 = [R 758] in - let r1470 = S (T T_RPAREN) :: r1469 in - let r1471 = [R 761] in - let r1472 = S (T T_RPAREN) :: r1471 in - let r1473 = [R 763] in - let r1474 = S (T T_RPAREN) :: r1473 in - let r1475 = [R 757] in - let r1476 = S (T T_RPAREN) :: r1475 in - let r1477 = [R 760] in - let r1478 = S (T T_RPAREN) :: r1477 in - let r1479 = [R 602] in - let r1480 = Sub (r412) :: r1479 in - let r1481 = [R 579] in - let r1482 = S (N N_module_expr) :: r1481 in - let r1483 = S (T T_EQUAL) :: r1482 in - let r1484 = [R 177] in - let r1485 = Sub (r3) :: r1484 in - let r1486 = S (T T_IN) :: r1485 in - let r1487 = Sub (r1483) :: r1486 in - let r1488 = Sub (r1480) :: r1487 in - let r1489 = R 507 :: r1488 in - let r1490 = S (T T_AT) :: r264 in - let r1491 = [R 603] in - let r1492 = S (T T_RPAREN) :: r1491 in - let r1493 = Sub (r1490) :: r1492 in - let r1494 = [R 580] in - let r1495 = S (N N_module_expr) :: r1494 in - let r1496 = S (T T_EQUAL) :: r1495 in - let r1497 = [R 581] in - let r1498 = S (N N_module_expr) :: r1497 in - let r1499 = [R 583] in - let r1500 = [R 582] in - let r1501 = S (N N_module_expr) :: r1500 in - let r1502 = [R 178] in - let r1503 = Sub (r3) :: r1502 in - let r1504 = S (T T_IN) :: r1503 in - let r1505 = R 507 :: r1504 in - let r1506 = R 341 :: r1505 in - let r1507 = Sub (r128) :: r1506 in - let r1508 = R 507 :: r1507 in - let r1509 = [R 137] in - let r1510 = R 742 :: r1509 in - let r1511 = Sub (r26) :: r1510 in - let r1512 = [R 342] in - let r1513 = [R 808] in - let r1514 = Sub (r32) :: r1513 in - let r1515 = [R 373] in - let r1516 = R 507 :: r1515 in - let r1517 = R 742 :: r1516 in - let r1518 = Sub (r1514) :: r1517 in - let r1519 = S (T T_COLON) :: r1518 in - let r1520 = S (T T_LIDENT) :: r1519 in - let r1521 = R 626 :: r1520 in - let r1522 = [R 375] in - let r1523 = Sub (r1521) :: r1522 in - let r1524 = [R 141] in - let r1525 = S (T T_RBRACE) :: r1524 in - let r1526 = [R 374] in - let r1527 = R 507 :: r1526 in - let r1528 = S (T T_SEMI) :: r1527 in - let r1529 = R 507 :: r1528 in - let r1530 = R 742 :: r1529 in - let r1531 = Sub (r1514) :: r1530 in - let r1532 = S (T T_COLON) :: r1531 in - let r1533 = [R 809] in - let r1534 = Sub (r32) :: r1533 in - let r1535 = [R 138] in - let r1536 = R 742 :: r1535 in - let r1537 = [R 139] in - let r1538 = R 742 :: r1537 in - let r1539 = Sub (r26) :: r1538 in - let r1540 = [R 140] in - let r1541 = R 742 :: r1540 in - let r1542 = [R 345] in - let r1543 = [R 940] in - let r1544 = Sub (r78) :: r1543 in - let r1545 = S (T T_COLON) :: r1544 in - let r1546 = [R 939] in - let r1547 = Sub (r78) :: r1546 in - let r1548 = S (T T_COLON) :: r1547 in - let r1549 = [R 346] in - let r1550 = Sub (r26) :: r1549 in - let r1551 = [R 344] in - let r1552 = Sub (r26) :: r1551 in - let r1553 = [R 343] in - let r1554 = Sub (r26) :: r1553 in - let r1555 = [R 858] in - let r1556 = [R 856] in - let r1557 = Sub (r195) :: r1556 in - let r1558 = R 507 :: r1557 in - let r1559 = [R 290] in - let r1560 = Sub (r195) :: r1559 in - let r1561 = R 507 :: r1560 in - let r1562 = [R 185] in - let r1563 = Sub (r195) :: r1562 in - let r1564 = R 507 :: r1563 in - let r1565 = [R 184] in - let r1566 = Sub (r195) :: r1565 in - let r1567 = R 507 :: r1566 in - let r1568 = [R 1009] in - let r1569 = S (T T_GREATERDOT) :: r1568 in - let r1570 = Sub (r195) :: r1569 in - let r1571 = R 507 :: r1570 in - let r1572 = S (T T_COMMA) :: r899 in - let r1573 = Sub (r195) :: r1572 in - let r1574 = R 507 :: r1573 in - let r1575 = [R 731] in - let r1576 = Sub (r195) :: r1575 in - let r1577 = R 507 :: r1576 in - let r1578 = [R 730] in - let r1579 = Sub (r195) :: r1578 in - let r1580 = R 507 :: r1579 in - let r1581 = [R 1035] in - let r1582 = [R 1075] in - let r1583 = [R 1074] in - let r1584 = [R 1073] in - let r1585 = [R 1078] in - let r1586 = [R 1077] in - let r1587 = [R 1050] in - let r1588 = [R 1076] in - let r1589 = [R 1081] in - let r1590 = [R 1080] in - let r1591 = [R 1068] in - let r1592 = [R 1079] in - let r1593 = [R 1027] in - let r1594 = S (T T_RPAREN) :: r1593 in - let r1595 = S (N N_module_expr) :: r1594 in - let r1596 = R 507 :: r1595 in - let r1597 = [R 1028] in - let r1598 = S (T T_RPAREN) :: r1597 in - let r1599 = [R 1013] in - let r1600 = [R 1014] in - let r1601 = [R 519] in - let r1602 = [R 674] in - let r1603 = R 513 :: r1602 in - let r1604 = S (N N_module_expr) :: r1603 in - let r1605 = R 507 :: r1604 in - let r1606 = [R 675] in - let r1607 = R 513 :: r1606 in - let r1608 = S (N N_module_expr) :: r1607 in - let r1609 = R 507 :: r1608 in - let r1610 = [R 1310] in - let r1611 = R 513 :: r1610 in - let r1612 = Sub (r1483) :: r1611 in - let r1613 = Sub (r1480) :: r1612 in - let r1614 = R 507 :: r1613 in - let r1615 = [R 621] in - let r1616 = R 513 :: r1615 in - let r1617 = R 732 :: r1616 in - let r1618 = Sub (r60) :: r1617 in - let r1619 = R 507 :: r1618 in - let r1620 = [R 733] in - let r1621 = [R 1311] in - let r1622 = R 503 :: r1621 in - let r1623 = R 513 :: r1622 in - let r1624 = Sub (r1483) :: r1623 in - let r1625 = [R 504] in - let r1626 = R 503 :: r1625 in - let r1627 = R 513 :: r1626 in - let r1628 = Sub (r1483) :: r1627 in - let r1629 = Sub (r1480) :: r1628 in - let r1630 = [R 361] in - let r1631 = S (T T_RBRACKET) :: r1630 in - let r1632 = Sub (r17) :: r1631 in - let r1633 = [R 804] in - let r1634 = [R 805] in - let r1635 = [R 169] in - let r1636 = S (T T_RBRACKET) :: r1635 in - let r1637 = Sub (r19) :: r1636 in - let r1638 = [R 372] in - let r1639 = Sub (r78) :: r1638 in - let r1640 = S (T T_EQUAL) :: r1639 in - let r1641 = [R 652] in - let r1642 = S (T T_STRING) :: r1641 in - let r1643 = [R 811] in - let r1644 = R 513 :: r1643 in - let r1645 = Sub (r1642) :: r1644 in - let r1646 = S (T T_EQUAL) :: r1645 in - let r1647 = R 742 :: r1646 in - let r1648 = Sub (r36) :: r1647 in - let r1649 = S (T T_COLON) :: r1648 in - let r1650 = Sub (r24) :: r1649 in - let r1651 = R 507 :: r1650 in - let r1652 = [R 807] in - let r1653 = Sub (r34) :: r1652 in - let r1654 = Sub (r126) :: r576 in - let r1655 = [R 1154] in - let r1656 = R 513 :: r1655 in - let r1657 = R 507 :: r1656 in - let r1658 = Sub (r1654) :: r1657 in - let r1659 = S (T T_EQUAL) :: r1658 in - let r1660 = Sub (r128) :: r1659 in - let r1661 = R 507 :: r1660 in - let r1662 = [R 967] in - let r1663 = R 513 :: r1662 in - let r1664 = R 507 :: r1663 in - let r1665 = R 341 :: r1664 in - let r1666 = Sub (r128) :: r1665 in - let r1667 = R 507 :: r1666 in - let r1668 = R 162 :: r1667 in - let r1669 = S (T T_COLONCOLON) :: r607 in - let r1670 = [R 802] in - let r1671 = S (T T_QUOTED_STRING_EXPR) :: r58 in - let r1672 = [R 53] in - let r1673 = Sub (r1671) :: r1672 in - let r1674 = [R 62] in - let r1675 = Sub (r1673) :: r1674 in - let r1676 = S (T T_EQUAL) :: r1675 in - let r1677 = [R 1314] in - let r1678 = R 497 :: r1677 in - let r1679 = R 513 :: r1678 in - let r1680 = Sub (r1676) :: r1679 in - let r1681 = S (T T_LIDENT) :: r1680 in - let r1682 = R 170 :: r1681 in - let r1683 = R 1383 :: r1682 in - let r1684 = R 507 :: r1683 in - let r1685 = [R 81] in - let r1686 = Sub (r1671) :: r1685 in - let r1687 = [R 95] in - let r1688 = R 501 :: r1687 in - let r1689 = R 513 :: r1688 in - let r1690 = Sub (r1686) :: r1689 in - let r1691 = S (T T_EQUAL) :: r1690 in - let r1692 = S (T T_LIDENT) :: r1691 in - let r1693 = R 170 :: r1692 in - let r1694 = R 1383 :: r1693 in - let r1695 = R 507 :: r1694 in - let r1696 = [R 922] in - let r1697 = Sub (r152) :: r1696 in - let r1698 = [R 171] in - let r1699 = S (T T_RBRACKET) :: r1698 in - let r1700 = [R 923] in - let r1701 = [R 82] in - let r1702 = S (T T_END) :: r1701 in - let r1703 = R 522 :: r1702 in - let r1704 = R 72 :: r1703 in - let r1705 = [R 71] in - let r1706 = S (T T_RPAREN) :: r1705 in - let r1707 = [R 74] in - let r1708 = R 513 :: r1707 in - let r1709 = Sub (r34) :: r1708 in - let r1710 = S (T T_COLON) :: r1709 in - let r1711 = S (T T_LIDENT) :: r1710 in - let r1712 = R 629 :: r1711 in - let r1713 = [R 75] in - let r1714 = R 513 :: r1713 in - let r1715 = Sub (r36) :: r1714 in - let r1716 = S (T T_COLON) :: r1715 in - let r1717 = S (T T_LIDENT) :: r1716 in - let r1718 = R 814 :: r1717 in - let r1719 = [R 73] in - let r1720 = R 513 :: r1719 in - let r1721 = Sub (r1686) :: r1720 in - let r1722 = S (T T_UIDENT) :: r189 in - let r1723 = Sub (r1722) :: r469 in - let r1724 = [R 84] in - let r1725 = Sub (r1686) :: r1724 in - let r1726 = S (T T_IN) :: r1725 in - let r1727 = Sub (r1723) :: r1726 in - let r1728 = R 507 :: r1727 in - let r1729 = [R 85] in - let r1730 = Sub (r1686) :: r1729 in - let r1731 = S (T T_IN) :: r1730 in - let r1732 = Sub (r1723) :: r1731 in - let r1733 = [R 918] in - let r1734 = Sub (r34) :: r1733 in - let r1735 = [R 80] in - let r1736 = Sub (r244) :: r1735 in - let r1737 = S (T T_RBRACKET) :: r1736 in - let r1738 = Sub (r1734) :: r1737 in - let r1739 = [R 919] in - let r1740 = [R 136] in - let r1741 = Sub (r34) :: r1740 in + let r1267 = S (T T_EQUAL) :: r1266 in + let r1268 = [R 450] in + let r1269 = Sub (r3) :: r1268 in + let r1270 = [R 453] in + let r1271 = Sub (r3) :: r1270 in + let r1272 = [R 507] in + let r1273 = [R 304] in + let r1274 = [R 306] in + let r1275 = Sub (r208) :: r1274 in + let r1276 = R 500 :: r1275 in + let r1277 = [R 305] in + let r1278 = Sub (r208) :: r1277 in + let r1279 = R 500 :: r1278 in + let r1280 = [R 1031] in + let r1281 = S (T T_RBRACKET) :: r1280 in + let r1282 = Sub (r489) :: r1281 in + let r1283 = [R 316] in + let r1284 = [R 318] in + let r1285 = Sub (r208) :: r1284 in + let r1286 = R 500 :: r1285 in + let r1287 = [R 317] in + let r1288 = Sub (r208) :: r1287 in + let r1289 = R 500 :: r1288 in + let r1290 = [R 1029] in + let r1291 = S (T T_RBRACE) :: r1290 in + let r1292 = Sub (r489) :: r1291 in + let r1293 = [R 310] in + let r1294 = [R 312] in + let r1295 = Sub (r208) :: r1294 in + let r1296 = R 500 :: r1295 in + let r1297 = [R 311] in + let r1298 = Sub (r208) :: r1297 in + let r1299 = R 500 :: r1298 in + let r1300 = [R 295] in + let r1301 = [R 297] in + let r1302 = Sub (r208) :: r1301 in + let r1303 = R 500 :: r1302 in + let r1304 = [R 296] in + let r1305 = Sub (r208) :: r1304 in + let r1306 = R 500 :: r1305 in + let r1307 = [R 1026] in + let r1308 = S (T T_RBRACKET) :: r1307 in + let r1309 = Sub (r3) :: r1308 in + let r1310 = [R 301] in + let r1311 = [R 303] in + let r1312 = Sub (r208) :: r1311 in + let r1313 = R 500 :: r1312 in + let r1314 = [R 302] in + let r1315 = Sub (r208) :: r1314 in + let r1316 = R 500 :: r1315 in + let r1317 = [R 1025] in + let r1318 = S (T T_RBRACE) :: r1317 in + let r1319 = Sub (r3) :: r1318 in + let r1320 = [R 298] in + let r1321 = [R 300] in + let r1322 = Sub (r208) :: r1321 in + let r1323 = R 500 :: r1322 in + let r1324 = [R 299] in + let r1325 = Sub (r208) :: r1324 in + let r1326 = R 500 :: r1325 in + let r1327 = [R 1028] in + let r1328 = S (T T_RPAREN) :: r1327 in + let r1329 = Sub (r489) :: r1328 in + let r1330 = S (T T_LPAREN) :: r1329 in + let r1331 = [R 307] in + let r1332 = [R 309] in + let r1333 = Sub (r208) :: r1332 in + let r1334 = R 500 :: r1333 in + let r1335 = [R 308] in + let r1336 = Sub (r208) :: r1335 in + let r1337 = R 500 :: r1336 in + let r1338 = [R 1032] in + let r1339 = S (T T_RBRACKET) :: r1338 in + let r1340 = Sub (r489) :: r1339 in + let r1341 = [R 319] in + let r1342 = [R 321] in + let r1343 = Sub (r208) :: r1342 in + let r1344 = R 500 :: r1343 in + let r1345 = [R 320] in + let r1346 = Sub (r208) :: r1345 in + let r1347 = R 500 :: r1346 in + let r1348 = [R 1030] in + let r1349 = S (T T_RBRACE) :: r1348 in + let r1350 = Sub (r489) :: r1349 in + let r1351 = [R 313] in + let r1352 = [R 315] in + let r1353 = Sub (r208) :: r1352 in + let r1354 = R 500 :: r1353 in + let r1355 = [R 314] in + let r1356 = Sub (r208) :: r1355 in + let r1357 = R 500 :: r1356 in + let r1358 = [R 292] in + let r1359 = [R 294] in + let r1360 = Sub (r208) :: r1359 in + let r1361 = R 500 :: r1360 in + let r1362 = [R 293] in + let r1363 = Sub (r208) :: r1362 in + let r1364 = R 500 :: r1363 in + let r1365 = [R 857] in + let r1366 = [R 855] in + let r1367 = Sub (r208) :: r1366 in + let r1368 = R 500 :: r1367 in + let r1369 = [R 197] in + let r1370 = Sub (r208) :: r1369 in + let r1371 = R 500 :: r1370 in + let r1372 = [R 192] in + let r1373 = [R 194] in + let r1374 = Sub (r208) :: r1373 in + let r1375 = R 500 :: r1374 in + let r1376 = [R 193] in + let r1377 = Sub (r208) :: r1376 in + let r1378 = R 500 :: r1377 in + let r1379 = [R 196] in + let r1380 = Sub (r208) :: r1379 in + let r1381 = R 500 :: r1380 in + let r1382 = [R 189] in + let r1383 = [R 191] in + let r1384 = Sub (r208) :: r1383 in + let r1385 = R 500 :: r1384 in + let r1386 = [R 190] in + let r1387 = Sub (r208) :: r1386 in + let r1388 = R 500 :: r1387 in + let r1389 = [R 186] in + let r1390 = [R 188] in + let r1391 = Sub (r208) :: r1390 in + let r1392 = R 500 :: r1391 in + let r1393 = [R 187] in + let r1394 = Sub (r208) :: r1393 in + let r1395 = R 500 :: r1394 in + let r1396 = [R 870] in + let r1397 = [R 871] in + let r1398 = S (T T_RPAREN) :: r1397 in + let r1399 = Sub (r219) :: r1398 in + let r1400 = [R 868] in + let r1401 = Sub (r208) :: r1400 in + let r1402 = R 500 :: r1401 in + let r1403 = [R 869] in + let r1404 = [R 867] in + let r1405 = Sub (r208) :: r1404 in + let r1406 = R 500 :: r1405 in + let r1407 = [R 487] in + let r1408 = Sub (r3) :: r1407 in + let r1409 = [R 489] in + let r1410 = [R 1048] in + let r1411 = [R 1080] in + let r1412 = [R 98] in + let r1413 = [R 100] in + let r1414 = Sub (r208) :: r1413 in + let r1415 = R 500 :: r1414 in + let r1416 = [R 99] in + let r1417 = Sub (r208) :: r1416 in + let r1418 = R 500 :: r1417 in + let r1419 = [R 120] in + let r1420 = S (N N_fun_expr) :: r1419 in + let r1421 = S (T T_IN) :: r1420 in + let r1422 = [R 101] in + let r1423 = Sub (r1421) :: r1422 in + let r1424 = S (N N_pattern) :: r1423 in + let r1425 = R 500 :: r1424 in + let r1426 = [R 917] in + let r1427 = Sub (r1425) :: r1426 in + let r1428 = [R 97] in + let r1429 = [R 918] in + let r1430 = [R 105] in + let r1431 = S (N N_fun_expr) :: r1430 in + let r1432 = S (T T_IN) :: r1431 in + let r1433 = [R 107] in + let r1434 = Sub (r208) :: r1433 in + let r1435 = R 500 :: r1434 in + let r1436 = [R 106] in + let r1437 = Sub (r208) :: r1436 in + let r1438 = R 500 :: r1437 in + let r1439 = [R 108] in + let r1440 = S (N N_fun_expr) :: r1439 in + let r1441 = S (T T_IN) :: r1440 in + let r1442 = [R 110] in + let r1443 = Sub (r208) :: r1442 in + let r1444 = R 500 :: r1443 in + let r1445 = [R 109] in + let r1446 = Sub (r208) :: r1445 in + let r1447 = R 500 :: r1446 in + let r1448 = [R 102] in + let r1449 = S (N N_fun_expr) :: r1448 in + let r1450 = S (T T_IN) :: r1449 in + let r1451 = [R 104] in + let r1452 = Sub (r208) :: r1451 in + let r1453 = R 500 :: r1452 in + let r1454 = [R 103] in + let r1455 = Sub (r208) :: r1454 in + let r1456 = R 500 :: r1455 in + let r1457 = [R 122] in + let r1458 = Sub (r208) :: r1457 in + let r1459 = R 500 :: r1458 in + let r1460 = [R 121] in + let r1461 = Sub (r208) :: r1460 in + let r1462 = R 500 :: r1461 in + let r1463 = [R 111] in + let r1464 = S (N N_fun_expr) :: r1463 in + let r1465 = Sub (r915) :: r1464 in + let r1466 = [R 117] in + let r1467 = S (N N_fun_expr) :: r1466 in + let r1468 = Sub (r915) :: r1467 in + let r1469 = Sub (r208) :: r1468 in + let r1470 = R 500 :: r1469 in + let r1471 = [R 119] in + let r1472 = Sub (r208) :: r1471 in + let r1473 = R 500 :: r1472 in + let r1474 = [R 118] in + let r1475 = Sub (r208) :: r1474 in + let r1476 = R 500 :: r1475 in + let r1477 = [R 114] in + let r1478 = S (N N_fun_expr) :: r1477 in + let r1479 = Sub (r915) :: r1478 in + let r1480 = Sub (r208) :: r1479 in + let r1481 = R 500 :: r1480 in + let r1482 = [R 116] in + let r1483 = Sub (r208) :: r1482 in + let r1484 = R 500 :: r1483 in + let r1485 = [R 115] in + let r1486 = Sub (r208) :: r1485 in + let r1487 = R 500 :: r1486 in + let r1488 = [R 113] in + let r1489 = Sub (r208) :: r1488 in + let r1490 = R 500 :: r1489 in + let r1491 = [R 112] in + let r1492 = Sub (r208) :: r1491 in + let r1493 = R 500 :: r1492 in + let r1494 = [R 1072] in + let r1495 = [R 1071] in + let r1496 = [R 1079] in + let r1497 = [R 1070] in + let r1498 = [R 1062] in + let r1499 = [R 1069] in + let r1500 = [R 1068] in + let r1501 = [R 1061] in + let r1502 = [R 1067] in + let r1503 = [R 1074] in + let r1504 = [R 1066] in + let r1505 = [R 1065] in + let r1506 = [R 1073] in + let r1507 = [R 1064] in + let r1508 = S (T T_LIDENT) :: r495 in + let r1509 = [R 1049] in + let r1510 = S (T T_GREATERRBRACE) :: r1509 in + let r1511 = [R 1058] in + let r1512 = S (T T_RBRACE) :: r1511 in + let r1513 = [R 827] in + let r1514 = Sub (r502) :: r1513 in + let r1515 = [R 1033] in + let r1516 = [R 755] in + let r1517 = S (T T_RPAREN) :: r1516 in + let r1518 = Sub (r208) :: r1517 in + let r1519 = R 500 :: r1518 in + let r1520 = [R 764] in + let r1521 = S (T T_RPAREN) :: r1520 in + let r1522 = [R 758] in + let r1523 = S (T T_RPAREN) :: r1522 in + let r1524 = [R 761] in + let r1525 = S (T T_RPAREN) :: r1524 in + let r1526 = [R 763] in + let r1527 = S (T T_RPAREN) :: r1526 in + let r1528 = [R 757] in + let r1529 = S (T T_RPAREN) :: r1528 in + let r1530 = [R 760] in + let r1531 = S (T T_RPAREN) :: r1530 in + let r1532 = [R 593] in + let r1533 = Sub (r424) :: r1532 in + let r1534 = [R 572] in + let r1535 = S (N N_module_expr) :: r1534 in + let r1536 = S (T T_EQUAL) :: r1535 in + let r1537 = [R 177] in + let r1538 = Sub (r3) :: r1537 in + let r1539 = S (T T_IN) :: r1538 in + let r1540 = Sub (r1536) :: r1539 in + let r1541 = Sub (r1533) :: r1540 in + let r1542 = R 500 :: r1541 in + let r1543 = [R 594] in + let r1544 = S (T T_RPAREN) :: r1543 in + let r1545 = Sub (r752) :: r1544 in + let r1546 = [R 573] in + let r1547 = S (N N_module_expr) :: r1546 in + let r1548 = S (T T_EQUAL) :: r1547 in + let r1549 = [R 574] in + let r1550 = S (N N_module_expr) :: r1549 in + let r1551 = [R 576] in + let r1552 = [R 575] in + let r1553 = S (N N_module_expr) :: r1552 in + let r1554 = [R 178] in + let r1555 = Sub (r3) :: r1554 in + let r1556 = S (T T_IN) :: r1555 in + let r1557 = R 500 :: r1556 in + let r1558 = R 341 :: r1557 in + let r1559 = Sub (r147) :: r1558 in + let r1560 = R 500 :: r1559 in + let r1561 = [R 137] in + let r1562 = R 738 :: r1561 in + let r1563 = Sub (r26) :: r1562 in + let r1564 = [R 342] in + let r1565 = [R 813] in + let r1566 = Sub (r32) :: r1565 in + let r1567 = [R 373] in + let r1568 = R 500 :: r1567 in + let r1569 = R 738 :: r1568 in + let r1570 = Sub (r1566) :: r1569 in + let r1571 = S (T T_COLON) :: r1570 in + let r1572 = S (T T_LIDENT) :: r1571 in + let r1573 = R 620 :: r1572 in + let r1574 = [R 375] in + let r1575 = Sub (r1573) :: r1574 in + let r1576 = [R 141] in + let r1577 = S (T T_RBRACE) :: r1576 in + let r1578 = [R 374] in + let r1579 = R 500 :: r1578 in + let r1580 = S (T T_SEMI) :: r1579 in + let r1581 = R 500 :: r1580 in + let r1582 = R 738 :: r1581 in + let r1583 = Sub (r1566) :: r1582 in + let r1584 = S (T T_COLON) :: r1583 in + let r1585 = [R 814] in + let r1586 = Sub (r32) :: r1585 in + let r1587 = [R 138] in + let r1588 = R 738 :: r1587 in + let r1589 = [R 139] in + let r1590 = R 738 :: r1589 in + let r1591 = Sub (r26) :: r1590 in + let r1592 = [R 140] in + let r1593 = R 738 :: r1592 in + let r1594 = [R 345] in + let r1595 = [R 346] in + let r1596 = Sub (r26) :: r1595 in + let r1597 = [R 344] in + let r1598 = Sub (r26) :: r1597 in + let r1599 = [R 343] in + let r1600 = Sub (r26) :: r1599 in + let r1601 = [R 863] in + let r1602 = [R 861] in + let r1603 = Sub (r208) :: r1602 in + let r1604 = R 500 :: r1603 in + let r1605 = [R 290] in + let r1606 = Sub (r208) :: r1605 in + let r1607 = R 500 :: r1606 in + let r1608 = [R 185] in + let r1609 = Sub (r208) :: r1608 in + let r1610 = R 500 :: r1609 in + let r1611 = [R 184] in + let r1612 = Sub (r208) :: r1611 in + let r1613 = R 500 :: r1612 in + let r1614 = [R 1014] in + let r1615 = S (T T_GREATERDOT) :: r1614 in + let r1616 = Sub (r208) :: r1615 in + let r1617 = R 500 :: r1616 in + let r1618 = S (T T_COMMA) :: r890 in + let r1619 = Sub (r208) :: r1618 in + let r1620 = R 500 :: r1619 in + let r1621 = [R 729] in + let r1622 = Sub (r208) :: r1621 in + let r1623 = R 500 :: r1622 in + let r1624 = [R 728] in + let r1625 = Sub (r208) :: r1624 in + let r1626 = R 500 :: r1625 in + let r1627 = [R 1044] in + let r1628 = [R 1084] in + let r1629 = [R 1083] in + let r1630 = [R 1082] in + let r1631 = [R 1087] in + let r1632 = [R 1086] in + let r1633 = [R 1059] in + let r1634 = [R 1085] in + let r1635 = [R 1090] in + let r1636 = [R 1089] in + let r1637 = [R 1077] in + let r1638 = [R 1088] in + let r1639 = [R 1036] in + let r1640 = S (T T_RPAREN) :: r1639 in + let r1641 = S (N N_module_expr) :: r1640 in + let r1642 = R 500 :: r1641 in + let r1643 = [R 1037] in + let r1644 = S (T T_RPAREN) :: r1643 in + let r1645 = [R 1022] in + let r1646 = S (T T_RPAREN) :: r1645 in + let r1647 = [R 1023] in + let r1648 = [R 1018] in + let r1649 = S (T T_RPAREN) :: r1648 in + let r1650 = [R 1019] in + let r1651 = [R 1020] in + let r1652 = S (T T_RPAREN) :: r1651 in + let r1653 = [R 1021] in + let r1654 = [R 512] in + let r1655 = [R 668] in + let r1656 = R 506 :: r1655 in + let r1657 = S (N N_module_expr) :: r1656 in + let r1658 = R 500 :: r1657 in + let r1659 = [R 669] in + let r1660 = R 506 :: r1659 in + let r1661 = S (N N_module_expr) :: r1660 in + let r1662 = R 500 :: r1661 in + let r1663 = [R 1321] in + let r1664 = R 506 :: r1663 in + let r1665 = Sub (r1536) :: r1664 in + let r1666 = Sub (r1533) :: r1665 in + let r1667 = R 500 :: r1666 in + let r1668 = [R 615] in + let r1669 = R 506 :: r1668 in + let r1670 = R 730 :: r1669 in + let r1671 = Sub (r61) :: r1670 in + let r1672 = R 500 :: r1671 in + let r1673 = [R 731] in + let r1674 = [R 1322] in + let r1675 = R 496 :: r1674 in + let r1676 = R 506 :: r1675 in + let r1677 = Sub (r1536) :: r1676 in + let r1678 = [R 497] in + let r1679 = R 496 :: r1678 in + let r1680 = R 506 :: r1679 in + let r1681 = Sub (r1536) :: r1680 in + let r1682 = Sub (r1533) :: r1681 in + let r1683 = [R 361] in + let r1684 = S (T T_RBRACKET) :: r1683 in + let r1685 = Sub (r17) :: r1684 in + let r1686 = [R 809] in + let r1687 = [R 810] in + let r1688 = [R 169] in + let r1689 = S (T T_RBRACKET) :: r1688 in + let r1690 = Sub (r19) :: r1689 in + let r1691 = [R 372] in + let r1692 = Sub (r79) :: r1691 in + let r1693 = S (T T_EQUAL) :: r1692 in + let r1694 = [R 646] in + let r1695 = S (T T_STRING) :: r1694 in + let r1696 = [R 816] in + let r1697 = R 506 :: r1696 in + let r1698 = Sub (r1695) :: r1697 in + let r1699 = S (T T_EQUAL) :: r1698 in + let r1700 = R 738 :: r1699 in + let r1701 = Sub (r36) :: r1700 in + let r1702 = S (T T_COLON) :: r1701 in + let r1703 = Sub (r24) :: r1702 in + let r1704 = R 500 :: r1703 in + let r1705 = Sub (r145) :: r588 in + let r1706 = [R 1165] in + let r1707 = R 506 :: r1706 in + let r1708 = R 500 :: r1707 in + let r1709 = Sub (r1705) :: r1708 in + let r1710 = S (T T_EQUAL) :: r1709 in + let r1711 = Sub (r147) :: r1710 in + let r1712 = R 500 :: r1711 in + let r1713 = [R 972] in + let r1714 = R 506 :: r1713 in + let r1715 = R 500 :: r1714 in + let r1716 = R 341 :: r1715 in + let r1717 = Sub (r147) :: r1716 in + let r1718 = R 500 :: r1717 in + let r1719 = R 162 :: r1718 in + let r1720 = S (T T_COLONCOLON) :: r618 in + let r1721 = [R 807] in + let r1722 = S (T T_QUOTED_STRING_EXPR) :: r59 in + let r1723 = [R 53] in + let r1724 = Sub (r1722) :: r1723 in + let r1725 = [R 62] in + let r1726 = Sub (r1724) :: r1725 in + let r1727 = S (T T_EQUAL) :: r1726 in + let r1728 = [R 1325] in + let r1729 = R 490 :: r1728 in + let r1730 = R 506 :: r1729 in + let r1731 = Sub (r1727) :: r1730 in + let r1732 = S (T T_LIDENT) :: r1731 in + let r1733 = R 170 :: r1732 in + let r1734 = R 1394 :: r1733 in + let r1735 = R 500 :: r1734 in + let r1736 = [R 81] in + let r1737 = Sub (r1722) :: r1736 in + let r1738 = [R 95] in + let r1739 = R 494 :: r1738 in + let r1740 = R 506 :: r1739 in + let r1741 = Sub (r1737) :: r1740 in let r1742 = S (T T_EQUAL) :: r1741 in - let r1743 = Sub (r34) :: r1742 in - let r1744 = [R 76] in - let r1745 = R 513 :: r1744 in - let r1746 = Sub (r1743) :: r1745 in - let r1747 = [R 77] in - let r1748 = [R 523] in - let r1749 = [R 502] in - let r1750 = R 501 :: r1749 in - let r1751 = R 513 :: r1750 in - let r1752 = Sub (r1686) :: r1751 in - let r1753 = S (T T_EQUAL) :: r1752 in - let r1754 = S (T T_LIDENT) :: r1753 in - let r1755 = R 170 :: r1754 in - let r1756 = R 1383 :: r1755 in - let r1757 = [R 90] in - let r1758 = S (T T_END) :: r1757 in - let r1759 = R 524 :: r1758 in - let r1760 = R 70 :: r1759 in - let r1761 = [R 1374] in - let r1762 = Sub (r3) :: r1761 in - let r1763 = S (T T_EQUAL) :: r1762 in - let r1764 = S (T T_LIDENT) :: r1763 in - let r1765 = R 624 :: r1764 in - let r1766 = R 507 :: r1765 in - let r1767 = [R 56] in - let r1768 = R 513 :: r1767 in - let r1769 = [R 1375] in - let r1770 = Sub (r3) :: r1769 in - let r1771 = S (T T_EQUAL) :: r1770 in - let r1772 = S (T T_LIDENT) :: r1771 in - let r1773 = R 624 :: r1772 in - let r1774 = [R 1377] in - let r1775 = Sub (r3) :: r1774 in - let r1776 = [R 1373] in - let r1777 = Sub (r34) :: r1776 in - let r1778 = S (T T_COLON) :: r1777 in - let r1779 = [R 1376] in - let r1780 = Sub (r3) :: r1779 in - let r1781 = [R 548] in - let r1782 = Sub (r1162) :: r1781 in - let r1783 = S (T T_LIDENT) :: r1782 in - let r1784 = R 812 :: r1783 in - let r1785 = R 507 :: r1784 in - let r1786 = [R 57] in - let r1787 = R 513 :: r1786 in - let r1788 = [R 549] in - let r1789 = Sub (r1162) :: r1788 in - let r1790 = S (T T_LIDENT) :: r1789 in - let r1791 = R 812 :: r1790 in - let r1792 = [R 551] in - let r1793 = Sub (r3) :: r1792 in - let r1794 = S (T T_EQUAL) :: r1793 in - let r1795 = [R 553] in - let r1796 = Sub (r3) :: r1795 in - let r1797 = S (T T_EQUAL) :: r1796 in - let r1798 = Sub (r34) :: r1797 in - let r1799 = S (T T_DOT) :: r1798 in - let r1800 = [R 547] in - let r1801 = Sub (r36) :: r1800 in - let r1802 = S (T T_COLON) :: r1801 in - let r1803 = [R 550] in - let r1804 = Sub (r3) :: r1803 in - let r1805 = S (T T_EQUAL) :: r1804 in - let r1806 = [R 552] in - let r1807 = Sub (r3) :: r1806 in - let r1808 = S (T T_EQUAL) :: r1807 in - let r1809 = Sub (r34) :: r1808 in - let r1810 = S (T T_DOT) :: r1809 in - let r1811 = [R 59] in - let r1812 = R 513 :: r1811 in + let r1743 = S (T T_LIDENT) :: r1742 in + let r1744 = R 170 :: r1743 in + let r1745 = R 1394 :: r1744 in + let r1746 = R 500 :: r1745 in + let r1747 = [R 927] in + let r1748 = Sub (r171) :: r1747 in + let r1749 = [R 171] in + let r1750 = S (T T_RBRACKET) :: r1749 in + let r1751 = [R 928] in + let r1752 = [R 82] in + let r1753 = S (T T_END) :: r1752 in + let r1754 = R 515 :: r1753 in + let r1755 = R 72 :: r1754 in + let r1756 = [R 71] in + let r1757 = S (T T_RPAREN) :: r1756 in + let r1758 = [R 74] in + let r1759 = R 506 :: r1758 in + let r1760 = Sub (r34) :: r1759 in + let r1761 = S (T T_COLON) :: r1760 in + let r1762 = S (T T_LIDENT) :: r1761 in + let r1763 = R 623 :: r1762 in + let r1764 = [R 75] in + let r1765 = R 506 :: r1764 in + let r1766 = Sub (r36) :: r1765 in + let r1767 = S (T T_COLON) :: r1766 in + let r1768 = S (T T_LIDENT) :: r1767 in + let r1769 = R 819 :: r1768 in + let r1770 = [R 73] in + let r1771 = R 506 :: r1770 in + let r1772 = Sub (r1737) :: r1771 in + let r1773 = S (T T_UIDENT) :: r202 in + let r1774 = Sub (r1773) :: r481 in + let r1775 = [R 84] in + let r1776 = Sub (r1737) :: r1775 in + let r1777 = S (T T_IN) :: r1776 in + let r1778 = Sub (r1774) :: r1777 in + let r1779 = R 500 :: r1778 in + let r1780 = [R 85] in + let r1781 = Sub (r1737) :: r1780 in + let r1782 = S (T T_IN) :: r1781 in + let r1783 = Sub (r1774) :: r1782 in + let r1784 = [R 923] in + let r1785 = Sub (r34) :: r1784 in + let r1786 = [R 80] in + let r1787 = Sub (r257) :: r1786 in + let r1788 = S (T T_RBRACKET) :: r1787 in + let r1789 = Sub (r1785) :: r1788 in + let r1790 = [R 924] in + let r1791 = [R 136] in + let r1792 = Sub (r34) :: r1791 in + let r1793 = S (T T_EQUAL) :: r1792 in + let r1794 = Sub (r34) :: r1793 in + let r1795 = [R 76] in + let r1796 = R 506 :: r1795 in + let r1797 = Sub (r1794) :: r1796 in + let r1798 = [R 77] in + let r1799 = [R 516] in + let r1800 = [R 495] in + let r1801 = R 494 :: r1800 in + let r1802 = R 506 :: r1801 in + let r1803 = Sub (r1737) :: r1802 in + let r1804 = S (T T_EQUAL) :: r1803 in + let r1805 = S (T T_LIDENT) :: r1804 in + let r1806 = R 170 :: r1805 in + let r1807 = R 1394 :: r1806 in + let r1808 = [R 90] in + let r1809 = S (T T_END) :: r1808 in + let r1810 = R 517 :: r1809 in + let r1811 = R 70 :: r1810 in + let r1812 = [R 1385] in let r1813 = Sub (r3) :: r1812 in - let r1814 = [R 54] in - let r1815 = R 513 :: r1814 in - let r1816 = R 724 :: r1815 in - let r1817 = Sub (r1673) :: r1816 in - let r1818 = [R 55] in - let r1819 = R 513 :: r1818 in - let r1820 = R 724 :: r1819 in - let r1821 = Sub (r1673) :: r1820 in - let r1822 = [R 86] in - let r1823 = S (T T_RPAREN) :: r1822 in - let r1824 = [R 49] in - let r1825 = Sub (r1673) :: r1824 in - let r1826 = S (T T_IN) :: r1825 in - let r1827 = Sub (r1723) :: r1826 in - let r1828 = R 507 :: r1827 in - let r1829 = [R 475] in - let r1830 = R 513 :: r1829 in - let r1831 = Sub (r777) :: r1830 in - let r1832 = R 819 :: r1831 in - let r1833 = R 507 :: r1832 in - let r1834 = [R 50] in - let r1835 = Sub (r1673) :: r1834 in - let r1836 = S (T T_IN) :: r1835 in - let r1837 = Sub (r1723) :: r1836 in - let r1838 = [R 88] in - let r1839 = Sub (r462) :: r1838 in - let r1840 = S (T T_RBRACKET) :: r1839 in - let r1841 = [R 65] in - let r1842 = Sub (r1673) :: r1841 in - let r1843 = S (T T_MINUSGREATER) :: r1842 in - let r1844 = Sub (r641) :: r1843 in - let r1845 = [R 47] in - let r1846 = Sub (r1844) :: r1845 in - let r1847 = [R 48] in - let r1848 = Sub (r1673) :: r1847 in - let r1849 = [R 474] in - let r1850 = R 513 :: r1849 in - let r1851 = Sub (r777) :: r1850 in - let r1852 = [R 91] in - let r1853 = Sub (r1686) :: r1852 in - let r1854 = [R 89] in - let r1855 = S (T T_RPAREN) :: r1854 in - let r1856 = [R 93] in - let r1857 = Sub (r1853) :: r1856 in - let r1858 = S (T T_MINUSGREATER) :: r1857 in - let r1859 = Sub (r28) :: r1858 in - let r1860 = [R 94] in - let r1861 = Sub (r1853) :: r1860 in - let r1862 = [R 92] in - let r1863 = Sub (r1853) :: r1862 in - let r1864 = S (T T_MINUSGREATER) :: r1863 in - let r1865 = [R 725] in - let r1866 = [R 58] in - let r1867 = R 513 :: r1866 in - let r1868 = Sub (r1743) :: r1867 in - let r1869 = [R 60] in - let r1870 = [R 525] in - let r1871 = [R 63] in - let r1872 = Sub (r1673) :: r1871 in - let r1873 = S (T T_EQUAL) :: r1872 in - let r1874 = [R 64] in - let r1875 = [R 498] in - let r1876 = R 497 :: r1875 in - let r1877 = R 513 :: r1876 in - let r1878 = Sub (r1676) :: r1877 in - let r1879 = S (T T_LIDENT) :: r1878 in - let r1880 = R 170 :: r1879 in - let r1881 = R 1383 :: r1880 in - let r1882 = [R 521] in - let r1883 = [R 1301] in - let r1884 = [R 1316] in - let r1885 = R 513 :: r1884 in - let r1886 = S (N N_module_expr) :: r1885 in - let r1887 = R 507 :: r1886 in - let r1888 = [R 1306] in - let r1889 = [R 510] in - let r1890 = R 509 :: r1889 in - let r1891 = R 513 :: r1890 in - let r1892 = R 891 :: r1891 in - let r1893 = R 1344 :: r1892 in - let r1894 = R 722 :: r1893 in - let r1895 = S (T T_LIDENT) :: r1894 in - let r1896 = R 1349 :: r1895 in - let r1897 = [R 1299] in - let r1898 = R 518 :: r1897 in - let r1899 = [R 520] in - let r1900 = R 518 :: r1899 in - let r1901 = [R 347] in - let r1902 = R 507 :: r1901 in - let r1903 = R 341 :: r1902 in - let r1904 = Sub (r128) :: r1903 in - let r1905 = [R 166] in - let r1906 = R 507 :: r1905 in - let r1907 = [R 167] in - let r1908 = R 507 :: r1907 in - let r1909 = [R 428] in - let r1910 = [R 425] in - let r1911 = [R 426] in - let r1912 = S (T T_RPAREN) :: r1911 in - let r1913 = Sub (r34) :: r1912 in - let r1914 = S (T T_COLON) :: r1913 in - let r1915 = [R 424] in - let r1916 = [R 69] in - let r1917 = S (T T_RPAREN) :: r1916 in - let r1918 = [R 875] in - let r1919 = Sub (r195) :: r1918 in - let r1920 = R 507 :: r1919 in - let r1921 = [R 876] in - let r1922 = [R 874] in - let r1923 = Sub (r195) :: r1922 in - let r1924 = R 507 :: r1923 in - let r1925 = [R 871] in - let r1926 = [R 872] in - let r1927 = S (T T_RPAREN) :: r1926 in - let r1928 = Sub (r206) :: r1927 in - let r1929 = [R 869] in - let r1930 = Sub (r195) :: r1929 in - let r1931 = R 507 :: r1930 in - let r1932 = [R 870] in - let r1933 = [R 868] in - let r1934 = Sub (r195) :: r1933 in - let r1935 = R 507 :: r1934 in - let r1936 = [R 544] in - let r1937 = R 507 :: r1936 in - let r1938 = Sub (r1514) :: r1937 in - let r1939 = [R 542] in - let r1940 = [R 672] in - let r1941 = [R 1247] in - let r1942 = [R 1249] in - let r1943 = Sub (r28) :: r1942 in - let r1944 = [R 1251] in - let r1945 = [R 665] in - let r1946 = S (T T_RBRACE) :: r1945 in - let r1947 = [R 669] in - let r1948 = S (T T_RBRACE) :: r1947 in - let r1949 = [R 664] in - let r1950 = S (T T_RBRACE) :: r1949 in - let r1951 = [R 668] in - let r1952 = S (T T_RBRACE) :: r1951 in - let r1953 = [R 662] in - let r1954 = [R 663] in - let r1955 = [R 667] in - let r1956 = S (T T_RBRACE) :: r1955 in - let r1957 = [R 671] in - let r1958 = S (T T_RBRACE) :: r1957 in - let r1959 = [R 666] in - let r1960 = S (T T_RBRACE) :: r1959 in - let r1961 = [R 670] in - let r1962 = S (T T_RBRACE) :: r1961 in - let r1963 = [R 350] in - let r1964 = R 513 :: r1963 in - let r1965 = R 891 :: r1964 in - let r1966 = [R 349] in - let r1967 = R 513 :: r1966 in - let r1968 = R 891 :: r1967 in - let r1969 = [R 516] in - let r1970 = [R 676] in - let r1971 = R 513 :: r1970 in - let r1972 = Sub (r251) :: r1971 in - let r1973 = R 507 :: r1972 in - let r1974 = [R 677] in - let r1975 = R 513 :: r1974 in - let r1976 = Sub (r251) :: r1975 in - let r1977 = R 507 :: r1976 in - let r1978 = [R 600] in - let r1979 = Sub (r412) :: r1978 in - let r1980 = [R 584] in - let r1981 = R 742 :: r1980 in - let r1982 = S (N N_module_type) :: r1981 in - let r1983 = S (T T_COLON) :: r1982 in - let r1984 = [R 979] in - let r1985 = R 513 :: r1984 in - let r1986 = Sub (r1983) :: r1985 in - let r1987 = Sub (r1979) :: r1986 in - let r1988 = R 507 :: r1987 in - let r1989 = [R 622] in - let r1990 = R 513 :: r1989 in - let r1991 = S (N N_module_type) :: r1990 in - let r1992 = S (T T_COLONEQUAL) :: r1991 in - let r1993 = Sub (r60) :: r1992 in - let r1994 = R 507 :: r1993 in - let r1995 = [R 604] in - let r1996 = R 513 :: r1995 in - let r1997 = [R 982] in - let r1998 = R 505 :: r1997 in - let r1999 = R 513 :: r1998 in - let r2000 = R 742 :: r1999 in - let r2001 = S (N N_module_type) :: r2000 in - let r2002 = S (T T_COLON) :: r2001 in - let r2003 = [R 506] in - let r2004 = R 505 :: r2003 in - let r2005 = R 513 :: r2004 in - let r2006 = R 742 :: r2005 in - let r2007 = S (N N_module_type) :: r2006 in - let r2008 = S (T T_COLON) :: r2007 in - let r2009 = Sub (r412) :: r2008 in - let r2010 = [R 24] in - let r2011 = Sub (r118) :: r2010 in - let r2012 = S (T T_AT) :: r2011 in - let r2013 = [R 601] in - let r2014 = S (T T_RPAREN) :: r2013 in - let r2015 = Sub (r2012) :: r2014 in - let r2016 = [R 980] in - let r2017 = R 513 :: r2016 in - let r2018 = R 740 :: r2017 in - let r2019 = [R 741] in - let r2020 = [R 586] in - let r2021 = S (N N_module_type) :: r2020 in - let r2022 = S (T T_COLON) :: r2021 in - let r2023 = [R 585] in - let r2024 = [R 588] in - let r2025 = [R 986] in - let r2026 = R 499 :: r2025 in - let r2027 = R 513 :: r2026 in - let r2028 = Sub (r1853) :: r2027 in + let r1814 = S (T T_EQUAL) :: r1813 in + let r1815 = S (T T_LIDENT) :: r1814 in + let r1816 = R 618 :: r1815 in + let r1817 = R 500 :: r1816 in + let r1818 = [R 56] in + let r1819 = R 506 :: r1818 in + let r1820 = [R 1386] in + let r1821 = Sub (r3) :: r1820 in + let r1822 = S (T T_EQUAL) :: r1821 in + let r1823 = S (T T_LIDENT) :: r1822 in + let r1824 = R 618 :: r1823 in + let r1825 = [R 1388] in + let r1826 = Sub (r3) :: r1825 in + let r1827 = [R 1384] in + let r1828 = Sub (r34) :: r1827 in + let r1829 = S (T T_COLON) :: r1828 in + let r1830 = [R 1387] in + let r1831 = Sub (r3) :: r1830 in + let r1832 = [R 541] in + let r1833 = Sub (r1153) :: r1832 in + let r1834 = S (T T_LIDENT) :: r1833 in + let r1835 = R 817 :: r1834 in + let r1836 = R 500 :: r1835 in + let r1837 = [R 57] in + let r1838 = R 506 :: r1837 in + let r1839 = [R 542] in + let r1840 = Sub (r1153) :: r1839 in + let r1841 = S (T T_LIDENT) :: r1840 in + let r1842 = R 817 :: r1841 in + let r1843 = [R 544] in + let r1844 = Sub (r3) :: r1843 in + let r1845 = S (T T_EQUAL) :: r1844 in + let r1846 = [R 546] in + let r1847 = Sub (r3) :: r1846 in + let r1848 = S (T T_EQUAL) :: r1847 in + let r1849 = Sub (r34) :: r1848 in + let r1850 = S (T T_DOT) :: r1849 in + let r1851 = [R 540] in + let r1852 = Sub (r36) :: r1851 in + let r1853 = S (T T_COLON) :: r1852 in + let r1854 = [R 543] in + let r1855 = Sub (r3) :: r1854 in + let r1856 = S (T T_EQUAL) :: r1855 in + let r1857 = [R 545] in + let r1858 = Sub (r3) :: r1857 in + let r1859 = S (T T_EQUAL) :: r1858 in + let r1860 = Sub (r34) :: r1859 in + let r1861 = S (T T_DOT) :: r1860 in + let r1862 = [R 59] in + let r1863 = R 506 :: r1862 in + let r1864 = Sub (r3) :: r1863 in + let r1865 = [R 54] in + let r1866 = R 506 :: r1865 in + let r1867 = R 722 :: r1866 in + let r1868 = Sub (r1724) :: r1867 in + let r1869 = [R 55] in + let r1870 = R 506 :: r1869 in + let r1871 = R 722 :: r1870 in + let r1872 = Sub (r1724) :: r1871 in + let r1873 = [R 86] in + let r1874 = S (T T_RPAREN) :: r1873 in + let r1875 = [R 49] in + let r1876 = Sub (r1724) :: r1875 in + let r1877 = S (T T_IN) :: r1876 in + let r1878 = Sub (r1774) :: r1877 in + let r1879 = R 500 :: r1878 in + let r1880 = [R 480] in + let r1881 = R 506 :: r1880 in + let r1882 = Sub (r768) :: r1881 in + let r1883 = R 824 :: r1882 in + let r1884 = R 500 :: r1883 in + let r1885 = [R 50] in + let r1886 = Sub (r1724) :: r1885 in + let r1887 = S (T T_IN) :: r1886 in + let r1888 = Sub (r1774) :: r1887 in + let r1889 = [R 88] in + let r1890 = Sub (r474) :: r1889 in + let r1891 = S (T T_RBRACKET) :: r1890 in + let r1892 = [R 65] in + let r1893 = Sub (r1724) :: r1892 in + let r1894 = S (T T_MINUSGREATER) :: r1893 in + let r1895 = Sub (r654) :: r1894 in + let r1896 = [R 47] in + let r1897 = Sub (r1895) :: r1896 in + let r1898 = [R 48] in + let r1899 = Sub (r1724) :: r1898 in + let r1900 = [R 479] in + let r1901 = R 506 :: r1900 in + let r1902 = Sub (r768) :: r1901 in + let r1903 = [R 91] in + let r1904 = Sub (r1737) :: r1903 in + let r1905 = [R 89] in + let r1906 = S (T T_RPAREN) :: r1905 in + let r1907 = [R 93] in + let r1908 = Sub (r1904) :: r1907 in + let r1909 = S (T T_MINUSGREATER) :: r1908 in + let r1910 = Sub (r28) :: r1909 in + let r1911 = [R 94] in + let r1912 = Sub (r1904) :: r1911 in + let r1913 = [R 92] in + let r1914 = Sub (r1904) :: r1913 in + let r1915 = S (T T_MINUSGREATER) :: r1914 in + let r1916 = [R 723] in + let r1917 = [R 58] in + let r1918 = R 506 :: r1917 in + let r1919 = Sub (r1794) :: r1918 in + let r1920 = [R 60] in + let r1921 = [R 518] in + let r1922 = [R 63] in + let r1923 = Sub (r1724) :: r1922 in + let r1924 = S (T T_EQUAL) :: r1923 in + let r1925 = [R 64] in + let r1926 = [R 491] in + let r1927 = R 490 :: r1926 in + let r1928 = R 506 :: r1927 in + let r1929 = Sub (r1727) :: r1928 in + let r1930 = S (T T_LIDENT) :: r1929 in + let r1931 = R 170 :: r1930 in + let r1932 = R 1394 :: r1931 in + let r1933 = [R 514] in + let r1934 = [R 1312] in + let r1935 = [R 1327] in + let r1936 = R 506 :: r1935 in + let r1937 = S (N N_module_expr) :: r1936 in + let r1938 = R 500 :: r1937 in + let r1939 = [R 1317] in + let r1940 = [R 503] in + let r1941 = R 502 :: r1940 in + let r1942 = R 506 :: r1941 in + let r1943 = R 896 :: r1942 in + let r1944 = R 1355 :: r1943 in + let r1945 = R 720 :: r1944 in + let r1946 = S (T T_LIDENT) :: r1945 in + let r1947 = R 1360 :: r1946 in + let r1948 = [R 1310] in + let r1949 = R 511 :: r1948 in + let r1950 = [R 513] in + let r1951 = R 511 :: r1950 in + let r1952 = [R 347] in + let r1953 = R 500 :: r1952 in + let r1954 = R 341 :: r1953 in + let r1955 = Sub (r147) :: r1954 in + let r1956 = [R 166] in + let r1957 = R 500 :: r1956 in + let r1958 = [R 167] in + let r1959 = R 500 :: r1958 in + let r1960 = [R 412] in + let r1961 = [R 409] in + let r1962 = [R 410] in + let r1963 = S (T T_RPAREN) :: r1962 in + let r1964 = Sub (r34) :: r1963 in + let r1965 = S (T T_COLON) :: r1964 in + let r1966 = [R 408] in + let r1967 = [R 69] in + let r1968 = S (T T_RPAREN) :: r1967 in + let r1969 = [R 880] in + let r1970 = Sub (r208) :: r1969 in + let r1971 = R 500 :: r1970 in + let r1972 = [R 881] in + let r1973 = [R 879] in + let r1974 = Sub (r208) :: r1973 in + let r1975 = R 500 :: r1974 in + let r1976 = [R 876] in + let r1977 = [R 877] in + let r1978 = S (T T_RPAREN) :: r1977 in + let r1979 = Sub (r219) :: r1978 in + let r1980 = [R 874] in + let r1981 = Sub (r208) :: r1980 in + let r1982 = R 500 :: r1981 in + let r1983 = [R 875] in + let r1984 = [R 873] in + let r1985 = Sub (r208) :: r1984 in + let r1986 = R 500 :: r1985 in + let r1987 = [R 1258] in + let r1988 = [R 1260] in + let r1989 = Sub (r28) :: r1988 in + let r1990 = [R 1262] in + let r1991 = [R 659] in + let r1992 = S (T T_RBRACE) :: r1991 in + let r1993 = [R 663] in + let r1994 = S (T T_RBRACE) :: r1993 in + let r1995 = [R 658] in + let r1996 = S (T T_RBRACE) :: r1995 in + let r1997 = [R 662] in + let r1998 = S (T T_RBRACE) :: r1997 in + let r1999 = [R 656] in + let r2000 = [R 657] in + let r2001 = [R 661] in + let r2002 = S (T T_RBRACE) :: r2001 in + let r2003 = [R 665] in + let r2004 = S (T T_RBRACE) :: r2003 in + let r2005 = [R 660] in + let r2006 = S (T T_RBRACE) :: r2005 in + let r2007 = [R 664] in + let r2008 = S (T T_RBRACE) :: r2007 in + let r2009 = [R 350] in + let r2010 = R 506 :: r2009 in + let r2011 = R 896 :: r2010 in + let r2012 = [R 349] in + let r2013 = R 506 :: r2012 in + let r2014 = R 896 :: r2013 in + let r2015 = [R 509] in + let r2016 = [R 670] in + let r2017 = R 506 :: r2016 in + let r2018 = Sub (r264) :: r2017 in + let r2019 = R 500 :: r2018 in + let r2020 = [R 671] in + let r2021 = R 506 :: r2020 in + let r2022 = Sub (r264) :: r2021 in + let r2023 = R 500 :: r2022 in + let r2024 = [R 595] in + let r2025 = Sub (r424) :: r2024 in + let r2026 = [R 577] in + let r2027 = R 738 :: r2026 in + let r2028 = Sub (r93) :: r2027 in let r2029 = S (T T_COLON) :: r2028 in - let r2030 = S (T T_LIDENT) :: r2029 in - let r2031 = R 170 :: r2030 in - let r2032 = R 1383 :: r2031 in - let r2033 = R 507 :: r2032 in - let r2034 = [R 500] in - let r2035 = R 499 :: r2034 in - let r2036 = R 513 :: r2035 in - let r2037 = Sub (r1853) :: r2036 in - let r2038 = S (T T_COLON) :: r2037 in - let r2039 = S (T T_LIDENT) :: r2038 in - let r2040 = R 170 :: r2039 in - let r2041 = R 1383 :: r2040 in - let r2042 = [R 517] in - let r2043 = [R 969] in - let r2044 = [R 988] in - let r2045 = R 742 :: r2044 in - let r2046 = R 513 :: r2045 in - let r2047 = S (N N_module_type) :: r2046 in - let r2048 = R 507 :: r2047 in - let r2049 = [R 974] in - let r2050 = [R 975] in - let r2051 = [R 512] in - let r2052 = R 511 :: r2051 in - let r2053 = R 513 :: r2052 in - let r2054 = R 891 :: r2053 in - let r2055 = Sub (r177) :: r2054 in - let r2056 = S (T T_COLONEQUAL) :: r2055 in - let r2057 = R 722 :: r2056 in - let r2058 = S (T T_LIDENT) :: r2057 in - let r2059 = R 1349 :: r2058 in - let r2060 = [R 1213] in - let r2061 = Sub (r28) :: r2060 in - let r2062 = S (T T_MINUSGREATER) :: r2061 in - let r2063 = S (T T_RPAREN) :: r2062 in - let r2064 = Sub (r34) :: r2063 in - let r2065 = [R 1215] in - let r2066 = [R 1217] in - let r2067 = Sub (r28) :: r2066 in - let r2068 = [R 1219] in - let r2069 = [R 1221] in - let r2070 = Sub (r28) :: r2069 in - let r2071 = [R 1223] in - let r2072 = [R 1225] in - let r2073 = Sub (r28) :: r2072 in - let r2074 = [R 1227] in - let r2075 = [R 1237] in - let r2076 = Sub (r28) :: r2075 in - let r2077 = S (T T_MINUSGREATER) :: r2076 in - let r2078 = [R 1229] in - let r2079 = Sub (r28) :: r2078 in - let r2080 = S (T T_MINUSGREATER) :: r2079 in - let r2081 = S (T T_RPAREN) :: r2080 in - let r2082 = Sub (r34) :: r2081 in - let r2083 = [R 1231] in - let r2084 = [R 1233] in - let r2085 = Sub (r28) :: r2084 in - let r2086 = [R 1235] in - let r2087 = [R 1239] in - let r2088 = [R 1241] in - let r2089 = Sub (r28) :: r2088 in - let r2090 = [R 1243] in - let r2091 = [R 1289] in - let r2092 = Sub (r28) :: r2091 in - let r2093 = S (T T_MINUSGREATER) :: r2092 in - let r2094 = [R 1291] in - let r2095 = [R 1293] in - let r2096 = Sub (r28) :: r2095 in - let r2097 = [R 1295] in - let r2098 = [R 1281] in - let r2099 = [R 1283] in - let r2100 = [R 1285] in - let r2101 = Sub (r28) :: r2100 in - let r2102 = [R 1287] in - let r2103 = [R 943] in - let r2104 = Sub (r78) :: r2103 in - let r2105 = S (T T_COLON) :: r2104 in - let r2106 = [R 942] in - let r2107 = Sub (r78) :: r2106 in - let r2108 = S (T T_COLON) :: r2107 in - let r2109 = [R 355] in - let r2110 = [R 360] in - let r2111 = [R 559] in - let r2112 = [R 562] in - let r2113 = S (T T_RPAREN) :: r2112 in - let r2114 = S (T T_COLONCOLON) :: r2113 in - let r2115 = S (T T_LPAREN) :: r2114 in - let r2116 = [R 769] in - let r2117 = [R 770] in - let r2118 = [R 771] in - let r2119 = [R 772] in - let r2120 = [R 773] in - let r2121 = [R 774] in - let r2122 = [R 775] in - let r2123 = [R 776] in - let r2124 = [R 777] in - let r2125 = [R 778] in - let r2126 = [R 779] in - let r2127 = [R 1328] in - let r2128 = [R 1321] in - let r2129 = [R 1337] in - let r2130 = [R 527] in - let r2131 = [R 1335] in - let r2132 = S (T T_SEMISEMI) :: r2131 in - let r2133 = [R 1336] in - let r2134 = [R 529] in - let r2135 = [R 532] in - let r2136 = [R 531] in - let r2137 = [R 530] in - let r2138 = R 528 :: r2137 in - let r2139 = [R 1368] in - let r2140 = S (T T_EOF) :: r2139 in - let r2141 = R 528 :: r2140 in - let r2142 = [R 1367] in + let r2030 = [R 984] in + let r2031 = R 506 :: r2030 in + let r2032 = Sub (r2029) :: r2031 in + let r2033 = Sub (r2025) :: r2032 in + let r2034 = R 500 :: r2033 in + let r2035 = [R 616] in + let r2036 = R 506 :: r2035 in + let r2037 = Sub (r93) :: r2036 in + let r2038 = S (T T_COLONEQUAL) :: r2037 in + let r2039 = Sub (r61) :: r2038 in + let r2040 = R 500 :: r2039 in + let r2041 = [R 597] in + let r2042 = R 506 :: r2041 in + let r2043 = [R 987] in + let r2044 = R 498 :: r2043 in + let r2045 = R 506 :: r2044 in + let r2046 = R 738 :: r2045 in + let r2047 = Sub (r93) :: r2046 in + let r2048 = S (T T_COLON) :: r2047 in + let r2049 = [R 499] in + let r2050 = R 498 :: r2049 in + let r2051 = R 506 :: r2050 in + let r2052 = R 738 :: r2051 in + let r2053 = Sub (r93) :: r2052 in + let r2054 = S (T T_COLON) :: r2053 in + let r2055 = Sub (r424) :: r2054 in + let r2056 = S (T T_ATAT) :: r138 in + let r2057 = [R 596] in + let r2058 = S (T T_RPAREN) :: r2057 in + let r2059 = Sub (r2056) :: r2058 in + let r2060 = [R 985] in + let r2061 = R 506 :: r2060 in + let r2062 = R 738 :: r2061 in + let r2063 = [R 579] in + let r2064 = Sub (r93) :: r2063 in + let r2065 = S (T T_COLON) :: r2064 in + let r2066 = [R 578] in + let r2067 = [R 581] in + let r2068 = [R 991] in + let r2069 = R 492 :: r2068 in + let r2070 = R 506 :: r2069 in + let r2071 = Sub (r1904) :: r2070 in + let r2072 = S (T T_COLON) :: r2071 in + let r2073 = S (T T_LIDENT) :: r2072 in + let r2074 = R 170 :: r2073 in + let r2075 = R 1394 :: r2074 in + let r2076 = R 500 :: r2075 in + let r2077 = [R 493] in + let r2078 = R 492 :: r2077 in + let r2079 = R 506 :: r2078 in + let r2080 = Sub (r1904) :: r2079 in + let r2081 = S (T T_COLON) :: r2080 in + let r2082 = S (T T_LIDENT) :: r2081 in + let r2083 = R 170 :: r2082 in + let r2084 = R 1394 :: r2083 in + let r2085 = [R 510] in + let r2086 = [R 974] in + let r2087 = [R 993] in + let r2088 = R 738 :: r2087 in + let r2089 = R 506 :: r2088 in + let r2090 = Sub (r93) :: r2089 in + let r2091 = R 500 :: r2090 in + let r2092 = [R 979] in + let r2093 = [R 980] in + let r2094 = [R 505] in + let r2095 = R 504 :: r2094 in + let r2096 = R 506 :: r2095 in + let r2097 = R 896 :: r2096 in + let r2098 = Sub (r191) :: r2097 in + let r2099 = S (T T_COLONEQUAL) :: r2098 in + let r2100 = R 720 :: r2099 in + let r2101 = S (T T_LIDENT) :: r2100 in + let r2102 = R 1360 :: r2101 in + let r2103 = [R 537] in + let r2104 = R 500 :: r2103 in + let r2105 = Sub (r1566) :: r2104 in + let r2106 = [R 535] in + let r2107 = [R 666] in + let r2108 = [R 1224] in + let r2109 = Sub (r28) :: r2108 in + let r2110 = S (T T_MINUSGREATER) :: r2109 in + let r2111 = S (T T_RPAREN) :: r2110 in + let r2112 = Sub (r34) :: r2111 in + let r2113 = [R 1226] in + let r2114 = [R 1228] in + let r2115 = Sub (r28) :: r2114 in + let r2116 = [R 1230] in + let r2117 = [R 1232] in + let r2118 = Sub (r28) :: r2117 in + let r2119 = [R 1234] in + let r2120 = [R 1236] in + let r2121 = Sub (r28) :: r2120 in + let r2122 = [R 1238] in + let r2123 = [R 1248] in + let r2124 = Sub (r28) :: r2123 in + let r2125 = S (T T_MINUSGREATER) :: r2124 in + let r2126 = [R 1240] in + let r2127 = Sub (r28) :: r2126 in + let r2128 = S (T T_MINUSGREATER) :: r2127 in + let r2129 = S (T T_RPAREN) :: r2128 in + let r2130 = Sub (r34) :: r2129 in + let r2131 = [R 1242] in + let r2132 = [R 1244] in + let r2133 = Sub (r28) :: r2132 in + let r2134 = [R 1246] in + let r2135 = [R 1250] in + let r2136 = [R 1252] in + let r2137 = Sub (r28) :: r2136 in + let r2138 = [R 1254] in + let r2139 = [R 1300] in + let r2140 = Sub (r28) :: r2139 in + let r2141 = S (T T_MINUSGREATER) :: r2140 in + let r2142 = [R 1302] in + let r2143 = [R 1304] in + let r2144 = Sub (r28) :: r2143 in + let r2145 = [R 1306] in + let r2146 = [R 1292] in + let r2147 = [R 1294] in + let r2148 = [R 1296] in + let r2149 = Sub (r28) :: r2148 in + let r2150 = [R 1298] in + let r2151 = [R 948] in + let r2152 = Sub (r79) :: r2151 in + let r2153 = S (T T_COLON) :: r2152 in + let r2154 = [R 947] in + let r2155 = Sub (r79) :: r2154 in + let r2156 = S (T T_COLON) :: r2155 in + let r2157 = [R 355] in + let r2158 = [R 360] in + let r2159 = [R 552] in + let r2160 = [R 555] in + let r2161 = S (T T_RPAREN) :: r2160 in + let r2162 = S (T T_COLONCOLON) :: r2161 in + let r2163 = S (T T_LPAREN) :: r2162 in + let r2164 = [R 769] in + let r2165 = [R 770] in + let r2166 = [R 771] in + let r2167 = [R 772] in + let r2168 = [R 773] in + let r2169 = [R 774] in + let r2170 = [R 775] in + let r2171 = [R 776] in + let r2172 = [R 777] in + let r2173 = [R 778] in + let r2174 = [R 779] in + let r2175 = [R 1339] in + let r2176 = [R 1332] in + let r2177 = [R 1348] in + let r2178 = [R 520] in + let r2179 = [R 1346] in + let r2180 = S (T T_SEMISEMI) :: r2179 in + let r2181 = [R 1347] in + let r2182 = [R 522] in + let r2183 = [R 525] in + let r2184 = [R 524] in + let r2185 = [R 523] in + let r2186 = R 521 :: r2185 in + let r2187 = [R 1379] in + let r2188 = S (T T_EOF) :: r2187 in + let r2189 = R 521 :: r2188 in + let r2190 = [R 1378] in function - | 0 | 3364 | 3368 | 3386 | 3390 | 3394 | 3398 | 3402 | 3406 | 3410 | 3414 | 3418 | 3422 | 3428 | 3456 -> Nothing - | 3363 -> One ([R 0]) - | 3367 -> One ([R 1]) - | 3373 -> One ([R 2]) - | 3387 -> One ([R 3]) - | 3391 -> One ([R 4]) - | 3397 -> One ([R 5]) - | 3399 -> One ([R 6]) - | 3403 -> One ([R 7]) - | 3407 -> One ([R 8]) - | 3411 -> One ([R 9]) - | 3415 -> One ([R 10]) - | 3421 -> One ([R 11]) - | 3425 -> One ([R 12]) - | 3446 -> One ([R 13]) - | 3466 -> One ([R 14]) - | 802 -> One ([R 15]) - | 801 -> One ([R 16]) - | 3381 -> One ([R 22]) - | 3383 -> One ([R 23]) - | 321 -> One ([R 27]) - | 265 -> One ([R 28]) - | 352 -> One ([R 29]) - | 262 -> One ([R 31]) - | 351 -> One ([R 32]) - | 289 -> One ([R 33]) - | 2761 -> One ([R 46]) - | 2765 -> One ([R 51]) - | 2762 -> One ([R 52]) - | 2820 -> One ([R 61]) - | 2768 -> One ([R 66]) - | 2635 -> One ([R 78]) - | 2615 -> One ([R 79]) - | 2617 -> One ([R 83]) - | 2763 -> One ([R 87]) - | 1117 -> One ([R 123]) - | 1120 -> One ([R 124]) - | 218 -> One ([R 128]) - | 217 | 2233 -> One ([R 129]) - | 2544 -> One ([R 132]) - | 3034 -> One ([R 142]) - | 3036 -> One ([R 143]) - | 369 -> One ([R 145]) - | 266 -> One ([R 146]) - | 318 -> One ([R 147]) - | 320 -> One ([R 148]) - | 1850 -> One ([R 160]) + | 0 | 3442 | 3446 | 3464 | 3468 | 3472 | 3476 | 3480 | 3484 | 3488 | 3492 | 3496 | 3500 | 3506 | 3534 -> Nothing + | 3441 -> One ([R 0]) + | 3445 -> One ([R 1]) + | 3451 -> One ([R 2]) + | 3465 -> One ([R 3]) + | 3469 -> One ([R 4]) + | 3475 -> One ([R 5]) + | 3477 -> One ([R 6]) + | 3481 -> One ([R 7]) + | 3485 -> One ([R 8]) + | 3489 -> One ([R 9]) + | 3493 -> One ([R 10]) + | 3499 -> One ([R 11]) + | 3503 -> One ([R 12]) + | 3524 -> One ([R 13]) + | 3544 -> One ([R 14]) + | 814 -> One ([R 15]) + | 813 -> One ([R 16]) + | 3459 -> One ([R 22]) + | 3461 -> One ([R 23]) + | 333 -> One ([R 26]) + | 277 -> One ([R 27]) + | 364 -> One ([R 28]) + | 274 -> One ([R 30]) + | 363 -> One ([R 31]) + | 301 -> One ([R 32]) + | 2841 -> One ([R 46]) + | 2845 -> One ([R 51]) + | 2842 -> One ([R 52]) + | 2900 -> One ([R 61]) + | 2848 -> One ([R 66]) + | 2716 -> One ([R 78]) + | 2696 -> One ([R 79]) + | 2698 -> One ([R 83]) + | 2843 -> One ([R 87]) + | 1092 -> One ([R 123]) + | 1095 -> One ([R 124]) + | 234 -> One ([R 128]) + | 233 | 2313 -> One ([R 129]) + | 2625 -> One ([R 132]) + | 3100 -> One ([R 142]) + | 3102 -> One ([R 143]) + | 381 -> One ([R 145]) + | 278 -> One ([R 146]) + | 330 -> One ([R 147]) + | 332 -> One ([R 148]) + | 1929 -> One ([R 160]) | 1 -> One (R 162 :: r9) | 62 -> One (R 162 :: r43) - | 167 -> One (R 162 :: r142) - | 231 -> One (R 162 :: r200) - | 540 -> One (R 162 :: r388) - | 571 -> One (R 162 :: r416) - | 598 -> One (R 162 :: r465) - | 634 -> One (R 162 :: r516) - | 650 -> One (R 162 :: r536) - | 694 -> One (R 162 :: r567) - | 803 -> One (R 162 :: r620) - | 809 -> One (R 162 :: r626) - | 816 -> One (R 162 :: r631) - | 828 -> One (R 162 :: r638) - | 835 -> One (R 162 :: r655) - | 1015 -> One (R 162 :: r788) - | 1022 -> One (R 162 :: r797) - | 1110 -> One (R 162 :: r850) - | 1113 -> One (R 162 :: r853) - | 1129 -> One (R 162 :: r864) - | 1178 -> One (R 162 :: r894) - | 1181 -> One (R 162 :: r897) - | 1193 -> One (R 162 :: r906) - | 1204 -> One (R 162 :: r918) - | 1217 -> One (R 162 :: r922) - | 1221 -> One (R 162 :: r934) - | 1227 -> One (R 162 :: r938) - | 1237 -> One (R 162 :: r942) - | 1243 -> One (R 162 :: r945) - | 1277 -> One (R 162 :: r964) - | 1283 -> One (R 162 :: r968) - | 1296 -> One (R 162 :: r974) - | 1300 -> One (R 162 :: r977) - | 1307 -> One (R 162 :: r981) - | 1311 -> One (R 162 :: r984) - | 1322 -> One (R 162 :: r988) - | 1326 -> One (R 162 :: r991) - | 1338 -> One (R 162 :: r997) - | 1342 -> One (R 162 :: r1000) - | 1349 -> One (R 162 :: r1004) - | 1353 -> One (R 162 :: r1007) - | 1360 -> One (R 162 :: r1011) - | 1364 -> One (R 162 :: r1014) - | 1371 -> One (R 162 :: r1018) - | 1375 -> One (R 162 :: r1021) - | 1382 -> One (R 162 :: r1025) - | 1386 -> One (R 162 :: r1028) - | 1393 -> One (R 162 :: r1032) - | 1397 -> One (R 162 :: r1035) - | 1404 -> One (R 162 :: r1039) - | 1408 -> One (R 162 :: r1042) - | 1415 -> One (R 162 :: r1046) - | 1419 -> One (R 162 :: r1049) - | 1426 -> One (R 162 :: r1053) - | 1430 -> One (R 162 :: r1056) - | 1437 -> One (R 162 :: r1060) - | 1441 -> One (R 162 :: r1063) - | 1448 -> One (R 162 :: r1067) - | 1452 -> One (R 162 :: r1070) - | 1459 -> One (R 162 :: r1074) - | 1463 -> One (R 162 :: r1077) - | 1470 -> One (R 162 :: r1081) - | 1474 -> One (R 162 :: r1084) - | 1481 -> One (R 162 :: r1088) - | 1485 -> One (R 162 :: r1091) - | 1492 -> One (R 162 :: r1095) - | 1496 -> One (R 162 :: r1098) - | 1503 -> One (R 162 :: r1102) - | 1507 -> One (R 162 :: r1105) - | 1514 -> One (R 162 :: r1109) - | 1518 -> One (R 162 :: r1112) - | 1525 -> One (R 162 :: r1116) - | 1529 -> One (R 162 :: r1119) - | 1536 -> One (R 162 :: r1123) - | 1540 -> One (R 162 :: r1126) - | 1547 -> One (R 162 :: r1130) - | 1551 -> One (R 162 :: r1133) - | 1558 -> One (R 162 :: r1137) - | 1562 -> One (R 162 :: r1140) - | 1575 -> One (R 162 :: r1147) - | 1581 -> One (R 162 :: r1151) - | 1588 -> One (R 162 :: r1155) - | 1592 -> One (R 162 :: r1158) - | 1707 -> One (R 162 :: r1223) - | 1711 -> One (R 162 :: r1226) - | 1721 -> One (R 162 :: r1233) - | 1725 -> One (R 162 :: r1236) - | 1735 -> One (R 162 :: r1243) - | 1739 -> One (R 162 :: r1246) - | 1750 -> One (R 162 :: r1250) - | 1754 -> One (R 162 :: r1253) - | 1764 -> One (R 162 :: r1260) - | 1768 -> One (R 162 :: r1263) - | 1778 -> One (R 162 :: r1270) - | 1782 -> One (R 162 :: r1273) - | 1794 -> One (R 162 :: r1281) - | 1798 -> One (R 162 :: r1284) - | 1808 -> One (R 162 :: r1291) - | 1812 -> One (R 162 :: r1294) - | 1822 -> One (R 162 :: r1301) - | 1826 -> One (R 162 :: r1304) - | 1834 -> One (R 162 :: r1308) - | 1838 -> One (R 162 :: r1311) - | 1881 -> One (R 162 :: r1315) - | 1889 -> One (R 162 :: r1318) - | 1895 -> One (R 162 :: r1322) - | 1899 -> One (R 162 :: r1325) - | 1904 -> One (R 162 :: r1328) - | 1910 -> One (R 162 :: r1332) - | 1914 -> One (R 162 :: r1335) - | 1922 -> One (R 162 :: r1339) - | 1926 -> One (R 162 :: r1342) - | 1948 -> One (R 162 :: r1349) - | 1954 -> One (R 162 :: r1353) - | 1980 -> One (R 162 :: r1362) - | 1984 -> One (R 162 :: r1365) - | 1997 -> One (R 162 :: r1382) - | 2001 -> One (R 162 :: r1385) - | 2010 -> One (R 162 :: r1391) - | 2014 -> One (R 162 :: r1394) - | 2023 -> One (R 162 :: r1400) - | 2027 -> One (R 162 :: r1403) - | 2035 -> One (R 162 :: r1406) - | 2039 -> One (R 162 :: r1409) - | 2046 -> One (R 162 :: r1417) - | 2052 -> One (R 162 :: r1420) - | 2056 -> One (R 162 :: r1423) - | 2061 -> One (R 162 :: r1428) - | 2067 -> One (R 162 :: r1431) - | 2071 -> One (R 162 :: r1434) - | 2079 -> One (R 162 :: r1437) - | 2083 -> One (R 162 :: r1440) - | 2171 -> One (R 162 :: r1466) - | 2204 -> One (R 162 :: r1489) - | 2230 -> One (R 162 :: r1508) - | 2325 -> One (R 162 :: r1558) - | 2330 -> One (R 162 :: r1561) - | 2343 -> One (R 162 :: r1564) - | 2347 -> One (R 162 :: r1567) - | 2361 -> One (R 162 :: r1571) - | 2375 -> One (R 162 :: r1574) - | 2384 -> One (R 162 :: r1577) - | 2388 -> One (R 162 :: r1580) - | 2453 -> One (R 162 :: r1596) - | 2473 -> One (R 162 :: r1605) - | 2474 -> One (R 162 :: r1609) - | 2483 -> One (R 162 :: r1614) - | 2484 -> One (R 162 :: r1619) - | 2522 -> One (R 162 :: r1651) - | 2556 -> One (R 162 :: r1684) - | 2557 -> One (R 162 :: r1695) - | 2854 -> One (R 162 :: r1887) - | 2956 -> One (R 162 :: r1920) - | 2962 -> One (R 162 :: r1924) - | 2976 -> One (R 162 :: r1931) - | 2982 -> One (R 162 :: r1935) - | 3097 -> One (R 162 :: r1973) - | 3098 -> One (R 162 :: r1977) - | 3107 -> One (R 162 :: r1988) - | 3108 -> One (R 162 :: r1994) - | 3166 -> One (R 162 :: r2033) - | 3197 -> One (R 162 :: r2048) - | 319 -> One ([R 168]) - | 1247 -> One ([R 176]) - | 1317 -> One ([R 208]) - | 1844 -> One ([R 209]) - | 1268 -> One ([R 211]) - | 1319 -> One ([R 212]) - | 1242 -> One ([R 213]) - | 1288 -> One ([R 214]) - | 1316 -> One ([R 322]) - | 1331 -> One ([R 332]) - | 1335 -> One ([R 333]) - | 284 -> One ([R 336]) - | 1091 -> One ([R 340]) + | 189 -> One (R 162 :: r161) + | 243 -> One (R 162 :: r213) + | 552 -> One (R 162 :: r401) + | 583 -> One (R 162 :: r428) + | 610 -> One (R 162 :: r477) + | 646 -> One (R 162 :: r528) + | 662 -> One (R 162 :: r548) + | 706 -> One (R 162 :: r579) + | 815 -> One (R 162 :: r631) + | 821 -> One (R 162 :: r637) + | 828 -> One (R 162 :: r642) + | 840 -> One (R 162 :: r649) + | 847 -> One (R 162 :: r668) + | 983 -> One (R 162 :: r779) + | 990 -> One (R 162 :: r788) + | 1085 -> One (R 162 :: r841) + | 1088 -> One (R 162 :: r844) + | 1104 -> One (R 162 :: r855) + | 1154 -> One (R 162 :: r885) + | 1157 -> One (R 162 :: r888) + | 1169 -> One (R 162 :: r897) + | 1180 -> One (R 162 :: r909) + | 1192 -> One (R 162 :: r913) + | 1196 -> One (R 162 :: r925) + | 1202 -> One (R 162 :: r929) + | 1212 -> One (R 162 :: r933) + | 1218 -> One (R 162 :: r936) + | 1252 -> One (R 162 :: r955) + | 1258 -> One (R 162 :: r959) + | 1271 -> One (R 162 :: r965) + | 1275 -> One (R 162 :: r968) + | 1282 -> One (R 162 :: r972) + | 1286 -> One (R 162 :: r975) + | 1297 -> One (R 162 :: r979) + | 1301 -> One (R 162 :: r982) + | 1313 -> One (R 162 :: r988) + | 1317 -> One (R 162 :: r991) + | 1324 -> One (R 162 :: r995) + | 1328 -> One (R 162 :: r998) + | 1335 -> One (R 162 :: r1002) + | 1339 -> One (R 162 :: r1005) + | 1346 -> One (R 162 :: r1009) + | 1350 -> One (R 162 :: r1012) + | 1357 -> One (R 162 :: r1016) + | 1361 -> One (R 162 :: r1019) + | 1368 -> One (R 162 :: r1023) + | 1372 -> One (R 162 :: r1026) + | 1379 -> One (R 162 :: r1030) + | 1383 -> One (R 162 :: r1033) + | 1390 -> One (R 162 :: r1037) + | 1394 -> One (R 162 :: r1040) + | 1401 -> One (R 162 :: r1044) + | 1405 -> One (R 162 :: r1047) + | 1412 -> One (R 162 :: r1051) + | 1416 -> One (R 162 :: r1054) + | 1423 -> One (R 162 :: r1058) + | 1427 -> One (R 162 :: r1061) + | 1434 -> One (R 162 :: r1065) + | 1438 -> One (R 162 :: r1068) + | 1445 -> One (R 162 :: r1072) + | 1449 -> One (R 162 :: r1075) + | 1456 -> One (R 162 :: r1079) + | 1460 -> One (R 162 :: r1082) + | 1467 -> One (R 162 :: r1086) + | 1471 -> One (R 162 :: r1089) + | 1478 -> One (R 162 :: r1093) + | 1482 -> One (R 162 :: r1096) + | 1489 -> One (R 162 :: r1100) + | 1493 -> One (R 162 :: r1103) + | 1500 -> One (R 162 :: r1107) + | 1504 -> One (R 162 :: r1110) + | 1511 -> One (R 162 :: r1114) + | 1515 -> One (R 162 :: r1117) + | 1522 -> One (R 162 :: r1121) + | 1526 -> One (R 162 :: r1124) + | 1533 -> One (R 162 :: r1128) + | 1537 -> One (R 162 :: r1131) + | 1550 -> One (R 162 :: r1138) + | 1556 -> One (R 162 :: r1142) + | 1563 -> One (R 162 :: r1146) + | 1567 -> One (R 162 :: r1149) + | 1786 -> One (R 162 :: r1276) + | 1790 -> One (R 162 :: r1279) + | 1800 -> One (R 162 :: r1286) + | 1804 -> One (R 162 :: r1289) + | 1814 -> One (R 162 :: r1296) + | 1818 -> One (R 162 :: r1299) + | 1829 -> One (R 162 :: r1303) + | 1833 -> One (R 162 :: r1306) + | 1843 -> One (R 162 :: r1313) + | 1847 -> One (R 162 :: r1316) + | 1857 -> One (R 162 :: r1323) + | 1861 -> One (R 162 :: r1326) + | 1873 -> One (R 162 :: r1334) + | 1877 -> One (R 162 :: r1337) + | 1887 -> One (R 162 :: r1344) + | 1891 -> One (R 162 :: r1347) + | 1901 -> One (R 162 :: r1354) + | 1905 -> One (R 162 :: r1357) + | 1913 -> One (R 162 :: r1361) + | 1917 -> One (R 162 :: r1364) + | 1960 -> One (R 162 :: r1368) + | 1968 -> One (R 162 :: r1371) + | 1974 -> One (R 162 :: r1375) + | 1978 -> One (R 162 :: r1378) + | 1983 -> One (R 162 :: r1381) + | 1989 -> One (R 162 :: r1385) + | 1993 -> One (R 162 :: r1388) + | 2001 -> One (R 162 :: r1392) + | 2005 -> One (R 162 :: r1395) + | 2027 -> One (R 162 :: r1402) + | 2033 -> One (R 162 :: r1406) + | 2059 -> One (R 162 :: r1415) + | 2063 -> One (R 162 :: r1418) + | 2076 -> One (R 162 :: r1435) + | 2080 -> One (R 162 :: r1438) + | 2089 -> One (R 162 :: r1444) + | 2093 -> One (R 162 :: r1447) + | 2102 -> One (R 162 :: r1453) + | 2106 -> One (R 162 :: r1456) + | 2114 -> One (R 162 :: r1459) + | 2118 -> One (R 162 :: r1462) + | 2125 -> One (R 162 :: r1470) + | 2131 -> One (R 162 :: r1473) + | 2135 -> One (R 162 :: r1476) + | 2140 -> One (R 162 :: r1481) + | 2146 -> One (R 162 :: r1484) + | 2150 -> One (R 162 :: r1487) + | 2158 -> One (R 162 :: r1490) + | 2162 -> One (R 162 :: r1493) + | 2250 -> One (R 162 :: r1519) + | 2283 -> One (R 162 :: r1542) + | 2310 -> One (R 162 :: r1560) + | 2394 -> One (R 162 :: r1604) + | 2399 -> One (R 162 :: r1607) + | 2412 -> One (R 162 :: r1610) + | 2416 -> One (R 162 :: r1613) + | 2430 -> One (R 162 :: r1617) + | 2444 -> One (R 162 :: r1620) + | 2453 -> One (R 162 :: r1623) + | 2457 -> One (R 162 :: r1626) + | 2522 -> One (R 162 :: r1642) + | 2556 -> One (R 162 :: r1658) + | 2557 -> One (R 162 :: r1662) + | 2566 -> One (R 162 :: r1667) + | 2567 -> One (R 162 :: r1672) + | 2605 -> One (R 162 :: r1704) + | 2637 -> One (R 162 :: r1735) + | 2638 -> One (R 162 :: r1746) + | 2934 -> One (R 162 :: r1938) + | 3036 -> One (R 162 :: r1971) + | 3042 -> One (R 162 :: r1975) + | 3056 -> One (R 162 :: r1982) + | 3062 -> One (R 162 :: r1986) + | 3163 -> One (R 162 :: r2019) + | 3164 -> One (R 162 :: r2023) + | 3173 -> One (R 162 :: r2034) + | 3174 -> One (R 162 :: r2040) + | 3229 -> One (R 162 :: r2076) + | 3260 -> One (R 162 :: r2091) + | 331 -> One ([R 168]) + | 1222 -> One ([R 176]) + | 1292 -> One ([R 208]) + | 1923 -> One ([R 209]) + | 1243 -> One ([R 211]) + | 1294 -> One ([R 212]) + | 1217 -> One ([R 213]) + | 1263 -> One ([R 214]) + | 1291 -> One ([R 322]) + | 1306 -> One ([R 332]) + | 1310 -> One ([R 333]) + | 296 -> One ([R 336]) + | 1004 -> One ([R 340]) | 124 -> One ([R 353]) - | 2520 -> One ([R 356]) - | 2521 -> One ([R 357]) + | 2603 -> One ([R 356]) + | 2604 -> One ([R 357]) | 93 -> One (R 358 :: r54) | 97 -> One (R 358 :: r56) - | 2472 -> One ([R 362]) - | 147 -> One ([R 367]) - | 143 -> One ([R 370]) - | 2257 -> One ([R 376]) - | 2258 -> One ([R 377]) - | 850 -> One ([R 379]) - | 849 -> One ([R 381]) - | 847 -> One ([R 383]) - | 1843 -> One ([R 385]) - | 719 -> One ([R 411]) - | 758 -> One ([R 415]) - | 780 -> One ([R 419]) - | 2947 -> One ([R 423]) - | 2934 -> One ([R 427]) - | 898 -> One ([R 431]) - | 1667 -> One ([R 435]) - | 925 -> One ([R 439]) - | 911 -> One ([R 443]) - | 881 -> One ([R 447]) - | 1693 -> One ([R 451]) - | 1638 -> One ([R 453]) - | 1698 -> One ([R 473]) - | 2766 -> One ([R 476]) - | 945 -> One ([R 477]) - | 953 -> One ([R 478]) - | 952 -> One ([R 480]) - | 950 -> One ([R 482]) - | 940 -> One ([R 487]) - | 2311 -> One ([R 491]) - | 158 -> One (R 507 :: r116) - | 192 -> One (R 507 :: r165) - | 584 -> One (R 507 :: r425) - | 1019 -> One (R 507 :: r793) - | 1031 -> One (R 507 :: r807) - | 1132 -> One (R 507 :: r868) - | 1597 -> One (R 507 :: r1161) - | 2498 -> One (R 507 :: r1629) - | 2571 -> One (R 507 :: r1704) - | 2577 -> One (R 507 :: r1712) - | 2588 -> One (R 507 :: r1718) - | 2599 -> One (R 507 :: r1721) - | 2603 -> One (R 507 :: r1732) - | 2624 -> One (R 507 :: r1746) - | 2640 -> One (R 507 :: r1756) - | 2657 -> One (R 507 :: r1760) - | 2661 -> One (R 507 :: r1773) - | 2690 -> One (R 507 :: r1791) - | 2730 -> One (R 507 :: r1813) - | 2734 -> One (R 507 :: r1817) - | 2735 -> One (R 507 :: r1821) - | 2746 -> One (R 507 :: r1837) - | 2754 -> One (R 507 :: r1846) - | 2812 -> One (R 507 :: r1868) - | 2832 -> One (R 507 :: r1881) - | 2860 -> One (R 507 :: r1896) - | 2997 -> One (R 507 :: r1939) - | 3127 -> One (R 507 :: r2009) - | 3175 -> One (R 507 :: r2041) - | 3206 -> One (R 507 :: r2059) - | 2859 -> One (R 509 :: r1888) - | 3203 -> One (R 509 :: r2049) - | 3205 -> One (R 511 :: r2050) - | 1695 -> One (R 513 :: r1219) - | 2633 -> One (R 513 :: r1747) - | 2818 -> One (R 513 :: r1869) - | 2852 -> One (R 513 :: r1883) - | 2874 -> One (R 513 :: r1898) - | 2884 -> One (R 513 :: r1900) - | 3195 -> One (R 513 :: r2043) - | 3451 -> One (R 513 :: r2132) - | 3462 -> One (R 513 :: r2138) - | 3467 -> One (R 513 :: r2141) - | 3096 -> One (R 515 :: r1969) - | 3186 -> One (R 515 :: r2042) - | 2471 -> One (R 518 :: r1601) - | 2842 -> One (R 518 :: r1882) - | 2636 -> One (R 522 :: r1748) - | 2821 -> One (R 524 :: r1870) - | 3449 -> One (R 526 :: r2130) - | 3457 -> One (R 528 :: r2134) - | 3458 -> One (R 528 :: r2135) - | 3459 -> One (R 528 :: r2136) - | 787 -> One ([R 534]) - | 791 -> One ([R 536]) - | 2356 -> One ([R 539]) - | 3000 -> One ([R 540]) - | 3003 -> One ([R 541]) - | 3002 -> One ([R 543]) - | 3001 -> One ([R 545]) - | 2999 -> One ([R 546]) - | 3382 -> One ([R 558]) - | 3372 -> One ([R 560]) - | 3380 -> One ([R 561]) - | 3379 -> One ([R 563]) - | 264 -> One ([R 566]) - | 294 -> One ([R 567]) - | 1119 -> One ([R 574]) - | 2166 -> One ([R 575]) - | 3157 -> One ([R 587]) - | 1136 -> One ([R 591]) - | 1148 -> One ([R 592]) - | 1151 -> One ([R 593]) - | 1147 -> One ([R 594]) - | 1152 -> One ([R 596]) - | 583 -> One ([R 597]) - | 575 | 3117 -> One ([R 598]) - | 1096 -> One ([R 607]) - | 1060 -> One ([R 610]) - | 1037 -> One ([R 611]) - | 1099 -> One ([R 613]) - | 1066 -> One ([R 615]) - | 1074 -> One ([R 617]) - | 1084 -> One ([R 618]) - | 1073 -> One ([R 619]) - | 2663 | 2676 -> One ([R 625]) - | 2241 -> One ([R 627]) - | 2242 -> One ([R 628]) - | 2581 -> One ([R 630]) - | 2579 -> One ([R 631]) - | 2582 -> One ([R 632]) - | 2580 -> One ([R 633]) - | 188 -> One ([R 639]) - | 162 -> One ([R 641]) - | 275 -> One ([R 643]) - | 116 -> One ([R 644]) - | 114 -> One ([R 645]) - | 115 -> One ([R 646]) - | 117 -> One ([R 647]) - | 119 -> One ([R 648]) - | 118 -> One ([R 649]) - | 741 -> One ([R 651]) - | 2534 -> One ([R 653]) - | 3052 -> One ([R 654]) - | 3041 -> One ([R 655]) - | 3071 -> One ([R 656]) - | 3042 -> One ([R 657]) - | 3070 -> One ([R 658]) - | 3062 -> One ([R 659]) - | 67 | 610 -> One ([R 678]) - | 76 | 1159 -> One ([R 679]) - | 106 -> One ([R 680]) - | 92 -> One ([R 682]) - | 96 -> One ([R 684]) - | 100 -> One ([R 686]) - | 83 -> One ([R 687]) - | 103 | 1969 -> One ([R 688]) - | 82 -> One ([R 689]) - | 105 -> One ([R 690]) - | 104 -> One ([R 691]) - | 81 -> One ([R 692]) - | 80 -> One ([R 693]) - | 79 -> One ([R 694]) - | 73 -> One ([R 695]) - | 78 -> One ([R 696]) - | 70 | 570 | 1128 -> One ([R 697]) - | 69 | 1127 -> One ([R 698]) - | 68 -> One ([R 699]) - | 75 | 742 | 1158 -> One ([R 700]) - | 74 | 1157 -> One ([R 701]) - | 66 -> One ([R 702]) - | 71 -> One ([R 703]) - | 85 -> One ([R 704]) - | 77 -> One ([R 705]) - | 84 -> One ([R 706]) - | 72 -> One ([R 707]) - | 102 -> One ([R 708]) - | 107 -> One ([R 709]) - | 101 -> One ([R 711]) - | 499 -> One ([R 712]) - | 498 -> One (R 713 :: r366) - | 238 -> One (R 714 :: r219) - | 239 -> One ([R 715]) - | 788 -> One (R 716 :: r609) - | 789 -> One ([R 717]) - | 1604 -> One (R 718 :: r1167) - | 1605 -> One ([R 719]) - | 1606 -> One ([R 720]) - | 1611 -> One ([R 721]) - | 2869 -> One ([R 723]) - | 2155 -> One ([R 739]) - | 1214 -> One ([R 745]) - | 1858 -> One ([R 746]) + | 2555 -> One ([R 362]) + | 146 -> One ([R 367]) + | 142 -> One ([R 370]) + | 2338 -> One ([R 376]) + | 2339 -> One ([R 377]) + | 1922 -> One ([R 381]) + | 731 -> One ([R 395]) + | 770 -> One ([R 399]) + | 792 -> One ([R 403]) + | 3027 -> One ([R 407]) + | 3014 -> One ([R 411]) + | 911 -> One ([R 415]) + | 1718 -> One ([R 419]) + | 938 -> One ([R 423]) + | 924 -> One ([R 427]) + | 894 -> One ([R 431]) + | 1772 -> One ([R 435]) + | 1688 -> One ([R 437]) + | 1777 -> One ([R 478]) + | 2846 -> One ([R 481]) + | 2383 -> One ([R 484]) + | 180 -> One (R 500 :: r134) + | 208 -> One (R 500 :: r179) + | 596 -> One (R 500 :: r437) + | 987 -> One (R 500 :: r784) + | 999 -> One (R 500 :: r797) + | 1107 -> One (R 500 :: r859) + | 1572 -> One (R 500 :: r1152) + | 2581 -> One (R 500 :: r1682) + | 2652 -> One (R 500 :: r1755) + | 2658 -> One (R 500 :: r1763) + | 2669 -> One (R 500 :: r1769) + | 2680 -> One (R 500 :: r1772) + | 2684 -> One (R 500 :: r1783) + | 2705 -> One (R 500 :: r1797) + | 2721 -> One (R 500 :: r1807) + | 2737 -> One (R 500 :: r1811) + | 2741 -> One (R 500 :: r1824) + | 2770 -> One (R 500 :: r1842) + | 2810 -> One (R 500 :: r1864) + | 2814 -> One (R 500 :: r1868) + | 2815 -> One (R 500 :: r1872) + | 2826 -> One (R 500 :: r1888) + | 2834 -> One (R 500 :: r1897) + | 2892 -> One (R 500 :: r1919) + | 2912 -> One (R 500 :: r1932) + | 2940 -> One (R 500 :: r1947) + | 3193 -> One (R 500 :: r2055) + | 3238 -> One (R 500 :: r2084) + | 3269 -> One (R 500 :: r2102) + | 3290 -> One (R 500 :: r2106) + | 2939 -> One (R 502 :: r1939) + | 3266 -> One (R 502 :: r2092) + | 3268 -> One (R 504 :: r2093) + | 1774 -> One (R 506 :: r1272) + | 2714 -> One (R 506 :: r1798) + | 2898 -> One (R 506 :: r1920) + | 2932 -> One (R 506 :: r1934) + | 2954 -> One (R 506 :: r1949) + | 2964 -> One (R 506 :: r1951) + | 3258 -> One (R 506 :: r2086) + | 3529 -> One (R 506 :: r2180) + | 3540 -> One (R 506 :: r2186) + | 3545 -> One (R 506 :: r2189) + | 3162 -> One (R 508 :: r2015) + | 3249 -> One (R 508 :: r2085) + | 2554 -> One (R 511 :: r1654) + | 2922 -> One (R 511 :: r1933) + | 2717 -> One (R 515 :: r1799) + | 2901 -> One (R 517 :: r1921) + | 3527 -> One (R 519 :: r2178) + | 3535 -> One (R 521 :: r2182) + | 3536 -> One (R 521 :: r2183) + | 3537 -> One (R 521 :: r2184) + | 799 -> One ([R 527]) + | 803 -> One ([R 529]) + | 2425 -> One ([R 532]) + | 3293 -> One ([R 533]) + | 3296 -> One ([R 534]) + | 3295 -> One ([R 536]) + | 3294 -> One ([R 538]) + | 3292 -> One ([R 539]) + | 3460 -> One ([R 551]) + | 3450 -> One ([R 553]) + | 3458 -> One ([R 554]) + | 3457 -> One ([R 556]) + | 276 -> One ([R 559]) + | 306 -> One ([R 560]) + | 1094 -> One ([R 567]) + | 2245 -> One ([R 568]) + | 3219 -> One ([R 580]) + | 1111 -> One ([R 584]) + | 1124 -> One ([R 585]) + | 1127 -> One ([R 586]) + | 1123 -> One ([R 587]) + | 1128 -> One ([R 589]) + | 595 -> One ([R 590]) + | 587 | 997 | 3183 -> One ([R 591]) + | 1073 -> One ([R 600]) + | 1047 -> One ([R 602]) + | 1037 -> One ([R 604]) + | 1051 -> One ([R 606]) + | 1012 -> One ([R 608]) + | 1064 -> One ([R 609]) + | 1054 -> One ([R 610]) + | 1006 -> One ([R 614]) + | 2743 | 2756 -> One ([R 619]) + | 2321 -> One ([R 621]) + | 2322 -> One ([R 622]) + | 2662 -> One ([R 624]) + | 2660 -> One ([R 625]) + | 2663 -> One ([R 626]) + | 2661 -> One ([R 627]) + | 160 -> One ([R 633]) + | 184 -> One ([R 635]) + | 287 -> One ([R 637]) + | 114 -> One ([R 639]) + | 115 -> One ([R 640]) + | 117 -> One ([R 641]) + | 119 -> One ([R 642]) + | 118 -> One ([R 643]) + | 753 -> One ([R 645]) + | 2616 -> One ([R 647]) + | 3118 -> One ([R 648]) + | 3107 -> One ([R 649]) + | 3137 -> One ([R 650]) + | 3108 -> One ([R 651]) + | 3136 -> One ([R 652]) + | 3128 -> One ([R 653]) + | 67 | 622 -> One ([R 672]) + | 76 | 1135 -> One ([R 673]) + | 106 -> One ([R 674]) + | 92 -> One ([R 676]) + | 96 -> One ([R 678]) + | 100 -> One ([R 680]) + | 83 -> One ([R 681]) + | 103 | 2048 -> One ([R 682]) + | 82 -> One ([R 683]) + | 105 -> One ([R 684]) + | 104 -> One ([R 685]) + | 81 -> One ([R 686]) + | 80 -> One ([R 687]) + | 79 -> One ([R 688]) + | 73 -> One ([R 689]) + | 78 -> One ([R 690]) + | 70 | 582 | 1103 -> One ([R 691]) + | 69 | 1102 -> One ([R 692]) + | 68 -> One ([R 693]) + | 75 | 754 | 1134 -> One ([R 694]) + | 74 | 1133 -> One ([R 695]) + | 66 -> One ([R 696]) + | 71 -> One ([R 697]) + | 85 -> One ([R 698]) + | 77 -> One ([R 699]) + | 84 -> One ([R 700]) + | 72 -> One ([R 701]) + | 102 -> One ([R 702]) + | 107 -> One ([R 703]) + | 101 -> One ([R 705]) + | 511 -> One ([R 706]) + | 510 -> One (R 707 :: r379) + | 250 -> One (R 708 :: r232) + | 251 -> One ([R 709]) + | 800 -> One (R 710 :: r620) + | 801 -> One ([R 711]) + | 1622 -> One (R 712 :: r1186) + | 1629 -> One ([R 714]) + | 1633 -> One ([R 716]) + | 1625 -> One ([R 718]) + | 1639 -> One ([R 719]) + | 2949 -> One ([R 721]) + | 2234 -> One ([R 737]) + | 2334 -> One ([R 739]) + | 1937 -> One ([R 741]) + | 943 -> One (R 743 :: r737) + | 864 -> One ([R 744]) + | 855 -> One ([R 745]) + | 859 -> One ([R 746]) | 130 -> One ([R 748]) - | 701 -> One ([R 781]) - | 699 -> One ([R 782]) - | 698 -> One ([R 785]) - | 697 | 1160 -> One ([R 787]) - | 884 -> One ([R 794]) - | 885 -> One ([R 795]) - | 880 -> One ([R 798]) - | 961 -> One ([R 799]) - | 2555 -> One ([R 803]) - | 2692 | 2711 -> One ([R 813]) - | 2592 -> One ([R 815]) - | 2590 -> One ([R 816]) - | 2593 -> One ([R 817]) - | 2591 -> One ([R 818]) - | 2775 -> One (R 819 :: r1851) - | 2306 -> One ([R 820]) - | 3039 -> One ([R 825]) - | 3040 -> One ([R 826]) - | 3038 -> One ([R 827]) - | 2907 -> One ([R 829]) - | 2906 -> One ([R 830]) - | 2908 -> One ([R 831]) - | 2903 -> One ([R 832]) - | 2904 -> One ([R 833]) - | 3083 -> One ([R 835]) - | 3081 -> One ([R 836]) - | 704 -> One ([R 879]) - | 886 -> One ([R 885]) - | 1210 -> One ([R 894]) - | 2094 -> One ([R 895]) - | 2093 -> One ([R 896]) - | 1097 -> One ([R 897]) - | 1092 -> One ([R 898]) - | 1846 -> One ([R 899]) - | 1845 -> One ([R 900]) - | 521 -> One ([R 902]) - | 1083 -> One ([R 914]) - | 397 -> One ([R 932]) - | 394 -> One ([R 935]) - | 2288 -> One ([R 938]) - | 3348 -> One ([R 941]) - | 491 -> One ([R 944]) - | 1701 -> One ([R 947]) - | 1266 -> One ([R 949]) - | 1177 -> One ([R 951]) - | 1702 -> One ([R 952]) - | 1267 -> One ([R 953]) - | 1931 -> One ([R 954]) - | 2394 -> One ([R 956]) - | 2395 -> One ([R 957]) - | 776 -> One ([R 959]) - | 777 -> One ([R 960]) - | 2158 -> One ([R 962]) - | 2159 -> One ([R 963]) - | 3217 -> One ([R 970]) - | 3194 -> One ([R 971]) - | 3185 -> One ([R 972]) - | 3188 -> One ([R 973]) - | 3187 -> One ([R 978]) - | 3192 -> One ([R 981]) - | 3191 -> One ([R 983]) - | 3190 -> One ([R 984]) - | 3189 -> One ([R 985]) - | 3218 -> One ([R 987]) - | 669 -> One ([R 990]) - | 566 -> One ([R 991]) - | 567 -> One ([R 992]) - | 561 -> One ([R 993]) - | 562 -> One ([R 994]) - | 568 -> One ([R 997]) - | 563 -> One ([R 999]) - | 1118 -> One ([R 1030]) - | 1233 | 1241 | 1318 -> One ([R 1031]) - | 1122 | 1287 -> One ([R 1032]) - | 1831 | 1878 -> One ([R 1037]) - | 1232 -> One ([R 1044]) - | 1234 -> One ([R 1072]) - | 667 | 1600 -> One ([R 1082]) - | 682 -> One ([R 1085]) - | 716 -> One ([R 1090]) - | 689 -> One ([R 1091]) - | 778 -> One ([R 1094]) - | 715 -> One ([R 1098]) - | 688 -> One ([R 1100]) - | 29 -> One ([R 1101]) - | 8 -> One ([R 1102]) - | 53 -> One ([R 1104]) - | 52 -> One ([R 1105]) - | 51 -> One ([R 1106]) - | 50 -> One ([R 1107]) - | 49 -> One ([R 1108]) - | 48 -> One ([R 1109]) - | 47 -> One ([R 1110]) - | 46 -> One ([R 1111]) - | 45 -> One ([R 1112]) - | 44 -> One ([R 1113]) - | 43 -> One ([R 1114]) - | 42 -> One ([R 1115]) - | 41 -> One ([R 1116]) - | 40 -> One ([R 1117]) - | 39 -> One ([R 1118]) - | 38 -> One ([R 1119]) - | 37 -> One ([R 1120]) - | 36 -> One ([R 1121]) - | 35 -> One ([R 1122]) - | 34 -> One ([R 1123]) - | 33 -> One ([R 1124]) - | 32 -> One ([R 1125]) - | 31 -> One ([R 1126]) - | 30 -> One ([R 1127]) - | 28 -> One ([R 1128]) - | 27 -> One ([R 1129]) - | 26 -> One ([R 1130]) - | 25 -> One ([R 1131]) - | 24 -> One ([R 1132]) - | 23 -> One ([R 1133]) - | 22 -> One ([R 1134]) - | 21 -> One ([R 1135]) - | 20 -> One ([R 1136]) - | 19 -> One ([R 1137]) - | 18 -> One ([R 1138]) - | 17 -> One ([R 1139]) - | 16 -> One ([R 1140]) - | 15 -> One ([R 1141]) - | 14 -> One ([R 1142]) - | 13 -> One ([R 1143]) - | 12 -> One ([R 1144]) - | 11 -> One ([R 1145]) - | 10 -> One ([R 1146]) - | 9 -> One ([R 1147]) - | 7 -> One ([R 1148]) - | 6 -> One ([R 1149]) - | 5 -> One ([R 1150]) - | 4 -> One ([R 1151]) - | 3 -> One ([R 1152]) - | 2845 -> One ([R 1153]) - | 405 -> One ([R 1157]) - | 413 -> One ([R 1158]) - | 421 -> One ([R 1159]) - | 429 -> One ([R 1160]) - | 442 -> One ([R 1161]) - | 450 -> One ([R 1162]) - | 458 -> One ([R 1163]) - | 466 -> One ([R 1164]) - | 3230 -> One ([R 1165]) - | 3238 -> One ([R 1166]) - | 3246 -> One ([R 1167]) - | 3254 -> One ([R 1168]) - | 3267 -> One ([R 1169]) - | 3275 -> One ([R 1170]) - | 3283 -> One ([R 1171]) - | 3291 -> One ([R 1172]) - | 3014 -> One ([R 1173]) - | 3022 -> One ([R 1174]) - | 473 -> One ([R 1175]) - | 281 -> One ([R 1176]) - | 327 -> One ([R 1177]) - | 365 -> One ([R 1178]) - | 333 -> One ([R 1179]) - | 340 -> One ([R 1180]) - | 404 -> One ([R 1182]) - | 408 -> One ([R 1184]) - | 412 -> One ([R 1186]) - | 416 -> One ([R 1188]) - | 420 -> One ([R 1190]) - | 424 -> One ([R 1192]) - | 428 -> One ([R 1194]) - | 432 -> One ([R 1196]) - | 441 -> One ([R 1198]) - | 445 -> One ([R 1200]) - | 449 -> One ([R 1202]) - | 453 -> One ([R 1204]) - | 457 -> One ([R 1206]) - | 461 -> One ([R 1208]) - | 465 -> One ([R 1210]) - | 469 -> One ([R 1212]) - | 3229 -> One ([R 1214]) - | 3233 -> One ([R 1216]) - | 3237 -> One ([R 1218]) - | 3241 -> One ([R 1220]) - | 3245 -> One ([R 1222]) - | 3249 -> One ([R 1224]) - | 3253 -> One ([R 1226]) - | 3257 -> One ([R 1228]) - | 3266 -> One ([R 1230]) - | 3270 -> One ([R 1232]) - | 3274 -> One ([R 1234]) - | 3278 -> One ([R 1236]) - | 3282 -> One ([R 1238]) - | 3286 -> One ([R 1240]) - | 3290 -> One ([R 1242]) - | 3294 -> One ([R 1244]) - | 3013 -> One ([R 1246]) - | 3017 -> One ([R 1248]) - | 3021 -> One ([R 1250]) - | 3025 -> One ([R 1252]) - | 277 -> One ([R 1254]) - | 476 -> One ([R 1256]) - | 280 -> One ([R 1258]) - | 472 -> One ([R 1260]) - | 326 -> One ([R 1262]) - | 360 -> One ([R 1264]) - | 364 -> One ([R 1266]) - | 368 -> One ([R 1268]) - | 332 -> One ([R 1270]) - | 336 -> One ([R 1272]) - | 339 -> One ([R 1274]) - | 343 -> One ([R 1276]) - | 3319 -> One ([R 1277]) - | 3327 -> One ([R 1278]) - | 3301 -> One ([R 1279]) - | 3309 -> One ([R 1280]) - | 3318 -> One ([R 1282]) - | 3322 -> One ([R 1284]) - | 3326 -> One ([R 1286]) - | 3330 -> One ([R 1288]) - | 3300 -> One ([R 1290]) - | 3304 -> One ([R 1292]) - | 3308 -> One ([R 1294]) - | 3312 -> One ([R 1296]) - | 2878 -> One ([R 1298]) - | 2850 | 2879 -> One ([R 1300]) - | 2871 -> One ([R 1302]) - | 2851 -> One ([R 1303]) - | 2846 -> One ([R 1304]) - | 2841 -> One ([R 1305]) - | 2844 -> One ([R 1309]) - | 2848 -> One ([R 1312]) - | 2847 -> One ([R 1313]) - | 2872 -> One ([R 1315]) - | 808 -> One ([R 1317]) - | 807 -> One ([R 1318]) - | 3440 -> One ([R 1322]) - | 3441 -> One ([R 1323]) - | 3443 -> One ([R 1324]) - | 3444 -> One ([R 1325]) - | 3442 -> One ([R 1326]) - | 3439 -> One ([R 1327]) - | 3432 -> One ([R 1329]) - | 3433 -> One ([R 1330]) - | 3435 -> One ([R 1331]) - | 3436 -> One ([R 1332]) - | 3434 -> One ([R 1333]) - | 3431 -> One ([R 1334]) - | 3445 -> One ([R 1338]) - | 173 -> One (R 1349 :: r148) - | 1040 -> One (R 1349 :: r816) - | 1054 -> One ([R 1350]) - | 151 -> One ([R 1352]) - | 296 -> One ([R 1354]) - | 171 -> One ([R 1356]) - | 174 -> One ([R 1357]) - | 178 -> One ([R 1358]) - | 172 -> One ([R 1359]) - | 179 -> One ([R 1360]) - | 175 -> One ([R 1361]) - | 180 -> One ([R 1362]) - | 177 -> One ([R 1363]) - | 170 -> One ([R 1364]) - | 624 -> One ([R 1365]) - | 625 -> One ([R 1366]) - | 668 -> One ([R 1371]) - | 1231 -> One ([R 1372]) - | 665 -> One ([R 1379]) - | 537 -> One ([R 1380]) - | 629 -> One ([R 1381]) - | 2560 -> One ([R 1384]) - | 2674 -> One ([R 1385]) - | 2677 -> One ([R 1386]) - | 2675 -> One ([R 1387]) - | 2709 -> One ([R 1388]) - | 2712 -> One ([R 1389]) - | 2710 -> One ([R 1390]) - | 1043 -> One ([R 1397]) - | 1044 -> One ([R 1398]) - | 2151 -> One (S (T T_WITH) :: r1461) - | 153 | 223 | 283 | 306 | 434 | 2274 | 3259 -> One (S (T T_UNDERSCORE) :: r87) - | 297 -> One (S (T T_UNDERSCORE) :: r278) - | 374 -> One (S (T T_UNDERSCORE) :: r316) - | 386 -> One (S (T T_UNDERSCORE) :: r324) - | 2280 -> One (S (T T_UNDERSCORE) :: r1545) - | 3340 -> One (S (T T_UNDERSCORE) :: r2105) - | 579 -> One (S (T T_TYPE) :: r422) - | 2263 -> One (S (T T_STAR) :: r1539) - | 3447 -> One (S (T T_SEMISEMI) :: r2129) - | 3454 -> One (S (T T_SEMISEMI) :: r2133) - | 3369 -> One (S (T T_RPAREN) :: r182) - | 285 -> One (S (T T_RPAREN) :: r271) - | 384 | 478 -> One (S (T T_RPAREN) :: r321) - | 692 -> One (S (T T_RPAREN) :: r564) - | 769 -> One (S (T T_RPAREN) :: r608) - | 941 -> One (S (T T_RPAREN) :: r732) - | 943 -> One (S (T T_RPAREN) :: r733) - | 984 -> One (S (T T_RPAREN) :: r754) - | 988 -> One (S (T T_RPAREN) :: r755) - | 1007 -> One (S (T T_RPAREN) :: r766) - | 1009 -> One (S (T T_RPAREN) :: r767) - | 1033 -> One (S (T T_RPAREN) :: r808) - | 1089 -> One (S (T T_RPAREN) :: r843) - | 1138 -> One (S (T T_RPAREN) :: r869) - | 1145 -> One (S (T T_RPAREN) :: r872) - | 1149 -> One (S (T T_RPAREN) :: r873) - | 1601 -> One (S (T T_RPAREN) :: r1164) - | 1970 -> One (S (T T_RPAREN) :: r1357) - | 2463 -> One (S (T T_RPAREN) :: r1599) - | 2465 -> One (S (T T_RPAREN) :: r1600) - | 3370 -> One (S (T T_RPAREN) :: r2111) - | 2237 | 3026 -> One (S (T T_RBRACKET) :: r480) - | 2127 -> One (S (T T_RBRACKET) :: r1450) - | 2133 -> One (S (T T_RBRACKET) :: r1451) - | 2140 -> One (S (T T_RBRACKET) :: r1452) - | 2142 -> One (S (T T_RBRACKET) :: r1453) - | 2145 -> One (S (T T_RBRACKET) :: r1454) - | 2403 -> One (S (T T_RBRACKET) :: r1582) - | 2409 -> One (S (T T_RBRACKET) :: r1583) - | 2414 -> One (S (T T_RBRACKET) :: r1584) - | 310 -> One (S (T T_QUOTE) :: r295) - | 371 -> One (S (T T_QUOTE) :: r312) - | 2601 -> One (S (T T_OPEN) :: r1728) - | 2738 -> One (S (T T_OPEN) :: r1828) - | 269 -> One (S (T T_MODULE) :: r95) - | 477 -> One (S (T T_MINUSGREATER) :: r266) - | 396 -> One (S (T T_MINUSGREATER) :: r299) - | 361 -> One (S (T T_MINUSGREATER) :: r309) - | 409 -> One (S (T T_MINUSGREATER) :: r335) - | 425 -> One (S (T T_MINUSGREATER) :: r339) - | 446 -> One (S (T T_MINUSGREATER) :: r351) - | 462 -> One (S (T T_MINUSGREATER) :: r355) - | 1029 -> One (S (T T_MINUSGREATER) :: r803) - | 1061 -> One (S (T T_MINUSGREATER) :: r832) - | 2291 -> One (S (T T_MINUSGREATER) :: r1552) - | 2295 -> One (S (T T_MINUSGREATER) :: r1554) - | 2788 -> One (S (T T_MINUSGREATER) :: r1861) - | 3018 -> One (S (T T_MINUSGREATER) :: r1943) - | 3234 -> One (S (T T_MINUSGREATER) :: r2067) - | 3242 -> One (S (T T_MINUSGREATER) :: r2070) - | 3250 -> One (S (T T_MINUSGREATER) :: r2073) - | 3271 -> One (S (T T_MINUSGREATER) :: r2085) - | 3287 -> One (S (T T_MINUSGREATER) :: r2089) - | 3305 -> One (S (T T_MINUSGREATER) :: r2096) - | 3323 -> One (S (T T_MINUSGREATER) :: r2101) + | 713 -> One ([R 781]) + | 711 -> One ([R 782]) + | 710 -> One ([R 785]) + | 709 | 1136 -> One ([R 787]) + | 897 -> One ([R 794]) + | 898 -> One ([R 795]) + | 893 -> One ([R 798]) + | 951 -> One ([R 799]) + | 970 -> One ([R 803]) + | 2636 -> One ([R 808]) + | 2772 | 2791 -> One ([R 818]) + | 2673 -> One ([R 820]) + | 2671 -> One ([R 821]) + | 2674 -> One ([R 822]) + | 2672 -> One ([R 823]) + | 2855 -> One (R 824 :: r1902) + | 2378 -> One ([R 825]) + | 3105 -> One ([R 830]) + | 3106 -> One ([R 831]) + | 3104 -> One ([R 832]) + | 2987 -> One ([R 834]) + | 2986 -> One ([R 835]) + | 2988 -> One ([R 836]) + | 2983 -> One ([R 837]) + | 2984 -> One ([R 838]) + | 3149 -> One ([R 840]) + | 3147 -> One ([R 841]) + | 716 -> One ([R 884]) + | 899 -> One ([R 890]) + | 1186 -> One ([R 899]) + | 2173 -> One ([R 900]) + | 2172 -> One ([R 901]) + | 1053 -> One ([R 902]) + | 1005 -> One ([R 903]) + | 1925 -> One ([R 904]) + | 1924 -> One ([R 905]) + | 533 -> One ([R 907]) + | 1063 -> One ([R 919]) + | 409 -> One ([R 937]) + | 406 -> One ([R 940]) + | 3300 -> One ([R 943]) + | 3426 -> One ([R 946]) + | 503 -> One ([R 949]) + | 1780 -> One ([R 952]) + | 1241 -> One ([R 954]) + | 1153 -> One ([R 956]) + | 1781 -> One ([R 957]) + | 1242 -> One ([R 958]) + | 2010 -> One ([R 959]) + | 2463 -> One ([R 961]) + | 2464 -> One ([R 962]) + | 788 -> One ([R 964]) + | 789 -> One ([R 965]) + | 2237 -> One ([R 967]) + | 2238 -> One ([R 968]) + | 3280 -> One ([R 975]) + | 3257 -> One ([R 976]) + | 3248 -> One ([R 977]) + | 3251 -> One ([R 978]) + | 3250 -> One ([R 983]) + | 3255 -> One ([R 986]) + | 3254 -> One ([R 988]) + | 3253 -> One ([R 989]) + | 3252 -> One ([R 990]) + | 3281 -> One ([R 992]) + | 681 -> One ([R 995]) + | 578 -> One ([R 996]) + | 579 -> One ([R 997]) + | 573 -> One ([R 998]) + | 574 -> One ([R 999]) + | 580 -> One ([R 1002]) + | 575 -> One ([R 1004]) + | 1093 -> One ([R 1039]) + | 1208 | 1216 | 1293 -> One ([R 1040]) + | 1097 | 1262 -> One ([R 1041]) + | 1910 | 1957 -> One ([R 1046]) + | 1207 -> One ([R 1053]) + | 1209 -> One ([R 1081]) + | 679 | 1575 -> One ([R 1091]) + | 694 -> One ([R 1096]) + | 728 -> One ([R 1101]) + | 701 -> One ([R 1102]) + | 790 -> One ([R 1105]) + | 727 -> One ([R 1109]) + | 700 -> One ([R 1111]) + | 29 -> One ([R 1112]) + | 8 -> One ([R 1113]) + | 53 -> One ([R 1115]) + | 52 -> One ([R 1116]) + | 51 -> One ([R 1117]) + | 50 -> One ([R 1118]) + | 49 -> One ([R 1119]) + | 48 -> One ([R 1120]) + | 47 -> One ([R 1121]) + | 46 -> One ([R 1122]) + | 45 -> One ([R 1123]) + | 44 -> One ([R 1124]) + | 43 -> One ([R 1125]) + | 42 -> One ([R 1126]) + | 41 -> One ([R 1127]) + | 40 -> One ([R 1128]) + | 39 -> One ([R 1129]) + | 38 -> One ([R 1130]) + | 37 -> One ([R 1131]) + | 36 -> One ([R 1132]) + | 35 -> One ([R 1133]) + | 34 -> One ([R 1134]) + | 33 -> One ([R 1135]) + | 32 -> One ([R 1136]) + | 31 -> One ([R 1137]) + | 30 -> One ([R 1138]) + | 28 -> One ([R 1139]) + | 27 -> One ([R 1140]) + | 26 -> One ([R 1141]) + | 25 -> One ([R 1142]) + | 24 -> One ([R 1143]) + | 23 -> One ([R 1144]) + | 22 -> One ([R 1145]) + | 21 -> One ([R 1146]) + | 20 -> One ([R 1147]) + | 19 -> One ([R 1148]) + | 18 -> One ([R 1149]) + | 17 -> One ([R 1150]) + | 16 -> One ([R 1151]) + | 15 -> One ([R 1152]) + | 14 -> One ([R 1153]) + | 13 -> One ([R 1154]) + | 12 -> One ([R 1155]) + | 11 -> One ([R 1156]) + | 10 -> One ([R 1157]) + | 9 -> One ([R 1158]) + | 7 -> One ([R 1159]) + | 6 -> One ([R 1160]) + | 5 -> One ([R 1161]) + | 4 -> One ([R 1162]) + | 3 -> One ([R 1163]) + | 2925 -> One ([R 1164]) + | 417 -> One ([R 1168]) + | 425 -> One ([R 1169]) + | 433 -> One ([R 1170]) + | 441 -> One ([R 1171]) + | 454 -> One ([R 1172]) + | 462 -> One ([R 1173]) + | 470 -> One ([R 1174]) + | 478 -> One ([R 1175]) + | 3308 -> One ([R 1176]) + | 3316 -> One ([R 1177]) + | 3324 -> One ([R 1178]) + | 3332 -> One ([R 1179]) + | 3345 -> One ([R 1180]) + | 3353 -> One ([R 1181]) + | 3361 -> One ([R 1182]) + | 3369 -> One ([R 1183]) + | 3080 -> One ([R 1184]) + | 3088 -> One ([R 1185]) + | 485 -> One ([R 1186]) + | 293 -> One ([R 1187]) + | 339 -> One ([R 1188]) + | 377 -> One ([R 1189]) + | 345 -> One ([R 1190]) + | 352 -> One ([R 1191]) + | 416 -> One ([R 1193]) + | 420 -> One ([R 1195]) + | 424 -> One ([R 1197]) + | 428 -> One ([R 1199]) + | 432 -> One ([R 1201]) + | 436 -> One ([R 1203]) + | 440 -> One ([R 1205]) + | 444 -> One ([R 1207]) + | 453 -> One ([R 1209]) + | 457 -> One ([R 1211]) + | 461 -> One ([R 1213]) + | 465 -> One ([R 1215]) + | 469 -> One ([R 1217]) + | 473 -> One ([R 1219]) + | 477 -> One ([R 1221]) + | 481 -> One ([R 1223]) + | 3307 -> One ([R 1225]) + | 3311 -> One ([R 1227]) + | 3315 -> One ([R 1229]) + | 3319 -> One ([R 1231]) + | 3323 -> One ([R 1233]) + | 3327 -> One ([R 1235]) + | 3331 -> One ([R 1237]) + | 3335 -> One ([R 1239]) + | 3344 -> One ([R 1241]) + | 3348 -> One ([R 1243]) + | 3352 -> One ([R 1245]) + | 3356 -> One ([R 1247]) + | 3360 -> One ([R 1249]) + | 3364 -> One ([R 1251]) + | 3368 -> One ([R 1253]) + | 3372 -> One ([R 1255]) + | 3079 -> One ([R 1257]) + | 3083 -> One ([R 1259]) + | 3087 -> One ([R 1261]) + | 3091 -> One ([R 1263]) + | 289 -> One ([R 1265]) + | 488 -> One ([R 1267]) + | 292 -> One ([R 1269]) + | 484 -> One ([R 1271]) + | 338 -> One ([R 1273]) + | 372 -> One ([R 1275]) + | 376 -> One ([R 1277]) + | 380 -> One ([R 1279]) + | 344 -> One ([R 1281]) + | 348 -> One ([R 1283]) + | 351 -> One ([R 1285]) + | 355 -> One ([R 1287]) + | 3397 -> One ([R 1288]) + | 3405 -> One ([R 1289]) + | 3379 -> One ([R 1290]) + | 3387 -> One ([R 1291]) + | 3396 -> One ([R 1293]) + | 3400 -> One ([R 1295]) + | 3404 -> One ([R 1297]) + | 3408 -> One ([R 1299]) + | 3378 -> One ([R 1301]) + | 3382 -> One ([R 1303]) + | 3386 -> One ([R 1305]) + | 3390 -> One ([R 1307]) + | 2958 -> One ([R 1309]) + | 2930 | 2959 -> One ([R 1311]) + | 2951 -> One ([R 1313]) + | 2931 -> One ([R 1314]) + | 2926 -> One ([R 1315]) + | 2921 -> One ([R 1316]) + | 2924 -> One ([R 1320]) + | 2928 -> One ([R 1323]) + | 2927 -> One ([R 1324]) + | 2952 -> One ([R 1326]) + | 820 -> One ([R 1328]) + | 819 -> One ([R 1329]) + | 3518 -> One ([R 1333]) + | 3519 -> One ([R 1334]) + | 3521 -> One ([R 1335]) + | 3522 -> One ([R 1336]) + | 3520 -> One ([R 1337]) + | 3517 -> One ([R 1338]) + | 3510 -> One ([R 1340]) + | 3511 -> One ([R 1341]) + | 3513 -> One ([R 1342]) + | 3514 -> One ([R 1343]) + | 3512 -> One ([R 1344]) + | 3509 -> One ([R 1345]) + | 3523 -> One ([R 1349]) + | 195 -> One (R 1360 :: r167) + | 1015 -> One (R 1360 :: r808) + | 1029 -> One ([R 1361]) + | 150 -> One ([R 1363]) + | 308 -> One ([R 1365]) + | 193 -> One ([R 1367]) + | 196 -> One ([R 1368]) + | 200 -> One ([R 1369]) + | 194 -> One ([R 1370]) + | 201 -> One ([R 1371]) + | 197 -> One ([R 1372]) + | 202 -> One ([R 1373]) + | 199 -> One ([R 1374]) + | 192 -> One ([R 1375]) + | 636 -> One ([R 1376]) + | 637 -> One ([R 1377]) + | 680 -> One ([R 1382]) + | 1206 -> One ([R 1383]) + | 677 -> One ([R 1390]) + | 549 -> One ([R 1391]) + | 641 -> One ([R 1392]) + | 2641 -> One ([R 1395]) + | 2754 -> One ([R 1396]) + | 2757 -> One ([R 1397]) + | 2755 -> One ([R 1398]) + | 2789 -> One ([R 1399]) + | 2792 -> One ([R 1400]) + | 2790 -> One ([R 1401]) + | 1018 -> One ([R 1408]) + | 1019 -> One ([R 1409]) + | 2230 -> One (S (T T_WITH) :: r1514) + | 152 | 173 | 295 | 318 | 446 | 2355 | 3337 -> One (S (T T_UNDERSCORE) :: r88) + | 162 -> One (S (T T_UNDERSCORE) :: r122) + | 309 -> One (S (T T_UNDERSCORE) :: r291) + | 386 -> One (S (T T_UNDERSCORE) :: r329) + | 398 -> One (S (T T_UNDERSCORE) :: r337) + | 3418 -> One (S (T T_UNDERSCORE) :: r2153) + | 591 -> One (S (T T_TYPE) :: r434) + | 2344 -> One (S (T T_STAR) :: r1591) + | 3525 -> One (S (T T_SEMISEMI) :: r2177) + | 3532 -> One (S (T T_SEMISEMI) :: r2181) + | 3447 -> One (S (T T_RPAREN) :: r196) + | 297 -> One (S (T T_RPAREN) :: r284) + | 396 | 490 -> One (S (T T_RPAREN) :: r334) + | 704 -> One (S (T T_RPAREN) :: r576) + | 781 -> One (S (T T_RPAREN) :: r619) + | 1001 -> One (S (T T_RPAREN) :: r791) + | 1008 -> One (S (T T_RPAREN) :: r801) + | 1113 -> One (S (T T_RPAREN) :: r860) + | 1119 -> One (S (T T_RPAREN) :: r863) + | 1125 -> One (S (T T_RPAREN) :: r864) + | 1576 -> One (S (T T_RPAREN) :: r1155) + | 2049 -> One (S (T T_RPAREN) :: r1410) + | 2534 -> One (S (T T_RPAREN) :: r1647) + | 2540 -> One (S (T T_RPAREN) :: r1650) + | 2546 -> One (S (T T_RPAREN) :: r1653) + | 3448 -> One (S (T T_RPAREN) :: r2159) + | 2317 | 3092 -> One (S (T T_RBRACKET) :: r492) + | 2206 -> One (S (T T_RBRACKET) :: r1503) + | 2212 -> One (S (T T_RBRACKET) :: r1504) + | 2219 -> One (S (T T_RBRACKET) :: r1505) + | 2221 -> One (S (T T_RBRACKET) :: r1506) + | 2224 -> One (S (T T_RBRACKET) :: r1507) + | 2472 -> One (S (T T_RBRACKET) :: r1628) + | 2478 -> One (S (T T_RBRACKET) :: r1629) + | 2483 -> One (S (T T_RBRACKET) :: r1630) + | 322 -> One (S (T T_QUOTE) :: r308) + | 383 -> One (S (T T_QUOTE) :: r325) + | 2682 -> One (S (T T_OPEN) :: r1779) + | 2818 -> One (S (T T_OPEN) :: r1879) + | 281 -> One (S (T T_MODULE) :: r98) + | 489 -> One (S (T T_MINUSGREATER) :: r279) + | 408 -> One (S (T T_MINUSGREATER) :: r312) + | 373 -> One (S (T T_MINUSGREATER) :: r322) + | 421 -> One (S (T T_MINUSGREATER) :: r348) + | 437 -> One (S (T T_MINUSGREATER) :: r352) + | 458 -> One (S (T T_MINUSGREATER) :: r364) + | 474 -> One (S (T T_MINUSGREATER) :: r368) + | 1035 -> One (S (T T_MINUSGREATER) :: r803) + | 1044 -> One (S (T T_MINUSGREATER) :: r826) + | 2363 -> One (S (T T_MINUSGREATER) :: r1598) + | 2367 -> One (S (T T_MINUSGREATER) :: r1600) + | 2868 -> One (S (T T_MINUSGREATER) :: r1912) + | 3084 -> One (S (T T_MINUSGREATER) :: r1989) + | 3312 -> One (S (T T_MINUSGREATER) :: r2115) + | 3320 -> One (S (T T_MINUSGREATER) :: r2118) + | 3328 -> One (S (T T_MINUSGREATER) :: r2121) + | 3349 -> One (S (T T_MINUSGREATER) :: r2133) + | 3365 -> One (S (T T_MINUSGREATER) :: r2137) + | 3383 -> One (S (T T_MINUSGREATER) :: r2144) + | 3401 -> One (S (T T_MINUSGREATER) :: r2149) | 86 -> One (S (T T_LPAREN) :: r51) - | 127 -> One (S (T T_LIDENT) :: r66) - | 234 -> One (S (T T_LIDENT) :: r203) - | 235 -> One (S (T T_LIDENT) :: r211) - | 531 -> One (S (T T_LIDENT) :: r376) - | 532 -> One (S (T T_LIDENT) :: r379) - | 545 -> One (S (T T_LIDENT) :: r394) - | 546 -> One (S (T T_LIDENT) :: r400) - | 552 -> One (S (T T_LIDENT) :: r401) - | 553 -> One (S (T T_LIDENT) :: r405) - | 673 -> One (S (T T_LIDENT) :: r551) - | 674 -> One (S (T T_LIDENT) :: r555) - | 706 -> One (S (T T_LIDENT) :: r570) - | 707 -> One (S (T T_LIDENT) :: r574) - | 725 -> One (S (T T_LIDENT) :: r591) - | 748 -> One (S (T T_LIDENT) :: r595) - | 749 -> One (S (T T_LIDENT) :: r599) - | 821 -> One (S (T T_LIDENT) :: r632) - | 822 -> One (S (T T_LIDENT) :: r635) - | 838 -> One (S (T T_LIDENT) :: r656) - | 857 -> One (S (T T_LIDENT) :: r668) - | 863 -> One (S (T T_LIDENT) :: r685) - | 864 -> One (S (T T_LIDENT) :: r691) - | 870 -> One (S (T T_LIDENT) :: r692) - | 871 -> One (S (T T_LIDENT) :: r696) - | 888 -> One (S (T T_LIDENT) :: r700) - | 889 -> One (S (T T_LIDENT) :: r704) - | 901 -> One (S (T T_LIDENT) :: r706) - | 902 -> One (S (T T_LIDENT) :: r710) - | 915 -> One (S (T T_LIDENT) :: r715) - | 916 -> One (S (T T_LIDENT) :: r719) - | 1166 -> One (S (T T_LIDENT) :: r880) - | 1186 -> One (S (T T_LIDENT) :: r900) - | 1187 -> One (S (T T_LIDENT) :: r903) - | 1198 -> One (S (T T_LIDENT) :: r907) - | 1248 -> One (S (T T_LIDENT) :: r946) - | 1249 -> One (S (T T_LIDENT) :: r949) - | 1254 -> One (S (T T_LIDENT) :: r950) - | 1270 -> One (S (T T_LIDENT) :: r958) - | 1271 -> One (S (T T_LIDENT) :: r961) - | 1568 -> One (S (T T_LIDENT) :: r1141) - | 1569 -> One (S (T T_LIDENT) :: r1144) - | 1657 -> One (S (T T_LIDENT) :: r1197) - | 1658 -> One (S (T T_LIDENT) :: r1201) - | 1941 -> One (S (T T_LIDENT) :: r1343) - | 1942 -> One (S (T T_LIDENT) :: r1346) - | 2243 -> One (S (T T_LIDENT) :: r1532) - | 2516 -> One (S (T T_LIDENT) :: r1640) - | 2678 -> One (S (T T_LIDENT) :: r1778) - | 2713 -> One (S (T T_LIDENT) :: r1802) - | 2804 -> One (S (T T_LIDENT) :: r1865) - | 2937 -> One (S (T T_LIDENT) :: r1910) - | 2938 -> One (S (T T_LIDENT) :: r1914) - | 2969 -> One (S (T T_LIDENT) :: r1925) - | 2970 -> One (S (T T_LIDENT) :: r1928) - | 559 | 685 -> One (S (T T_INT) :: r406) - | 564 | 686 -> One (S (T T_INT) :: r407) - | 1289 -> One (S (T T_IN) :: r970) - | 2758 -> One (S (T T_IN) :: r1848) - | 617 -> One (S (T T_GREATERRBRACE) :: r481) - | 2397 -> One (S (T T_GREATERRBRACE) :: r1581) - | 222 -> One (S (T T_GREATER) :: r183) - | 3005 -> One (S (T T_GREATER) :: r1940) - | 1172 -> One (S (T T_FUNCTION) :: r889) - | 1077 -> One (S (T T_EQUAL) :: r838) - | 1621 -> One (S (T T_EQUAL) :: r1174) - | 1629 -> One (S (T T_EQUAL) :: r1180) - | 1632 -> One (S (T T_EQUAL) :: r1182) - | 1635 -> One (S (T T_EQUAL) :: r1184) - | 1639 -> One (S (T T_EQUAL) :: r1186) - | 1647 -> One (S (T T_EQUAL) :: r1191) - | 1650 -> One (S (T T_EQUAL) :: r1193) - | 1653 -> One (S (T T_EQUAL) :: r1195) - | 1680 -> One (S (T T_EQUAL) :: r1212) - | 1683 -> One (S (T T_EQUAL) :: r1214) - | 1686 -> One (S (T T_EQUAL) :: r1216) - | 1690 -> One (S (T T_EQUAL) :: r1218) - | 1960 -> One (S (T T_EQUAL) :: r1355) - | 2218 -> One (S (T T_EQUAL) :: r1498) - | 2226 -> One (S (T T_EQUAL) :: r1501) - | 2668 -> One (S (T T_EQUAL) :: r1775) - | 2686 -> One (S (T T_EQUAL) :: r1780) - | 3361 -> One (S (T T_EOF) :: r2109) - | 3365 -> One (S (T T_EOF) :: r2110) - | 3384 -> One (S (T T_EOF) :: r2116) - | 3388 -> One (S (T T_EOF) :: r2117) - | 3392 -> One (S (T T_EOF) :: r2118) - | 3395 -> One (S (T T_EOF) :: r2119) - | 3400 -> One (S (T T_EOF) :: r2120) - | 3404 -> One (S (T T_EOF) :: r2121) - | 3408 -> One (S (T T_EOF) :: r2122) - | 3412 -> One (S (T T_EOF) :: r2123) - | 3416 -> One (S (T T_EOF) :: r2124) - | 3419 -> One (S (T T_EOF) :: r2125) - | 3423 -> One (S (T T_EOF) :: r2126) - | 3471 -> One (S (T T_EOF) :: r2142) - | 2169 -> One (S (T T_END) :: r1462) + | 127 -> One (S (T T_LIDENT) :: r67) + | 246 -> One (S (T T_LIDENT) :: r216) + | 247 -> One (S (T T_LIDENT) :: r224) + | 543 -> One (S (T T_LIDENT) :: r389) + | 544 -> One (S (T T_LIDENT) :: r392) + | 557 -> One (S (T T_LIDENT) :: r407) + | 558 -> One (S (T T_LIDENT) :: r413) + | 564 -> One (S (T T_LIDENT) :: r414) + | 565 -> One (S (T T_LIDENT) :: r418) + | 685 -> One (S (T T_LIDENT) :: r563) + | 686 -> One (S (T T_LIDENT) :: r567) + | 718 -> One (S (T T_LIDENT) :: r582) + | 719 -> One (S (T T_LIDENT) :: r586) + | 737 -> One (S (T T_LIDENT) :: r603) + | 760 -> One (S (T T_LIDENT) :: r607) + | 761 -> One (S (T T_LIDENT) :: r611) + | 833 -> One (S (T T_LIDENT) :: r643) + | 834 -> One (S (T T_LIDENT) :: r646) + | 850 -> One (S (T T_LIDENT) :: r669) + | 865 -> One (S (T T_LIDENT) :: r680) + | 871 -> One (S (T T_LIDENT) :: r681) + | 876 -> One (S (T T_LIDENT) :: r695) + | 877 -> One (S (T T_LIDENT) :: r701) + | 883 -> One (S (T T_LIDENT) :: r702) + | 884 -> One (S (T T_LIDENT) :: r706) + | 901 -> One (S (T T_LIDENT) :: r710) + | 902 -> One (S (T T_LIDENT) :: r714) + | 914 -> One (S (T T_LIDENT) :: r716) + | 915 -> One (S (T T_LIDENT) :: r720) + | 928 -> One (S (T T_LIDENT) :: r725) + | 929 -> One (S (T T_LIDENT) :: r729) + | 1142 -> One (S (T T_LIDENT) :: r871) + | 1162 -> One (S (T T_LIDENT) :: r891) + | 1163 -> One (S (T T_LIDENT) :: r894) + | 1174 -> One (S (T T_LIDENT) :: r898) + | 1223 -> One (S (T T_LIDENT) :: r937) + | 1224 -> One (S (T T_LIDENT) :: r940) + | 1229 -> One (S (T T_LIDENT) :: r941) + | 1245 -> One (S (T T_LIDENT) :: r949) + | 1246 -> One (S (T T_LIDENT) :: r952) + | 1543 -> One (S (T T_LIDENT) :: r1132) + | 1544 -> One (S (T T_LIDENT) :: r1135) + | 1708 -> One (S (T T_LIDENT) :: r1232) + | 1709 -> One (S (T T_LIDENT) :: r1236) + | 2020 -> One (S (T T_LIDENT) :: r1396) + | 2021 -> One (S (T T_LIDENT) :: r1399) + | 2323 -> One (S (T T_LIDENT) :: r1584) + | 2599 -> One (S (T T_LIDENT) :: r1693) + | 2758 -> One (S (T T_LIDENT) :: r1829) + | 2793 -> One (S (T T_LIDENT) :: r1853) + | 2884 -> One (S (T T_LIDENT) :: r1916) + | 3017 -> One (S (T T_LIDENT) :: r1961) + | 3018 -> One (S (T T_LIDENT) :: r1965) + | 3049 -> One (S (T T_LIDENT) :: r1976) + | 3050 -> One (S (T T_LIDENT) :: r1979) + | 571 | 697 -> One (S (T T_INT) :: r419) + | 576 | 698 -> One (S (T T_INT) :: r420) + | 1264 -> One (S (T T_IN) :: r961) + | 2838 -> One (S (T T_IN) :: r1899) + | 629 -> One (S (T T_GREATERRBRACE) :: r493) + | 2466 -> One (S (T T_GREATERRBRACE) :: r1627) + | 172 -> One (S (T T_GREATER) :: r128) + | 3298 -> One (S (T T_GREATER) :: r2107) + | 1148 -> One (S (T T_FUNCTION) :: r880) + | 1057 -> One (S (T T_EQUAL) :: r830) + | 1580 -> One (S (T T_EQUAL) :: r1160) + | 1591 -> One (S (T T_EQUAL) :: r1170) + | 1598 -> One (S (T T_EQUAL) :: r1172) + | 1604 -> One (S (T T_EQUAL) :: r1178) + | 1615 -> One (S (T T_EQUAL) :: r1183) + | 1641 -> One (S (T T_EQUAL) :: r1191) + | 1647 -> One (S (T T_EQUAL) :: r1196) + | 1658 -> One (S (T T_EQUAL) :: r1206) + | 1665 -> One (S (T T_EQUAL) :: r1208) + | 1671 -> One (S (T T_EQUAL) :: r1214) + | 1682 -> One (S (T T_EQUAL) :: r1219) + | 1689 -> One (S (T T_EQUAL) :: r1221) + | 1695 -> One (S (T T_EQUAL) :: r1226) + | 1701 -> One (S (T T_EQUAL) :: r1228) + | 1704 -> One (S (T T_EQUAL) :: r1230) + | 1727 -> One (S (T T_EQUAL) :: r1246) + | 1738 -> One (S (T T_EQUAL) :: r1256) + | 1745 -> One (S (T T_EQUAL) :: r1258) + | 1751 -> One (S (T T_EQUAL) :: r1264) + | 1762 -> One (S (T T_EQUAL) :: r1269) + | 1769 -> One (S (T T_EQUAL) :: r1271) + | 2039 -> One (S (T T_EQUAL) :: r1408) + | 2295 -> One (S (T T_EQUAL) :: r1550) + | 2306 -> One (S (T T_EQUAL) :: r1553) + | 2748 -> One (S (T T_EQUAL) :: r1826) + | 2766 -> One (S (T T_EQUAL) :: r1831) + | 3439 -> One (S (T T_EOF) :: r2157) + | 3443 -> One (S (T T_EOF) :: r2158) + | 3462 -> One (S (T T_EOF) :: r2164) + | 3466 -> One (S (T T_EOF) :: r2165) + | 3470 -> One (S (T T_EOF) :: r2166) + | 3473 -> One (S (T T_EOF) :: r2167) + | 3478 -> One (S (T T_EOF) :: r2168) + | 3482 -> One (S (T T_EOF) :: r2169) + | 3486 -> One (S (T T_EOF) :: r2170) + | 3490 -> One (S (T T_EOF) :: r2171) + | 3494 -> One (S (T T_EOF) :: r2172) + | 3497 -> One (S (T T_EOF) :: r2173) + | 3501 -> One (S (T T_EOF) :: r2174) + | 3549 -> One (S (T T_EOF) :: r2190) + | 2248 -> One (S (T T_END) :: r1515) | 88 -> One (S (T T_DOTDOT) :: r52) - | 219 -> One (S (T T_DOTDOT) :: r179) - | 705 -> One (S (T T_DOTDOT) :: r569) - | 887 -> One (S (T T_DOTDOT) :: r699) - | 1656 -> One (S (T T_DOTDOT) :: r1196) - | 3053 -> One (S (T T_DOTDOT) :: r1953) - | 3054 -> One (S (T T_DOTDOT) :: r1954) - | 307 -> One (S (T T_DOT) :: r289) - | 398 -> One (S (T T_DOT) :: r332) - | 435 -> One (S (T T_DOT) :: r348) - | 602 | 1787 | 1867 -> One (S (T T_DOT) :: r467) - | 842 -> One (S (T T_DOT) :: r663) - | 934 -> One (S (T T_DOT) :: r730) - | 947 -> One (S (T T_DOT) :: r736) - | 973 -> One (S (T T_DOT) :: r746) - | 980 -> One (S (T T_DOT) :: r753) - | 994 -> One (S (T T_DOT) :: r759) - | 1002 -> One (S (T T_DOT) :: r765) - | 3426 -> One (S (T T_DOT) :: r839) - | 1624 -> One (S (T T_DOT) :: r1178) - | 1675 -> One (S (T T_DOT) :: r1210) - | 2246 -> One (S (T T_DOT) :: r1534) - | 2289 -> One (S (T T_DOT) :: r1550) - | 2527 -> One (S (T T_DOT) :: r1653) - | 3223 -> One (S (T T_DOT) :: r2064) - | 3260 -> One (S (T T_DOT) :: r2082) - | 3374 -> One (S (T T_DOT) :: r2115) - | 611 -> One (S (T T_COLONRBRACKET) :: r474) - | 637 -> One (S (T T_COLONRBRACKET) :: r517) - | 796 -> One (S (T T_COLONRBRACKET) :: r611) - | 1972 -> One (S (T T_COLONRBRACKET) :: r1358) - | 2091 -> One (S (T T_COLONRBRACKET) :: r1441) - | 2099 -> One (S (T T_COLONRBRACKET) :: r1442) - | 2102 -> One (S (T T_COLONRBRACKET) :: r1443) - | 2105 -> One (S (T T_COLONRBRACKET) :: r1444) - | 2438 -> One (S (T T_COLONRBRACKET) :: r1589) - | 2444 -> One (S (T T_COLONRBRACKET) :: r1590) - | 2447 -> One (S (T T_COLONRBRACKET) :: r1591) - | 2450 -> One (S (T T_COLONRBRACKET) :: r1592) - | 220 | 2234 -> One (S (T T_COLONCOLON) :: r181) - | 246 -> One (S (T T_COLON) :: r240) - | 346 -> One (S (T T_COLON) :: r303) - | 355 -> One (S (T T_COLON) :: r307) - | 1035 -> One (S (T T_COLON) :: r811) - | 2782 -> One (S (T T_COLON) :: r1859) - | 2993 -> One (S (T T_COLON) :: r1938) - | 613 -> One (S (T T_BARRBRACKET) :: r475) - | 638 -> One (S (T T_BARRBRACKET) :: r518) - | 793 -> One (S (T T_BARRBRACKET) :: r610) - | 2107 -> One (S (T T_BARRBRACKET) :: r1445) - | 2113 -> One (S (T T_BARRBRACKET) :: r1446) - | 2119 -> One (S (T T_BARRBRACKET) :: r1447) - | 2122 -> One (S (T T_BARRBRACKET) :: r1448) - | 2125 -> One (S (T T_BARRBRACKET) :: r1449) - | 2420 -> One (S (T T_BARRBRACKET) :: r1585) - | 2426 -> One (S (T T_BARRBRACKET) :: r1586) - | 2429 -> One (S (T T_BARRBRACKET) :: r1587) - | 2432 -> One (S (T T_BARRBRACKET) :: r1588) - | 510 -> One (S (T T_BAR) :: r370) - | 3337 -> One (S (T T_AMPERSAND) :: r164) - | 543 -> One (S (N N_pattern) :: r390) - | 649 -> One (S (N N_pattern) :: r530) - | 720 -> One (S (N N_pattern) :: r577) - | 762 -> One (S (N N_pattern) :: r604) - | 882 -> One (S (N N_pattern) :: r698) - | 998 -> One (S (N N_pattern) :: r761) - | 1668 -> One (S (N N_pattern) :: r1203) - | 1993 -> One (S (N N_pattern) :: r1379) - | 2006 -> One (S (N N_pattern) :: r1388) - | 2019 -> One (S (N N_pattern) :: r1397) - | 2510 -> One (S (N N_pattern) :: r1633) - | 578 -> One (S (N N_module_type) :: r418) - | 1027 -> One (S (N N_module_type) :: r799) - | 1028 -> One (S (N N_module_type) :: r801) - | 1064 -> One (S (N N_module_type) :: r833) - | 1075 -> One (S (N N_module_type) :: r836) - | 1104 -> One (S (N N_module_type) :: r845) - | 1107 -> One (S (N N_module_type) :: r847) - | 1142 -> One (S (N N_module_type) :: r871) - | 2176 -> One (S (N N_module_type) :: r1468) - | 2179 -> One (S (N N_module_type) :: r1470) - | 2182 -> One (S (N N_module_type) :: r1472) - | 2187 -> One (S (N N_module_type) :: r1474) - | 2190 -> One (S (N N_module_type) :: r1476) - | 2193 -> One (S (N N_module_type) :: r1478) - | 2214 -> One (S (N N_module_type) :: r1496) - | 2458 -> One (S (N N_module_type) :: r1598) - | 2488 -> One (S (N N_module_type) :: r1620) - | 1018 -> One (S (N N_module_expr) :: r790) - | 929 -> One (S (N N_let_pattern) :: r726) - | 954 -> One (S (N N_let_pattern) :: r739) - | 619 -> One (S (N N_fun_expr) :: r484) - | 632 -> One (S (N N_fun_expr) :: r512) - | 814 -> One (S (N N_fun_expr) :: r628) - | 1235 -> One (S (N N_fun_expr) :: r939) - | 1269 -> One (S (N N_fun_expr) :: r957) - | 1294 -> One (S (N N_fun_expr) :: r971) - | 1305 -> One (S (N N_fun_expr) :: r978) - | 1320 -> One (S (N N_fun_expr) :: r985) - | 1336 -> One (S (N N_fun_expr) :: r994) - | 1347 -> One (S (N N_fun_expr) :: r1001) - | 1358 -> One (S (N N_fun_expr) :: r1008) - | 1369 -> One (S (N N_fun_expr) :: r1015) - | 1380 -> One (S (N N_fun_expr) :: r1022) - | 1391 -> One (S (N N_fun_expr) :: r1029) - | 1402 -> One (S (N N_fun_expr) :: r1036) - | 1413 -> One (S (N N_fun_expr) :: r1043) - | 1424 -> One (S (N N_fun_expr) :: r1050) - | 1435 -> One (S (N N_fun_expr) :: r1057) - | 1446 -> One (S (N N_fun_expr) :: r1064) - | 1457 -> One (S (N N_fun_expr) :: r1071) - | 1468 -> One (S (N N_fun_expr) :: r1078) - | 1479 -> One (S (N N_fun_expr) :: r1085) - | 1490 -> One (S (N N_fun_expr) :: r1092) - | 1501 -> One (S (N N_fun_expr) :: r1099) - | 1512 -> One (S (N N_fun_expr) :: r1106) - | 1523 -> One (S (N N_fun_expr) :: r1113) - | 1534 -> One (S (N N_fun_expr) :: r1120) - | 1545 -> One (S (N N_fun_expr) :: r1127) - | 1556 -> One (S (N N_fun_expr) :: r1134) - | 1586 -> One (S (N N_fun_expr) :: r1152) - | 1705 -> One (S (N N_fun_expr) :: r1220) - | 1719 -> One (S (N N_fun_expr) :: r1230) - | 1733 -> One (S (N N_fun_expr) :: r1240) - | 1748 -> One (S (N N_fun_expr) :: r1247) - | 1762 -> One (S (N N_fun_expr) :: r1257) - | 1776 -> One (S (N N_fun_expr) :: r1267) - | 1792 -> One (S (N N_fun_expr) :: r1278) - | 1806 -> One (S (N N_fun_expr) :: r1288) - | 1820 -> One (S (N N_fun_expr) :: r1298) - | 1832 -> One (S (N N_fun_expr) :: r1305) - | 1893 -> One (S (N N_fun_expr) :: r1319) - | 1908 -> One (S (N N_fun_expr) :: r1329) - | 1920 -> One (S (N N_fun_expr) :: r1336) - | 1978 -> One (S (N N_fun_expr) :: r1359) - | 2044 -> One (S (N N_fun_expr) :: r1412) - | 228 -> One (Sub (r3) :: r187) - | 800 -> One (Sub (r3) :: r615) - | 806 -> One (Sub (r3) :: r621) - | 812 -> One (Sub (r3) :: r627) - | 861 -> One (Sub (r3) :: r675) - | 1226 -> One (Sub (r3) :: r935) - | 2512 -> One (Sub (r3) :: r1634) + | 235 -> One (S (T T_DOTDOT) :: r193) + | 717 -> One (S (T T_DOTDOT) :: r581) + | 900 -> One (S (T T_DOTDOT) :: r709) + | 1707 -> One (S (T T_DOTDOT) :: r1231) + | 3119 -> One (S (T T_DOTDOT) :: r1999) + | 3120 -> One (S (T T_DOTDOT) :: r2000) + | 319 -> One (S (T T_DOT) :: r302) + | 410 -> One (S (T T_DOT) :: r345) + | 447 -> One (S (T T_DOT) :: r361) + | 614 | 1866 | 1946 -> One (S (T T_DOT) :: r479) + | 967 -> One (S (T T_DOT) :: r757) + | 3504 -> One (S (T T_DOT) :: r831) + | 1601 -> One (S (T T_DOT) :: r1176) + | 1668 -> One (S (T T_DOT) :: r1212) + | 1748 -> One (S (T T_DOT) :: r1262) + | 2326 -> One (S (T T_DOT) :: r1586) + | 2361 -> One (S (T T_DOT) :: r1596) + | 3301 -> One (S (T T_DOT) :: r2112) + | 3338 -> One (S (T T_DOT) :: r2130) + | 3452 -> One (S (T T_DOT) :: r2163) + | 623 -> One (S (T T_COLONRBRACKET) :: r486) + | 649 -> One (S (T T_COLONRBRACKET) :: r529) + | 808 -> One (S (T T_COLONRBRACKET) :: r622) + | 2051 -> One (S (T T_COLONRBRACKET) :: r1411) + | 2170 -> One (S (T T_COLONRBRACKET) :: r1494) + | 2178 -> One (S (T T_COLONRBRACKET) :: r1495) + | 2181 -> One (S (T T_COLONRBRACKET) :: r1496) + | 2184 -> One (S (T T_COLONRBRACKET) :: r1497) + | 2507 -> One (S (T T_COLONRBRACKET) :: r1635) + | 2513 -> One (S (T T_COLONRBRACKET) :: r1636) + | 2516 -> One (S (T T_COLONRBRACKET) :: r1637) + | 2519 -> One (S (T T_COLONRBRACKET) :: r1638) + | 236 | 2314 -> One (S (T T_COLONCOLON) :: r195) + | 140 -> One (S (T T_COLON) :: r101) + | 258 -> One (S (T T_COLON) :: r253) + | 358 -> One (S (T T_COLON) :: r316) + | 367 -> One (S (T T_COLON) :: r320) + | 1002 -> One (S (T T_COLON) :: r800) + | 2862 -> One (S (T T_COLON) :: r1910) + | 3286 -> One (S (T T_COLON) :: r2105) + | 625 -> One (S (T T_BARRBRACKET) :: r487) + | 650 -> One (S (T T_BARRBRACKET) :: r530) + | 805 -> One (S (T T_BARRBRACKET) :: r621) + | 2186 -> One (S (T T_BARRBRACKET) :: r1498) + | 2192 -> One (S (T T_BARRBRACKET) :: r1499) + | 2198 -> One (S (T T_BARRBRACKET) :: r1500) + | 2201 -> One (S (T T_BARRBRACKET) :: r1501) + | 2204 -> One (S (T T_BARRBRACKET) :: r1502) + | 2489 -> One (S (T T_BARRBRACKET) :: r1631) + | 2495 -> One (S (T T_BARRBRACKET) :: r1632) + | 2498 -> One (S (T T_BARRBRACKET) :: r1633) + | 2501 -> One (S (T T_BARRBRACKET) :: r1634) + | 522 -> One (S (T T_BAR) :: r383) + | 3415 -> One (S (T T_AMPERSAND) :: r124) + | 555 -> One (S (N N_pattern) :: r403) + | 735 -> One (S (N N_pattern) :: r422) + | 661 -> One (S (N N_pattern) :: r542) + | 732 -> One (S (N N_pattern) :: r589) + | 774 -> One (S (N N_pattern) :: r615) + | 895 -> One (S (N N_pattern) :: r708) + | 945 -> One (S (N N_pattern) :: r739) + | 1719 -> One (S (N N_pattern) :: r1238) + | 2072 -> One (S (N N_pattern) :: r1432) + | 2085 -> One (S (N N_pattern) :: r1441) + | 2098 -> One (S (N N_pattern) :: r1450) + | 2593 -> One (S (N N_pattern) :: r1686) + | 986 -> One (S (N N_module_expr) :: r781) + | 942 -> One (S (N N_let_pattern) :: r736) + | 631 -> One (S (N N_fun_expr) :: r496) + | 644 -> One (S (N N_fun_expr) :: r524) + | 826 -> One (S (N N_fun_expr) :: r639) + | 1210 -> One (S (N N_fun_expr) :: r930) + | 1244 -> One (S (N N_fun_expr) :: r948) + | 1269 -> One (S (N N_fun_expr) :: r962) + | 1280 -> One (S (N N_fun_expr) :: r969) + | 1295 -> One (S (N N_fun_expr) :: r976) + | 1311 -> One (S (N N_fun_expr) :: r985) + | 1322 -> One (S (N N_fun_expr) :: r992) + | 1333 -> One (S (N N_fun_expr) :: r999) + | 1344 -> One (S (N N_fun_expr) :: r1006) + | 1355 -> One (S (N N_fun_expr) :: r1013) + | 1366 -> One (S (N N_fun_expr) :: r1020) + | 1377 -> One (S (N N_fun_expr) :: r1027) + | 1388 -> One (S (N N_fun_expr) :: r1034) + | 1399 -> One (S (N N_fun_expr) :: r1041) + | 1410 -> One (S (N N_fun_expr) :: r1048) + | 1421 -> One (S (N N_fun_expr) :: r1055) + | 1432 -> One (S (N N_fun_expr) :: r1062) + | 1443 -> One (S (N N_fun_expr) :: r1069) + | 1454 -> One (S (N N_fun_expr) :: r1076) + | 1465 -> One (S (N N_fun_expr) :: r1083) + | 1476 -> One (S (N N_fun_expr) :: r1090) + | 1487 -> One (S (N N_fun_expr) :: r1097) + | 1498 -> One (S (N N_fun_expr) :: r1104) + | 1509 -> One (S (N N_fun_expr) :: r1111) + | 1520 -> One (S (N N_fun_expr) :: r1118) + | 1531 -> One (S (N N_fun_expr) :: r1125) + | 1561 -> One (S (N N_fun_expr) :: r1143) + | 1784 -> One (S (N N_fun_expr) :: r1273) + | 1798 -> One (S (N N_fun_expr) :: r1283) + | 1812 -> One (S (N N_fun_expr) :: r1293) + | 1827 -> One (S (N N_fun_expr) :: r1300) + | 1841 -> One (S (N N_fun_expr) :: r1310) + | 1855 -> One (S (N N_fun_expr) :: r1320) + | 1871 -> One (S (N N_fun_expr) :: r1331) + | 1885 -> One (S (N N_fun_expr) :: r1341) + | 1899 -> One (S (N N_fun_expr) :: r1351) + | 1911 -> One (S (N N_fun_expr) :: r1358) + | 1972 -> One (S (N N_fun_expr) :: r1372) + | 1987 -> One (S (N N_fun_expr) :: r1382) + | 1999 -> One (S (N N_fun_expr) :: r1389) + | 2057 -> One (S (N N_fun_expr) :: r1412) + | 2123 -> One (S (N N_fun_expr) :: r1465) + | 240 -> One (Sub (r3) :: r200) + | 812 -> One (Sub (r3) :: r626) + | 818 -> One (Sub (r3) :: r632) + | 824 -> One (Sub (r3) :: r638) + | 874 -> One (Sub (r3) :: r685) + | 1201 -> One (Sub (r3) :: r926) + | 2595 -> One (Sub (r3) :: r1687) | 2 -> One (Sub (r13) :: r14) | 56 -> One (Sub (r13) :: r15) | 60 -> One (Sub (r13) :: r22) - | 226 -> One (Sub (r13) :: r186) - | 595 -> One (Sub (r13) :: r454) - | 1332 -> One (Sub (r13) :: r993) - | 2508 -> One (Sub (r13) :: r1632) - | 2514 -> One (Sub (r13) :: r1637) - | 2739 -> One (Sub (r13) :: r1833) - | 764 -> One (Sub (r24) :: r605) - | 1670 -> One (Sub (r24) :: r1204) - | 1672 -> One (Sub (r24) :: r1206) - | 245 -> One (Sub (r26) :: r235) - | 354 -> One (Sub (r26) :: r305) - | 1212 -> One (Sub (r26) :: r919) - | 2260 -> One (Sub (r26) :: r1536) - | 2265 -> One (Sub (r26) :: r1541) - | 2273 -> One (Sub (r26) :: r1542) - | 271 -> One (Sub (r28) :: r260) - | 282 -> One (Sub (r28) :: r269) - | 305 -> One (Sub (r28) :: r284) - | 328 -> One (Sub (r28) :: r296) - | 334 -> One (Sub (r28) :: r297) - | 341 -> One (Sub (r28) :: r300) - | 366 -> One (Sub (r28) :: r310) - | 406 -> One (Sub (r28) :: r333) - | 414 -> One (Sub (r28) :: r336) - | 422 -> One (Sub (r28) :: r337) - | 430 -> One (Sub (r28) :: r340) - | 433 -> One (Sub (r28) :: r343) - | 443 -> One (Sub (r28) :: r349) - | 451 -> One (Sub (r28) :: r352) - | 459 -> One (Sub (r28) :: r353) - | 467 -> One (Sub (r28) :: r356) - | 470 -> One (Sub (r28) :: r357) - | 474 -> One (Sub (r28) :: r358) - | 2790 -> One (Sub (r28) :: r1864) - | 3015 -> One (Sub (r28) :: r1941) - | 3023 -> One (Sub (r28) :: r1944) - | 3231 -> One (Sub (r28) :: r2065) - | 3239 -> One (Sub (r28) :: r2068) - | 3247 -> One (Sub (r28) :: r2071) - | 3255 -> One (Sub (r28) :: r2074) - | 3258 -> One (Sub (r28) :: r2077) - | 3268 -> One (Sub (r28) :: r2083) - | 3276 -> One (Sub (r28) :: r2086) - | 3284 -> One (Sub (r28) :: r2087) - | 3292 -> One (Sub (r28) :: r2090) - | 3302 -> One (Sub (r28) :: r2094) - | 3310 -> One (Sub (r28) :: r2097) - | 3316 -> One (Sub (r28) :: r2098) - | 3320 -> One (Sub (r28) :: r2099) - | 3328 -> One (Sub (r28) :: r2102) - | 502 -> One (Sub (r32) :: r367) - | 1047 -> One (Sub (r32) :: r818) - | 136 -> One (Sub (r34) :: r90) - | 149 -> One (Sub (r34) :: r103) - | 237 -> One (Sub (r34) :: r212) - | 526 -> One (Sub (r34) :: r375) - | 646 -> One (Sub (r34) :: r529) - | 841 -> One (Sub (r34) :: r661) - | 946 -> One (Sub (r34) :: r734) - | 979 -> One (Sub (r34) :: r751) - | 1001 -> One (Sub (r34) :: r762) - | 1050 -> One (Sub (r34) :: r821) - | 1161 -> One (Sub (r34) :: r876) - | 1643 -> One (Sub (r34) :: r1189) - | 2573 -> One (Sub (r34) :: r1706) - | 2611 -> One (Sub (r34) :: r1739) - | 2950 -> One (Sub (r34) :: r1917) - | 2695 -> One (Sub (r36) :: r1794) - | 2719 -> One (Sub (r36) :: r1805) - | 301 -> One (Sub (r60) :: r281) - | 308 -> One (Sub (r60) :: r290) - | 379 -> One (Sub (r60) :: r320) - | 390 -> One (Sub (r60) :: r327) - | 2284 -> One (Sub (r60) :: r1548) - | 3344 -> One (Sub (r60) :: r2108) - | 3429 -> One (Sub (r60) :: r2127) - | 3437 -> One (Sub (r60) :: r2128) - | 135 -> One (Sub (r76) :: r89) - | 144 -> One (Sub (r78) :: r101) - | 184 -> One (Sub (r78) :: r159) - | 197 -> One (Sub (r78) :: r169) - | 213 -> One (Sub (r78) :: r171) - | 731 -> One (Sub (r78) :: r594) - | 966 -> One (Sub (r78) :: r743) - | 345 -> One (Sub (r106) :: r301) - | 3296 -> One (Sub (r106) :: r2093) - | 2553 -> One (Sub (r113) :: r1670) - | 160 -> One (Sub (r118) :: r119) - | 3145 -> One (Sub (r118) :: r2019) - | 653 -> One (Sub (r124) :: r537) - | 663 -> One (Sub (r124) :: r549) - | 2566 -> One (Sub (r152) :: r1700) - | 202 -> One (Sub (r154) :: r170) - | 176 -> One (Sub (r156) :: r158) - | 186 -> One (Sub (r161) :: r162) - | 216 -> One (Sub (r177) :: r178) - | 3072 -> One (Sub (r177) :: r1965) - | 3087 -> One (Sub (r177) :: r1968) - | 798 -> One (Sub (r193) :: r612) - | 832 -> One (Sub (r193) :: r639) - | 495 -> One (Sub (r214) :: r361) - | 243 -> One (Sub (r216) :: r223) - | 488 -> One (Sub (r216) :: r360) - | 244 -> One (Sub (r229) :: r231) - | 249 -> One (Sub (r244) :: r245) - | 287 -> One (Sub (r244) :: r272) - | 349 -> One (Sub (r244) :: r304) - | 252 -> One (Sub (r251) :: r253) - | 1039 -> One (Sub (r251) :: r812) - | 1081 -> One (Sub (r251) :: r840) - | 3118 -> One (Sub (r251) :: r1996) - | 518 -> One (Sub (r372) :: r374) - | 539 -> One (Sub (r380) :: r383) - | 631 -> One (Sub (r380) :: r510) - | 1116 -> One (Sub (r380) :: r854) - | 1164 -> One (Sub (r380) :: r879) - | 1168 -> One (Sub (r380) :: r881) - | 1256 -> One (Sub (r380) :: r951) - | 1258 -> One (Sub (r380) :: r952) - | 1281 -> One (Sub (r380) :: r965) - | 1579 -> One (Sub (r380) :: r1148) - | 1879 -> One (Sub (r380) :: r1312) - | 1952 -> One (Sub (r380) :: r1350) - | 2323 -> One (Sub (r380) :: r1555) - | 2960 -> One (Sub (r380) :: r1921) - | 2980 -> One (Sub (r380) :: r1932) - | 2207 -> One (Sub (r412) :: r1493) - | 3121 -> One (Sub (r412) :: r2002) - | 3136 -> One (Sub (r412) :: r2015) - | 1200 -> One (Sub (r486) :: r908) - | 621 -> One (Sub (r492) :: r494) - | 628 -> One (Sub (r492) :: r509) - | 2150 -> One (Sub (r492) :: r1459) - | 626 -> One (Sub (r499) :: r501) - | 641 -> One (Sub (r526) :: r528) - | 660 -> One (Sub (r526) :: r548) - | 659 -> One (Sub (r533) :: r546) - | 680 -> One (Sub (r533) :: r556) - | 713 -> One (Sub (r533) :: r575) - | 755 -> One (Sub (r533) :: r600) - | 877 -> One (Sub (r533) :: r697) - | 895 -> One (Sub (r533) :: r705) - | 908 -> One (Sub (r533) :: r711) - | 912 -> One (Sub (r533) :: r714) - | 922 -> One (Sub (r533) :: r720) - | 990 -> One (Sub (r533) :: r756) - | 1664 -> One (Sub (r533) :: r1202) - | 2931 -> One (Sub (r533) :: r1909) - | 2944 -> One (Sub (r533) :: r1915) - | 658 -> One (Sub (r541) :: r543) - | 724 -> One (Sub (r584) :: r587) - | 964 -> One (Sub (r584) :: r741) - | 1615 -> One (Sub (r584) :: r1172) - | 2696 -> One (Sub (r584) :: r1799) - | 2720 -> One (Sub (r584) :: r1810) - | 839 -> One (Sub (r658) :: r660) - | 851 -> One (Sub (r658) :: r667) - | 858 -> One (Sub (r658) :: r671) - | 859 -> One (Sub (r658) :: r674) - | 1966 -> One (Sub (r677) :: r1356) - | 862 -> One (Sub (r679) :: r682) - | 927 -> One (Sub (r722) :: r723) - | 977 -> One (Sub (r748) :: r750) - | 1085 -> One (Sub (r841) :: r842) - | 1991 -> One (Sub (r1372) :: r1376) - | 1989 -> One (Sub (r1374) :: r1375) - | 2147 -> One (Sub (r1455) :: r1457) - | 2494 -> One (Sub (r1480) :: r1624) - | 2224 -> One (Sub (r1483) :: r1499) - | 2239 -> One (Sub (r1511) :: r1512) - | 2240 -> One (Sub (r1523) :: r1525) - | 3027 -> One (Sub (r1523) :: r1946) - | 3030 -> One (Sub (r1523) :: r1948) - | 3044 -> One (Sub (r1523) :: r1950) - | 3047 -> One (Sub (r1523) :: r1952) - | 3055 -> One (Sub (r1523) :: r1956) - | 3058 -> One (Sub (r1523) :: r1958) - | 3063 -> One (Sub (r1523) :: r1960) - | 3066 -> One (Sub (r1523) :: r1962) - | 2896 -> One (Sub (r1654) :: r1906) - | 2910 -> One (Sub (r1654) :: r1908) - | 2737 -> One (Sub (r1673) :: r1823) - | 2828 -> One (Sub (r1676) :: r1874) - | 2562 -> One (Sub (r1697) :: r1699) - | 3143 -> One (Sub (r1723) :: r2018) - | 2750 -> One (Sub (r1734) :: r1840) - | 2660 -> One (Sub (r1766) :: r1768) - | 2689 -> One (Sub (r1785) :: r1787) - | 2781 -> One (Sub (r1853) :: r1855) - | 2824 -> One (Sub (r1853) :: r1873) - | 3154 -> One (Sub (r2022) :: r2023) - | 3159 -> One (Sub (r2022) :: r2024) - | 1293 -> One (r0) - | 1292 -> One (r2) - | 3360 -> One (r4) - | 3359 -> One (r5) - | 3358 -> One (r6) - | 3357 -> One (r7) - | 3356 -> One (r8) + | 238 -> One (Sub (r13) :: r199) + | 607 -> One (Sub (r13) :: r466) + | 1307 -> One (Sub (r13) :: r984) + | 2591 -> One (Sub (r13) :: r1685) + | 2597 -> One (Sub (r13) :: r1690) + | 2819 -> One (Sub (r13) :: r1884) + | 776 -> One (Sub (r24) :: r616) + | 1721 -> One (Sub (r24) :: r1239) + | 1723 -> One (Sub (r24) :: r1241) + | 257 -> One (Sub (r26) :: r248) + | 366 -> One (Sub (r26) :: r318) + | 1188 -> One (Sub (r26) :: r910) + | 2341 -> One (Sub (r26) :: r1588) + | 2346 -> One (Sub (r26) :: r1593) + | 2354 -> One (Sub (r26) :: r1594) + | 283 -> One (Sub (r28) :: r273) + | 294 -> One (Sub (r28) :: r282) + | 317 -> One (Sub (r28) :: r297) + | 340 -> One (Sub (r28) :: r309) + | 346 -> One (Sub (r28) :: r310) + | 353 -> One (Sub (r28) :: r313) + | 378 -> One (Sub (r28) :: r323) + | 418 -> One (Sub (r28) :: r346) + | 426 -> One (Sub (r28) :: r349) + | 434 -> One (Sub (r28) :: r350) + | 442 -> One (Sub (r28) :: r353) + | 445 -> One (Sub (r28) :: r356) + | 455 -> One (Sub (r28) :: r362) + | 463 -> One (Sub (r28) :: r365) + | 471 -> One (Sub (r28) :: r366) + | 479 -> One (Sub (r28) :: r369) + | 482 -> One (Sub (r28) :: r370) + | 486 -> One (Sub (r28) :: r371) + | 964 -> One (Sub (r28) :: r755) + | 2870 -> One (Sub (r28) :: r1915) + | 3081 -> One (Sub (r28) :: r1987) + | 3089 -> One (Sub (r28) :: r1990) + | 3309 -> One (Sub (r28) :: r2113) + | 3317 -> One (Sub (r28) :: r2116) + | 3325 -> One (Sub (r28) :: r2119) + | 3333 -> One (Sub (r28) :: r2122) + | 3336 -> One (Sub (r28) :: r2125) + | 3346 -> One (Sub (r28) :: r2131) + | 3354 -> One (Sub (r28) :: r2134) + | 3362 -> One (Sub (r28) :: r2135) + | 3370 -> One (Sub (r28) :: r2138) + | 3380 -> One (Sub (r28) :: r2142) + | 3388 -> One (Sub (r28) :: r2145) + | 3394 -> One (Sub (r28) :: r2146) + | 3398 -> One (Sub (r28) :: r2147) + | 3406 -> One (Sub (r28) :: r2150) + | 514 -> One (Sub (r32) :: r380) + | 1022 -> One (Sub (r32) :: r810) + | 136 -> One (Sub (r34) :: r91) + | 148 -> One (Sub (r34) :: r104) + | 249 -> One (Sub (r34) :: r225) + | 538 -> One (Sub (r34) :: r388) + | 658 -> One (Sub (r34) :: r541) + | 771 -> One (Sub (r34) :: r614) + | 1025 -> One (Sub (r34) :: r813) + | 1137 -> One (Sub (r34) :: r867) + | 1578 -> One (Sub (r34) :: r1158) + | 1586 -> One (Sub (r34) :: r1163) + | 1613 -> One (Sub (r34) :: r1181) + | 1623 -> One (Sub (r34) :: r1187) + | 1627 -> One (Sub (r34) :: r1188) + | 1631 -> One (Sub (r34) :: r1189) + | 1645 -> One (Sub (r34) :: r1194) + | 1653 -> One (Sub (r34) :: r1199) + | 1680 -> One (Sub (r34) :: r1217) + | 1693 -> One (Sub (r34) :: r1224) + | 1725 -> One (Sub (r34) :: r1244) + | 1733 -> One (Sub (r34) :: r1249) + | 1760 -> One (Sub (r34) :: r1267) + | 2532 -> One (Sub (r34) :: r1646) + | 2538 -> One (Sub (r34) :: r1649) + | 2544 -> One (Sub (r34) :: r1652) + | 2654 -> One (Sub (r34) :: r1757) + | 2692 -> One (Sub (r34) :: r1790) + | 3030 -> One (Sub (r34) :: r1968) + | 853 -> One (Sub (r36) :: r675) + | 2775 -> One (Sub (r36) :: r1845) + | 2799 -> One (Sub (r36) :: r1856) + | 168 -> One (Sub (r61) :: r127) + | 313 -> One (Sub (r61) :: r294) + | 320 -> One (Sub (r61) :: r303) + | 391 -> One (Sub (r61) :: r333) + | 402 -> One (Sub (r61) :: r340) + | 3422 -> One (Sub (r61) :: r2156) + | 3507 -> One (Sub (r61) :: r2175) + | 3515 -> One (Sub (r61) :: r2176) + | 135 -> One (Sub (r77) :: r90) + | 143 -> One (Sub (r79) :: r102) + | 206 -> One (Sub (r79) :: r178) + | 213 -> One (Sub (r79) :: r183) + | 229 -> One (Sub (r79) :: r185) + | 743 -> One (Sub (r79) :: r606) + | 956 -> One (Sub (r79) :: r751) + | 590 -> One (Sub (r93) :: r430) + | 995 -> One (Sub (r93) :: r790) + | 1049 -> One (Sub (r93) :: r827) + | 1055 -> One (Sub (r93) :: r828) + | 1079 -> One (Sub (r93) :: r836) + | 1082 -> One (Sub (r93) :: r838) + | 1117 -> One (Sub (r93) :: r862) + | 2255 -> One (Sub (r93) :: r1521) + | 2258 -> One (Sub (r93) :: r1523) + | 2261 -> One (Sub (r93) :: r1525) + | 2266 -> One (Sub (r93) :: r1527) + | 2269 -> One (Sub (r93) :: r1529) + | 2272 -> One (Sub (r93) :: r1531) + | 2293 -> One (Sub (r93) :: r1548) + | 2527 -> One (Sub (r93) :: r1644) + | 2571 -> One (Sub (r93) :: r1673) + | 357 -> One (Sub (r107) :: r314) + | 3374 -> One (Sub (r107) :: r2141) + | 158 -> One (Sub (r118) :: r119) + | 2634 -> One (Sub (r131) :: r1721) + | 665 -> One (Sub (r143) :: r549) + | 675 -> One (Sub (r143) :: r561) + | 2647 -> One (Sub (r171) :: r1751) + | 218 -> One (Sub (r173) :: r184) + | 198 -> One (Sub (r175) :: r177) + | 232 -> One (Sub (r191) :: r192) + | 3138 -> One (Sub (r191) :: r2011) + | 3153 -> One (Sub (r191) :: r2014) + | 810 -> One (Sub (r206) :: r623) + | 844 -> One (Sub (r206) :: r650) + | 507 -> One (Sub (r227) :: r374) + | 255 -> One (Sub (r229) :: r236) + | 500 -> One (Sub (r229) :: r373) + | 256 -> One (Sub (r242) :: r244) + | 261 -> One (Sub (r257) :: r258) + | 299 -> One (Sub (r257) :: r285) + | 361 -> One (Sub (r257) :: r317) + | 264 -> One (Sub (r264) :: r266) + | 1014 -> One (Sub (r264) :: r804) + | 1061 -> One (Sub (r264) :: r832) + | 3184 -> One (Sub (r264) :: r2042) + | 530 -> One (Sub (r385) :: r387) + | 551 -> One (Sub (r393) :: r396) + | 643 -> One (Sub (r393) :: r522) + | 1091 -> One (Sub (r393) :: r845) + | 1140 -> One (Sub (r393) :: r870) + | 1144 -> One (Sub (r393) :: r872) + | 1231 -> One (Sub (r393) :: r942) + | 1233 -> One (Sub (r393) :: r943) + | 1256 -> One (Sub (r393) :: r956) + | 1554 -> One (Sub (r393) :: r1139) + | 1958 -> One (Sub (r393) :: r1365) + | 2031 -> One (Sub (r393) :: r1403) + | 2392 -> One (Sub (r393) :: r1601) + | 3040 -> One (Sub (r393) :: r1972) + | 3060 -> One (Sub (r393) :: r1983) + | 2286 -> One (Sub (r424) :: r1545) + | 3187 -> One (Sub (r424) :: r2048) + | 3202 -> One (Sub (r424) :: r2059) + | 1176 -> One (Sub (r498) :: r899) + | 633 -> One (Sub (r504) :: r506) + | 640 -> One (Sub (r504) :: r521) + | 2229 -> One (Sub (r504) :: r1512) + | 638 -> One (Sub (r511) :: r513) + | 653 -> One (Sub (r538) :: r540) + | 672 -> One (Sub (r538) :: r560) + | 671 -> One (Sub (r545) :: r558) + | 692 -> One (Sub (r545) :: r568) + | 725 -> One (Sub (r545) :: r587) + | 767 -> One (Sub (r545) :: r612) + | 890 -> One (Sub (r545) :: r707) + | 908 -> One (Sub (r545) :: r715) + | 921 -> One (Sub (r545) :: r721) + | 925 -> One (Sub (r545) :: r724) + | 935 -> One (Sub (r545) :: r730) + | 1715 -> One (Sub (r545) :: r1237) + | 3011 -> One (Sub (r545) :: r1960) + | 3024 -> One (Sub (r545) :: r1966) + | 670 -> One (Sub (r553) :: r555) + | 736 -> One (Sub (r596) :: r599) + | 954 -> One (Sub (r596) :: r749) + | 1587 -> One (Sub (r596) :: r1168) + | 1654 -> One (Sub (r596) :: r1204) + | 1734 -> One (Sub (r596) :: r1254) + | 2776 -> One (Sub (r596) :: r1850) + | 2800 -> One (Sub (r596) :: r1861) + | 976 -> One (Sub (r652) :: r758) + | 851 -> One (Sub (r672) :: r674) + | 872 -> One (Sub (r672) :: r684) + | 2045 -> One (Sub (r687) :: r1409) + | 875 -> One (Sub (r689) :: r692) + | 940 -> One (Sub (r732) :: r733) + | 963 -> One (Sub (r752) :: r753) + | 1065 -> One (Sub (r833) :: r834) + | 2070 -> One (Sub (r1425) :: r1429) + | 2068 -> One (Sub (r1427) :: r1428) + | 2226 -> One (Sub (r1508) :: r1510) + | 2577 -> One (Sub (r1533) :: r1677) + | 2304 -> One (Sub (r1536) :: r1551) + | 2319 -> One (Sub (r1563) :: r1564) + | 2320 -> One (Sub (r1575) :: r1577) + | 3093 -> One (Sub (r1575) :: r1992) + | 3096 -> One (Sub (r1575) :: r1994) + | 3110 -> One (Sub (r1575) :: r1996) + | 3113 -> One (Sub (r1575) :: r1998) + | 3121 -> One (Sub (r1575) :: r2002) + | 3124 -> One (Sub (r1575) :: r2004) + | 3129 -> One (Sub (r1575) :: r2006) + | 3132 -> One (Sub (r1575) :: r2008) + | 2976 -> One (Sub (r1705) :: r1957) + | 2990 -> One (Sub (r1705) :: r1959) + | 2817 -> One (Sub (r1724) :: r1874) + | 2908 -> One (Sub (r1727) :: r1925) + | 2643 -> One (Sub (r1748) :: r1750) + | 3207 -> One (Sub (r1774) :: r2062) + | 2830 -> One (Sub (r1785) :: r1891) + | 2740 -> One (Sub (r1817) :: r1819) + | 2769 -> One (Sub (r1836) :: r1838) + | 2861 -> One (Sub (r1904) :: r1906) + | 2904 -> One (Sub (r1904) :: r1924) + | 3216 -> One (Sub (r2065) :: r2066) + | 3222 -> One (Sub (r2065) :: r2067) + | 1268 -> One (r0) + | 1267 -> One (r2) + | 3438 -> One (r4) + | 3437 -> One (r5) + | 3436 -> One (r6) + | 3435 -> One (r7) + | 3434 -> One (r8) | 59 -> One (r9) | 54 -> One (r10) | 55 -> One (r12) | 58 -> One (r14) | 57 -> One (r15) - | 2873 -> One (r16) - | 2877 -> One (r18) - | 3355 -> One (r20) - | 3354 -> One (r21) + | 2953 -> One (r16) + | 2957 -> One (r18) + | 3433 -> One (r20) + | 3432 -> One (r21) | 61 -> One (r22) - | 111 | 622 | 813 | 2165 -> One (r23) + | 111 | 634 | 825 | 2244 -> One (r23) | 120 -> One (r25) - | 344 | 3295 -> One (r27) - | 270 -> One (r29) - | 317 -> One (r31) - | 370 -> One (r33) - | 2537 -> One (r35) - | 3353 -> One (r37) - | 3352 -> One (r38) - | 3351 -> One (r39) + | 356 | 3373 -> One (r27) + | 282 | 854 | 858 | 965 | 969 | 1579 | 1590 | 1597 | 1603 | 1614 | 1624 | 1628 | 1632 | 1646 | 1657 | 1664 | 1670 | 1681 | 1694 | 1726 | 1737 | 1744 | 1750 | 1761 | 2533 | 2539 | 2545 -> One (r29) + | 329 -> One (r31) + | 382 -> One (r33) + | 862 -> One (r35) + | 3431 -> One (r37) + | 3430 -> One (r38) + | 3429 -> One (r39) | 113 -> One (r40) | 112 -> One (r41) | 64 -> One (r42) @@ -3943,7 +3999,7 @@ let recover = | 108 -> One (r44) | 110 -> One (r46) | 109 -> One (r47) - | 65 | 1599 -> One (r48) + | 65 | 1574 -> One (r48) | 91 -> One (r49) | 90 -> One (r50) | 87 -> One (r51) @@ -3952,2091 +4008,2142 @@ let recover = | 94 -> One (r54) | 99 -> One (r55) | 98 -> One (r56) - | 121 | 157 -> One (r57) - | 122 -> One (r58) - | 125 -> One (r59) - | 138 -> One (r63) - | 137 -> One (r64) - | 129 -> One (r65) - | 128 -> One (r66) - | 3012 -> One (r68) - | 3011 -> One (r69) - | 3010 -> One (r70) - | 3009 -> One (r71) - | 3008 -> One (r72) - | 3007 -> One (r73) - | 134 -> One (r75) - | 145 -> One (r77) - | 3339 -> One (r84) - | 3338 -> One (r85) - | 133 -> One (r86) - | 132 -> One (r87) - | 3336 -> One (r88) - | 3335 -> One (r89) - | 3334 -> One (r90) - | 3222 -> One (r91) - | 3221 -> One (r92) - | 156 -> One (r93) - | 155 -> One (r94) - | 154 -> One (r95) - | 3333 -> One (r96) - | 148 -> One (r97) - | 142 -> One (r98) - | 225 | 2276 -> One (r99) - | 224 | 2275 -> One (r100) - | 146 -> One (r101) - | 3332 -> One (r102) - | 3331 -> One (r103) - | 212 | 248 | 654 | 3085 -> One (r104) - | 359 -> One (r105) - | 3315 -> One (r107) - | 3314 -> One (r108) - | 3313 -> One (r109) - | 152 -> One (r110) - | 3220 -> One (r111) - | 166 -> One (r112) - | 165 -> One (r114) - | 164 -> One (r115) - | 159 -> One (r116) - | 161 -> One (r117) - | 163 -> One (r119) - | 263 -> One (r121) - | 295 -> One (r123) - | 630 -> One (r125) - | 2303 -> One (r127) - | 2914 -> One (r129) - | 2913 -> One (r130) - | 2909 | 3043 -> One (r131) - | 3082 -> One (r133) - | 3095 -> One (r135) - | 3094 -> One (r136) - | 3093 -> One (r137) - | 3092 -> One (r138) - | 3091 -> One (r139) - | 3084 -> One (r140) - | 169 -> One (r141) - | 168 -> One (r142) - | 3080 -> One (r143) - | 3079 -> One (r144) - | 3078 -> One (r145) - | 3077 -> One (r146) - | 3076 -> One (r147) - | 211 -> One (r148) - | 183 | 207 -> One (r149) - | 182 | 206 -> One (r150) - | 181 | 205 -> One (r151) - | 199 -> One (r153) - | 204 -> One (r155) - | 201 -> One (r157) - | 200 -> One (r158) - | 185 -> One (r159) - | 187 -> One (r160) - | 189 -> One (r162) - | 191 -> One (r163) - | 190 -> One (r164) - | 193 -> One (r165) - | 196 | 210 -> One (r166) - | 195 | 209 -> One (r167) - | 194 | 208 -> One (r168) - | 198 -> One (r169) - | 203 -> One (r170) - | 214 -> One (r171) - | 2890 -> One (r172) - | 594 -> One (r173) - | 593 -> One (r174) - | 215 | 592 -> One (r175) - | 3050 -> One (r176) - | 3051 -> One (r178) - | 3033 -> One (r179) - | 2236 -> One (r180) - | 2235 -> One (r181) - | 221 -> One (r182) - | 3004 -> One (r183) - | 2992 -> One (r184) - | 2991 -> One (r185) - | 227 -> One (r186) - | 2990 -> One (r187) - | 229 -> One (r188) - | 230 -> One (r189) - | 2357 -> One (r190) - | 2355 -> One (r191) - | 799 -> One (r192) - | 834 -> One (r194) - | 2989 -> One (r196) - | 2988 -> One (r197) - | 2987 -> One (r198) - | 233 -> One (r199) - | 232 -> One (r200) - | 2986 -> One (r201) - | 2968 -> One (r202) - | 2967 -> One (r203) - | 525 -> One (r204) - | 524 | 1614 | 1674 -> One (r205) - | 2966 -> One (r207) - | 530 -> One (r208) - | 529 -> One (r209) - | 528 -> One (r210) - | 236 -> One (r211) - | 523 -> One (r212) - | 507 -> One (r213) - | 492 -> One (r215) - | 517 -> One (r217) - | 516 -> One (r218) - | 240 -> One (r219) - | 242 -> One (r220) - | 241 -> One (r221) - | 515 -> One (r222) - | 514 -> One (r223) - | 490 -> One (r224) - | 489 -> One (r225) - | 506 -> One (r227) - | 497 -> One (r228) - | 509 -> One (r230) - | 508 -> One (r231) - | 487 -> One (r232) - | 486 -> One (r233) - | 485 -> One (r234) - | 484 -> One (r235) - | 483 -> One (r236) - | 482 -> One (r237) - | 481 -> One (r238) - | 480 -> One (r239) - | 247 -> One (r240) - | 250 -> One (r241) - | 260 -> One (r243) - | 261 -> One (r245) - | 259 | 2795 -> One (r246) - | 258 | 2794 -> One (r247) - | 251 | 2793 -> One (r248) - | 257 -> One (r250) - | 254 -> One (r252) - | 253 -> One (r253) - | 256 -> One (r254) - | 255 -> One (r255) - | 479 -> One (r258) - | 272 -> One (r260) - | 274 -> One (r261) - | 276 -> One (r263) - | 273 -> One (r264) - | 279 -> One (r265) - | 278 -> One (r266) - | 419 -> One (r267) - | 418 -> One (r268) - | 417 -> One (r269) - | 290 -> One (r270) - | 286 -> One (r271) - | 288 -> One (r272) - | 293 -> One (r273) - | 292 | 657 -> One (r274) - | 291 | 656 -> One (r275) - | 300 -> One (r276) - | 299 -> One (r277) - | 298 -> One (r278) - | 304 -> One (r279) - | 303 -> One (r280) - | 302 -> One (r281) - | 331 -> One (r282) - | 330 -> One (r283) - | 395 -> One (r284) - | 325 -> One (r285) - | 324 -> One (r286) - | 323 -> One (r287) - | 322 -> One (r288) - | 316 -> One (r289) - | 309 -> One (r290) - | 315 -> One (r291) - | 314 -> One (r292) - | 313 -> One (r293) - | 312 -> One (r294) - | 311 -> One (r295) - | 329 -> One (r296) - | 335 -> One (r297) - | 338 -> One (r298) - | 337 -> One (r299) - | 342 -> One (r300) - | 353 -> One (r301) - | 348 -> One (r302) - | 347 -> One (r303) - | 350 -> One (r304) - | 358 -> One (r305) - | 357 -> One (r306) - | 356 -> One (r307) - | 363 -> One (r308) - | 362 -> One (r309) - | 367 -> One (r310) - | 373 -> One (r311) - | 372 -> One (r312) - | 378 -> One (r313) - | 377 -> One (r314) - | 376 -> One (r315) - | 375 -> One (r316) - | 383 -> One (r317) - | 382 -> One (r318) - | 381 -> One (r319) - | 380 -> One (r320) - | 385 -> One (r321) - | 389 -> One (r322) - | 388 -> One (r323) - | 387 -> One (r324) - | 393 -> One (r325) - | 392 -> One (r326) - | 391 -> One (r327) - | 403 -> One (r328) - | 402 -> One (r329) - | 401 -> One (r330) - | 400 -> One (r331) - | 399 -> One (r332) - | 407 -> One (r333) - | 411 -> One (r334) - | 410 -> One (r335) - | 415 -> One (r336) - | 423 -> One (r337) - | 427 -> One (r338) - | 426 -> One (r339) - | 431 -> One (r340) - | 456 -> One (r341) - | 455 -> One (r342) - | 454 -> One (r343) - | 440 -> One (r344) - | 439 -> One (r345) - | 438 -> One (r346) - | 437 -> One (r347) - | 436 -> One (r348) - | 444 -> One (r349) - | 448 -> One (r350) - | 447 -> One (r351) - | 452 -> One (r352) - | 460 -> One (r353) - | 464 -> One (r354) - | 463 -> One (r355) - | 468 -> One (r356) - | 471 -> One (r357) - | 475 -> One (r358) - | 494 -> One (r359) - | 493 -> One (r360) - | 496 -> One (r361) - | 505 -> One (r362) - | 504 -> One (r364) - | 501 -> One (r365) - | 500 -> One (r366) - | 503 -> One (r367) - | 513 -> One (r368) - | 512 -> One (r369) - | 511 -> One (r370) - | 522 -> One (r371) - | 520 -> One (r373) - | 519 -> One (r374) - | 527 -> One (r375) - | 536 -> One (r376) - | 535 -> One (r377) - | 534 -> One (r378) - | 533 -> One (r379) - | 1197 -> One (r381) - | 538 | 612 | 614 | 616 | 620 | 633 | 815 | 827 | 1021 | 1192 | 1236 | 1276 | 1295 | 1306 | 1321 | 1337 | 1348 | 1359 | 1370 | 1381 | 1392 | 1403 | 1414 | 1425 | 1436 | 1447 | 1458 | 1469 | 1480 | 1491 | 1502 | 1513 | 1524 | 1535 | 1546 | 1557 | 1574 | 1587 | 1706 | 1720 | 1734 | 1749 | 1763 | 1777 | 1793 | 1807 | 1821 | 1833 | 1888 | 1894 | 1909 | 1921 | 1947 | 1973 | 1979 | 1996 | 2009 | 2022 | 2034 | 2045 | 2051 | 2066 | 2078 | 2108 | 2128 | 2342 | 2975 -> One (r382) - | 2452 -> One (r383) - | 2955 -> One (r384) - | 2954 -> One (r385) - | 2953 -> One (r386) - | 542 -> One (r387) - | 541 -> One (r388) - | 2949 -> One (r389) - | 2948 -> One (r390) - | 544 -> One (r391) - | 2946 -> One (r392) - | 2936 -> One (r393) - | 2935 -> One (r394) - | 2933 -> One (r395) - | 551 -> One (r396) - | 550 -> One (r397) - | 549 -> One (r398) - | 548 -> One (r399) - | 547 -> One (r400) - | 558 -> One (r401) - | 557 -> One (r402) - | 556 -> One (r403) - | 555 -> One (r404) - | 554 -> One (r405) - | 560 -> One (r406) - | 565 -> One (r407) - | 746 -> One (r408) - | 745 | 932 | 971 | 992 -> One (r409) - | 723 | 930 | 931 | 963 | 991 | 2655 -> One (r410) - | 574 -> One (r411) - | 577 -> One (r413) - | 576 -> One (r414) - | 573 -> One (r415) - | 572 -> One (r416) - | 2930 -> One (r417) - | 2929 -> One (r418) - | 2928 -> One (r419) - | 582 -> One (r420) - | 581 -> One (r421) - | 580 -> One (r422) - | 2927 -> One (r423) - | 2926 -> One (r424) - | 585 -> One (r425) - | 2905 -> One (r426) - | 2925 -> One (r428) - | 2924 -> One (r429) - | 2923 -> One (r430) - | 2922 -> One (r431) - | 2921 -> One (r432) - | 2920 -> One (r436) - | 2919 -> One (r437) - | 2918 -> One (r438) - | 2917 | 3086 -> One (r439) - | 2902 -> One (r444) - | 2901 -> One (r445) - | 2893 -> One (r446) - | 2892 -> One (r447) - | 2891 -> One (r448) - | 2889 -> One (r452) - | 2888 -> One (r453) - | 596 -> One (r454) - | 2470 -> One (r455) - | 2469 -> One (r456) - | 2468 -> One (r457) - | 2467 -> One (r458) - | 601 -> One (r459) - | 607 -> One (r461) - | 608 -> One (r463) - | 600 -> One (r464) - | 599 -> One (r465) - | 605 -> One (r466) - | 603 -> One (r467) - | 604 -> One (r468) - | 606 -> One (r469) - | 2462 -> One (r470) - | 2461 -> One (r471) - | 744 -> One (r472) - | 743 -> One (r473) - | 2446 -> One (r474) - | 2428 -> One (r475) - | 1700 | 2104 | 2124 | 2144 | 2413 | 2431 | 2449 -> One (r476) - | 2412 -> One (r478) - | 2411 -> One (r479) - | 640 -> One (r480) - | 2396 -> One (r481) - | 2393 -> One (r482) - | 618 -> One (r483) - | 2392 -> One (r484) - | 642 -> One (r485) - | 2157 -> One (r487) - | 2156 -> One (r488) - | 2154 -> One (r489) - | 2160 -> One (r491) - | 2383 -> One (r493) - | 2382 -> One (r494) - | 623 -> One (r495) - | 1585 -> One (r496) - | 1567 -> One (r497) - | 2381 -> One (r498) - | 2380 -> One (r500) - | 2379 -> One (r501) - | 2329 -> One (r502) - | 820 -> One (r503) - | 2374 -> One (r504) - | 2373 -> One (r505) - | 2372 -> One (r506) - | 2371 -> One (r507) - | 2370 -> One (r508) - | 2369 -> One (r509) - | 2368 -> One (r510) - | 2367 -> One (r511) - | 2366 -> One (r512) - | 2360 -> One (r513) - | 2359 -> One (r514) - | 636 -> One (r515) - | 635 -> One (r516) - | 795 -> One (r517) - | 792 -> One (r518) - | 775 -> One (r519) - | 774 -> One (r521) - | 773 -> One (r522) - | 786 -> One (r523) - | 648 -> One (r524) - | 645 -> One (r525) - | 644 -> One (r527) - | 643 -> One (r528) - | 647 -> One (r529) - | 785 -> One (r530) - | 670 | 1642 -> One (r532) - | 784 -> One (r534) - | 652 -> One (r535) - | 651 -> One (r536) - | 655 -> One (r537) - | 757 -> One (r538) - | 747 -> One (r539) - | 783 -> One (r540) - | 782 -> One (r542) - | 781 -> One (r543) - | 779 -> One (r544) - | 672 -> One (r545) - | 671 -> One (r546) - | 662 -> One (r547) - | 661 -> One (r548) - | 664 -> One (r549) - | 666 -> One (r550) - | 679 -> One (r551) - | 678 -> One (r552) - | 677 -> One (r553) - | 676 -> One (r554) - | 675 -> One (r555) - | 681 -> One (r556) - | 687 -> One (r559) - | 684 -> One (r560) - | 772 -> One (r561) - | 771 -> One (r562) + | 116 -> One (r57) + | 121 | 179 -> One (r58) + | 122 -> One (r59) + | 125 -> One (r60) + | 138 -> One (r64) + | 137 -> One (r65) + | 129 -> One (r66) + | 128 -> One (r67) + | 3078 -> One (r69) + | 3077 -> One (r70) + | 3076 -> One (r71) + | 3075 -> One (r72) + | 3074 -> One (r73) + | 3073 -> One (r74) + | 134 -> One (r76) + | 144 -> One (r78) + | 3417 -> One (r85) + | 3416 -> One (r86) + | 133 -> One (r87) + | 132 -> One (r88) + | 3414 -> One (r89) + | 3413 -> One (r90) + | 3412 -> One (r91) + | 1007 | 1011 | 1034 | 1046 | 1050 | 1072 | 1118 | 2294 | 3218 -> One (r92) + | 3285 -> One (r94) + | 3284 -> One (r95) + | 178 -> One (r96) + | 177 -> One (r97) + | 176 -> One (r98) + | 3411 -> One (r99) + | 147 -> One (r100) + | 141 -> One (r101) + | 145 -> One (r102) + | 3410 -> One (r103) + | 3409 -> One (r104) + | 228 | 260 | 666 | 3151 -> One (r105) + | 371 -> One (r106) + | 3393 -> One (r108) + | 3392 -> One (r109) + | 3391 -> One (r110) + | 151 -> One (r111) + | 157 -> One (r112) + | 156 -> One (r113) + | 155 -> One (r114) + | 175 | 2357 -> One (r115) + | 174 | 2356 -> One (r116) + | 159 -> One (r117) + | 161 -> One (r119) + | 165 -> One (r120) + | 164 -> One (r121) + | 163 -> One (r122) + | 167 -> One (r123) + | 166 -> One (r124) + | 171 -> One (r125) + | 170 -> One (r126) + | 169 -> One (r127) + | 3297 -> One (r128) + | 3283 -> One (r129) + | 188 -> One (r130) + | 187 -> One (r132) + | 186 -> One (r133) + | 181 -> One (r134) + | 183 -> One (r135) + | 185 -> One (r137) + | 182 -> One (r138) + | 275 -> One (r140) + | 307 -> One (r142) + | 642 -> One (r144) + | 2375 -> One (r146) + | 2994 -> One (r148) + | 2993 -> One (r149) + | 2989 | 3109 -> One (r150) + | 3148 -> One (r152) + | 3161 -> One (r154) + | 3160 -> One (r155) + | 3159 -> One (r156) + | 3158 -> One (r157) + | 3157 -> One (r158) + | 3150 -> One (r159) + | 191 -> One (r160) + | 190 -> One (r161) + | 3146 -> One (r162) + | 3145 -> One (r163) + | 3144 -> One (r164) + | 3143 -> One (r165) + | 3142 -> One (r166) + | 227 -> One (r167) + | 205 | 223 -> One (r168) + | 204 | 222 -> One (r169) + | 203 | 221 -> One (r170) + | 215 -> One (r172) + | 220 -> One (r174) + | 217 -> One (r176) + | 216 -> One (r177) + | 207 -> One (r178) + | 209 -> One (r179) + | 212 | 226 -> One (r180) + | 211 | 225 -> One (r181) + | 210 | 224 -> One (r182) + | 214 -> One (r183) + | 219 -> One (r184) + | 230 -> One (r185) + | 2970 -> One (r186) + | 606 -> One (r187) + | 605 -> One (r188) + | 231 | 604 -> One (r189) + | 3116 -> One (r190) + | 3117 -> One (r192) + | 3099 -> One (r193) + | 2316 -> One (r194) + | 2315 -> One (r195) + | 237 -> One (r196) + | 3072 -> One (r197) + | 3071 -> One (r198) + | 239 -> One (r199) + | 3070 -> One (r200) + | 241 -> One (r201) + | 242 -> One (r202) + | 2426 -> One (r203) + | 2424 -> One (r204) + | 811 -> One (r205) + | 846 -> One (r207) + | 3069 -> One (r209) + | 3068 -> One (r210) + | 3067 -> One (r211) + | 245 -> One (r212) + | 244 -> One (r213) + | 3066 -> One (r214) + | 3048 -> One (r215) + | 3047 -> One (r216) + | 537 -> One (r217) + | 536 -> One (r218) + | 3046 -> One (r220) + | 542 -> One (r221) + | 541 -> One (r222) + | 540 -> One (r223) + | 248 -> One (r224) + | 535 -> One (r225) + | 519 -> One (r226) + | 504 -> One (r228) + | 529 -> One (r230) + | 528 -> One (r231) + | 252 -> One (r232) + | 254 -> One (r233) + | 253 -> One (r234) + | 527 -> One (r235) + | 526 -> One (r236) + | 502 -> One (r237) + | 501 -> One (r238) + | 518 -> One (r240) + | 509 -> One (r241) + | 521 -> One (r243) + | 520 -> One (r244) + | 499 -> One (r245) + | 498 -> One (r246) + | 497 -> One (r247) + | 496 -> One (r248) + | 495 -> One (r249) + | 494 -> One (r250) + | 493 -> One (r251) + | 492 -> One (r252) + | 259 -> One (r253) + | 262 -> One (r254) + | 272 -> One (r256) + | 273 -> One (r258) + | 271 | 2875 -> One (r259) + | 270 | 2874 -> One (r260) + | 263 | 2873 -> One (r261) + | 269 -> One (r263) + | 266 -> One (r265) + | 265 -> One (r266) + | 268 -> One (r267) + | 267 -> One (r268) + | 491 -> One (r271) + | 284 -> One (r273) + | 286 -> One (r274) + | 288 -> One (r276) + | 285 -> One (r277) + | 291 -> One (r278) + | 290 -> One (r279) + | 431 -> One (r280) + | 430 -> One (r281) + | 429 -> One (r282) + | 302 -> One (r283) + | 298 -> One (r284) + | 300 -> One (r285) + | 305 -> One (r286) + | 304 | 669 -> One (r287) + | 303 | 668 -> One (r288) + | 312 -> One (r289) + | 311 -> One (r290) + | 310 -> One (r291) + | 316 -> One (r292) + | 315 -> One (r293) + | 314 -> One (r294) + | 343 -> One (r295) + | 342 -> One (r296) + | 407 -> One (r297) + | 337 -> One (r298) + | 336 -> One (r299) + | 335 -> One (r300) + | 334 -> One (r301) + | 328 -> One (r302) + | 321 -> One (r303) + | 327 -> One (r304) + | 326 -> One (r305) + | 325 -> One (r306) + | 324 -> One (r307) + | 323 -> One (r308) + | 341 -> One (r309) + | 347 -> One (r310) + | 350 -> One (r311) + | 349 -> One (r312) + | 354 -> One (r313) + | 365 -> One (r314) + | 360 -> One (r315) + | 359 -> One (r316) + | 362 -> One (r317) + | 370 -> One (r318) + | 369 -> One (r319) + | 368 -> One (r320) + | 375 -> One (r321) + | 374 -> One (r322) + | 379 -> One (r323) + | 385 -> One (r324) + | 384 -> One (r325) + | 390 -> One (r326) + | 389 -> One (r327) + | 388 -> One (r328) + | 387 -> One (r329) + | 395 -> One (r330) + | 394 -> One (r331) + | 393 -> One (r332) + | 392 -> One (r333) + | 397 -> One (r334) + | 401 -> One (r335) + | 400 -> One (r336) + | 399 -> One (r337) + | 405 -> One (r338) + | 404 -> One (r339) + | 403 -> One (r340) + | 415 -> One (r341) + | 414 -> One (r342) + | 413 -> One (r343) + | 412 -> One (r344) + | 411 -> One (r345) + | 419 -> One (r346) + | 423 -> One (r347) + | 422 -> One (r348) + | 427 -> One (r349) + | 435 -> One (r350) + | 439 -> One (r351) + | 438 -> One (r352) + | 443 -> One (r353) + | 468 -> One (r354) + | 467 -> One (r355) + | 466 -> One (r356) + | 452 -> One (r357) + | 451 -> One (r358) + | 450 -> One (r359) + | 449 -> One (r360) + | 448 -> One (r361) + | 456 -> One (r362) + | 460 -> One (r363) + | 459 -> One (r364) + | 464 -> One (r365) + | 472 -> One (r366) + | 476 -> One (r367) + | 475 -> One (r368) + | 480 -> One (r369) + | 483 -> One (r370) + | 487 -> One (r371) + | 506 -> One (r372) + | 505 -> One (r373) + | 508 -> One (r374) + | 517 -> One (r375) + | 516 -> One (r377) + | 513 -> One (r378) + | 512 -> One (r379) + | 515 -> One (r380) + | 525 -> One (r381) + | 524 -> One (r382) + | 523 -> One (r383) + | 534 -> One (r384) + | 532 -> One (r386) + | 531 -> One (r387) + | 539 -> One (r388) + | 548 -> One (r389) + | 547 -> One (r390) + | 546 -> One (r391) + | 545 -> One (r392) + | 1173 -> One (r394) + | 550 | 624 | 626 | 628 | 632 | 645 | 827 | 839 | 989 | 1168 | 1211 | 1251 | 1270 | 1281 | 1296 | 1312 | 1323 | 1334 | 1345 | 1356 | 1367 | 1378 | 1389 | 1400 | 1411 | 1422 | 1433 | 1444 | 1455 | 1466 | 1477 | 1488 | 1499 | 1510 | 1521 | 1532 | 1549 | 1562 | 1785 | 1799 | 1813 | 1828 | 1842 | 1856 | 1872 | 1886 | 1900 | 1912 | 1967 | 1973 | 1988 | 2000 | 2026 | 2052 | 2058 | 2075 | 2088 | 2101 | 2113 | 2124 | 2130 | 2145 | 2157 | 2187 | 2207 | 2411 | 3055 -> One (r395) + | 2521 -> One (r396) + | 3035 -> One (r397) + | 3034 -> One (r398) + | 3033 -> One (r399) + | 554 -> One (r400) + | 553 -> One (r401) + | 3029 -> One (r402) + | 3028 -> One (r403) + | 556 -> One (r404) + | 3026 -> One (r405) + | 3016 -> One (r406) + | 3015 -> One (r407) + | 3013 -> One (r408) + | 563 -> One (r409) + | 562 -> One (r410) + | 561 -> One (r411) + | 560 -> One (r412) + | 559 -> One (r413) + | 570 -> One (r414) + | 569 -> One (r415) + | 568 -> One (r416) + | 567 -> One (r417) + | 566 -> One (r418) + | 572 -> One (r419) + | 577 -> One (r420) + | 758 -> One (r421) + | 757 -> One (r422) + | 586 -> One (r423) + | 589 -> One (r425) + | 588 -> One (r426) + | 585 -> One (r427) + | 584 -> One (r428) + | 3010 -> One (r429) + | 3009 -> One (r430) + | 3008 -> One (r431) + | 594 -> One (r432) + | 593 -> One (r433) + | 592 -> One (r434) + | 3007 -> One (r435) + | 3006 -> One (r436) + | 597 -> One (r437) + | 2985 -> One (r438) + | 3005 -> One (r440) + | 3004 -> One (r441) + | 3003 -> One (r442) + | 3002 -> One (r443) + | 3001 -> One (r444) + | 3000 -> One (r448) + | 2999 -> One (r449) + | 2998 -> One (r450) + | 2997 | 3152 -> One (r451) + | 2982 -> One (r456) + | 2981 -> One (r457) + | 2973 -> One (r458) + | 2972 -> One (r459) + | 2971 -> One (r460) + | 2969 -> One (r464) + | 2968 -> One (r465) + | 608 -> One (r466) + | 2553 -> One (r467) + | 2552 -> One (r468) + | 2551 -> One (r469) + | 2550 -> One (r470) + | 613 -> One (r471) + | 619 -> One (r473) + | 620 -> One (r475) + | 612 -> One (r476) + | 611 -> One (r477) + | 617 -> One (r478) + | 615 -> One (r479) + | 616 -> One (r480) + | 618 -> One (r481) + | 2531 -> One (r482) + | 2530 -> One (r483) + | 756 -> One (r484) + | 755 -> One (r485) + | 2515 -> One (r486) + | 2497 -> One (r487) + | 1779 | 2183 | 2203 | 2223 | 2482 | 2500 | 2518 -> One (r488) + | 2481 -> One (r490) + | 2480 -> One (r491) + | 652 -> One (r492) + | 2465 -> One (r493) + | 2462 -> One (r494) + | 630 -> One (r495) + | 2461 -> One (r496) + | 654 -> One (r497) + | 2236 -> One (r499) + | 2235 -> One (r500) + | 2233 -> One (r501) + | 2239 -> One (r503) + | 2452 -> One (r505) + | 2451 -> One (r506) + | 635 -> One (r507) + | 1560 -> One (r508) + | 1542 -> One (r509) + | 2450 -> One (r510) + | 2449 -> One (r512) + | 2448 -> One (r513) + | 2398 -> One (r514) + | 832 -> One (r515) + | 2443 -> One (r516) + | 2442 -> One (r517) + | 2441 -> One (r518) + | 2440 -> One (r519) + | 2439 -> One (r520) + | 2438 -> One (r521) + | 2437 -> One (r522) + | 2436 -> One (r523) + | 2435 -> One (r524) + | 2429 -> One (r525) + | 2428 -> One (r526) + | 648 -> One (r527) + | 647 -> One (r528) + | 807 -> One (r529) + | 804 -> One (r530) + | 787 -> One (r531) + | 786 -> One (r533) + | 785 -> One (r534) + | 798 -> One (r535) + | 660 -> One (r536) + | 657 -> One (r537) + | 656 -> One (r539) + | 655 -> One (r540) + | 659 -> One (r541) + | 797 -> One (r542) + | 682 | 1692 -> One (r544) + | 796 -> One (r546) + | 664 -> One (r547) + | 663 -> One (r548) + | 667 -> One (r549) + | 769 -> One (r550) + | 759 -> One (r551) + | 795 -> One (r552) + | 794 -> One (r554) + | 793 -> One (r555) + | 791 -> One (r556) + | 684 -> One (r557) + | 683 -> One (r558) + | 674 -> One (r559) + | 673 -> One (r560) + | 676 -> One (r561) + | 678 -> One (r562) | 691 -> One (r563) - | 693 -> One (r564) - | 700 -> One (r565) - | 696 -> One (r566) - | 695 -> One (r567) - | 703 -> One (r568) - | 718 -> One (r569) - | 712 -> One (r570) - | 711 -> One (r571) - | 710 -> One (r572) - | 709 -> One (r573) - | 708 -> One (r574) - | 714 -> One (r575) - | 717 -> One (r576) - | 721 -> One (r577) - | 766 -> One (r578) - | 730 | 740 | 965 -> One (r579) - | 739 -> One (r581) - | 735 -> One (r583) - | 738 -> One (r585) - | 737 -> One (r586) - | 736 -> One (r587) + | 690 -> One (r564) + | 689 -> One (r565) + | 688 -> One (r566) + | 687 -> One (r567) + | 693 -> One (r568) + | 699 -> One (r571) + | 696 -> One (r572) + | 784 -> One (r573) + | 783 -> One (r574) + | 703 -> One (r575) + | 705 -> One (r576) + | 712 -> One (r577) + | 708 -> One (r578) + | 707 -> One (r579) + | 715 -> One (r580) + | 730 -> One (r581) + | 724 -> One (r582) + | 723 -> One (r583) + | 722 -> One (r584) + | 721 -> One (r585) + | 720 -> One (r586) + | 726 -> One (r587) | 729 -> One (r588) - | 728 -> One (r589) - | 727 -> One (r590) - | 726 -> One (r591) - | 734 -> One (r592) - | 733 -> One (r593) - | 732 -> One (r594) - | 754 -> One (r595) - | 753 -> One (r596) - | 752 -> One (r597) - | 751 -> One (r598) - | 750 -> One (r599) - | 756 -> One (r600) - | 761 -> One (r601) - | 760 | 938 -> One (r602) - | 759 | 933 | 972 | 993 -> One (r603) - | 763 -> One (r604) - | 765 -> One (r605) - | 768 -> One (r606) - | 767 -> One (r607) - | 770 -> One (r608) - | 790 -> One (r609) - | 794 -> One (r610) - | 797 -> One (r611) - | 2358 -> One (r612) - | 2354 -> One (r613) - | 2353 -> One (r614) - | 2352 -> One (r615) - | 2351 -> One (r616) - | 2341 -> One (r617) - | 2340 -> One (r618) - | 805 -> One (r619) - | 804 -> One (r620) - | 2339 -> One (r621) - | 2338 -> One (r622) - | 2337 -> One (r623) - | 2336 -> One (r624) - | 811 -> One (r625) - | 810 -> One (r626) - | 2335 -> One (r627) - | 2334 -> One (r628) - | 819 -> One (r629) - | 818 -> One (r630) - | 817 -> One (r631) - | 826 -> One (r632) - | 825 -> One (r633) - | 824 -> One (r634) - | 823 -> One (r635) - | 831 -> One (r636) - | 830 -> One (r637) - | 829 -> One (r638) - | 833 -> One (r639) - | 1207 -> One (r640) - | 1209 -> One (r642) - | 1612 -> One (r644) - | 1208 -> One (r646) - | 1609 -> One (r648) - | 2322 -> One (r650) - | 2321 -> One (r651) - | 2320 -> One (r652) - | 2319 -> One (r653) - | 837 -> One (r654) - | 836 -> One (r655) - | 856 -> One (r656) - | 840 -> One (r657) - | 855 -> One (r659) - | 854 -> One (r660) - | 848 -> One (r661) - | 844 -> One (r662) - | 843 -> One (r663) - | 846 -> One (r664) - | 845 -> One (r665) - | 853 -> One (r666) - | 852 -> One (r667) - | 2318 -> One (r668) - | 2317 -> One (r669) - | 2316 -> One (r670) - | 2315 -> One (r671) - | 2314 -> One (r672) - | 2313 -> One (r673) - | 860 -> One (r674) - | 2312 -> One (r675) - | 926 -> One (r676) - | 1968 -> One (r678) - | 1965 -> One (r680) - | 1964 -> One (r681) - | 1963 -> One (r682) - | 910 -> One (r683) - | 900 -> One (r684) - | 899 -> One (r685) - | 879 -> One (r686) - | 869 -> One (r687) - | 868 -> One (r688) - | 867 -> One (r689) - | 866 -> One (r690) - | 865 -> One (r691) - | 876 -> One (r692) - | 875 -> One (r693) - | 874 -> One (r694) - | 873 -> One (r695) - | 872 -> One (r696) - | 878 -> One (r697) - | 883 -> One (r698) - | 897 -> One (r699) - | 894 -> One (r700) - | 893 -> One (r701) - | 892 -> One (r702) - | 891 -> One (r703) - | 890 -> One (r704) - | 896 -> One (r705) - | 907 -> One (r706) - | 906 -> One (r707) - | 905 -> One (r708) - | 904 -> One (r709) - | 903 -> One (r710) - | 909 -> One (r711) - | 924 -> One (r712) - | 914 -> One (r713) - | 913 -> One (r714) - | 921 -> One (r715) + | 733 -> One (r589) + | 778 -> One (r590) + | 742 | 752 | 955 -> One (r591) + | 751 -> One (r593) + | 747 -> One (r595) + | 750 -> One (r597) + | 749 -> One (r598) + | 748 -> One (r599) + | 741 -> One (r600) + | 740 -> One (r601) + | 739 -> One (r602) + | 738 -> One (r603) + | 746 -> One (r604) + | 745 -> One (r605) + | 744 -> One (r606) + | 766 -> One (r607) + | 765 -> One (r608) + | 764 -> One (r609) + | 763 -> One (r610) + | 762 -> One (r611) + | 768 -> One (r612) + | 773 -> One (r613) + | 772 -> One (r614) + | 775 -> One (r615) + | 777 -> One (r616) + | 780 -> One (r617) + | 779 -> One (r618) + | 782 -> One (r619) + | 802 -> One (r620) + | 806 -> One (r621) + | 809 -> One (r622) + | 2427 -> One (r623) + | 2423 -> One (r624) + | 2422 -> One (r625) + | 2421 -> One (r626) + | 2420 -> One (r627) + | 2410 -> One (r628) + | 2409 -> One (r629) + | 817 -> One (r630) + | 816 -> One (r631) + | 2408 -> One (r632) + | 2407 -> One (r633) + | 2406 -> One (r634) + | 2405 -> One (r635) + | 823 -> One (r636) + | 822 -> One (r637) + | 2404 -> One (r638) + | 2403 -> One (r639) + | 831 -> One (r640) + | 830 -> One (r641) + | 829 -> One (r642) + | 838 -> One (r643) + | 837 -> One (r644) + | 836 -> One (r645) + | 835 -> One (r646) + | 843 -> One (r647) + | 842 -> One (r648) + | 841 -> One (r649) + | 845 -> One (r650) + | 979 -> One (r651) + | 1183 -> One (r653) + | 1185 -> One (r655) + | 1640 -> One (r657) + | 1184 -> One (r659) + | 1637 -> One (r661) + | 2391 -> One (r663) + | 2390 -> One (r664) + | 2389 -> One (r665) + | 2388 -> One (r666) + | 849 -> One (r667) + | 848 -> One (r668) + | 870 -> One (r669) + | 863 -> One (r670) + | 852 -> One (r671) + | 869 -> One (r673) + | 868 -> One (r674) + | 861 -> One (r675) + | 860 -> One (r676) + | 857 | 2611 -> One (r677) + | 856 | 2610 -> One (r678) + | 867 -> One (r679) + | 866 -> One (r680) + | 2387 -> One (r681) + | 2386 -> One (r682) + | 2385 -> One (r683) + | 873 -> One (r684) + | 2384 -> One (r685) + | 939 -> One (r686) + | 2047 -> One (r688) + | 2044 -> One (r690) + | 2043 -> One (r691) + | 2042 -> One (r692) + | 923 -> One (r693) + | 913 -> One (r694) + | 912 -> One (r695) + | 892 -> One (r696) + | 882 -> One (r697) + | 881 -> One (r698) + | 880 -> One (r699) + | 879 -> One (r700) + | 878 -> One (r701) + | 889 -> One (r702) + | 888 -> One (r703) + | 887 -> One (r704) + | 886 -> One (r705) + | 885 -> One (r706) + | 891 -> One (r707) + | 896 -> One (r708) + | 910 -> One (r709) + | 907 -> One (r710) + | 906 -> One (r711) + | 905 -> One (r712) + | 904 -> One (r713) + | 903 -> One (r714) + | 909 -> One (r715) | 920 -> One (r716) | 919 -> One (r717) | 918 -> One (r718) | 917 -> One (r719) - | 923 -> One (r720) - | 928 -> One (r721) - | 962 -> One (r723) - | 960 -> One (r724) - | 959 -> One (r725) - | 958 -> One (r726) - | 937 -> One (r728) - | 936 -> One (r729) - | 935 -> One (r730) - | 939 -> One (r731) - | 942 -> One (r732) - | 944 -> One (r733) - | 951 -> One (r734) + | 916 -> One (r720) + | 922 -> One (r721) + | 937 -> One (r722) + | 927 -> One (r723) + | 926 -> One (r724) + | 934 -> One (r725) + | 933 -> One (r726) + | 932 -> One (r727) + | 931 -> One (r728) + | 930 -> One (r729) + | 936 -> One (r730) + | 941 -> One (r731) + | 952 -> One (r733) + | 950 -> One (r734) | 949 -> One (r735) | 948 -> One (r736) - | 957 -> One (r737) - | 956 -> One (r738) - | 955 -> One (r739) - | 970 -> One (r740) - | 969 -> One (r741) - | 968 -> One (r742) - | 967 -> One (r743) - | 976 -> One (r744) - | 975 -> One (r745) - | 974 -> One (r746) - | 978 -> One (r747) - | 987 -> One (r749) - | 986 -> One (r750) - | 983 -> One (r751) - | 982 -> One (r752) - | 981 -> One (r753) - | 985 -> One (r754) - | 989 -> One (r755) - | 1011 -> One (r756) - | 997 -> One (r757) - | 996 -> One (r758) - | 995 -> One (r759) - | 1000 -> One (r760) - | 999 -> One (r761) - | 1006 -> One (r762) - | 1005 -> One (r763) - | 1004 -> One (r764) - | 1003 -> One (r765) - | 1008 -> One (r766) - | 1010 -> One (r767) - | 2310 -> One (r768) - | 1012 -> One (r769) - | 2203 -> One (r770) - | 2202 -> One (r771) - | 2201 -> One (r772) - | 2200 -> One (r773) - | 2199 -> One (r774) - | 1014 -> One (r775) - | 1613 -> One (r776) - | 2309 -> One (r778) - | 2308 -> One (r779) - | 2307 -> One (r780) - | 2305 -> One (r781) - | 2304 -> One (r782) - | 2843 -> One (r783) - | 2198 -> One (r784) - | 2197 -> One (r785) - | 2196 -> One (r786) - | 1017 -> One (r787) - | 1016 -> One (r788) - | 1141 -> One (r789) - | 1140 -> One (r790) - | 2186 -> One (r791) - | 2185 -> One (r792) - | 1020 -> One (r793) - | 1026 -> One (r794) - | 1025 -> One (r795) - | 1024 -> One (r796) - | 1023 -> One (r797) - | 1103 -> One (r798) - | 1102 -> One (r799) - | 1101 -> One (r800) - | 1100 -> One (r801) - | 1098 -> One (r802) - | 1030 -> One (r803) - | 1095 -> One (r804) - | 1094 -> One (r805) - | 1093 -> One (r806) - | 1032 -> One (r807) - | 1034 -> One (r808) - | 1088 -> One (r809) - | 1038 -> One (r810) - | 1036 -> One (r811) - | 1087 -> One (r812) - | 1046 -> One (r813) - | 1045 -> One (r814) - | 1042 -> One (r815) - | 1041 -> One (r816) - | 1049 -> One (r817) - | 1048 -> One (r818) - | 1053 -> One (r819) - | 1052 -> One (r820) - | 1051 -> One (r821) - | 1072 -> One (r822) - | 1071 -> One (r824) - | 1059 -> One (r826) - | 1058 -> One (r827) - | 1057 -> One (r828) - | 1056 -> One (r829) - | 1055 -> One (r830) - | 1063 -> One (r831) + | 944 -> One (r737) + | 947 -> One (r738) + | 946 -> One (r739) + | 975 -> One (r741) + | 974 -> One (r742) + | 973 -> One (r743) + | 962 -> One (r745) + | 961 -> One (r746) + | 953 | 977 -> One (r747) + | 960 -> One (r748) + | 959 -> One (r749) + | 958 -> One (r750) + | 957 -> One (r751) + | 972 -> One (r753) + | 966 -> One (r754) + | 971 -> One (r756) + | 968 -> One (r757) + | 978 -> One (r758) + | 2382 -> One (r759) + | 980 -> One (r760) + | 2282 -> One (r761) + | 2281 -> One (r762) + | 2280 -> One (r763) + | 2279 -> One (r764) + | 2278 -> One (r765) + | 982 -> One (r766) + | 1644 -> One (r767) + | 2381 -> One (r769) + | 2380 -> One (r770) + | 2379 -> One (r771) + | 2377 -> One (r772) + | 2376 -> One (r773) + | 2923 -> One (r774) + | 2277 -> One (r775) + | 2276 -> One (r776) + | 2275 -> One (r777) + | 985 -> One (r778) + | 984 -> One (r779) + | 1116 -> One (r780) + | 1115 -> One (r781) + | 2265 -> One (r782) + | 2264 -> One (r783) + | 988 -> One (r784) + | 994 -> One (r785) + | 993 -> One (r786) + | 992 -> One (r787) + | 991 -> One (r788) + | 1078 -> One (r789) + | 1077 -> One (r790) + | 998 -> One (r791) + | 1076 -> One (r792) + | 1075 -> One (r793) + | 1074 -> One (r794) + | 1071 -> One (r795) + | 1070 -> One (r796) + | 1000 -> One (r797) + | 1069 -> One (r798) + | 1068 -> One (r799) + | 1003 -> One (r800) + | 1009 -> One (r801) + | 1013 -> One (r802) + | 1010 -> One (r803) + | 1067 -> One (r804) + | 1021 -> One (r805) + | 1020 -> One (r806) + | 1017 -> One (r807) + | 1016 -> One (r808) + | 1024 -> One (r809) + | 1023 -> One (r810) + | 1028 -> One (r811) + | 1027 -> One (r812) + | 1026 -> One (r813) + | 1043 -> One (r814) + | 1042 -> One (r816) + | 1036 -> One (r818) + | 1033 -> One (r819) + | 1032 -> One (r820) + | 1031 -> One (r821) + | 1030 -> One (r822) + | 1041 -> One (r823) + | 1048 -> One (r825) + | 1045 -> One (r826) + | 1052 -> One (r827) + | 1056 -> One (r828) + | 1059 -> One (r829) + | 1058 -> One (r830) + | 1060 | 3505 -> One (r831) | 1062 -> One (r832) - | 1065 -> One (r833) - | 1070 -> One (r834) - | 1076 -> One (r836) - | 1079 -> One (r837) - | 1078 -> One (r838) - | 1080 | 3427 -> One (r839) - | 1082 -> One (r840) - | 1086 -> One (r842) + | 1066 -> One (r834) + | 1081 -> One (r835) + | 1080 -> One (r836) + | 1084 -> One (r837) + | 1083 -> One (r838) + | 2247 -> One (r839) + | 1087 -> One (r840) + | 1086 -> One (r841) + | 2246 -> One (r842) | 1090 -> One (r843) - | 1106 -> One (r844) - | 1105 -> One (r845) - | 1109 -> One (r846) - | 1108 -> One (r847) - | 2168 -> One (r848) - | 1112 -> One (r849) - | 1111 -> One (r850) - | 2167 -> One (r851) - | 1115 -> One (r852) - | 1114 -> One (r853) - | 1121 -> One (r854) - | 1126 -> One (r855) - | 1125 -> One (r856) - | 1124 | 2164 -> One (r857) - | 2163 -> One (r858) - | 1156 -> One (r859) - | 1155 -> One (r860) - | 1154 -> One (r861) - | 1153 -> One (r862) - | 1131 -> One (r863) - | 1130 -> One (r864) - | 1137 -> One (r865) - | 1135 -> One (r866) - | 1134 -> One (r867) - | 1133 -> One (r868) - | 1139 -> One (r869) - | 1144 -> One (r870) + | 1089 -> One (r844) + | 1096 -> One (r845) + | 1101 -> One (r846) + | 1100 -> One (r847) + | 1099 | 2243 -> One (r848) + | 2242 -> One (r849) + | 1132 -> One (r850) + | 1131 -> One (r851) + | 1130 -> One (r852) + | 1129 -> One (r853) + | 1106 -> One (r854) + | 1105 -> One (r855) + | 1112 -> One (r856) + | 1110 -> One (r857) + | 1109 -> One (r858) + | 1108 -> One (r859) + | 1114 -> One (r860) + | 1122 -> One (r861) + | 1121 -> One (r862) + | 1120 -> One (r863) + | 1126 -> One (r864) + | 2038 -> One (r865) + | 1139 -> One (r866) + | 1138 -> One (r867) + | 2037 -> One (r868) + | 2019 -> One (r869) + | 1141 -> One (r870) | 1143 -> One (r871) - | 1146 -> One (r872) - | 1150 -> One (r873) - | 1959 -> One (r874) - | 1163 -> One (r875) - | 1162 -> One (r876) - | 1958 -> One (r877) - | 1940 -> One (r878) - | 1165 -> One (r879) - | 1167 -> One (r880) - | 1169 -> One (r881) - | 1704 | 1933 -> One (r882) - | 1703 | 1932 -> One (r883) - | 1171 | 1261 -> One (r884) - | 1170 | 1260 -> One (r885) - | 1176 | 1977 | 2112 | 2132 | 2402 | 2419 | 2437 -> One (r886) - | 1175 | 1976 | 2111 | 2131 | 2401 | 2418 | 2436 -> One (r887) - | 1174 | 1975 | 2110 | 2130 | 2400 | 2417 | 2435 -> One (r888) - | 1173 | 1974 | 2109 | 2129 | 2399 | 2416 | 2434 -> One (r889) - | 1919 -> One (r890) - | 1887 -> One (r891) - | 1886 -> One (r892) - | 1180 -> One (r893) - | 1179 -> One (r894) - | 1184 -> One (r895) - | 1183 -> One (r896) - | 1182 -> One (r897) - | 1885 -> One (r898) - | 1185 -> One (r899) - | 1191 -> One (r900) - | 1190 -> One (r901) - | 1189 -> One (r902) - | 1188 -> One (r903) - | 1196 -> One (r904) - | 1195 -> One (r905) - | 1194 -> One (r906) - | 1199 -> One (r907) - | 1201 -> One (r908) - | 1747 | 1860 -> One (r909) - | 1746 | 1859 -> One (r910) - | 1203 | 1745 -> One (r911) - | 1202 | 1744 -> One (r912) - | 1857 -> One (r913) - | 1216 -> One (r914) - | 1215 -> One (r915) - | 1211 -> One (r916) - | 1206 -> One (r917) - | 1205 -> One (r918) - | 1213 -> One (r919) - | 1220 -> One (r920) - | 1219 -> One (r921) - | 1218 -> One (r922) - | 1851 -> One (r923) - | 1856 -> One (r925) - | 1855 -> One (r926) - | 1854 -> One (r927) - | 1853 -> One (r928) - | 1852 -> One (r929) - | 1849 -> One (r930) - | 1225 -> One (r931) - | 1224 -> One (r932) - | 1223 -> One (r933) - | 1222 -> One (r934) - | 1848 -> One (r935) - | 1230 -> One (r936) - | 1229 -> One (r937) - | 1228 -> One (r938) - | 1847 -> One (r939) - | 1240 -> One (r940) - | 1239 -> One (r941) - | 1238 -> One (r942) - | 1246 -> One (r943) - | 1245 -> One (r944) - | 1244 -> One (r945) - | 1253 -> One (r946) - | 1252 -> One (r947) - | 1251 -> One (r948) + | 1145 -> One (r872) + | 1783 | 2012 -> One (r873) + | 1782 | 2011 -> One (r874) + | 1147 | 1236 -> One (r875) + | 1146 | 1235 -> One (r876) + | 1152 | 2056 | 2191 | 2211 | 2471 | 2488 | 2506 -> One (r877) + | 1151 | 2055 | 2190 | 2210 | 2470 | 2487 | 2505 -> One (r878) + | 1150 | 2054 | 2189 | 2209 | 2469 | 2486 | 2504 -> One (r879) + | 1149 | 2053 | 2188 | 2208 | 2468 | 2485 | 2503 -> One (r880) + | 1998 -> One (r881) + | 1966 -> One (r882) + | 1965 -> One (r883) + | 1156 -> One (r884) + | 1155 -> One (r885) + | 1160 -> One (r886) + | 1159 -> One (r887) + | 1158 -> One (r888) + | 1964 -> One (r889) + | 1161 -> One (r890) + | 1167 -> One (r891) + | 1166 -> One (r892) + | 1165 -> One (r893) + | 1164 -> One (r894) + | 1172 -> One (r895) + | 1171 -> One (r896) + | 1170 -> One (r897) + | 1175 -> One (r898) + | 1177 -> One (r899) + | 1826 | 1939 -> One (r900) + | 1825 | 1938 -> One (r901) + | 1179 | 1824 -> One (r902) + | 1178 | 1823 -> One (r903) + | 1936 -> One (r904) + | 1191 -> One (r905) + | 1190 -> One (r906) + | 1187 -> One (r907) + | 1182 -> One (r908) + | 1181 -> One (r909) + | 1189 -> One (r910) + | 1195 -> One (r911) + | 1194 -> One (r912) + | 1193 -> One (r913) + | 1930 -> One (r914) + | 1935 -> One (r916) + | 1934 -> One (r917) + | 1933 -> One (r918) + | 1932 -> One (r919) + | 1931 -> One (r920) + | 1928 -> One (r921) + | 1200 -> One (r922) + | 1199 -> One (r923) + | 1198 -> One (r924) + | 1197 -> One (r925) + | 1927 -> One (r926) + | 1205 -> One (r927) + | 1204 -> One (r928) + | 1203 -> One (r929) + | 1926 -> One (r930) + | 1215 -> One (r931) + | 1214 -> One (r932) + | 1213 -> One (r933) + | 1221 -> One (r934) + | 1220 -> One (r935) + | 1219 -> One (r936) + | 1228 -> One (r937) + | 1227 -> One (r938) + | 1226 -> One (r939) + | 1225 -> One (r940) + | 1230 -> One (r941) + | 1232 -> One (r942) + | 1234 -> One (r943) + | 1240 | 2177 | 2197 | 2218 | 2477 | 2494 | 2512 -> One (r944) + | 1239 | 2176 | 2196 | 2217 | 2476 | 2493 | 2511 -> One (r945) + | 1238 | 2175 | 2195 | 2216 | 2475 | 2492 | 2510 -> One (r946) + | 1237 | 2174 | 2194 | 2215 | 2474 | 2491 | 2509 -> One (r947) + | 1778 -> One (r948) | 1250 -> One (r949) - | 1255 -> One (r950) - | 1257 -> One (r951) - | 1259 -> One (r952) - | 1265 | 2098 | 2118 | 2139 | 2408 | 2425 | 2443 -> One (r953) - | 1264 | 2097 | 2117 | 2138 | 2407 | 2424 | 2442 -> One (r954) - | 1263 | 2096 | 2116 | 2137 | 2406 | 2423 | 2441 -> One (r955) - | 1262 | 2095 | 2115 | 2136 | 2405 | 2422 | 2440 -> One (r956) - | 1699 -> One (r957) - | 1275 -> One (r958) - | 1274 -> One (r959) - | 1273 -> One (r960) - | 1272 -> One (r961) - | 1280 -> One (r962) - | 1279 -> One (r963) - | 1278 -> One (r964) - | 1282 -> One (r965) - | 1286 -> One (r966) - | 1285 -> One (r967) - | 1284 -> One (r968) - | 1291 -> One (r969) - | 1290 -> One (r970) - | 1304 -> One (r971) - | 1299 -> One (r972) - | 1298 -> One (r973) - | 1297 -> One (r974) - | 1303 -> One (r975) - | 1302 -> One (r976) - | 1301 -> One (r977) - | 1315 -> One (r978) - | 1310 -> One (r979) - | 1309 -> One (r980) - | 1308 -> One (r981) - | 1314 -> One (r982) - | 1313 -> One (r983) - | 1312 -> One (r984) - | 1330 -> One (r985) - | 1325 -> One (r986) - | 1324 -> One (r987) - | 1323 -> One (r988) - | 1329 -> One (r989) - | 1328 -> One (r990) - | 1327 -> One (r991) - | 1334 -> One (r992) - | 1333 -> One (r993) - | 1346 -> One (r994) - | 1341 -> One (r995) - | 1340 -> One (r996) - | 1339 -> One (r997) - | 1345 -> One (r998) - | 1344 -> One (r999) - | 1343 -> One (r1000) - | 1357 -> One (r1001) - | 1352 -> One (r1002) - | 1351 -> One (r1003) - | 1350 -> One (r1004) - | 1356 -> One (r1005) - | 1355 -> One (r1006) - | 1354 -> One (r1007) - | 1368 -> One (r1008) - | 1363 -> One (r1009) - | 1362 -> One (r1010) - | 1361 -> One (r1011) - | 1367 -> One (r1012) - | 1366 -> One (r1013) - | 1365 -> One (r1014) - | 1379 -> One (r1015) - | 1374 -> One (r1016) - | 1373 -> One (r1017) - | 1372 -> One (r1018) - | 1378 -> One (r1019) - | 1377 -> One (r1020) - | 1376 -> One (r1021) - | 1390 -> One (r1022) - | 1385 -> One (r1023) - | 1384 -> One (r1024) - | 1383 -> One (r1025) - | 1389 -> One (r1026) - | 1388 -> One (r1027) - | 1387 -> One (r1028) - | 1401 -> One (r1029) - | 1396 -> One (r1030) - | 1395 -> One (r1031) - | 1394 -> One (r1032) - | 1400 -> One (r1033) - | 1399 -> One (r1034) - | 1398 -> One (r1035) - | 1412 -> One (r1036) - | 1407 -> One (r1037) - | 1406 -> One (r1038) - | 1405 -> One (r1039) - | 1411 -> One (r1040) - | 1410 -> One (r1041) - | 1409 -> One (r1042) - | 1423 -> One (r1043) - | 1418 -> One (r1044) - | 1417 -> One (r1045) - | 1416 -> One (r1046) - | 1422 -> One (r1047) - | 1421 -> One (r1048) - | 1420 -> One (r1049) - | 1434 -> One (r1050) - | 1429 -> One (r1051) - | 1428 -> One (r1052) - | 1427 -> One (r1053) - | 1433 -> One (r1054) - | 1432 -> One (r1055) - | 1431 -> One (r1056) - | 1445 -> One (r1057) - | 1440 -> One (r1058) - | 1439 -> One (r1059) - | 1438 -> One (r1060) - | 1444 -> One (r1061) - | 1443 -> One (r1062) - | 1442 -> One (r1063) - | 1456 -> One (r1064) - | 1451 -> One (r1065) - | 1450 -> One (r1066) - | 1449 -> One (r1067) - | 1455 -> One (r1068) - | 1454 -> One (r1069) - | 1453 -> One (r1070) - | 1467 -> One (r1071) - | 1462 -> One (r1072) - | 1461 -> One (r1073) - | 1460 -> One (r1074) - | 1466 -> One (r1075) - | 1465 -> One (r1076) - | 1464 -> One (r1077) - | 1478 -> One (r1078) - | 1473 -> One (r1079) - | 1472 -> One (r1080) - | 1471 -> One (r1081) - | 1477 -> One (r1082) - | 1476 -> One (r1083) - | 1475 -> One (r1084) - | 1489 -> One (r1085) - | 1484 -> One (r1086) - | 1483 -> One (r1087) - | 1482 -> One (r1088) - | 1488 -> One (r1089) - | 1487 -> One (r1090) - | 1486 -> One (r1091) - | 1500 -> One (r1092) - | 1495 -> One (r1093) - | 1494 -> One (r1094) - | 1493 -> One (r1095) - | 1499 -> One (r1096) - | 1498 -> One (r1097) - | 1497 -> One (r1098) - | 1511 -> One (r1099) - | 1506 -> One (r1100) - | 1505 -> One (r1101) - | 1504 -> One (r1102) - | 1510 -> One (r1103) - | 1509 -> One (r1104) - | 1508 -> One (r1105) - | 1522 -> One (r1106) - | 1517 -> One (r1107) - | 1516 -> One (r1108) - | 1515 -> One (r1109) - | 1521 -> One (r1110) - | 1520 -> One (r1111) - | 1519 -> One (r1112) - | 1533 -> One (r1113) - | 1528 -> One (r1114) - | 1527 -> One (r1115) - | 1526 -> One (r1116) - | 1532 -> One (r1117) - | 1531 -> One (r1118) - | 1530 -> One (r1119) - | 1544 -> One (r1120) - | 1539 -> One (r1121) - | 1538 -> One (r1122) - | 1537 -> One (r1123) - | 1543 -> One (r1124) - | 1542 -> One (r1125) - | 1541 -> One (r1126) - | 1555 -> One (r1127) - | 1550 -> One (r1128) - | 1549 -> One (r1129) - | 1548 -> One (r1130) - | 1554 -> One (r1131) - | 1553 -> One (r1132) - | 1552 -> One (r1133) - | 1566 -> One (r1134) - | 1561 -> One (r1135) - | 1560 -> One (r1136) - | 1559 -> One (r1137) - | 1565 -> One (r1138) - | 1564 -> One (r1139) - | 1563 -> One (r1140) - | 1573 -> One (r1141) - | 1572 -> One (r1142) + | 1249 -> One (r950) + | 1248 -> One (r951) + | 1247 -> One (r952) + | 1255 -> One (r953) + | 1254 -> One (r954) + | 1253 -> One (r955) + | 1257 -> One (r956) + | 1261 -> One (r957) + | 1260 -> One (r958) + | 1259 -> One (r959) + | 1266 -> One (r960) + | 1265 -> One (r961) + | 1279 -> One (r962) + | 1274 -> One (r963) + | 1273 -> One (r964) + | 1272 -> One (r965) + | 1278 -> One (r966) + | 1277 -> One (r967) + | 1276 -> One (r968) + | 1290 -> One (r969) + | 1285 -> One (r970) + | 1284 -> One (r971) + | 1283 -> One (r972) + | 1289 -> One (r973) + | 1288 -> One (r974) + | 1287 -> One (r975) + | 1305 -> One (r976) + | 1300 -> One (r977) + | 1299 -> One (r978) + | 1298 -> One (r979) + | 1304 -> One (r980) + | 1303 -> One (r981) + | 1302 -> One (r982) + | 1309 -> One (r983) + | 1308 -> One (r984) + | 1321 -> One (r985) + | 1316 -> One (r986) + | 1315 -> One (r987) + | 1314 -> One (r988) + | 1320 -> One (r989) + | 1319 -> One (r990) + | 1318 -> One (r991) + | 1332 -> One (r992) + | 1327 -> One (r993) + | 1326 -> One (r994) + | 1325 -> One (r995) + | 1331 -> One (r996) + | 1330 -> One (r997) + | 1329 -> One (r998) + | 1343 -> One (r999) + | 1338 -> One (r1000) + | 1337 -> One (r1001) + | 1336 -> One (r1002) + | 1342 -> One (r1003) + | 1341 -> One (r1004) + | 1340 -> One (r1005) + | 1354 -> One (r1006) + | 1349 -> One (r1007) + | 1348 -> One (r1008) + | 1347 -> One (r1009) + | 1353 -> One (r1010) + | 1352 -> One (r1011) + | 1351 -> One (r1012) + | 1365 -> One (r1013) + | 1360 -> One (r1014) + | 1359 -> One (r1015) + | 1358 -> One (r1016) + | 1364 -> One (r1017) + | 1363 -> One (r1018) + | 1362 -> One (r1019) + | 1376 -> One (r1020) + | 1371 -> One (r1021) + | 1370 -> One (r1022) + | 1369 -> One (r1023) + | 1375 -> One (r1024) + | 1374 -> One (r1025) + | 1373 -> One (r1026) + | 1387 -> One (r1027) + | 1382 -> One (r1028) + | 1381 -> One (r1029) + | 1380 -> One (r1030) + | 1386 -> One (r1031) + | 1385 -> One (r1032) + | 1384 -> One (r1033) + | 1398 -> One (r1034) + | 1393 -> One (r1035) + | 1392 -> One (r1036) + | 1391 -> One (r1037) + | 1397 -> One (r1038) + | 1396 -> One (r1039) + | 1395 -> One (r1040) + | 1409 -> One (r1041) + | 1404 -> One (r1042) + | 1403 -> One (r1043) + | 1402 -> One (r1044) + | 1408 -> One (r1045) + | 1407 -> One (r1046) + | 1406 -> One (r1047) + | 1420 -> One (r1048) + | 1415 -> One (r1049) + | 1414 -> One (r1050) + | 1413 -> One (r1051) + | 1419 -> One (r1052) + | 1418 -> One (r1053) + | 1417 -> One (r1054) + | 1431 -> One (r1055) + | 1426 -> One (r1056) + | 1425 -> One (r1057) + | 1424 -> One (r1058) + | 1430 -> One (r1059) + | 1429 -> One (r1060) + | 1428 -> One (r1061) + | 1442 -> One (r1062) + | 1437 -> One (r1063) + | 1436 -> One (r1064) + | 1435 -> One (r1065) + | 1441 -> One (r1066) + | 1440 -> One (r1067) + | 1439 -> One (r1068) + | 1453 -> One (r1069) + | 1448 -> One (r1070) + | 1447 -> One (r1071) + | 1446 -> One (r1072) + | 1452 -> One (r1073) + | 1451 -> One (r1074) + | 1450 -> One (r1075) + | 1464 -> One (r1076) + | 1459 -> One (r1077) + | 1458 -> One (r1078) + | 1457 -> One (r1079) + | 1463 -> One (r1080) + | 1462 -> One (r1081) + | 1461 -> One (r1082) + | 1475 -> One (r1083) + | 1470 -> One (r1084) + | 1469 -> One (r1085) + | 1468 -> One (r1086) + | 1474 -> One (r1087) + | 1473 -> One (r1088) + | 1472 -> One (r1089) + | 1486 -> One (r1090) + | 1481 -> One (r1091) + | 1480 -> One (r1092) + | 1479 -> One (r1093) + | 1485 -> One (r1094) + | 1484 -> One (r1095) + | 1483 -> One (r1096) + | 1497 -> One (r1097) + | 1492 -> One (r1098) + | 1491 -> One (r1099) + | 1490 -> One (r1100) + | 1496 -> One (r1101) + | 1495 -> One (r1102) + | 1494 -> One (r1103) + | 1508 -> One (r1104) + | 1503 -> One (r1105) + | 1502 -> One (r1106) + | 1501 -> One (r1107) + | 1507 -> One (r1108) + | 1506 -> One (r1109) + | 1505 -> One (r1110) + | 1519 -> One (r1111) + | 1514 -> One (r1112) + | 1513 -> One (r1113) + | 1512 -> One (r1114) + | 1518 -> One (r1115) + | 1517 -> One (r1116) + | 1516 -> One (r1117) + | 1530 -> One (r1118) + | 1525 -> One (r1119) + | 1524 -> One (r1120) + | 1523 -> One (r1121) + | 1529 -> One (r1122) + | 1528 -> One (r1123) + | 1527 -> One (r1124) + | 1541 -> One (r1125) + | 1536 -> One (r1126) + | 1535 -> One (r1127) + | 1534 -> One (r1128) + | 1540 -> One (r1129) + | 1539 -> One (r1130) + | 1538 -> One (r1131) + | 1548 -> One (r1132) + | 1547 -> One (r1133) + | 1546 -> One (r1134) + | 1545 -> One (r1135) + | 1553 -> One (r1136) + | 1552 -> One (r1137) + | 1551 -> One (r1138) + | 1555 -> One (r1139) + | 1559 -> One (r1140) + | 1558 -> One (r1141) + | 1557 -> One (r1142) | 1571 -> One (r1143) - | 1570 -> One (r1144) - | 1578 -> One (r1145) - | 1577 -> One (r1146) - | 1576 -> One (r1147) - | 1580 -> One (r1148) - | 1584 -> One (r1149) - | 1583 -> One (r1150) - | 1582 -> One (r1151) - | 1596 -> One (r1152) - | 1591 -> One (r1153) - | 1590 -> One (r1154) - | 1589 -> One (r1155) - | 1595 -> One (r1156) - | 1594 -> One (r1157) - | 1593 -> One (r1158) - | 1697 -> One (r1159) - | 1694 -> One (r1160) - | 1598 -> One (r1161) - | 1603 -> One (r1163) - | 1602 -> One (r1164) - | 1610 -> One (r1165) - | 1608 -> One (r1166) - | 1607 -> One (r1167) - | 1620 -> One (r1168) - | 1619 -> One (r1169) - | 1618 -> One (r1170) - | 1617 -> One (r1171) - | 1616 -> One (r1172) - | 1623 -> One (r1173) - | 1622 -> One (r1174) - | 1628 -> One (r1175) - | 1627 -> One (r1176) - | 1626 -> One (r1177) - | 1625 -> One (r1178) - | 1631 -> One (r1179) - | 1630 -> One (r1180) - | 1634 -> One (r1181) - | 1633 -> One (r1182) - | 1637 -> One (r1183) - | 1636 -> One (r1184) - | 1641 -> One (r1185) - | 1640 -> One (r1186) - | 1646 -> One (r1187) - | 1645 -> One (r1188) - | 1644 -> One (r1189) - | 1649 -> One (r1190) - | 1648 -> One (r1191) + | 1566 -> One (r1144) + | 1565 -> One (r1145) + | 1564 -> One (r1146) + | 1570 -> One (r1147) + | 1569 -> One (r1148) + | 1568 -> One (r1149) + | 1776 -> One (r1150) + | 1773 -> One (r1151) + | 1573 -> One (r1152) + | 1621 -> One (r1154) + | 1577 -> One (r1155) + | 1585 -> One (r1156) + | 1584 -> One (r1157) + | 1583 -> One (r1158) + | 1582 -> One (r1159) + | 1581 -> One (r1160) + | 1612 -> One (r1161) + | 1611 -> One (r1162) + | 1610 -> One (r1163) + | 1596 -> One (r1164) + | 1595 -> One (r1165) + | 1594 -> One (r1166) + | 1589 -> One (r1167) + | 1588 -> One (r1168) + | 1593 -> One (r1169) + | 1592 -> One (r1170) + | 1600 -> One (r1171) + | 1599 -> One (r1172) + | 1609 -> One (r1173) + | 1608 -> One (r1174) + | 1607 -> One (r1175) + | 1602 -> One (r1176) + | 1606 -> One (r1177) + | 1605 -> One (r1178) + | 1620 -> One (r1179) + | 1619 -> One (r1180) + | 1618 -> One (r1181) + | 1617 -> One (r1182) + | 1616 -> One (r1183) + | 1638 -> One (r1184) + | 1636 -> One (r1185) + | 1635 -> One (r1186) + | 1626 -> One (r1187) + | 1630 -> One (r1188) + | 1634 -> One (r1189) + | 1643 -> One (r1190) + | 1642 -> One (r1191) | 1652 -> One (r1192) | 1651 -> One (r1193) - | 1655 -> One (r1194) - | 1654 -> One (r1195) - | 1666 -> One (r1196) - | 1663 -> One (r1197) - | 1662 -> One (r1198) - | 1661 -> One (r1199) - | 1660 -> One (r1200) - | 1659 -> One (r1201) - | 1665 -> One (r1202) - | 1669 -> One (r1203) - | 1671 -> One (r1204) - | 1689 -> One (r1205) - | 1673 -> One (r1206) - | 1679 -> One (r1207) - | 1678 -> One (r1208) - | 1677 -> One (r1209) - | 1676 -> One (r1210) - | 1682 -> One (r1211) - | 1681 -> One (r1212) - | 1685 -> One (r1213) - | 1684 -> One (r1214) - | 1688 -> One (r1215) - | 1687 -> One (r1216) - | 1692 -> One (r1217) - | 1691 -> One (r1218) - | 1696 -> One (r1219) - | 1715 -> One (r1220) - | 1710 -> One (r1221) - | 1709 -> One (r1222) - | 1708 -> One (r1223) - | 1714 -> One (r1224) - | 1713 -> One (r1225) - | 1712 -> One (r1226) - | 1718 | 1936 -> One (r1227) - | 1717 | 1935 -> One (r1228) - | 1716 | 1934 -> One (r1229) - | 1729 -> One (r1230) - | 1724 -> One (r1231) - | 1723 -> One (r1232) - | 1722 -> One (r1233) - | 1728 -> One (r1234) - | 1727 -> One (r1235) - | 1726 -> One (r1236) - | 1732 | 1939 -> One (r1237) - | 1731 | 1938 -> One (r1238) - | 1730 | 1937 -> One (r1239) - | 1743 -> One (r1240) - | 1738 -> One (r1241) - | 1737 -> One (r1242) - | 1736 -> One (r1243) - | 1742 -> One (r1244) - | 1741 -> One (r1245) - | 1740 -> One (r1246) - | 1758 -> One (r1247) - | 1753 -> One (r1248) - | 1752 -> One (r1249) - | 1751 -> One (r1250) - | 1757 -> One (r1251) - | 1756 -> One (r1252) - | 1755 -> One (r1253) - | 1761 | 1863 -> One (r1254) - | 1760 | 1862 -> One (r1255) - | 1759 | 1861 -> One (r1256) - | 1772 -> One (r1257) - | 1767 -> One (r1258) - | 1766 -> One (r1259) - | 1765 -> One (r1260) - | 1771 -> One (r1261) - | 1770 -> One (r1262) - | 1769 -> One (r1263) - | 1775 | 1866 -> One (r1264) - | 1774 | 1865 -> One (r1265) - | 1773 | 1864 -> One (r1266) - | 1786 -> One (r1267) - | 1781 -> One (r1268) - | 1780 -> One (r1269) - | 1779 -> One (r1270) - | 1785 -> One (r1271) - | 1784 -> One (r1272) - | 1783 -> One (r1273) - | 1791 | 1871 -> One (r1274) - | 1790 | 1870 -> One (r1275) - | 1789 | 1869 -> One (r1276) - | 1788 | 1868 -> One (r1277) - | 1802 -> One (r1278) - | 1797 -> One (r1279) - | 1796 -> One (r1280) - | 1795 -> One (r1281) - | 1801 -> One (r1282) - | 1800 -> One (r1283) - | 1799 -> One (r1284) - | 1805 | 1874 -> One (r1285) - | 1804 | 1873 -> One (r1286) - | 1803 | 1872 -> One (r1287) - | 1816 -> One (r1288) - | 1811 -> One (r1289) - | 1810 -> One (r1290) - | 1809 -> One (r1291) - | 1815 -> One (r1292) - | 1814 -> One (r1293) - | 1813 -> One (r1294) - | 1819 | 1877 -> One (r1295) - | 1818 | 1876 -> One (r1296) - | 1817 | 1875 -> One (r1297) - | 1830 -> One (r1298) - | 1825 -> One (r1299) - | 1824 -> One (r1300) - | 1823 -> One (r1301) - | 1829 -> One (r1302) - | 1828 -> One (r1303) - | 1827 -> One (r1304) - | 1842 -> One (r1305) - | 1837 -> One (r1306) - | 1836 -> One (r1307) - | 1835 -> One (r1308) - | 1841 -> One (r1309) - | 1840 -> One (r1310) - | 1839 -> One (r1311) - | 1880 -> One (r1312) - | 1884 -> One (r1313) - | 1883 -> One (r1314) - | 1882 -> One (r1315) - | 1892 -> One (r1316) - | 1891 -> One (r1317) - | 1890 -> One (r1318) - | 1903 -> One (r1319) - | 1898 -> One (r1320) - | 1897 -> One (r1321) - | 1896 -> One (r1322) - | 1902 -> One (r1323) - | 1901 -> One (r1324) - | 1900 -> One (r1325) - | 1907 -> One (r1326) - | 1906 -> One (r1327) - | 1905 -> One (r1328) - | 1918 -> One (r1329) - | 1913 -> One (r1330) - | 1912 -> One (r1331) - | 1911 -> One (r1332) - | 1917 -> One (r1333) - | 1916 -> One (r1334) - | 1915 -> One (r1335) - | 1930 -> One (r1336) - | 1925 -> One (r1337) - | 1924 -> One (r1338) - | 1923 -> One (r1339) - | 1929 -> One (r1340) - | 1928 -> One (r1341) - | 1927 -> One (r1342) - | 1946 -> One (r1343) - | 1945 -> One (r1344) - | 1944 -> One (r1345) - | 1943 -> One (r1346) - | 1951 -> One (r1347) - | 1950 -> One (r1348) - | 1949 -> One (r1349) - | 1953 -> One (r1350) - | 1957 -> One (r1351) - | 1956 -> One (r1352) - | 1955 -> One (r1353) - | 1962 -> One (r1354) - | 1961 -> One (r1355) - | 1967 -> One (r1356) - | 1971 -> One (r1357) - | 2101 -> One (r1358) - | 1988 -> One (r1359) - | 1983 -> One (r1360) - | 1982 -> One (r1361) - | 1981 -> One (r1362) - | 1987 -> One (r1363) - | 1986 -> One (r1364) - | 1985 -> One (r1365) - | 2043 -> One (r1366) - | 2033 -> One (r1367) - | 2088 -> One (r1369) - | 2032 -> One (r1370) - | 1992 -> One (r1371) - | 2090 -> One (r1373) - | 1990 -> One (r1375) - | 2089 -> One (r1376) - | 2005 -> One (r1377) - | 1995 -> One (r1378) - | 1994 -> One (r1379) - | 2000 -> One (r1380) - | 1999 -> One (r1381) - | 1998 -> One (r1382) - | 2004 -> One (r1383) - | 2003 -> One (r1384) - | 2002 -> One (r1385) - | 2018 -> One (r1386) - | 2008 -> One (r1387) - | 2007 -> One (r1388) - | 2013 -> One (r1389) - | 2012 -> One (r1390) - | 2011 -> One (r1391) - | 2017 -> One (r1392) - | 2016 -> One (r1393) - | 2015 -> One (r1394) - | 2031 -> One (r1395) - | 2021 -> One (r1396) - | 2020 -> One (r1397) - | 2026 -> One (r1398) - | 2025 -> One (r1399) - | 2024 -> One (r1400) - | 2030 -> One (r1401) - | 2029 -> One (r1402) - | 2028 -> One (r1403) - | 2038 -> One (r1404) - | 2037 -> One (r1405) - | 2036 -> One (r1406) - | 2042 -> One (r1407) - | 2041 -> One (r1408) - | 2040 -> One (r1409) - | 2087 -> One (r1410) - | 2077 -> One (r1411) - | 2076 -> One (r1412) - | 2060 -> One (r1413) - | 2050 -> One (r1414) - | 2049 -> One (r1415) - | 2048 -> One (r1416) - | 2047 -> One (r1417) - | 2055 -> One (r1418) - | 2054 -> One (r1419) - | 2053 -> One (r1420) - | 2059 -> One (r1421) - | 2058 -> One (r1422) - | 2057 -> One (r1423) - | 2075 -> One (r1424) - | 2065 -> One (r1425) - | 2064 -> One (r1426) - | 2063 -> One (r1427) - | 2062 -> One (r1428) - | 2070 -> One (r1429) - | 2069 -> One (r1430) - | 2068 -> One (r1431) - | 2074 -> One (r1432) - | 2073 -> One (r1433) - | 2072 -> One (r1434) - | 2082 -> One (r1435) - | 2081 -> One (r1436) - | 2080 -> One (r1437) - | 2086 -> One (r1438) - | 2085 -> One (r1439) - | 2084 -> One (r1440) - | 2092 -> One (r1441) - | 2100 -> One (r1442) - | 2103 -> One (r1443) - | 2106 -> One (r1444) - | 2121 -> One (r1445) - | 2114 -> One (r1446) - | 2120 -> One (r1447) - | 2123 -> One (r1448) - | 2126 -> One (r1449) - | 2135 -> One (r1450) - | 2134 -> One (r1451) - | 2141 -> One (r1452) - | 2143 -> One (r1453) - | 2146 -> One (r1454) - | 2149 -> One (r1456) - | 2148 -> One (r1457) - | 2162 -> One (r1458) - | 2161 -> One (r1459) - | 2153 -> One (r1460) - | 2152 -> One (r1461) - | 2170 -> One (r1462) - | 2175 -> One (r1463) - | 2174 -> One (r1464) - | 2173 -> One (r1465) - | 2172 -> One (r1466) - | 2178 -> One (r1467) - | 2177 -> One (r1468) - | 2181 -> One (r1469) - | 2180 -> One (r1470) - | 2184 -> One (r1471) - | 2183 -> One (r1472) - | 2189 -> One (r1473) - | 2188 -> One (r1474) - | 2192 -> One (r1475) - | 2191 -> One (r1476) - | 2195 -> One (r1477) - | 2194 -> One (r1478) - | 2229 -> One (r1479) - | 2213 -> One (r1481) - | 2212 -> One (r1482) - | 2223 -> One (r1484) - | 2222 -> One (r1485) - | 2221 -> One (r1486) - | 2211 -> One (r1487) - | 2206 -> One (r1488) - | 2205 -> One (r1489) - | 2210 -> One (r1491) - | 2209 -> One (r1492) - | 2208 -> One (r1493) - | 2217 -> One (r1494) - | 2216 -> One (r1495) - | 2215 -> One (r1496) - | 2220 -> One (r1497) - | 2219 -> One (r1498) - | 2225 -> One (r1499) - | 2228 -> One (r1500) - | 2227 -> One (r1501) - | 2302 -> One (r1502) - | 2301 -> One (r1503) - | 2300 -> One (r1504) - | 2299 -> One (r1505) - | 2238 -> One (r1506) - | 2232 -> One (r1507) - | 2231 -> One (r1508) - | 2272 -> One (r1509) - | 2271 -> One (r1510) - | 2270 -> One (r1512) - | 2254 -> One (r1513) - | 2259 -> One (r1522) - | 2256 -> One (r1524) - | 2255 -> One (r1525) - | 2253 -> One (r1526) - | 2252 -> One (r1527) - | 2251 -> One (r1528) - | 2250 -> One (r1529) - | 2249 -> One (r1530) - | 2245 -> One (r1531) - | 2244 -> One (r1532) - | 2248 -> One (r1533) - | 2247 -> One (r1534) - | 2262 -> One (r1535) - | 2261 -> One (r1536) - | 2269 -> One (r1537) - | 2268 -> One (r1538) - | 2264 -> One (r1539) - | 2267 -> One (r1540) - | 2266 -> One (r1541) - | 2298 -> One (r1542) - | 2283 -> One (r1543) - | 2282 -> One (r1544) - | 2281 -> One (r1545) - | 2287 -> One (r1546) - | 2286 -> One (r1547) - | 2285 -> One (r1548) - | 2294 -> One (r1549) - | 2290 -> One (r1550) - | 2293 -> One (r1551) - | 2292 -> One (r1552) - | 2297 -> One (r1553) - | 2296 -> One (r1554) - | 2324 -> One (r1555) - | 2328 -> One (r1556) - | 2327 -> One (r1557) - | 2326 -> One (r1558) - | 2333 -> One (r1559) - | 2332 -> One (r1560) - | 2331 -> One (r1561) - | 2346 -> One (r1562) - | 2345 -> One (r1563) - | 2344 -> One (r1564) - | 2350 -> One (r1565) - | 2349 -> One (r1566) - | 2348 -> One (r1567) - | 2365 -> One (r1568) - | 2364 -> One (r1569) - | 2363 -> One (r1570) - | 2362 -> One (r1571) - | 2378 -> One (r1572) - | 2377 -> One (r1573) - | 2376 -> One (r1574) - | 2387 -> One (r1575) - | 2386 -> One (r1576) - | 2385 -> One (r1577) - | 2391 -> One (r1578) - | 2390 -> One (r1579) - | 2389 -> One (r1580) - | 2398 -> One (r1581) - | 2404 -> One (r1582) - | 2410 -> One (r1583) - | 2415 -> One (r1584) - | 2421 -> One (r1585) - | 2427 -> One (r1586) - | 2430 -> One (r1587) - | 2433 -> One (r1588) - | 2439 -> One (r1589) - | 2445 -> One (r1590) - | 2448 -> One (r1591) - | 2451 -> One (r1592) - | 2457 -> One (r1593) - | 2456 -> One (r1594) - | 2455 -> One (r1595) - | 2454 -> One (r1596) - | 2460 -> One (r1597) - | 2459 -> One (r1598) - | 2464 -> One (r1599) - | 2466 -> One (r1600) - | 2887 -> One (r1601) - | 2482 -> One (r1602) - | 2481 -> One (r1603) - | 2480 -> One (r1604) - | 2479 -> One (r1605) - | 2478 -> One (r1606) - | 2477 -> One (r1607) - | 2476 -> One (r1608) - | 2475 -> One (r1609) - | 2507 -> One (r1610) - | 2506 -> One (r1611) - | 2505 -> One (r1612) - | 2493 -> One (r1613) - | 2492 -> One (r1614) - | 2491 -> One (r1615) - | 2490 -> One (r1616) - | 2487 -> One (r1617) - | 2486 -> One (r1618) - | 2485 -> One (r1619) - | 2489 -> One (r1620) - | 2504 -> One (r1621) - | 2497 -> One (r1622) - | 2496 -> One (r1623) - | 2495 -> One (r1624) - | 2503 -> One (r1625) - | 2502 -> One (r1626) - | 2501 -> One (r1627) - | 2500 -> One (r1628) - | 2499 -> One (r1629) - | 2883 -> One (r1630) - | 2882 -> One (r1631) - | 2509 -> One (r1632) - | 2511 -> One (r1633) - | 2513 -> One (r1634) - | 2881 -> One (r1635) - | 2880 -> One (r1636) - | 2515 -> One (r1637) - | 2519 -> One (r1638) - | 2518 -> One (r1639) - | 2517 -> One (r1640) - | 2533 -> One (r1641) - | 2536 -> One (r1643) - | 2535 -> One (r1644) - | 2532 -> One (r1645) - | 2531 -> One (r1646) - | 2530 -> One (r1647) - | 2526 -> One (r1648) - | 2525 -> One (r1649) - | 2524 -> One (r1650) - | 2523 -> One (r1651) - | 2529 -> One (r1652) - | 2528 -> One (r1653) - | 2549 -> One (r1655) - | 2548 -> One (r1656) - | 2547 -> One (r1657) - | 2542 -> One (r1658) - | 2552 -> One (r1662) - | 2551 -> One (r1663) - | 2550 -> One (r1664) - | 3165 -> One (r1665) - | 3164 -> One (r1666) - | 3163 -> One (r1667) - | 3162 -> One (r1668) - | 2546 -> One (r1669) - | 2554 -> One (r1670) - | 2760 -> One (r1672) - | 2823 -> One (r1674) - | 2656 -> One (r1675) - | 2840 -> One (r1677) - | 2831 -> One (r1678) - | 2830 -> One (r1679) - | 2654 -> One (r1680) - | 2653 -> One (r1681) - | 2652 -> One (r1682) - | 2651 -> One (r1683) - | 2650 -> One (r1684) - | 2614 | 2796 -> One (r1685) - | 2649 -> One (r1687) - | 2639 -> One (r1688) - | 2638 -> One (r1689) - | 2570 -> One (r1690) - | 2569 -> One (r1691) - | 2568 -> One (r1692) - | 2561 -> One (r1693) - | 2559 -> One (r1694) - | 2558 -> One (r1695) - | 2563 -> One (r1696) - | 2565 -> One (r1698) - | 2564 -> One (r1699) - | 2567 -> One (r1700) - | 2632 -> One (r1701) - | 2631 -> One (r1702) - | 2576 -> One (r1703) - | 2572 -> One (r1704) - | 2575 -> One (r1705) - | 2574 -> One (r1706) - | 2587 -> One (r1707) - | 2586 -> One (r1708) - | 2585 -> One (r1709) - | 2584 -> One (r1710) - | 2583 -> One (r1711) - | 2578 -> One (r1712) - | 2598 -> One (r1713) - | 2597 -> One (r1714) - | 2596 -> One (r1715) - | 2595 -> One (r1716) - | 2594 -> One (r1717) - | 2589 -> One (r1718) - | 2623 -> One (r1719) - | 2622 -> One (r1720) - | 2600 -> One (r1721) - | 2621 -> One (r1724) - | 2620 -> One (r1725) - | 2619 -> One (r1726) - | 2618 -> One (r1727) - | 2602 -> One (r1728) - | 2616 -> One (r1729) - | 2606 -> One (r1730) - | 2605 -> One (r1731) - | 2604 -> One (r1732) - | 2613 | 2787 -> One (r1733) - | 2610 -> One (r1735) - | 2609 -> One (r1736) - | 2608 -> One (r1737) - | 2607 | 2786 -> One (r1738) - | 2612 -> One (r1739) - | 2628 -> One (r1740) - | 2627 -> One (r1741) - | 2626 -> One (r1742) - | 2630 -> One (r1744) - | 2629 -> One (r1745) - | 2625 -> One (r1746) - | 2634 -> One (r1747) - | 2637 -> One (r1748) - | 2648 -> One (r1749) - | 2647 -> One (r1750) - | 2646 -> One (r1751) - | 2645 -> One (r1752) - | 2644 -> One (r1753) - | 2643 -> One (r1754) - | 2642 -> One (r1755) - | 2641 -> One (r1756) - | 2817 -> One (r1757) - | 2816 -> One (r1758) - | 2659 -> One (r1759) - | 2658 -> One (r1760) - | 2685 -> One (r1761) - | 2684 -> One (r1762) - | 2683 -> One (r1763) - | 2682 -> One (r1764) - | 2673 -> One (r1765) - | 2672 -> One (r1767) - | 2671 -> One (r1768) - | 2667 -> One (r1769) - | 2666 -> One (r1770) - | 2665 -> One (r1771) - | 2664 -> One (r1772) - | 2662 -> One (r1773) - | 2670 -> One (r1774) - | 2669 -> One (r1775) - | 2681 -> One (r1776) - | 2680 -> One (r1777) - | 2679 -> One (r1778) - | 2688 -> One (r1779) - | 2687 -> One (r1780) - | 2729 -> One (r1781) - | 2718 -> One (r1782) - | 2717 -> One (r1783) - | 2708 -> One (r1784) - | 2707 -> One (r1786) - | 2706 -> One (r1787) - | 2705 -> One (r1788) - | 2694 -> One (r1789) + | 1650 -> One (r1194) + | 1649 -> One (r1195) + | 1648 -> One (r1196) + | 1679 -> One (r1197) + | 1678 -> One (r1198) + | 1677 -> One (r1199) + | 1663 -> One (r1200) + | 1662 -> One (r1201) + | 1661 -> One (r1202) + | 1656 -> One (r1203) + | 1655 -> One (r1204) + | 1660 -> One (r1205) + | 1659 -> One (r1206) + | 1667 -> One (r1207) + | 1666 -> One (r1208) + | 1676 -> One (r1209) + | 1675 -> One (r1210) + | 1674 -> One (r1211) + | 1669 -> One (r1212) + | 1673 -> One (r1213) + | 1672 -> One (r1214) + | 1687 -> One (r1215) + | 1686 -> One (r1216) + | 1685 -> One (r1217) + | 1684 -> One (r1218) + | 1683 -> One (r1219) + | 1691 -> One (r1220) + | 1690 -> One (r1221) + | 1700 -> One (r1222) + | 1699 -> One (r1223) + | 1698 -> One (r1224) + | 1697 -> One (r1225) + | 1696 -> One (r1226) + | 1703 -> One (r1227) + | 1702 -> One (r1228) + | 1706 -> One (r1229) + | 1705 -> One (r1230) + | 1717 -> One (r1231) + | 1714 -> One (r1232) + | 1713 -> One (r1233) + | 1712 -> One (r1234) + | 1711 -> One (r1235) + | 1710 -> One (r1236) + | 1716 -> One (r1237) + | 1720 -> One (r1238) + | 1722 -> One (r1239) + | 1768 -> One (r1240) + | 1724 -> One (r1241) + | 1732 -> One (r1242) + | 1731 -> One (r1243) + | 1730 -> One (r1244) + | 1729 -> One (r1245) + | 1728 -> One (r1246) + | 1759 -> One (r1247) + | 1758 -> One (r1248) + | 1757 -> One (r1249) + | 1743 -> One (r1250) + | 1742 -> One (r1251) + | 1741 -> One (r1252) + | 1736 -> One (r1253) + | 1735 -> One (r1254) + | 1740 -> One (r1255) + | 1739 -> One (r1256) + | 1747 -> One (r1257) + | 1746 -> One (r1258) + | 1756 -> One (r1259) + | 1755 -> One (r1260) + | 1754 -> One (r1261) + | 1749 -> One (r1262) + | 1753 -> One (r1263) + | 1752 -> One (r1264) + | 1767 -> One (r1265) + | 1766 -> One (r1266) + | 1765 -> One (r1267) + | 1764 -> One (r1268) + | 1763 -> One (r1269) + | 1771 -> One (r1270) + | 1770 -> One (r1271) + | 1775 -> One (r1272) + | 1794 -> One (r1273) + | 1789 -> One (r1274) + | 1788 -> One (r1275) + | 1787 -> One (r1276) + | 1793 -> One (r1277) + | 1792 -> One (r1278) + | 1791 -> One (r1279) + | 1797 | 2015 -> One (r1280) + | 1796 | 2014 -> One (r1281) + | 1795 | 2013 -> One (r1282) + | 1808 -> One (r1283) + | 1803 -> One (r1284) + | 1802 -> One (r1285) + | 1801 -> One (r1286) + | 1807 -> One (r1287) + | 1806 -> One (r1288) + | 1805 -> One (r1289) + | 1811 | 2018 -> One (r1290) + | 1810 | 2017 -> One (r1291) + | 1809 | 2016 -> One (r1292) + | 1822 -> One (r1293) + | 1817 -> One (r1294) + | 1816 -> One (r1295) + | 1815 -> One (r1296) + | 1821 -> One (r1297) + | 1820 -> One (r1298) + | 1819 -> One (r1299) + | 1837 -> One (r1300) + | 1832 -> One (r1301) + | 1831 -> One (r1302) + | 1830 -> One (r1303) + | 1836 -> One (r1304) + | 1835 -> One (r1305) + | 1834 -> One (r1306) + | 1840 | 1942 -> One (r1307) + | 1839 | 1941 -> One (r1308) + | 1838 | 1940 -> One (r1309) + | 1851 -> One (r1310) + | 1846 -> One (r1311) + | 1845 -> One (r1312) + | 1844 -> One (r1313) + | 1850 -> One (r1314) + | 1849 -> One (r1315) + | 1848 -> One (r1316) + | 1854 | 1945 -> One (r1317) + | 1853 | 1944 -> One (r1318) + | 1852 | 1943 -> One (r1319) + | 1865 -> One (r1320) + | 1860 -> One (r1321) + | 1859 -> One (r1322) + | 1858 -> One (r1323) + | 1864 -> One (r1324) + | 1863 -> One (r1325) + | 1862 -> One (r1326) + | 1870 | 1950 -> One (r1327) + | 1869 | 1949 -> One (r1328) + | 1868 | 1948 -> One (r1329) + | 1867 | 1947 -> One (r1330) + | 1881 -> One (r1331) + | 1876 -> One (r1332) + | 1875 -> One (r1333) + | 1874 -> One (r1334) + | 1880 -> One (r1335) + | 1879 -> One (r1336) + | 1878 -> One (r1337) + | 1884 | 1953 -> One (r1338) + | 1883 | 1952 -> One (r1339) + | 1882 | 1951 -> One (r1340) + | 1895 -> One (r1341) + | 1890 -> One (r1342) + | 1889 -> One (r1343) + | 1888 -> One (r1344) + | 1894 -> One (r1345) + | 1893 -> One (r1346) + | 1892 -> One (r1347) + | 1898 | 1956 -> One (r1348) + | 1897 | 1955 -> One (r1349) + | 1896 | 1954 -> One (r1350) + | 1909 -> One (r1351) + | 1904 -> One (r1352) + | 1903 -> One (r1353) + | 1902 -> One (r1354) + | 1908 -> One (r1355) + | 1907 -> One (r1356) + | 1906 -> One (r1357) + | 1921 -> One (r1358) + | 1916 -> One (r1359) + | 1915 -> One (r1360) + | 1914 -> One (r1361) + | 1920 -> One (r1362) + | 1919 -> One (r1363) + | 1918 -> One (r1364) + | 1959 -> One (r1365) + | 1963 -> One (r1366) + | 1962 -> One (r1367) + | 1961 -> One (r1368) + | 1971 -> One (r1369) + | 1970 -> One (r1370) + | 1969 -> One (r1371) + | 1982 -> One (r1372) + | 1977 -> One (r1373) + | 1976 -> One (r1374) + | 1975 -> One (r1375) + | 1981 -> One (r1376) + | 1980 -> One (r1377) + | 1979 -> One (r1378) + | 1986 -> One (r1379) + | 1985 -> One (r1380) + | 1984 -> One (r1381) + | 1997 -> One (r1382) + | 1992 -> One (r1383) + | 1991 -> One (r1384) + | 1990 -> One (r1385) + | 1996 -> One (r1386) + | 1995 -> One (r1387) + | 1994 -> One (r1388) + | 2009 -> One (r1389) + | 2004 -> One (r1390) + | 2003 -> One (r1391) + | 2002 -> One (r1392) + | 2008 -> One (r1393) + | 2007 -> One (r1394) + | 2006 -> One (r1395) + | 2025 -> One (r1396) + | 2024 -> One (r1397) + | 2023 -> One (r1398) + | 2022 -> One (r1399) + | 2030 -> One (r1400) + | 2029 -> One (r1401) + | 2028 -> One (r1402) + | 2032 -> One (r1403) + | 2036 -> One (r1404) + | 2035 -> One (r1405) + | 2034 -> One (r1406) + | 2041 -> One (r1407) + | 2040 -> One (r1408) + | 2046 -> One (r1409) + | 2050 -> One (r1410) + | 2180 -> One (r1411) + | 2067 -> One (r1412) + | 2062 -> One (r1413) + | 2061 -> One (r1414) + | 2060 -> One (r1415) + | 2066 -> One (r1416) + | 2065 -> One (r1417) + | 2064 -> One (r1418) + | 2122 -> One (r1419) + | 2112 -> One (r1420) + | 2167 -> One (r1422) + | 2111 -> One (r1423) + | 2071 -> One (r1424) + | 2169 -> One (r1426) + | 2069 -> One (r1428) + | 2168 -> One (r1429) + | 2084 -> One (r1430) + | 2074 -> One (r1431) + | 2073 -> One (r1432) + | 2079 -> One (r1433) + | 2078 -> One (r1434) + | 2077 -> One (r1435) + | 2083 -> One (r1436) + | 2082 -> One (r1437) + | 2081 -> One (r1438) + | 2097 -> One (r1439) + | 2087 -> One (r1440) + | 2086 -> One (r1441) + | 2092 -> One (r1442) + | 2091 -> One (r1443) + | 2090 -> One (r1444) + | 2096 -> One (r1445) + | 2095 -> One (r1446) + | 2094 -> One (r1447) + | 2110 -> One (r1448) + | 2100 -> One (r1449) + | 2099 -> One (r1450) + | 2105 -> One (r1451) + | 2104 -> One (r1452) + | 2103 -> One (r1453) + | 2109 -> One (r1454) + | 2108 -> One (r1455) + | 2107 -> One (r1456) + | 2117 -> One (r1457) + | 2116 -> One (r1458) + | 2115 -> One (r1459) + | 2121 -> One (r1460) + | 2120 -> One (r1461) + | 2119 -> One (r1462) + | 2166 -> One (r1463) + | 2156 -> One (r1464) + | 2155 -> One (r1465) + | 2139 -> One (r1466) + | 2129 -> One (r1467) + | 2128 -> One (r1468) + | 2127 -> One (r1469) + | 2126 -> One (r1470) + | 2134 -> One (r1471) + | 2133 -> One (r1472) + | 2132 -> One (r1473) + | 2138 -> One (r1474) + | 2137 -> One (r1475) + | 2136 -> One (r1476) + | 2154 -> One (r1477) + | 2144 -> One (r1478) + | 2143 -> One (r1479) + | 2142 -> One (r1480) + | 2141 -> One (r1481) + | 2149 -> One (r1482) + | 2148 -> One (r1483) + | 2147 -> One (r1484) + | 2153 -> One (r1485) + | 2152 -> One (r1486) + | 2151 -> One (r1487) + | 2161 -> One (r1488) + | 2160 -> One (r1489) + | 2159 -> One (r1490) + | 2165 -> One (r1491) + | 2164 -> One (r1492) + | 2163 -> One (r1493) + | 2171 -> One (r1494) + | 2179 -> One (r1495) + | 2182 -> One (r1496) + | 2185 -> One (r1497) + | 2200 -> One (r1498) + | 2193 -> One (r1499) + | 2199 -> One (r1500) + | 2202 -> One (r1501) + | 2205 -> One (r1502) + | 2214 -> One (r1503) + | 2213 -> One (r1504) + | 2220 -> One (r1505) + | 2222 -> One (r1506) + | 2225 -> One (r1507) + | 2228 -> One (r1509) + | 2227 -> One (r1510) + | 2241 -> One (r1511) + | 2240 -> One (r1512) + | 2232 -> One (r1513) + | 2231 -> One (r1514) + | 2249 -> One (r1515) + | 2254 -> One (r1516) + | 2253 -> One (r1517) + | 2252 -> One (r1518) + | 2251 -> One (r1519) + | 2257 -> One (r1520) + | 2256 -> One (r1521) + | 2260 -> One (r1522) + | 2259 -> One (r1523) + | 2263 -> One (r1524) + | 2262 -> One (r1525) + | 2268 -> One (r1526) + | 2267 -> One (r1527) + | 2271 -> One (r1528) + | 2270 -> One (r1529) + | 2274 -> One (r1530) + | 2273 -> One (r1531) + | 2309 -> One (r1532) + | 2292 -> One (r1534) + | 2291 -> One (r1535) + | 2303 -> One (r1537) + | 2302 -> One (r1538) + | 2301 -> One (r1539) + | 2290 -> One (r1540) + | 2285 -> One (r1541) + | 2284 -> One (r1542) + | 2289 -> One (r1543) + | 2288 -> One (r1544) + | 2287 -> One (r1545) + | 2300 -> One (r1546) + | 2299 -> One (r1547) + | 2298 -> One (r1548) + | 2297 -> One (r1549) + | 2296 -> One (r1550) + | 2305 -> One (r1551) + | 2308 -> One (r1552) + | 2307 -> One (r1553) + | 2374 -> One (r1554) + | 2373 -> One (r1555) + | 2372 -> One (r1556) + | 2371 -> One (r1557) + | 2318 -> One (r1558) + | 2312 -> One (r1559) + | 2311 -> One (r1560) + | 2353 -> One (r1561) + | 2352 -> One (r1562) + | 2351 -> One (r1564) + | 2335 -> One (r1565) + | 2340 -> One (r1574) + | 2337 -> One (r1576) + | 2336 -> One (r1577) + | 2333 -> One (r1578) + | 2332 -> One (r1579) + | 2331 -> One (r1580) + | 2330 -> One (r1581) + | 2329 -> One (r1582) + | 2325 -> One (r1583) + | 2324 -> One (r1584) + | 2328 -> One (r1585) + | 2327 -> One (r1586) + | 2343 -> One (r1587) + | 2342 -> One (r1588) + | 2350 -> One (r1589) + | 2349 -> One (r1590) + | 2345 -> One (r1591) + | 2348 -> One (r1592) + | 2347 -> One (r1593) + | 2370 -> One (r1594) + | 2366 -> One (r1595) + | 2362 -> One (r1596) + | 2365 -> One (r1597) + | 2364 -> One (r1598) + | 2369 -> One (r1599) + | 2368 -> One (r1600) + | 2393 -> One (r1601) + | 2397 -> One (r1602) + | 2396 -> One (r1603) + | 2395 -> One (r1604) + | 2402 -> One (r1605) + | 2401 -> One (r1606) + | 2400 -> One (r1607) + | 2415 -> One (r1608) + | 2414 -> One (r1609) + | 2413 -> One (r1610) + | 2419 -> One (r1611) + | 2418 -> One (r1612) + | 2417 -> One (r1613) + | 2434 -> One (r1614) + | 2433 -> One (r1615) + | 2432 -> One (r1616) + | 2431 -> One (r1617) + | 2447 -> One (r1618) + | 2446 -> One (r1619) + | 2445 -> One (r1620) + | 2456 -> One (r1621) + | 2455 -> One (r1622) + | 2454 -> One (r1623) + | 2460 -> One (r1624) + | 2459 -> One (r1625) + | 2458 -> One (r1626) + | 2467 -> One (r1627) + | 2473 -> One (r1628) + | 2479 -> One (r1629) + | 2484 -> One (r1630) + | 2490 -> One (r1631) + | 2496 -> One (r1632) + | 2499 -> One (r1633) + | 2502 -> One (r1634) + | 2508 -> One (r1635) + | 2514 -> One (r1636) + | 2517 -> One (r1637) + | 2520 -> One (r1638) + | 2526 -> One (r1639) + | 2525 -> One (r1640) + | 2524 -> One (r1641) + | 2523 -> One (r1642) + | 2529 -> One (r1643) + | 2528 -> One (r1644) + | 2537 -> One (r1645) + | 2536 -> One (r1646) + | 2535 -> One (r1647) + | 2543 -> One (r1648) + | 2542 -> One (r1649) + | 2541 -> One (r1650) + | 2549 -> One (r1651) + | 2548 -> One (r1652) + | 2547 -> One (r1653) + | 2967 -> One (r1654) + | 2565 -> One (r1655) + | 2564 -> One (r1656) + | 2563 -> One (r1657) + | 2562 -> One (r1658) + | 2561 -> One (r1659) + | 2560 -> One (r1660) + | 2559 -> One (r1661) + | 2558 -> One (r1662) + | 2590 -> One (r1663) + | 2589 -> One (r1664) + | 2588 -> One (r1665) + | 2576 -> One (r1666) + | 2575 -> One (r1667) + | 2574 -> One (r1668) + | 2573 -> One (r1669) + | 2570 -> One (r1670) + | 2569 -> One (r1671) + | 2568 -> One (r1672) + | 2572 -> One (r1673) + | 2587 -> One (r1674) + | 2580 -> One (r1675) + | 2579 -> One (r1676) + | 2578 -> One (r1677) + | 2586 -> One (r1678) + | 2585 -> One (r1679) + | 2584 -> One (r1680) + | 2583 -> One (r1681) + | 2582 -> One (r1682) + | 2963 -> One (r1683) + | 2962 -> One (r1684) + | 2592 -> One (r1685) + | 2594 -> One (r1686) + | 2596 -> One (r1687) + | 2961 -> One (r1688) + | 2960 -> One (r1689) + | 2598 -> One (r1690) + | 2602 -> One (r1691) + | 2601 -> One (r1692) + | 2600 -> One (r1693) + | 2615 -> One (r1694) + | 2618 -> One (r1696) + | 2617 -> One (r1697) + | 2614 -> One (r1698) + | 2613 -> One (r1699) + | 2612 -> One (r1700) + | 2609 -> One (r1701) + | 2608 -> One (r1702) + | 2607 -> One (r1703) + | 2606 -> One (r1704) + | 2630 -> One (r1706) + | 2629 -> One (r1707) + | 2628 -> One (r1708) + | 2623 -> One (r1709) + | 2633 -> One (r1713) + | 2632 -> One (r1714) + | 2631 -> One (r1715) + | 3228 -> One (r1716) + | 3227 -> One (r1717) + | 3226 -> One (r1718) + | 3225 -> One (r1719) + | 2627 -> One (r1720) + | 2635 -> One (r1721) + | 2840 -> One (r1723) + | 2903 -> One (r1725) + | 2736 -> One (r1726) + | 2920 -> One (r1728) + | 2911 -> One (r1729) + | 2910 -> One (r1730) + | 2735 -> One (r1731) + | 2734 -> One (r1732) + | 2733 -> One (r1733) + | 2732 -> One (r1734) + | 2731 -> One (r1735) + | 2695 | 2876 -> One (r1736) + | 2730 -> One (r1738) + | 2720 -> One (r1739) + | 2719 -> One (r1740) + | 2651 -> One (r1741) + | 2650 -> One (r1742) + | 2649 -> One (r1743) + | 2642 -> One (r1744) + | 2640 -> One (r1745) + | 2639 -> One (r1746) + | 2644 -> One (r1747) + | 2646 -> One (r1749) + | 2645 -> One (r1750) + | 2648 -> One (r1751) + | 2713 -> One (r1752) + | 2712 -> One (r1753) + | 2657 -> One (r1754) + | 2653 -> One (r1755) + | 2656 -> One (r1756) + | 2655 -> One (r1757) + | 2668 -> One (r1758) + | 2667 -> One (r1759) + | 2666 -> One (r1760) + | 2665 -> One (r1761) + | 2664 -> One (r1762) + | 2659 -> One (r1763) + | 2679 -> One (r1764) + | 2678 -> One (r1765) + | 2677 -> One (r1766) + | 2676 -> One (r1767) + | 2675 -> One (r1768) + | 2670 -> One (r1769) + | 2704 -> One (r1770) + | 2703 -> One (r1771) + | 2681 -> One (r1772) + | 2702 -> One (r1775) + | 2701 -> One (r1776) + | 2700 -> One (r1777) + | 2699 -> One (r1778) + | 2683 -> One (r1779) + | 2697 -> One (r1780) + | 2687 -> One (r1781) + | 2686 -> One (r1782) + | 2685 -> One (r1783) + | 2694 | 2867 -> One (r1784) + | 2691 -> One (r1786) + | 2690 -> One (r1787) + | 2689 -> One (r1788) + | 2688 | 2866 -> One (r1789) | 2693 -> One (r1790) - | 2691 -> One (r1791) - | 2704 -> One (r1792) - | 2703 -> One (r1793) - | 2702 -> One (r1794) - | 2701 -> One (r1795) - | 2700 -> One (r1796) - | 2699 -> One (r1797) - | 2698 -> One (r1798) - | 2697 -> One (r1799) - | 2716 -> One (r1800) - | 2715 -> One (r1801) - | 2714 -> One (r1802) - | 2728 -> One (r1803) - | 2727 -> One (r1804) - | 2726 -> One (r1805) - | 2725 -> One (r1806) - | 2724 -> One (r1807) - | 2723 -> One (r1808) - | 2722 -> One (r1809) - | 2721 -> One (r1810) - | 2733 -> One (r1811) - | 2732 -> One (r1812) - | 2731 -> One (r1813) - | 2811 -> One (r1814) - | 2810 -> One (r1815) - | 2809 -> One (r1816) - | 2808 -> One (r1817) - | 2807 -> One (r1818) - | 2806 -> One (r1819) - | 2803 -> One (r1820) - | 2736 -> One (r1821) - | 2780 -> One (r1822) - | 2779 -> One (r1823) - | 2774 -> One (r1824) - | 2773 -> One (r1825) - | 2772 -> One (r1826) - | 2771 -> One (r1827) - | 2745 -> One (r1828) - | 2744 -> One (r1829) - | 2743 -> One (r1830) - | 2742 -> One (r1831) - | 2741 -> One (r1832) - | 2740 -> One (r1833) - | 2770 -> One (r1834) - | 2749 -> One (r1835) - | 2748 -> One (r1836) - | 2747 -> One (r1837) - | 2753 -> One (r1838) - | 2752 -> One (r1839) - | 2751 -> One (r1840) - | 2767 -> One (r1841) - | 2757 -> One (r1842) - | 2756 -> One (r1843) - | 2769 -> One (r1845) - | 2755 -> One (r1846) - | 2764 -> One (r1847) - | 2759 -> One (r1848) + | 2709 -> One (r1791) + | 2708 -> One (r1792) + | 2707 -> One (r1793) + | 2711 -> One (r1795) + | 2710 -> One (r1796) + | 2706 -> One (r1797) + | 2715 -> One (r1798) + | 2718 -> One (r1799) + | 2729 -> One (r1800) + | 2728 -> One (r1801) + | 2727 -> One (r1802) + | 2726 -> One (r1803) + | 2725 -> One (r1804) + | 2724 -> One (r1805) + | 2723 -> One (r1806) + | 2722 -> One (r1807) + | 2897 -> One (r1808) + | 2896 -> One (r1809) + | 2739 -> One (r1810) + | 2738 -> One (r1811) + | 2765 -> One (r1812) + | 2764 -> One (r1813) + | 2763 -> One (r1814) + | 2762 -> One (r1815) + | 2753 -> One (r1816) + | 2752 -> One (r1818) + | 2751 -> One (r1819) + | 2747 -> One (r1820) + | 2746 -> One (r1821) + | 2745 -> One (r1822) + | 2744 -> One (r1823) + | 2742 -> One (r1824) + | 2750 -> One (r1825) + | 2749 -> One (r1826) + | 2761 -> One (r1827) + | 2760 -> One (r1828) + | 2759 -> One (r1829) + | 2768 -> One (r1830) + | 2767 -> One (r1831) + | 2809 -> One (r1832) + | 2798 -> One (r1833) + | 2797 -> One (r1834) + | 2788 -> One (r1835) + | 2787 -> One (r1837) + | 2786 -> One (r1838) + | 2785 -> One (r1839) + | 2774 -> One (r1840) + | 2773 -> One (r1841) + | 2771 -> One (r1842) + | 2784 -> One (r1843) + | 2783 -> One (r1844) + | 2782 -> One (r1845) + | 2781 -> One (r1846) + | 2780 -> One (r1847) + | 2779 -> One (r1848) | 2778 -> One (r1849) | 2777 -> One (r1850) - | 2776 -> One (r1851) - | 2798 -> One (r1852) - | 2802 -> One (r1854) - | 2801 -> One (r1855) - | 2800 -> One (r1856) - | 2785 -> One (r1857) - | 2784 -> One (r1858) - | 2783 -> One (r1859) - | 2799 -> One (r1860) - | 2789 -> One (r1861) - | 2797 -> One (r1862) - | 2792 -> One (r1863) - | 2791 -> One (r1864) - | 2805 -> One (r1865) - | 2815 -> One (r1866) - | 2814 -> One (r1867) - | 2813 -> One (r1868) - | 2819 -> One (r1869) - | 2822 -> One (r1870) - | 2827 -> One (r1871) - | 2826 -> One (r1872) - | 2825 -> One (r1873) - | 2829 -> One (r1874) - | 2839 -> One (r1875) - | 2838 -> One (r1876) - | 2837 -> One (r1877) - | 2836 -> One (r1878) - | 2835 -> One (r1879) - | 2834 -> One (r1880) - | 2833 -> One (r1881) - | 2849 -> One (r1882) - | 2853 -> One (r1883) - | 2858 -> One (r1884) - | 2857 -> One (r1885) - | 2856 -> One (r1886) - | 2855 -> One (r1887) - | 2870 -> One (r1888) - | 2868 -> One (r1889) - | 2867 -> One (r1890) - | 2866 -> One (r1891) - | 2865 -> One (r1892) - | 2864 -> One (r1893) - | 2863 -> One (r1894) - | 2862 -> One (r1895) - | 2861 -> One (r1896) - | 2876 -> One (r1897) - | 2875 -> One (r1898) - | 2886 -> One (r1899) - | 2885 -> One (r1900) - | 2900 -> One (r1901) - | 2899 -> One (r1902) - | 2895 | 3035 -> One (r1903) - | 2894 | 3037 -> One (r1904) - | 2898 -> One (r1905) - | 2897 -> One (r1906) - | 2912 -> One (r1907) - | 2911 -> One (r1908) - | 2932 -> One (r1909) - | 2943 -> One (r1910) - | 2942 -> One (r1911) - | 2941 -> One (r1912) - | 2940 -> One (r1913) - | 2939 -> One (r1914) - | 2945 -> One (r1915) - | 2952 -> One (r1916) - | 2951 -> One (r1917) - | 2959 -> One (r1918) - | 2958 -> One (r1919) - | 2957 -> One (r1920) - | 2961 -> One (r1921) - | 2965 -> One (r1922) - | 2964 -> One (r1923) - | 2963 -> One (r1924) - | 2974 -> One (r1925) - | 2973 -> One (r1926) - | 2972 -> One (r1927) - | 2971 -> One (r1928) - | 2979 -> One (r1929) - | 2978 -> One (r1930) - | 2977 -> One (r1931) - | 2981 -> One (r1932) - | 2985 -> One (r1933) - | 2984 -> One (r1934) - | 2983 -> One (r1935) - | 2996 -> One (r1936) - | 2995 -> One (r1937) - | 2994 -> One (r1938) - | 2998 -> One (r1939) - | 3006 -> One (r1940) - | 3016 -> One (r1941) - | 3020 -> One (r1942) - | 3019 -> One (r1943) - | 3024 -> One (r1944) - | 3029 -> One (r1945) - | 3028 -> One (r1946) - | 3032 -> One (r1947) - | 3031 -> One (r1948) - | 3046 -> One (r1949) - | 3045 -> One (r1950) - | 3049 -> One (r1951) - | 3048 -> One (r1952) - | 3069 -> One (r1953) - | 3061 -> One (r1954) - | 3057 -> One (r1955) - | 3056 -> One (r1956) - | 3060 -> One (r1957) - | 3059 -> One (r1958) - | 3065 -> One (r1959) - | 3064 -> One (r1960) - | 3068 -> One (r1961) - | 3067 -> One (r1962) - | 3075 -> One (r1963) - | 3074 -> One (r1964) - | 3073 -> One (r1965) - | 3090 -> One (r1966) - | 3089 -> One (r1967) - | 3088 -> One (r1968) - | 3219 -> One (r1969) - | 3106 -> One (r1970) - | 3105 -> One (r1971) - | 3104 -> One (r1972) - | 3103 -> One (r1973) - | 3102 -> One (r1974) - | 3101 -> One (r1975) - | 3100 -> One (r1976) - | 3099 -> One (r1977) - | 3161 -> One (r1978) - | 3151 -> One (r1980) - | 3150 -> One (r1981) - | 3149 -> One (r1982) - | 3153 -> One (r1984) - | 3152 -> One (r1985) - | 3142 -> One (r1986) - | 3116 -> One (r1987) - | 3115 -> One (r1988) - | 3114 -> One (r1989) - | 3113 -> One (r1990) - | 3112 -> One (r1991) - | 3111 -> One (r1992) - | 3110 -> One (r1993) - | 3109 -> One (r1994) - | 3120 -> One (r1995) - | 3119 -> One (r1996) - | 3135 -> One (r1997) - | 3126 -> One (r1998) - | 3125 -> One (r1999) - | 3124 -> One (r2000) + | 2796 -> One (r1851) + | 2795 -> One (r1852) + | 2794 -> One (r1853) + | 2808 -> One (r1854) + | 2807 -> One (r1855) + | 2806 -> One (r1856) + | 2805 -> One (r1857) + | 2804 -> One (r1858) + | 2803 -> One (r1859) + | 2802 -> One (r1860) + | 2801 -> One (r1861) + | 2813 -> One (r1862) + | 2812 -> One (r1863) + | 2811 -> One (r1864) + | 2891 -> One (r1865) + | 2890 -> One (r1866) + | 2889 -> One (r1867) + | 2888 -> One (r1868) + | 2887 -> One (r1869) + | 2886 -> One (r1870) + | 2883 -> One (r1871) + | 2816 -> One (r1872) + | 2860 -> One (r1873) + | 2859 -> One (r1874) + | 2854 -> One (r1875) + | 2853 -> One (r1876) + | 2852 -> One (r1877) + | 2851 -> One (r1878) + | 2825 -> One (r1879) + | 2824 -> One (r1880) + | 2823 -> One (r1881) + | 2822 -> One (r1882) + | 2821 -> One (r1883) + | 2820 -> One (r1884) + | 2850 -> One (r1885) + | 2829 -> One (r1886) + | 2828 -> One (r1887) + | 2827 -> One (r1888) + | 2833 -> One (r1889) + | 2832 -> One (r1890) + | 2831 -> One (r1891) + | 2847 -> One (r1892) + | 2837 -> One (r1893) + | 2836 -> One (r1894) + | 2849 -> One (r1896) + | 2835 -> One (r1897) + | 2844 -> One (r1898) + | 2839 -> One (r1899) + | 2858 -> One (r1900) + | 2857 -> One (r1901) + | 2856 -> One (r1902) + | 2878 -> One (r1903) + | 2882 -> One (r1905) + | 2881 -> One (r1906) + | 2880 -> One (r1907) + | 2865 -> One (r1908) + | 2864 -> One (r1909) + | 2863 -> One (r1910) + | 2879 -> One (r1911) + | 2869 -> One (r1912) + | 2877 -> One (r1913) + | 2872 -> One (r1914) + | 2871 -> One (r1915) + | 2885 -> One (r1916) + | 2895 -> One (r1917) + | 2894 -> One (r1918) + | 2893 -> One (r1919) + | 2899 -> One (r1920) + | 2902 -> One (r1921) + | 2907 -> One (r1922) + | 2906 -> One (r1923) + | 2905 -> One (r1924) + | 2909 -> One (r1925) + | 2919 -> One (r1926) + | 2918 -> One (r1927) + | 2917 -> One (r1928) + | 2916 -> One (r1929) + | 2915 -> One (r1930) + | 2914 -> One (r1931) + | 2913 -> One (r1932) + | 2929 -> One (r1933) + | 2933 -> One (r1934) + | 2938 -> One (r1935) + | 2937 -> One (r1936) + | 2936 -> One (r1937) + | 2935 -> One (r1938) + | 2950 -> One (r1939) + | 2948 -> One (r1940) + | 2947 -> One (r1941) + | 2946 -> One (r1942) + | 2945 -> One (r1943) + | 2944 -> One (r1944) + | 2943 -> One (r1945) + | 2942 -> One (r1946) + | 2941 -> One (r1947) + | 2956 -> One (r1948) + | 2955 -> One (r1949) + | 2966 -> One (r1950) + | 2965 -> One (r1951) + | 2980 -> One (r1952) + | 2979 -> One (r1953) + | 2975 | 3101 -> One (r1954) + | 2974 | 3103 -> One (r1955) + | 2978 -> One (r1956) + | 2977 -> One (r1957) + | 2992 -> One (r1958) + | 2991 -> One (r1959) + | 3012 -> One (r1960) + | 3023 -> One (r1961) + | 3022 -> One (r1962) + | 3021 -> One (r1963) + | 3020 -> One (r1964) + | 3019 -> One (r1965) + | 3025 -> One (r1966) + | 3032 -> One (r1967) + | 3031 -> One (r1968) + | 3039 -> One (r1969) + | 3038 -> One (r1970) + | 3037 -> One (r1971) + | 3041 -> One (r1972) + | 3045 -> One (r1973) + | 3044 -> One (r1974) + | 3043 -> One (r1975) + | 3054 -> One (r1976) + | 3053 -> One (r1977) + | 3052 -> One (r1978) + | 3051 -> One (r1979) + | 3059 -> One (r1980) + | 3058 -> One (r1981) + | 3057 -> One (r1982) + | 3061 -> One (r1983) + | 3065 -> One (r1984) + | 3064 -> One (r1985) + | 3063 -> One (r1986) + | 3082 -> One (r1987) + | 3086 -> One (r1988) + | 3085 -> One (r1989) + | 3090 -> One (r1990) + | 3095 -> One (r1991) + | 3094 -> One (r1992) + | 3098 -> One (r1993) + | 3097 -> One (r1994) + | 3112 -> One (r1995) + | 3111 -> One (r1996) + | 3115 -> One (r1997) + | 3114 -> One (r1998) + | 3135 -> One (r1999) + | 3127 -> One (r2000) | 3123 -> One (r2001) | 3122 -> One (r2002) - | 3134 -> One (r2003) - | 3133 -> One (r2004) - | 3132 -> One (r2005) - | 3131 -> One (r2006) - | 3130 -> One (r2007) - | 3129 -> One (r2008) - | 3128 -> One (r2009) - | 3139 -> One (r2010) - | 3138 -> One (r2011) - | 3141 -> One (r2013) - | 3140 -> One (r2014) - | 3137 -> One (r2015) - | 3148 -> One (r2016) - | 3147 -> One (r2017) - | 3144 -> One (r2018) - | 3146 -> One (r2019) - | 3156 -> One (r2020) - | 3155 -> One (r2021) - | 3158 -> One (r2023) - | 3160 -> One (r2024) - | 3184 -> One (r2025) - | 3174 -> One (r2026) - | 3173 -> One (r2027) - | 3172 -> One (r2028) - | 3171 -> One (r2029) - | 3170 -> One (r2030) - | 3169 -> One (r2031) - | 3168 -> One (r2032) - | 3167 -> One (r2033) - | 3183 -> One (r2034) - | 3182 -> One (r2035) - | 3181 -> One (r2036) - | 3180 -> One (r2037) - | 3179 -> One (r2038) - | 3178 -> One (r2039) - | 3177 -> One (r2040) - | 3176 -> One (r2041) - | 3193 -> One (r2042) - | 3196 -> One (r2043) - | 3202 -> One (r2044) - | 3201 -> One (r2045) - | 3200 -> One (r2046) - | 3199 -> One (r2047) - | 3198 -> One (r2048) - | 3204 -> One (r2049) - | 3216 -> One (r2050) - | 3215 -> One (r2051) - | 3214 -> One (r2052) - | 3213 -> One (r2053) - | 3212 -> One (r2054) - | 3211 -> One (r2055) - | 3210 -> One (r2056) - | 3209 -> One (r2057) - | 3208 -> One (r2058) - | 3207 -> One (r2059) - | 3228 -> One (r2060) - | 3227 -> One (r2061) - | 3226 -> One (r2062) - | 3225 -> One (r2063) - | 3224 -> One (r2064) - | 3232 -> One (r2065) - | 3236 -> One (r2066) - | 3235 -> One (r2067) - | 3240 -> One (r2068) - | 3244 -> One (r2069) - | 3243 -> One (r2070) - | 3248 -> One (r2071) - | 3252 -> One (r2072) - | 3251 -> One (r2073) - | 3256 -> One (r2074) - | 3281 -> One (r2075) - | 3280 -> One (r2076) - | 3279 -> One (r2077) - | 3265 -> One (r2078) - | 3264 -> One (r2079) - | 3263 -> One (r2080) - | 3262 -> One (r2081) - | 3261 -> One (r2082) - | 3269 -> One (r2083) - | 3273 -> One (r2084) - | 3272 -> One (r2085) - | 3277 -> One (r2086) - | 3285 -> One (r2087) - | 3289 -> One (r2088) - | 3288 -> One (r2089) - | 3293 -> One (r2090) - | 3299 -> One (r2091) - | 3298 -> One (r2092) - | 3297 -> One (r2093) - | 3303 -> One (r2094) - | 3307 -> One (r2095) - | 3306 -> One (r2096) - | 3311 -> One (r2097) - | 3317 -> One (r2098) - | 3321 -> One (r2099) - | 3325 -> One (r2100) - | 3324 -> One (r2101) - | 3329 -> One (r2102) - | 3343 -> One (r2103) - | 3342 -> One (r2104) - | 3341 -> One (r2105) - | 3347 -> One (r2106) - | 3346 -> One (r2107) - | 3345 -> One (r2108) - | 3362 -> One (r2109) - | 3366 -> One (r2110) - | 3371 -> One (r2111) - | 3378 -> One (r2112) - | 3377 -> One (r2113) - | 3376 -> One (r2114) - | 3375 -> One (r2115) - | 3385 -> One (r2116) - | 3389 -> One (r2117) - | 3393 -> One (r2118) - | 3396 -> One (r2119) - | 3401 -> One (r2120) - | 3405 -> One (r2121) - | 3409 -> One (r2122) - | 3413 -> One (r2123) - | 3417 -> One (r2124) - | 3420 -> One (r2125) - | 3424 -> One (r2126) - | 3430 -> One (r2127) - | 3438 -> One (r2128) - | 3448 -> One (r2129) - | 3450 -> One (r2130) - | 3453 -> One (r2131) - | 3452 -> One (r2132) - | 3455 -> One (r2133) - | 3465 -> One (r2134) - | 3461 -> One (r2135) - | 3460 -> One (r2136) - | 3464 -> One (r2137) - | 3463 -> One (r2138) - | 3470 -> One (r2139) - | 3469 -> One (r2140) - | 3468 -> One (r2141) - | 3472 -> One (r2142) - | 690 -> Select (function + | 3126 -> One (r2003) + | 3125 -> One (r2004) + | 3131 -> One (r2005) + | 3130 -> One (r2006) + | 3134 -> One (r2007) + | 3133 -> One (r2008) + | 3141 -> One (r2009) + | 3140 -> One (r2010) + | 3139 -> One (r2011) + | 3156 -> One (r2012) + | 3155 -> One (r2013) + | 3154 -> One (r2014) + | 3282 -> One (r2015) + | 3172 -> One (r2016) + | 3171 -> One (r2017) + | 3170 -> One (r2018) + | 3169 -> One (r2019) + | 3168 -> One (r2020) + | 3167 -> One (r2021) + | 3166 -> One (r2022) + | 3165 -> One (r2023) + | 3224 -> One (r2024) + | 3213 -> One (r2026) + | 3212 -> One (r2027) + | 3211 -> One (r2028) + | 3215 -> One (r2030) + | 3214 -> One (r2031) + | 3206 -> One (r2032) + | 3182 -> One (r2033) + | 3181 -> One (r2034) + | 3180 -> One (r2035) + | 3179 -> One (r2036) + | 3178 -> One (r2037) + | 3177 -> One (r2038) + | 3176 -> One (r2039) + | 3175 -> One (r2040) + | 3186 -> One (r2041) + | 3185 -> One (r2042) + | 3201 -> One (r2043) + | 3192 -> One (r2044) + | 3191 -> One (r2045) + | 3190 -> One (r2046) + | 3189 -> One (r2047) + | 3188 -> One (r2048) + | 3200 -> One (r2049) + | 3199 -> One (r2050) + | 3198 -> One (r2051) + | 3197 -> One (r2052) + | 3196 -> One (r2053) + | 3195 -> One (r2054) + | 3194 -> One (r2055) + | 3205 -> One (r2057) + | 3204 -> One (r2058) + | 3203 -> One (r2059) + | 3210 -> One (r2060) + | 3209 -> One (r2061) + | 3208 -> One (r2062) + | 3220 -> One (r2063) + | 3217 -> One (r2064) + | 3221 -> One (r2066) + | 3223 -> One (r2067) + | 3247 -> One (r2068) + | 3237 -> One (r2069) + | 3236 -> One (r2070) + | 3235 -> One (r2071) + | 3234 -> One (r2072) + | 3233 -> One (r2073) + | 3232 -> One (r2074) + | 3231 -> One (r2075) + | 3230 -> One (r2076) + | 3246 -> One (r2077) + | 3245 -> One (r2078) + | 3244 -> One (r2079) + | 3243 -> One (r2080) + | 3242 -> One (r2081) + | 3241 -> One (r2082) + | 3240 -> One (r2083) + | 3239 -> One (r2084) + | 3256 -> One (r2085) + | 3259 -> One (r2086) + | 3265 -> One (r2087) + | 3264 -> One (r2088) + | 3263 -> One (r2089) + | 3262 -> One (r2090) + | 3261 -> One (r2091) + | 3267 -> One (r2092) + | 3279 -> One (r2093) + | 3278 -> One (r2094) + | 3277 -> One (r2095) + | 3276 -> One (r2096) + | 3275 -> One (r2097) + | 3274 -> One (r2098) + | 3273 -> One (r2099) + | 3272 -> One (r2100) + | 3271 -> One (r2101) + | 3270 -> One (r2102) + | 3289 -> One (r2103) + | 3288 -> One (r2104) + | 3287 -> One (r2105) + | 3291 -> One (r2106) + | 3299 -> One (r2107) + | 3306 -> One (r2108) + | 3305 -> One (r2109) + | 3304 -> One (r2110) + | 3303 -> One (r2111) + | 3302 -> One (r2112) + | 3310 -> One (r2113) + | 3314 -> One (r2114) + | 3313 -> One (r2115) + | 3318 -> One (r2116) + | 3322 -> One (r2117) + | 3321 -> One (r2118) + | 3326 -> One (r2119) + | 3330 -> One (r2120) + | 3329 -> One (r2121) + | 3334 -> One (r2122) + | 3359 -> One (r2123) + | 3358 -> One (r2124) + | 3357 -> One (r2125) + | 3343 -> One (r2126) + | 3342 -> One (r2127) + | 3341 -> One (r2128) + | 3340 -> One (r2129) + | 3339 -> One (r2130) + | 3347 -> One (r2131) + | 3351 -> One (r2132) + | 3350 -> One (r2133) + | 3355 -> One (r2134) + | 3363 -> One (r2135) + | 3367 -> One (r2136) + | 3366 -> One (r2137) + | 3371 -> One (r2138) + | 3377 -> One (r2139) + | 3376 -> One (r2140) + | 3375 -> One (r2141) + | 3381 -> One (r2142) + | 3385 -> One (r2143) + | 3384 -> One (r2144) + | 3389 -> One (r2145) + | 3395 -> One (r2146) + | 3399 -> One (r2147) + | 3403 -> One (r2148) + | 3402 -> One (r2149) + | 3407 -> One (r2150) + | 3421 -> One (r2151) + | 3420 -> One (r2152) + | 3419 -> One (r2153) + | 3425 -> One (r2154) + | 3424 -> One (r2155) + | 3423 -> One (r2156) + | 3440 -> One (r2157) + | 3444 -> One (r2158) + | 3449 -> One (r2159) + | 3456 -> One (r2160) + | 3455 -> One (r2161) + | 3454 -> One (r2162) + | 3453 -> One (r2163) + | 3463 -> One (r2164) + | 3467 -> One (r2165) + | 3471 -> One (r2166) + | 3474 -> One (r2167) + | 3479 -> One (r2168) + | 3483 -> One (r2169) + | 3487 -> One (r2170) + | 3491 -> One (r2171) + | 3495 -> One (r2172) + | 3498 -> One (r2173) + | 3502 -> One (r2174) + | 3508 -> One (r2175) + | 3516 -> One (r2176) + | 3526 -> One (r2177) + | 3528 -> One (r2178) + | 3531 -> One (r2179) + | 3530 -> One (r2180) + | 3533 -> One (r2181) + | 3543 -> One (r2182) + | 3539 -> One (r2183) + | 3538 -> One (r2184) + | 3542 -> One (r2185) + | 3541 -> One (r2186) + | 3548 -> One (r2187) + | 3547 -> One (r2188) + | 3546 -> One (r2189) + | 3550 -> One (r2190) + | 702 -> Select (function | -1 -> [R 132] - | _ -> S (T T_DOT) :: r563) - | 1123 -> Select (function - | -1 | 538 | 597 | 612 | 614 | 616 | 620 | 627 | 633 | 815 | 827 | 1021 | 1172 | 1192 | 1236 | 1276 | 1295 | 1306 | 1321 | 1337 | 1348 | 1359 | 1370 | 1381 | 1392 | 1403 | 1414 | 1425 | 1436 | 1447 | 1458 | 1469 | 1480 | 1491 | 1502 | 1513 | 1524 | 1535 | 1546 | 1557 | 1574 | 1587 | 1706 | 1720 | 1734 | 1749 | 1763 | 1777 | 1793 | 1807 | 1821 | 1833 | 1888 | 1894 | 1909 | 1921 | 1947 | 1973 | 1979 | 1996 | 2009 | 2022 | 2034 | 2045 | 2051 | 2066 | 2078 | 2108 | 2128 | 2342 | 2975 -> [R 132] - | _ -> r858) - | 586 -> Select (function - | -1 -> R 162 :: r443 - | _ -> R 162 :: r435) - | 2538 -> Select (function - | -1 -> r1668 - | _ -> R 162 :: r1661) - | 1069 -> Select (function - | -1 -> r254 + | _ -> S (T T_DOT) :: r575) + | 1098 -> Select (function + | -1 | 550 | 609 | 624 | 626 | 628 | 632 | 639 | 645 | 827 | 839 | 989 | 1148 | 1168 | 1211 | 1251 | 1270 | 1281 | 1296 | 1312 | 1323 | 1334 | 1345 | 1356 | 1367 | 1378 | 1389 | 1400 | 1411 | 1422 | 1433 | 1444 | 1455 | 1466 | 1477 | 1488 | 1499 | 1510 | 1521 | 1532 | 1549 | 1562 | 1785 | 1799 | 1813 | 1828 | 1842 | 1856 | 1872 | 1886 | 1900 | 1912 | 1967 | 1973 | 1988 | 2000 | 2026 | 2052 | 2058 | 2075 | 2088 | 2101 | 2113 | 2124 | 2130 | 2145 | 2157 | 2187 | 2207 | 2411 | 3055 -> [R 132] + | _ -> r849) + | 598 -> Select (function + | -1 -> R 162 :: r455 + | _ -> R 162 :: r447) + | 2619 -> Select (function + | -1 -> r1719 + | _ -> R 162 :: r1712) + | 1040 -> Select (function + | -1 -> r267 | _ -> [R 353]) - | 683 -> Select (function - | -1 -> [R 989] - | _ -> S (T T_DOTDOT) :: r560) - | 722 -> Select (function - | -1 -> [R 1090] - | _ -> S (N N_pattern) :: r578) - | 702 -> Select (function - | -1 -> [R 1091] - | _ -> S (N N_pattern) :: r568) - | 589 -> Select (function - | -1 -> R 1349 :: r451 - | _ -> R 1349 :: r449) + | 695 -> Select (function + | -1 -> [R 994] + | _ -> S (T T_DOTDOT) :: r572) + | 734 -> Select (function + | -1 -> [R 1101] + | _ -> S (N N_pattern) :: r590) + | 714 -> Select (function + | -1 -> [R 1102] + | _ -> S (N N_pattern) :: r580) + | 601 -> Select (function + | -1 -> R 1360 :: r463 + | _ -> R 1360 :: r461) | 139 -> Select (function - | 271 | 278 | 324 | 330 | 337 | 362 | 402 | 410 | 418 | 426 | 439 | 447 | 455 | 463 | 3011 | 3019 | 3227 | 3235 | 3243 | 3251 | 3264 | 3272 | 3280 | 3288 | 3298 | 3306 | 3316 | 3324 -> S (T T_UNDERSCORE) :: r87 - | -1 -> S (T T_MODULE) :: r95 - | _ -> r74) - | 609 -> Select (function - | 538 | 597 | 612 | 614 | 616 | 620 | 627 | 633 | 815 | 827 | 1021 | 1172 | 1192 | 1236 | 1276 | 1295 | 1306 | 1321 | 1337 | 1348 | 1359 | 1370 | 1381 | 1392 | 1403 | 1414 | 1425 | 1436 | 1447 | 1458 | 1469 | 1480 | 1491 | 1502 | 1513 | 1524 | 1535 | 1546 | 1557 | 1574 | 1587 | 1706 | 1720 | 1734 | 1749 | 1763 | 1777 | 1793 | 1807 | 1821 | 1833 | 1888 | 1894 | 1909 | 1921 | 1947 | 1973 | 1979 | 1996 | 2009 | 2022 | 2034 | 2045 | 2051 | 2066 | 2078 | 2108 | 2128 | 2342 | 2975 -> S (T T_COLONCOLON) :: r473 - | -1 -> S (T T_RPAREN) :: r182 - | _ -> Sub (r3) :: r471) - | 2543 -> Select (function - | -1 -> S (T T_RPAREN) :: r182 - | _ -> S (T T_COLONCOLON) :: r473) - | 569 -> Select (function - | 862 | 1159 | 1966 -> r48 - | -1 -> S (T T_RPAREN) :: r182 - | _ -> r410) - | 615 -> Select (function - | -1 -> S (T T_RBRACKET) :: r480 - | _ -> Sub (r477) :: r479) - | 639 -> Select (function - | -1 -> S (T T_RBRACKET) :: r480 - | _ -> Sub (r520) :: r522) + | 283 | 290 | 336 | 342 | 349 | 374 | 414 | 422 | 430 | 438 | 451 | 459 | 467 | 475 | 857 | 968 | 1578 | 1589 | 1602 | 1613 | 1623 | 1627 | 1631 | 1645 | 1656 | 1669 | 1680 | 1693 | 1725 | 1736 | 1749 | 1760 | 2532 | 2538 | 2544 | 3077 | 3085 | 3305 | 3313 | 3321 | 3329 | 3342 | 3350 | 3358 | 3366 | 3376 | 3384 | 3394 | 3402 -> S (T T_UNDERSCORE) :: r88 + | -1 -> S (T T_MODULE) :: r98 + | _ -> r75) | 131 -> Select (function - | 153 | 283 | 306 | 434 | 933 | 1614 | 1674 | 3259 -> r74 - | _ -> S (T T_QUOTE) :: r83) - | 1013 -> Select (function - | 61 | 227 | 585 | 596 | 2509 | 2515 -> r783 - | _ -> S (T T_OPEN) :: r775) - | 2545 -> Select (function - | -1 -> r839 - | _ -> S (T T_LPAREN) :: r1669) - | 597 -> Select (function - | -1 -> r382 - | _ -> S (T T_FUNCTION) :: r458) + | 853 | 964 | 1586 | 1653 | 1733 -> S (T T_UNDERSCORE) :: r88 + | 152 | 295 | 318 | 446 | 3337 -> r75 + | _ -> S (T T_QUOTE) :: r84) + | 621 -> Select (function + | 550 | 609 | 624 | 626 | 628 | 632 | 639 | 645 | 827 | 839 | 989 | 1148 | 1168 | 1211 | 1251 | 1270 | 1281 | 1296 | 1312 | 1323 | 1334 | 1345 | 1356 | 1367 | 1378 | 1389 | 1400 | 1411 | 1422 | 1433 | 1444 | 1455 | 1466 | 1477 | 1488 | 1499 | 1510 | 1521 | 1532 | 1549 | 1562 | 1785 | 1799 | 1813 | 1828 | 1842 | 1856 | 1872 | 1886 | 1900 | 1912 | 1967 | 1973 | 1988 | 2000 | 2026 | 2052 | 2058 | 2075 | 2088 | 2101 | 2113 | 2124 | 2130 | 2145 | 2157 | 2187 | 2207 | 2411 | 3055 -> S (T T_COLONCOLON) :: r485 + | -1 -> S (T T_RPAREN) :: r196 + | _ -> Sub (r3) :: r483) + | 2624 -> Select (function + | -1 -> S (T T_RPAREN) :: r196 + | _ -> S (T T_COLONCOLON) :: r485) + | 581 -> Select (function + | 875 | 1135 | 2045 -> r48 + | -1 -> S (T T_RPAREN) :: r196 + | _ -> S (N N_pattern) :: r422) + | 996 -> Select (function + | -1 -> S (T T_RPAREN) :: r791 + | _ -> Sub (r93) :: r793) | 627 -> Select (function - | 626 -> S (T T_FUNCTION) :: r507 - | _ -> r382) - | 267 -> Select (function - | -1 -> r256 - | _ -> S (T T_DOT) :: r259) - | 1067 -> Select (function - | -1 -> r256 - | _ -> S (T T_DOT) :: r835) - | 150 -> Select (function - | -1 | 271 | 278 | 324 | 330 | 337 | 362 | 402 | 410 | 418 | 426 | 439 | 447 | 455 | 463 | 3011 | 3019 | 3227 | 3235 | 3243 | 3251 | 3264 | 3272 | 3280 | 3288 | 3298 | 3306 | 3316 | 3324 -> r104 - | _ -> S (T T_COLON) :: r110) + | -1 -> S (T T_RBRACKET) :: r492 + | _ -> Sub (r489) :: r491) + | 651 -> Select (function + | -1 -> S (T T_RBRACKET) :: r492 + | _ -> Sub (r532) :: r534) + | 981 -> Select (function + | 61 | 239 | 597 | 608 | 2592 | 2598 -> r774 + | _ -> S (T T_OPEN) :: r766) + | 2626 -> Select (function + | -1 -> r831 + | _ -> S (T T_LPAREN) :: r1720) + | 609 -> Select (function + | -1 -> r395 + | _ -> S (T T_FUNCTION) :: r470) + | 639 -> Select (function + | 638 -> S (T T_FUNCTION) :: r519 + | _ -> r395) + | 279 -> Select (function + | -1 -> r269 + | _ -> S (T T_DOT) :: r272) + | 1038 -> Select (function + | -1 -> r269 + | _ -> S (T T_DOT) :: r824) + | 149 -> Select (function + | -1 | 283 | 290 | 336 | 342 | 349 | 374 | 414 | 422 | 430 | 438 | 451 | 459 | 467 | 475 | 853 | 964 | 3077 | 3085 | 3305 | 3313 | 3321 | 3329 | 3342 | 3350 | 3358 | 3366 | 3376 | 3384 | 3394 | 3402 -> r105 + | _ -> S (T T_COLON) :: r111) | 126 -> Select (function - | 841 | 933 | 946 | 972 | 979 | 993 | 1614 | 1674 | 2273 -> r63 - | _ -> r61) - | 141 -> Select (function - | -1 | 152 | 271 | 278 | 282 | 305 | 324 | 328 | 330 | 334 | 337 | 341 | 362 | 366 | 402 | 406 | 410 | 414 | 418 | 422 | 426 | 430 | 433 | 439 | 443 | 447 | 451 | 455 | 459 | 463 | 467 | 470 | 474 | 3011 | 3015 | 3019 | 3023 | 3227 | 3231 | 3235 | 3239 | 3243 | 3247 | 3251 | 3255 | 3258 | 3264 | 3268 | 3272 | 3276 | 3280 | 3284 | 3288 | 3292 | 3298 | 3302 | 3306 | 3310 | 3316 | 3320 | 3324 | 3328 -> r99 - | _ -> r61) - | 3350 -> Select (function - | 153 | 283 | 306 | 434 | 933 | 1614 | 1674 | 3259 -> r61 - | _ -> r82) - | 123 -> Select (function - | 841 | 933 | 946 | 972 | 979 | 993 | 1614 | 1674 | 2273 -> r64 + | 853 | 964 | 1586 | 1653 | 1733 | 2354 -> r64 | _ -> r62) - | 140 -> Select (function - | -1 | 152 | 271 | 278 | 282 | 305 | 324 | 328 | 330 | 334 | 337 | 341 | 362 | 366 | 402 | 406 | 410 | 414 | 418 | 422 | 426 | 430 | 433 | 439 | 443 | 447 | 451 | 455 | 459 | 463 | 467 | 470 | 474 | 3011 | 3015 | 3019 | 3023 | 3227 | 3231 | 3235 | 3239 | 3243 | 3247 | 3251 | 3255 | 3258 | 3264 | 3268 | 3272 | 3276 | 3280 | 3284 | 3288 | 3292 | 3298 | 3302 | 3306 | 3310 | 3316 | 3320 | 3324 | 3328 -> r100 - | _ -> r62) - | 3349 -> Select (function - | 153 | 283 | 306 | 434 | 933 | 1614 | 1674 | 3259 -> r62 + | 154 -> Select (function + | 136 | 148 | 162 | 173 | 232 | 235 | 249 | 252 | 255 | 256 | 281 | 309 | 328 | 398 | 411 | 448 | 500 | 507 | 512 | 514 | 523 | 536 | 538 | 560 | 567 | 658 | 688 | 721 | 763 | 771 | 879 | 886 | 904 | 917 | 931 | 1020 | 1022 | 1025 | 1027 | 1137 | 1711 | 2327 | 2355 | 2611 | 2634 | 2654 | 2666 | 2688 | 2692 | 2706 | 2708 | 2760 | 2778 | 2802 | 2830 | 2866 | 2893 | 3020 | 3030 | 3074 | 3092 | 3138 | 3153 | 3274 | 3302 | 3339 | 3418 -> r62 + | _ -> r115) + | 3428 -> Select (function + | 152 | 295 | 318 | 446 | 3337 -> r62 + | 853 | 964 | 1586 | 1653 | 1733 -> r115 | _ -> r83) - | 2279 -> Select (function - | 113 | 1001 | 2245 | 2526 | 2596 | 2695 | 2715 | 2719 | 2994 -> r79 - | _ -> r96) - | 2278 -> Select (function - | 113 | 1001 | 2245 | 2526 | 2596 | 2695 | 2715 | 2719 | 2994 -> r80 - | _ -> r97) - | 2277 -> Select (function - | 113 | 1001 | 2245 | 2526 | 2596 | 2695 | 2715 | 2719 | 2994 -> r81 - | _ -> r98) - | 2916 -> Select (function - | -1 -> r440 - | _ -> r104) - | 591 -> Select (function - | -1 -> r450 - | _ -> r104) - | 268 -> Select (function - | -1 -> r255 - | _ -> r259) - | 1068 -> Select (function - | -1 -> r255 - | _ -> r835) - | 2915 -> Select (function - | -1 -> r441 - | _ -> r433) - | 588 -> Select (function - | -1 -> r442 - | _ -> r434) - | 587 -> Select (function - | -1 -> r443 - | _ -> r435) - | 590 -> Select (function - | -1 -> r451 - | _ -> r449) - | 2541 -> Select (function - | -1 -> r1665 - | _ -> r1659) - | 2540 -> Select (function - | -1 -> r1666 - | _ -> r1660) - | 2539 -> Select (function - | -1 -> r1667 - | _ -> r1661) + | 123 -> Select (function + | 853 | 964 | 1586 | 1653 | 1733 | 2354 -> r65 + | _ -> r63) + | 153 -> Select (function + | 136 | 148 | 162 | 173 | 232 | 235 | 249 | 252 | 255 | 256 | 281 | 309 | 328 | 398 | 411 | 448 | 500 | 507 | 512 | 514 | 523 | 536 | 538 | 560 | 567 | 658 | 688 | 721 | 763 | 771 | 879 | 886 | 904 | 917 | 931 | 1020 | 1022 | 1025 | 1027 | 1137 | 1711 | 2327 | 2355 | 2611 | 2634 | 2654 | 2666 | 2688 | 2692 | 2706 | 2708 | 2760 | 2778 | 2802 | 2830 | 2866 | 2893 | 3020 | 3030 | 3074 | 3092 | 3138 | 3153 | 3274 | 3302 | 3339 | 3418 -> r63 + | _ -> r116) + | 3427 -> Select (function + | 152 | 295 | 318 | 446 | 3337 -> r63 + | 853 | 964 | 1586 | 1653 | 1733 -> r116 + | _ -> r84) + | 2360 -> Select (function + | 113 | 2325 | 2609 | 2677 | 2775 | 2795 | 2799 | 3287 -> r80 + | _ -> r112) + | 2359 -> Select (function + | 113 | 2325 | 2609 | 2677 | 2775 | 2795 | 2799 | 3287 -> r81 + | _ -> r113) + | 2358 -> Select (function + | 113 | 2325 | 2609 | 2677 | 2775 | 2795 | 2799 | 3287 -> r82 + | _ -> r114) + | 2996 -> Select (function + | -1 -> r452 + | _ -> r105) + | 603 -> Select (function + | -1 -> r462 + | _ -> r105) + | 280 -> Select (function + | -1 -> r268 + | _ -> r272) + | 1039 -> Select (function + | -1 -> r268 + | _ -> r824) + | 2995 -> Select (function + | -1 -> r453 + | _ -> r445) + | 600 -> Select (function + | -1 -> r454 + | _ -> r446) + | 599 -> Select (function + | -1 -> r455 + | _ -> r447) + | 602 -> Select (function + | -1 -> r463 + | _ -> r461) + | 2622 -> Select (function + | -1 -> r1716 + | _ -> r1710) + | 2621 -> Select (function + | -1 -> r1717 + | _ -> r1711) + | 2620 -> Select (function + | -1 -> r1718 + | _ -> r1712) | _ -> raise Not_found diff --git a/src/ocaml/typing/allowance.ml b/src/ocaml/typing/allowance.ml index f2855fc49..1c30a2a8b 100644 --- a/src/ocaml/typing/allowance.ml +++ b/src/ocaml/typing/allowance.ml @@ -22,6 +22,10 @@ type right_only = disallowed * allowed type both = allowed * allowed +type 'a pos = 'b * 'c constraint 'a = 'b * 'c + +type 'a neg = 'c * 'b constraint 'a = 'b * 'c + module type Allow_disallow = sig type ('a, 'b, 'd) sided constraint 'd = 'l * 'r diff --git a/src/ocaml/typing/allowance.mli b/src/ocaml/typing/allowance.mli index 2f20b54bc..e8f7b573c 100644 --- a/src/ocaml/typing/allowance.mli +++ b/src/ocaml/typing/allowance.mli @@ -47,6 +47,14 @@ type right_only = disallowed * allowed type both = allowed * allowed +(** Arrange the permissions appropriately for a positive lattice, by +doing nothing. *) +type 'a pos = 'b * 'c constraint 'a = 'b * 'c + +(** Arrange the permissions appropriately for a negative lattice, by + swapping left and right. *) +type 'a neg = 'c * 'b constraint 'a = 'b * 'c + module type Allow_disallow = sig type ('a, 'b, 'd) sided constraint 'd = 'l * 'r diff --git a/src/ocaml/typing/btype.ml b/src/ocaml/typing/btype.ml index 9d0114f6f..490352bf9 100644 --- a/src/ocaml/typing/btype.ml +++ b/src/ocaml/typing/btype.ml @@ -20,6 +20,11 @@ open Types open Local_store +(**** Forward declarations ****) + +let print_raw = + ref (fun _ -> assert false : Format.formatter -> type_expr -> unit) + (**** Sets, maps and hashtables of types ****) let wrap_repr f ty = f (Transient_expr.repr ty) @@ -34,6 +39,13 @@ module TypeSet = struct let exists p = TransientTypeSet.exists (wrap_type_expr p) let elements set = List.map Transient_expr.type_expr (TransientTypeSet.elements set) + let debug_print ppf t = + Format.( + fprintf ppf "{ %a }" + (pp_print_seq + ~pp_sep:(fun ppf () -> fprintf ppf ";@,") + !print_raw) + (to_seq t |> Seq.map Transient_expr.type_expr)) end module TransientTypeMap = Map.Make(TransientTypeOps) module TypeMap = struct @@ -95,10 +107,6 @@ module TypePairs = struct f (type_expr t1, type_expr t2)) end -(**** Forward declarations ****) - -let print_raw = - ref (fun _ -> assert false : Format.formatter -> type_expr -> unit) (**** Type level management ****) @@ -149,6 +157,7 @@ let merge_fixed_explanation fixed1 fixed2 = | Some Fixed_private as x, _ | _, (Some Fixed_private as x) -> x | Some Reified _ as x, _ | _, (Some Reified _ as x) -> x | Some Rigid as x, _ | _, (Some Rigid as x) -> x + | Some Fixed_existential as x, _ | _, (Some Fixed_existential as x) -> x | None, None -> None @@ -161,6 +170,7 @@ let fixed_explanation row = | Tvar _ | Tnil -> None | Tunivar _ -> Some (Univar ty) | Tconstr (p,_,_) -> Some (Reified p) + | Tof_kind _ -> Some Fixed_existential | _ -> assert false let is_fixed row = match row_fixed row with @@ -175,6 +185,17 @@ let static_row row = (fun (_,f) -> match row_field_repr f with Reither _ -> false | _ -> true) (row_fields row) +let tvariant_not_immediate row = + (* if all labels are devoid of arguments, not a pointer *) + (* CR layouts v5: Polymorphic variants with all void args can probably + be immediate, but we don't allow them to have void args right now. *) + not (row_closed row) + || List.exists + (fun (_,field) -> match row_field_repr field with + | Rpresent (Some _) | Reither (false, _, _) -> true + | _ -> false) + (row_fields row) + let hash_variant s = let accu = ref 0 in for i = 0 to String.length s - 1 do @@ -260,7 +281,10 @@ let fold_row f init row = (row_fields row) in match get_desc (row_more row) with - | Tvar _ | Tunivar _ | Tsubst _ | Tconstr _ | Tnil -> + | Tvar _ | Tunivar _ | Tsubst _ | Tconstr _ | Tnil + (* Tof_kind can appear in [row_more] in case the row's row variable was existentially + quantified in a GADT *) + | Tof_kind _ -> begin match Option.map (fun (_,l) -> List.fold_left f result l) (row_name row) with @@ -272,6 +296,7 @@ let fold_row f init row = let iter_row f row = fold_row (fun () v -> f v) () row + let fold_type_expr f init ty = match get_desc ty with Tvar _ -> init @@ -300,6 +325,7 @@ let fold_type_expr f init ty = List.fold_left f result tyl | Tpackage (_, fl) -> List.fold_left (fun result (_n, ty) -> f result ty) init fl + | Tof_kind _ -> init let iter_type_expr f ty = fold_type_expr (fun () v -> f v) () ty @@ -482,6 +508,7 @@ let rec copy_type_desc ?(keep_names=false) f = function let tyl = List.map f tyl in Tpoly (f ty, tyl) | Tpackage (p, fl) -> Tpackage (p, List.map (fun (n, ty) -> (n, f ty)) fl) + | Tof_kind jk -> Tof_kind jk (* Utilities for copying *) diff --git a/src/ocaml/typing/btype.mli b/src/ocaml/typing/btype.mli index 706e50eb3..72ed6a858 100644 --- a/src/ocaml/typing/btype.mli +++ b/src/ocaml/typing/btype.mli @@ -27,6 +27,7 @@ module TypeSet : sig val singleton: type_expr -> t val exists: (type_expr -> bool) -> t -> bool val elements: t -> type_expr list + val debug_print : Format.formatter -> t -> unit end module TransientTypeMap : Map.S with type key = transient_expr module TypeMap : sig @@ -106,6 +107,9 @@ val merge_fixed_explanation: val static_row: row_desc -> bool (* Return whether the row is static or not *) +val tvariant_not_immediate: row_desc -> bool + (* Return whether the polymorphic variant is non-immediate + (i.e., has arguments or is open) *) val hash_variant: label -> int (* Hash function for variant tags *) diff --git a/src/ocaml/typing/cmi_format.ml b/src/ocaml/typing/cmi_format.ml index 96292626f..17307ed91 100644 --- a/src/ocaml/typing/cmi_format.ml +++ b/src/ocaml/typing/cmi_format.ml @@ -23,7 +23,7 @@ type pers_flags = type kind = | Normal of { cmi_impl : Compilation_unit.t; - cmi_arg_for : Global_module.Name.t option; + cmi_arg_for : Global_module.Parameter_name.t option; } | Parameter @@ -58,7 +58,7 @@ type header = { header_kind : kind; header_globals : Global_module.With_precision.t array; header_sign : Serialized.signature; - header_params : Global_module.t list; + header_params : Global_module.Parameter_name.t list; } type 'sg cmi_infos_generic = { @@ -66,7 +66,7 @@ type 'sg cmi_infos_generic = { cmi_kind : kind; cmi_globals : Global_module.With_precision.t array; cmi_sign : 'sg; - cmi_params : Global_module.t list; + cmi_params : Global_module.Parameter_name.t list; cmi_crcs : crcs; cmi_flags : flags; } diff --git a/src/ocaml/typing/cmi_format.mli b/src/ocaml/typing/cmi_format.mli index f3f69ed4d..fa1cf5ed7 100644 --- a/src/ocaml/typing/cmi_format.mli +++ b/src/ocaml/typing/cmi_format.mli @@ -25,7 +25,7 @@ type kind = cmi_impl : Compilation_unit.t; (* If this module takes parameters, [cmi_impl] will be the functor that generates instances *) - cmi_arg_for : Global_module.Name.t option; + cmi_arg_for : Global_module.Parameter_name.t option; } | Parameter @@ -34,7 +34,7 @@ type 'sg cmi_infos_generic = { cmi_kind : kind; cmi_globals : Global_module.With_precision.t array; cmi_sign : 'sg; - cmi_params : Global_module.t list; (* CR lmaurer: Should be [Parameter_name.t list] *) + cmi_params : Global_module.Parameter_name.t list; cmi_crcs : Import_info.t array; cmi_flags : pers_flags list; } diff --git a/src/ocaml/typing/cmt_format.ml b/src/ocaml/typing/cmt_format.ml index aefa389ff..856fad497 100644 --- a/src/ocaml/typing/cmt_format.ml +++ b/src/ocaml/typing/cmt_format.ml @@ -230,7 +230,7 @@ let iter_on_occurrences f ~namespace:Value exp_env path lid | Texp_construct (lid, constr_desc, _, _) -> add_constructor_description exp_env lid constr_desc - | Texp_field (_, lid, label_desc, _, _) + | Texp_field (_, _, lid, label_desc, _, _) | Texp_setfield (_, _, lid, label_desc, _) -> add_label ~namespace:Label exp_env lid label_desc | Texp_unboxed_field (_, _, lid, label_desc, _) -> @@ -284,7 +284,7 @@ let iter_on_occurrences f ~namespace:Module ctyp_env path lid | Ttyp_var _ | Ttyp_arrow _ | Ttyp_tuple _ | Ttyp_object _ | Ttyp_unboxed_tuple _ - | Ttyp_alias _ | Ttyp_variant _ | Ttyp_poly _ + | Ttyp_alias _ | Ttyp_variant _ | Ttyp_poly _ | Ttyp_of_kind _ | Ttyp_call_pos -> ()); default_iterator.typ sub ct); diff --git a/src/ocaml/typing/compilation_unit.ml b/src/ocaml/typing/compilation_unit.ml index 08cdb0e05..3f826f668 100644 --- a/src/ocaml/typing/compilation_unit.ml +++ b/src/ocaml/typing/compilation_unit.ml @@ -22,7 +22,7 @@ module List = Misc.List type error = | Invalid_character of char * string | Bad_compilation_unit_name of string - | Child_of_instance of { child_name : string } + | Child_of_instance of { parent_name : string } | Packed_instance of { name : string } | Already_an_instance of { name : string } @@ -43,10 +43,12 @@ module Name : sig val of_head_of_global_name : Global_module.Name.t -> t - val of_global_name_no_args_exn : Global_module.Name.t -> t + val of_parameter_name : Global_module.Parameter_name.t -> t val to_global_name : t -> Global_module.Name.t + val to_parameter_name : t -> Global_module.Parameter_name.t + val check_as_path_component : t -> unit end = struct (* Be VERY careful changing this. Anything not equivalent to [string] will @@ -79,20 +81,13 @@ end = struct let of_head_of_global_name (name : Global_module.Name.t) = of_string name.head - let of_global_name_no_args_exn (name : Global_module.Name.t) = - match name.args with - | [] -> of_head_of_global_name name - | _ -> - (* This is a wart. We should have a separate type - [Global_module.Parameter_name.t] that is known not to have arguments, - and then we can convert without runtime checks here. Note that we can't - actually be specific in this message about why the thing isn't supposed - to have arguments. *) - Misc.fatal_errorf "Arguments not allowed in name:@ %a" - Global_module.Name.print name + let of_parameter_name (name : Global_module.Parameter_name.t) = + of_string (Global_module.Parameter_name.to_string name) let to_global_name t = Global_module.Name.create_no_args t + let to_parameter_name t = Global_module.Parameter_name.of_string t + (* This is so called (and separate from [of_string]) because we only want to check a name if it has a prefix. In particular, this allows single-module executables to have names like ".cinaps" that aren't valid module names. *) @@ -189,7 +184,7 @@ module T0 : sig } and argument = - { param : t; + { param : Name.t; value : t } @@ -226,7 +221,7 @@ end = struct } and argument = - { param : t; + { param : Name.t; value : t } @@ -260,7 +255,7 @@ end = struct let convert_arguments l = ListLabels.map ~f:(fun ({ param; value } : Global_module.Name.argument) -> - { param = of_global_name param; value = of_global_name value }) + { param = Name.of_parameter_name param; value = of_global_name value }) l let descr t = @@ -340,10 +335,10 @@ end = struct and compare_instance_arg { param = param1; value = value1 } { param = param2; value = value2 } = - let c = compare param1 param2 in + let c = Name.compare param1 param2 in if c <> 0 then c else compare value1 value2 - let compare_argument_by_name arg1 arg2 = compare arg1.param arg2.param + let compare_argument_by_name arg1 arg2 = Name.compare arg1.param arg2.param let to_global_name_exn t = if is_plain_name t @@ -402,7 +397,7 @@ end = struct let arguments = ListLabels.map ~f:(fun { param; value } : Global_module.Name.argument -> - { param = to_global_name_exn param; + { param = Name.to_parameter_name param; value = to_global_name_exn value }) arguments @@ -415,15 +410,18 @@ include T0 let create prefix name = create_full prefix name [] -let create_child parent name_ = +let to_prefix parent = + (* CR lmaurer: This is an obvious (and alarmingly longstanding) bug. Should be + checking the instance arguments, not the prefix. The result is that packed + packs are (I presume) currently broken. *) if not (Prefix.is_empty (for_pack_prefix parent)) then (* CR-someday lmaurer: Same as for [create_full] *) - raise (Error (Child_of_instance { child_name = name_ |> Name.to_string })); - let prefix = - (for_pack_prefix parent |> Prefix.to_list) @ [name parent] |> Prefix.of_list - in - create prefix name_ + raise + (Error (Child_of_instance { parent_name = name parent |> Name.to_string })); + (for_pack_prefix parent |> Prefix.to_list) @ [name parent] |> Prefix.of_list + +let create_child parent name_ = create (to_prefix parent) name_ let of_string str = let for_pack_prefix, name = @@ -475,7 +473,7 @@ include Identifiable.Make (struct ListLabels.iter ~f:(print_arg fmt) arguments and print_arg fmt { param; value } = - Format.fprintf fmt "[%a:%a]" print param print value + Format.fprintf fmt "[%a:%a]" Name.print param print value let output = Misc.output_of_print print @@ -486,7 +484,7 @@ include Identifiable.Make (struct Prefix.hash for_pack_prefix, ListLabels.map ~f:hash_arg arguments ) - and hash_arg { param; value } = Hashtbl.hash (hash param, hash value) + and hash_arg { param; value } = Hashtbl.hash (Name.hash param, hash value) end) let is_instance t = @@ -521,9 +519,8 @@ let full_path t = Prefix.to_list (for_pack_prefix t) @ [name t] let flatten t = let rec flatten_arg { param; value } ~depth = assert (not (is_packed value)); - let param_name = name param in let { name; arguments; _ } = descr value in - (depth, param_name, name) + (depth, param, name) :: ListLabels.concat_map ~f:(flatten_arg ~depth:(depth + 1)) arguments in let { for_pack_prefix; name; arguments } = descr t in @@ -636,17 +633,20 @@ let print_debug ppf t = "@[(@[(for_pack_prefix@ %a)@]@;@[(name@ %a)@]" Prefix.print for_pack_prefix Name.print name -let current = ref None +let fwd_get_current : (unit -> t option) ref = ref (fun () -> assert false) -let set_current t_opt = current := t_opt +let get_current () = !fwd_get_current () -let get_current () = !current - -let get_current_or_dummy () = Option.value !current ~default:dummy +let get_current_or_dummy () = Option.value (get_current ()) ~default:dummy let get_current_exn () = - match !current with + match get_current () with | Some t -> t | None -> Misc.fatal_error "No compilation unit set" -let is_current t = match !current with None -> false | Some t' -> equal t t' +let is_current t = + match get_current () with None -> false | Some t' -> equal t t' + +module Private = struct + let fwd_get_current = fwd_get_current +end diff --git a/src/ocaml/typing/compilation_unit.mli b/src/ocaml/typing/compilation_unit.mli index 5e4215107..348d7a15b 100644 --- a/src/ocaml/typing/compilation_unit.mli +++ b/src/ocaml/typing/compilation_unit.mli @@ -47,7 +47,7 @@ module Name : sig val of_head_of_global_name : Global_module.Name.t -> t - val of_global_name_no_args_exn : Global_module.Name.t -> t + val of_parameter_name : Global_module.Parameter_name.t -> t val to_global_name : t -> Global_module.Name.t @@ -100,12 +100,14 @@ val print_debug : Format.formatter -> t -> unit mangled in any way). *) val create : Prefix.t -> Name.t -> t -(** Create a compilation unit contained by another. Effectively uses the - parent compilation unit as the prefix. *) +(** Convert a compilation unit to a prefix. Used to form a child of a pack. *) +val to_prefix : t -> Prefix.t + +(** Combines [create] and [to_prefix]. *) val create_child : t -> Name.t -> t type argument = - { param : t; + { param : Name.t; value : t } @@ -114,26 +116,6 @@ type argument = parameter name. *) val create_instance : t -> argument list -> t -(* CR lmaurer: [of_global_name] would be better if (a) it insisted on taking a - complete instantiation (the exceptional cases mentioned are handled by other - functions) and (b) it took a [Global_module.t], which would allow it to - verify that it's complete. (For (b), we'll also want an [of_parameter] - function taking [Parameter.t] once that exists.) *) - -(** Create the compilation unit named by the given [Global_module.Name.t]. - Usually only meaningful if the global name is a _complete instantiation_, - which is to say either (a) the named module has no parameters, or (b) there - is an argument for each parameter and each argument is itself a complete - instantiation. This ensures the name determines a compile-time constant, and - then the [t] returned here is the module corresponding to that constant. - - The exception to the above is that a global name with _no_ arguments makes - sense even if the named module takes parameters, only in this case the [t] - refers to the module with the instantiating functor. This is only relevant - in two cases: when we're compiling the parameterised module itself, and - when we're instantiating it. *) -val of_global_name : Global_module.Name.t -> t - (** Convert the compilation unit to a [Global_module.Name.t], if possible (which is to say, if its prefix is empty). *) val to_global_name : t -> Global_module.Name.t option @@ -290,15 +272,13 @@ val split_instance_exn : t -> t * argument list type error = private | Invalid_character of char * string | Bad_compilation_unit_name of string - | Child_of_instance of { child_name : string } + | Child_of_instance of { parent_name : string } | Packed_instance of { name : string } | Already_an_instance of { name : string } (** The exception raised by conversion functions in this module. *) exception Error of error -val set_current : t option -> unit - val get_current : unit -> t option val get_current_or_dummy : unit -> t @@ -306,3 +286,7 @@ val get_current_or_dummy : unit -> t val get_current_exn : unit -> t val is_current : t -> bool + +module Private : sig + val fwd_get_current : (unit -> t option) ref +end diff --git a/src/ocaml/typing/ctype.ml b/src/ocaml/typing/ctype.ml index d197a3809..473951fc6 100644 --- a/src/ocaml/typing/ctype.ml +++ b/src/ocaml/typing/ctype.ml @@ -674,6 +674,16 @@ let free_non_row_variables_of_list tyl = List.iter unmark_type tyl; tl +let free_variable_set_of_list env tys = + let add_one ty jkind _kind acc = + match jkind with + | None -> (* not a Tvar *) acc + | Some _jkind -> TypeSet.add ty acc + in + let ts = free_vars ~zero:TypeSet.empty ~add_one ~env tys in + List.iter unmark_type tys; + ts + let exists_free_variable f ty = let exception Exists in let add_one ty jkind _kind _acc = @@ -1323,7 +1333,7 @@ let rec copy ?partial ?keep_names copy_scope ty = Tsubst (ty, None) -> ty (* TODO: is this case possible? possibly an interaction with (copy more) below? *) - | Tconstr _ | Tnil -> + | Tconstr _ | Tnil | Tof_kind _ -> copy more | Tvar _ | Tunivar _ -> if keep then more else newty mored @@ -1633,7 +1643,7 @@ let copy_sep ~copy_scope ~fixed ~(visited : type_expr TypeHash.t) sch = if keep then (add_delayed_copy t ty; Tvar { name = None; - jkind = Jkind.Builtin.value ~why:Polymorphic_variant }) + jkind = Jkind.for_non_float ~why:Polymorphic_variant }) else let more' = copy_rec ~may_share:false more in let fixed' = fixed && (is_Tvar more || is_Tunivar more) in @@ -1669,9 +1679,14 @@ let instance_poly' copy_scope ~keep_names ~fixed univars sch = let ty = copy_sep ~copy_scope ~fixed ~visited sch in vars, ty -let instance_poly ?(keep_names=false) ~fixed univars sch = +let instance_poly_fixed ?(keep_names=false) univars sch = + For_copy.with_scope (fun copy_scope -> + instance_poly' copy_scope ~keep_names ~fixed:true univars sch + ) + +let instance_poly ?(keep_names=false) univars sch = For_copy.with_scope (fun copy_scope -> - instance_poly' copy_scope ~keep_names ~fixed univars sch + snd (instance_poly' copy_scope ~keep_names ~fixed:false univars sch) ) let instance_label ~fixed lbl = @@ -1688,22 +1703,40 @@ let instance_label ~fixed lbl = (vars, ty_arg, ty_res) ) -let prim_mode mvar = function - | Primitive.Prim_global, _ -> Locality.allow_right Locality.global - | Primitive.Prim_local, _ -> Locality.allow_right Locality.local +(* CR dkalinichenko: we must vary yieldingness together with locality to get + sane behavior around [@local_opt]. Remove once we have mode polymorphism. *) +let prim_mode' mvars = function + | Primitive.Prim_global, _ -> + Locality.allow_right Locality.global, None + | Primitive.Prim_local, _ -> + Locality.allow_right Locality.local, None | Primitive.Prim_poly, _ -> - match mvar with - | Some mvar -> mvar + match mvars with + | Some (mvar_l, mvar_y) -> mvar_l, Some mvar_y | None -> assert false -(** Returns a new mode variable whose locality is the given locality, while - all other axes are from the given [m]. This function is too specific to be - put in [mode.ml] *) -let with_locality locality m = +(* Exported version. *) +let prim_mode mvar prim = + let mvars = Option.map (fun mvar_l -> mvar_l, Yielding.newvar ()) mvar in + fst (prim_mode' mvars prim) + +(** Returns a new mode variable whose locality is the given locality and + whose yieldingness is the given yieldingness, while all other axes are + from the given [m]. This function is too specific to be put in [mode.ml] *) +let with_locality_and_yielding (locality, yielding) m = let m' = Alloc.newvar () in Locality.equate_exn (Alloc.proj (Comonadic Areality) m') locality; - Alloc.submode_exn m' (Alloc.join_with (Comonadic Areality) Locality.Const.max m); - Alloc.submode_exn (Alloc.meet_with (Comonadic Areality) Locality.Const.min m) m'; + let yielding = + Option.value ~default:(Alloc.proj (Comonadic Yielding) m) yielding + in + Yielding.equate_exn (Alloc.proj (Comonadic Yielding) m') yielding; + let c = + { Alloc.Comonadic.Const.max with + areality = Locality.Const.min; + yielding = Yielding.Const.min} + in + Alloc.submode_exn (Alloc.meet_const c m') m; + Alloc.submode_exn (Alloc.meet_const c m) m'; m' let curry_mode alloc arg : Alloc.Const.t = @@ -1727,10 +1760,12 @@ let curry_mode alloc arg : Alloc.Const.t = of the return of a function). *) {acc with uniqueness=Uniqueness.Const.Aliased} -let rec instance_prim_locals locals mvar macc finalret ty = +let rec instance_prim_locals locals mvar_l mvar_y macc (loc, yld) ty = match locals, get_desc ty with | l :: locals, Tarrow ((lbl,marg,mret),arg,ret,commu) -> - let marg = with_locality (prim_mode (Some mvar) l) marg in + let marg = with_locality_and_yielding + (prim_mode' (Some (mvar_l, mvar_y)) l) marg + in let macc = Alloc.join [ Alloc.disallow_right mret; @@ -1740,12 +1775,12 @@ let rec instance_prim_locals locals mvar macc finalret ty = in let mret = match locals with - | [] -> with_locality finalret mret + | [] -> with_locality_and_yielding (loc, yld) mret | _ :: _ -> let mret', _ = Alloc.newvar_above macc in (* curried arrow *) mret' in - let ret = instance_prim_locals locals mvar macc finalret ret in + let ret = instance_prim_locals locals mvar_l mvar_y macc (loc, yld) ret in newty2 ~level:(get_level ty) (Tarrow ((lbl,marg,mret),arg,ret, commu)) | _ :: _, _ -> assert false | [], _ -> @@ -1822,18 +1857,19 @@ let instance_prim_mode (desc : Primitive.description) ty = let is_poly = function Primitive.Prim_poly, _ -> true | _ -> false in if is_poly desc.prim_native_repr_res || List.exists is_poly desc.prim_native_repr_args then - let mode = Locality.newvar () in - let finalret = prim_mode (Some mode) desc.prim_native_repr_res in + let mode_l = Locality.newvar () in + let mode_y = Yielding.newvar () in + let finalret = prim_mode' (Some (mode_l, mode_y)) desc.prim_native_repr_res in instance_prim_locals desc.prim_native_repr_args - mode (Alloc.disallow_right Alloc.legacy) finalret ty, - Some mode + mode_l mode_y (Alloc.disallow_right Alloc.legacy) finalret ty, + Some mode_l, Some mode_y else - ty, None + ty, None, None let instance_prim (desc : Primitive.description) ty = let ty, sort = instance_prim_layout desc ty in - let ty, mode = instance_prim_mode desc ty in - ty, mode, sort + let ty, mode_l, mode_y = instance_prim_mode desc ty in + ty, mode_l, mode_y, sort (**** Instantiation with parameter substitution ****) @@ -2115,7 +2151,7 @@ let rec extract_concrete_typedecl env ty = end | Tpoly(ty, _) -> extract_concrete_typedecl env ty | Tarrow _ | Ttuple _ | Tunboxed_tuple _ | Tobject _ | Tfield _ | Tnil - | Tvariant _ | Tpackage _ -> Has_no_typedecl + | Tvariant _ | Tpackage _ | Tof_kind _ -> Has_no_typedecl | Tvar _ | Tunivar _ -> May_have_typedecl | Tlink _ | Tsubst _ -> assert false @@ -2229,7 +2265,7 @@ let contained_without_boxing env ty = List.map snd labeled_tys | Tpoly (ty, _) -> [ty] | Tvar _ | Tarrow _ | Ttuple _ | Tobject _ | Tfield _ | Tnil | Tlink _ - | Tsubst _ | Tvariant _ | Tunivar _ | Tpackage _ -> [] + | Tsubst _ | Tvariant _ | Tunivar _ | Tpackage _ | Tof_kind _ -> [] (* We use ty_prev to track the last type for which we found a definition, allowing us to return a type for which a definition was found even if @@ -2262,16 +2298,6 @@ let get_unboxed_type_approximation env ty = match get_unboxed_type_representation env ty with | Ok ty | Error ty -> ty -let tvariant_not_immediate row = - (* if all labels are devoid of arguments, not a pointer *) - (* CR layouts v5: Polymorphic variants with all void args can probably - be immediate, but we don't allow them to have void args right now. *) - not (row_closed row) - || List.exists - (fun (_,field) -> match row_field_repr field with - | Rpresent (Some _) | Reither (false, _, _) -> true - | _ -> false) - (row_fields row) (* forward declarations *) let type_equal' = ref (fun _ _ _ -> Misc.fatal_error "type_equal") @@ -2330,9 +2356,7 @@ let rec estimate_type_jkind ~expand_component env ty = | Tnil -> Jkind.Builtin.value ~why:Tnil | Tlink _ | Tsubst _ -> assert false | Tvariant row -> - if tvariant_not_immediate row - then Jkind.Builtin.value ~why:Polymorphic_variant - else Jkind.Builtin.immediate ~why:Immediate_polymorphic_variant + Jkind.for_boxed_row row | Tunivar { jkind } -> Jkind.disallow_right jkind | Tpoly (ty, _) -> let jkind_of_type = !type_jkind_purely_if_principal' env in @@ -2346,7 +2370,8 @@ let rec estimate_type_jkind ~expand_component env ty = down a test case that cares. *) Jkind.round_up ~jkind_of_type |> Jkind.disallow_right - | Tpackage _ -> Jkind.Builtin.value ~why:First_class_module + | Tof_kind jkind -> Jkind.mark_best jkind + | Tpackage _ -> Jkind.for_non_float ~why:First_class_module and close_open_jkind ~expand_component ~is_open env jkind = if is_open (* if the type has free variables, we can't let these leak into @@ -2600,6 +2625,14 @@ let check_type_nullability env ty null = | Ok () -> true | Error _ -> false +let check_type_separability env ty sep = + let upper_bound = + Jkind.set_separability_upper_bound (Jkind.Builtin.any ~why:Dummy_jkind) sep + in + match check_type_jkind env ty upper_bound with + | Ok () -> true + | Error _ -> false + let check_type_jkind_exn env texn ty jkind = match check_type_jkind env ty jkind with | Ok _ -> () @@ -5016,14 +5049,16 @@ let crossing_of_jkind env jkind = Jkind.get_mode_crossing ~jkind_of_type jkind let crossing_of_ty env ?modalities ty = - if not (is_principal ty) - then Crossing.top - else - let jkind = type_jkind_purely env ty in - let crossing = crossing_of_jkind env jkind in - match modalities with - | None -> crossing - | Some m -> Crossing.modality m crossing + let crossing = + if not (is_principal ty) + then Crossing.top + else + let jkind = type_jkind_purely env ty in + crossing_of_jkind env jkind + in + match modalities with + | None -> crossing + | Some m -> Crossing.modality m crossing let cross_left env ?modalities ty mode = let crossing = crossing_of_ty env ?modalities ty in @@ -5557,6 +5592,9 @@ let rec eqtype rename type_pairs subst env ~do_jkind_check t1 t2 = eqtype_subst type_pairs subst t1 k1 t2 k2 ~do_jkind_check | (Tconstr (p1, [], _), Tconstr (p2, [], _)) when Path.same p1 p2 -> () + | (Tof_kind k1, Tof_kind k2) -> + if not (Jkind.equal k1 k2) + then raise_for Equality (Unequal_tof_kind_jkinds (k1, k2)) | _ -> let t1' = expand_head_rigid env t1 in let t2' = expand_head_rigid env t2 in @@ -6329,8 +6367,7 @@ let rec build_subtype env (visited : transient_expr list) let (t1', c) = build_subtype env visited loops posi level t1 in if c > Unchanged then (newty (Tpoly(t1', tl)), c) else (t, Unchanged) - | Tunivar _ | Tpackage _ -> - (t, Unchanged) + | Tunivar _ | Tpackage _ | Tof_kind _ -> (t, Unchanged) and build_subtype_tuple env visited loops posi level t labeled_tlist constructor = @@ -6473,7 +6510,7 @@ let rec subtype_rec env trace t1 t2 cstrs = | (Tpoly (u1, []), Tpoly (u2, [])) -> subtype_rec env trace u1 u2 cstrs | (Tpoly (u1, tl1), Tpoly (u2, [])) -> - let _, u1' = instance_poly ~fixed:false tl1 u1 in + let u1' = instance_poly tl1 u1 in subtype_rec env trace u1' u2 cstrs | (Tpoly (u1, tl1), Tpoly (u2,tl2)) -> begin try diff --git a/src/ocaml/typing/ctype.mli b/src/ocaml/typing/ctype.mli index f033c1209..38dbe347b 100644 --- a/src/ocaml/typing/ctype.mli +++ b/src/ocaml/typing/ctype.mli @@ -218,9 +218,15 @@ val instance_class: type_expr list -> class_type -> type_expr list * class_type val instance_poly: - ?keep_names:bool -> fixed:bool -> - type_expr list -> type_expr -> type_expr list * type_expr + ?keep_names:bool -> + type_expr list -> type_expr -> type_expr (* Take an instance of a type scheme containing free univars *) +val instance_poly_fixed: + ?keep_names:bool -> + type_expr list -> type_expr -> type_expr list * type_expr + (* Take an instance of a type scheme containing free univars for + checking that an expression matches this scheme. *) + val polyfy: Env.t -> type_expr -> type_expr list -> type_expr * bool val instance_label: fixed:bool -> @@ -231,7 +237,8 @@ val prim_mode : -> (Mode.allowed * 'r) Mode.Locality.t val instance_prim: Primitive.description -> type_expr -> - type_expr * Mode.Locality.lr option * Jkind.Sort.t option + type_expr * Mode.Locality.lr option + * Mode.Yielding.lr option * Jkind.Sort.t option (** Given (a @ m1 -> b -> c) @ m0, where [m0] and [m1] are modes expressed by user-syntax, [curry_mode m0 m1] gives the mode we implicitly interpret b->c @@ -539,6 +546,8 @@ val free_variables: ?env:Env.t -> type_expr -> type_expr list 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 free_variable_set_of_list: Env.t -> type_expr list -> Btype.TypeSet.t + (* post-condition: all elements in the set are Tvars *) val exists_free_variable : (type_expr -> jkind_lr -> bool) -> type_expr -> bool (* Check if there exists a free variable that satisfies the @@ -602,10 +611,6 @@ val contained_without_boxing : Env.t -> type_expr -> type_expr list (or "without indirection" or "flatly"); in the case of [@@unboxed] existentials, these types might have free variables*) -(* Given the row from a variant type, determine if it is immediate. Currently - just checks that all constructors have no arguments, doesn't consider - void. *) -val tvariant_not_immediate : row_desc -> bool (* Cheap upper bound on jkind. Will not expand unboxed types - call [type_jkind] if that's needed. *) @@ -671,6 +676,12 @@ val check_type_externality : val check_type_nullability : Env.t -> type_expr -> Jkind_axis.Nullability.t -> bool +(* Check whether a type's separability is less than some target. + Potentially cheaper than just calling [type_jkind], because this can stop + expansion once it succeeds. *) +val check_type_separability : + Env.t -> type_expr -> Jkind_axis.Separability.t -> bool + (* This function should get called after a type is generalized. It does two things: diff --git a/src/ocaml/typing/datarepr.ml b/src/ocaml/typing/datarepr.ml index a6cc4b1ce..9415ce1e0 100644 --- a/src/ocaml/typing/datarepr.ml +++ b/src/ocaml/typing/datarepr.ml @@ -29,12 +29,12 @@ let free_vars ?(param=false) ty = | Tvar _ -> ret := TypeSet.add ty !ret | Tvariant row -> - iter_row loop row; - if not (static_row row) then begin - match get_desc (row_more row) with - | Tvar _ when param -> ret := TypeSet.add ty !ret - | _ -> loop (row_more row) - end + iter_row loop row; + if not (static_row row) then begin + match get_desc (row_more row) with + | Tvar _ when param -> ret := TypeSet.add ty !ret + | _ -> loop (row_more row) + end (* XXX: What about Tobject ? *) | _ -> iter_type_expr loop ty diff --git a/src/ocaml/typing/datarepr.mli b/src/ocaml/typing/datarepr.mli index 606fa6eab..053e2aded 100644 --- a/src/ocaml/typing/datarepr.mli +++ b/src/ocaml/typing/datarepr.mli @@ -19,7 +19,7 @@ open Types val extension_descr: - current_unit:Compilation_unit.t option -> Path.t -> extension_constructor -> + current_unit:Unit_info.t option -> Path.t -> extension_constructor -> constructor_description val labels_of_type: @@ -29,7 +29,7 @@ val unboxed_labels_of_type: Path.t -> type_declaration -> (Ident.t * unboxed_label_description) list val constructors_of_type: - current_unit:Compilation_unit.t option -> Path.t -> type_declaration -> + current_unit:Unit_info.t option -> Path.t -> type_declaration -> (Ident.t * constructor_description) list diff --git a/src/ocaml/typing/env.ml b/src/ocaml/typing/env.ml index dbb5b3e49..64d7f48d7 100644 --- a/src/ocaml/typing/env.ml +++ b/src/ocaml/typing/env.ml @@ -140,9 +140,6 @@ let label_usage_complaint priv mut lu let stamped_used_labels = s_table local_stamped 32 let used_labels_changelog, used_labels = !stamped_used_labels -let stamped_used_unboxed_labels = s_table local_stamped 32 -let used_unboxed_labels_changelog, used_unboxed_labels = !stamped_used_unboxed_labels - (** Map indexed by the name of module components. *) module NameMap = String.Map @@ -666,6 +663,11 @@ let stamped_mem table value = let stamped_find table value = Stamped_hashtable.find table value +let stamped_find_opt table value = + if Stamped_hashtable.mem table value + then Some (Stamped_hashtable.find table value) + else None + let stamped_create n = Stamped_hashtable.create !stamped_changelog n @@ -761,7 +763,8 @@ and label_data = label_description and type_data = { tda_declaration : type_declaration; tda_descriptions : type_descriptions; - tda_shape : Shape.t; } + tda_shape : Shape.t; + tda_unboxed_version_descriptions : type_descriptions option } and module_data = { mda_declaration : Subst.Lazy.module_declaration; @@ -834,7 +837,7 @@ type lookup_error = | Unbound_value of Longident.t * unbound_value_hint | Unbound_type of Longident.t | Unbound_constructor of Longident.t - | Unbound_label of (Longident.t * record_form_packed) + | Unbound_label of Longident.t * record_form_packed * label_usage | Unbound_module of Longident.t | Unbound_class of Longident.t | Unbound_modtype of Longident.t @@ -857,14 +860,14 @@ type lookup_error = Mode.Value.Comonadic.error * closure_context | Local_value_used_in_exclave of lock_item * Longident.t | Non_value_used_in_object of Longident.t * type_expr * Jkind.Violation.t - | No_unboxed_version of Longident.t + | No_unboxed_version of Longident.t * type_declaration | Error_from_persistent_env of Persistent_env.error type error = | Missing_module of Location.t * Path.t * Path.t | Illegal_value_name of Location.t * string | Lookup_error of Location.t * t * lookup_error - | Incomplete_instantiation of { unset_param : Global_module.Name.t } + | Incomplete_instantiation of { unset_param : Global_module.Parameter_name.t } exception Error of error @@ -883,14 +886,6 @@ let mode_default mode = { context = None } -let used_labels_by_form (type rep) (record_form : rep record_form) = - match record_form with - | Legacy -> used_labels - | Unboxed_product -> used_unboxed_labels - -let find_used_label_by_uid (type rep) (record_form : rep record_form) uid = - stamped_find (used_labels_by_form record_form) uid - let env_labels (type rep) (record_form : rep record_form) env : rep gen_label_description TycompTbl.t = match record_form with @@ -1076,18 +1071,22 @@ let rec address_head = function (* The name of the compilation unit currently compiled. *) module Current_unit_name : sig - val get : unit -> Compilation_unit.t option - val set : Compilation_unit.t option -> unit + val get : unit -> Unit_info.t option + val set : Unit_info.t option -> unit val is : string -> bool val is_ident : Ident.t -> bool val is_path : Path.t -> bool end = struct + let current_unit : Unit_info.t option ref = + ref None let get () = - Compilation_unit.get_current () - let set comp_unit = - Compilation_unit.set_current comp_unit + !current_unit + let set unit_info = + current_unit := unit_info + let get_cu () = + Option.map Unit_info.modname (get ()) let get_name () = - Option.map Compilation_unit.name (get ()) + Option.map Compilation_unit.name (get_cu ()) let is name = let current_name_string = Option.map Compilation_unit.Name.to_string (get_name ()) @@ -1259,11 +1258,10 @@ let reset_declaration_caches () = Stamped_hashtable.clear module_declarations; Stamped_hashtable.clear used_constructors; Stamped_hashtable.clear used_labels; - Stamped_hashtable.clear used_unboxed_labels; () let reset_cache ~preserve_persistent_env = - Compilation_unit.set_current None; + Current_unit_name.set None; if not preserve_persistent_env then Persistent_env.clear !persistent_env; reset_declaration_caches (); @@ -1439,6 +1437,7 @@ let type_of_cstr path = function tda_declaration = decl; tda_descriptions = Type_record (labels, repr, umc); tda_shape = Shape.leaf decl.type_uid; + tda_unboxed_version_descriptions = None; } | _ -> assert false end @@ -1475,6 +1474,7 @@ let rec find_type_data path env seen = tda_declaration = decl; tda_descriptions = Type_abstract (Btype.type_origin decl); tda_shape = Shape.leaf decl.type_uid; + tda_unboxed_version_descriptions = None; } | exception Not_found -> begin match path with @@ -1553,17 +1553,15 @@ and find_type_unboxed_version path env seen = and find_type_unboxed_version_data path env seen = let tda_declaration = find_type_unboxed_version path env seen in let descrs = - match tda_declaration.type_kind with - | Type_abstract r -> Type_abstract r - | Type_record_unboxed_product _ - | Type_open | Type_record _ | Type_variant _ -> - Misc.fatal_error - "Env.find_type_data: unexpected unboxed version kind" + match (find_type_data path env seen).tda_unboxed_version_descriptions with + | Some descrs -> descrs + | None -> Type_abstract Definition (* path is an alias *) in { tda_declaration; tda_descriptions = descrs; - tda_shape = Shape.leaf tda_declaration.type_uid + tda_shape = Shape.leaf tda_declaration.type_uid; + tda_unboxed_version_descriptions = None } let find_modtype_lazy path env = @@ -2282,14 +2280,16 @@ let rec components_of_module_maker | Type_open -> Type_open in let descrs = store_decl path final_decl in - ignore - (Option.map (store_decl (Path.unboxed_version path)) - final_decl.type_unboxed_version); + let unboxed_descrs = + Option.map (store_decl (Path.unboxed_version path)) + final_decl.type_unboxed_version + in let shape = Shape.proj cm_shape (Shape.Item.type_ id) in let tda = { tda_declaration = final_decl; tda_descriptions = descrs; - tda_shape = shape; } + tda_shape = shape; + tda_unboxed_version_descriptions = unboxed_descrs } in c.comp_types <- NameMap.add (Ident.name id) tda c.comp_types; env := store_type_infos ~tda_shape:shape id decl !env @@ -2494,9 +2494,20 @@ and store_label let loc = lbl.lbl_loc in let mut = lbl.lbl_mut in let k = lbl.lbl_uid in - if not (stamped_mem (used_labels_by_form record_form) k) then + match k with + | Unboxed_version k_boxed -> + (* Never warn if an unboxed version of a label is unused, but its uses + count as uses of the boxed version. *) + begin match stamped_find_opt used_labels k_boxed with + | Some boxed_usages -> + stamped_uid_add used_labels k boxed_usages + | None -> + () + end + | _ -> + if not (stamped_mem used_labels k) then let used = label_usages () in - stamped_uid_add (used_labels_by_form record_form) k + stamped_uid_add used_labels k (add_label_usage used); if not (ty_name = "" || ty_name.[0] = '_' || name.[0] = '_') then !add_delayed_check_forward @@ -2554,10 +2565,20 @@ and store_type ~check ~long_path ~predef id info shape env = | Type_open -> Type_open, env in let descrs, env = store_decl (Pident id) info env in + let unboxed_descrs, env = + match info.type_unboxed_version with + | Some uinfo -> + let unboxed_descrs, env = + store_decl (Path.unboxed_version (Pident id)) uinfo env + in + Some unboxed_descrs, env + | None -> None, env + in let tda = { tda_declaration = info; tda_descriptions = descrs; - tda_shape = shape } + tda_shape = shape; + tda_unboxed_version_descriptions = unboxed_descrs } in Builtin_attributes.mark_alerts_used info.type_attributes; { env with @@ -2576,7 +2597,10 @@ and store_type_infos ~tda_shape id info env = { tda_declaration = info; tda_descriptions = Type_abstract (Btype.type_origin info); - tda_shape + tda_shape; + tda_unboxed_version_descriptions = + Option.map (fun uinfo -> Type_abstract (Btype.type_origin uinfo)) + info.type_unboxed_version; } in { env with @@ -3119,8 +3143,8 @@ let mark_extension_used usage ext = | mark -> mark usage | exception Not_found -> () -let mark_label_used record_form usage ld = - match find_used_label_by_uid record_form ld.ld_uid with +let mark_label_used usage ld = + match stamped_find used_labels ld.ld_uid with | mark -> mark usage | exception Not_found -> () @@ -3131,14 +3155,14 @@ let mark_constructor_description_used usage env cstr = | mark -> mark usage | exception Not_found -> () -let mark_label_description_used record_form usage env lbl = +let mark_label_description_used usage env lbl = let ty_path = match get_desc lbl.lbl_res with | Tconstr(path, _, _) -> path | _ -> assert false in mark_type_path_used env ty_path; - match find_used_label_by_uid record_form lbl.lbl_uid with + match stamped_find used_labels lbl.lbl_uid with | mark -> mark usage | exception Not_found -> () @@ -3247,9 +3271,9 @@ let use_cltype ~use ~loc path desc = (Path.name path) end -let use_label ~record_form ~use ~loc usage env lbl = +let use_label ~use ~loc usage env lbl = if use then begin - mark_label_description_used record_form usage env lbl; + mark_label_description_used usage env lbl; Builtin_attributes.check_alerts loc lbl.lbl_attributes lbl.lbl_name; if is_mutating_label_usage usage then Builtin_attributes.check_deprecated_mutable loc lbl.lbl_attributes @@ -3339,7 +3363,7 @@ let share_mode ~errors ~env ~loc ~item ~lid vmode shared_context = (Once_value_used_in (item, lid, shared_context)) | Ok () -> let mode = - Mode.Value.join_with (Monadic Uniqueness) Mode.Uniqueness.Const.Aliased + Mode.Value.join_with Uniqueness Mode.Uniqueness.Const.Aliased vmode.mode in {mode; context = Some shared_context} @@ -3475,12 +3499,13 @@ let lookup_all_ident_labels (type rep) ~(record_form : rep record_form) ~errors ~use ~loc usage s env = match find_all_labels ~record_form ~mark:use s env with | [] -> - may_lookup_error errors loc env (Unbound_label (Lident s, P record_form)) + may_lookup_error errors loc env + (Unbound_label (Lident s, P record_form, usage)) | lbls -> begin List.map (fun (lbl, use_fn) -> let use_fn () = - use_label ~record_form ~use ~loc usage env lbl; + use_label ~use ~loc usage env lbl; use_fn () in (lbl, use_fn)) @@ -3676,11 +3701,11 @@ let lookup_all_dot_labels ~record_form ~errors ~use ~loc usage l s env = match NameMap.find s (comp_labels record_form comps) with | [] | exception Not_found -> may_lookup_error errors loc env - (Unbound_label (Ldot(l, s), P record_form)) + (Unbound_label (Ldot(l, s), P record_form, usage)) | lbls -> List.map (fun lbl -> - let use_fun () = use_label ~record_form ~use ~loc usage env lbl in + let use_fun () = use_label ~use ~loc usage env lbl in (lbl, use_fun)) lbls @@ -3972,12 +3997,13 @@ let lookup_type ~errors ~use ~loc lid env = | Some lid -> (* To get the hash version, look up without the hash, then look for the unboxed version *) - let path, _ = lookup_type_full ~errors ~use ~loc lid env in + let path, data = lookup_type_full ~errors ~use ~loc lid env in match find_type_unboxed_version path env Path.Set.empty with | decl -> Path.unboxed_version path, decl | exception Not_found -> - may_lookup_error errors loc env (No_unboxed_version lid) + may_lookup_error errors loc env + (No_unboxed_version (lid, data.tda_declaration)) let lookup_modtype_lazy ~errors ~use ~loc lid env = match lid with @@ -4032,13 +4058,13 @@ let lookup_all_labels_from_type (type rep) ~use ~(record_form : rep record_form) | (Type_record (lbls, _, _), Legacy) -> List.map (fun lbl -> - let use_fun () = use_label ~record_form ~use ~loc usage env lbl in + let use_fun () = use_label ~use ~loc usage env lbl in (lbl, use_fun)) lbls | (Type_record_unboxed_product (lbls, _, _), Unboxed_product) -> List.map (fun lbl -> - let use_fun () = use_label ~record_form ~use ~loc usage env lbl in + let use_fun () = use_label ~use ~loc usage env lbl in (lbl, use_fun)) lbls | (Type_record (_, _, _), Unboxed_product) -> [] @@ -4609,7 +4635,7 @@ let report_lookup_error _loc env ppf = function fprintf ppf "Unbound constructor %a" (Style.as_inline_code !print_longident) lid; spellcheck ppf extract_constructors env lid; - | Unbound_label (lid, record_form) -> + | Unbound_label (lid, record_form, usage) -> let P record_form = record_form in fprintf ppf "Unbound %s field %a" (record_form_to_string record_form) @@ -4628,7 +4654,25 @@ let report_lookup_error _loc env ppf = function (match label_of_other_form with | Some other_form -> Format.fprintf ppf - "@\n@{Hint@}: There is %s field with this name." other_form + "@\n@{Hint@}: @[There is %s field with this name." other_form; + (match record_form, usage with + | Unboxed_product, _ -> + (* If an unboxed field isn't in scope but a boxed field is, then + the boxed field must come from a record that didn't get an unboxed + version. *) + Format.fprintf ppf + "@ Note that float- and [%@%@unboxed]- records don't get unboxed \ + versions." + | Legacy, Projection -> + let print_projection ppf (op, lid) = + fprintf ppf "%s%a" op !print_longident lid + in + fprintf ppf "@ To project an unboxed record field, use %a instead of \ + %a." + (Style.as_inline_code print_projection) (".#", lid) + (Style.as_inline_code print_projection) (".", lid) + | _ -> ()); + Format.fprintf ppf "@]" | None -> ()); | Unbound_class lid -> begin fprintf ppf "Unbound class %a" @@ -4730,6 +4774,9 @@ let report_lookup_error _loc env ppf = function | Error (Linearity, _) -> "once", "is many" | Error (Portability, _) -> "nonportable", "is portable" | Error (Yielding, _) -> "yielding", "may not yield" + | Error (Statefulness, {left; right}) -> + asprintf "%a" Mode.Statefulness.Const.print left, + asprintf "is %a" Mode.Statefulness.Const.print right in let s, hint = match context with @@ -4767,9 +4814,21 @@ let report_lookup_error _loc env ppf = function (Style.as_inline_code !print_longident) lid (fun v -> Jkind.Violation.report_with_offender ~offender:(fun ppf -> !print_type_expr ppf typ) v) err - | No_unboxed_version lid -> + | No_unboxed_version (lid, decl) -> fprintf ppf "@[The type %a has no unboxed version.@]" - (Style.as_inline_code !print_longident) lid + (Style.as_inline_code !print_longident) lid; + begin match decl.type_kind with + | Type_record (_, Record_unboxed, _) -> + fprintf ppf + "@.@[@{Hint@}: \ + [%@%@unboxed] records don't get unboxed versions.@]" + | Type_record (_, (Record_float | Record_ufloat | Record_mixed _), _) -> + fprintf ppf + "@.@[@{Hint@}: Float records don't get unboxed versions.@]"; + | Type_record_unboxed_product _ -> + fprintf ppf "@.@[@{Hint@}: It is already an unboxed record.@]"; + | _ -> () + end | Error_from_persistent_env err -> Persistent_env.report_error ppf err @@ -4794,7 +4853,7 @@ let report_error ppf = function | Incomplete_instantiation { unset_param } -> fprintf ppf "@[Not enough instance arguments: the parameter@ %a@ is \ required.@]" - Global_module.Name.print unset_param + Global_module.Parameter_name.print unset_param let () = Location.register_error_of_exn @@ -5125,7 +5184,6 @@ let cleanup_usage_tables ~stamp = Stamped_hashtable.backtrack module_declarations_changelog ~stamp; Stamped_hashtable.backtrack used_constructors_changelog ~stamp; Stamped_hashtable.backtrack used_labels_changelog ~stamp; - Stamped_hashtable.backtrack used_unboxed_labels_changelog ~stamp type 'acc fold_all_labels_f = { @@ -5135,3 +5193,9 @@ type 'acc fold_all_labels_f = let fold_all_labels f ident env init = let acc_after_legacy = fold_labels Legacy (f.fold_all_labels_f Legacy) ident env init in fold_labels Unboxed_product (f.fold_all_labels_f Unboxed_product) ident env acc_after_legacy + +let () = + let get_current_compilation_unit () = + Option.map Unit_info.modname (get_unit_name ()) + in + Compilation_unit.Private.fwd_get_current := get_current_compilation_unit diff --git a/src/ocaml/typing/env.mli b/src/ocaml/typing/env.mli index 7ec2cf7e5..6f45caa92 100644 --- a/src/ocaml/typing/env.mli +++ b/src/ocaml/typing/env.mli @@ -169,7 +169,7 @@ val mark_extension_used: type label_usage = Projection | Mutation | Construct | Exported_private | Exported val mark_label_used: - _ record_form -> label_usage -> label_declaration -> unit + label_usage -> label_declaration -> unit (* Lookup by long identifiers *) @@ -231,7 +231,7 @@ type lookup_error = | Unbound_value of Longident.t * unbound_value_hint | Unbound_type of Longident.t | Unbound_constructor of Longident.t - | Unbound_label of (Longident.t * record_form_packed) + | Unbound_label of Longident.t * record_form_packed * label_usage | Unbound_module of Longident.t | Unbound_class of Longident.t | Unbound_modtype of Longident.t @@ -253,7 +253,7 @@ type lookup_error = | Value_used_in_closure of lock_item * Longident.t * Mode.Value.Comonadic.error * closure_context | Local_value_used_in_exclave of lock_item * Longident.t | Non_value_used_in_object of Longident.t * type_expr * Jkind.Violation.t - | No_unboxed_version of Longident.t + | No_unboxed_version of Longident.t * type_declaration | Error_from_persistent_env of Persistent_env.error val lookup_error: Location.t -> t -> lookup_error -> 'a @@ -516,8 +516,8 @@ val reset_cache: preserve_persistent_env:bool -> unit val reset_cache_toplevel: unit -> unit (* Remember the name of the current compilation unit. *) -val set_unit_name: Compilation_unit.t option -> unit -val get_unit_name: unit -> Compilation_unit.t option +val set_unit_name: Unit_info.t option -> unit +val get_unit_name: unit -> Unit_info.t option (* Read, save a signature to/from a file. *) val read_signature: @@ -537,7 +537,7 @@ val save_signature_with_imports: file name, imported units with their CRCs. *) (* Register a module as a parameter to this unit. *) -val register_parameter: Global_module.Name.t -> unit +val register_parameter: Global_module.Parameter_name.t -> unit (* Return the CRC of the interface of the given compilation unit *) val crc_of_unit: Compilation_unit.Name.t -> Digest.t @@ -557,7 +557,7 @@ val is_bound_to_runtime_parameter: Ident.t -> bool (* Return the list of parameters specified for the current unit, in alphabetical order *) -val parameters: unit -> Global_module.Name.t list +val parameters: unit -> Global_module.Parameter_name.t list (* [is_imported_opaque md] returns true if [md] is an opaque imported module *) val is_imported_opaque: Compilation_unit.Name.t -> bool @@ -571,7 +571,8 @@ val is_parameter_unit: Global_module.Name.t -> bool (* [implemented_parameter md] is the argument given to -as-argument-for when [md] was compiled *) -val implemented_parameter: Global_module.Name.t -> Global_module.Name.t option +val implemented_parameter: + Global_module.Name.t -> Global_module.Parameter_name.t option (* [is_imported_parameter md] is true if [md] has been imported and is a parameter to this module *) @@ -601,7 +602,7 @@ type error = | Missing_module of Location.t * Path.t * Path.t | Illegal_value_name of Location.t * string | Lookup_error of Location.t * t * lookup_error - | Incomplete_instantiation of { unset_param : Global_module.Name.t; } + | Incomplete_instantiation of { unset_param : Global_module.Parameter_name.t; } exception Error of error diff --git a/src/ocaml/typing/errortrace.ml b/src/ocaml/typing/errortrace.ml index f7fb98afb..20ba003ca 100644 --- a/src/ocaml/typing/errortrace.ml +++ b/src/ocaml/typing/errortrace.ml @@ -112,6 +112,7 @@ type ('a, 'variety) elt = | Bad_jkind_sort : type_expr * Jkind.Violation.t -> ('a, _) elt | Unequal_var_jkinds : type_expr * jkind_lr * type_expr * jkind_lr -> ('a, _) elt + | Unequal_tof_kind_jkinds : jkind_lr * jkind_lr -> ('a, _) elt type ('a, 'variety) t = ('a, 'variety) elt list @@ -133,6 +134,7 @@ let map_elt (type variety) f : ('a, variety) elt -> ('b, variety) elt = function | Bad_jkind _ as x -> x | Bad_jkind_sort _ as x -> x | Unequal_var_jkinds _ as x -> x + | Unequal_tof_kind_jkinds _ as x -> x let map f t = List.map (map_elt f) t diff --git a/src/ocaml/typing/errortrace.mli b/src/ocaml/typing/errortrace.mli index f0eec6930..211bfff70 100644 --- a/src/ocaml/typing/errortrace.mli +++ b/src/ocaml/typing/errortrace.mli @@ -97,6 +97,7 @@ type ('a, 'variety) elt = | Bad_jkind_sort : type_expr * Jkind.Violation.t -> ('a, _) elt | Unequal_var_jkinds : type_expr * jkind_lr * type_expr * jkind_lr -> ('a, _) elt + | Unequal_tof_kind_jkinds : jkind_lr * jkind_lr -> ('a, _) elt type ('a, 'variety) t = ('a, 'variety) elt list diff --git a/src/ocaml/typing/global_module.ml b/src/ocaml/typing/global_module.ml index db5b4a247..471a7bf44 100644 --- a/src/ocaml/typing/global_module.ml +++ b/src/ocaml/typing/global_module.ml @@ -1,52 +1,72 @@ -[@@@ocaml.warning "+a-40-41-42"] +module Parameter_name = struct + type t = string + + let of_string t = t + + let to_string t = t + + include Identifiable.Make (struct + type nonrec t = t + + let compare = String.compare + + let equal a b = compare a b = 0 + + let print = Format.pp_print_string + + let output = print |> Misc.output_of_print + + let hash = Hashtbl.hash + end) +end let pp_concat pp ppf list = Format.pp_print_list ~pp_sep:Format.pp_print_cut pp ppf list -type ('name, 'value) duplicate = - | Duplicate of { name : 'name; value1 : 'value; value2 : 'value } +type 'value duplicate = + | Duplicate of { name : Parameter_name.t; value1 : 'value; value2 : 'value } module Argument = struct - type ('param, 'value) t = { - param : 'param; + type 'value t = { + param : Parameter_name.t; value : 'value; } - let compare cmp_param cmp_value + let compare cmp_value ({ param = param1; value = value1 } as t1) ({ param = param2; value = value2 } as t2) = if t1 == t2 then 0 else - match cmp_param param1 param2 with + match Parameter_name.compare param1 param2 with | 0 -> cmp_value value1 value2 | c -> c + + let compare_by_param t1 t2 = Parameter_name.compare t1.param t2.param end -let check_uniqueness_of_sorted l ~cmp = +let check_uniqueness_of_sorted l = let rec loop n1 v1 l = - match (l : (_, _) Argument.t list) with + match (l : _ Argument.t list) with | [] -> Ok () | { param = n2; value = v2 } :: l -> - if cmp n1 n2 = 0 then + if Parameter_name.compare n1 n2 = 0 then Error (Duplicate { name = n1; value1 = v1; value2 = v2 }) else loop n2 v2 l in - match (l : (_, _) Argument.t list) with + match (l : _ Argument.t list) with | [] -> Ok () | { param = n1; value = v1 } :: l -> loop n1 v1 l -let sort_and_check_uniqueness l ~cmp = - let open Argument in - let l = List.stable_sort (fun arg1 arg2 -> cmp arg1.param arg2.param) l in - check_uniqueness_of_sorted l ~cmp |> Result.map (fun () -> l) +let sort_and_check_uniqueness l = + let l = List.stable_sort Argument.compare_by_param l in + check_uniqueness_of_sorted l |> Result.map (fun () -> l) -let check_uniqueness_of_merged (type n v) - (l1 : (n, v) Argument.t list) l2 ~(cmp : n -> n -> int) = +let check_uniqueness_of_merged (type v) l1 l2 = let open Argument in - let exception Found_duplicate of (n, v) duplicate in + let exception Found_duplicate of v duplicate in match Misc_stdlib.List.merge_iter l1 l2 - ~cmp:(fun arg1 arg2 -> cmp arg1.param arg2.param) + ~cmp:Argument.compare_by_param ~left_only:ignore ~right_only:ignore ~both:(fun { param = name; value = value1 } { value = value2; _ } -> @@ -60,16 +80,22 @@ module Name : sig head : string; args : argument list; } - and argument = (t, t) Argument.t + and argument = t Argument.t - val create : string -> argument list -> (t, (t, t) duplicate) Result.t + val create : string -> argument list -> (t, t duplicate) Result.t val create_exn : string -> argument list -> t val create_no_args : string -> t + val of_parameter_name : Parameter_name.t -> t + val unsafe_create_unchecked : string -> argument list -> t + val find_in_parameter_map : t -> 'a Parameter_name.Map.t -> 'a option + + val mem_parameter_set : t -> Parameter_name.Set.t -> bool + val to_string : t -> string include Identifiable.S with type t := t @@ -78,7 +104,7 @@ end = struct head : string; args : argument list; } - and argument = (t, t) Argument.t + and argument = t Argument.t include Identifiable.Make (struct type nonrec t = t @@ -91,7 +117,8 @@ end = struct match String.compare head1 head2 with | 0 -> List.compare compare_arg args1 args2 | c -> c - and compare_arg arg1 arg2 = Argument.compare compare compare arg1 arg2 + + and compare_arg arg1 arg2 = Argument.compare compare arg1 arg2 let equal t1 t2 = compare t1 t2 = 0 @@ -105,7 +132,7 @@ end = struct head (pp_concat print_arg_pair) args and print_arg_pair ppf ({ param = name; value = arg } : argument) = - Format.fprintf ppf "[%a:%a]" print name print arg + Format.fprintf ppf "[%a:%a]" Parameter_name.print name print arg let output = print |> Misc.output_of_print @@ -113,7 +140,7 @@ end = struct end) let create head args = - sort_and_check_uniqueness args ~cmp:compare + sort_and_check_uniqueness args |> Result.map (fun args -> { head; args }) let create_exn head args = @@ -125,51 +152,84 @@ end = struct let create_no_args head = create_exn head [] + let of_parameter_name param = create_no_args param + let unsafe_create_unchecked head args = { head; args } - let to_string = print |> Misc_stdlib.to_string_of_print -end + let unsafe_to_parameter_name_opt t = + (* Only safe for use as a lookup key, since it might actually not be a + parameter name *) + match t with + | { head; args = [] } -> Some head + | _ -> None -let compare_arg_name arg1 arg2 = - let open Argument in - Name.compare arg1.param arg2.param + let find_in_parameter_map t map = + match unsafe_to_parameter_name_opt t with + | Some param -> Parameter_name.Map.find_opt param map + | None -> None -let rec list_similar f list1 list2 = - match list1, list2 with - | [], [] -> true - | a :: list1, b :: list2 -> f a b && list_similar f list1 list2 - | (_ :: _), [] | [], (_ :: _) -> false + let mem_parameter_set t set = + match unsafe_to_parameter_name_opt t with + | Some param -> Parameter_name.Set.mem param set + | None -> false + + let to_string = print |> Misc_stdlib.to_string_of_print +end module T0 : sig type t = private { head : string; visible_args : argument list; + (* CR-someday lmaurer: Could just be the parameter names *) hidden_args : argument list; } - and argument = (Name.t, t) Argument.t + + and argument = t Argument.t include Identifiable.S with type t := t val create : string -> argument list - -> hidden_args:argument list - -> (t, (Name.t, t) duplicate) Result.t + -> hidden_args:Parameter_name.t list + -> (t, t duplicate) Result.t val create_exn : string -> argument list - -> hidden_args:argument list + -> hidden_args:Parameter_name.t list -> t val to_name : t -> Name.t + + val unsafe_create_unchecked + : string + -> argument list + -> hidden_args:argument list + -> t end = struct type t = { head : string; visible_args : argument list; hidden_args : argument list; } - and argument = (Name.t, t) Argument.t + and argument = t Argument.t + + let rec print ppf { head; visible_args; hidden_args } = + let hidden_args = + (* Assume the value is just the name (because it is) *) + List.map (fun ({ param; value = _ } : argument) -> param) hidden_args + in + print_syntax ppf ~head ~visible_args ~hidden_args + and print_syntax ppf ~head ~visible_args ~hidden_args = + Format.fprintf ppf "@[%s%a%a@]" + head + (pp_concat print_visible_pair) visible_args + (pp_concat print_hidden_pair) hidden_args + and print_visible_pair ppf ({ param = name; value } : argument) = + Format.fprintf ppf "[%a:%a]" Parameter_name.print name print value + and print_hidden_pair ppf name = + Format.fprintf ppf "{%a}" Parameter_name.print name include Identifiable.Make (struct type nonrec t = t @@ -186,44 +246,30 @@ end = struct | c -> c end | c -> c - and compare_pairs arg1 arg2 = Argument.compare Name.compare compare arg1 arg2 + + and compare_pairs arg1 arg2 = Argument.compare compare arg1 arg2 let equal t1 t2 = compare t1 t2 = 0 - let rec equal_looking t name = - let { head; visible_args; hidden_args } = t in - let { Name.head = name_head; args = name_args } = name in - hidden_args = [] - && String.equal head name_head - && list_similar equal_looking_args visible_args name_args - and equal_looking_args - ({ param = name1; value = value1 } : argument) - ({ param = name2; value = value2 } : Name.argument) = - Name.equal name1 name2 && equal_looking value1 value2 - - let rec print ppf { head; visible_args; hidden_args } = - Format.fprintf ppf "@[%s%a%a@]" - head - (pp_concat print_visible_pair) visible_args - (pp_concat print_hidden_pair) hidden_args - and print_visible_pair ppf ({ param = name; value } : argument) = - Format.fprintf ppf "[%a:%a]" Name.print name print value - and print_hidden_pair ppf ({ param = name; value } : argument) = - if equal_looking value name then - Format.fprintf ppf "{%a}" Name.print name - else - Format.fprintf ppf "{%a:%a}" Name.print name print value + let print = print let output = print |> Misc.output_of_print let hash = Hashtbl.hash end) + let of_parameter_name param = { head = param; hidden_args = []; visible_args = [] } + let create head visible_args ~hidden_args = + let hidden_args = + List.map + (fun param -> Argument.{ param; value = of_parameter_name param }) + hidden_args + in let (let*) = Result.bind in - let* visible_args = sort_and_check_uniqueness visible_args ~cmp:Name.compare in - let* hidden_args = sort_and_check_uniqueness hidden_args ~cmp:Name.compare in - let* () = check_uniqueness_of_merged visible_args hidden_args ~cmp:Name.compare in + let* visible_args = sort_and_check_uniqueness visible_args in + let* hidden_args = sort_and_check_uniqueness hidden_args in + let* () = check_uniqueness_of_merged visible_args hidden_args in Ok { head; visible_args; hidden_args } let create_exn head visible_args ~hidden_args = @@ -231,7 +277,10 @@ end = struct | Ok t -> t | Error (Duplicate _) -> Misc.fatal_errorf "Names of arguments and parameters must be unique:@ %a" - print { head; visible_args; hidden_args } + (fun ppf () -> print_syntax ppf ~head ~visible_args ~hidden_args) () + + let unsafe_create_unchecked head visible_args ~hidden_args = + { head; visible_args; hidden_args } (* CR-someday lmaurer: Should try and make this unnecessary or at least cheap. Could do it by making [Name.t] an unboxed existential so that converting from @@ -247,20 +296,24 @@ include T0 let to_string = print |> Misc_stdlib.to_string_of_print -let all_args t = t.visible_args @ t.hidden_args - -module Subst = Name.Map +module Subst = Parameter_name.Map type subst = t Subst.t +let find_in_parameter_map t map = + match t with + | { head; visible_args = []; hidden_args = []; } -> + Parameter_name.Map.find_opt head map + | _ -> None + let rec subst0 (t : t) (s : subst) ~changed = - match Subst.find_opt (to_name t) s with + match find_in_parameter_map t s with | Some rhs -> changed := true; rhs | None -> subst0_inside t s ~changed and subst0_inside { head; visible_args; hidden_args } s ~changed = let matching_hidden_args, non_matching_hidden_args = List.partition_map (fun (({ param = name; value } : argument) as pair) -> - match Subst.find_opt (to_name value) s with + match find_in_parameter_map value s with | Some rhs -> changed := true; Left ({ param = name; value = rhs } : argument) @@ -268,11 +321,15 @@ and subst0_inside { head; visible_args; hidden_args } s ~changed = hidden_args in let visible_args = subst0_alist visible_args s ~changed in - let hidden_args = subst0_alist non_matching_hidden_args s ~changed in let visible_args = - List.merge compare_arg_name visible_args matching_hidden_args + List.merge Argument.compare_by_param visible_args matching_hidden_args + in + let hidden_args = + (* Don't bother substituting: these never have deeper structure *) + non_matching_hidden_args in - create_exn head visible_args ~hidden_args + (* The [List.merge] preserved sorting so everything must still be valid *) + unsafe_create_unchecked head visible_args ~hidden_args and subst0_alist l s ~changed = List.map (fun (arg : argument) -> { arg with value = subst0 arg.value s ~changed }) @@ -288,15 +345,15 @@ let subst_inside t s = let new_t = subst0_inside t s ~changed in if !changed then new_t else t -let check s args = +let check s params = (* This could do more - say, check that the replacement (the argument) has all the parameters of the original (the parameter). (The subset rule requires this, since an argument has to refer to the parameter it implements, and thus the parameter's parameters must include the argument's parameters.) It would be redundant with the checks implemented elsewhere but could still be helpful. *) - let param_set = List.map to_name args |> Name.Set.of_list in - Name.Set.subset (Name.Map.keys s) param_set + let param_set = Parameter_name.Set.of_list params in + Parameter_name.Set.subset (Parameter_name.Map.keys s) param_set let rec is_complete t = let open Argument in @@ -345,7 +402,7 @@ module With_precision = struct let rec meet glob1 glob2 = let visible_args_rev = Misc_stdlib.List.merge_fold glob1.visible_args glob2.visible_args - ~cmp:compare_arg_name + ~cmp:Argument.compare_by_param ~init:[] ~left_only:(fun _ _ -> raise Inconsistent) ~right_only:(fun _ _ -> raise Inconsistent) @@ -354,7 +411,7 @@ module With_precision = struct let hidden_args_rev = (* Keep only the hidden arguments that appear in both lists *) Misc_stdlib.List.merge_fold glob1.hidden_args glob2.hidden_args - ~cmp:compare_arg_name + ~cmp:Argument.compare_by_param ~init:[] ~left_only:(fun acc_rev _ -> acc_rev) ~right_only:(fun acc_rev _ -> acc_rev) @@ -363,9 +420,9 @@ module With_precision = struct meet_atom String.equal glob1.head glob2.head; let visible_args = List.rev visible_args_rev in let hidden_args = List.rev hidden_args_rev in - create_exn glob1.head visible_args ~hidden_args + unsafe_create_unchecked glob1.head visible_args ~hidden_args and meet_args (arg1 : _ Argument.t) (arg2 : _ Argument.t) = - meet_atom Name.equal arg1.param arg2.param; + meet_atom Parameter_name.equal arg1.param arg2.param; let value = meet arg1.value arg2.value in ({ param = arg1.param; value } : _ Argument.t) in diff --git a/src/ocaml/typing/global_module.mli b/src/ocaml/typing/global_module.mli index 567271b6b..08b330f42 100644 --- a/src/ocaml/typing/global_module.mli +++ b/src/ocaml/typing/global_module.mli @@ -1,11 +1,19 @@ -[@@@ocaml.warning "+a-9-40-41-42"] +module Parameter_name : sig + type t -type ('name, 'value) duplicate = - | Duplicate of { name : 'name; value1 : 'value; value2 : 'value } + val of_string : string -> t + + val to_string : t -> string + + include Identifiable.S with type t := t +end + +type 'value duplicate = + | Duplicate of { name : Parameter_name.t; value1 : 'value; value2 : 'value } module Argument : sig - type ('param, 'value) t = { - param : 'param; + type 'value t = { + param : Parameter_name.t; value : 'value; } end @@ -15,17 +23,25 @@ module Name : sig head : string; args : argument list; } - and argument = (t, t) Argument.t + and argument = t Argument.t include Identifiable.S with type t := t - val create : string -> argument list -> (t, (t, t) duplicate) Result.t + val create : string -> argument list -> (t, t duplicate) Result.t val create_exn : string -> argument list -> t val create_no_args : string -> t + val of_parameter_name : Parameter_name.t -> t + val to_string : t -> string + + (* Find this name in a map keyed by parameter names. Preferrable to converting + this to a [Parameter_name.t] since it may not in fact be a parameter name *) + val find_in_parameter_map : t -> 'a Parameter_name.Map.t -> 'a option + + val mem_parameter_set : t -> Parameter_name.Set.t -> bool end (** An elaborated form of name in which all arguments are expressed, including @@ -65,25 +81,22 @@ type t = private { visible_args : argument list; hidden_args : argument list; } -and argument = (Name.t, t) Argument.t +and argument = t Argument.t include Identifiable.S with type t := t val create - : string -> argument list -> hidden_args:argument list - -> (t, (Name.t, t) duplicate) Result.t + : string -> argument list -> hidden_args:Parameter_name.t list + -> (t, t duplicate) Result.t -val create_exn : string -> argument list -> hidden_args:argument list -> t +val create_exn : string -> argument list -> hidden_args:Parameter_name.t list -> t val to_string : t -> string val to_name : t -> Name.t -val all_args : t -> argument list - -(** A map from parameter names to their values. Hidden arguments aren't relevant - in the parameter names, so they're represented by [Name.t]s here. *) -type subst = t Name.Map.t +(** A map from parameter names to their values. *) +type subst = t Parameter_name.Map.t (** Apply a substitution to the given global. If it appears in the substitution directly (that is, its [Name.t] form is a key in the map), this simply @@ -100,10 +113,12 @@ val subst : t -> subst -> t * [ `Changed | `Did_not_change ] uninterestingly just the corresponding value. *) val subst_inside : t -> subst -> t +val find_in_parameter_map : t -> 'a Parameter_name.Map.t -> 'a option + (** Check that a substitution is a valid (possibly partial) instantiation of a module with the given parameter list. Each name being substituted must appear in the list. *) -val check : subst -> t list -> bool +val check : subst -> Parameter_name.t list -> bool (** Returns [true] if [hidden_args] is empty and all argument values (if any) are also complete. This is a stronger condition than full application, and diff --git a/src/ocaml/typing/includecore.ml b/src/ocaml/typing/includecore.ml index c281e5fe5..ac5746e39 100644 --- a/src/ocaml/typing/includecore.ml +++ b/src/ocaml/typing/includecore.ml @@ -146,37 +146,31 @@ let value_descriptions ~loc env name | Val_prim p1 -> begin match vd2.val_kind with | Val_prim p2 -> begin - let ty1_global, _, _ = Ctype.instance_prim p1 vd1.val_type in - let ty2_global = - let ty2, mode2, _ = Ctype.instance_prim p2 vd2.val_type in - Option.iter - (fun m -> Mode.Locality.submode_exn m Mode.Locality.global) - mode2; - ty2 - in - (try Ctype.moregeneral env true ty1_global ty2_global - with Ctype.Moregen err -> raise (Dont_match (Type err))); - let ty1_local, _, _ = Ctype.instance_prim p1 vd1.val_type in - let ty2_local = - let ty2, mode2, _ = Ctype.instance_prim p2 vd2.val_type in - Option.iter - (fun m -> Mode.Locality.submode_exn Mode.Locality.local m) - mode2; - ty2 - in - (try Ctype.moregeneral env true ty1_local ty2_local - with Ctype.Moregen err -> raise (Dont_match (Type err))); + let locality = [ Mode.Locality.global; Mode.Locality.local ] in + let yielding = [ Mode.Yielding.unyielding; Mode.Yielding.yielding ] in + List.iter (fun loc -> + List.iter (fun yield -> + let ty1, _, _, _ = Ctype.instance_prim p1 vd1.val_type in + let ty2, mode_l2, mode_y2, _ = Ctype.instance_prim p2 vd2.val_type in + Option.iter (Mode.Locality.equate_exn loc) mode_l2; + Option.iter (Mode.Yielding.equate_exn yield) mode_y2; + try + Ctype.moregeneral env true ty1 ty2 + with Ctype.Moregen err -> + raise (Dont_match (Type err)) + ) yielding + ) locality; match primitive_descriptions p1 p2 with | None -> Tcoerce_none | Some err -> raise (Dont_match (Primitive_mismatch err)) end | _ -> - let ty1, mode1, sort1 = Ctype.instance_prim p1 vd1.val_type in + let ty1, mode_l1, _, sort1 = Ctype.instance_prim p1 vd1.val_type in (try Ctype.moregeneral env true ty1 vd2.val_type with Ctype.Moregen err -> raise (Dont_match (Type err))); let pc = {pc_desc = p1; pc_type = vd2.Types.val_type; - pc_poly_mode = Option.map Mode.Locality.disallow_right mode1; + pc_poly_mode = Option.map Mode.Locality.disallow_right mode_l1; pc_poly_sort=sort1; pc_env = env; pc_loc = vd1.Types.val_loc; } in Tcoerce_primitive pc @@ -698,9 +692,9 @@ module Record_diffing = struct | Immutable, Mutable _ -> Some Second | Mutable m1, Mutable m2 -> let open Mode.Alloc.Comonadic.Const in - (if not (eq m1 legacy) then + (if not (Misc_stdlib.Le_result.equal ~le m1 legacy) then Misc.fatal_errorf "Unexpected mutable(%a)" print m1); - (if not (eq m2 legacy) then + (if not (Misc_stdlib.Le_result.equal ~le m2 legacy) then Misc.fatal_errorf "Unexpected mutable(%a)" print m2); None in @@ -1376,7 +1370,7 @@ let type_declarations ?(equality = false) ~loc env ~mark name let mark_and_compare_records record_form labels1 rep1 labels2 rep2 = if mark then begin let mark usage lbls = - List.iter (Env.mark_label_used record_form usage) lbls + List.iter (Env.mark_label_used usage) lbls in let usage : Env.label_usage = if decl2.type_private = Public then Env.Exported diff --git a/src/ocaml/typing/jkind.ml b/src/ocaml/typing/jkind.ml index 57e9ee8dc..dd19a2e82 100644 --- a/src/ocaml/typing/jkind.ml +++ b/src/ocaml/typing/jkind.ml @@ -354,6 +354,7 @@ end module Externality = Externality module Nullability = Nullability +module Separability = Jkind_axis.Separability module History = struct include Jkind_intf.History @@ -400,13 +401,13 @@ let raise ~loc err = raise (Error.User_error (loc, err)) (* Returns the set of axes that is relevant under a given modality. For example, under the [global] modality, the locality axis is *not* relevant. *) -let relevant_axes_of_modality ~relevant_for_nullability ~modality = +let relevant_axes_of_modality ~relevant_for_shallow ~modality = Axis_set.create ~f:(fun ~axis:(Pack axis) -> match axis with | Modal axis -> let (P axis) = Mode.Const.Axis.alloc_as_value (P axis) in let modality = Mode.Modality.Value.Const.proj axis modality in - not (Mode.Modality.is_constant modality) + not (Mode.Modality.is_constant (Atom (axis, modality))) (* The kind-inference.md document (in the repo) discusses both constant modalities and identity modalities. Of course, reality has modalities (such as [shared]) that are neither constants nor identities. Here, we @@ -417,7 +418,11 @@ let relevant_axes_of_modality ~relevant_for_nullability ~modality = non-identity modalities. *) | Nonmodal Externality -> true | Nonmodal Nullability -> ( - match relevant_for_nullability with + match relevant_for_shallow with + | `Relevant -> true + | `Irrelevant -> false) + | Nonmodal Separability -> ( + match relevant_for_shallow with | `Relevant -> true | `Irrelevant -> false)) @@ -428,13 +433,17 @@ module Mod_bounds = struct create ~locality:Locality.min ~linearity:Linearity.min ~uniqueness:Uniqueness.min ~portability:Portability.min ~contention:Contention.min ~yielding:Yielding.min + ~statefulness:Statefulness.min ~visibility:Visibility.min ~externality:Externality.min ~nullability:Nullability.min + ~separability:Separability.min let max = create ~locality:Locality.max ~linearity:Linearity.max ~uniqueness:Uniqueness.max ~portability:Portability.max ~contention:Contention.max ~yielding:Yielding.max + ~statefulness:Statefulness.max ~visibility:Visibility.max ~externality:Externality.max ~nullability:Nullability.max + ~separability:Separability.max let join t1 t2 = let locality = Locality.join (locality t1) (locality t2) in @@ -443,10 +452,13 @@ module Mod_bounds = struct let portability = Portability.join (portability t1) (portability t2) in let contention = Contention.join (contention t1) (contention t2) in let yielding = Yielding.join (yielding t1) (yielding t2) in + let statefulness = Statefulness.join (statefulness t1) (statefulness t2) in + let visibility = Visibility.join (visibility t1) (visibility t2) in let externality = Externality.join (externality t1) (externality t2) in let nullability = Nullability.join (nullability t1) (nullability t2) in + let separability = Separability.join (separability t1) (separability t2) in create ~locality ~linearity ~uniqueness ~portability ~contention ~yielding - ~externality ~nullability + ~statefulness ~visibility ~externality ~nullability ~separability let meet t1 t2 = let locality = Locality.meet (locality t1) (locality t2) in @@ -455,10 +467,13 @@ module Mod_bounds = struct let portability = Portability.meet (portability t1) (portability t2) in let contention = Contention.meet (contention t1) (contention t2) in let yielding = Yielding.meet (yielding t1) (yielding t2) in + let statefulness = Statefulness.meet (statefulness t1) (statefulness t2) in + let visibility = Visibility.meet (visibility t1) (visibility t2) in let externality = Externality.meet (externality t1) (externality t2) in let nullability = Nullability.meet (nullability t1) (nullability t2) in + let separability = Separability.meet (separability t1) (separability t2) in create ~locality ~linearity ~uniqueness ~portability ~contention ~yielding - ~externality ~nullability + ~statefulness ~visibility ~externality ~nullability ~separability let less_or_equal t1 t2 = let[@inline] axis_less_or_equal ~le ~axis a b : Sub_result.t = @@ -490,12 +505,25 @@ module Mod_bounds = struct (axis_less_or_equal ~le:Yielding.le ~axis:(Pack (Modal (Comonadic Yielding))) (yielding t1) (yielding t2)) + @@ Sub_result.combine + (axis_less_or_equal ~le:Statefulness.le + ~axis:(Pack (Modal (Comonadic Statefulness))) (statefulness t1) + (statefulness t2)) + @@ Sub_result.combine + (axis_less_or_equal ~le:Visibility.le + ~axis:(Pack (Modal (Monadic Visibility))) (visibility t1) + (visibility t2)) @@ Sub_result.combine (axis_less_or_equal ~le:Externality.le ~axis:(Pack (Nonmodal Externality)) (externality t1) (externality t2)) - @@ axis_less_or_equal ~le:Nullability.le ~axis:(Pack (Nonmodal Nullability)) - (nullability t1) (nullability t2) + @@ Sub_result.combine + (axis_less_or_equal ~le:Nullability.le + ~axis:(Pack (Nonmodal Nullability)) (nullability t1) + (nullability t2)) + @@ axis_less_or_equal ~le:Separability.le + ~axis:(Pack (Nonmodal Separability)) (separability t1) + (separability t2) let equal t1 t2 = Locality.equal (locality t1) (locality t2) @@ -504,8 +532,11 @@ module Mod_bounds = struct && Portability.equal (portability t1) (portability t2) && Contention.equal (contention t1) (contention t2) && Yielding.equal (yielding t1) (yielding t2) + && Statefulness.equal (statefulness t1) (statefulness t2) + && Visibility.equal (visibility t1) (visibility t2) && Externality.equal (externality t1) (externality t2) && Nullability.equal (nullability t1) (nullability t2) + && Separability.equal (separability t1) (separability t2) let[@inline] get (type a) ~(axis : a Axis.t) t : a = match axis with @@ -515,8 +546,11 @@ module Mod_bounds = struct | Modal (Comonadic Linearity) -> linearity t | Modal (Comonadic Portability) -> portability t | Modal (Comonadic Yielding) -> yielding t + | Modal (Comonadic Statefulness) -> statefulness t + | Modal (Monadic Visibility) -> visibility t | Nonmodal Externality -> externality t | Nonmodal Nullability -> nullability t + | Nonmodal Separability -> separability t (** Get all axes that are set to max *) let get_max_axes t = @@ -542,18 +576,29 @@ module Mod_bounds = struct |> add_if (Yielding.le Yielding.max (yielding t)) (Modal (Comonadic Yielding)) + |> add_if + (Statefulness.le Statefulness.max (statefulness t)) + (Modal (Comonadic Statefulness)) + |> add_if + (Visibility.le Visibility.max (visibility t)) + (Modal (Monadic Visibility)) |> add_if (Externality.le Externality.max (externality t)) (Nonmodal Externality) |> add_if (Nullability.le Nullability.max (nullability t)) (Nonmodal Nullability) + |> add_if + (Separability.le Separability.max (separability t)) + (Nonmodal Separability) let for_arrow = create ~linearity:Linearity.max ~locality:Locality.max ~uniqueness:Uniqueness.min ~portability:Portability.max ~contention:Contention.min ~yielding:Yielding.max + ~statefulness:Statefulness.max ~visibility:Visibility.min ~externality:Externality.max ~nullability:Nullability.Non_null + ~separability:Separability.Non_float let to_mode_crossing t = Mode.Crossing.of_bounds @@ -562,9 +607,14 @@ module Mod_bounds = struct { areality = locality t; linearity = linearity t; portability = portability t; - yielding = yielding t + yielding = yielding t; + statefulness = statefulness t }; - monadic = { uniqueness = uniqueness t; contention = contention t } + monadic = + { uniqueness = uniqueness t; + contention = contention t; + visibility = visibility t + } } end @@ -597,7 +647,11 @@ module With_bounds = struct in let irrelevant_axes = Axis_set.complement relevant_axes in (* nullability is always implicitly irrelevant since it isn't deep *) - Axis_set.remove irrelevant_axes (Nonmodal Nullability) + let irrelevant_axes = + Axis_set.remove irrelevant_axes (Nonmodal Nullability) + in + (* same for separability *) + Axis_set.remove irrelevant_axes (Nonmodal Separability) end let to_best_eff_map = function @@ -704,10 +758,10 @@ module With_bounds = struct With_bounds (With_bounds_types.singleton type_expr type_info) | With_bounds bounds -> With_bounds (add_bound type_expr type_info bounds) - let add_modality ~relevant_for_nullability ~modality ~type_expr + let add_modality ~relevant_for_shallow ~modality ~type_expr (t : (allowed * 'r) t) : (allowed * 'r) t = let relevant_axes = - relevant_axes_of_modality ~relevant_for_nullability ~modality + relevant_axes_of_modality ~relevant_for_shallow ~modality in match t with | No_with_bounds -> @@ -892,6 +946,7 @@ module Layout_and_axes = struct type t = { tuple_fuel : int; constr : (int * type_expr list) Path.Map.t; + seen_row_var : Numbers.Int.Set.t; fuel_status : Fuel_status.t } @@ -905,10 +960,12 @@ module Layout_and_axes = struct let starting = { tuple_fuel = initial_fuel_per_ty; constr = Path.Map.empty; + seen_row_var = Numbers.Int.Set.empty; fuel_status = Sufficient_fuel } - let rec check ({ tuple_fuel; constr; fuel_status = _ } as t) ty = + let rec check + ({ tuple_fuel; constr; seen_row_var; fuel_status = _ } as t) ty = match Types.get_desc ty with | Tpoly (ty, _) -> check t ty | Ttuple _ -> @@ -934,8 +991,20 @@ module Layout_and_axes = struct Continue { t with constr = Path.Map.add p (fuel - 1, args) constr } else Stop { t with fuel_status = Ran_out_of_fuel }) + | Tvariant _ -> ( + let row_var_id = get_id (Btype.proxy ty) in + match Numbers.Int.Set.mem row_var_id seen_row_var with + | false -> + Continue + { t with + seen_row_var = Numbers.Int.Set.add row_var_id seen_row_var + } + | true -> + (* For our purposes, row variables are like constructors with no arguments, + so if we saw one already, we don't need to expand it again. *) + Skip) | Tvar _ | Tarrow _ | Tunboxed_tuple _ | Tobject _ | Tfield _ | Tnil - | Tvariant _ | Tunivar _ | Tpackage _ -> + | Tunivar _ | Tpackage _ | Tof_kind _ -> (* these cases either cannot be infinitely recursive or their jkinds do not have with_bounds *) (* CR layouts v2.8: Some of these might get with-bounds someday. We @@ -992,8 +1061,12 @@ module Layout_and_axes = struct (value_for_axis ~axis:(Modal (Comonadic Portability))) ~contention:(value_for_axis ~axis:(Modal (Monadic Contention))) ~yielding:(value_for_axis ~axis:(Modal (Comonadic Yielding))) + ~statefulness: + (value_for_axis ~axis:(Modal (Comonadic Statefulness))) + ~visibility:(value_for_axis ~axis:(Modal (Monadic Visibility))) ~externality:(value_for_axis ~axis:(Nonmodal Externality)) ~nullability:(value_for_axis ~axis:(Nonmodal Nullability)) + ~separability:(value_for_axis ~axis:(Nonmodal Separability)) in let found_jkind_for_ty new_ctl b_upper_bounds b_with_bounds quality : Mod_bounds.t * (l * r2) with_bounds * Fuel_status.t = @@ -1015,6 +1088,15 @@ module Layout_and_axes = struct loop new_ctl bounds_so_far next_relevant_axes (With_bounds.to_list b_with_bounds) in + let nested_with_bounds = + With_bounds.map + (fun ti -> + { relevant_axes = + Axis_set.intersection ti.relevant_axes + next_relevant_axes + }) + nested_with_bounds + in (* CR layouts v2.8: we use [new_ctl] here, not [ctl], to avoid big quadratic stack growth for very widely recursive types. This is sad, since it prevents us from mode crossing a record with 20 @@ -1142,6 +1224,7 @@ let fresh_jkind jkind ~annotation ~why = annotation; history = Creation why; has_warned = false; + ran_out_of_fuel_during_normalize = false; quality = Not_best } |> allow_left |> allow_right @@ -1152,6 +1235,7 @@ let fresh_jkind_poly jkind ~annotation ~why = annotation; history = Creation why; has_warned = false; + ran_out_of_fuel_during_normalize = false; quality = Not_best } @@ -1181,7 +1265,7 @@ let outcometree_of_type = ref (fun _ -> assert false) let set_outcometree_of_type p = outcometree_of_type := p -let outcometree_of_modalities_new = ref (fun _ _ _ -> assert false) +let outcometree_of_modalities_new = ref (fun _ _ -> assert false) let set_outcometree_of_modalities_new p = outcometree_of_modalities_new := p @@ -1222,33 +1306,67 @@ module Const = struct name : string } - let mk_jkind ~mode_crossing ~nullability (layout : Layout.Const.t) = + let mk_jkind ~mode_crossing ~nullability ~separability + (layout : Layout.Const.t) = let mod_bounds = (match mode_crossing with | true -> Mod_bounds.min | false -> Mod_bounds.max) |> Mod_bounds.set_nullability nullability + |> Mod_bounds.set_separability separability in { layout; mod_bounds; with_bounds = No_with_bounds } let any = - { jkind = mk_jkind Any ~mode_crossing:false ~nullability:Maybe_null; + { jkind = + mk_jkind Any ~mode_crossing:false ~nullability:Maybe_null + ~separability:Maybe_separable; name = "any" } + let any_mod_everything = + { jkind = + mk_jkind Any ~mode_crossing:true ~nullability:Maybe_null + ~separability:Maybe_separable; + name = "any mod everything" + } + + (* CR layouts v3: replace with [any_separable] when + [or_null array]s are implemented. *) let any_non_null = - { jkind = mk_jkind Any ~mode_crossing:false ~nullability:Non_null; + { jkind = + mk_jkind Any ~mode_crossing:false ~nullability:Non_null + ~separability:Separable; name = "any_non_null" } + (* CR layouts v3: replace with [any_separable] when + [or_null array]s are implemented. *) + let any_non_null_mod_everything = + { jkind = + mk_jkind Any ~mode_crossing:true ~nullability:Non_null + ~separability:Separable; + name = "any_non_null mod everything" + } + let value_or_null = { jkind = - mk_jkind (Base Value) ~mode_crossing:false ~nullability:Maybe_null; + mk_jkind (Base Value) ~mode_crossing:false ~nullability:Maybe_null + ~separability:Maybe_separable; name = "value_or_null" } + let value_or_null_mod_everything = + { jkind = + mk_jkind (Base Value) ~mode_crossing:true ~nullability:Maybe_null + ~separability:Maybe_separable; + name = "value_or_null mod everything" + } + let value = - { jkind = mk_jkind (Base Value) ~mode_crossing:false ~nullability:Non_null; + { jkind = + mk_jkind (Base Value) ~mode_crossing:false ~nullability:Non_null + ~separability:Separable; name = "value" } @@ -1260,13 +1378,34 @@ module Const = struct ~linearity:Linearity.Const.min ~portability:Portability.Const.min ~yielding:Yielding.Const.min ~uniqueness:Uniqueness.Const_op.max - ~contention:Contention.Const_op.min ~externality:Externality.max - ~nullability:Nullability.Non_null; + ~contention:Contention.Const_op.min + ~statefulness:Statefulness.Const.min + ~visibility:Visibility.Const_op.min ~externality:Externality.max + ~nullability:Nullability.Non_null + ~separability:Separability.Non_float; with_bounds = No_with_bounds }; name = "immutable_data" } + let sync_data = + { jkind = + { layout = Base Value; + mod_bounds = + Mod_bounds.create ~locality:Locality.Const.max + ~linearity:Linearity.Const.min + ~portability:Portability.Const.min ~yielding:Yielding.Const.min + ~uniqueness:Uniqueness.Const_op.max + ~contention:Contention.Const_op.min + ~statefulness:Statefulness.Const.min + ~visibility:Visibility.Const_op.max ~externality:Externality.max + ~nullability:Nullability.Non_null + ~separability:Separability.Non_float; + with_bounds = No_with_bounds + }; + name = "sync_data" + } + let mutable_data = { jkind = { layout = Base Value; @@ -1275,27 +1414,38 @@ module Const = struct ~linearity:Linearity.Const.min ~portability:Portability.Const.min ~yielding:Yielding.Const.min ~contention:Contention.Const_op.max - ~uniqueness:Uniqueness.Const_op.max ~externality:Externality.max - ~nullability:Nullability.Non_null; + ~uniqueness:Uniqueness.Const_op.max + ~statefulness:Statefulness.Const.min + ~visibility:Visibility.Const_op.max ~externality:Externality.max + ~nullability:Nullability.Non_null + ~separability:Separability.Non_float; with_bounds = No_with_bounds }; name = "mutable_data" } - (* CR layouts v3: change to [or_null] when separability is implemented. *) + (* CR layouts v3: replace with [any_separable] when + [or_null array]s are implemented. *) let void = - { jkind = mk_jkind (Base Void) ~mode_crossing:false ~nullability:Non_null; + { jkind = + mk_jkind (Base Void) ~mode_crossing:false ~nullability:Non_null + ~separability:Non_float; name = "void" } let immediate = - { jkind = mk_jkind (Base Value) ~mode_crossing:true ~nullability:Non_null; + { jkind = + mk_jkind (Base Value) ~mode_crossing:true ~nullability:Non_null + ~separability:Non_float; name = "immediate" } + (* CR layouts v3: replace with [any_separable] when + [or_null array]s are implemented. *) let immediate_or_null = { jkind = - mk_jkind (Base Value) ~mode_crossing:true ~nullability:Maybe_null; + mk_jkind (Base Value) ~mode_crossing:true ~nullability:Maybe_null + ~separability:Maybe_separable; name = "immediate_or_null" } @@ -1339,61 +1489,149 @@ module Const = struct name = "immediate64" } - (* CR layouts v3: change to [Maybe_null] when separability is implemented. *) + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) let float64 = { jkind = - mk_jkind (Base Float64) ~mode_crossing:true ~nullability:Non_null; + mk_jkind (Base Float64) ~mode_crossing:false ~nullability:Non_null + ~separability:Non_float; + (* [separability] is intentionally [Non_float]: + only boxed floats are relevant for separability. *) name = "float64" } - (* CR layouts v3: change to [Maybe_null] when separability is implemented. *) + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) + let kind_of_unboxed_float = + { jkind = + mk_jkind (Base Float64) ~mode_crossing:true ~nullability:Non_null + ~separability:Non_float; + (* [separability] is intentionally [Non_float]: + only boxed floats are relevant for separability. *) + name = "float64 mod everything" + } + + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) let float32 = { jkind = - mk_jkind (Base Float32) ~mode_crossing:true ~nullability:Non_null; + mk_jkind (Base Float32) ~mode_crossing:false ~nullability:Non_null + ~separability:Non_float; + (* [separability] is intentionally [Non_float]: + only boxed floats are relevant for separability. *) name = "float32" } - (* CR layouts v3: change to [Maybe_null] when separability is implemented. *) + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) + let kind_of_unboxed_float32 = + { jkind = + mk_jkind (Base Float32) ~mode_crossing:true ~nullability:Non_null + ~separability:Non_float; + (* [separability] is intentionally [Non_float]: + only boxed floats are relevant for separability. *) + name = "float32 mod everything" + } + + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) let word = - { jkind = mk_jkind (Base Word) ~mode_crossing:true ~nullability:Non_null; + { jkind = + mk_jkind (Base Word) ~mode_crossing:false ~nullability:Non_null + ~separability:Non_float; name = "word" } - (* CR layouts v3: change to [Maybe_null] when separability is implemented. *) + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) + let kind_of_unboxed_nativeint = + { jkind = + mk_jkind (Base Word) ~mode_crossing:true ~nullability:Non_null + ~separability:Non_float; + name = "word mod everything" + } + + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) let bits32 = - { jkind = mk_jkind (Base Bits32) ~mode_crossing:true ~nullability:Non_null; + { jkind = + mk_jkind (Base Bits32) ~mode_crossing:false ~nullability:Non_null + ~separability:Non_float; name = "bits32" } - (* CR layouts v3: change to [Maybe_null] when separability is implemented. *) + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) + let kind_of_unboxed_int32 = + { jkind = + mk_jkind (Base Bits32) ~mode_crossing:true ~nullability:Non_null + ~separability:Non_float; + name = "bits32 mod everything" + } + + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) let bits64 = - { jkind = mk_jkind (Base Bits64) ~mode_crossing:true ~nullability:Non_null; + { jkind = + mk_jkind (Base Bits64) ~mode_crossing:false ~nullability:Non_null + ~separability:Non_float; name = "bits64" } - (* CR layouts v3: change to [Maybe_null] when separability is implemented. *) + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) + let kind_of_unboxed_int64 = + { jkind = + mk_jkind (Base Bits64) ~mode_crossing:true ~nullability:Non_null + ~separability:Non_float; + name = "bits64 mod everything" + } + + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) let vec128 = - { jkind = mk_jkind (Base Vec128) ~mode_crossing:true ~nullability:Non_null; + { jkind = + mk_jkind (Base Vec128) ~mode_crossing:false ~nullability:Non_null + ~separability:Non_float; name = "vec128" } + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) + let kind_of_unboxed_128bit_vectors = + { jkind = + mk_jkind (Base Vec128) ~mode_crossing:true ~nullability:Non_null + ~separability:Non_float; + name = "vec128 mod everything" + } + let all = [ any; + any_mod_everything; any_non_null; + any_non_null_mod_everything; value_or_null; + value_or_null_mod_everything; value; immutable_data; + sync_data; mutable_data; void; immediate; immediate_or_null; immediate64; float64; + kind_of_unboxed_float; float32; + kind_of_unboxed_float32; word; + kind_of_unboxed_nativeint; bits32; + kind_of_unboxed_int32; bits64; - vec128 ] + kind_of_unboxed_int64; + vec128; + kind_of_unboxed_128bit_vectors ] let of_attribute : Builtin_attributes.jkind_attribute -> t = function | Immediate -> immediate @@ -1446,6 +1684,39 @@ module Const = struct | acc, `Valid None -> acc | Some acc, `Valid (Some mode) -> Some (mode :: acc)) (Some []) + |> function + | None -> None + | Some modes -> + (* Handle all the mode implications *) + let modes = + match List.mem "global" modes, List.mem "unyielding" modes with + | true, true -> + (* [global] implies [unyielding], omit it. *) + List.filter (fun m -> m <> "unyielding") modes + | true, false -> + (* Otherwise, print [mod global yielding] to indicate [yielding]. *) + modes @ ["yielding"] + | _, _ -> modes + in + let modes = + (* Likewise for [stateless] and [portable]. *) + match List.mem "stateless" modes, List.mem "portable" modes with + | true, true -> List.filter (fun m -> m <> "portable") modes + | true, false -> modes @ ["portable"] + | _, _ -> modes + in + (* Likewise for [immutable] and [contended], or [read] and [shared]. *) + let modes = + match List.mem "immutable" modes, List.mem "contended" modes with + | true, true -> List.filter (fun m -> m <> "contended") modes + | true, false -> modes @ ["contended"] + | _, _ -> ( + match List.mem "read" modes, List.mem "shared" modes with + | true, true -> List.filter (fun m -> m <> "shared") modes + | true, false -> modes @ ["shared"] + | _, _ -> modes) + in + Some modes let modality_to_ignore_axes axes_to_ignore = (* The modality is constant along axes to ignore and id along others *) @@ -1453,7 +1724,7 @@ module Const = struct (fun acc (Axis.Pack axis) -> match axis with | Modal axis -> - let then_ : Modality.t = + let t : Modality.t = let (P axis) = Mode.Const.Axis.alloc_as_value (P axis) in match axis with | Monadic monadic -> @@ -1464,7 +1735,8 @@ module Const = struct ( axis, Meet_with (Mode.Value.Comonadic.Const.min_axis comonadic) ) in - Modality.Value.Const.compose acc ~then_ + let (Atom (axis, a)) = t in + Modality.Value.Const.set axis a acc | Nonmodal _ -> (* TODO: don't know how to print *) acc) @@ -1488,7 +1760,7 @@ module Const = struct in ( !outcometree_of_type type_expr, !outcometree_of_modalities_new - Types.Immutable [] + Types.Immutable (modality_to_ignore_axes axes_ignored_by_modalities) )) (With_bounds.to_list actual.with_bounds) in @@ -1533,8 +1805,9 @@ module Const = struct { jkind = { layout = jkind.layout; mod_bounds = - Mod_bounds.set_nullability Nullability.Non_null - Mod_bounds.max; + Mod_bounds.set_separability Separability.Separable + (Mod_bounds.set_nullability Nullability.Non_null + Mod_bounds.max); with_bounds = No_with_bounds }; name = Layout.Const.to_string jkind.layout @@ -1544,7 +1817,7 @@ module Const = struct match out_jkind_verbose with | Some out_jkind -> out_jkind | None -> - (* If we fail, try again with nullable jkinds. *) + (* If we fail, try again with nullable/maybe-separable jkinds. *) let out_jkind_verbose = convert_with_base ~base: @@ -1624,34 +1897,15 @@ module Const = struct | "bits64" -> Builtin.bits64.jkind | "vec128" -> Builtin.vec128.jkind | "immutable_data" -> Builtin.immutable_data.jkind + | "sync_data" -> Builtin.sync_data.jkind | "mutable_data" -> Builtin.mutable_data.jkind | _ -> raise ~loc:jkind.pjkind_loc (Unknown_jkind jkind)) |> allow_left |> allow_right | Mod (base, modifiers) -> let base = of_user_written_annotation_unchecked_level context base in (* for each mode, lower the corresponding modal bound to be that mode *) - let parsed_modifiers = Typemode.transl_modifier_annots modifiers in let mod_bounds = - let value_for_axis (type a) ~(axis : a Axis.t) : a = - let (module A) = Axis.get axis in - let parsed_modifier = - Typemode.Transled_modifiers.get ~axis parsed_modifiers - in - let base_bound = Mod_bounds.get ~axis base.mod_bounds in - match parsed_modifier, base_bound with - | None, base_modifier -> base_modifier - | Some parsed_modifier, base_modifier -> - A.meet base_modifier parsed_modifier.txt - in - Mod_bounds.create - ~locality:(value_for_axis ~axis:(Modal (Comonadic Areality))) - ~linearity:(value_for_axis ~axis:(Modal (Comonadic Linearity))) - ~uniqueness:(value_for_axis ~axis:(Modal (Monadic Uniqueness))) - ~portability:(value_for_axis ~axis:(Modal (Comonadic Portability))) - ~contention:(value_for_axis ~axis:(Modal (Monadic Contention))) - ~yielding:(value_for_axis ~axis:(Modal (Comonadic Yielding))) - ~externality:(value_for_axis ~axis:(Nonmodal Externality)) - ~nullability:(value_for_axis ~axis:(Nonmodal Nullability)) + Mod_bounds.meet base.mod_bounds (Typemode.transl_mod_bounds modifiers) in { layout = base.layout; mod_bounds; with_bounds = No_with_bounds } | Product ts -> @@ -1666,14 +1920,13 @@ module Const = struct | Left_jkind (transl_type, _) -> let type_ = transl_type type_ in let modality = - Typemode.transl_modalities ~maturity:Stable Immutable [] modalities + Typemode.transl_modalities ~maturity:Stable Immutable modalities in { layout = base.layout; mod_bounds = base.mod_bounds; with_bounds = - With_bounds.add_modality ~modality - ~relevant_for_nullability:`Irrelevant ~type_expr:type_ - base.with_bounds + With_bounds.add_modality ~modality ~relevant_for_shallow:`Irrelevant + ~type_expr:type_ base.with_bounds }) | Default | Kind_of _ -> raise ~loc:jkind.pjkind_loc Unimplemented_syntax @@ -1739,15 +1992,10 @@ end module Jkind_desc = struct let of_const t = Layout_and_axes.map Layout.of_const t - let add_nullability_crossing t = - { t with - mod_bounds = Mod_bounds.set_nullability Nullability.min t.mod_bounds - } - let unsafely_set_bounds t ~from = { t with mod_bounds = from.mod_bounds; with_bounds = from.with_bounds } - let add_with_bounds ~relevant_for_nullability ~type_expr ~modality t = + let add_with_bounds ~relevant_for_shallow ~type_expr ~modality t = match Types.get_desc type_expr with | Tarrow (_, _, _, _) -> (* Optimization: all arrow types have the same (with-bound-free) jkind, so @@ -1758,13 +2006,13 @@ module Jkind_desc = struct Mod_bounds.join t.mod_bounds (Mod_bounds.set_min_in_set Mod_bounds.for_arrow (Axis_set.complement - (relevant_axes_of_modality ~modality ~relevant_for_nullability))) + (relevant_axes_of_modality ~modality ~relevant_for_shallow))) } | _ -> { t with with_bounds = - With_bounds.add_modality ~relevant_for_nullability ~type_expr - ~modality t.with_bounds + With_bounds.add_modality ~relevant_for_shallow ~type_expr ~modality + t.with_bounds } let max = of_const Const.max @@ -1805,11 +2053,13 @@ module Jkind_desc = struct let map_type_expr f t = Layout_and_axes.map_type_expr f t - let of_new_sort_var nullability_upper_bound = + let of_new_sort_var nullability_upper_bound separability_upper_bound = let layout, sort = Layout.of_new_sort_var () in ( { layout; mod_bounds = - Mod_bounds.set_nullability nullability_upper_bound Mod_bounds.max; + Mod_bounds.max + |> Mod_bounds.set_nullability nullability_upper_bound + |> Mod_bounds.set_separability separability_upper_bound; with_bounds = No_with_bounds }, sort ) @@ -1817,12 +2067,16 @@ module Jkind_desc = struct module Builtin = struct let any = max + let any_non_null = of_const Const.Builtin.any_non_null.jkind + let value_or_null = of_const Const.Builtin.value_or_null.jkind let value = of_const Const.Builtin.value.jkind let immutable_data = of_const Const.Builtin.immutable_data.jkind + let sync_data = of_const Const.Builtin.sync_data.jkind + let mutable_data = of_const Const.Builtin.mutable_data.jkind let void = of_const Const.Builtin.void.jkind @@ -1834,12 +2088,17 @@ module Jkind_desc = struct let product tys_modalities layouts = let layout = Layout.product layouts in + let relevant_for_shallow = + (* Shallow axes like nullability or separability are relevant for + 1-field unboxed records and irrelevant for everything else. *) + match List.length layouts with 1 -> `Relevant | _ -> `Irrelevant + in let mod_bounds = Mod_bounds.min in let with_bounds = List.fold_right (fun (type_expr, modality) bounds -> - With_bounds.add_modality ~relevant_for_nullability:`Relevant - ~type_expr ~modality bounds) + With_bounds.add_modality ~relevant_for_shallow ~type_expr ~modality + bounds) tys_modalities No_with_bounds in { layout; mod_bounds; with_bounds } @@ -1875,6 +2134,7 @@ module Builtin = struct (* this should never get printed: it's a dummy *) history = Creation (Any_creation Dummy_jkind); has_warned = false; + ran_out_of_fuel_during_normalize = false; quality = Not_best } @@ -1888,11 +2148,16 @@ module Builtin = struct fresh_jkind Jkind_desc.Builtin.any ~annotation:(mk_annot "any") ~why:(Any_creation why) + let any_non_null ~why = + fresh_jkind Jkind_desc.Builtin.any_non_null + ~annotation:(mk_annot "any_non_null") ~why:(Any_creation why) + let value_v1_safety_check = { jkind = Jkind_desc.Builtin.value_or_null; annotation = mk_annot "value"; history = Creation (Value_or_null_creation V1_safety_check); has_warned = false; + ran_out_of_fuel_during_normalize = false; quality = Not_best } @@ -1917,6 +2182,10 @@ module Builtin = struct ~annotation:(mk_annot "immutable_data") ~why:(Value_creation why) + let sync_data ~(why : History.value_creation_reason) = + fresh_jkind Jkind_desc.Builtin.sync_data ~annotation:(mk_annot "sync_data") + ~why:(Value_creation why) + let mutable_data ~(why : History.value_creation_reason) = fresh_jkind Jkind_desc.Builtin.mutable_data ~annotation:(mk_annot "mutable_data") ~why:(Value_creation why) @@ -1954,9 +2223,6 @@ module Builtin = struct want [Best] jkinds there. *) end -let add_nullability_crossing t = - { t with jkind = Jkind_desc.add_nullability_crossing t.jkind } - let unsafely_set_bounds (type l r) ~(from : (l * r) jkind) t = { t with jkind = Jkind_desc.unsafely_set_bounds t.jkind ~from:from.jkind } @@ -1966,7 +2232,7 @@ let add_with_bounds ~modality ~type_expr t = Jkind_desc.add_with_bounds (* We only care about types in fields of unboxed products for the nullability of the overall kind *) - ~relevant_for_nullability:`Irrelevant ~type_expr ~modality t.jkind + ~relevant_for_shallow:`Irrelevant ~type_expr ~modality t.jkind } let has_with_bounds (type r) (t : (_ * r) jkind) = @@ -1978,13 +2244,13 @@ let has_with_bounds (type r) (t : (_ * r) jkind) = (* construction *) let of_new_sort_var ~why = - let jkind, sort = Jkind_desc.of_new_sort_var Maybe_null in + let jkind, sort = Jkind_desc.of_new_sort_var Maybe_null Maybe_separable in fresh_jkind jkind ~annotation:None ~why:(Concrete_creation why), sort let of_new_sort ~why = fst (of_new_sort_var ~why) let of_new_legacy_sort_var ~why = - let jkind, sort = Jkind_desc.of_new_sort_var Non_null in + let jkind, sort = Jkind_desc.of_new_sort_var Non_null Separable in fresh_jkind jkind ~annotation:None ~why:(Concrete_legacy_creation why), sort let of_new_legacy_sort ~why = fst (of_new_legacy_sort_var ~why) @@ -1995,6 +2261,7 @@ let of_const (type l r) ~annotation ~why ~(quality : (l * r) jkind_quality) annotation; history = Creation why; has_warned = false; + ran_out_of_fuel_during_normalize = false; quality } @@ -2098,10 +2365,138 @@ let for_unboxed_record lbls = in Builtin.product ~why:Unboxed_record tys_modalities layouts -let for_boxed_variant cstrs = +let for_non_float ~(why : History.value_creation_reason) = + let mod_bounds = + Mod_bounds.create ~locality:Locality.Const.max + ~linearity:Linearity.Const.max ~portability:Portability.Const.max + ~yielding:Yielding.Const.max ~uniqueness:Uniqueness.Const_op.max + ~contention:Contention.Const_op.max ~statefulness:Statefulness.Const.max + ~visibility:Visibility.Const_op.max ~externality:Externality.max + ~nullability:Nullability.Non_null ~separability:Separability.Non_float + in + fresh_jkind + { layout = Sort (Base Value); mod_bounds; with_bounds = No_with_bounds } + ~annotation:None ~why:(Value_creation why) + +(* Note [With-bounds for GADTs] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Inferring the with-bounds for a variant requires gathering bounds from each + constructor. We thus loop over each constructor: + + A. If a constructor is not a GADT constructor, just add its fields and their + modalities as with-bounds. + + B. If a constructor uses GADT syntax: + + GADT constructors introduce their own local scope. That is, when we see + + {[ + type 'a t = K : 'b option -> 'b t + ]} + + the ['b] in the constructor is distinct from the ['a] in the type header. + This would be true even if we wrote ['a] in the constructor: the variables + introduced in the type head never scope over GADT constructors. + + So in order to get properly-scoped with-bounds, we must substitute. But + what, exactly, do we substitute? The domain is the bare variables that appear + as arguments in the return type. The range is the corresponding variables in + the type head (even if those are written as [_]s; which are turned into + proper type variables by now). + + We use [Ctype.apply] (passed in as [type_apply]) to perform the substitution. + + We thus have + + * STEP B1. Gather such variables from the result type, matching them with + their corresponding variables in the type head. We'll call these B1 + variables. + + We do not actually substitute quite yet. + + There may still be other free type variables in the constructor type. Here + are some examples: + + {[ + type 'a t = + | K1 : 'o -> int t + | K2 : 'o -> 'o option t + | K3 : 'o -> 'b t + ]} + + In each constructor, the type variable ['o] is not a B1 variable. (The ['b] + in [K3] /is/ a B1 variable.) We call these variables /orphaned/. All + existential variables are orphans (as we see in [K1] and [K3]), but even + non-existential variables can be orphan (as we see in [K2]; note that ['o] + appears in the result). + + We wish to replace each orphaned type variable with a [Tof_kind], holding + just its kind. Since [Tof_kind] has a *best* kind, they'll just get + normalized away during normalization, except in the case that they show up as + an argument to a type constructor representing an abstract type - in which + case, they still end up in the (fully normalized) with-bounds. For example, + the following type: + + {[ + type t : A : ('a : value mod portable). 'a abstract -> t + ]} + + has kind: + + {[ + immutable_data with (type : value mod portable) abstract + ]} + + This use of the [(type : <>)] construct is the reason we have + [Tof_kind] in the first place. + + We thus have + + * STEP B2. Gather the orphaned variables + * STEP B3. Build the [Tof_kind] types to use in the substitution + * STEP B4. Perform the substitution + + There are wrinkles: + + BW1. For repeated types on arguments, e.g. in the following type: + + {[ + type ('x, 'y) t = A : 'a -> ('a, 'a) t + ]} + + we substitute only the *first* time we see an argument. That means that in + the above type, we'll map all instances of ['a] to ['x] and infer a kind of + [immutable_data with 'x]. This is sound, but somewhat restrictive; in a + perfect world, we'd infer a kind of [immutable_data with ('x OR 'y)], but + that goes beyond what with-bounds can describe (which, if we implemented it, + would introduce a disjunction in type inference, requiring backtracking). At + some point in the future, we should at least change the subsumption algorithm + to accept either [immutable_data with 'x] or [immutable_data with 'y] + (* CR layouts v2.8: do that *) + + BW2. All of the above applies for row variables. Here is an example: + + {[ + type t = K : [> `A] -> t + ]} + + The row variable in the [ [> `A] ] is existential, and thus gets transformed + into a [(type : value)] when computing the kind of [t]. + + This fact has a few consequences: + + * [Tof_kind] can appear as a [row_more]. + * When [Tof_kind] is a [row_more], that row is considered fixed; it thus + needs a [fixed_explanation]. The [fixed_explanation] is [Existential], used + only for this purpose. +*) +let for_boxed_variant ~decl_params ~type_apply ~free_vars cstrs = let open Types in if List.for_all - (fun cstr -> + (* CR layouts v12: This code assumes that all voids mode-cross. I + think that's probably not what we want. *) + (fun cstr -> match cstr.cd_args with | Cstr_tuple args -> List.for_all (fun arg -> Sort.Const.(equal void arg.ca_sort)) args @@ -2117,32 +2512,96 @@ let for_boxed_variant cstrs = | Cstr_record lbls -> has_mutable_label lbls) cstrs in - let has_gadt_constructor = - List.exists - (fun cstr -> match cstr.cd_res with None -> false | Some _ -> true) - cstrs + let base = + (if is_mutable then Builtin.mutable_data else Builtin.immutable_data) + ~why:Boxed_variant + |> mark_best in - if has_gadt_constructor - (* CR layouts v2.8: This is sad, but I don't know how to account for - existentials in the with_bounds. See doc named "Existential - with_bounds". *) - then Builtin.value ~why:Boxed_variant - else - let base = - (if is_mutable then Builtin.mutable_data else Builtin.immutable_data) - ~why:Boxed_variant - |> mark_best - in - let add_cstr_args cstr jkind = + let add_with_bounds_for_cstr jkind_so_far cstr = + let cstr_arg_tys, cstr_arg_modalities = match cstr.cd_args with | Cstr_tuple args -> - List.fold_right - (fun arg -> - add_with_bounds ~modality:arg.ca_modalities ~type_expr:arg.ca_type) - args jkind - | Cstr_record lbls -> add_labels_as_with_bounds lbls jkind + List.fold_left + (fun (tys, ms) arg -> arg.ca_type :: tys, arg.ca_modalities :: ms) + ([], []) args + | Cstr_record lbls -> + List.fold_left + (fun (tys, ms) lbl -> lbl.ld_type :: tys, lbl.ld_modalities :: ms) + ([], []) lbls in - List.fold_right add_cstr_args cstrs base + let cstr_arg_tys = + match cstr.cd_res with + | None -> cstr_arg_tys + | Some res -> + (* See Note [With-bounds for GADTs] for an overview *) + let apply_subst domain range tys = + if Misc.Stdlib.List.is_empty domain + then tys + else List.map (fun ty -> type_apply domain ty range) tys + in + (* STEP B1 from Note [With-bounds for GADTs]: *) + let res_args = + match Types.get_desc res with + | Tconstr (_, args, _) -> args + | _ -> Misc.fatal_error "cd_res must be Tconstr" + in + let domain, range, seen = + List.fold_left2 + (fun ((domain, range, seen) as acc) arg param -> + if Btype.TypeSet.mem arg seen + then + (* We've already seen this type parameter, so don't add it + again. See wrinkle BW1 from Note [With-bounds for GADTs] + *) + acc + else + match Types.get_desc arg with + | Tvar _ -> + (* Only add types which are direct variables. Note that + types which aren't variables might themselves /contain/ + variables; if those variables don't show up on another + parameter, they're treated as orphaned. See example K2 + from Note [With-bounds for GADTs] *) + arg :: domain, param :: range, Btype.TypeSet.add arg seen + | _ -> acc) + ([], [], Btype.TypeSet.empty) + res_args decl_params + in + (* STEP B2 from Note [With-bounds for GADTs]: *) + let free_var_set = free_vars cstr_arg_tys in + let orphaned_type_var_set = Btype.TypeSet.diff free_var_set seen in + let orphaned_type_var_list = + Btype.TypeSet.elements orphaned_type_var_set + in + (* STEP B3 from Note [With-bounds for GADTs]: *) + let mk_type_of_kind ty = + match Types.get_desc ty with + (* use [newgenty] not [newty] here because we've already + generalized the decl and want to keep things at + generic_level *) + | Tvar { jkind; name = _ } -> Btype.newgenty (Tof_kind jkind) + | _ -> + Misc.fatal_error + "post-condition of [free_variable_set_of_list] violated" + in + let type_of_kind_list = + List.map mk_type_of_kind orphaned_type_var_list + in + (* STEP B4 from Note [With-bounds for GADTs]: *) + let cstr_arg_tys = + apply_subst + (orphaned_type_var_list @ domain) + (type_of_kind_list @ range) + cstr_arg_tys + in + cstr_arg_tys + in + List.fold_left2 + (fun jkind type_expr modality -> + add_with_bounds ~modality ~type_expr jkind) + jkind_so_far cstr_arg_tys cstr_arg_modalities + in + List.fold_left add_with_bounds_for_cstr base cstrs let for_boxed_tuple elts = List.fold_right @@ -2151,6 +2610,36 @@ let for_boxed_tuple elts = elts (Builtin.immutable_data ~why:Tuple |> mark_best) +let for_open_boxed_row = + let mod_bounds = + Mod_bounds.create ~locality:Locality.Const.max + ~linearity:Linearity.Const.max ~portability:Portability.Const.max + ~yielding:Yielding.Const.max ~uniqueness:Uniqueness.Const_op.max + ~contention:Contention.Const_op.max ~statefulness:Statefulness.Const.max + ~visibility:Visibility.Const_op.max ~externality:Externality.max + ~nullability:Nullability.Non_null ~separability:Separability.Non_float + in + fresh_jkind + { layout = Sort (Base Value); mod_bounds; with_bounds = No_with_bounds } + ~annotation:None ~why:(Value_creation Polymorphic_variant) + +let for_boxed_row row = + if Btype.tvariant_not_immediate row + then + if not (Btype.static_row row) + then + (* CR layouts v2.8: We can probably do a fair bit better here in most cases *) + for_open_boxed_row + else + let base = Builtin.immutable_data ~why:Polymorphic_variant in + Btype.fold_row + (fun jkind type_expr -> + add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr + jkind) + base row + |> mark_best + else Builtin.immediate ~why:Immediate_polymorphic_variant + let for_arrow = fresh_jkind { layout = Sort (Base Value); @@ -2164,23 +2653,38 @@ let for_object = (* The crossing of objects are based on the fact that they are produced/defined/allocated at legacy, which applies to only the comonadic axes. *) - let ({ linearity; areality = locality; portability; yielding } + let ({ linearity; areality = locality; portability; yielding; statefulness } : Mode.Alloc.Comonadic.Const.t) = Alloc.Comonadic.Const.legacy in - let ({ contention; uniqueness } : Mode.Alloc.Monadic.Const_op.t) = + let ({ contention; uniqueness; visibility } : Mode.Alloc.Monadic.Const_op.t) = Alloc.Monadic.Const_op.max in fresh_jkind { layout = Sort (Base Value); mod_bounds = Mod_bounds.create ~linearity ~locality ~uniqueness ~portability - ~contention ~yielding ~externality:Externality.max - ~nullability:Non_null; + ~contention ~yielding ~statefulness ~visibility + ~externality:Externality.max ~nullability:Non_null + ~separability:Separability.Non_float; with_bounds = No_with_bounds } ~annotation:None ~why:(Value_creation Object) +let for_float ident = + let mod_bounds = + Mod_bounds.create ~locality:Locality.Const.max + ~linearity:Linearity.Const.min ~portability:Portability.Const.min + ~yielding:Yielding.Const.min ~uniqueness:Uniqueness.Const_op.max + ~contention:Contention.Const_op.min ~statefulness:Statefulness.Const.min + ~visibility:Visibility.Const_op.min ~externality:Externality.max + ~nullability:Nullability.Non_null ~separability:Separability.Separable + in + fresh_jkind + { layout = Sort (Base Value); mod_bounds; with_bounds = No_with_bounds } + ~annotation:None ~why:(Primitive ident) + |> mark_best + (******************************) (* elimination and defaulting *) @@ -2201,7 +2705,11 @@ let[@inline] normalize ~mode ~jkind_of_type t = quality = (match t.quality, fuel_result with | Not_best, _ | _, Ran_out_of_fuel -> Not_best - | Best, Sufficient_fuel -> Best) + | Best, Sufficient_fuel -> Best); + ran_out_of_fuel_during_normalize = + (match fuel_result with + | Ran_out_of_fuel -> true + | _ -> t.ran_out_of_fuel_during_normalize) } let get_layout_defaulting_to_value { jkind = { layout; _ }; _ } = @@ -2240,11 +2748,13 @@ let get_modal_bounds (type l r) ~jkind_of_type (jk : (l * r) jkind) = { areality = locality mod_bounds; linearity = linearity mod_bounds; portability = portability mod_bounds; - yielding = yielding mod_bounds + yielding = yielding mod_bounds; + statefulness = statefulness mod_bounds }; monadic = { uniqueness = uniqueness mod_bounds; - contention = contention mod_bounds + contention = contention mod_bounds; + visibility = visibility mod_bounds } } @@ -2307,11 +2817,21 @@ let set_nullability_upper_bound jk nullability_upper_bound = in { jk with jkind = { jk.jkind with mod_bounds = new_bounds } } +let set_separability_upper_bound jk separability_upper_bound = + { jk with + jkind = + { jk.jkind with + mod_bounds = + Mod_bounds.set_separability separability_upper_bound + jk.jkind.mod_bounds + } + } + let set_layout jk layout = { jk with jkind = { jk.jkind with layout } } let apply_modality_l modality jk = let relevant_axes = - relevant_axes_of_modality ~modality ~relevant_for_nullability:`Relevant + relevant_axes_of_modality ~modality ~relevant_for_shallow:`Relevant in let mod_bounds = Mod_bounds.set_min_in_set jk.jkind.mod_bounds @@ -2328,7 +2848,7 @@ let apply_modality_l modality jk = let apply_modality_r modality jk = let relevant_axes = - relevant_axes_of_modality ~modality ~relevant_for_nullability:`Relevant + relevant_axes_of_modality ~modality ~relevant_for_shallow:`Relevant in let mod_bounds = Mod_bounds.set_max_in_set jk.jkind.mod_bounds @@ -2508,6 +3028,8 @@ module Format_history = struct | Type_variable name -> fprintf ppf "the type variable %s" name | Type_wildcard loc -> fprintf ppf "the wildcard _ at %a" Location.print_loc_in_lowercase loc + | Type_of_kind loc -> + fprintf ppf "the type at %a" Location.print_loc_in_lowercase loc | With_error_message (_message, context) -> (* message gets printed in [format_flattened_history] so we ignore it here *) format_annotation_context ppf context @@ -2611,6 +3133,14 @@ module Format_history = struct fprintf ppf "it's an unannotated existential type variable" | Array_comprehension_element -> fprintf ppf "it's the element type of array comprehension" + | List_comprehension_iterator_element -> + fprintf ppf + "it's the element type of a list that is iterated over in a \ + comprehension" + | Array_comprehension_iterator_element -> + fprintf ppf + "it's the element type of an array that is iterated over in a \ + comprehension" | Lazy_expression -> fprintf ppf "it's the type of a lazy expression" | Class_type_argument -> fprintf ppf "it's a type argument to a class constructor" @@ -2856,6 +3386,23 @@ module Violation = struct pp_bound sub.jkind pp_bound super.jkind)) | No_intersection _ -> () + let report_fuel ppf violation = + let report_fuel_for_type which = + fprintf ppf + "@;\ + @[Note: I gave up trying to find the simplest kind for the %s,@,\ + as it is very large or deeply recursive.@]" which + in + let first_ran_out, second_ran_out = + match violation with + | Not_a_subjkind (k1, k2, _) -> + k1.ran_out_of_fuel_during_normalize, k2.ran_out_of_fuel_during_normalize + | No_intersection (k1, k2) -> + k1.ran_out_of_fuel_during_normalize, k2.ran_out_of_fuel_during_normalize + in + if first_ran_out then report_fuel_for_type "first"; + if second_ran_out then report_fuel_for_type "second" + let report_general preamble pp_former former ppf t = let mismatch_type = match t.violation with @@ -2944,7 +3491,8 @@ module Violation = struct fprintf ppf "@[%s%a has %t,@ which %t.@]" preamble pp_former former fmt_k1 fmt_k2; report_missing_cmi ppf missing_cmi_option; - report_reason ppf t.violation + report_reason ppf t.violation; + report_fuel ppf t.violation let pp_t ppf x = fprintf ppf "%t" x @@ -2960,9 +3508,20 @@ end (* relations *) let equate_or_equal ~allow_mutation - { jkind = jkind1; annotation = _; history = _; has_warned = _; quality = _ } - { jkind = jkind2; annotation = _; history = _; has_warned = _; quality = _ } - = + { jkind = jkind1; + annotation = _; + history = _; + has_warned = _; + ran_out_of_fuel_during_normalize = _; + quality = _ + } + { jkind = jkind2; + annotation = _; + history = _; + has_warned = _; + ran_out_of_fuel_during_normalize = _; + quality = _ + } = Jkind_desc.equate_or_equal ~allow_mutation jkind1 jkind2 (* CR layouts v2.8: Switch this back to ~allow_mutation:false *) @@ -3032,6 +3591,9 @@ let intersection_or_error ~type_equal ~jkind_of_type ~reason t1 t2 = combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind t1) (Pack_jkind t2); has_warned = t1.has_warned || t2.has_warned; + ran_out_of_fuel_during_normalize = + t1.ran_out_of_fuel_during_normalize + || t2.ran_out_of_fuel_during_normalize; quality = Not_best (* As required by the fact that this is a [jkind_r] *) } @@ -3199,7 +3761,9 @@ let is_value_for_printing ~ignore_null { jkind; _ } = then { value with mod_bounds = - Mod_bounds.set_nullability Nullability.Maybe_null value.mod_bounds + Mod_bounds.set_separability Separability.Maybe_separable + (Mod_bounds.set_nullability Nullability.Maybe_null + value.mod_bounds) } :: values else values @@ -3260,6 +3824,7 @@ module Debug_printers = struct | Type_variable name -> fprintf ppf "Type_variable %S" name | Type_wildcard loc -> fprintf ppf "Type_wildcard (%a)" Location.print_loc loc + | Type_of_kind loc -> fprintf ppf "Type_of_kind (%a)" Location.print_loc loc | With_error_message (message, context) -> fprintf ppf "With_error_message (%s, %a)" message annotation_context context @@ -3325,6 +3890,10 @@ module Debug_printers = struct | Default_type_jkind -> fprintf ppf "Default_type_jkind" | Existential_type_variable -> fprintf ppf "Existential_type_variable" | Array_comprehension_element -> fprintf ppf "Array_comprehension_element" + | List_comprehension_iterator_element -> + fprintf ppf "List_comprehension_iterator_element" + | Array_comprehension_iterator_element -> + fprintf ppf "Array_comprehension_iterator_element" | Lazy_expression -> fprintf ppf "Lazy_expression" | Class_type_argument -> fprintf ppf "Class_type_argument" | Class_term_argument -> fprintf ppf "Class_term_argument" @@ -3396,16 +3965,23 @@ module Debug_printers = struct | Creation c -> fprintf ppf "Creation (%a)" creation_reason c let t (type l r) ppf - ({ jkind; annotation = a; history = h; has_warned = _; quality = q } : + ({ jkind; + annotation = a; + history = h; + has_warned = _; + ran_out_of_fuel_during_normalize = roofdn; + quality = q + } : (l * r) jkind) : unit = fprintf ppf "@[{ jkind = %a@,\ ; annotation = %a@,\ ; history = %a@,\ + ; ran_out_of_fuel_during_normalize = %a@,\ ; quality = %s@,\ \ }@]" Jkind_desc.Debug_printers.t jkind (pp_print_option Pprintast.jkind_annotation) - a history h + a history h pp_print_bool roofdn (match q with Best -> "Best" | Not_best -> "Not_best") module Const = struct diff --git a/src/ocaml/typing/jkind.mli b/src/ocaml/typing/jkind.mli index 01efe2557..6e64ab74d 100644 --- a/src/ocaml/typing/jkind.mli +++ b/src/ocaml/typing/jkind.mli @@ -273,10 +273,13 @@ module Const : sig (** This is the jkind of normal ocaml values *) val value : t - (** Immutable values that don't contain functions. *) + (** Immutable non-float values that don't contain functions. *) val immutable_data : t - (** Mutable values that don't contain functions. *) + (** Atomically mutable non-float values that don't contain functions. *) + val sync_data : t + + (** Mutable non-float values that don't contain functions. *) val mutable_data : t (** Values of types of this jkind are immediate on 64-bit platforms; on other @@ -289,30 +292,42 @@ module Const : sig (** Values of types of this jkind are either immediate or null pointers *) val immediate_or_null : t - (** This is the jkind of unboxed 64-bit floats. They have sort - Float64. Mode-crosses. *) + (** The jkind of unboxed 64-bit floats with no mode crossing. *) val float64 : t - (** This is the jkind of unboxed 32-bit floats. They have sort - Float32. Mode-crosses. *) + (** The jkind of unboxed 64-bit floats with mode crossing. *) + val kind_of_unboxed_float : t + + (** The jkind of unboxed 32-bit floats with no mode crossing. *) val float32 : t - (** This is the jkind of unboxed native-sized integers. They have sort - Word. Does not mode-cross. *) + (** The jkind of unboxed 32-bit floats with mode crossing. *) + val kind_of_unboxed_float32 : t + + (** The jkind of unboxed 32-bit native-sized integers with no mode crossing. *) val word : t - (** This is the jkind of unboxed 32-bit integers. They have sort Bits32. Does - not mode-cross. *) + (** The jkind of unboxed 32-bit native-sized integers with mode crossing. *) + val kind_of_unboxed_nativeint : t + + (** The jkind of unboxed 32-bit integers with no mode crossing. *) val bits32 : t - (** This is the jkind of unboxed 64-bit integers. They have sort Bits64. Does - not mode-cross. *) + (** The jkind of unboxed 32-bit integers with mode crossing. *) + val kind_of_unboxed_int32 : t + + (** The jkind of unboxed 64-bit integers with no mode crossing. *) val bits64 : t - (** This is the jkind of unboxed 128-bit simd vectors. They have sort Vec128. Does - not mode-cross. *) + (** The jkind of unboxed 64-bit integers with mode crossing. *) + val kind_of_unboxed_int64 : t + + (** The jkind of unboxed 128-bit vectors with no mode crossing. *) val vec128 : t + (** The jkind of unboxed 128-bit vectors with mode crossing. *) + val kind_of_unboxed_128bit_vectors : t + (** A list of all Builtin jkinds *) val all : t list end @@ -324,6 +339,11 @@ module Builtin : sig [any]. *) val any : why:History.any_creation_reason -> 'd Types.jkind + (* CR layouts v3: change to [any_separable]. *) + + (** Jkind of array elements. *) + val any_non_null : why:History.any_creation_reason -> 'd Types.jkind + (** Value of types of this jkind are not retained at all at runtime *) val void : why:History.void_creation_reason -> ('l * disallowed) Types.jkind @@ -336,6 +356,9 @@ module Builtin : sig (** This is suitable for records or variants without mutable fields. *) val immutable_data : why:History.value_creation_reason -> 'd Types.jkind + (** This is suitable for records or variants with atomically mutable fields. *) + val sync_data : why:History.value_creation_reason -> 'd Types.jkind + (** This is suitable for records or variants with mutable fields. *) val mutable_data : why:History.value_creation_reason -> 'd Types.jkind @@ -370,9 +393,6 @@ module Builtin : sig why:History.product_creation_reason -> int -> Types.jkind_l end -(** Take an existing [t] and add an ability to cross across the nullability axis. *) -val add_nullability_crossing : 'd Types.jkind -> 'd Types.jkind - (** Forcibly change the mod- and with-bounds of a [t] based on the mod- and with-bounds of [from]. *) val unsafely_set_bounds : from:'d Types.jkind -> 'd Types.jkind -> 'd Types.jkind @@ -477,18 +497,39 @@ val for_boxed_record : Types.label_declaration list -> Types.jkind_l (** Choose an appropriate jkind for an unboxed record type. *) val for_unboxed_record : Types.label_declaration list -> Types.jkind_l -(** Choose an appropriate jkind for a boxed variant type. *) -val for_boxed_variant : Types.constructor_declaration list -> Types.jkind_l +(** Choose an appropriate jkind for a boxed variant type. + + [decl_params] is the parameters in the head of the type declaration. [type_apply] + should be [Ctype.apply] partially applied to an [env]. *) +val for_boxed_variant : + decl_params:Types.type_expr list -> + type_apply: + (Types.type_expr list -> + Types.type_expr -> + Types.type_expr list -> + Types.type_expr) -> + free_vars:(Types.type_expr list -> Btype.TypeSet.t) -> + Types.constructor_declaration list -> + Types.jkind_l (** Choose an appropriate jkind for a boxed tuple type. *) val for_boxed_tuple : (string option * Types.type_expr) list -> Types.jkind_l +(** Choose an appropriate jkind for a row type. *) +val for_boxed_row : Types.row_desc -> Types.jkind_l + (** The jkind of an arrow type. *) val for_arrow : Types.jkind_l (** The jkind of an object type. *) val for_object : Types.jkind_l +(** The jkind of a float. *) +val for_float : Ident.t -> Types.jkind_l + +(** The jkind for values that are not floats. *) +val for_non_float : why:History.value_creation_reason -> 'd Types.jkind + (******************************) (* elimination and defaulting *) @@ -562,10 +603,15 @@ val get_nullability : Jkind_axis.Nullability.t (** Computes a jkind that is the same as the input but with an updated maximum - mode for the externality axis *) + mode for the nullability axis *) val set_nullability_upper_bound : Types.jkind_r -> Jkind_axis.Nullability.t -> Types.jkind_r +(** Computes a jkind that is the same as the input but with an updated maximum + mode for the separability axis *) +val set_separability_upper_bound : + Types.jkind_r -> Jkind_axis.Separability.t -> Types.jkind_r + (** Sets the layout in a jkind. *) val set_layout : 'd Types.jkind -> Sort.t Layout.t -> 'd Types.jkind @@ -619,7 +665,6 @@ val set_outcometree_of_type : (Types.type_expr -> Outcometree.out_type) -> unit val set_outcometree_of_modalities_new : (Types.mutability -> - Parsetree.attributes -> Mode.Modality.Value.Const.t -> Outcometree.out_mode_new list) -> unit diff --git a/src/ocaml/typing/jkind_axis.ml b/src/ocaml/typing/jkind_axis.ml index 065384373..9b72950e4 100644 --- a/src/ocaml/typing/jkind_axis.ml +++ b/src/ocaml/typing/jkind_axis.ml @@ -119,15 +119,70 @@ module Nullability = struct | Maybe_null -> Format.fprintf ppf "maybe_null" end +module Separability = struct + type t = + | Non_float + | Separable + | Maybe_separable + + let max = Maybe_separable + + let min = Non_float + + let legacy = Separable + + let equal s1 s2 = + match s1, s2 with + | Non_float, Non_float -> true + | Separable, Separable -> true + | Maybe_separable, Maybe_separable -> true + | (Non_float | Separable | Maybe_separable), _ -> false + + let less_or_equal s1 s2 : Misc.Le_result.t = + match s1, s2 with + | Non_float, Non_float -> Equal + | Non_float, (Separable | Maybe_separable) -> Less + | Separable, Non_float -> Not_le + | Separable, Separable -> Equal + | Separable, Maybe_separable -> Less + | Maybe_separable, (Non_float | Separable) -> Not_le + | Maybe_separable, Maybe_separable -> Equal + + let le s1 s2 = Misc.Le_result.is_le (less_or_equal s1 s2) + + let meet s1 s2 = + match s1, s2 with + | Non_float, (Non_float | Separable | Maybe_separable) + | (Separable | Maybe_separable), Non_float -> + Non_float + | Separable, (Separable | Maybe_separable) | Maybe_separable, Separable -> + Separable + | Maybe_separable, Maybe_separable -> Maybe_separable + + let join s1 s2 = + match s1, s2 with + | Maybe_separable, (Maybe_separable | Separable | Non_float) + | (Separable | Non_float), Maybe_separable -> + Maybe_separable + | Separable, (Separable | Non_float) | Non_float, Separable -> Separable + | Non_float, Non_float -> Non_float + + let print ppf = function + | Non_float -> Format.fprintf ppf "non_float" + | Separable -> Format.fprintf ppf "separable" + | Maybe_separable -> Format.fprintf ppf "maybe_separable" +end + module Axis = struct module Nonmodal = struct type 'a t = | Externality : Externality.t t | Nullability : Nullability.t t + | Separability : Separability.t t end type 'a t = - | Modal : ('m, 'a, 'd) Mode.Alloc.axis -> 'a t + | Modal : ('a, _, _) Mode.Alloc.Axis.t -> 'a t | Nonmodal : 'a Nonmodal.t -> 'a t type packed = Pack : 'a t -> packed [@@unboxed] @@ -147,9 +202,10 @@ module Axis = struct let get (type a) : a t -> (module Axis_ops with type t = a) = function | Modal axis -> - (module Accent_lattice ((val Mode.Alloc.lattice_of_axis axis))) + (module Accent_lattice ((val Mode.Alloc.Const.lattice_of_axis axis))) | Nonmodal Externality -> (module Externality) | Nonmodal Nullability -> (module Nullability) + | Nonmodal Separability -> (module Separability) let all = [ Pack (Modal (Comonadic Areality)); @@ -158,23 +214,17 @@ module Axis = struct Pack (Modal (Monadic Contention)); Pack (Modal (Comonadic Portability)); Pack (Modal (Comonadic Yielding)); + Pack (Modal (Comonadic Statefulness)); + Pack (Modal (Monadic Visibility)); Pack (Nonmodal Externality); - Pack (Nonmodal Nullability) ] + Pack (Nonmodal Nullability); + Pack (Nonmodal Separability) ] let name (type a) : a t -> string = function - | Modal axis -> Format.asprintf "%a" Mode.Alloc.print_axis axis + | Modal axis -> Format.asprintf "%a" Mode.Alloc.Axis.print axis | Nonmodal Externality -> "externality" | Nonmodal Nullability -> "nullability" - - let is_modal (type a) : a t -> bool = function - | Modal (Comonadic Areality) -> true - | Modal (Comonadic Linearity) -> true - | Modal (Monadic Uniqueness) -> true - | Modal (Comonadic Portability) -> true - | Modal (Monadic Contention) -> true - | Modal (Comonadic Yielding) -> true - | Nonmodal Externality -> true - | Nonmodal Nullability -> false + | Nonmodal Separability -> "separability" end module Axis_set = struct @@ -183,8 +233,6 @@ module Axis_set = struct normalization) *) type t = int - (* CR layouts: if we had unboxed types in the compiler, this could be represented with a - uint8 since there are only 8 bits that we care about *) let[@inline] axis_index (type a) : a Axis.t -> _ = function | Modal (Comonadic Areality) -> 0 @@ -193,8 +241,11 @@ module Axis_set = struct | Modal (Comonadic Portability) -> 3 | Modal (Monadic Contention) -> 4 | Modal (Comonadic Yielding) -> 5 - | Nonmodal Externality -> 6 - | Nonmodal Nullability -> 7 + | Modal (Comonadic Statefulness) -> 6 + | Modal (Monadic Visibility) -> 7 + | Nonmodal Externality -> 8 + | Nonmodal Nullability -> 9 + | Nonmodal Separability -> 10 let[@inline] axis_mask ax = 1 lsl axis_index ax @@ -220,8 +271,11 @@ module Axis_set = struct |> set_axis (Modal (Comonadic Portability)) |> set_axis (Modal (Monadic Contention)) |> set_axis (Modal (Comonadic Yielding)) + |> set_axis (Modal (Comonadic Statefulness)) + |> set_axis (Modal (Monadic Visibility)) |> set_axis (Nonmodal Externality) |> set_axis (Nonmodal Nullability) + |> set_axis (Nonmodal Separability) let all = create ~f:(fun ~axis:_ -> true) diff --git a/src/ocaml/typing/jkind_axis.mli b/src/ocaml/typing/jkind_axis.mli index 2dbf2285e..19568c226 100644 --- a/src/ocaml/typing/jkind_axis.mli +++ b/src/ocaml/typing/jkind_axis.mli @@ -40,16 +40,26 @@ module Nullability : sig include Axis_ops with type t := t end +module Separability : sig + type t = + | Non_float + | Separable + | Maybe_separable + + include Axis_ops with type t := t +end + module Axis : sig module Nonmodal : sig type 'a t = | Externality : Externality.t t | Nullability : Nullability.t t + | Separability : Separability.t t end (** Represents an axis of a jkind *) type 'a t = - | Modal : ('m, 'a, 'd) Mode.Alloc.axis -> 'a t + | Modal : ('a, _, _) Mode.Alloc.Axis.t -> 'a t | Nonmodal : 'a Nonmodal.t -> 'a t type packed = Pack : 'a t -> packed [@@unboxed] @@ -62,10 +72,6 @@ module Axis : sig val all : packed list val name : _ t -> string - - (** Is this a modal axis? Includes externality, because that will one - day be modal (it is a deep property). *) - val is_modal : _ t -> bool end module Axis_set : sig diff --git a/src/ocaml/typing/jkind_intf.ml b/src/ocaml/typing/jkind_intf.ml index d357b4569..9ab136e10 100644 --- a/src/ocaml/typing/jkind_intf.ml +++ b/src/ocaml/typing/jkind_intf.ml @@ -80,7 +80,7 @@ module type Sort = sig val for_variant_arg : t - val for_record : t + val for_boxed_record : t val for_block_element : t @@ -236,6 +236,7 @@ module History = struct | Univar : string -> (allowed * allowed) annotation_context | Type_variable : string -> (allowed * allowed) annotation_context | Type_wildcard : Location.t -> (allowed * allowed) annotation_context + | Type_of_kind : Location.t -> (allowed * allowed) annotation_context | With_error_message : string * 'd annotation_context -> 'd annotation_context @@ -291,6 +292,8 @@ module History = struct | Default_type_jkind | Existential_type_variable | Array_comprehension_element + | List_comprehension_iterator_element + | Array_comprehension_iterator_element | Lazy_expression | Class_type_argument | Class_term_argument diff --git a/src/ocaml/typing/jkind_types.ml b/src/ocaml/typing/jkind_types.ml index 9a64e8d70..dd4fcd1cd 100644 --- a/src/ocaml/typing/jkind_types.ml +++ b/src/ocaml/typing/jkind_types.ml @@ -133,7 +133,7 @@ module Sort = struct let for_poly_variant = value - let for_record = value + let for_boxed_record = value let for_object = value diff --git a/src/ocaml/typing/magic_numbers.ml b/src/ocaml/typing/magic_numbers.ml index 62775c7d2..f527718a4 100644 --- a/src/ocaml/typing/magic_numbers.ml +++ b/src/ocaml/typing/magic_numbers.ml @@ -66,6 +66,7 @@ module Cmi = struct | "Caml1999I558" -> Some "5.2.0minus-8" | "Caml1999I559" -> Some "5.2.0minus-9" | "Caml1999I560" -> Some "5.2.0minus-10" + | "Caml1999I561" -> Some "5.2.0minus-11" | _ -> None let () = assert (to_version_opt Config.cmi_magic_number <> None) diff --git a/src/ocaml/typing/mode.ml b/src/ocaml/typing/mode.ml index 6c35fbb9e..2c33cbb3c 100644 --- a/src/ocaml/typing/mode.ml +++ b/src/ocaml/typing/mode.ml @@ -30,14 +30,20 @@ type nonrec disallowed = disallowed type nonrec equate_step = equate_step -module type BiHeyting = sig - (** Extend the [Lattice] interface with operations of bi-Heyting algebras *) +module type Heyting = sig + (** Extend the [Lattice] interface with operations of Heyting algebras *) include Lattice (** [imply c] is the right adjoint of [meet c]; That is, for any [a] and [b], [meet c a <= b] iff [a <= imply c b] *) val imply : t -> t -> t +end + +module type CoHeyting = sig + (** Extend the [Lattice] interface with operations of co-Heyting algebras *) + + include Lattice (** [subtract _ c] is the left adjoint of [join c]. That is, for any [a] and [b], [subtract a c <= b] iff [a <= join c b] *) @@ -47,59 +53,45 @@ end (* Even though our lattices are all bi-heyting algebras, that knowledge is internal to this module. Externally they are seen as normal lattices. *) module Lattices = struct - module Opposite (L : BiHeyting) : BiHeyting with type t = L.t = struct - type t = L.t - - let min = L.max - - let max = L.min - - let legacy = L.legacy - - let[@inline] le a b = L.le b a - - let equal = L.equal - - let join = L.meet - - let meet = L.join + module Total = struct + (** A lattice is total order, if for any [a] [b], [a <= b] or [b <= a]. *) + + module CoHeyting (L : Lattice) : CoHeyting with type t := L.t = struct + (** A total lattice has a co-heyting structure. *) + + include L + + (* Prove the [subtract] below is the left adjoint of [join]. + - If [subtract a c <= b], by the definition of [subtract] below, + that could mean one of two things: + - Took the branch [a <= c], and [min <= b]. In this case, we have [a <= c <= join c b]. + - Took the other branch, and [a <= b]. In this case, we have [a <= b <= join c b]. + + - In the other direction: Given [a <= join c b], compare [c] and [b]: + - if [c <= b], then [a <= join c b = b], and: + - either [a <= c], then [subtract a c = min <= b] + - or the other branch, then [subtract a c = a <= b] + - if [b <= c], then [a <= join c b = c], then [subtract a c = min <= b] + *) + let subtract a c = if le a c then min else a + end + [@@inline] - let print = L.print + module Heyting (L : Lattice) : Heyting with type t := L.t = struct + (** A total lattice has a heyting structure. *) - let imply a b = L.subtract b a + include L - let subtract a b = L.imply b a - end - [@@inline] - - (* A lattice is total order, if for any [a] [b], [a <= b] or [b <= a]. - A total lattice has a bi-heyting structure given as follows. *) - module Total (L : Lattice) : BiHeyting with type t := L.t = struct - include L - - (* Prove the [subtract] below is the left adjoint of [join]. - - If [subtract a c <= b], by the definition of [subtract] below, - that could mean one of two things: - - Took the branch [a <= c], and [min <= b]. In this case, we have [a <= c <= join c b]. - - Took the other branch, and [a <= b]. In this case, we have [a <= b <= join c b]. - - - In the other direction: Given [a <= join c b], compare [c] and [b]: - - if [c <= b], then [a <= join c b = b], and: - - either [a <= c], then [subtract a c = min <= b] - - or the other branch, then [subtract a c = a <= b] - - if [b <= c], then [a <= join c b = c], then [subtract a c = min <= b] - *) - let subtract a c = if le a c then min else a - - (* The proof for [imply] is dual and omitted. *) - let imply c b = if le c b then max else b + (* The proof for [imply] is dual and omitted. *) + let imply c b = if le c b then max else b + end + [@@inline] end - [@@inline] (* Make the type of [Locality] and [Regionality] below distinguishable, so that we can be sure [Comonadic_with] is applied correctly. *) module type Areality = sig - include BiHeyting + include Heyting val _is_areality : unit end @@ -109,7 +101,7 @@ module Lattices = struct | Global | Local - include Total (struct + include Total.Heyting (struct type nonrec t = t let min = Global @@ -150,7 +142,7 @@ module Lattices = struct | Regional | Local - include Total (struct + include Total.Heyting (struct type nonrec t = t let min = Global @@ -201,7 +193,7 @@ module Lattices = struct | Unique | Aliased - include Total (struct + include Total.CoHeyting (struct type nonrec t = t let min = Unique @@ -237,14 +229,12 @@ module Lattices = struct end) end - module Uniqueness_op = Opposite (Uniqueness) - module Linearity = struct type t = | Many | Once - include Total (struct + include Total.Heyting (struct type nonrec t = t let min = Many @@ -279,7 +269,7 @@ module Lattices = struct | Portable | Nonportable - include Total (struct + include Total.Heyting (struct type nonrec t = t let min = Portable @@ -321,7 +311,7 @@ module Lattices = struct | Shared | Uncontended - include Total (struct + include Total.CoHeyting (struct type nonrec t = t let min = Uncontended @@ -365,14 +355,12 @@ module Lattices = struct end) end - module Contention_op = Opposite (Contention) - module Yielding = struct type t = | Yielding | Unyielding - include Total (struct + include Total.Heyting (struct type nonrec t = t let min = Unyielding @@ -408,9 +396,110 @@ module Lattices = struct end) end + module Statefulness = struct + type t = + | Stateless + | Observing + | Stateful + + include Total.Heyting (struct + type nonrec t = t + + let min = Stateless + + let max = Stateful + + let legacy = Stateful + + let[@inline] le a b = + match a, b with + | Stateless, _ | _, Stateful -> true + | _, Stateless | Stateful, _ -> false + | Observing, Observing -> true + + let[@inline] equal a b = + match a, b with + | Stateless, Stateless -> true + | Observing, Observing -> true + | Stateful, Stateful -> true + | Stateless, (Observing | Stateful) + | Observing, (Stateless | Stateful) + | Stateful, (Stateless | Observing) -> + false + + let join a b = + match a, b with + | Stateful, _ | _, Stateful -> Stateful + | Observing, _ | _, Observing -> Observing + | Stateless, Stateless -> Stateless + + let meet a b = + match a, b with + | Stateless, _ | _, Stateless -> Stateless + | Observing, _ | _, Observing -> Observing + | Stateful, Stateful -> Stateful + + let print ppf = function + | Stateless -> Format.fprintf ppf "stateless" + | Observing -> Format.fprintf ppf "observing" + | Stateful -> Format.fprintf ppf "stateful" + end) + end + + module Visibility = struct + type t = + | Immutable + | Read + | Read_write + + include Total.CoHeyting (struct + type nonrec t = t + + let min = Read_write + + let max = Immutable + + let legacy = Read_write + + let[@inline] le a b = + match a, b with + | Read_write, _ | _, Immutable -> true + | _, Read_write | Immutable, _ -> false + | Read, Read -> true + + let[@inline] equal a b = + match a, b with + | Immutable, Immutable -> true + | Read, Read -> true + | Read_write, Read_write -> true + | Immutable, (Read | Read_write) + | Read, (Immutable | Read_write) + | Read_write, (Immutable | Read) -> + false + + let join a b = + match a, b with + | Immutable, _ | _, Immutable -> Immutable + | Read, _ | _, Read -> Read + | Read_write, Read_write -> Read_write + + let meet a b = + match a, b with + | Read_write, _ | _, Read_write -> Read_write + | Read, _ | _, Read -> Read + | Immutable, Immutable -> Immutable + + let print ppf = function + | Immutable -> Format.fprintf ppf "immutable" + | Read -> Format.fprintf ppf "read" + | Read_write -> Format.fprintf ppf "read_write" + end) + end + type monadic = { uniqueness : Uniqueness.t; - contention : Contention.t + contention : Contention.t; + visibility : Visibility.t } module Monadic = struct @@ -419,60 +508,84 @@ module Lattices = struct let min = let uniqueness = Uniqueness.min in let contention = Contention.min in - { uniqueness; contention } + let visibility = Visibility.min in + { uniqueness; contention; visibility } let max = let uniqueness = Uniqueness.max in let contention = Contention.max in - { uniqueness; contention } + let visibility = Visibility.max in + { uniqueness; contention; visibility } let legacy = let uniqueness = Uniqueness.legacy in let contention = Contention.legacy in - { uniqueness; contention } + let visibility = Visibility.legacy in + { uniqueness; contention; visibility } let le m1 m2 = - let { uniqueness = uniqueness1; contention = contention1 } = m1 in - let { uniqueness = uniqueness2; contention = contention2 } = m2 in + let { uniqueness = uniqueness1; + contention = contention1; + visibility = visibility1 + } = + m1 + in + let { uniqueness = uniqueness2; + contention = contention2; + visibility = visibility2 + } = + m2 + in Uniqueness.le uniqueness1 uniqueness2 && Contention.le contention1 contention2 + && Visibility.le visibility1 visibility2 let equal m1 m2 = - let { uniqueness = uniqueness1; contention = contention1 } = m1 in - let { uniqueness = uniqueness2; contention = contention2 } = m2 in + let { uniqueness = uniqueness1; + contention = contention1; + visibility = visibility1 + } = + m1 + in + let { uniqueness = uniqueness2; + contention = contention2; + visibility = visibility2 + } = + m2 + in Uniqueness.equal uniqueness1 uniqueness2 && Contention.equal contention1 contention2 + && Visibility.equal visibility1 visibility2 let join m1 m2 = let uniqueness = Uniqueness.join m1.uniqueness m2.uniqueness in let contention = Contention.join m1.contention m2.contention in - { uniqueness; contention } + let visibility = Visibility.join m1.visibility m2.visibility in + { uniqueness; contention; visibility } let meet m1 m2 = let uniqueness = Uniqueness.meet m1.uniqueness m2.uniqueness in let contention = Contention.meet m1.contention m2.contention in - { uniqueness; contention } - - let imply m1 m2 = - let uniqueness = Uniqueness.imply m1.uniqueness m2.uniqueness in - let contention = Contention.imply m1.contention m2.contention in - { uniqueness; contention } + let visibility = Visibility.meet m1.visibility m2.visibility in + { uniqueness; contention; visibility } let subtract m1 m2 = let uniqueness = Uniqueness.subtract m1.uniqueness m2.uniqueness in let contention = Contention.subtract m1.contention m2.contention in - { uniqueness; contention } + let visibility = Visibility.subtract m1.visibility m2.visibility in + { uniqueness; contention; visibility } let print ppf m = - Format.fprintf ppf "%a,%a" Uniqueness.print m.uniqueness Contention.print - m.contention + Format.fprintf ppf "%a,%a,%a" Uniqueness.print m.uniqueness + Contention.print m.contention Visibility.print m.visibility end type 'areality comonadic_with = { areality : 'areality; linearity : Linearity.t; portability : Portability.t; - yielding : Yielding.t + yielding : Yielding.t; + statefulness : Statefulness.t } module Comonadic_with (Areality : Areality) = struct @@ -483,34 +596,39 @@ module Lattices = struct let linearity = Linearity.min in let portability = Portability.min in let yielding = Yielding.min in - { areality; linearity; portability; yielding } + let statefulness = Statefulness.min in + { areality; linearity; portability; yielding; statefulness } let max = let areality = Areality.max in let linearity = Linearity.max in let portability = Portability.max in let yielding = Yielding.max in - { areality; linearity; portability; yielding } + let statefulness = Statefulness.max in + { areality; linearity; portability; yielding; statefulness } let legacy = let areality = Areality.legacy in let linearity = Linearity.legacy in let portability = Portability.legacy in let yielding = Yielding.legacy in - { areality; linearity; portability; yielding } + let statefulness = Statefulness.legacy in + { areality; linearity; portability; yielding; statefulness } let le m1 m2 = let { areality = areality1; linearity = linearity1; portability = portability1; - yielding = yielding1 + yielding = yielding1; + statefulness = statefulness1 } = m1 in let { areality = areality2; linearity = linearity2; portability = portability2; - yielding = yielding2 + yielding = yielding2; + statefulness = statefulness2 } = m2 in @@ -518,19 +636,22 @@ module Lattices = struct && Linearity.le linearity1 linearity2 && Portability.le portability1 portability2 && Yielding.le yielding1 yielding2 + && Statefulness.le statefulness1 statefulness2 let equal m1 m2 = let { areality = areality1; linearity = linearity1; portability = portability1; - yielding = yielding1 + yielding = yielding1; + statefulness = statefulness1 } = m1 in let { areality = areality2; linearity = linearity2; portability = portability2; - yielding = yielding2 + yielding = yielding2; + statefulness = statefulness2 } = m2 in @@ -538,50 +659,85 @@ module Lattices = struct && Linearity.equal linearity1 linearity2 && Portability.equal portability1 portability2 && Yielding.equal yielding1 yielding2 + && Statefulness.equal statefulness1 statefulness2 let join m1 m2 = let areality = Areality.join m1.areality m2.areality in let linearity = Linearity.join m1.linearity m2.linearity in let portability = Portability.join m1.portability m2.portability in let yielding = Yielding.join m1.yielding m2.yielding in - { areality; linearity; portability; yielding } + let statefulness = Statefulness.join m1.statefulness m2.statefulness in + { areality; linearity; portability; yielding; statefulness } let meet m1 m2 = let areality = Areality.meet m1.areality m2.areality in let linearity = Linearity.meet m1.linearity m2.linearity in let portability = Portability.meet m1.portability m2.portability in let yielding = Yielding.meet m1.yielding m2.yielding in - { areality; linearity; portability; yielding } + let statefulness = Statefulness.meet m1.statefulness m2.statefulness in + { areality; linearity; portability; yielding; statefulness } let imply m1 m2 = let areality = Areality.imply m1.areality m2.areality in let linearity = Linearity.imply m1.linearity m2.linearity in let portability = Portability.imply m1.portability m2.portability in let yielding = Yielding.imply m1.yielding m2.yielding in - { areality; linearity; portability; yielding } - - let subtract m1 m2 = - let areality = Areality.subtract m1.areality m2.areality in - let linearity = Linearity.subtract m1.linearity m2.linearity in - let portability = Portability.subtract m1.portability m2.portability in - let yielding = Yielding.subtract m1.yielding m2.yielding in - { areality; linearity; portability; yielding } + let statefulness = Statefulness.imply m1.statefulness m2.statefulness in + { areality; linearity; portability; yielding; statefulness } let print ppf m = - Format.fprintf ppf "%a,%a,%a,%a" Areality.print m.areality Linearity.print - m.linearity Portability.print m.portability Yielding.print m.yielding + Format.fprintf ppf "%a,%a,%a,%a,%a" Areality.print m.areality + Linearity.print m.linearity Portability.print m.portability + Yielding.print m.yielding Statefulness.print m.statefulness end [@@inline] + module Opposite (L : CoHeyting) : Heyting with type t = L.t = struct + type t = L.t + + let min = L.max + + let max = L.min + + let legacy = L.legacy + + let[@inline] le a b = L.le b a + + let equal = L.equal + + let join = L.meet + + let meet = L.join + + let print = L.print + + let imply a b = L.subtract b a + end + [@@inline] + + (* Notes on flipping + + Our lattices are categorized into two fragments: monadic and comonadic. Moreover: + - Morphisms between lattices in the same fragment are always monotone. + - Morphisms between lattices from opposite fragments are always antitone. + + [Solver_mono] only supports monotone morphisms. To conform to this limitation, we + flip all lattices in the monadic fragment, which makes morphisms between opposite + fragments monotone. We submit this category of lattices (original comonadic lattices + + flipped monadic lattices) to [Solver_mono]. + + The resulted interface given by [Solver_mono] therefore has the monadic lattices + flipped, which is unsuitable for the user of [mode.ml]. Therefore, We build on top of + that and provide an interface to the user where monadic lattices are flipped back to + its original ordering. See [module Monadic_gen] and [module Monadic]. + *) + module Uniqueness_op = Opposite (Uniqueness) + module Contention_op = Opposite (Contention) + module Visibility_op = Opposite (Visibility) module Monadic_op = Opposite (Monadic) module Comonadic_with_locality = Comonadic_with (Locality) module Comonadic_with_regionality = Comonadic_with (Regionality) - (* Axes are categorized into monadic and comonadic fragments, and in general: - - Morphisms between the same fragment are always monotone. - - Morphisms between different fragments are always antitone. - To play well with the solver, here we flip the whole monadic fragment, so all - morphisms are monotone. [Solver_polarized] will flip it back. *) type 'a obj = | Locality : Locality.t obj | Regionality : Regionality.t obj @@ -589,7 +745,9 @@ module Lattices = struct | Linearity : Linearity.t obj | Portability : Portability.t obj | Yielding : Yielding.t obj + | Statefulness : Statefulness.t obj | Contention_op : Contention_op.t obj + | Visibility_op : Visibility_op.t obj | Monadic_op : Monadic_op.t obj | Comonadic_with_regionality : Comonadic_with_regionality.t obj | Comonadic_with_locality : Comonadic_with_locality.t obj @@ -602,7 +760,9 @@ module Lattices = struct | Linearity -> Format.fprintf ppf "Linearity" | Portability -> Format.fprintf ppf "Portability" | Yielding -> Format.fprintf ppf "Yielding" + | Statefulness -> Format.fprintf ppf "Statefulness" | Contention_op -> Format.fprintf ppf "Contention_op" + | Visibility_op -> Format.fprintf ppf "Visibility_op" | Monadic_op -> Format.fprintf ppf "Monadic_op" | Comonadic_with_locality -> Format.fprintf ppf "Comonadic_with_locality" | Comonadic_with_regionality -> @@ -613,7 +773,9 @@ module Lattices = struct | Regionality -> Regionality.min | Uniqueness_op -> Uniqueness_op.min | Contention_op -> Contention_op.min + | Visibility_op -> Visibility_op.min | Yielding -> Yielding.min + | Statefulness -> Statefulness.min | Linearity -> Linearity.min | Portability -> Portability.min | Monadic_op -> Monadic_op.min @@ -625,9 +787,11 @@ module Lattices = struct | Regionality -> Regionality.max | Uniqueness_op -> Uniqueness_op.max | Contention_op -> Contention_op.max + | Visibility_op -> Visibility_op.max | Linearity -> Linearity.max | Portability -> Portability.max | Yielding -> Yielding.max + | Statefulness -> Statefulness.max | Monadic_op -> Monadic_op.max | Comonadic_with_locality -> Comonadic_with_locality.max | Comonadic_with_regionality -> Comonadic_with_regionality.max @@ -639,9 +803,11 @@ module Lattices = struct | Regionality -> Regionality.le a b | Uniqueness_op -> Uniqueness_op.le a b | Contention_op -> Contention_op.le a b + | Visibility_op -> Visibility_op.le a b | Linearity -> Linearity.le a b | Portability -> Portability.le a b | Yielding -> Yielding.le a b + | Statefulness -> Statefulness.le a b | Monadic_op -> Monadic_op.le a b | Comonadic_with_locality -> Comonadic_with_locality.le a b | Comonadic_with_regionality -> Comonadic_with_regionality.le a b @@ -653,9 +819,11 @@ module Lattices = struct | Regionality -> Regionality.join a b | Uniqueness_op -> Uniqueness_op.join a b | Contention_op -> Contention_op.join a b + | Visibility_op -> Visibility_op.join a b | Linearity -> Linearity.join a b | Portability -> Portability.join a b | Yielding -> Yielding.join a b + | Statefulness -> Statefulness.join a b | Monadic_op -> Monadic_op.join a b | Comonadic_with_locality -> Comonadic_with_locality.join a b | Comonadic_with_regionality -> Comonadic_with_regionality.join a b @@ -667,9 +835,11 @@ module Lattices = struct | Regionality -> Regionality.meet a b | Uniqueness_op -> Uniqueness_op.meet a b | Contention_op -> Contention_op.meet a b + | Visibility_op -> Visibility_op.meet a b | Linearity -> Linearity.meet a b | Portability -> Portability.meet a b | Yielding -> Yielding.meet a b + | Statefulness -> Statefulness.meet a b | Monadic_op -> Monadic_op.meet a b | Comonadic_with_locality -> Comonadic_with_locality.meet a b | Comonadic_with_regionality -> Comonadic_with_regionality.meet a b @@ -681,36 +851,26 @@ module Lattices = struct | Regionality -> Regionality.imply a b | Uniqueness_op -> Uniqueness_op.imply a b | Contention_op -> Contention_op.imply a b + | Visibility_op -> Visibility_op.imply a b | Linearity -> Linearity.imply a b | Portability -> Portability.imply a b | Yielding -> Yielding.imply a b + | Statefulness -> Statefulness.imply a b | Comonadic_with_locality -> Comonadic_with_locality.imply a b | Comonadic_with_regionality -> Comonadic_with_regionality.imply a b | Monadic_op -> Monadic_op.imply a b - let subtract : type a. a obj -> a -> a -> a = - fun obj a b -> - match obj with - | Locality -> Locality.subtract a b - | Regionality -> Regionality.subtract a b - | Uniqueness_op -> Uniqueness_op.subtract a b - | Contention_op -> Contention_op.subtract a b - | Linearity -> Linearity.subtract a b - | Portability -> Portability.subtract a b - | Yielding -> Yielding.subtract a b - | Comonadic_with_locality -> Comonadic_with_locality.subtract a b - | Comonadic_with_regionality -> Comonadic_with_regionality.subtract a b - | Monadic_op -> Monadic_op.subtract a b - (* not hotpath, Ok to curry *) let print : type a. a obj -> _ -> a -> unit = function | Locality -> Locality.print | Regionality -> Regionality.print | Uniqueness_op -> Uniqueness_op.print | Contention_op -> Contention_op.print + | Visibility_op -> Visibility_op.print | Linearity -> Linearity.print | Portability -> Portability.print | Yielding -> Yielding.print + | Statefulness -> Statefulness.print | Monadic_op -> Monadic_op.print | Comonadic_with_locality -> Comonadic_with_locality.print | Comonadic_with_regionality -> Comonadic_with_regionality.print @@ -725,15 +885,17 @@ module Lattices = struct | Regionality, Regionality -> Some Refl | Uniqueness_op, Uniqueness_op -> Some Refl | Contention_op, Contention_op -> Some Refl + | Visibility_op, Visibility_op -> Some Refl | Linearity, Linearity -> Some Refl | Portability, Portability -> Some Refl | Yielding, Yielding -> Some Refl + | Statefulness, Statefulness -> Some Refl | Monadic_op, Monadic_op -> Some Refl | Comonadic_with_locality, Comonadic_with_locality -> Some Refl | Comonadic_with_regionality, Comonadic_with_regionality -> Some Refl - | ( ( Locality | Regionality | Uniqueness_op | Contention_op | Linearity - | Portability | Yielding | Monadic_op | Comonadic_with_locality - | Comonadic_with_regionality ), + | ( ( Locality | Regionality | Uniqueness_op | Contention_op + | Visibility_op | Linearity | Portability | Yielding | Statefulness + | Monadic_op | Comonadic_with_locality | Comonadic_with_regionality ), _ ) -> None end) @@ -747,12 +909,26 @@ module Lattices_mono = struct module Axis = struct type ('t, 'r) t = | Areality : ('a comonadic_with, 'a) t + | Yielding : ('areality comonadic_with, Yielding.t) t | Linearity : ('areality comonadic_with, Linearity.t) t + | Statefulness : ('areality comonadic_with, Statefulness.t) t | Portability : ('areality comonadic_with, Portability.t) t - | Yielding : ('areality comonadic_with, Yielding.t) t | Uniqueness : (Monadic_op.t, Uniqueness_op.t) t + | Visibility : (Monadic_op.t, Visibility_op.t) t | Contention : (Monadic_op.t, Contention_op.t) t + let to_int : type a b. (a, b) t -> int = function + | Areality -> 0 + | Yielding -> 1 + | Linearity -> 2 + | Statefulness -> 3 + | Portability -> 4 + | Uniqueness -> 5 + | Visibility -> 6 + | Contention -> 7 + + let compare a b = to_int a - to_int b + let print : type p r. _ -> (p, r) t -> unit = fun ppf -> function | Areality -> Format.fprintf ppf "locality" @@ -761,6 +937,8 @@ module Lattices_mono = struct | Uniqueness -> Format.fprintf ppf "uniqueness" | Contention -> Format.fprintf ppf "contention" | Yielding -> Format.fprintf ppf "yielding" + | Statefulness -> Format.fprintf ppf "statefulness" + | Visibility -> Format.fprintf ppf "visibility" let eq : type p r0 r1. (p, r0) t -> (p, r1) t -> (r0, r1) Misc.eq option = fun ax0 ax1 -> @@ -771,8 +949,10 @@ module Lattices_mono = struct | Uniqueness, Uniqueness -> Some Refl | Contention, Contention -> Some Refl | Yielding, Yielding -> Some Refl + | Statefulness, Statefulness -> Some Refl + | Visibility, Visibility -> Some Refl | ( ( Areality | Linearity | Uniqueness | Portability | Contention - | Yielding ), + | Yielding | Statefulness | Visibility ), _ ) -> None @@ -783,30 +963,30 @@ module Lattices_mono = struct | Linearity -> t.linearity | Portability -> t.portability | Yielding -> t.yielding + | Statefulness -> t.statefulness | Uniqueness -> t.uniqueness | Contention -> t.contention + | Visibility -> t.visibility - let update : type p r. (p, r) t -> r -> p -> p = + let set : type p r. (p, r) t -> r -> p -> p = fun ax r t -> match ax with | Areality -> { t with areality = r } | Linearity -> { t with linearity = r } | Portability -> { t with portability = r } | Yielding -> { t with yielding = r } + | Statefulness -> { t with statefulness = r } | Uniqueness -> { t with uniqueness = r } | Contention -> { t with contention = r } + | Visibility -> { t with visibility = r } end type ('a, 'b, 'd) morph = - | Id : ('a, 'a, 'd) morph (** identity morphism *) + | Id : ('a, 'a, 'l * 'r) morph (** identity morphism *) | Meet_with : 'a -> ('a, 'a, 'l * 'r) morph (** Meet the input with the parameter *) - | Imply : 'a -> ('a, 'a, disallowed * 'd) morph + | Imply : 'a -> ('a, 'a, disallowed * 'r) morph (** The right adjoint of [Meet_with] *) - | Join_with : 'a -> ('a, 'a, 'l * 'r) morph - (** Join the input with the parameter *) - | Subtract : 'a -> ('a, 'a, 'd * disallowed) morph - (** The left adjoint of [Join_with] *) | Proj : 't obj * ('t, 'r_) Axis.t -> ('t, 'r_, 'l * 'r) morph (** Project from a product to an axis *) | Max_with : ('t, 'r_) Axis.t -> ('r_, 't, disallowed * 'r) morph @@ -814,8 +994,8 @@ module Lattices_mono = struct | Min_with : ('t, 'r_) Axis.t -> ('r_, 't, 'l * disallowed) morph (** Combine an axis with minima along other axes *) | Map_comonadic : - ('a0, 'a1, 'd) morph - -> ('a0 comonadic_with, 'a1 comonadic_with, 'd) morph + ('a0, 'a1, 'l * 'r) morph + -> ('a0 comonadic_with, 'a1 comonadic_with, 'l * 'r) morph (** Lift an morphism on areality to a morphism on the comonadic fragment *) | Monadic_to_comonadic_min : (Monadic_op.t, 'a comonadic_with, 'l * disallowed) morph @@ -839,8 +1019,11 @@ module Lattices_mono = struct (** Maps regional to global, identity otherwise *) | Global_to_regional : (Locality.t, Regionality.t, disallowed * 'r) morph (** Maps global to regional, local to local *) - | Compose : ('b, 'c, 'd) morph * ('a, 'b, 'd) morph -> ('a, 'c, 'd) morph - (** Compoistion of two morphisms *) + | Compose : + ('b, 'c, 'l * 'r) morph * ('a, 'b, 'l * 'r) morph + -> ('a, 'c, 'l * 'r) morph (** Compoistion of two morphisms *) + constraint 'd = _ * _ + [@@ocaml.warning "-62"] include Magic_allow_disallow (struct type ('a, 'b, 'd) sided = ('a, 'b, 'd) morph constraint 'd = 'l * 'r @@ -852,8 +1035,6 @@ module Lattices_mono = struct | Proj (src, ax) -> Proj (src, ax) | Min_with ax -> Min_with ax | Meet_with c -> Meet_with c - | Join_with c -> Join_with c - | Subtract c -> Subtract c | Compose (f, g) -> let f = allow_left f in let g = allow_left g in @@ -874,7 +1055,6 @@ module Lattices_mono = struct | Id -> Id | Proj (src, ax) -> Proj (src, ax) | Max_with ax -> Max_with ax - | Join_with c -> Join_with c | Meet_with c -> Meet_with c | Imply c -> Imply c | Compose (f, g) -> @@ -898,8 +1078,6 @@ module Lattices_mono = struct | Proj (src, ax) -> Proj (src, ax) | Min_with ax -> Min_with ax | Max_with ax -> Max_with ax - | Join_with c -> Join_with c - | Subtract c -> Subtract c | Meet_with c -> Meet_with c | Imply c -> Imply c | Compose (f, g) -> @@ -925,8 +1103,6 @@ module Lattices_mono = struct | Proj (src, ax) -> Proj (src, ax) | Min_with ax -> Min_with ax | Max_with ax -> Max_with ax - | Join_with c -> Join_with c - | Subtract c -> Subtract c | Meet_with c -> Meet_with c | Imply c -> Imply c | Compose (f, g) -> @@ -960,8 +1136,11 @@ module Lattices_mono = struct | Portability, Comonadic_with_regionality -> Portability | Yielding, Comonadic_with_locality -> Yielding | Yielding, Comonadic_with_regionality -> Yielding + | Statefulness, Comonadic_with_locality -> Statefulness + | Statefulness, Comonadic_with_regionality -> Statefulness | Uniqueness, Monadic_op -> Uniqueness_op | Contention, Monadic_op -> Contention_op + | Visibility, Monadic_op -> Visibility_op let comonadic_with_obj : type a. a obj -> a comonadic_with obj = fun a0 -> @@ -969,20 +1148,19 @@ module Lattices_mono = struct | Locality -> Comonadic_with_locality | Regionality -> Comonadic_with_regionality | Uniqueness_op | Linearity | Monadic_op | Comonadic_with_regionality - | Comonadic_with_locality | Contention_op | Portability | Yielding -> + | Comonadic_with_locality | Contention_op | Visibility_op | Portability + | Yielding | Statefulness -> assert false - let rec src : type a b d. b obj -> (a, b, d) morph -> a obj = + let rec src : type a b l r. b obj -> (a, b, l * r) morph -> a obj = fun dst f -> match f with | Id -> dst | Proj (src, _) -> src | Max_with ax -> proj_obj ax dst | Min_with ax -> proj_obj ax dst - | Join_with _ -> dst | Meet_with _ -> dst | Imply _ -> dst - | Subtract _ -> dst | Compose (f, g) -> let mid = src dst f in src mid g @@ -1028,9 +1206,7 @@ module Lattices_mono = struct not requird to be complete: i.e., it's allowed to return [None] when it should return [Some]. It would cause duplication but not error. *) if c0 = c1 then Some Refl else None - | Join_with c0, Join_with c1 -> if c0 = c1 then Some Refl else None | Imply c0, Imply c1 -> if c0 = c1 then Some Refl else None - | Subtract c0, Subtract c1 -> if c0 = c1 then Some Refl else None | Monadic_to_comonadic_min, Monadic_to_comonadic_min -> Some Refl | Comonadic_to_monadic a0, Comonadic_to_monadic a1 -> ( match eq_obj a0 a1 with None -> None | Some Refl -> Some Refl) @@ -1047,12 +1223,11 @@ module Lattices_mono = struct match equal g0 g1 with None -> None | Some Refl -> Some Refl)) | Map_comonadic f, Map_comonadic g -> ( match equal f g with Some Refl -> Some Refl | None -> None) - | ( ( Id | Proj _ | Max_with _ | Min_with _ | Meet_with _ | Join_with _ + | ( ( Id | Proj _ | Max_with _ | Min_with _ | Meet_with _ | Monadic_to_comonadic_min | Comonadic_to_monadic _ | Monadic_to_comonadic_max | Local_to_regional | Locality_as_regionality | Global_to_regional | Regional_to_local - | Regional_to_global | Compose _ | Map_comonadic _ | Imply _ - | Subtract _ ), + | Regional_to_global | Compose _ | Map_comonadic _ | Imply _ ), _ ) -> None end) @@ -1060,13 +1235,11 @@ module Lattices_mono = struct let eq_morph = Equal_morph.equal let rec print_morph : - type a b d. b obj -> Format.formatter -> (a, b, d) morph -> unit = + type a b l r. b obj -> Format.formatter -> (a, b, l * r) morph -> unit = fun dst ppf -> function | Id -> Format.fprintf ppf "id" - | Join_with c -> Format.fprintf ppf "join(%a)" (print dst) c | Meet_with c -> Format.fprintf ppf "meet(%a)" (print dst) c | Imply c -> Format.fprintf ppf "imply(%a)" (print dst) c - | Subtract c -> Format.fprintf ppf "subtract_%a" (print dst) c | Proj (_, ax) -> Format.fprintf ppf "proj_%a" Axis.print ax | Max_with ax -> Format.fprintf ppf "max_with_%a" Axis.print ax | Min_with ax -> Format.fprintf ppf "min_with_%a" Axis.print ax @@ -1126,9 +1299,19 @@ module Lattices_mono = struct | Locality.Local -> Regionality.Local | Locality.Global -> Regionality.Regional - let min_with dst ax a = Axis.update ax a (min dst) + let statefulness_to_visibility = function + | Statefulness.Stateless -> Visibility.Immutable + | Statefulness.Observing -> Visibility.Read + | Statefulness.Stateful -> Visibility.Read_write - let max_with dst ax a = Axis.update ax a (max dst) + let visibility_to_statefulness = function + | Visibility.Immutable -> Statefulness.Stateless + | Visibility.Read -> Statefulness.Observing + | Visibility.Read_write -> Statefulness.Stateful + + let min_with dst ax a = Axis.set ax a (min dst) + + let max_with dst ax a = Axis.set ax a (max dst) let monadic_to_comonadic_min : type a. a comonadic_with obj -> Monadic_op.t -> a comonadic_with = @@ -1141,14 +1324,16 @@ module Lattices_mono = struct let linearity = unique_to_linear m.uniqueness in let portability = contended_to_portable m.contention in let yielding = Yielding.min in - { areality; linearity; portability; yielding } + let statefulness = visibility_to_statefulness m.visibility in + { areality; linearity; portability; yielding; statefulness } let comonadic_to_monadic : type a. a comonadic_with obj -> a comonadic_with -> Monadic_op.t = fun _ m -> let uniqueness = linear_to_unique m.linearity in let contention = portable_to_contended m.portability in - { uniqueness; contention } + let visibility = statefulness_to_visibility m.statefulness in + { uniqueness; contention; visibility } let monadic_to_comonadic_max : type a. a comonadic_with obj -> Monadic_op.t -> a comonadic_with = @@ -1161,9 +1346,10 @@ module Lattices_mono = struct let linearity = unique_to_linear m.uniqueness in let portability = contended_to_portable m.contention in let yielding = Yielding.max in - { areality; linearity; portability; yielding } + let statefulness = visibility_to_statefulness m.visibility in + { areality; linearity; portability; yielding; statefulness } - let rec apply : type a b d. b obj -> (a, b, d) morph -> a -> b = + let rec apply : type a b l r. b obj -> (a, b, l * r) morph -> a -> b = fun dst f a -> match f with | Compose (f, g) -> @@ -1176,9 +1362,7 @@ module Lattices_mono = struct | Max_with ax -> max_with dst ax a | Min_with ax -> min_with dst ax a | Meet_with c -> meet dst c a - | Join_with c -> join dst c a | Imply c -> imply dst c a - | Subtract c -> subtract dst a c | Monadic_to_comonadic_min -> monadic_to_comonadic_min dst a | Comonadic_to_monadic src -> comonadic_to_monadic src a | Monadic_to_comonadic_max -> monadic_to_comonadic_max dst a @@ -1195,38 +1379,27 @@ module Lattices_mono = struct (** Compose m0 after m1. Returns [Some f] if the composition can be represented by [f] instead of [Compose m0 m1]. [None] otherwise. *) let rec maybe_compose : - type a b c d. - c obj -> (b, c, d) morph -> (a, b, d) morph -> (a, c, d) morph option = + type a b c l r. + c obj -> + (b, c, l * r) morph -> + (a, b, l * r) morph -> + (a, c, l * r) morph option = fun dst m0 m1 -> let is_max c = le dst (max dst) c in - let is_min c = le dst c (min dst) in let is_mid_max c = let mid = src dst m0 in le mid (max mid) c in - let is_mid_min c = - let mid = src dst m0 in - le mid c (min mid) - in match m0, m1 with | Id, m -> Some m | m, Id -> Some m | Meet_with c0, Meet_with c1 -> Some (Meet_with (meet dst c0 c1)) - | Join_with c0, Join_with c1 -> Some (Join_with (join dst c0 c1)) | Imply c0, Imply c1 -> Some (Imply (meet dst c0 c1)) - | Subtract c0, Subtract c1 -> Some (Subtract (join dst c0 c1)) - | Imply c0, Join_with c1 when le dst c0 c1 -> Some (Join_with (max dst)) | Imply c0, Meet_with c1 when le dst c0 c1 -> Some (Imply c0) - | Subtract c0, Meet_with c1 when le dst c1 c0 -> Some (Meet_with (min dst)) - | Subtract c0, Join_with c1 when le dst c1 c0 -> Some (Subtract c0) | Meet_with c0, m1 when is_max c0 -> Some m1 - | Join_with c0, m1 when is_min c0 -> Some m1 | Imply c0, m1 when is_max c0 -> Some m1 - | Subtract c0, m1 when is_min c0 -> Some m1 | m1, Meet_with c0 when is_mid_max c0 -> Some m1 - | m1, Join_with c0 when is_mid_min c0 -> Some m1 | m1, Imply c0 when is_mid_max c0 -> Some m1 - | m1, Subtract c0 when is_mid_min c0 -> Some m1 | Compose (f0, f1), g -> ( let mid = src dst f0 in match maybe_compose mid f1 g with @@ -1239,8 +1412,6 @@ module Lattices_mono = struct | None -> None) | Proj (mid, ax), Meet_with c -> Some (compose dst (Meet_with (Axis.proj ax c)) (Proj (mid, ax))) - | Proj (mid, ax), Join_with c -> - Some (compose dst (Join_with (Axis.proj ax c)) (Proj (mid, ax))) | Proj (_, ax0), Max_with ax1 -> ( match Axis.eq ax0 ax1 with None -> None | Some Refl -> Some Id) | Proj (_, ax0), Min_with ax1 -> ( @@ -1251,7 +1422,8 @@ module Lattices_mono = struct | Areality -> Some (compose dst f (Proj (src', Areality))) | Linearity -> Some (Proj (src', Linearity)) | Portability -> Some (Proj (src', Portability)) - | Yielding -> Some (Proj (src', Yielding))) + | Yielding -> Some (Proj (src', Yielding)) + | Statefulness -> Some (Proj (src', Statefulness))) | Proj _, Monadic_to_comonadic_min -> None | Proj _, Monadic_to_comonadic_max -> None | Proj _, Comonadic_to_monadic _ -> None @@ -1259,41 +1431,21 @@ module Lattices_mono = struct let dst0 = proj_obj Areality dst in Some (Map_comonadic (compose dst0 f g)) | Regional_to_local, Local_to_regional -> Some Id - | Regional_to_local, Global_to_regional -> Some (Join_with Locality.Local) + | Regional_to_local, Global_to_regional -> Some (Imply Locality.Global) | Regional_to_local, Locality_as_regionality -> Some Id | Regional_to_local, Meet_with c -> Some (compose dst (Meet_with (regional_to_local c)) Regional_to_local) - | Regional_to_local, Join_with c -> - Some (compose dst (Join_with (regional_to_local c)) Regional_to_local) - | Regional_to_global, Join_with c -> - Some (compose dst (Join_with (regional_to_global c)) Regional_to_global) | Regional_to_global, Meet_with c -> Some (compose dst (Meet_with (regional_to_global c)) Regional_to_global) | Local_to_regional, Meet_with c -> Some (compose dst (Meet_with (local_to_regional c)) Local_to_regional) - | Local_to_regional, Join_with c -> - Some (compose dst (Join_with (local_to_regional c)) Local_to_regional) | Global_to_regional, Meet_with c -> Some (compose dst (Meet_with (global_to_regional c)) Global_to_regional) - | Global_to_regional, Join_with c -> - Some (compose dst (Join_with (global_to_regional c)) Global_to_regional) | Locality_as_regionality, Meet_with c -> Some (compose dst (Meet_with (locality_as_regionality c)) Locality_as_regionality) - | Locality_as_regionality, Join_with c -> - Some - (compose dst - (Join_with (locality_as_regionality c)) - Locality_as_regionality) - | Map_comonadic f, Join_with c -> - let dst0 = proj_obj Areality dst in - let areality = Axis.proj Areality c in - Some - (compose dst - (Join_with (set_areality (min dst0) c)) - (Map_comonadic (compose dst0 f (Join_with areality)))) | Map_comonadic f, Meet_with c -> let dst0 = proj_obj Areality dst in let areality = Axis.proj Areality c in @@ -1308,13 +1460,6 @@ module Lattices_mono = struct (compose dst (Imply (set_areality (max dst0) c)) (Map_comonadic (compose dst0 f (Imply areality)))) - | Map_comonadic f, Subtract c -> - let dst0 = proj_obj Areality dst in - let areality = Axis.proj Areality c in - Some - (compose dst - (Subtract (set_areality (min dst0) c)) - (Map_comonadic (compose dst0 f (Subtract areality)))) | Regional_to_global, Locality_as_regionality -> Some Id | Regional_to_global, Local_to_regional -> Some (Meet_with Locality.Global) | Local_to_regional, Regional_to_local -> None @@ -1328,12 +1473,8 @@ module Lattices_mono = struct | Max_with _, _ -> None | _, Meet_with _ -> None | Meet_with _, _ -> None - | _, Join_with _ -> None - | Join_with _, _ -> None | _, Imply _ -> None | Imply _, _ -> None - | _, Subtract _ -> None - | Subtract _, _ -> None | _, Proj _ -> None | Map_comonadic _, _ -> None | Monadic_to_comonadic_min, _ -> None @@ -1353,8 +1494,9 @@ module Lattices_mono = struct . and compose : - type a b c d. - c obj -> (b, c, d) morph -> (a, b, d) morph -> (a, c, d) morph = + type a b c l r. + c obj -> (b, c, l * r) morph -> (a, b, l * r) morph -> (a, c, l * r) morph + = fun dst f g -> match maybe_compose dst f g with Some m -> m | None -> Compose (f, g) @@ -1371,7 +1513,6 @@ module Lattices_mono = struct let f' = left_adjoint dst f in let g' = left_adjoint mid g in Compose (g', f') - | Join_with c -> Subtract c | Meet_with _c -> (* The downward closure of [Meet_with c]'s image is all [x <= c]. For those, [x <= meet c y] is equivalent to [x <= y]. *) @@ -1402,11 +1543,6 @@ module Lattices_mono = struct let g' = right_adjoint mid g in Compose (g', f') | Meet_with c -> Imply c - | Subtract c -> Join_with c - | Join_with _c -> - (* The upward closure of [Join_with c]'s image is all [x >= c]. - For those, [join c y <= x] is equivalent to [y <= x]. *) - Id | Comonadic_to_monadic _ -> Monadic_to_comonadic_max | Monadic_to_comonadic_min -> Comonadic_to_monadic dst | Local_to_regional -> Regional_to_local @@ -1420,18 +1556,21 @@ module Lattices_mono = struct end module C = Lattices_mono -module S = Solvers_polarized (C) +module Solver = Solver_mono (C) +module S = Solver type monadic = C.monadic = { uniqueness : C.Uniqueness.t; - contention : C.Contention.t + contention : C.Contention.t; + visibility : C.Visibility.t } type 'a comonadic_with = 'a C.comonadic_with = { areality : 'a; linearity : C.Linearity.t; portability : C.Portability.t; - yielding : C.Yielding.t + yielding : C.Yielding.t; + statefulness : C.Statefulness.t } module Axis = C.Axis @@ -1445,16 +1584,12 @@ let append_changes : (changes ref -> unit) ref = ref (fun _ -> assert false) let set_append_changes f = append_changes := f -type ('a, 'd) mode_monadic = ('a, 'd) S.Negative.mode - -type ('a, 'd) mode_comonadic = ('a, 'd) S.Positive.mode +type ('a, 'd) mode = ('a, 'd) S.mode (** Representing a single object *) module type Obj = sig type const - module Solver : S.Solver_polarized - val obj : const C.obj end @@ -1496,10 +1631,10 @@ let equate_from_submode' submode m0 m1 = | Ok () -> Ok ()) [@@inline] -module Common (Obj : Obj) = struct +module Comonadic_gen (Obj : Obj) = struct open Obj - type 'd t = (const, 'd) Solver.mode + type 'd t = (const, 'l * 'r) Solver.mode constraint 'd = 'l * 'r type l = (allowed * disallowed) t @@ -1553,6 +1688,10 @@ module Common (Obj : Obj) = struct let of_const : type l r. const -> (l * r) t = fun a -> Solver.of_const obj a + let meet_const c m = Solver.apply obj (Meet_with c) m + + let imply c m = Solver.apply obj (Imply c) (Solver.disallow_left m) + module Guts = struct let get_floor m = Solver.get_floor obj m @@ -1565,18 +1704,88 @@ module Common (Obj : Obj) = struct end [@@inline] +module Monadic_gen (Obj : Obj) = struct + (* Monadic lattices are flipped. See "Notes on flipping". *) + open Obj + + type 'd t = (const, 'r * 'l) Solver.mode constraint 'd = 'l * 'r + + type l = (allowed * disallowed) t + + type r = (disallowed * allowed) t + + type lr = (allowed * allowed) t + + type nonrec error = const error + + type equate_error = equate_step * error + + type (_, _, 'd) sided = 'd t + + let flip_error = function + | Ok _ as r -> r + | Error { left; right } -> Error { left = right; right = left } + + let disallow_right m = Solver.disallow_left m + + let disallow_left m = Solver.disallow_right m + + let allow_left m = Solver.allow_right m + + let allow_right m = Solver.allow_left m + + let newvar () = Solver.newvar obj + + let min = Solver.max obj + + let max = Solver.min obj + + let newvar_above m = Solver.newvar_below obj m + + let newvar_below m = Solver.newvar_above obj m + + let submode_log a b ~log = Solver.submode obj b a ~log |> flip_error + + let submode a b = try_with_log (submode_log a b) + + let join l = Solver.meet obj l + + let meet l = Solver.join obj l + + let submode_exn m0 m1 = assert (submode m0 m1 |> Result.is_ok) + + let equate a b = try_with_log (equate_from_submode submode_log a b) + + let equate_exn m0 m1 = assert (equate m0 m1 |> Result.is_ok) + + let print ?verbose () ppf m = Solver.print ?verbose obj ppf m + + let zap_to_ceil m = with_log (Solver.zap_to_floor obj m) + + let zap_to_floor m = with_log (Solver.zap_to_ceil obj m) + + let of_const : type l r. const -> (l * r) t = fun a -> Solver.of_const obj a + + let join_const c m = Solver.apply Obj.obj (Meet_with c) m + + let subtract c m = Solver.apply obj (Imply c) (Solver.disallow_left m) + + module Guts = struct + let get_ceil m = Solver.get_floor obj m + end +end +[@@inline] + module Locality = struct module Const = C.Locality module Obj = struct type const = Const.t - module Solver = S.Positive - let obj = C.Locality end - include Common (Obj) + include Comonadic_gen (Obj) let global = of_const Global @@ -1605,12 +1814,10 @@ module Regionality = struct module Obj = struct type const = Const.t - module Solver = S.Positive - let obj = C.Regionality end - include Common (Obj) + include Comonadic_gen (Obj) let local = of_const Const.Local @@ -1629,12 +1836,10 @@ module Linearity = struct module Obj = struct type const = Const.t - module Solver = S.Positive - let obj : _ C.obj = C.Linearity end - include Common (Obj) + include Comonadic_gen (Obj) let many = of_const Many @@ -1645,22 +1850,68 @@ module Linearity = struct let zap_to_legacy = zap_to_floor end +module Statefulness = struct + module Const = C.Statefulness + + module Obj = struct + type const = Const.t + + let obj = C.Statefulness + end + + include Comonadic_gen (Obj) + + let stateless = of_const Stateless + + let observing = of_const Observing + + let stateful = of_const Stateful + + let legacy = of_const Const.legacy + + let zap_to_legacy = zap_to_ceil +end + +module Visibility = struct + module Const = C.Visibility + module Const_op = C.Visibility_op + + module Obj = struct + type const = Const.t + + let obj = C.Visibility_op + end + + include Monadic_gen (Obj) + + let immutable = of_const Immutable + + let read = of_const Read + + let read_write = of_const Read_write + + let legacy = of_const Const.legacy + + let zap_to_legacy = zap_to_floor +end + module Portability = struct module Const = C.Portability module Obj = struct type const = Const.t - module Solver = S.Positive - let obj : _ C.obj = C.Portability end - include Common (Obj) + include Comonadic_gen (Obj) let legacy = of_const Const.legacy - let zap_to_legacy = zap_to_ceil + let zap_to_legacy ~statefulness = + match statefulness with + | Statefulness.Const.Stateful | Statefulness.Const.Observing -> zap_to_ceil + | Statefulness.Const.Stateless -> zap_to_floor end module Uniqueness = struct @@ -1670,13 +1921,10 @@ module Uniqueness = struct module Obj = struct type const = Const.t - (* the negation of Uniqueness_op gives us the proper uniqueness *) - module Solver = S.Negative - let obj = C.Uniqueness_op end - include Common (Obj) + include Monadic_gen (Obj) let aliased = of_const Aliased @@ -1694,17 +1942,18 @@ module Contention = struct module Obj = struct type const = Const.t - (* the negation of Contention_op gives us the proper contention *) - module Solver = S.Negative - let obj = C.Contention_op end - include Common (Obj) + include Monadic_gen (Obj) let legacy = of_const Const.legacy - let zap_to_legacy = zap_to_floor + (* CR dkalinichenko: ideally, [read] should zap to [shared]. *) + let zap_to_legacy ~visibility = + match visibility with + | Visibility.Const.Read_write | Visibility.Const.Read -> zap_to_floor + | Visibility.Const.Immutable -> zap_to_ceil end module Yielding = struct @@ -1713,47 +1962,64 @@ module Yielding = struct module Obj = struct type const = Const.t - module Solver = S.Positive - let obj = C.Yielding end - include Common (Obj) + include Comonadic_gen (Obj) + + let yielding = of_const Yielding + + let unyielding = of_const Unyielding let legacy = of_const Const.legacy - let zap_to_legacy = zap_to_floor + (* [unyielding] is the default for [global]s and [yielding] for [local] + or [regional] values, so we vary [zap_to_legacy] accordingly. *) + let zap_to_legacy ~global = + match global with true -> zap_to_floor | false -> zap_to_ceil end -let regional_to_local m = - S.Positive.via_monotone Locality.Obj.obj C.Regional_to_local m +let regional_to_local m = S.apply Locality.Obj.obj C.Regional_to_local m let locality_as_regionality m = - S.Positive.via_monotone Regionality.Obj.obj C.Locality_as_regionality m + S.apply Regionality.Obj.obj C.Locality_as_regionality m -let regional_to_global m = - S.Positive.via_monotone Locality.Obj.obj C.Regional_to_global m +let regional_to_global m = S.apply Locality.Obj.obj C.Regional_to_global m module type Areality = sig module Const : C.Areality - module Obj : Obj with type const = Const.t and module Solver = S.Positive + module Obj : Obj with type const = Const.t - val zap_to_legacy : (Const.t, allowed * 'r) Obj.Solver.mode -> Const.t + val zap_to_legacy : (Const.t, allowed * 'r) Solver.mode -> Const.t +end + +module Lattice_Product (L : Lattice) = struct + open L + + type 'a axis = (t, 'a) Axis.t + + let min_with ax c = Axis.set ax c min + + let max_with ax c = Axis.set ax c max + + let min_axis ax = Axis.proj ax min + + let max_axis ax = Axis.proj ax max end module Comonadic_with (Areality : Areality) = struct module Obj = struct - type const = Areality.Obj.const C.comonadic_with - - module Solver = S.Positive + type const = Areality.Const.t C.comonadic_with let obj = C.comonadic_with_obj Areality.Obj.obj end - include Common (Obj) + include Comonadic_gen (Obj) - type error = Error : (Obj.const, 'a) C.Axis.t * 'a Solver.error -> error + type 'a axis = (Obj.const, 'a) C.Axis.t + + type error = Error : 'a axis * 'a Solver.error -> error type equate_error = equate_step * error @@ -1761,27 +2027,16 @@ module Comonadic_with (Areality : Areality) = struct module Const = struct include C.Comonadic_with (Areality.Const) + include Lattice_Product (C.Comonadic_with (Areality.Const)) - let eq a b = le a b && le b a + let print_axis ax ppf a = + let obj = proj_obj ax in + C.print obj ppf a let le_axis ax a b = let obj = proj_obj ax in C.le obj a b - let min_axis ax = - let obj = proj_obj ax in - C.min obj - - let max_axis ax = - let obj = proj_obj ax in - C.max obj - - let max_with ax c = Axis.update ax c (C.max Obj.obj) - - let print_axis ax ppf a = - let obj = proj_obj ax in - C.print obj ppf a - let lattice_of_axis (type a) (axis : (t, a) Axis.t) : (module Lattice with type t = a) = match axis with @@ -1789,36 +2044,29 @@ module Comonadic_with (Areality : Areality) = struct | Linearity -> (module Linearity.Const) | Portability -> (module Portability.Const) | Yielding -> (module Yielding.Const) + | Statefulness -> (module Statefulness.Const) end - let proj ax m = Obj.Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m - - let meet_const c m = Obj.Solver.via_monotone Obj.obj (Meet_with c) m - - let join_const c m = Obj.Solver.via_monotone Obj.obj (Join_with c) m + let proj ax m = Solver.apply (proj_obj ax) (Proj (Obj.obj, ax)) m let min_with ax m = - Obj.Solver.via_monotone Obj.obj (Min_with ax) (Obj.Solver.disallow_right m) + Solver.apply Obj.obj (Min_with ax) (Solver.disallow_right m) let max_with ax m = - Obj.Solver.via_monotone Obj.obj (Max_with ax) (Obj.Solver.disallow_left m) - - let join_with ax c m = join_const (C.min_with Obj.obj ax c) m + Solver.apply Obj.obj (Max_with ax) (Solver.disallow_left m) - let meet_with ax c m = meet_const (C.max_with Obj.obj ax c) m + let meet_with ax c m = meet_const (Const.max_with ax c) m let zap_to_legacy m : Const.t = let areality = proj Areality m |> Areality.zap_to_legacy in let linearity = proj Linearity m |> Linearity.zap_to_legacy in - let portability = proj Portability m |> Portability.zap_to_legacy in - let yielding = proj Yielding m |> Yielding.zap_to_legacy in - { areality; linearity; portability; yielding } - - let imply c m = - Obj.Solver.via_monotone Obj.obj (Imply c) (Obj.Solver.disallow_left m) - - let subtract c m = - Obj.Solver.via_monotone Obj.obj (Subtract c) (Obj.Solver.disallow_right m) + let statefulness = proj Statefulness m |> Statefulness.zap_to_legacy in + let portability = + proj Portability m |> Portability.zap_to_legacy ~statefulness + in + let global = Areality.Const.(equal areality legacy) in + let yielding = proj Yielding m |> Yielding.zap_to_legacy ~global in + { areality; linearity; portability; yielding; statefulness } let legacy = of_const Const.legacy @@ -1827,13 +2075,15 @@ module Comonadic_with (Areality : Areality) = struct { areality = areality1; linearity = linearity1; portability = portability1; - yielding = yielding1 + yielding = yielding1; + statefulness = statefulness1 }; right = { areality = areality2; linearity = linearity2; portability = portability2; - yielding = yielding2 + yielding = yielding2; + statefulness = statefulness2 } } = err @@ -1845,7 +2095,15 @@ module Comonadic_with (Areality : Areality) = struct if Portability.Const.le portability1 portability2 then if Yielding.Const.le yielding1 yielding2 - then assert false + then + if Statefulness.Const.le statefulness1 statefulness2 + then assert false + else + Error + ( Statefulness, + { left = err.left.statefulness; + right = err.right.statefulness + } ) else Error ( Yielding, @@ -1874,19 +2132,18 @@ end [@@inline] module Monadic = struct + (* Monadic lattices are flipped. See "Notes on flipping". *) module Obj = struct type const = C.Monadic_op.t - (* Negative solver on the opposite of monadic should give the monadic - fragment with original ordering *) - module Solver = S.Negative - let obj = C.Monadic_op end - include Common (Obj) + include Monadic_gen (Obj) + + type 'a axis = (Obj.const, 'a) C.Axis.t - type error = Error : (Obj.const, 'a) C.Axis.t * 'a Solver.error -> error + type error = Error : 'a axis * 'a Solver.error -> error type equate_error = equate_step * error @@ -1894,19 +2151,11 @@ module Monadic = struct module Const = struct include C.Monadic + include Lattice_Product (C.Monadic) - (* CR zqian: The flipping logic leaking to here is bad. Refactoring needed. *) - - (* Monadic fragment is flipped, so are the following definitions. *) - let min_with ax c = Axis.update ax c (C.max Obj.obj) - - let min_axis ax = - let obj = proj_obj ax in - C.max obj - - let max_axis ax = + let print_axis ax ppf a = let obj = proj_obj ax in - C.min obj + C.print obj ppf a let le_axis ax a b = let obj = proj_obj ax in @@ -1917,53 +2166,57 @@ module Monadic = struct match axis with | Uniqueness -> (module Uniqueness.Const_op) | Contention -> (module Contention.Const_op) + | Visibility -> (module Visibility.Const_op) end module Const_op = C.Monadic_op - let proj ax m = Obj.Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m - - (* The monadic fragment is inverted. Most of the inversion logic is taken care - by [Solver_polarized], but some remain, such as the [Min_with] below which - is inverted from [Max_with]. *) + let proj ax m = Solver.apply (proj_obj ax) (Proj (Obj.obj, ax)) m - let meet_const c m = Obj.Solver.via_monotone Obj.obj (Join_with c) m - - let join_const c m = Obj.Solver.via_monotone Obj.obj (Meet_with c) m + (* The monadic fragment is inverted. *) let max_with ax m = - Obj.Solver.via_monotone Obj.obj (Min_with ax) (Obj.Solver.disallow_left m) + Solver.apply Obj.obj (Min_with ax) (Solver.disallow_right m) let min_with ax m = - Obj.Solver.via_monotone Obj.obj (Max_with ax) (Obj.Solver.disallow_right m) - - let join_with ax c m = join_const (C.max_with Obj.obj ax c) m - - let meet_with ax c m = meet_const (C.min_with Obj.obj ax c) m + Solver.apply Obj.obj (Max_with ax) (Solver.disallow_left m) - let imply c m = - Obj.Solver.via_monotone Obj.obj (Subtract c) (Obj.Solver.disallow_left m) - - let subtract c m = - Obj.Solver.via_monotone Obj.obj (Imply c) (Obj.Solver.disallow_right m) + let join_with ax c m = join_const (Const.min_with ax c) m let zap_to_legacy m : Const.t = let uniqueness = proj Uniqueness m |> Uniqueness.zap_to_legacy in - let contention = proj Contention m |> Contention.zap_to_legacy in - { uniqueness; contention } + let visibility = proj Visibility m |> Visibility.zap_to_legacy in + let contention = + proj Contention m |> Contention.zap_to_legacy ~visibility + in + { uniqueness; contention; visibility } let legacy = of_const Const.legacy let axis_of_error (err : Obj.const Solver.error) : error = - let { left = { uniqueness = uniqueness1; contention = contention1 }; - right = { uniqueness = uniqueness2; contention = contention2 } + let { left = + { uniqueness = uniqueness1; + contention = contention1; + visibility = visibility1 + }; + right = + { uniqueness = uniqueness2; + contention = contention2; + visibility = visibility2 + } } = err in if Uniqueness.Const.le uniqueness1 uniqueness2 then if Contention.Const.le contention1 contention2 - then assert false + then + if Visibility.Const.le visibility1 visibility2 + then assert false + else + Error + ( Visibility, + { left = err.left.visibility; right = err.right.visibility } ) else Error ( Contention, @@ -2002,61 +2255,84 @@ module Value_with (Areality : Areality) = struct type lr = (allowed * allowed) t - type ('m, 'a, 'd) axis = - | Monadic : - (Monadic.Const.t, 'a) Axis.t - -> (('a, 'd) mode_monadic, 'a, 'd) axis - | Comonadic : - (Comonadic.Const.t, 'a) Axis.t - -> (('a, 'd) mode_comonadic, 'a, 'd) axis - - type 'd axis_packed = P : ('m, 'a, 'd) axis -> 'd axis_packed - - let print_axis (type m a d) ppf (axis : (m, a, d) axis) = - match axis with - | Monadic ax -> Axis.print ppf ax - | Comonadic ax -> Axis.print ppf ax - - let lattice_of_axis (type m a d) (axis : (m, a, d) axis) : - (module Lattice with type t = a) = - match axis with - | Comonadic ax -> Comonadic.Const.lattice_of_axis ax - | Monadic ax -> Monadic.Const.lattice_of_axis ax - - let all_axes = - [ P (Comonadic Areality); - P (Monadic Uniqueness); - P (Comonadic Linearity); - P (Monadic Contention); - P (Comonadic Portability) ] - - let proj_obj : type m a d. (m, a, d) axis -> a C.obj = function + module Axis = struct + type ('a, 'd0, 'd1) t = + | Monadic : (Monadic.Const.t, 'a) Axis.t -> ('a, 'd, 'd neg) t + | Comonadic : (Comonadic.Const.t, 'a) Axis.t -> ('a, 'd, 'd pos) t + + let compare : type a d0 d1 b e0 e1. (a, d0, d1) t -> (b, e0, e1) t -> int = + fun t0 t1 -> + match t0, t1 with + | Monadic t0, Monadic t1 -> Axis.compare t0 t1 + | Monadic _, Comonadic _ -> 1 + | Comonadic _, Monadic _ -> -1 + | Comonadic t0, Comonadic t1 -> Axis.compare t0 t1 + + type packed = P : (_, _, _) t -> packed + + let print (type a d0 d1) ppf (t : (a, d0, d1) t) = + match t with + | Monadic ax -> Axis.print ppf ax + | Comonadic ax -> Axis.print ppf ax + + let all = + [ P (Comonadic Areality); + P (Comonadic Linearity); + P (Monadic Uniqueness); + P (Comonadic Portability); + P (Monadic Contention); + P (Comonadic Yielding); + P (Comonadic Statefulness); + P (Monadic Visibility) ] + |> List.sort (fun (P ax0) (P ax1) -> compare ax0 ax1) + end + + let proj_obj : type a d0 d1. (a, d0, d1) Axis.t -> a C.obj = function | Monadic ax -> Monadic.proj_obj ax | Comonadic ax -> Comonadic.proj_obj ax - type ('a, 'b, 'c, 'd, 'e, 'f) modes = + type ('a, 'b, 'c, 'd, 'e, 'f, 'g, 'h) modes = { areality : 'a; linearity : 'b; uniqueness : 'c; portability : 'd; contention : 'e; - yielding : 'f + yielding : 'f; + statefulness : 'g; + visibility : 'h } let split - { areality; linearity; portability; yielding; uniqueness; contention } = - let monadic : Monadic.Const.t = { uniqueness; contention } in + { areality; + linearity; + portability; + yielding; + statefulness; + uniqueness; + contention; + visibility + } = + let monadic : Monadic.Const.t = { uniqueness; contention; visibility } in let comonadic : Comonadic.Const.t = - { areality; linearity; portability; yielding } + { areality; linearity; portability; yielding; statefulness } in { comonadic; monadic } let merge { comonadic; monadic } = - let ({ areality; linearity; portability; yielding } : Comonadic.Const.t) = + let ({ areality; linearity; portability; yielding; statefulness } + : Comonadic.Const.t) = comonadic in - let ({ uniqueness; contention } : Monadic.Const.t) = monadic in - { areality; linearity; portability; yielding; uniqueness; contention } + let ({ uniqueness; contention; visibility } : Monadic.Const.t) = monadic in + { areality; + linearity; + portability; + yielding; + statefulness; + uniqueness; + contention; + visibility + } let print ?verbose () ppf { monadic; comonadic } = Format.fprintf ppf "%a;%a" @@ -2081,7 +2357,9 @@ module Value_with (Areality : Areality) = struct Uniqueness.Const.t, Portability.Const.t, Contention.Const.t, - Yielding.Const.t ) + Yielding.Const.t, + Statefulness.Const.t, + Visibility.Const.t ) modes let min = merge { comonadic = Comonadic.min; monadic = Monadic.min } @@ -2120,6 +2398,12 @@ module Value_with (Areality : Areality) = struct let comonadic = Comonadic.join m0.comonadic m1.comonadic in merge { monadic; comonadic } + let lattice_of_axis (type a d0 d1) (axis : (a, d0, d1) Axis.t) : + (module Lattice with type t = a) = + match axis with + | Comonadic ax -> Comonadic.lattice_of_axis ax + | Monadic ax -> Monadic.lattice_of_axis ax + module Option = struct type some = t @@ -2129,7 +2413,9 @@ module Value_with (Areality : Areality) = struct Uniqueness.Const.t option, Portability.Const.t option, Contention.Const.t option, - Yielding.Const.t option ) + Yielding.Const.t option, + Statefulness.Const.t option, + Visibility.Const.t option ) modes let none = @@ -2138,7 +2424,9 @@ module Value_with (Areality : Areality) = struct linearity = None; portability = None; contention = None; - yielding = None + yielding = None; + statefulness = None; + visibility = None } let value opt ~default = @@ -2154,16 +2442,37 @@ module Value_with (Areality : Areality) = struct Option.value opt.contention ~default:default.contention in let yielding = Option.value opt.yielding ~default:default.yielding in - { areality; uniqueness; linearity; portability; contention; yielding } + let statefulness = + Option.value opt.statefulness ~default:default.statefulness + in + let visibility = + Option.value opt.visibility ~default:default.visibility + in + { areality; + uniqueness; + linearity; + portability; + contention; + yielding; + statefulness; + visibility + } let print ppf - { areality; uniqueness; linearity; portability; contention; yielding } - = + { areality; + uniqueness; + linearity; + portability; + contention; + yielding; + statefulness; + visibility + } = let option_print print ppf = function | None -> Format.fprintf ppf "None" | Some a -> Format.fprintf ppf "Some %a" print a in - Format.fprintf ppf "%a,%a,%a,%a,%a,%a" + Format.fprintf ppf "%a,%a,%a,%a,%a,%a,%a,%a" (option_print Areality.Const.print) areality (option_print Linearity.Const.print) @@ -2176,6 +2485,10 @@ module Value_with (Areality : Areality) = struct contention (option_print Yielding.Const.print) yielding + (option_print Statefulness.Const.print) + statefulness + (option_print Visibility.Const.print) + visibility end let diff m0 m1 = @@ -2188,7 +2501,19 @@ module Value_with (Areality : Areality) = struct in let contention = diff Contention.Const.le m0.contention m1.contention in let yielding = diff Yielding.Const.le m0.yielding m1.yielding in - { areality; linearity; uniqueness; portability; contention; yielding } + let statefulness = + diff Statefulness.Const.le m0.statefulness m1.statefulness + in + let visibility = diff Visibility.Const.le m0.visibility m1.visibility in + { areality; + linearity; + uniqueness; + portability; + contention; + yielding; + statefulness; + visibility + } (** See [Alloc.close_over] for explanation. *) let close_over m = @@ -2208,29 +2533,29 @@ module Value_with (Areality : Areality) = struct let monadic = Monadic.min in merge { comonadic; monadic } - let print_axis : type m a d. (m, a, d) axis -> _ -> a -> unit = + let print_axis : type a. (a, _, _) Axis.t -> _ -> a -> unit = fun ax ppf a -> let obj = proj_obj ax in C.print obj ppf a - let le_axis : type m a d. (m, a, d) axis -> a -> a -> bool = + let le_axis : type a d0 d1. (a, d0, d1) Axis.t -> a -> a -> bool = fun ax m0 m1 -> match ax with | Comonadic ax -> Comonadic.le_axis ax m0 m1 | Monadic ax -> Monadic.le_axis ax m0 m1 - let min_axis : type m a d. (m, a, d) axis -> a = function + let min_axis : type a d0 d1. (a, d0, d1) Axis.t -> a = function | Comonadic ax -> Comonadic.min_axis ax | Monadic ax -> Monadic.min_axis ax - let max_axis : type m a d. (m, a, d) axis -> a = function + let max_axis : type a d0 d1. (a, d0, d1) Axis.t -> a = function | Comonadic ax -> Comonadic.max_axis ax | Monadic ax -> Monadic.max_axis ax - let is_max : type m a d. (m, a, d) axis -> a -> bool = + let is_max : type a d0 d1. (a, d0, d1) Axis.t -> a -> bool = fun ax m -> le_axis ax (max_axis ax) m - let is_min : type m a d. (m, a, d) axis -> a -> bool = + let is_min : type a d0 d1. (a, d0, d1) Axis.t -> a -> bool = fun ax m -> le_axis ax m (min_axis ax) let split = split @@ -2281,7 +2606,7 @@ module Value_with (Areality : Areality) = struct let monadic, b1 = Monadic.newvar_below monadic in { monadic; comonadic }, b0 || b1 - type error = Error : ('m, 'a, 'd) axis * 'a Solver.error -> error + type error = Error : ('a, _, _) Axis.t * 'a Solver.error -> error type equate_error = equate_step * error @@ -2317,7 +2642,9 @@ module Value_with (Areality : Areality) = struct let proj_comonadic ax { comonadic; _ } = Comonadic.proj ax comonadic - let proj : type m a l r. (m, a, l * r) axis -> (l * r) t -> m = + let proj : + type a l0 l1 r0 r1. + (a, l0 * r0, l1 * r1) Axis.t -> (l0 * r0) t -> (a, l1 * r1) mode = fun ax m -> match ax with | Monadic ax -> proj_monadic ax m @@ -2335,7 +2662,9 @@ module Value_with (Areality : Areality) = struct let monadic = Monadic.max |> Monadic.disallow_left |> Monadic.allow_right in { comonadic; monadic } - let max_with : type m a l r. (m, a, l * r) axis -> m -> (disallowed * r) t = + let max_with : + type a l0 l1 r0 r1. + (a, l0 * r0, l1 * r1) Axis.t -> (a, l1 * r1) mode -> (disallowed * r0) t = fun ax m -> match ax with | Monadic ax -> max_with_monadic ax m @@ -2353,42 +2682,22 @@ module Value_with (Areality : Areality) = struct let monadic = Monadic.min |> Monadic.disallow_right |> Monadic.allow_left in { comonadic; monadic } - let min_with : type m a l r. (m, a, l * r) axis -> m -> (l * disallowed) t = + let min_with : + type a l0 l1 r0 r1. + (a, l0 * r0, l1 * r1) Axis.t -> (a, l1 * r1) mode -> (l0 * disallowed) t = fun ax m -> match ax with | Monadic ax -> min_with_monadic ax m | Comonadic ax -> min_with_comonadic ax m - let join_with_monadic ax c { monadic; comonadic } = + let join_with ax c { monadic; comonadic } = let monadic = Monadic.join_with ax c monadic in { monadic; comonadic } - let join_with_comonadic ax c { monadic; comonadic } = - let comonadic = Comonadic.join_with ax c comonadic in - { comonadic; monadic } - - let join_with : type m a d l r. (m, a, d) axis -> a -> (l * r) t -> (l * r) t - = - fun ax c m -> - match ax with - | Monadic ax -> join_with_monadic ax c m - | Comonadic ax -> join_with_comonadic ax c m - - let meet_with_monadic ax c { monadic; comonadic } = - let monadic = Monadic.meet_with ax c monadic in - { monadic; comonadic } - - let meet_with_comonadic ax c { monadic; comonadic } = + let meet_with ax c { monadic; comonadic } = let comonadic = Comonadic.meet_with ax c comonadic in { comonadic; monadic } - let meet_with : type m a d l r. (m, a, d) axis -> a -> (l * r) t -> (l * r) t - = - fun ax c m -> - match ax with - | Monadic ax -> meet_with_monadic ax c m - | Comonadic ax -> meet_with_comonadic ax c m - let join l = let como, mo = List.fold_left @@ -2412,35 +2721,17 @@ module Value_with (Areality : Areality) = struct { comonadic; monadic } let comonadic_to_monadic m = - S.Negative.via_antitone Monadic.Obj.obj - (Comonadic_to_monadic Comonadic.Obj.obj) m + S.apply Monadic.Obj.obj (Comonadic_to_monadic Comonadic.Obj.obj) m let monadic_to_comonadic_min m = - S.Positive.via_antitone Comonadic.Obj.obj Monadic_to_comonadic_min - (Monadic.disallow_left m) + S.apply Comonadic.Obj.obj Monadic_to_comonadic_min (Monadic.disallow_left m) let meet_const c { comonadic; monadic } = - let c = split c in - let comonadic = Comonadic.meet_const c.comonadic comonadic in - let monadic = Monadic.meet_const c.monadic monadic in - { monadic; comonadic } - - let imply c { comonadic; monadic } = - let c = split c in - let comonadic = Comonadic.imply c.comonadic comonadic in - let monadic = Monadic.imply c.monadic monadic in + let comonadic = Comonadic.meet_const c comonadic in { monadic; comonadic } let join_const c { comonadic; monadic } = - let c = split c in - let comonadic = Comonadic.join_const c.comonadic comonadic in - let monadic = Monadic.join_const c.monadic monadic in - { monadic; comonadic } - - let subtract c { comonadic; monadic } = - let c = split c in - let comonadic = Comonadic.subtract c.comonadic comonadic in - let monadic = Monadic.subtract c.monadic monadic in + let monadic = Monadic.join_const c monadic in { monadic; comonadic } let zap_to_ceil { comonadic; monadic } = @@ -2448,6 +2739,11 @@ module Value_with (Areality : Areality) = struct let comonadic = Comonadic.zap_to_ceil comonadic in merge { monadic; comonadic } + let zap_to_floor { comonadic; monadic } = + let monadic = Monadic.zap_to_floor monadic in + let comonadic = Comonadic.zap_to_floor comonadic in + merge { monadic; comonadic } + let zap_to_legacy { comonadic; monadic } = let monadic = Monadic.zap_to_legacy monadic in let comonadic = Comonadic.zap_to_legacy comonadic in @@ -2498,32 +2794,48 @@ module Alloc = Value_with (Locality) module Const = struct let alloc_as_value - ({ areality; linearity; portability; uniqueness; contention; yielding } : + ({ areality; + linearity; + portability; + uniqueness; + contention; + yielding; + statefulness; + visibility + } : Alloc.Const.t) : Value.Const.t = let areality = C.locality_as_regionality areality in - { areality; linearity; portability; uniqueness; contention; yielding } + { areality; + linearity; + portability; + uniqueness; + contention; + yielding; + statefulness; + visibility + } module Axis = struct - let alloc_as_value : type d. d Alloc.axis_packed -> d Value.axis_packed = - function + let alloc_as_value : Alloc.Axis.packed -> Value.Axis.packed = function | P (Comonadic Areality) -> P (Comonadic Areality) | P (Comonadic Linearity) -> P (Comonadic Linearity) | P (Comonadic Portability) -> P (Comonadic Portability) | P (Comonadic Yielding) -> P (Comonadic Yielding) + | P (Comonadic Statefulness) -> P (Comonadic Statefulness) | P (Monadic Uniqueness) -> P (Monadic Uniqueness) | P (Monadic Contention) -> P (Monadic Contention) + | P (Monadic Visibility) -> P (Monadic Visibility) end let locality_as_regionality = C.locality_as_regionality end let comonadic_locality_as_regionality comonadic = - S.Positive.via_monotone Value.Comonadic.Obj.obj - (Map_comonadic Locality_as_regionality) comonadic + S.apply Value.Comonadic.Obj.obj (Map_comonadic Locality_as_regionality) + comonadic let comonadic_regional_to_local comonadic = - S.Positive.via_monotone Alloc.Comonadic.Obj.obj - (Map_comonadic Regional_to_local) comonadic + S.apply Alloc.Comonadic.Obj.obj (Map_comonadic Regional_to_local) comonadic let alloc_as_value m = let { comonadic; monadic } = m in @@ -2533,8 +2845,7 @@ let alloc_as_value m = let alloc_to_value_l2r m = let { comonadic; monadic } = Alloc.disallow_right m in let comonadic = - S.Positive.via_monotone Value.Comonadic.Obj.obj - (Map_comonadic Local_to_regional) comonadic + S.apply Value.Comonadic.Obj.obj (Map_comonadic Local_to_regional) comonadic in { comonadic; monadic } @@ -2542,8 +2853,7 @@ let value_to_alloc_r2g : type l r. (l * r) Value.t -> (l * r) Alloc.t = fun m -> let { comonadic; monadic } = m in let comonadic = - S.Positive.via_monotone Alloc.Comonadic.Obj.obj - (Map_comonadic Regional_to_global) comonadic + S.apply Alloc.Comonadic.Obj.obj (Map_comonadic Regional_to_global) comonadic in { comonadic; monadic } @@ -2553,11 +2863,11 @@ let value_to_alloc_r2l m = { comonadic; monadic } module Modality = struct - type ('m, 'a) raw = - | Meet_with : 'a -> (('a, 'l * 'r) mode_comonadic, 'a) raw - | Join_with : 'a -> (('a, 'l * 'r) mode_monadic, 'a) raw + type 'a raw = + | Meet_with : 'a -> 'a raw + | Join_with : 'a -> 'a raw - type t = Atom : ('m, 'a, _) Value.axis * ('m, 'a) raw -> t + type t = Atom : ('a, _, _) Value.Axis.t * 'a raw -> t let is_id (Atom (ax, a)) = match a with @@ -2575,13 +2885,68 @@ module Modality = struct | Atom (ax, Meet_with c) -> Format.fprintf ppf "meet_with(%a)" (C.print (Value.proj_obj ax)) c + (* Inferred modalities + + Similar to constant modalities, an inferred modality maps the mode of a + record/structure to the mode of a value therein. An inferred modality [f] + is inferred from the structure/record mode [mm] and the value mode [m]. It + will only be applied on some [x >= mm]: That is, it will only be applied + on the original module. + + It should satisfy the following conditions: + + Zapping: [f] should be of the form [join_c] for monadic axes, or [meet_c] + for comonadic axes. + + Soundness: You should not get a value from a record/structure at a mode + strictly stronger than how it was put in. That is, for any [x >= mm], [f x + >= m]. + + Completeness: Ideally we also want [f mm <= m]. + + Monadic axes + + Soundness condition says [join_c x >= m] for any [x >= mm]. Equivalently, + [join_c mm >= m]. By adjunction, [c >= subtract_mm m]. We take the lower + bound [c := subtract_mm m]. Note that this is equivalent to taking [c := m + >= subtract_mm m]. Proof: + + - [join_m x >= join_(subtract_mm m) x] is trivial since [m >= subtract_mm + m]. + - [join_m x <= join_(subtract_mm m) x], or equivalently [m <= + join_(subtract_mm m) x], or equivalently [subtract_x m <= subtract_mm m], + which is trivial since [x >= mm]. + + Taking [c := subtract_mm m] is better for zapping since it's lower and + thus closer to identity modality. Taking [c := m] is easier for [apply] + and [sub]. + + Comonadic axes + + Soundness condition says [meet_c x >= m] for any [x >= mm]. Equivalently, + [meet_c mm >= m]. By def. of [meet], we have both [c >= m] and [mm >= m]. + The latter is guaranteed by the user of [infer]. We guarantee the former + by taking [c := imply_mm m >= m]. One might worry that this is too relaxed + and will be "less complete" than taking [c := m]; however, note that + [imply_mm m <= imply_mm m] and thus by adjunction [meet_(imply_mm m) mm <= + m], which means the chosen [c] is complete. + + Taking [c := m] is easier for [apply] and [sub]. Taking [c := imply_mm m] + is better for zapping since it's higher and thus closer to identity + modality. However, note that we DON'T have [meet_m x = meet_(imply_mm m) + x], which means [apply/sub] and [zap] might behave in a confusing (albeit + sound) manner. + + CR zqian: once we support binary mode solver, [c := imply_mm m] will be + used uniformly by [apply] [sub] and [zap]. + *) + module Monadic = struct module Mode = Value.Monadic - type 'a axis = (Mode.Const.t, 'a) Axis.t + type 'a axis = 'a Mode.axis - type error = - | Error : 'a axis * (('a, _) mode_monadic, 'a) raw Solver.error -> error + type error = Error : 'a axis * 'a raw Solver.error -> error module Const = struct type t = Join_const of Mode.Const.t @@ -2604,14 +2969,6 @@ module Modality = struct Error (Error (ax, { left = Join_with left; right = Join_with right })) - let compose : - type a l r. a axis -> ((a, l * r) mode_monadic, a) raw -> t -> t = - fun ax a t -> - match a, t with - | Join_with c0, Join_const c -> - Join_const (Mode.Const.join (Mode.Const.min_with ax c0) c) - | Meet_with _, Join_const _ -> assert false - let concat ~then_ t = match then_, t with | Join_const c0, Join_const c1 -> Join_const (Mode.Const.join c0 c1) @@ -2619,34 +2976,20 @@ module Modality = struct let apply : type l r. t -> (l * r) Mode.t -> (l * r) Mode.t = fun t x -> match t with Join_const c -> Mode.join_const c x - let to_list = function - | Join_const c -> - [ (let ax : _ Axis.t = Uniqueness in - Atom (Monadic ax, Join_with (Axis.proj ax c))); - (let ax : _ Axis.t = Contention in - Atom (Monadic ax, Join_with (Axis.proj ax c))) ] + let proj ax (Join_const c) = Join_with (Axis.proj ax c) - let proj ax = function - | Join_const c -> Atom (Monadic ax, Join_with (Axis.proj ax c)) + let set ax a (Join_const c) = + match a with + | Join_with a -> Join_const (Axis.set ax a c) + | Meet_with _ -> assert false let print ppf = function | Join_const c -> Format.fprintf ppf "join_const(%a)" Mode.Const.print c end - (* Similar to constant modalities, an inferred modality maps the mode of a - record/structure to the mode of a value therein. An inferred modality [f] is - inferred from the structure/record mode [mm] and the value mode [m]. - - Soundness: You should not get a value from a record/structure at a mode strictly - stronger than how it was put in. That is, [f mm >= m]. - - Completeness: You should be able to get a value from a record/structure at a mode - not strictly weaker than how it was put in. That is, [f mm <= m]. *) - type t = | Const of Const.t - | Diff of Mode.lr * Mode.lr - (** inferred modality. See [apply] for its behavior. *) + | Diff of Mode.lr * Mode.lr (** See "Inferred modalities" comments *) | Undefined let sub_log left right ~log : (unit, error) Result.t = @@ -2733,10 +3076,9 @@ module Modality = struct module Comonadic = struct module Mode = Value.Comonadic - type 'a axis = (Mode.Const.t, 'a) Axis.t + type 'a axis = 'a Mode.axis - type error = - | Error : 'a axis * (('a, _) mode_comonadic, 'a) raw Solver.error -> error + type error = Error : 'a axis * 'a raw Solver.error -> error module Const = struct type t = Meet_const of Mode.Const.t @@ -2759,14 +3101,6 @@ module Modality = struct Error (Error (ax, { left = Meet_with left; right = Meet_with right })) - let compose : - type a l r. a axis -> ((a, l * r) mode_comonadic, a) raw -> t -> t = - fun ax a t -> - match a, t with - | Meet_with c0, Meet_const c -> - Meet_const (Mode.Const.meet (Mode.Const.max_with ax c0) c) - | Join_with _, Meet_const _ -> assert false - let concat ~then_ t = match then_, t with | Meet_const c0, Meet_const c1 -> Meet_const (Mode.Const.meet c0 c1) @@ -2774,19 +3108,12 @@ module Modality = struct let apply : type l r. t -> (l * r) Mode.t -> (l * r) Mode.t = fun t x -> match t with Meet_const c -> Mode.meet_const c x - let to_list = function - | Meet_const c -> - [ (let ax : _ Axis.t = Areality in - Atom (Comonadic ax, Meet_with (Axis.proj ax c))); - (let ax : _ Axis.t = Linearity in - Atom (Comonadic ax, Meet_with (Axis.proj ax c))); - (let ax : _ Axis.t = Portability in - Atom (Comonadic ax, Meet_with (Axis.proj ax c))); - (let ax : _ Axis.t = Yielding in - Atom (Comonadic ax, Meet_with (Axis.proj ax c))) ] + let proj ax (Meet_const c) = Meet_with (Axis.proj ax c) - let proj ax = function - | Meet_const c -> Atom (Comonadic ax, Meet_with (Axis.proj ax c)) + let set ax a (Meet_const c) = + match a with + | Meet_with a -> Meet_const (Axis.set ax a c) + | Join_with _ -> assert false let print ppf = function | Meet_const c -> Format.fprintf ppf "meet_const(%a)" Mode.Const.print c @@ -2795,17 +3122,19 @@ module Modality = struct type t = | Const of Const.t | Undefined - | Exactly of Mode.lr * Mode.lr - (** inferred modality. See [apply] for its behavior. *) + | Exactly of Mode.lr * Mode.lr (** See "Inferred modalities" comments *) let sub_log left right ~log : (unit, error) Result.t = match left, right with | Const c0, Const c1 -> Const.sub c0 c1 | Exactly (_mm, m), Const (Meet_const c) -> ( - (* Check for all x >= mm, m <= meet x c. Equivalent to check [m <= meet - mm c]. By definition of meet, equivalent to check [m <= mm] and [m <= - c]. The former is the precondition of [Exactly]. So we only check the - latter. *) + (* Check for all [x >= mm], [meet_(imply_mm m) x <= meet_c x], or + equivalently [meet_(imply_mm m) x <= c], or equivalently [meet_(imply_mm + m) max <= c], or equivalently [imply_mm m <= c]. We can't check this + without binary mode solver. + + So instead we check [meet_m x <= meet_c x] (See "Inferred modalities" + comments), which amounts to [m <= c]. *) match Mode.submode_log m (Mode.of_const c) ~log with | Ok () -> Ok () | Error (Error (ax, { left; _ })) -> @@ -2834,7 +3163,12 @@ module Modality = struct | Const c -> Const.apply c x |> Mode.disallow_right | Undefined -> Misc.fatal_error "modality Undefined should not be applied." - | Exactly (_mm, m) -> Mode.disallow_right m + | Exactly (_mm, m) -> + (* Ideally want to return [meet_(imply_mm m) x], which we can't do + without binary mode solver, so instead we return [meet_m x] (See + "Inferred modalities" comments), which because of [x >= mm >= m] is + equal to [m]. *) + Mode.disallow_right m let print ppf = function | Const c -> Const.print ppf c @@ -2892,7 +3226,7 @@ module Modality = struct module Value = struct type error = - | Error : ('m, 'a, _) Value.axis * ('m, 'a) raw Solver.error -> error + | Error : ('a, _, _) Value.Axis.t * 'a raw Solver.error -> error type equate_error = equate_step * error @@ -2922,32 +3256,35 @@ module Modality = struct let comonadic = Comonadic.apply t.comonadic comonadic in { monadic; comonadic } - let compose ~then_:(Atom (ax, a)) t = - match ax with - | Monadic ax -> - let monadic = Monadic.compose ax a t.monadic in - { t with monadic } - | Comonadic ax -> - let comonadic = Comonadic.compose ax a t.comonadic in - { t with comonadic } - let concat ~then_ t = let monadic = Monadic.concat ~then_:then_.monadic t.monadic in let comonadic = Comonadic.concat ~then_:then_.comonadic t.comonadic in { monadic; comonadic } - let of_list = List.fold_left (fun m atom -> compose m ~then_:atom) id - - let singleton a = compose ~then_:a id - - let to_list { monadic; comonadic } = - Comonadic.to_list comonadic @ Monadic.to_list monadic - - let proj (type m a d) (ax : (m, a, d) Value.axis) { monadic; comonadic } = + let proj (type a d0 d1) (ax : (a, d0, d1) Value.Axis.t) + { monadic; comonadic } = match ax with | Monadic ax -> Monadic.proj ax monadic | Comonadic ax -> Comonadic.proj ax comonadic + let set (type a d0 d1) (ax : (a, d0, d1) Value.Axis.t) (a : a raw) + { monadic; comonadic } = + match ax with + | Monadic ax -> + let monadic = Monadic.set ax a monadic in + { monadic; comonadic } + | Comonadic ax -> + let comonadic = Comonadic.set ax a comonadic in + { monadic; comonadic } + + let diff t0 t1 = + List.filter_map + (fun (Value.Axis.P ax) -> + let a0 = proj ax t0 in + let a1 = proj ax t1 in + if a0 = a1 then None else Some (Atom (ax, a1))) + Value.Axis.all + let print ppf { monadic; comonadic } = Format.fprintf ppf "%a;%a" Monadic.print monadic Comonadic.print comonadic @@ -3168,8 +3505,12 @@ module Crossing = struct | Modality.Atom (ax, Meet_with c) -> C.print (Value.proj_obj ax) ppf c in let l = - t |> Modality.Value.Const.to_list - |> List.filter (fun t -> not @@ Modality.is_id t) + List.filter_map + (fun (Value.Axis.P ax) -> + let a = Modality.Value.Const.proj ax t in + let a = Modality.Atom (ax, a) in + if Modality.is_id a then None else Some a) + Value.Axis.all in Format.(pp_print_list ~pp_sep:pp_print_space print_atom ppf l) end diff --git a/src/ocaml/typing/mode_intf.mli b/src/ocaml/typing/mode_intf.mli index 040f9b7b9..9e4328d83 100644 --- a/src/ocaml/typing/mode_intf.mli +++ b/src/ocaml/typing/mode_intf.mli @@ -39,6 +39,30 @@ module type Lattice = sig val print : Format.formatter -> t -> unit end +module type Lattice_product = sig + include Lattice + + type 'a axis + + (** [min_axis ax] returns the [min] for the [ax] axis. *) + val min_axis : 'a axis -> 'a + + (** [max_axis ax] returns the [max] for the [ax] axis. *) + val max_axis : 'a axis -> 'a + + (** [min_with ax elt] returns [min] but with the axis [ax] set to [elt]. *) + val min_with : 'a axis -> 'a -> t + + (** [max_with ax elt] returns [max] but with the axis [ax] set to [elt]. *) + val max_with : 'a axis -> 'a -> t + + (** [le_axis ax] returns the [le] function for the [ax] axis. *) + val le_axis : 'a axis -> 'a -> 'a -> bool + + (** [print_axis ax] returns the [print] function for the [ax] axis. *) + val print_axis : 'a axis -> Format.formatter -> 'a -> unit +end + type equate_step = | Left_le_right | Right_le_left @@ -93,6 +117,27 @@ module type Common = sig val print : ?verbose:bool -> unit -> Format.formatter -> ('l * 'r) t -> unit val of_const : Const.t -> ('l * 'r) t + + val zap_to_ceil : ('l * allowed) t -> Const.t + + val zap_to_floor : (allowed * 'r) t -> Const.t +end + +module type Common_axis = sig + module Const : Lattice + + include + Common with module Const := Const and type error = Const.t Solver.error +end + +module type Common_product = sig + type 'a axis + + module Const : Lattice_product with type 'a axis = 'a axis + + type error = Error : 'a axis * 'a Solver.error -> error + + include Common with type error := error and module Const := Const end module type S = sig @@ -108,9 +153,7 @@ module type S = sig type nonrec equate_step = equate_step - type ('a, 'd) mode_monadic constraint 'd = 'l * 'r - - type ('a, 'd) mode_comonadic constraint 'd = 'l * 'r + type ('a, 'd) mode constraint 'd = 'l * 'r type ('a, 'b) monadic_comonadic = { monadic : 'a; @@ -126,22 +169,15 @@ module type S = sig include Lattice with type t := t end - type error = Const.t Solver.error - include - Common + Common_axis with module Const := Const - and type error := error - and type 'd t = (Const.t, 'd) mode_comonadic + and type 'd t = (Const.t, 'd pos) mode val global : lr val local : lr - val zap_to_floor : (allowed * 'r) t -> Const.t - - val zap_to_ceil : ('l * allowed) t -> Const.t - module Guts : sig (** This module exposes some functions that allow callers to inspect modes directly, which could be useful for error printing and dev tools (such as @@ -169,13 +205,10 @@ module type S = sig include Lattice with type t := t end - type error = Const.t Solver.error - include - Common + Common_axis with module Const := Const - and type error := error - and type 'd t = (Const.t, 'd) mode_comonadic + and type 'd t = (Const.t, 'd pos) mode val global : lr @@ -193,13 +226,10 @@ module type S = sig include Lattice with type t := t end - type error = Const.t Solver.error - include - Common + Common_axis with module Const := Const - and type error := error - and type 'd t = (Const.t, 'd) mode_comonadic + and type 'd t = (Const.t, 'd pos) mode val many : lr @@ -215,13 +245,10 @@ module type S = sig include Lattice with type t := t end - type error = Const.t Solver.error - include - Common + Common_axis with module Const := Const - and type error := error - and type 'd t = (Const.t, 'd) mode_comonadic + and type 'd t = (Const.t, 'd pos) mode end module Uniqueness : sig @@ -235,19 +262,14 @@ module type S = sig module Const_op : Lattice with type t = Const.t - type error = Const.t Solver.error - include - Common + Common_axis with module Const := Const - and type error := error - and type 'd t = (Const.t, 'd) mode_monadic + and type 'd t = (Const.t, 'd neg) mode val aliased : lr val unique : lr - - val zap_to_ceil : ('l * allowed) t -> Const.t end module Contention : sig @@ -262,13 +284,10 @@ module type S = sig module Const_op : Lattice with type t = Const.t - type error = Const.t Solver.error - include - Common + Common_axis with module Const := Const - and type error := error - and type 'd t = (Const.t, 'd) mode_monadic + and type 'd t = (Const.t, 'd neg) mode end module Yielding : sig @@ -280,36 +299,89 @@ module type S = sig include Lattice with type t := t end - type error = Const.t Solver.error + include + Common_axis + with module Const := Const + and type 'd t = (Const.t, 'd pos) mode + + val yielding : lr + + val unyielding : lr + end + + module Statefulness : sig + module Const : sig + type t = + | Stateless + | Observing + | Stateful + + include Lattice with type t := t + end include - Common + Common_axis with module Const := Const - and type error := error - and type 'd t = (Const.t, 'd) mode_comonadic + and type 'd t = (Const.t, 'd pos) mode + + val stateless : lr + + val observing : lr + + val stateful : lr + end + + module Visibility : sig + module Const : sig + type t = + | Immutable + | Read + | Read_write + + include Lattice with type t := t + end + + module Const_op : Lattice with type t = Const.t + + include + Common_axis + with module Const := Const + and type 'd t = (Const.t, 'd neg) mode + + val immutable : lr + + val read : lr + + val read_write : lr end type 'a comonadic_with = { areality : 'a; linearity : Linearity.Const.t; portability : Portability.Const.t; - yielding : Yielding.Const.t + yielding : Yielding.Const.t; + statefulness : Statefulness.Const.t } type monadic = { uniqueness : Uniqueness.Const.t; - contention : Contention.Const.t + contention : Contention.Const.t; + visibility : Visibility.Const.t } module Axis : sig (** ('p, 'r) t represents a projection from a product of type ['p] to an - element of type ['r]. *) + element of type ['r]. + + NB: must listed in the order of axis implication. See [typemode.ml]. *) type ('p, 'r) t = | Areality : ('a comonadic_with, 'a) t + | Yielding : ('areality comonadic_with, Yielding.Const.t) t | Linearity : ('areality comonadic_with, Linearity.Const.t) t + | Statefulness : ('areality comonadic_with, Statefulness.Const.t) t | Portability : ('areality comonadic_with, Portability.Const.t) t - | Yielding : ('areality comonadic_with, Yielding.Const.t) t | Uniqueness : (monadic, Uniqueness.Const.t) t + | Visibility : (monadic, Visibility.Const.t) t | Contention : (monadic, Contention.Const.t) t val print : Format.formatter -> ('p, 'r) t -> unit @@ -321,68 +393,48 @@ module type S = sig module Areality : Common module Monadic : sig - module Const : sig - include Lattice with type t = monadic - - val max_axis : (t, 'a) Axis.t -> 'a - - val min_axis : (t, 'a) Axis.t -> 'a - end - - module Const_op : Lattice with type t = monadic - - include Common with module Const := Const + include + Common_product + with type Const.t = monadic + and type 'a axis := (monadic, 'a) Axis.t - val join_const : Const.t -> ('l * 'r) t -> ('l * 'r) t + module Const_op : Lattice with type t = Const.t end - module Comonadic : sig - module Const : sig - include Lattice with type t = Areality.Const.t comonadic_with + module Comonadic : + Common_product + with type Const.t = Areality.Const.t comonadic_with + and type 'a axis := (Areality.Const.t comonadic_with, 'a) Axis.t - val eq : t -> t -> bool + module Axis' := Axis - val print_axis : (t, 'a) Axis.t -> Format.formatter -> 'a -> unit + module Axis : sig + (** Represents a mode axis in this product whose constant is ['a], and whose + allowance is ['d1] given the product's allowance ['d0]. *) + type ('a, 'd0, 'd1) t = + | Monadic : (Monadic.Const.t, 'a) Axis.t -> ('a, 'd, 'd neg) t + | Comonadic : (Comonadic.Const.t, 'a) Axis.t -> ('a, 'd, 'd pos) t - val max_axis : (t, 'a) Axis.t -> 'a + (** Compare two axes in implication order. If A implies B, then A is before B. *) + val compare : ('a, 'd0, 'd1) t -> ('b, 'e0, 'e1) t -> int - val min_axis : (t, 'a) Axis.t -> 'a - end + type packed = P : (_, _, _) t -> packed - type error = Error : (Const.t, 'a) Axis.t * 'a Solver.error -> error + val print : Format.formatter -> ('a, _, _) t -> unit - include Common with type error := error and module Const := Const - - val meet_const : Const.t -> ('l * 'r) t -> ('l * 'r) t + (** List of all axes, ordered by [compare]. *) + val all : packed list end - (** Represents a mode axis in this product whose constant is ['a], and - whose variable is ['m] given the allowness ['d]. *) - type ('m, 'a, 'd) axis = - | Monadic : - (Monadic.Const.t, 'a) Axis.t - -> (('a, 'd) mode_monadic, 'a, 'd) axis - | Comonadic : - (Comonadic.Const.t, 'a) Axis.t - -> (('a, 'd) mode_comonadic, 'a, 'd) axis - - type 'd axis_packed = P : ('m, 'a, 'd) axis -> 'd axis_packed - - val print_axis : Format.formatter -> ('m, 'a, 'd) axis -> unit - - (** Gets the normal lattice for comonadic axes and the "op"ped lattice for - monadic ones. *) - val lattice_of_axis : ('m, 'a, 'd) axis -> (module Lattice with type t = 'a) - - val all_axes : ('l * 'r) axis_packed list - - type ('a, 'b, 'c, 'd, 'e, 'f) modes = + type ('a, 'b, 'c, 'd, 'e, 'f, 'g, 'h) modes = { areality : 'a; linearity : 'b; uniqueness : 'c; portability : 'd; contention : 'e; - yielding : 'f + yielding : 'f; + statefulness : 'g; + visibility : 'h } module Const : sig @@ -394,9 +446,16 @@ module type S = sig Uniqueness.Const.t, Portability.Const.t, Contention.Const.t, - Yielding.Const.t ) + Yielding.Const.t, + Statefulness.Const.t, + Visibility.Const.t ) modes + (** Gets the normal lattice for comonadic axes and the "op"ped lattice for + monadic ones. *) + val lattice_of_axis : + ('a, _, _) Axis.t -> (module Lattice with type t = 'a) + module Option : sig type some = t @@ -406,7 +465,9 @@ module type S = sig Uniqueness.Const.t option, Portability.Const.t option, Contention.Const.t option, - Yielding.Const.t option ) + Yielding.Const.t option, + Statefulness.Const.t option, + Visibility.Const.t option ) modes val none : t @@ -416,9 +477,9 @@ module type S = sig val print : Format.formatter -> t -> unit end - val is_max : ('m, 'a, 'd) axis -> 'a -> bool + val is_max : ('a, _, _) Axis.t -> 'a -> bool - val is_min : ('m, 'a, 'd) axis -> 'a -> bool + val is_min : ('a, _, _) Axis.t -> 'a -> bool val split : t -> (Monadic.Const.t, Comonadic.Const.t) monadic_comonadic @@ -435,10 +496,10 @@ module type S = sig val partial_apply : t -> t (** Prints a constant on any axis. *) - val print_axis : ('m, 'a, 'd) axis -> Format.formatter -> 'a -> unit + val print_axis : ('a, _, _) Axis.t -> Format.formatter -> 'a -> unit end - type error = Error : ('m, 'a, 'd) axis * 'a Solver.error -> error + type error = Error : ('a, _, _) Axis.t * 'a Solver.error -> error type 'd t = ('d Monadic.t, 'd Comonadic.t) monadic_comonadic @@ -453,29 +514,34 @@ module type S = sig include Allow_disallow with type (_, _, 'd) sided = 'd t list end - val proj : ('m, 'a, 'l * 'r) axis -> ('l * 'r) t -> 'm + val proj : + ('a, 'l0 * 'r0, 'l1 * 'r1) Axis.t -> ('l0 * 'r0) t -> ('a, 'l1 * 'r1) mode - val max_with : ('m, 'a, 'l * 'r) axis -> 'm -> (disallowed * 'r) t + val meet_const : Comonadic.Const.t -> ('l * 'r) t -> ('l * 'r) t - val min_with : ('m, 'a, 'l * 'r) axis -> 'm -> ('l * disallowed) t + val join_const : Monadic.Const.t -> ('l * 'r) t -> ('l * 'r) t - val meet_with : (_, 'a, _) axis -> 'a -> ('l * 'r) t -> ('l * 'r) t + (** [max_with ax elt] returns [max] but with the axis [ax] set to [elt]. *) + val max_with : + ('a, 'l0 * 'r0, 'l1 * 'r1) Axis.t -> + ('a, 'l1 * 'r1) mode -> + (disallowed * 'r0) t - val join_with : (_, 'a, _) axis -> 'a -> ('l * 'r) t -> ('l * 'r) t + (** [min_with ax elt] returns [min] but with the axis [ax] set to [elt]. *) + val min_with : + ('a, 'l0 * 'r0, 'l1 * 'r1) Axis.t -> + ('a, 'l1 * 'r1) mode -> + ('l0 * disallowed) t - val zap_to_legacy : lr -> Const.t - - val zap_to_ceil : ('l * allowed) t -> Const.t - - val comonadic_to_monadic : ('l * 'r) Comonadic.t -> ('r * 'l) Monadic.t + val meet_with : + (Comonadic.Const.t, 'a) Axis'.t -> 'a -> ('l0 * 'r0) t -> ('l0 * 'r0) t - val meet_const : Const.t -> ('l * 'r) t -> ('l * 'r) t + val join_with : + (Monadic.Const.t, 'a) Axis'.t -> 'a -> ('l0 * 'r0) t -> ('l0 * 'r0) t - val imply : Const.t -> ('l * 'r) t -> (disallowed * 'r) t - - val join_const : Const.t -> ('l * 'r) t -> ('l * 'r) t + val zap_to_legacy : lr -> Const.t - val subtract : Const.t -> ('l * 'r) t -> ('l * disallowed) t + val comonadic_to_monadic : ('l * 'r) Comonadic.t -> ('r * 'l) Monadic.t (* The following two are about the scenario where we partially apply a function [A -> B -> C] to [A] and get back [B -> C]. The mode of the @@ -503,7 +569,7 @@ module type S = sig val alloc_as_value : Alloc.Const.t -> Value.Const.t module Axis : sig - val alloc_as_value : 'd Alloc.axis_packed -> 'd Value.axis_packed + val alloc_as_value : Alloc.Axis.packed -> Value.Axis.packed end val locality_as_regionality : Locality.Const.t -> Regionality.Const.t @@ -531,16 +597,16 @@ module type S = sig val value_to_alloc_r2g : ('l * 'r) Value.t -> ('l * 'r) Alloc.t module Modality : sig - type ('m, 'a) raw = - | Meet_with : 'a -> (('a, 'd) mode_comonadic, 'a) raw + type 'a raw = + | Meet_with : 'a -> 'a raw (** [Meet_with c] takes [x] and returns [meet c x]. [c] can be [max] in which case it's the identity modality. *) - | Join_with : 'a -> (('a, 'd) mode_monadic, 'a) raw + | Join_with : 'a -> 'a raw (** [Join_with c] takes [x] and returns [join c x]. [c] can be [min] in which case it's the identity modality. *) (** An atom modality is a [raw] accompanied by the axis it acts on. *) - type t = Atom : ('m, 'a, _) Value.axis * ('m, 'a) raw -> t + type t = Atom : ('a, _, _) Value.Axis.t * 'a raw -> t (** Test if the given modality is the identity modality. *) val is_id : t -> bool @@ -555,7 +621,7 @@ module type S = sig type atom := t type error = - | Error : ('m, 'a, _) Value.axis * ('m, 'a) raw Solver.error -> error + | Error : ('a, _, _) Value.Axis.t * 'a raw Solver.error -> error type nonrec equate_error = equate_step * error @@ -586,26 +652,18 @@ module type S = sig (** Apply a modality on mode. *) val apply : t -> ('l * 'r) Value.t -> ('l * 'r) Value.t - (** [compose ~then_ t] returns the modality that is [then_] after [t]. *) - val compose : then_:atom -> t -> t - (** [concat ~then t] returns the modality that is [then_] after [t]. *) val concat : then_:t -> t -> t - (** [singleton m] returns the modality containing only [m]. *) - val singleton : atom -> t - - (** Returns the list of [atom] in the given modality. The list is - commutative. Post-condition: each axis is represented in the - output list exactly once. *) - val to_list : t -> atom list + (** [set ax a t] overwrite the [ax] axis of [t] to be [a]. *) + val set : ('a, _, _) Value.Axis.t -> 'a raw -> t -> t - (** Builds up a modality from a list of [atom], by composing each atom with - identity. The modalities are applied left to right. *) - val of_list : atom list -> t + (** Project out the [raw] for the given axis in the given modality. *) + val proj : ('a, _, _) Value.Axis.t -> t -> 'a raw - (** Project out the [atom] for the given axis in the given modality. *) - val proj : ('m, 'a, 'd) Value.axis -> t -> atom + (** [diff t0 t1] returns a list of atoms in [t1] that are different than + [t0]. *) + val diff : t -> t -> atom list (** [equate t0 t1] checks that [t0 = t1]. Definition: [t0 = t1] iff [t0 <= t1] and [t1 <= t0]. *) @@ -625,7 +683,12 @@ module type S = sig (** The undefined modality. *) val undefined : t - (** Apply a modality on a left mode. *) + (* CR zqian: note that currently, [apply] and [sub] and [zap] are NOT + coherent for comonadic axes. That is, we do NOT have + [apply t m = Const.apply (zap t) m]. This is probably fine. *) + + (** Apply a modality on a left mode. The calller should ensure that [apply + t m] is only called for [m >= md_mode] for inferred modalities. *) val apply : t -> (allowed * 'r) Value.t -> Value.l (** [sub t0 t1] checks that [t0 <= t1]. diff --git a/src/ocaml/typing/oprint.ml b/src/ocaml/typing/oprint.ml index 31a25a3d0..609146b92 100644 --- a/src/ocaml/typing/oprint.ml +++ b/src/ocaml/typing/oprint.ml @@ -559,10 +559,12 @@ and print_out_type_3 ppf = | Otyp_attribute (t, attr) -> fprintf ppf "@[<1>(%a [@@%s])@]" print_out_type_0 t attr.oattr_name - | Otyp_jkind_annot (t, lay) -> + | Otyp_jkind_annot (t, jk) -> fprintf ppf "@[<1>(%a@ :@ %a)@]" print_out_type_0 t - print_out_jkind lay + print_out_jkind jk + | Otyp_of_kind jk -> + fprintf ppf "(type@ :@ %a)" print_out_jkind jk and print_out_type ppf typ = print_out_type_0 ppf typ and print_simple_out_type ppf typ = diff --git a/src/ocaml/typing/outcometree.mli b/src/ocaml/typing/outcometree.mli index ee8235245..91130e4e1 100644 --- a/src/ocaml/typing/outcometree.mli +++ b/src/ocaml/typing/outcometree.mli @@ -155,6 +155,7 @@ and out_type = | Otyp_jkind_annot of out_type * out_jkind (* Currently only introduced with very explicit code in [Printtyp] and not synthesized directly from the [Typedtree] *) + | Otyp_of_kind of out_jkind and out_constructor = { ocstr_name: string; diff --git a/src/ocaml/typing/persistent_env.ml b/src/ocaml/typing/persistent_env.ml index b63dc5c43..76e6a684d 100644 --- a/src/ocaml/typing/persistent_env.ml +++ b/src/ocaml/typing/persistent_env.ml @@ -37,24 +37,24 @@ type error = | Not_compiled_as_parameter of Global_module.Name.t | Imported_module_has_unset_parameter of { imported : Global_module.Name.t; - parameter : Global_module.Name.t; + parameter : Global_module.Parameter_name.t; } | Imported_module_has_no_such_parameter of { imported : CU.Name.t; - valid_parameters : Global_module.Name.t list; - parameter : Global_module.Name.t; + valid_parameters : Global_module.Parameter_name.t list; + parameter : Global_module.Parameter_name.t; value : Global_module.Name.t; } | Not_compiled_as_argument of - { param : Global_module.Name.t; + { param : Global_module.Parameter_name.t; value : Global_module.Name.t; filename : filepath; } | Argument_type_mismatch of { value : Global_module.Name.t; filename : filepath; - expected : Global_module.Name.t; - actual : Global_module.Name.t; + expected : Global_module.Parameter_name.t; + actual : Global_module.Parameter_name.t; } | Unbound_module_as_argument_value of { instance: Global_module.Name.t; @@ -101,8 +101,8 @@ type global_name_info = { (* Data relating directly to a .cmi - does not depend on arguments *) type import = { imp_is_param : bool; - imp_params : Global_module.t list; (* CR lmaurer: Should be [Parameter_name.t list] *) - imp_arg_for : Global_module.Name.t option; + imp_params : Global_module.Parameter_name.t list; + imp_arg_for : Global_module.Parameter_name.t option; imp_impl : CU.t option; (* None iff import is a parameter *) imp_raw_sign : Signature_with_global_bindings.t; imp_filename : string; @@ -126,9 +126,6 @@ type import_info = type pers_name = { pn_import : import; pn_global : Global_module.t; - pn_arg_for : Global_module.Name.t option; - (* Currently always the same as [pn_import.imp_arg_for], since parameters - don't have parameters *) pn_sign : Subst.Lazy.signature; } @@ -146,7 +143,7 @@ type 'a pers_struct_info = { ps_val : 'a; } -module Param_set = Global_module.Name.Set +module Param_set = Global_module.Parameter_name.Set (* If you add something here, _do not forget_ to add it to [clear]! *) type 'a t = { @@ -219,7 +216,7 @@ let add_import {imported_units; _} s = let rec add_imports_in_name penv (g : Global_module.Name.t) = add_import penv (g |> CU.Name.of_head_of_global_name); let add_in_arg ({ param; value } : Global_module.Name.argument) = - add_imports_in_name penv param; + add_import penv (param |> CU.Name.of_parameter_name); add_imports_in_name penv value in List.iter add_in_arg g.args @@ -247,18 +244,15 @@ let find_in_cache penv name = find_info_in_cache penv name |> Option.map (fun ps -> ps.ps_val) let register_parameter ({param_imports; _} as penv) modname = - let import = - (* Note that parameters cannot themselves be parameterised. (This may be lifted in the - future, but dependent types are hard.) *) - CU.Name.of_global_name_no_args_exn modname - in + let import = CU.Name.of_parameter_name modname in begin match find_import_info_in_cache penv import with | None -> (* Not loaded yet; if it's wrong, we'll get an error at load time *) () | Some imp -> if not imp.imp_is_param then - raise (Error (Not_compiled_as_parameter modname)) + raise (Error (Not_compiled_as_parameter + (Global_module.Name.of_parameter_name modname))) end; param_imports := Param_set.add modname !param_imports @@ -291,8 +285,8 @@ let check_consistency penv imp = | (Normal _ | Parameter), _ -> error (Inconsistent_import(name, auth, source)) -let is_registered_parameter_import {param_imports; _} import = - Param_set.mem import !param_imports +let is_registered_parameter_import {param_imports; _} name = + Global_module.Name.mem_parameter_set name !param_imports let is_parameter_import t modname = let import = CU.Name.of_head_of_global_name modname in @@ -530,16 +524,8 @@ let rec approximate_global_by_name penv global_name = !param_imports visible_args in - let arg_of_param (param : Global_module.Name.t) : Global_module.t = - (* CR-someday Really should just have a separate Parameter_name.t type *) - (* Assume the parameter has no arguments because it can't have any *) - Global_module.create_exn param.head [] ~hidden_args:[] - in let hidden_args = Param_set.elements params_not_being_passed - |> List.map - (fun param -> - ({ param; value = arg_of_param param } : _ Global_module.Argument.t)) in let global = Global_module.create_exn head visible_args ~hidden_args in remember_global penv global ~precision:Approximate ~mentioned_by:Current; @@ -585,12 +571,12 @@ let current_unit_is_instance_of name = parameter.) *) let check_for_unset_parameters penv global = List.iter - (fun ({ param = _; value = arg_value } : Global_module.argument) -> + (fun ({ param = parameter; value = arg_value } : Global_module.argument) -> let value_name = Global_module.to_name arg_value in if not (is_registered_parameter_import penv value_name) then error (Imported_module_has_unset_parameter { imported = Global_module.to_name global; - parameter = value_name; + parameter; })) global.Global_module.hidden_args @@ -617,31 +603,16 @@ and compute_global penv modname ~params ~check ~allow_excess_args = (Unbound_module_as_argument_value { instance = modname; value })) modname.Global_module.Name.args in - let subst : Global_module.subst = Global_module.Name.Map.of_list arg_global_by_param_name in + let subst : Global_module.subst = + Global_module.Parameter_name.Map.of_list arg_global_by_param_name + in if check && modname.Global_module.Name.args <> [] then begin - (* A paragraph for the future that I don't want to lose track of: - - Produce the expected type of each argument. This takes into account - substitutions among the parameter types: if the parameters are T and - To_string[T] and the arguments are [Int] and [Int_to_string], we want to - check that [Int] has type [T] and that [Int_to_string] has type - [To_string[T\Int]]. - - For now, our parameters don't take parameters, so we can just assert that - the parameter name has no arguments and keep it as the expected type. *) - let expected_type_by_param_name = - List.map - (fun param -> - assert (not (Global_module.has_arguments param)); - Global_module.to_name param, param) - params - in - let compare_by_param (param1, _) (param2, _) = - Global_module.Name.compare param1 param2 + let compare_by_param param1 (param2, _) = + Global_module.Parameter_name.compare param1 param2 in Misc_stdlib.List.merge_iter ~cmp:compare_by_param - expected_type_by_param_name + params arg_global_by_param_name ~left_only: (fun _ -> @@ -655,61 +626,41 @@ and compute_global penv modname ~params ~check ~allow_excess_args = raise (Error (Imported_module_has_no_such_parameter { imported = CU.Name.of_head_of_global_name modname; - valid_parameters = - params |> List.map Global_module.to_name; + valid_parameters = params; parameter = param; value = value |> Global_module.to_name; }))) ~both: - (fun (param_name, expected_type_global) (_arg_name, arg_value_global) -> + (fun expected_type (_arg_name, arg_value_global) -> let arg_value = arg_value_global |> Global_module.to_name in let pn = find_pers_name ~allow_hidden:true penv ~check arg_value ~allow_excess_args in let actual_type = - match pn.pn_arg_for with + match pn.pn_import.imp_arg_for with | None -> error (Not_compiled_as_argument - { param = param_name; value = arg_value; + { param = expected_type; value = arg_value; filename = pn.pn_import.imp_filename }) | Some ty -> ty in - let actual_type_global = - global_of_global_name ~allow_excess_args penv ~check actual_type - in - if not (Global_module.equal expected_type_global actual_type_global) + if not (Global_module.Parameter_name.equal expected_type actual_type) then begin - let expected_type = Global_module.to_name expected_type_global in - if Global_module.Name.equal expected_type actual_type then - (* This shouldn't happen, I don't think, but if it does, I'd rather - not output an "X != X" sort of error message *) - Misc.fatal_errorf - "Mismatched argument type (despite same name):@ \ - expected %a,@ got %a" - Global_module.print expected_type_global - Global_module.print actual_type_global - else - raise (Error (Argument_type_mismatch { - value = arg_value; - filename = pn.pn_import.imp_filename; - expected = expected_type; - actual = actual_type; - })) + raise (Error (Argument_type_mismatch { + value = arg_value; + filename = pn.pn_import.imp_filename; + expected = expected_type; + actual = actual_type; + })) end) end; (* Form the name without any arguments at all, then substitute in all the arguments. A bit roundabout but should be sound *) - let hidden_args = - List.map - (fun param : Global_module.argument -> - { param = Global_module.to_name param; value = param }) - params - in let global_without_args = (* Won't raise an exception, since the hidden args are all different (since the params are different, or else we have bigger problems) *) - Global_module.create_exn modname.Global_module.Name.head [] ~hidden_args + Global_module.create_exn modname.Global_module.Name.head [] ~hidden_args:params in let global, _changed = Global_module.subst global_without_args subst in global @@ -753,7 +704,6 @@ and acknowledge_new_pers_name penv check global_name global import = through here already. *) check_for_unset_parameters penv global; let {persistent_names; _} = penv in - let arg_for = import.imp_arg_for in let sign = import.imp_raw_sign in let sign = let bindings = @@ -772,7 +722,6 @@ and acknowledge_new_pers_name penv check global_name global import = sign.bound_globals; let pn = { pn_import = import; pn_global = global; - pn_arg_for = arg_for; pn_sign = sign.sign; } in if check then check_consistency penv import; @@ -864,7 +813,7 @@ let make_binding penv (global : Global_module.t) (impl : CU.t option) : binding | _ -> (* Make sure the unit isn't supposed to be packed *) assert (not (CU.is_packed unit_from_cmi)); - CU.of_global_name name + CU.of_complete_global_exn global in Constant unit @@ -996,25 +945,47 @@ let check_pers_struct ~allow_hidden penv f1 f2 ~loc name = (Style.as_inline_code Location.print_filename) filename (Style.as_inline_code CU.Name.print) ps_name (Style.as_inline_code CU.Name.print) name - | Inconsistent_import _ -> assert false + | Inconsistent_import _ -> + (* Can't be raised by [find_pers_struct ~check:false] *) + assert false | Need_recursive_types name -> Format.asprintf "%a uses recursive types" (Style.as_inline_code CU.Name.print) name - | Inconsistent_package_declaration_between_imports _ -> assert false + | Inconsistent_package_declaration_between_imports _ -> + (* Can't be raised by [find_pers_struct ~check:false] *) + assert false | Direct_reference_from_wrong_package (unit, _filename, prefix) -> Format.asprintf "%a is inaccessible from %a" CU.print unit describe_prefix prefix - (* The cmi is necessary, otherwise the functor cannot be - generated. Moreover, aliases of functor arguments are forbidden. *) - | Illegal_import_of_parameter _ -> assert false - | Not_compiled_as_parameter _ -> assert false - | Imported_module_has_unset_parameter _ -> assert false - | Imported_module_has_no_such_parameter _ -> assert false - | Not_compiled_as_argument _ -> assert false - | Argument_type_mismatch _ -> assert false - | Unbound_module_as_argument_value _ -> assert false + | Illegal_import_of_parameter (name, _) -> + Format.asprintf "%a is a parameter" + (Style.as_inline_code Global_module.Name.print) name + | Not_compiled_as_parameter name -> + Format.asprintf "%a should be a parameter but isn't" + (Style.as_inline_code Global_module.Name.print) name + | Imported_module_has_unset_parameter { imported; parameter } -> + Format.asprintf "%a requires argument for %a" + (Style.as_inline_code Global_module.Name.print) imported + (Style.as_inline_code Global_module.Parameter_name.print) + parameter + | Imported_module_has_no_such_parameter { imported; parameter; _ } -> + Format.asprintf "%a has no parameter %a" + (Style.as_inline_code CU.Name.print) imported + (Style.as_inline_code Global_module.Parameter_name.print) + parameter + | Not_compiled_as_argument { value; _ } -> + Format.asprintf "%a is not compiled as an argument" + (Style.as_inline_code Global_module.Name.print) value + | Argument_type_mismatch { value; expected; actual; _ } -> + Format.asprintf "%a implements %a, not %a" + (Style.as_inline_code Global_module.Name.print) value + (Style.as_inline_code Global_module.Parameter_name.print) actual + (Style.as_inline_code Global_module.Parameter_name.print) expected + | Unbound_module_as_argument_value { value; _ } -> + Format.asprintf "Can't find argument %a" + (Style.as_inline_code Global_module.Name.print) value in let warn = Warnings.No_cmi_file(name_as_string, Some msg) in Location.prerr_warning loc warn @@ -1111,7 +1082,7 @@ let is_imported_opaque {imported_opaque_units; _} s = let implemented_parameter penv modname = match find_name_info_in_cache penv modname with - | Some { pn_arg_for; _ } -> pn_arg_for + | Some { pn_import = { imp_arg_for; _ }; _ } -> imp_arg_for | None -> None let make_cmi penv modname kind sign alerts = @@ -1125,7 +1096,6 @@ let make_cmi penv modname kind sign alerts = let params = (* Needs to be consistent with [Translmod] *) parameters penv - |> List.map (global_of_global_name penv ~check:true ~allow_excess_args:false) in (* Need to calculate [params] before these since [global_of_global_name] has side effects *) @@ -1238,9 +1208,9 @@ let report_error ppf = @[Pass @{-parameter %a@}@ to add %a@ as a parameter@ \ of the current unit.@]@]" (Style.as_inline_code Global_module.Name.print) modname - (Style.as_inline_code Global_module.Name.print) param - Global_module.Name.print param - (Style.as_inline_code Global_module.Name.print) param + (Style.as_inline_code Global_module.Parameter_name.print) param + Global_module.Parameter_name.print param + (Style.as_inline_code Global_module.Parameter_name.print) param | Imported_module_has_no_such_parameter { valid_parameters; imported = modname; parameter = param; value = _; } -> let pp_hint ppf () = @@ -1250,11 +1220,11 @@ let report_error ppf = "Compile %a@ with @{-parameter %a@}@ to make it a \ parameter." (Style.as_inline_code CU.Name.print) modname - Global_module.Name.print param + Global_module.Parameter_name.print param | _ -> let print_params = Format.pp_print_list ~pp_sep:Format.pp_print_space - (Style.as_inline_code Global_module.Name.print) + (Style.as_inline_code Global_module.Parameter_name.print) in fprintf ppf "Parameters for %a:@ @[%a@]" (Style.as_inline_code CU.Name.print) modname @@ -1264,7 +1234,7 @@ let report_error ppf = "@[The module %a@ has no parameter %a.@]@.\ @[@{Hint@}: @[%a@]@]" (Style.as_inline_code CU.Name.print) modname - (Style.as_inline_code Global_module.Name.print) param + (Style.as_inline_code Global_module.Parameter_name.print) param pp_hint () | Not_compiled_as_argument { param; value; filename } -> fprintf ppf @@ -1273,9 +1243,9 @@ let report_error ppf = @[@{Hint@}: \ @[Compile %a@ with @{-as-argument-for %a@}.@]@]" (Style.as_inline_code Global_module.Name.print) value - (Style.as_inline_code Global_module.Name.print) param + (Style.as_inline_code Global_module.Parameter_name.print) param (Style.as_inline_code Location.print_filename) filename - Global_module.Name.print param + Global_module.Parameter_name.print param | Argument_type_mismatch { value; filename; expected; actual; } -> fprintf ppf "@[The module %a@ is used as an argument for the parameter %a@ \ @@ -1284,11 +1254,11 @@ let report_error ppf = @[%a@ was compiled with \ @{-as-argument-for %a@}.@]@]" (Style.as_inline_code Global_module.Name.print) value - (Style.as_inline_code Global_module.Name.print) expected + (Style.as_inline_code Global_module.Parameter_name.print) expected (Style.as_inline_code Global_module.Name.print) value - (Style.as_inline_code Global_module.Name.print) actual + (Style.as_inline_code Global_module.Parameter_name.print) actual (Style.as_inline_code Location.print_filename) filename - Global_module.Name.print expected + Global_module.Parameter_name.print expected | Unbound_module_as_argument_value { instance; value } -> fprintf ppf "@[Unbound module %a@ in instance %a@]" diff --git a/src/ocaml/typing/persistent_env.mli b/src/ocaml/typing/persistent_env.mli index ec3a4c280..0a3469082 100644 --- a/src/ocaml/typing/persistent_env.mli +++ b/src/ocaml/typing/persistent_env.mli @@ -34,24 +34,24 @@ type error = | Not_compiled_as_parameter of Global_module.Name.t | Imported_module_has_unset_parameter of { imported : Global_module.Name.t; - parameter : Global_module.Name.t; + parameter : Global_module.Parameter_name.t; } | Imported_module_has_no_such_parameter of { imported : Compilation_unit.Name.t; - valid_parameters : Global_module.Name.t list; - parameter : Global_module.Name.t; + valid_parameters : Global_module.Parameter_name.t list; + parameter : Global_module.Parameter_name.t; value : Global_module.Name.t; } | Not_compiled_as_argument of - { param : Global_module.Name.t; + { param : Global_module.Parameter_name.t; value : Global_module.Name.t; filename : filepath; } | Argument_type_mismatch of { value : Global_module.Name.t; filename : filepath; - expected : Global_module.Name.t; - actual : Global_module.Name.t; + expected : Global_module.Parameter_name.t; + actual : Global_module.Parameter_name.t; } | Unbound_module_as_argument_value of { instance : Global_module.Name.t; value : Global_module.Name.t; } @@ -121,7 +121,7 @@ val check : allow_hidden:bool -> 'a t -> 'a sig_reader (* Lets it be known that the given module is a parameter to this module and thus is expected to have been compiled as such. Raises an exception if the module has already been imported as a non-parameter. *) -val register_parameter : 'a t -> Global_module.Name.t -> unit +val register_parameter : 'a t -> Global_module.Parameter_name.t -> unit (* [is_parameter_import penv md] checks if [md] is a parameter. Raises a fatal error if the module has not been imported. *) @@ -143,7 +143,7 @@ val register_import_as_opaque : 'a t -> Compilation_unit.Name.t -> unit (* [implemented_parameter penv md] returns the argument to [-as-argument-for] that [md] was compiled with. *) val implemented_parameter : 'a t - -> Global_module.Name.t -> Global_module.Name.t option + -> Global_module.Name.t -> Global_module.Parameter_name.t option val global_of_global_name : 'a t -> check:bool @@ -201,7 +201,7 @@ val is_imported_parameter : 'a t -> Global_module.Name.t -> bool All of these will have been specified by [-parameter] but not all of them are necessarily imported - any that don't appear in the source are still considered parameters of the module but will not appear in [imports]. *) -val parameters : 'a t -> Global_module.Name.t list +val parameters : 'a t -> Global_module.Parameter_name.t list (* Return the CRC of the interface of the given compilation unit *) val crc_of_unit: 'a t diff --git a/src/ocaml/typing/predef.ml b/src/ocaml/typing/predef.ml index dd36057fe..be88a1a0a 100644 --- a/src/ocaml/typing/predef.ml +++ b/src/ocaml/typing/predef.ml @@ -394,8 +394,7 @@ let build_initial_env add_type add_extension empty_env = |> add_type1 ident_array ~variance:Variance.full ~separability:Separability.Ind - ~param_jkind:(Jkind.add_nullability_crossing - (Jkind.Builtin.any ~why:Array_type_argument)) + ~param_jkind:(Jkind.Builtin.any_non_null ~why:Array_type_argument) ~jkind:(fun param -> Jkind.Builtin.mutable_data ~why:(Primitive ident_array) |> Jkind.add_with_bounds @@ -404,8 +403,7 @@ let build_initial_env add_type add_extension empty_env = |> add_type1 ident_iarray ~variance:Variance.covariant ~separability:Separability.Ind - ~param_jkind:(Jkind.add_nullability_crossing - (Jkind.Builtin.any ~why:Array_type_argument)) + ~param_jkind:(Jkind.Builtin.any_non_null ~why:Array_type_argument) ~jkind:(fun param -> Jkind.Builtin.immutable_data ~why:(Primitive ident_iarray) |> Jkind.add_with_bounds @@ -415,16 +413,17 @@ let build_initial_env add_type add_extension empty_env = ~kind:(variant [ cstr ident_false []; cstr ident_true []]) ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_char ~jkind:Jkind.Const.Builtin.immediate - |> add_type ident_exn ~kind:Type_open ~jkind:Jkind.Const.Builtin.value - |> add_type ident_extension_constructor ~jkind:Jkind.Const.Builtin.value - |> add_type ident_float ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.float64 + |> add_type_with_jkind ident_exn ~kind:Type_open + ~jkind:(Jkind.for_non_float ~why:(Primitive ident_exn)) + |> add_type ident_extension_constructor ~jkind:Jkind.Const.Builtin.immutable_data + |> add_type_with_jkind ident_float ~jkind:(Jkind.for_float ident_float) + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_float |> add_type ident_floatarray ~jkind:Jkind.Const.Builtin.mutable_data |> add_type ident_int ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_int32 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.bits32 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_int32 |> add_type ident_int64 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.bits64 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_int64 |> add_type1 ident_lazy_t ~variance:Variance.covariant ~separability:Separability.Ind @@ -433,7 +432,7 @@ let build_initial_env add_type add_extension empty_env = It might also cross portability, linearity, uniqueness subject to its parameter. But I'm also fine not doing that for now (and wait until users complains). *) - ~jkind:(fun _ -> Jkind.Builtin.value ~why:(Primitive ident_lazy_t)) + ~jkind:(fun _ -> Jkind.for_non_float ~why:(Primitive ident_lazy_t)) |> add_type1 ident_list ~variance:Variance.covariant ~separability:Separability.Ind @@ -445,7 +444,7 @@ let build_initial_env add_type add_extension empty_env = ~jkind:list_jkind |> add_type ident_nativeint ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.word + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_nativeint |> add_type1 ident_option ~variance:Variance.covariant ~separability:Separability.Ind @@ -526,23 +525,23 @@ let add_simd_stable_extension_types add_type env = let _, add_type = mk_add_type add_type in env |> add_type ident_int8x16 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.vec128 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_128bit_vectors |> add_type ident_int16x8 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.vec128 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_128bit_vectors |> add_type ident_int32x4 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.vec128 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_128bit_vectors |> add_type ident_int64x2 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.vec128 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_128bit_vectors |> add_type ident_float32x4 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.vec128 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_128bit_vectors |> add_type ident_float64x2 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.vec128 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_128bit_vectors let add_small_number_extension_types add_type env = let _, add_type = mk_add_type add_type in env |> add_type ident_float32 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.float32 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_float32 let add_small_number_beta_extension_types add_type env = let _, add_type = mk_add_type add_type in diff --git a/src/ocaml/typing/primitive.ml b/src/ocaml/typing/primitive.ml index 13780dd1b..56ac356c8 100644 --- a/src/ocaml/typing/primitive.ml +++ b/src/ocaml/typing/primitive.ml @@ -445,10 +445,21 @@ module Repr_check = struct | Untagged_immediate -> true | Same_as_ocaml_repr _ | Repr_poly -> false - let is_not_product = function + let is_not_product_sort : Jkind_types.Sort.Const.t -> bool = function + | Base _ -> true + | Product _ -> false + + let valid_c_stub_arg = function + | Same_as_ocaml_repr s -> is_not_product_sort s + | Unboxed_float _ | Unboxed_integer _ | Unboxed_vector _ + | Untagged_immediate | Repr_poly -> true + + let valid_c_stub_return = function | Same_as_ocaml_repr (Base _) | Unboxed_float _ | Unboxed_integer _ | Unboxed_vector _ | Untagged_immediate | Repr_poly -> true + | Same_as_ocaml_repr (Product [s1; s2]) -> + is_not_product_sort s1 && is_not_product_sort s2 | Same_as_ocaml_repr (Product _) -> false let check checks prim = @@ -475,11 +486,14 @@ module Repr_check = struct (List.init (arity+1) (fun _ -> value_or_unboxed_or_untagged)) prim - let no_product_repr prim = + let check_c_stub prim = + (* C externals are allowed to return a tuple, but may not take products as + arguments or return products with more than two elements. *) let arity = List.length prim.prim_native_repr_args in - check - (List.init (arity+1) (fun _ -> is_not_product)) - prim + let checks = + (List.init arity (fun _ -> valid_c_stub_arg)) @ [valid_c_stub_return] + in + check checks prim end (* Note: [any] here is not the same as jkind [any]. It means we allow any @@ -765,17 +779,7 @@ let prim_has_valid_reprs ~loc prim = | "%sendcache" |} *) - else - (* CR layouts v7.1: Right now we're restricting C externals that - use unboxed products to "alpha", because they are untested and - the calling convention will change. The backend PR that adds - better support and testing should change this "else" case to - require [beta]. Then when we move products out of beta we can - change it back to its original definition: [fun _ -> Success] - *) - if Language_extension.(is_at_least Layouts Alpha) - then fun _ -> Success - else no_product_repr) + else check_c_stub) in match check prim with | Success -> () diff --git a/src/ocaml/typing/printtyp.ml b/src/ocaml/typing/printtyp.ml index 22e764f3c..cdcfa2f22 100644 --- a/src/ocaml/typing/printtyp.ml +++ b/src/ocaml/typing/printtyp.ml @@ -446,7 +446,8 @@ let instance_name global = String.concat "" (head :: List.map string_of_arg args) and string_of_arg arg = let ({ param; value } : Global_module.Name.argument) = arg in - sprintf "(%s)(%s)" (string_of_global param) (string_of_global value) + sprintf "(%s)(%s)" + (Global_module.Parameter_name.to_string param) (string_of_global value) in let printed_name = string_of_global global ^ " [@jane.non_erasable.instances]" @@ -656,6 +657,22 @@ and raw_lid_type_list tl = raw_list (fun ppf (lid, typ) -> fprintf ppf "(@,%a,@,%a)" longident lid raw_type typ) tl +and raw_row_desc ppf row = + let Row {fields; more; name; fixed; closed} = row_repr row in + fprintf ppf + "@[{@[%s@,%a;@]@ @[%s@,%a;@]@ %s%B;@ %s%a;@ @[<1>%s%t@]}@]" + "row_fields=" + (raw_list (fun ppf (l, f) -> + fprintf ppf "@[%s,@ %a@]" l raw_field f)) + fields + "row_more=" raw_type more + "row_closed=" closed + "row_fixed=" raw_row_fixed fixed + "row_name=" + (fun ppf -> + match name with None -> fprintf ppf "None" + | Some(p,tl) -> + fprintf ppf "Some(@,%a,@,%a)" path p raw_type_list tl) and raw_type_desc ppf = function Tvar { name; jkind } -> fprintf ppf "Tvar (@,%a,@,%a)" @@ -698,30 +715,19 @@ and raw_type_desc ppf = function raw_type t raw_type_list tl | Tvariant row -> - let Row {fields; more; name; fixed; closed} = row_repr row in - fprintf ppf - "@[{@[%s@,%a;@]@ @[%s@,%a;@]@ %s%B;@ %s%a;@ @[<1>%s%t@]}@]" - "row_fields=" - (raw_list (fun ppf (l, f) -> - fprintf ppf "@[%s,@ %a@]" l raw_field f)) - fields - "row_more=" raw_type more - "row_closed=" closed - "row_fixed=" raw_row_fixed fixed - "row_name=" - (fun ppf -> - match name with None -> fprintf ppf "None" - | Some(p,tl) -> - fprintf ppf "Some(@,%a,@,%a)" path p raw_type_list tl) + raw_row_desc ppf row | Tpackage (p, fl) -> fprintf ppf "@[Tpackage(@,%a,@,%a)@]" path p raw_lid_type_list fl + | Tof_kind jkind -> + fprintf ppf "(type@ :@ %a)" Jkind.format jkind and raw_row_fixed ppf = function | None -> fprintf ppf "None" | Some Types.Fixed_private -> fprintf ppf "Some Fixed_private" | Some Types.Rigid -> fprintf ppf "Some Rigid" | Some Types.Univar t -> fprintf ppf "Some(Univar(%a))" raw_type t | Some Types.Reified p -> fprintf ppf "Some(Reified(%a))" path p +| Some Types.Fixed_existential -> fprintf ppf "Some Fixed_existential" and raw_field ppf rf = match_row_field @@ -1326,40 +1332,73 @@ let outcome_label : Types.arg_label -> Outcometree.arg_label = function | Optional l -> Optional l | Position l -> Position l +let rec all_or_none f = function + | [] -> Some [] + | x :: xs -> + Option.bind (f x) (fun y -> + Option.bind (all_or_none f xs) (fun ys -> + Some (y :: ys) + ) + ) + let tree_of_modality_new (t: Parsetree.modality loc) = - let Modality s = t.txt in s + let Modality s = t.txt in Ogf_new s -let tree_of_modality (t: Parsetree.modality loc) = +let tree_of_modality_old (t: Parsetree.modality loc) = match t.txt with - | Modality "global" -> Ogf_legacy Ogf_global - | _ -> Ogf_new (tree_of_modality_new t) + | Modality "global" -> Some (Ogf_legacy Ogf_global) + | _ -> None -let tree_of_modalities mut attrs t = - let t = Typemode.untransl_modalities mut attrs t in - List.map tree_of_modality t +let tree_of_modalities mut t = + let t = Typemode.untransl_modalities mut t in + match all_or_none tree_of_modality_old t with + | Some l -> l + | None -> List.map tree_of_modality_new t -let tree_of_modalities_new mut attrs t = - let l = Typemode.untransl_modalities mut attrs t in - List.map tree_of_modality_new l +let tree_of_modalities_new mut t = + let l = Typemode.untransl_modalities mut t in + List.map (fun ({txt = Parsetree.Modality s; _}) -> s) l (** [tree_of_mode m l] finds the outcome node in [l] that corresponds to [m]. Raise if not found. *) -let tree_of_mode (mode : 'm option) (l : ('m * out_mode) list) : out_mode option = - Option.map (fun x -> List.assoc x l) mode +let tree_of_mode_old (t : Parsetree.mode loc) = + match t.txt with + | Mode "local" -> Some (Omd_legacy Omd_local) + | _ -> None + +let tree_of_mode_new (t: Parsetree.mode loc) = + let Mode s = t.txt in Omd_new s -let tree_of_modes modes = +let tree_of_modes (modes : Mode.Alloc.Const.t) = let diff = Mode.Alloc.Const.diff modes Mode.Alloc.Const.legacy in - (* The mapping passed to [tree_of_mode] must cover all non-legacy modes *) - let l = [ - tree_of_mode diff.areality [Mode.Locality.Const.Local, Omd_legacy Omd_local]; - tree_of_mode diff.linearity [Mode.Linearity.Const.Once, Omd_new "once"]; - tree_of_mode diff.uniqueness [Mode.Uniqueness.Const.Unique, Omd_new "unique"]; - tree_of_mode diff.portability [Mode.Portability.Const.Portable, Omd_new "portable"]; - tree_of_mode diff.contention [Mode.Contention.Const.Contended, Omd_new "contended"; - Mode.Contention.Const.Shared, Omd_new "shared"]; - tree_of_mode diff.yielding [Mode.Yielding.Const.Yielding, Omd_new "yielding"]] + + (* [yielding] has implied defaults depending on [areality]: *) + let yielding = + match modes.areality, modes.yielding with + | Local, Yielding | Global, Unyielding -> None + | _, _ -> Some modes.yielding + in + + (* [contention] has implied defaults based on [visibility]: *) + let contention = + match modes.visibility, modes.contention with + | Immutable, Contended | Read, Shared | Read_write, Uncontended -> None + | _, _ -> Some modes.contention in - List.filter_map Fun.id l + + (* [portability] has implied defaults based on [statefulness]: *) + let portability = + match modes.statefulness, modes.portability with + | Stateless, Portable | (Observing | Stateful), Nonportable -> None + | _, _ -> Some modes.portability + in + + let diff = {diff with yielding; contention; portability} in + (* The mapping passed to [tree_of_mode] must cover all non-legacy modes *) + let l = Typemode.untransl_mode_annots diff in + match all_or_none tree_of_mode_old l with + | Some l -> l + | None -> List.map tree_of_mode_new l (* [alloc_mode] is the mode that our printing has expressed on [ty]. For the example [A -> local_ (B -> C)], we will call [tree_of_typexp] on (B -> C) with @@ -1493,6 +1532,8 @@ let rec tree_of_typexp mode alloc_mode ty = tree_of_typexp mode Alloc.Const.legacy ty )) fl in Otyp_module (tree_of_path (Some Module_type) p, fl) + | Tof_kind jkind -> + Otyp_of_kind (out_jkind_of_desc (Jkind.get jkind)) in if List.memq px !delayed then delayed := List.filter ((!=) px) !delayed; alias_nongen_row mode px ty; @@ -1537,7 +1578,7 @@ and tree_of_labeled_typlist mode tyl = and tree_of_typ_gf {ca_type=ty; ca_modalities=gf; _} = (tree_of_typexp Type Alloc.Const.legacy ty, - tree_of_modalities Immutable [] gf) + tree_of_modalities Immutable gf) (** We are on the RHS of an arrow type, where [ty] is the return type, and [m] is the return mode. This function decides the printed modes on [ty]. @@ -1614,12 +1655,13 @@ let tree_of_typexp mode ty = tree_of_typexp mode Alloc.Const.legacy ty let typexp mode ppf ty = !Oprint.out_type ppf (tree_of_typexp mode ty) +(* Only used for printing a single modality in error message *) let modality ?(id = fun _ppf -> ()) ppf modality = if Mode.Modality.is_id modality then id ppf else modality |> Typemode.untransl_modality - |> tree_of_modality + |> tree_of_modality_new |> !Oprint.out_modality ppf let prepared_type_expr ppf ty = typexp Type ppf ty @@ -1723,7 +1765,8 @@ let tree_of_label l = match l.ld_mutable with | Mutable m -> let mut = - if Alloc.Comonadic.Const.eq m Alloc.Comonadic.Const.legacy then + let open Alloc.Comonadic.Const in + if Misc_stdlib.Le_result.equal ~le m legacy then Om_mutable None else Om_mutable (Some "") @@ -1731,9 +1774,7 @@ let tree_of_label l = mut | Immutable -> Om_immutable in - let ld_modalities = - tree_of_modalities l.ld_mutable l.ld_attributes l.ld_modalities - in + let ld_modalities = tree_of_modalities l.ld_mutable l.ld_modalities in (Ident.name l.ld_id, mut, tree_of_typexp Type l.ld_type, ld_modalities) let tree_of_constructor_arguments = function @@ -2157,8 +2198,7 @@ let tree_of_value_description id decl = let vd = { oval_name = id; oval_type = Otyp_poly(qtvs, ty); - oval_modalities = - tree_of_modalities_new Immutable decl.val_attributes moda; + oval_modalities = tree_of_modalities_new Immutable moda; oval_prims = []; oval_attributes = attrs } @@ -2919,6 +2959,7 @@ let explain_fixed_row pos expl = match expl with print_path p ppf)) p | Rigid -> ignore + | Fixed_existential -> ignore let explain_variant (type variety) : variety Errortrace.variant -> _ = function (* Common *) @@ -2942,7 +2983,7 @@ let explain_variant (type variety) : variety Errortrace.variant -> _ = function dprintf "@,@[%t,@ %a@]" (explain_fixed_row pos e) explain_fixed_row_case k ) - | Errortrace.Fixed_row (_,_, Rigid) -> + | Errortrace.Fixed_row (_,_, (Rigid | Fixed_existential)) -> (* this case never happens *) None (* Equality & Moregen *) @@ -3064,14 +3105,22 @@ let explanation (type variety) intro prev env Some (dprintf "@ @[%a@]" (Jkind.Violation.report_with_offender_sort ~offender:(fun ppf -> type_expr ppf t)) e) - | Errortrace.Unequal_var_jkinds (t1,l1,t2,l2) -> - let fmt_history t l ppf = + | Errortrace.Unequal_var_jkinds (t1,k1,t2,k2) -> + let fmt_history t k ppf = Jkind.(format_history ~intro:( - dprintf "The layout of %a is %a" prepared_type_expr t format l) ppf l) + dprintf "The layout of %a is %a" prepared_type_expr t format k) ppf k) in Some (dprintf "@ because the layouts of their variables are different.\ @ @[%t@;%t@]" - (fmt_history t1 l1) (fmt_history t2 l2)) + (fmt_history t1 k1) (fmt_history t2 k2)) + | Errortrace.Unequal_tof_kind_jkinds (k1, k2) -> + let fmt_history which k ppf = + Jkind.(format_history ~intro:( + dprintf "The kind of %s is %a" which format k) ppf k) + in + Some (dprintf "@ because their kinds are different.\ + @ @[%t@;%t@]" + (fmt_history "the first" k1) (fmt_history "the second" k2)) let mismatch intro env trace = Errortrace.explain trace (fun ~prev h -> explanation intro prev env h) @@ -3140,7 +3189,8 @@ let error trace_format mode subst env tr txt1 ppf txt2 ty_expect_explanation = tr in let jkind_error = match last tr with - | Some (Bad_jkind _ | Bad_jkind_sort _ | Unequal_var_jkinds _) -> + | Some (Bad_jkind _ | Bad_jkind_sort _ | Unequal_var_jkinds _ + | Unequal_tof_kind_jkinds _) -> true | Some (Diff _ | Escape _ | Variant _ | Obj _ | Incompatible_fields _ | Rec_occur _) diff --git a/src/ocaml/typing/printtyp.mli b/src/ocaml/typing/printtyp.mli index 9fb178f07..f0a391afd 100644 --- a/src/ocaml/typing/printtyp.mli +++ b/src/ocaml/typing/printtyp.mli @@ -41,6 +41,7 @@ val strings_of_paths: namespace -> Path.t list -> string list (** Print a list of paths, using the same naming context to avoid name collisions *) +val raw_row_desc : formatter -> row_desc -> unit val raw_type_expr: formatter -> type_expr -> unit val raw_field : formatter -> row_field -> unit val string_of_label: Types.arg_label -> string diff --git a/src/ocaml/typing/printtyped.ml b/src/ocaml/typing/printtyped.ml index f41e0df7d..052d87864 100644 --- a/src/ocaml/typing/printtyped.ml +++ b/src/ocaml/typing/printtyped.ml @@ -313,6 +313,8 @@ let rec core_type i ppf x = | Ttyp_open (path, _mod_ident, t) -> line i ppf "Ttyp_open %a\n" fmt_path path; core_type i ppf t + | Ttyp_of_kind jkind -> + line i ppf "Ttyp_of_kind %a\n" (jkind_annotation i) jkind; | Ttyp_call_pos -> line i ppf "Ttyp_call_pos\n"; and labeled_core_type i ppf (l, t) = @@ -423,7 +425,8 @@ and function_body i ppf (body : function_body) = expression (i+1) ppf e | Tfunction_cases { fc_cases; fc_loc; fc_exp_extra; fc_attributes; fc_arg_mode; - fc_arg_sort; fc_param = _; fc_partial; fc_env = _; fc_ret_type = _ } + fc_arg_sort; fc_param = _; fc_param_debug_uid = _; + fc_partial; fc_env = _; fc_ret_type = _ } -> line i ppf "Tfunction_cases%a %a\n" fmt_partiality fc_partial @@ -548,7 +551,7 @@ and expression i ppf x = line i ppf "representation =\n"; record_representation (i+1) ppf representation; line i ppf "extended_expression =\n"; - option (i+1) expression ppf (Option.map fst extended_expression); + option (i+1) expression ppf (Option.map Misc.fst3 extended_expression); | Texp_record_unboxed_product { fields; representation; extended_expression } -> line i ppf "Texp_record_unboxed_product\n"; @@ -559,7 +562,7 @@ and expression i ppf x = record_unboxed_product_representation (i+1) ppf representation; line i ppf "extended_expression =\n"; option (i+1) expression ppf (Option.map fst extended_expression); - | Texp_field (e, li, _, _, _) -> + | Texp_field (e, _, li, _, _, _) -> line i ppf "Texp_field\n"; expression i ppf e; longident i ppf li; diff --git a/src/ocaml/typing/shape.ml b/src/ocaml/typing/shape.ml index 9ad21d276..2ac9ca706 100644 --- a/src/ocaml/typing/shape.ml +++ b/src/ocaml/typing/shape.ml @@ -77,7 +77,8 @@ module Uid = struct incr id; let comp_unit = match current_unit with - | Some cu -> cu |> Compilation_unit.full_path_as_string + | Some cu -> + Unit_info.modname cu |> Compilation_unit.full_path_as_string | None -> "" in Item { comp_unit; id = !id } @@ -410,9 +411,17 @@ let of_path ~find_shape ~namespace path = Path of label: M.t.lbl Path of label of inline record: - M.t.C.lbl *) + M.t.C.lbl + Path of label of implicit unboxed record: + M.t#.lbl + *) let rec aux : Sig_component_kind.t -> Path.t -> t = fun ns -> function | Pident id -> find_shape ns id + | Pdot (Pextra_ty (path, Punboxed_ty), name) -> + (match ns with + Unboxed_label -> () + | _ -> Misc.fatal_error "Shape.of_path"); + proj (aux Type path) (name, Label) | Pdot (path, name) -> let namespace : Sig_component_kind.t = match (ns : Sig_component_kind.t) with diff --git a/src/ocaml/typing/shape.mli b/src/ocaml/typing/shape.mli index 87d14bf80..f282ca88a 100644 --- a/src/ocaml/typing/shape.mli +++ b/src/ocaml/typing/shape.mli @@ -67,7 +67,7 @@ module Uid : sig val restore_stamp : int -> unit val stamp_of_uid : t -> int option - val mk : current_unit:Compilation_unit.t option -> t + val mk : current_unit:Unit_info.t option -> t val of_compilation_unit_id : Compilation_unit.t -> t val of_compilation_unit_name : Compilation_unit.Name.t -> t val of_predef_id : Ident.t -> t diff --git a/src/ocaml/typing/signature_with_global_bindings.ml b/src/ocaml/typing/signature_with_global_bindings.ml index a93ee0559..da3b3a850 100644 --- a/src/ocaml/typing/signature_with_global_bindings.ml +++ b/src/ocaml/typing/signature_with_global_bindings.ml @@ -20,18 +20,27 @@ let array_fold_left_filter_map f init array = in ans, new_array -let subst t (args : (Global_module.Name.t * Global_module.t) list) = +let name_in_subst (name : Global_module.Name.t) subst = + match name with + | { head; args = [] } -> + (* Not generally okay to just convert to a parameter name, but we're only doing this + to check whether there happens to be a parameter with this name in the subst *) + let head_as_param_name = head |> Global_module.Parameter_name.of_string in + Global_module.Parameter_name.Map.mem head_as_param_name subst + | _ -> false + +let subst t (args : (Global_module.Parameter_name.t * Global_module.t) list) = let { sign; bound_globals } = t in match args with | [] -> t | _ -> (* The global-level substitution *) - let arg_subst = Global_module.Name.Map.of_list args in + let arg_subst = Global_module.Parameter_name.Map.of_list args in (* Take a bound global, substitute arguments into it, then return the updated global while also adding it to the term-level substitution *) let add_and_update_binding subst (bound_global, prec) = let name = Global_module.to_name bound_global in - if Global_module.Name.Map.mem name arg_subst then + if name_in_subst name arg_subst then (* This shouldn't happen: only globals with hidden arguments should be in [bound_globals], and parameters shouldn't have arguments. Previous code that was meant to handle parameterised parameters @@ -69,7 +78,9 @@ let subst t (args : (Global_module.Name.t * Global_module.t) list) = in (* Add an argument to the substitution. *) let add_arg subst (name, value) = - let name_id = Ident.create_global name in + let name_id = + Ident.create_global (name |> Global_module.Name.of_parameter_name) + in let value_as_name = Global_module.to_name value in let value_id = Ident.create_global value_as_name in Subst.add_module name_id (Pident value_id) subst diff --git a/src/ocaml/typing/signature_with_global_bindings.mli b/src/ocaml/typing/signature_with_global_bindings.mli index bf5d76efa..609f413f5 100644 --- a/src/ocaml/typing/signature_with_global_bindings.mli +++ b/src/ocaml/typing/signature_with_global_bindings.mli @@ -51,4 +51,4 @@ val read_from_cmi : Cmi_format.cmi_infos_lazy -> t Note that the argument values themselves won't be returned in the new list of bound globals, since it's assumed that they are already accounted for in the environment. *) -val subst : t -> (Global_module.Name.t * Global_module.t) list -> t +val subst : t -> (Global_module.Parameter_name.t * Global_module.t) list -> t diff --git a/src/ocaml/typing/solver.ml b/src/ocaml/typing/solver.ml index bbefd9776..99a42b16f 100644 --- a/src/ocaml/typing/solver.ml +++ b/src/ocaml/typing/solver.ml @@ -36,6 +36,8 @@ type 'a error = } module Solver_mono (C : Lattices_mono) = struct + type nonrec 'a error = 'a error + type any_morph = Any_morph : ('a, 'b, 'd) C.morph -> any_morph module VarMap = Map.Make (struct @@ -100,6 +102,8 @@ module Solver_mono (C : Lattices_mono) = struct and ('b, 'd) morphvar = | Amorphvar : 'a var * ('a, 'b, 'd) C.morph -> ('b, 'd) morphvar + constraint 'd = _ * _ + [@@ocaml.warning "-62"] let get_key (Amorphvar (v, m)) = v.id, Any_morph m @@ -136,6 +140,8 @@ module Solver_mono (C : Lattices_mono) = struct 'a * ('a, disallowed * 'r) morphvar VarMap.t -> ('a, disallowed * 'r) mode (** [Amodemeet a [mv0, mv1, ..]] represents [a meet mv0 meet mv1 meet ..]. *) + constraint 'd = _ * _ + [@@ocaml.warning "-62"] (** Prints a mode variable, including the set of variables below it (recursively). To handle cycles, [traversed] is the set of variables that @@ -171,7 +177,8 @@ module Solver_mono (C : Lattices_mono) = struct (var_map_to_list v.vlower) and print_morphvar : - type a d. ?traversed:VarSet.t -> a C.obj -> _ -> (a, d) morphvar -> _ = + type a l r. + ?traversed:VarSet.t -> a C.obj -> _ -> (a, l * r) morphvar -> _ = fun ?traversed dst ppf (Amorphvar (v, f)) -> let src = C.src dst f in Format.fprintf ppf "%a(%a)" (C.print_morph dst) f (print_var ?traversed src) @@ -262,7 +269,7 @@ module Solver_mono (C : Lattices_mono) = struct let max (type a) (obj : a C.obj) = Amode (C.max obj) - let of_const a = Amode a + let of_const _obj a = Amode a let apply_morphvar dst morph (Amorphvar (var, morph')) = Amorphvar (var, C.compose dst morph morph') @@ -692,163 +699,3 @@ module Solver_mono (C : Lattices_mono) = struct allow_left (Amodevar mu), true end [@@inline always] - -module Solvers_polarized (C : Lattices_mono) = struct - module S = Solver_mono (C) - - type changes = S.changes - - let empty_changes = S.empty_changes - - let undo_changes = S.undo_changes - - module type Solver_polarized = - Solver_polarized - with type ('a, 'b, 'd) morph := ('a, 'b, 'd) C.morph - and type 'a obj := 'a C.obj - and type 'a error := 'a error - and type changes := changes - - module rec Positive : - (Solver_polarized - with type 'd polarized = 'd pos - and type ('a, 'd) mode_op = ('a, 'd) Negative.mode) = struct - type 'd polarized = 'd pos - - type ('a, 'd) mode_op = ('a, 'd) Negative.mode - - type ('a, 'd) mode = ('a, 'd) S.mode constraint 'd = 'l * 'r - - include Magic_allow_disallow (S) - - let newvar = S.newvar - - let submode = S.submode - - let join = S.join - - let meet = S.meet - - let of_const _ = S.of_const - - let min = S.min - - let max = S.max - - let zap_to_floor = S.zap_to_floor - - let zap_to_ceil = S.zap_to_ceil - - let newvar_above = S.newvar_above - - let newvar_below = S.newvar_below - - let get_ceil = S.get_ceil - - let get_floor = S.get_floor - - let get_loose_ceil = S.get_loose_ceil - - let get_loose_floor = S.get_loose_floor - - let print ?(verbose = false) = S.print ~verbose - - let via_monotone = S.apply - - let via_antitone = S.apply - end - - and Negative : - (Solver_polarized - with type 'd polarized = 'd neg - and type ('a, 'd) mode_op = ('a, 'd) Positive.mode) = struct - type 'd polarized = 'd neg - - type ('a, 'd) mode_op = ('a, 'd) Positive.mode - - type ('a, 'd) mode = ('a, 'r * 'l) S.mode constraint 'd = 'l * 'r - - include Magic_allow_disallow (struct - type ('a, _, 'd) sided = ('a, 'd) mode - - let disallow_right = S.disallow_left - - let disallow_left = S.disallow_right - - let allow_right = S.allow_left - - let allow_left = S.allow_right - end) - - let newvar = S.newvar - - let submode obj m0 m1 ~log = - Result.map_error - (fun { left; right } -> { left = right; right = left }) - (S.submode obj m1 m0 ~log) - - let join = S.meet - - let meet = S.join - - let of_const _ = S.of_const - - let min = S.max - - let max = S.min - - let zap_to_floor = S.zap_to_ceil - - let zap_to_ceil = S.zap_to_floor - - let newvar_above = S.newvar_below - - let newvar_below = S.newvar_above - - let get_ceil = S.get_floor - - let get_floor = S.get_ceil - - let get_loose_ceil = S.get_loose_floor - - let get_loose_floor = S.get_loose_ceil - - let print ?(verbose = false) = S.print ~verbose - - let via_monotone = S.apply - - let via_antitone = S.apply - end - - (* Definitions to show that this solver works over a category. *) - module Category = struct - type 'a obj = 'a C.obj - - type ('a, 'b, 'd) morph = ('a, 'b, 'd) C.morph - - type ('a, 'd) mode = - | Positive of ('a, 'd pos) Positive.mode - | Negative of ('a, 'd neg) Negative.mode - - let apply_into_positive : - type a b l r. - b obj -> - (a, b, l * r) morph -> - (a, l * r) mode -> - (b, l * r) Positive.mode = - fun obj morph -> function - | Positive mode -> Positive.via_monotone obj morph mode - | Negative mode -> Positive.via_antitone obj morph mode - - let apply_into_negative : - type a b l r. - b obj -> - (a, b, l * r) morph -> - (a, l * r) mode -> - (b, r * l) Negative.mode = - fun obj morph -> function - | Positive mode -> Negative.via_antitone obj morph mode - | Negative mode -> Negative.via_monotone obj morph mode - end -end -[@@inline always] diff --git a/src/ocaml/typing/solver_intf.mli b/src/ocaml/typing/solver_intf.mli index 1ee7e2696..1862ccb8c 100644 --- a/src/ocaml/typing/solver_intf.mli +++ b/src/ocaml/typing/solver_intf.mli @@ -61,7 +61,7 @@ module type Lattices_mono = sig - [disallowed], meaning the morphism cannot be on the left because it does not have right adjoint. Similar for ['r]. *) - type ('a, 'b, 'd) morph + type ('a, 'b, 'd) morph constraint 'd = 'l * 'r (* Due to the implementation in [solver.ml], a mode doesn't have sufficient information to infer the object it lives in, whether at compile-time or @@ -160,41 +160,40 @@ module type Lattices_mono = sig val print_morph : 'b obj -> Format.formatter -> ('a, 'b, 'd) morph -> unit end -(** Arrange the permissions appropriately for a positive lattice, by - doing nothing. *) -type 'a pos = 'b * 'c constraint 'a = 'b * 'c - -(** Arrange the permissions appropriately for a negative lattice, by - swapping left and right. *) -type 'a neg = 'c * 'b constraint 'a = 'b * 'c - -module type Solver_polarized = sig +module type Solver_mono = sig (* These first few types will be replaced with types from the Lattices_mono *) (** The morphism type from the [Lattices_mono] we're working with. See comments on [Lattices_mono.morph]. *) - type ('a, 'b, 'd) morph + type ('a, 'b, 'd) morph constraint 'd = 'l * 'r (** The object type from the [Lattices_mono] we're working with *) type 'a obj type 'a error - (** For a negative lattice, we reverse the direction of adjoints. We thus use - [neg] for [polarized] for negative lattices, which reverses ['l * 'r] to - ['r * 'l]. (Use [pos] for positive lattices.) *) - type 'd polarized constraint 'd = 'l * 'r + (* Backtracking facilities used by [types.ml] *) + (** Represents a sequence of state mutations caused by mode operations. All + mutating operations in this module take a [log:changes ref option] and + append to it all changes made, regardless of success or failure. It is + [option] only for performance reasons; the caller should never provide + [log:None]. The caller is responsible for taking care of the appended log: + they can either revert the changes using [undo_changes], or commit the + changes to the global log in [types.ml]. *) type changes + (** An empty sequence of changes. *) + val empty_changes : changes + + (** Undo the sequence of changes recorded. *) + val undo_changes : changes -> unit + (** A mode with carrier type ['a] and allowance ['d]. See Note [Allowance] in allowance.mli.*) type ('a, 'd) mode constraint 'd = 'l * 'r - (** The mode type for the opposite polarity. *) - type ('a, 'd) mode_op constraint 'd = 'l * 'r - include Allow_disallow with type ('a, _, 'd) sided = ('a, 'd) mode (** Returns the mode representing the given constant. *) @@ -269,23 +268,12 @@ module type Solver_polarized = sig val print : ?verbose:bool -> 'a obj -> Format.formatter -> ('a, 'l * 'r) mode -> unit - (** Apply a monotone morphism whose source and target modes are of the - polarity of this enclosing module. That is, [Positive.apply_monotone] - takes a positive mode to a positive mode. *) - val via_monotone : + (** Apply a monotone morphism. *) + val apply : 'b obj -> - ('a, 'b, ('l * 'r) polarized) morph -> + ('a, 'b, 'l * 'r) morph -> ('a, 'l * 'r) mode -> ('b, 'l * 'r) mode - - (** Apply an antitone morphism whose target mode is the mode defined in - this module and whose source mode is the dual mode. That is, - [Positive.apply_antitone] takes a negative mode to a positive one. *) - val via_antitone : - 'b obj -> - ('a, 'b, ('l * 'r) polarized) morph -> - ('a, 'r * 'l) mode_op -> - ('b, 'l * 'r) mode end module type S = sig @@ -304,70 +292,10 @@ module type S = sig module Magic_equal (X : Equal) : Equal with type ('a, 'b, 'c) t = ('a, 'b, 'c) X.t - (** Solver that supports polarized lattices; needed because some morphisms - are antitone *) - module Solvers_polarized (C : Lattices_mono) : sig - (* Backtracking facilities used by [types.ml] *) - - (** Represents a sequence of state mutations caused by mode operations. All - mutating operations in this module take a [log:changes ref option] and - append to it all changes made, regardless of success or failure. It is - [option] only for performance reasons; the caller should never provide - [log:None]. The caller is responsible for taking care of the appended log: - they can either revert the changes using [undo_changes], or commit the - changes to the global log in [types.ml]. *) - type changes - - (** An empty sequence of changes. *) - val empty_changes : changes - - (** Undo the sequence of changes recorded. *) - val undo_changes : changes -> unit - - (* Construct a new category based on the original category [C]. Objects are - two copies of the objects in [C] of opposite polarity. The positive copy - is identical to the original lattice. The negative copy has its lattice - structure reversed. Morphism are four copies of the morphisms in [C], from - two copies of objects to two copies of objects. *) - - module type Solver_polarized = - Solver_polarized - with type ('a, 'b, 'd) morph := ('a, 'b, 'd) C.morph - and type 'a obj := 'a C.obj - and type 'a error := 'a error - and type changes := changes - - module rec Positive : - (Solver_polarized - with type 'd polarized = 'd pos - and type ('a, 'd) mode_op = ('a, 'd) Negative.mode) - - and Negative : - (Solver_polarized - with type 'd polarized = 'd neg - and type ('a, 'd) mode_op = ('a, 'd) Positive.mode) - - (* The following definitions show how this solver works over a category by - defining objects and morphisms. These definitions are not used in - practice. They are put into a module to make it easy to spot if we end up - using these in the future. *) - module Category : sig - type 'a obj = 'a C.obj - - type ('a, 'b, 'd) morph = ('a, 'b, 'd) C.morph - - type ('a, 'd) mode = - | Positive of ('a, 'd pos) Positive.mode - | Negative of ('a, 'd neg) Negative.mode - - val apply_into_positive : - 'b obj -> ('a, 'b, 'd) morph -> ('a, 'd) mode -> ('b, 'd) Positive.mode - - val apply_into_negative : - 'b obj -> - ('a, 'b, 'l * 'r) morph -> - ('a, 'l * 'r) mode -> - ('b, 'r * 'l) Negative.mode - end - end + (** Solver that supports lattices with monotone morphisms between them. *) + module Solver_mono (C : Lattices_mono) : + Solver_mono + with type ('a, 'b, 'd) morph := ('a, 'b, 'd) C.morph + and type 'a obj := 'a C.obj + and type 'a error = 'a error end diff --git a/src/ocaml/typing/subst.ml b/src/ocaml/typing/subst.ml index 60f44104b..383fc053a 100644 --- a/src/ocaml/typing/subst.ml +++ b/src/ocaml/typing/subst.ml @@ -480,7 +480,7 @@ let rec typexp copy_scope s ty = let more' = match mored with Tsubst (ty, None) -> ty - | Tconstr _ | Tnil -> typexp copy_scope s more + | Tconstr _ | Tnil | Tof_kind _ -> typexp copy_scope s more | Tunivar _ | Tvar _ -> if should_duplicate_vars then newpersty mored else if dup && is_Tvar more then newgenty mored diff --git a/src/ocaml/typing/tast_iterator.ml b/src/ocaml/typing/tast_iterator.ml index a436e558e..1e4d617f1 100644 --- a/src/ocaml/typing/tast_iterator.ml +++ b/src/ocaml/typing/tast_iterator.ml @@ -321,7 +321,7 @@ let function_body sub body = | Tfunction_cases { fc_cases; fc_exp_extra; fc_loc; fc_attributes; fc_env; fc_arg_mode = _; fc_arg_sort = _; fc_ret_type = _; - fc_partial = _; fc_param = _; + fc_partial = _; fc_param = _; fc_param_debug_uid = _; } -> List.iter (sub.case sub) fc_cases; Option.iter (extra sub) fc_exp_extra; @@ -370,11 +370,11 @@ let expr sub {exp_loc; exp_extra; exp_desc; exp_env; exp_attributes; _} = | Texp_variant (_, expo) -> Option.iter (fun (expr, _) -> sub.expr sub expr) expo | Texp_record { fields; extended_expression; _} -> iter_fields fields; - Option.iter (fun (exp, _) -> sub.expr sub exp) extended_expression; + Option.iter (fun (exp, _, _) -> sub.expr sub exp) extended_expression; | Texp_record_unboxed_product { fields; extended_expression; _} -> iter_fields fields; Option.iter (fun (exp, _) -> sub.expr sub exp) extended_expression; - | Texp_field (exp, lid, _, _, _) -> + | Texp_field (exp, _, lid, _, _, _) -> iter_loc sub lid; sub.expr sub exp | Texp_unboxed_field (exp, _, lid, _, _) -> @@ -685,6 +685,7 @@ let typ sub {ctyp_loc; ctyp_desc; ctyp_env; ctyp_attributes; _} = | Ttyp_open (_, mod_ident, t) -> iter_loc sub mod_ident; sub.typ sub t + | Ttyp_of_kind jkind -> sub.jkind_annotation sub jkind | Ttyp_call_pos -> () let class_structure sub {cstr_self; cstr_fields; _} = diff --git a/src/ocaml/typing/tast_mapper.ml b/src/ocaml/typing/tast_mapper.ml index c75ace377..df78f8916 100644 --- a/src/ocaml/typing/tast_mapper.ml +++ b/src/ocaml/typing/tast_mapper.ml @@ -339,6 +339,7 @@ let pat let function_param sub { fp_kind; fp_param; + fp_param_debug_uid; fp_arg_label; fp_partial; fp_curry; @@ -365,6 +366,7 @@ let function_param sub in { fp_kind; fp_param; + fp_param_debug_uid; fp_arg_label; fp_partial; fp_curry; @@ -389,7 +391,8 @@ let function_body sub body = | Tfunction_body body -> Tfunction_body (sub.expr sub body) | Tfunction_cases - { fc_cases; fc_partial; fc_param; fc_loc; fc_exp_extra; fc_attributes; + { fc_cases; fc_partial; fc_param; fc_param_debug_uid; + fc_loc; fc_exp_extra; fc_attributes; fc_arg_mode; fc_arg_sort; fc_env; fc_ret_type; } -> let fc_loc = sub.location sub fc_loc in @@ -398,7 +401,8 @@ let function_body sub body = let fc_exp_extra = Option.map (extra sub) fc_exp_extra in let fc_env = sub.env sub fc_env in Tfunction_cases - { fc_cases; fc_partial; fc_param; fc_loc; fc_exp_extra; fc_attributes; + { fc_cases; fc_partial; fc_param; fc_param_debug_uid; + fc_loc; fc_exp_extra; fc_attributes; fc_arg_mode; fc_arg_sort; fc_env; fc_ret_type; } let expr sub x = @@ -421,10 +425,12 @@ let expr sub x = in let comp_cb_iterator = match comp_cb_iterator with | Texp_comp_range - { ident; pattern; start; stop; direction } + { ident; ident_debug_uid; pattern; start; stop; + direction } -> Texp_comp_range { ident + ; ident_debug_uid ; pattern (* Just mirroring [ident], ignored (see [Texp_for] *) @@ -498,7 +504,8 @@ let expr sub x = Texp_record { fields = map_fields fields; representation; extended_expression = - Option.map (fun (exp, ubr) -> (sub.expr sub exp, ubr)) extended_expression; + Option.map (fun (exp, sort, ubr) -> (sub.expr sub exp, sort, ubr)) + extended_expression; alloc_mode } | Texp_record_unboxed_product @@ -509,8 +516,8 @@ let expr sub x = Option.map (fun (exp, sort) -> (sub.expr sub exp, sort)) extended_expression } - | Texp_field (exp, lid, ld, float, ubr) -> - Texp_field (sub.expr sub exp, map_loc sub lid, ld, float, ubr) + | Texp_field (exp, sort, lid, ld, float, ubr) -> + Texp_field (sub.expr sub exp, sort, map_loc sub lid, ld, float, ubr) | Texp_unboxed_field (exp, sort, lid, ld, uu) -> Texp_unboxed_field (sub.expr sub exp, sort, map_loc sub lid, ld, uu) | Texp_setfield (exp1, am, lid, ld, exp2) -> @@ -601,11 +608,13 @@ let expr sub x = Texp_object (sub.class_structure sub cl, sl) | Texp_pack mexpr -> Texp_pack (sub.module_expr sub mexpr) - | Texp_letop {let_; ands; param; param_sort; body; body_sort; partial} -> + | Texp_letop {let_; ands; param; param_debug_uid; param_sort; + body; body_sort; partial} -> Texp_letop{ let_ = sub.binding_op sub let_; ands = List.map (sub.binding_op sub) ands; param; + param_debug_uid; param_sort; body = sub.case sub body; body_sort; @@ -937,6 +946,8 @@ let typ sub x = Ttyp_package (sub.package_type sub pack) | Ttyp_open (path, mod_ident, t) -> Ttyp_open (path, map_loc sub mod_ident, sub.typ sub t) + | Ttyp_of_kind jkind -> + Ttyp_of_kind (sub.jkind_annotation sub jkind) in let ctyp_attributes = sub.attributes sub x.ctyp_attributes in {x with ctyp_loc; ctyp_desc; ctyp_env; ctyp_attributes} diff --git a/src/ocaml/typing/typeclass.ml b/src/ocaml/typing/typeclass.ml index e26e7006f..2789a8f86 100644 --- a/src/ocaml/typing/typeclass.ml +++ b/src/ocaml/typing/typeclass.ml @@ -832,7 +832,7 @@ let rec class_field_first_pass self_loc cl_num sign self_scope acc cf = Ctype.unify val_env (Ctype.newmono ty') ty; Typecore.type_approx val_env sbody ty' | Tpoly (ty1, tl) -> - let _, ty1' = Ctype.instance_poly ~fixed:false tl ty1 in + let ty1' = Ctype.instance_poly tl ty1 in Typecore.type_approx val_env sbody ty1' | _ -> assert false with Ctype.Unify err -> diff --git a/src/ocaml/typing/typecore.ml b/src/ocaml/typing/typecore.ml index 19161a2f5..94b6b2808 100644 --- a/src/ocaml/typing/typecore.ml +++ b/src/ocaml/typing/typecore.ml @@ -126,6 +126,10 @@ type contention_context = | Write_mutable | Force_lazy +type visibility_context = + | Read_mutable + | Write_mutable + type unsupported_stack_allocation = | Lazy | Module @@ -257,6 +261,7 @@ type error = Value.error * submode_reason * Env.locality_context option * contention_context option * + visibility_context option * Env.shared_context option | Curried_application_complete of arg_label * Mode.Alloc.error * [`Prefix|`Single_arg|`Entire_apply] @@ -312,7 +317,7 @@ let deep_copy () = TypeHash.add table ty ty'; let desc = match get_desc ty with - | Tvar _ | Tnil | Tunivar _ as desc -> desc + | Tvar _ | Tnil | Tunivar _ | Tof_kind _ as desc -> desc | Tvariant _ as desc -> (* fixme *) desc | Tarrow (l,t1,t2,c) -> Tarrow (l, copy t1, copy t2, c) | Ttuple tl -> Ttuple (List.map (fun (l, t) -> l, copy t) tl) @@ -500,6 +505,9 @@ type expected_mode = contention_context : contention_context option; (** Explains why contention axis of [mode] is low. *) + visibility_context : visibility_context option; + (** Explains why visibility axis of [mode] is low. *) + mode : Value.r; (** The upper bound, hence r (right) *) @@ -578,12 +586,13 @@ let check_tail_call_local_returning loc env ap_mode {region_mode; _} = let meet_regional mode = let mode = Value.disallow_left mode in - Value.meet_with (Comonadic Areality) Regionality.Const.Regional mode + Value.meet_with Areality Regionality.Const.Regional mode let mode_default mode = { position = RNontail; locality_context = None; contention_context = None; + visibility_context = None; mode = Value.disallow_left mode; strictly_local = false; tuple_modes = None } @@ -633,10 +642,15 @@ let mode_with_position mode position = let mode_max_with_position position = { mode_max with position } +(** Take the expected mode of [exclave_ exp], return the expected mode of [exp]. + [expected_mode] must be higher than [regional]. *) let mode_exclave expected_mode = let mode = - Value.join_with (Comonadic Areality) - Regionality.Const.Local (as_single_mode expected_mode) + as_single_mode expected_mode + (* if we expect an exclave to be [regional], then inside the exclave the + body should be [local] *) + |> value_to_alloc_r2l + |> alloc_as_value in { (mode_default mode) with strictly_local = true @@ -652,18 +666,26 @@ let mode_coerce mode expected_mode = let mode_lazy expected_mode = let expected_mode = - mode_coerce (Value.max_with (Comonadic Areality) Regionality.global) + mode_coerce ( + Value.max_with (Comonadic Areality) Regionality.global + |> Value.meet_with Yielding Yielding.Const.Unyielding) expected_mode in + let mode_crossing = + Crossing.of_bounds { + comonadic = { + Alloc.Comonadic.Const.max with + (* The thunk is evaluated only once, so we only require it to be [once], + even if the [lazy] is [many]. *) + linearity = Many; + (* The thunk is evaluated only when the [lazy] is [uncontended], so we + only require it to be [nonportable], even if the [lazy] is [portable]. + *) + portability = Portable }; + monadic = Alloc.Monadic.Const.min } + in let closure_mode = - expected_mode - |> as_single_mode - (* The thunk is evaluated only once, so we only require it to be [once], - even if the [lazy] is [many]. *) - |> Value.join_with (Comonadic Linearity) Linearity.Const.Once - (* The thunk is evaluated only when the [lazy] is [uncontended], so we only require it - to be [nonportable], even if the [lazy] is [portable]. *) - |> Value.join_with (Comonadic Portability) Portability.Const.Nonportable + expected_mode |> as_single_mode |> Crossing.apply_right mode_crossing in {expected_mode with locality_context = Some Lazy }, closure_mode @@ -727,9 +749,10 @@ let submode ~loc ~env ?(reason = Other) ?shared_context mode expected_mode = | Error failure_reason -> let locality_context = expected_mode.locality_context in let contention_context = expected_mode.contention_context in + let visibility_context = expected_mode.visibility_context in let err = Submode_failed(failure_reason, reason, locality_context, - contention_context, shared_context) + contention_context, visibility_context, shared_context) in raise (error(loc, env, err)) @@ -760,7 +783,9 @@ let tuple_pat_mode mode tuple_modes = let global_pat_mode {mode; _}= let mode = - Value.meet_with (Comonadic Areality) Regionality.Const.Global mode + mode + |> Value.meet_with Areality Regionality.Const.Global + |> Value.meet_with Yielding Yielding.Const.Unyielding in simple_pat_mode mode @@ -1110,22 +1135,26 @@ let check_construct_mutability ~loc ~env mutability ty ?modalities block_mode = (** The [expected_mode] of the record when projecting a mutable field. *) let mode_project_mutable = let mode = - Contention.Const.Shared - |> Contention.of_const - |> Value.max_with (Monadic Contention) + { Value.Const.max with + visibility = Visibility.Const.Read; + contention = Contention.Const.Shared } + |> Value.of_const in { (mode_default mode) with - contention_context = Some Read_mutable } + contention_context = Some Read_mutable; + visibility_context = Some Read_mutable } (** The [expected_mode] of the record when mutating a mutable field. *) let mode_mutate_mutable = let mode = - Contention.Const.Uncontended - |> Contention.of_const - |> Value.max_with (Monadic Contention) + { Value.Const.max with + visibility = Read_write; + contention = Uncontended } + |> Value.of_const in { (mode_default mode) with - contention_context = Some Write_mutable } + contention_context = Some Write_mutable; + visibility_context = Some Write_mutable } (** The [expected_mode] of the lazy expression when forcing it. *) let mode_force_lazy = @@ -1913,7 +1942,7 @@ let solve_Ppat_constraint tps loc env mode sty expected_ty = let expected_ty' = match get_desc expected_ty' with | Tpoly (expected_ty', tl) -> - snd (instance_poly ~keep_names:true ~fixed:false tl expected_ty') + instance_poly ~keep_names:true tl expected_ty' | _ -> expected_ty' in (cty, ty, expected_ty') @@ -2765,7 +2794,7 @@ and type_pat_aux solve_Ppat_array ~refine:false loc penv mutability expected_ty in let modalities = - Typemode.transl_modalities ~maturity:Stable mutability [] [] + Typemode.transl_modalities ~maturity:Stable mutability [] in check_project_mutability ~loc ~env:!!penv mutability alloc_mode.mode; let alloc_mode = Modality.Value.Const.apply modalities alloc_mode.mode in @@ -3846,6 +3875,7 @@ let list_labels env ty = (* Collecting arguments for function applications *) +(* See also Note [Type-checking applications] *) type untyped_apply_arg = | Known_arg of { sarg : Parsetree.expression; @@ -3961,6 +3991,71 @@ let check_curried_application_complete ~env ~app_loc args = in loop false args +(* Note [Type-checking applications] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + This Note explains how we type-check a function application. It focuses on + the common case. Additions to this Note explaining the various special + cases (and why levels are bumped where they are) are welcome. + + 1. We type-check the function. This is done right in [type_expect_] in + the [Pexp_apply] case. (Everything hereafter is done in [type_application].) + + 2. We analyze the type of the function, building up a list of [Arg] and + [Omitted] nodes describing the arguments in that type. This is done in + [collect_apply_args]. The ordering in this list is based on the type of the + function, *not* the order of arguments as written in the source code. (The + actual arguments passed in the source code are reordered by a quadratic + algorithm, calling [extract_label] for each arrow evident in the function's + type. But this algorithm is fast in the common case.) An [Arg] denotes an + argument that will actually be passed to the function. It is one of these + cases: + + * [Known_arg]: This is an argument whose type is dictated by the (known) + type of the function being applied. + + * [Unknown_arg]: This is an argument whose type is unknown, either because + the type of the function is unknown (because the function is itself + lambda-bound) or because the function is over-applied. + + * [Eliminated_optional_arg]: This is an optional argument (either a normal + optional argument with [?] or one labeled with [%call_pos]) that will be + supplied, even though the user did not actually write the argument in. + + An [Omitted] argument denotes one left off by partial application. However, + [collect_apply_args] stops when it runs out of source arguments at the + application site, so any omitted arguments after all the supplied arguments + are left off the list returned from [collect_apply_args]. + + 3. Type-check all of the [Arg] arguments, by mapping [type_apply_arg] over + the list of arguments. This handles all three varieties of [Arg] argument; + we no longer track the distinction between the three cases. + + [Omitted] arguments are left untouched. + + 4. Type-check all of the [Omitted] arguments, in [type_omitted_parameters]. + There are two critical steps of type-checking an omitted argument: + + * Adjust the final type of the application to be a function taking the type + of the omitted argument as a parameter. + + * Ensure that the constructed arrow (and allocation of the closure) has the + correct mode: if any of the closed-over arguments is local or once, say, + then the final result must also be local or once. + + This is done (working right-to-left over the list produced by + [collect_apply_args]) by collecting up passed [Arg]s until an [Omitted] is + encountered, and then doing a submode check on each collected [Arg] against + the expected mode of the final closure. In addition, we use the [close_over] + and [partial_apply] functions from [Mode.Alloc] to make sure that the modes + of the constructed arrows themselves are correct. This algorithm is + quadratic, looking at each previously seen [Arg] for every [Omitted]. (It + seems to be easy to make this not quadratic, though.) +*) + +(* This function processes any arguments remaining after traversing the type of + the function; these would be over-saturated arguments or arguments to a + function whose type is not known. *) let collect_unknown_apply_args env funct ty_fun mode_fun rev_args sargs ret_tvar = let labels_match ~param ~arg = param = arg @@ -4062,6 +4157,7 @@ let collect_unknown_apply_args env funct ty_fun mode_fun rev_args sargs ret_tvar in loop ty_fun mode_fun rev_args sargs +(* See Note [Type-checking applications] for an overview *) let collect_apply_args env funct ignore_labels ty_fun ty_fun0 mode_fun sargs ret_tvar = let warned = ref false in let rec loop ty_fun ty_fun0 mode_fun rev_args sargs = @@ -4172,6 +4268,7 @@ let collect_apply_args env funct ignore_labels ty_fun ty_fun0 mode_fun sargs ret in loop ty_fun ty_fun0 mode_fun [] sargs +(* See Note [Type-checking applications] for an overview *) let type_omitted_parameters expected_mode env loc ty_ret mode_ret args = let ty_ret, mode_ret, _, _, args = List.fold_left @@ -4273,7 +4370,7 @@ let rec is_nonexpansive exp = lbl.lbl_mut = Immutable && is_nonexpansive exp | Kept _ -> true) fields - && is_nonexpansive_opt (Option.map fst extended_expression) + && is_nonexpansive_opt (Option.map Misc.fst3 extended_expression) | Texp_record_unboxed_product { fields; extended_expression } -> Array.for_all (fun (lbl, definition) -> @@ -4283,7 +4380,7 @@ let rec is_nonexpansive exp = | Kept _ -> true) fields && is_nonexpansive_opt (Option.map fst extended_expression) - | Texp_field(exp, _, _, _, _) -> is_nonexpansive exp + | Texp_field(exp, _, _, _, _, _) -> is_nonexpansive exp | Texp_unboxed_field(exp, _, _, _, _) -> is_nonexpansive exp | Texp_ifthenelse(_cond, ifso, ifnot) -> is_nonexpansive ifso && is_nonexpansive_opt ifnot @@ -4320,12 +4417,9 @@ let rec is_nonexpansive exp = | Texp_assert (exp, _) -> is_nonexpansive exp | Texp_apply ( - { exp_desc = Texp_ident (_, _, {val_kind = - Val_prim {Primitive.prim_name = - ("%raise" | "%reraise" | "%raise_notrace")}}, - Id_prim _, _) }, - [Nolabel, Arg (e, _)], _, _, _) -> - is_nonexpansive e + { exp_desc = Texp_ident (_, _, {val_kind = Val_prim prim}, Id_prim _, _) }, + args, _, _, _) -> + is_nonexpansive_prim prim args | Texp_array (_, _, _ :: _, _) | Texp_apply _ | Texp_try _ @@ -4352,6 +4446,15 @@ let rec is_nonexpansive exp = which is non-expansive: *) | Texp_hole _ -> true +and is_nonexpansive_prim (prim : Primitive.description) args = + match prim.prim_name, args with + | ("%raise" | "%reraise" | "%raise_notrace"), [Nolabel, Arg (e, _)] -> + is_nonexpansive e + | ("%identity" | "%obj_magic"), [Nolabel, Arg (e, _)] + when not (Language_extension.erasable_extensions_only ()) -> + is_nonexpansive e + | _ -> false + and is_nonexpansive_mod mexp = match mexp.mod_desc with | Tmod_ident _ @@ -4654,9 +4757,9 @@ let check_univars env kind exp ty_expected vars = match get_desc pty with Tpoly (body, tl) -> (* Enforce scoping for type_let: - since body is not generic, instance_poly only makes + since body is not generic, instance_poly_fixed only makes copies of nodes that have a Tunivar as descendant *) - let univars, ty' = instance_poly ~fixed:true tl body in + let univars, ty' = instance_poly_fixed tl body in let vars, exp_ty = instance_parameterized_type vars exp.exp_type in List.iter2 (fun uvar var -> (* This checks that the term doesn't require more specific jkinds @@ -4993,11 +5096,12 @@ let proper_exp_loc exp = (* To find reasonable names for let-bound and lambda-bound idents *) let rec name_pattern default = function - [] -> Ident.create_local default + [] -> Ident.create_local default, + Shape.Uid.internal_not_actually_unique | p :: rem -> match p.pat_desc with - Tpat_var (id, _, _, _) -> id - | Tpat_alias(_, id, _, _, _, _) -> id + Tpat_var (id, _, uid, _) -> id, uid + | Tpat_alias(_, id, _, uid, _, _) -> id, uid | _ -> name_pattern default rem let name_cases default lst = @@ -5099,13 +5203,13 @@ let unique_use ~loc ~env mode_l mode_r = | Ok () -> () | Error e -> let e : Mode.Value.error = Error (Monadic Uniqueness, e) in - raise (error(loc, env, Submode_failed(e, Other, None, None, None))) + raise (error(loc, env, Submode_failed(e, Other, None, None, None, None))) ); (match Linearity.submode linearity Linearity.many with | Ok () -> () | Error e -> let e : Mode.Value.error = Error (Comonadic Linearity, e) in - raise (error (loc, env, Submode_failed(e, Other, None, None, None))) + raise (error (loc, env, Submode_failed(e, Other, None, None, None, None))) ); (Uniqueness.disallow_left Uniqueness.aliased, Linearity.disallow_right Linearity.many) @@ -5269,7 +5373,7 @@ let split_function_ty if vars = [] then ty else begin with_level ~level:generic_level - (fun () -> snd (instance_poly ~keep_names:true ~fixed:false vars ty)) + (fun () -> instance_poly ~keep_names:true vars ty) end end in @@ -5725,7 +5829,16 @@ and type_expect_ Array.map (unify_kept loc exp.exp_loc ty_exp mode) lbl.lbl_all in let ubr = Unique_barrier.not_computed () in - Some ({exp with exp_type = ty_exp}, ubr), label_definitions + let sort = + match + Ctype.type_sort ~why:Record_functional_update ~fixed:false + env exp.exp_type + with + | Ok sort -> sort + | Error err -> + raise (error (loc, env, Record_not_rep(ty_expected, err))) + in + Some ({exp with exp_type = ty_exp}, sort, ubr), label_definitions in let num_fields = match lbl_exp_list with [] -> assert false @@ -5752,16 +5865,7 @@ and type_expect_ | Unboxed_product -> let opt_exp = match opt_exp with | None -> None - | Some (exp, _) -> - let sort = - Ctype.type_sort ~why:Record_functional_update ~fixed:false - env exp.exp_type - in - match sort with - | Ok sort -> Some (exp, sort) - | Error err -> - raise - (error (loc, env, Record_not_rep(ty_expected, err))) + | Some (exp, sort, _) -> Some (exp, sort) in Texp_record_unboxed_product { fields; representation; @@ -5990,6 +6094,7 @@ and type_expect_ } end | Pexp_apply(sfunct, sargs) -> + (* See Note [Type-checking applications] *) assert (sargs <> []); let pm = position_and_mode env expected_mode sexp in let funct_mode, funct_expected_mode = @@ -6202,7 +6307,7 @@ and type_expect_ Language_extension.assert_enabled ~loc Layouts Language_extension.Stable; type_expect_record ~overwrite Unboxed_product lid_sexp_list opt_sexp | Pexp_field(srecord, lid) -> - let (record, rmode, label, _) = + let (record, record_sort, rmode, label, _) = type_label_access Legacy env srecord Env.Projection lid in let ty_arg = @@ -6224,7 +6329,8 @@ and type_expect_ | Record_mixed mixed -> begin match mixed.(label.lbl_num) with | Float_boxed -> true - | Float64 | Float32 | Value | Bits32 | Bits64 | Vec128 | Word -> + | Float64 | Float32 | Value | Bits32 | Bits64 | Vec128 | Word + | Product _ -> false end | _ -> false @@ -6245,14 +6351,16 @@ and type_expect_ Non_boxing uu in rue { - exp_desc = Texp_field(record, lid, label, boxing, Unique_barrier.not_computed ()); + exp_desc = + Texp_field(record, record_sort, lid, label, boxing, + Unique_barrier.not_computed ()); exp_loc = loc; exp_extra = []; exp_type = ty_arg; exp_attributes = sexp.pexp_attributes; exp_env = env } | Pexp_unboxed_field(srecord, lid) -> Language_extension.assert_enabled ~loc Layouts Language_extension.Stable; - let (record, rmode, label, _) = + let (record, record_sort, rmode, label, _) = type_label_access Unboxed_product env srecord Env.Projection lid in let ty_arg = @@ -6268,15 +6376,6 @@ and type_expect_ if Types.is_mutable label.lbl_mut then fatal_error "Typecore.type_expect_: unboxed record labels are never mutable"; - let record_sort = - Ctype.type_sort ~why:Record_projection ~fixed:false env record.exp_type - in - let record_sort = match record_sort with - | Ok sort -> sort - | Error err -> - raise - (Error (loc, env, Record_projection_not_rep(record.exp_type, err))) - in let mode = Modality.Value.Const.apply label.lbl_modalities rmode in let mode = cross_left env ty_arg mode in submode ~loc ~env mode expected_mode; @@ -6288,7 +6387,7 @@ and type_expect_ exp_attributes = sexp.pexp_attributes; exp_env = env } | Pexp_setfield(srecord, lid, snewval) -> - let (record, rmode, label, expected_type) = + let (record, _, rmode, label, expected_type) = type_label_access Legacy env srecord Env.Mutation lid in let ty_record = if expected_type = None @@ -6412,8 +6511,7 @@ and type_expect_ (mk_expected ~explanation:For_loop_stop_index Predef.type_int) in let env = Env.add_share_lock For_loop env in - (* When we'll want to add Uid to for loops, we can take it from here. *) - let (for_id, _for_uid), new_env = + let (for_id, for_uid), new_env = type_for_loop_index ~loc ~env ~param in let new_env = Env.add_region_lock new_env in @@ -6422,8 +6520,9 @@ and type_expect_ type_statement ~explanation:For_loop_body ~position new_env sbody in rue { - exp_desc = Texp_for {for_id; for_pat = param; for_from; for_to; - for_dir = dir; for_body; for_body_sort }; + exp_desc = Texp_for {for_id; for_debug_uid = for_uid; for_pat = param; + for_from; for_to; for_dir = dir; for_body; + for_body_sort }; exp_loc = loc; exp_extra = []; exp_type = instance Predef.type_unit; exp_attributes = sexp.pexp_attributes; @@ -6496,7 +6595,7 @@ and type_expect_ if !Clflags.principal && get_level typ <> generic_level then Location.prerr_warning loc (Warnings.Not_principal "this use of a polymorphic method"); - snd (instance_poly ~fixed:false tl ty) + instance_poly tl ty | Tvar _ -> let ty' = newvar (Jkind.Builtin.value ~why:Object_field) in unify env (instance typ) (newty(Tpoly(ty',[]))); @@ -6764,7 +6863,7 @@ and type_expect_ with_local_level begin fun () -> let vars, ty'' = with_local_level_if_principal - (fun () -> instance_poly ~fixed:true tl ty') + (fun () -> instance_poly_fixed tl ty') ~post:(fun (_,ty'') -> generalize_structure ty'') in let exp = type_expect env expected_mode sbody (mk_expected ty'') in @@ -6908,7 +7007,7 @@ and type_expect_ | [case] -> case | _ -> assert false in - let param = name_cases "param" cases in + let param, param_debug_uid = name_cases "param" cases in let let_ = { bop_op_name = slet.pbop_op; bop_op_path = op_path; @@ -6920,7 +7019,8 @@ and type_expect_ bop_loc = slet.pbop_loc; } in let desc = - Texp_letop{let_; ands; param; param_sort; body; body_sort; partial} + Texp_letop{let_; ands; param; param_debug_uid; param_sort; body; + body_sort; partial} in rue { exp_desc = desc; exp_loc = sexp.pexp_loc; @@ -7003,11 +7103,7 @@ and type_expect_ exp_attributes = sexp.pexp_attributes; exp_env = env } | Pexp_stack e -> - let expected_mode' = - mode_morph (Value.join_with (Comonadic Areality) Regionality.Const.Local) - expected_mode - in - let exp = type_expect env expected_mode' e ty_expected_explained in + let exp = type_expect env expected_mode e ty_expected_explained in let unsupported category = raise (error (exp.exp_loc, env, Unsupported_stack_allocation category)) in @@ -7017,7 +7113,7 @@ and type_expect_ | Texp_variant (_, Some (_, alloc_mode)) | Texp_record {alloc_mode = Some alloc_mode; _} | Texp_array (_, _, _, alloc_mode) - | Texp_field (_, _, _, Boxing (alloc_mode, _), _) -> + | Texp_field (_, _, _, _, Boxing (alloc_mode, _), _) -> begin submode ~loc ~env (Value.min_with (Comonadic Areality) Regionality.local) @@ -7068,22 +7164,34 @@ and type_expect_ (* The overwritten cell has to be unique and should have the areality expected here: *) Value.newvar_below - (Value.meet_with (Monadic Uniqueness) Uniqueness.Const.Unique - (Value.max_with (Comonadic Areality) - (Value.proj (Comonadic Areality) expected_mode.mode))) + (Value.meet [ + Value.max_with (Monadic Uniqueness) + Uniqueness.(of_const Const.Unique); + Value.max_with (Comonadic Areality) + (Value.proj (Comonadic Areality) expected_mode.mode)]) in let cell_type = (* CR uniqueness: this could be the jkind of exp2 *) - mk_expected (newvar (Jkind.Builtin.value ~why:Boxed_record)) + mk_expected (newvar (Jkind.for_non_float ~why:Boxed_record)) in let exp1 = type_expect ~recarg env (mode_default cell_mode) exp1 cell_type in - let exp2 = + let new_fields_mode = (* The newly-written fields have to be global to avoid heap-to-stack pointers. We enforce that here, by asking the allocation to be global. This makes the block alloc_heap, but we ignore that information anyway. *) + (* CR uniqueness: this shouldn't mention yielding *) + { Value.Comonadic.Const.max with + areality = Regionality.Const.Global + ; yielding = Yielding.Const.Unyielding } + in + let exp2 = let exp2_mode = mode_coerce - (Value.max_with (Comonadic Areality) Regionality.global) + Value.({ + comonadic = new_fields_mode; + monadic = Monadic.Const.max} + |> Const.merge + |> of_const) expected_mode in (* When typing holes, we will enforce: fields_mode <= expected_mode. @@ -7094,7 +7202,7 @@ and type_expect_ And we have also checked above that for regionality cell_mode <= expected_mode. Therefore, we can safely ignore regionality when checking the mode of holes. *) let fields_mode = - Value.meet_with (Comonadic Areality) Regionality.Const.Global cell_mode + Value.meet_const new_fields_mode cell_mode |> Value.disallow_right in let overwrite = @@ -7328,7 +7436,7 @@ and type_ident env ?(recarg=Rejected) lid = let val_type, kind = match desc.val_kind with | Val_prim prim -> - let ty, mode, sort = instance_prim prim desc.val_type in + let ty, mode, _, sort = instance_prim prim desc.val_type in let ty = instance ty in begin match prim.prim_native_repr_res, mode with (* if the locality of returned value of the primitive is poly @@ -7687,14 +7795,17 @@ and type_function_ else if is_position typed_arg_label && not_nolabel_function ty_ret then Location.prerr_warning pat.pat_loc Warnings.Unerasable_position_argument; - let fp_kind, fp_param = + let fp_kind, fp_param, fp_param_debug_uid = match default_arg with | None -> - let param = name_pattern "param" [ pat ] in - Tparam_pat pat, param + let param, param_uid = name_pattern "param" [ pat ] in + Tparam_pat pat, param, param_uid | Some (default_arg, arg_label, default_arg_sort) -> let param = Ident.create_local ("*opt*" ^ arg_label) in - Tparam_optional_default (pat, default_arg, default_arg_sort), param + let param_uid = Shape.Uid.internal_not_actually_unique in + Tparam_optional_default (pat, default_arg, default_arg_sort), + param, + param_uid in let param = { has_poly; @@ -7702,6 +7813,7 @@ and type_function_ { fp_kind; fp_arg_label = typed_arg_label; fp_param; + fp_param_debug_uid; fp_partial = partial; fp_newtypes = List.map (fun (id, t, loc, uid) -> (id, t, loc, uid)) newtypes; @@ -7818,12 +7930,15 @@ and type_function_ and type_label_access : 'rep . 'rep record_form -> _ -> _ -> _ -> _ -> - _ * _ * 'rep gen_label_description * _ + _ * _ * _ * 'rep gen_label_description * _ = fun record_form env srecord usage lid -> let mode = Value.newvar () in + let record_jkind, record_sort = Jkind.of_new_sort_var ~why:Record_projection in let record = with_local_level_if_principal ~post:generalize_structure_exp - (fun () -> type_exp ~recarg:Allowed env (mode_default mode) srecord) + (fun () -> + type_expect ~recarg:Allowed env (mode_default mode) srecord + (mk_expected (newvar record_jkind))) in let ty_exp = record.exp_type in let expected_type = @@ -7844,7 +7959,7 @@ and type_label_access let label = wrap_disambiguate "This expression has" (mk_expected ty_exp) (label_disambiguate record_form usage lid env expected_type) labels in - (record, Mode.Value.disallow_right mode, label, expected_type) + (record, record_sort, Mode.Value.disallow_right mode, label, expected_type) with exn -> raise_error exn; let arg_kind, _ = @@ -7871,7 +7986,7 @@ and type_label_access lbl_sort = Jkind.Sort.Const.value; } in - (record, Mode.Value.disallow_right mode, + (record, record_sort, Mode.Value.disallow_right mode, make_fake_label record_form, expected_type) (* Typing format strings for printing or reading. @@ -8396,16 +8511,17 @@ and type_argument ?explanation ?recarg ~overwrite env (mode : expected_mode) sar let e = {texp with exp_type = ty_res; exp_desc = Texp_exclave e} in let cases = [ case eta_pat e ] in let cases_loc = { texp.exp_loc with loc_ghost = true } in - let param = name_cases "param" cases in + let param, param_uid = name_cases "param" cases in { texp with exp_type = ty_fun; exp_desc = Texp_function { params = []; body = Tfunction_cases { fc_cases = cases; fc_partial = Total; fc_param = param; - fc_env = env; fc_ret_type = ty_res; - fc_loc = cases_loc; fc_exp_extra = None; - fc_attributes = []; fc_arg_mode = Alloc.disallow_right marg; + fc_param_debug_uid = param_uid; fc_env = env; + fc_ret_type = ty_res; fc_loc = cases_loc; + fc_exp_extra = None; fc_attributes = []; + fc_arg_mode = Alloc.disallow_right marg; fc_arg_sort = arg_sort; }; ret_mode = Alloc.disallow_right mret; @@ -8422,10 +8538,16 @@ and type_argument ?explanation ?recarg ~overwrite env (mode : expected_mode) sar (Warnings.Non_principal_labels "eliminated omittable argument"); (* let-expand to have side effects *) let let_pat, let_var = var_pair ~mode:exp_mode "arg" texp.exp_type in + let let_pat_sort = + (* The sort of the let-bound variable, which here is always a function + (observe it is passed to [func], which builds an application of + it). *) + Jkind.Sort.value + in re { texp with exp_type = ty_fun; exp_desc = Texp_let (Nonrecursive, - [{vb_pat=let_pat; vb_expr=texp; vb_sort=arg_sort; + [{vb_pat=let_pat; vb_expr=texp; vb_sort=let_pat_sort; vb_attributes=[]; vb_loc=Location.none; vb_rec_kind = Dynamic; }], @@ -8439,6 +8561,7 @@ and type_argument ?explanation ?recarg ~overwrite env (mode : expected_mode) sar unify_exp env texp ty_expected; texp +(* See Note [Type-checking applications] for an overview *) and type_apply_arg env ~app_loc ~funct ~index ~position_and_mode ~partial_app (lbl, arg) = match arg with | Arg (Unknown_arg { sarg; ty_arg_mono; mode_arg; sort_arg }) -> @@ -8492,11 +8615,11 @@ and type_apply_arg env ~app_loc ~funct ~index ~position_and_mode ~partial_app (l with_local_level begin fun () -> let vars, ty_arg' = with_local_level_if separate begin fun () -> - instance_poly ~fixed:false vars ty_arg' + instance_poly_fixed vars ty_arg' end ~post:(fun (_, ty_arg') -> generalize_structure ty_arg') in let (ty_arg0', vars0) = tpoly_get_poly ty_arg0 in - let vars0, ty_arg0' = instance_poly ~fixed:false vars0 ty_arg0' in + let vars0, ty_arg0' = instance_poly_fixed vars0 ty_arg0' in List.iter2 (fun ty ty' -> unify_var env ty ty') vars vars0; let arg = type_argument ~overwrite:No_overwrite env expected_mode sarg ty_arg' ty_arg0' @@ -8559,6 +8682,7 @@ and type_application env app_loc expected_mode position_and_mode check_partial_application ~statement:false exp; ([Nolabel, Arg (exp, arg_sort)], ty_ret, ap_mode, position_and_mode) | _ -> + (* See Note [Type-checking applications] for an overview *) let ty = funct.exp_type in let ignore_labels = !Clflags.classic || @@ -9359,11 +9483,12 @@ and type_function_cases_expect (newgenty (Tarrow ((Nolabel, arg_mode, ret_mode), ty_arg, ty_ret, commu_ok))) in - let param = name_cases "param" cases in + let param, param_uid = name_cases "param" cases in let cases = { fc_cases = cases; fc_partial = partial; fc_param = param; + fc_param_debug_uid = param_uid; fc_loc = loc; fc_exp_extra = None; fc_env = env; @@ -9459,7 +9584,7 @@ and type_let ?check ?check_strict ?(force_toplevel = false) match get_desc pat.pat_type with | Tpoly (ty, tl) -> {pat with pat_type = - snd (instance_poly ~keep_names:true ~fixed:false tl ty)} + instance_poly ~keep_names:true tl ty} | _ -> pat in let bound_expr = vb_exp_constraint binding in @@ -9536,7 +9661,7 @@ and type_let ?check ?check_strict ?(force_toplevel = false) let vars, ty' = with_local_level_if_principal ~post:(fun (_,ty') -> generalize_structure ty') - (fun () -> instance_poly ~keep_names:true ~fixed:true tl ty) + (fun () -> instance_poly_fixed ~keep_names:true tl ty) in let exp = Builtin_attributes.warning_scope pvb_attributes (fun () -> @@ -9835,9 +9960,7 @@ and type_generic_array if Types.is_mutable mutability then Predef.type_array else Predef.type_iarray in - let modalities = - Typemode.transl_modalities ~maturity:Stable mutability [] [] - in + let modalities = Typemode.transl_modalities ~maturity:Stable mutability [] in let argument_mode = mode_modality modalities array_mode in let jkind, elt_sort = Jkind.of_new_legacy_sort_var ~why:Array_element in let ty = newgenvar jkind in @@ -10213,16 +10336,24 @@ and type_comprehension_iterator let stop = tbound ~explanation:Comprehension_for_stop stop in (* When we'll want to add Uid to comprehension bindings, we can take it from here. *) - let (ident, _uid) = + let (ident, uid) = type_comprehension_for_range_iterator_index tps ~loc ~env ~param:pattern in - Texp_comp_range { ident; pattern; start; stop; direction } + Texp_comp_range { ident; ident_debug_uid = uid; pattern; start; stop; + direction } | Pcomp_in seq -> - let item_ty = newvar (Jkind.Builtin.any ~why:Dummy_jkind) in + let value_reason = + match (comprehension_type : comprehension_type) with + | Array_comprehension _ -> + Jkind.History.Array_comprehension_iterator_element + | List_comprehension -> + Jkind.History.List_comprehension_iterator_element + in + let item_ty = newvar (Jkind.Builtin.value ~why:value_reason) in let seq_ty = container_type item_ty in let sequence = (* To understand why we can currently only iterate over [mode_global] @@ -10628,14 +10759,14 @@ let escaping_hint (failure_reason : Value.error) submode_reason let contention_hint _fail_reason _submode_reason context = - match context with + match (context : contention_context option) with | Some Read_mutable -> [Location.msg - "@[Hint: In order to read from the mutable fields,@ \ + "@[Hint: In order to read from its mutable fields,@ \ this record needs to be at least shared.@]"] | Some Write_mutable -> [Location.msg - "@[Hint: In order to write into the mutable fields,@ \ + "@[Hint: In order to write into its mutable fields,@ \ this record needs to be uncontended.@]"] | Some Force_lazy -> [Location.msg @@ -10643,6 +10774,18 @@ let contention_hint _fail_reason _submode_reason context = the lazy needs to be uncontended.@]"] | None -> [] +let visibility_hint _fail_reason _submode_reason context = + match (context : visibility_context option) with + | Some Read_mutable -> + [Location.msg + "@[Hint: In order to read from its mutable fields,@ \ + this record needs to have read visibility.@]"] + | Some Write_mutable -> + [Location.msg + "@[Hint: In order to write into its mutable fields,@ \ + this record needs to have read_write visibility.@]"] + | None -> [] + let report_type_expected_explanation_opt expl ppf = match expl with | None -> () @@ -11265,7 +11408,7 @@ let report_error ~loc env = (Style.as_inline_code Printtyp.type_expr) ty actual expected | Submode_failed(fail_reason, submode_reason, locality_context, - contention_context, shared_context) + contention_context, visibility_context, shared_context) -> let sub = match fail_reason with @@ -11279,17 +11422,33 @@ let report_error ~loc env = escaping_hint fail_reason submode_reason locality_context | Error (Monadic Contention, _ ) -> contention_hint fail_reason submode_reason contention_context + | Error (Monadic Visibility, _) -> + visibility_hint fail_reason submode_reason visibility_context | Error (Comonadic Portability, _ ) -> [] | Error (Comonadic Yielding, _) -> [] + | Error (Comonadic Statefulness, _) -> [] in Location.errorf ~loc ~sub "@[%t@]" begin match fail_reason with | Error (Comonadic Areality, _) -> Format.dprintf "This value escapes its region." | Error (ax, {left; right}) -> + let pp_expectation ppf () = + let open Contention.Const in + match ax, right with + | Monadic Contention, Shared -> + (* Could generalize this to other error cases where we expect + something besides bottom, but currently (besides areality, + already covered above) there are no other such cases. *) + Format.fprintf ppf "%a or %a" + (Style.as_inline_code Contention.Const.print) Shared + (Style.as_inline_code Contention.Const.print) Uncontended + | _, _ -> + Style.as_inline_code (Value.Const.print_axis ax) ppf right + in Format.dprintf "This value is %a but expected to be %a." (Style.as_inline_code (Value.Const.print_axis ax)) left - (Style.as_inline_code (Value.Const.print_axis ax)) right + pp_expectation () end | Curried_application_complete (lbl, Error (ax, {left; _}), loc_kind) -> let sub = diff --git a/src/ocaml/typing/typecore.mli b/src/ocaml/typing/typecore.mli index 9370647a6..4f3926ed3 100644 --- a/src/ocaml/typing/typecore.mli +++ b/src/ocaml/typing/typecore.mli @@ -170,8 +170,9 @@ val optimise_allocations: unit -> unit val has_poly_constraint : Parsetree.pattern -> bool -val name_pattern : string -> Typedtree.pattern list -> Ident.t -val name_cases : string -> Typedtree.value Typedtree.case list -> Ident.t +val name_pattern : string -> Typedtree.pattern list -> Ident.t * Uid.t +val name_cases : + string -> Typedtree.value Typedtree.case list -> Ident.t * Uid.t (* Why are we calling [submode]? This tells us why. *) type submode_reason = @@ -190,6 +191,10 @@ type contention_context = | Write_mutable | Force_lazy +type visibility_context = + | Read_mutable + | Write_mutable + type unsupported_stack_allocation = | Lazy | Module @@ -301,6 +306,7 @@ type error = Mode.Value.error * submode_reason * Env.locality_context option * contention_context option * + visibility_context option * Env.shared_context option | Curried_application_complete of arg_label * Mode.Alloc.error * [`Prefix|`Single_arg|`Entire_apply] diff --git a/src/ocaml/typing/typedecl.ml b/src/ocaml/typing/typedecl.ml index 856b93d60..c14dbb72a 100644 --- a/src/ocaml/typing/typedecl.ml +++ b/src/ocaml/typing/typedecl.ml @@ -500,7 +500,7 @@ let transl_labels (type rep) ~(record_form : rep record_form) ~new_var_jkind | Unboxed_product -> raise(Error(loc, Unboxed_mutable_label)) in let modalities = - Typemode.transl_modalities ~maturity:Stable mut attrs modalities + Typemode.transl_modalities ~maturity:Stable mut modalities in let arg = Ast_helper.Typ.force_poly arg in let cty = transl_simple_type ~new_var_jkind env ?univars ~closed Mode.Alloc.Const.legacy arg in @@ -541,8 +541,7 @@ let transl_types_gf ~new_var_jkind env loc univars closed cal kloc = Mode.Alloc.Const.legacy arg.pca_type in let gf = - Typemode.transl_modalities ~maturity:Stable Immutable [] - arg.pca_modalities + Typemode.transl_modalities ~maturity:Stable Immutable arg.pca_modalities in {ca_modalities = gf; ca_type = cty; ca_loc = arg.pca_loc} in @@ -965,7 +964,7 @@ let transl_declaration env sdecl (id, uid) = Constructor_uniform_value, sorts) (Array.of_list cstrs) ), - Jkind.Builtin.value ~why:Boxed_variant + Jkind.for_non_float ~why:Boxed_variant in Ttype_variant tcstrs, Type_variant (cstrs, rep, None), jkind | Ptype_record lbls -> @@ -983,7 +982,7 @@ let transl_declaration env sdecl (id, uid) = [Record_mixed]. Those cases are fixed up after we can get accurate sorts for the fields, in [update_decl_jkind]. *) Record_boxed (Array.make (List.length lbls) Jkind.Sort.Const.void), - Jkind.Builtin.value ~why:Boxed_record + Jkind.for_non_float ~why:Boxed_record in Ttype_record lbls, Type_record(lbls', rep, None), jkind | Ptype_record_unboxed_product lbls -> @@ -1004,7 +1003,7 @@ let transl_declaration env sdecl (id, uid) = Type_record_unboxed_product(lbls', Record_unboxed_product, None), jkind | Ptype_open -> Ttype_open, Type_open, - Jkind.Builtin.value ~why:Extensible_variant + Jkind.for_non_float ~why:Extensible_variant in let jkind = (* - If there's an annotation, we use that. It's checked against @@ -1106,7 +1105,26 @@ let transl_declaration env sdecl (id, uid) = decl, typ_shape end -(* Record declarations with representation [Record_unboxed] get an implicit +(* Note [Typechecking unboxed versions of types] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Unboxed versions are computed in three steps: + + 1. In the temporary environment computed by [enter_type], all types get an + unboxed version. + + 2. After translating declarations, [derive_unboxed_versions] gives the + [Record_boxed] records unboxed versions. + + 3. But some of these [Record_boxed]s are a lie, and become + [Record_float]/[Record_ufloat]/[Record_mixed] after [update_decls_jkind]. + As float records should not end up with unboxed versions, we then remove + theirs in [remove_unboxed_versions]. + + After steps 2 and 3, the set of unboxed versions decreases, so we check for + newly-unbound unboxed paths with [check_unboxed_paths]. +*) + +(* Record declarations with representation [Record_boxed] get an implicit unboxed record stored in [type_unboxed_version]. If that record is also an alias, so is its stored unboxed version. E.g. [type t = r = { i : int }]'s unboxed version gets kind [#{ i : int}] and manifest [r#]. @@ -1115,36 +1133,131 @@ let transl_declaration env sdecl (id, uid) = also have unboxed versions, but these aren't stored in [type_unboxed_version]. *) +let record_gets_unboxed_version = function + | Record_unboxed | Record_inlined _ | Record_float | Record_ufloat -> false + | Record_boxed _ -> true + | Record_mixed shape -> + let rec shape_has_float_boxed shape = + Array.exists + (fun (kind : mixed_block_element) -> + match kind with + | Value | Float64 | Float32 | Bits32 | Bits64 | Vec128 | Word -> false + | Float_boxed -> true + | Product shape -> shape_has_float_boxed shape) + shape + in + not (shape_has_float_boxed shape) let gets_unboxed_version decl = - (* CR-soon layouts v7.2: update for implicit unboxed records *) - ignore decl; - false -let derive_unboxed_version env unboxed_versions_in_group decl = - (* CR-soon layouts v7.2: update for implicit unboxed records *) - ignore env; - ignore unboxed_versions_in_group; - ignore decl; - None + (* This must be kept in sync with the match in [derive_unboxed_version] *) + match decl.type_kind with + | Type_abstract _ | Type_open | Type_record_unboxed_product _ + | Type_variant _ -> false + | Type_record (_, repr, _) -> record_gets_unboxed_version repr +let derive_unboxed_version env path_in_group_has_unboxed_version decl = + (* This must be kept in sync with the match in [gets_unboxed_version] *) + match decl.type_kind with + | Type_abstract _ | Type_open | Type_record_unboxed_product _ + | Type_variant _ -> + None + | Type_record (_, repr, _) when not (record_gets_unboxed_version repr) -> + None + | Type_record (lbls, _, umc) -> + let keep_attribute a = + (* If we keep [@deprecated_mutable], then a record that aliases + a record with a [@deprecated_mutable] label will cause two alerts, + if both have unboxed versions (because the unboxed version is a second + alias). *) + not (Builtin_attributes.attr_equals_builtin a "deprecated_mutable") + in + let lbls_unboxed = + List.map + (fun (ld : Types.label_declaration) -> + { Types.ld_id = Ident.create_local (Ident.name ld.ld_id); + ld_mutable = Immutable; + ld_modalities = ld.ld_modalities; + (* Inherit modalities from the boxed version. Note that these + are affected by the mutability of the boxed label, even + though the unboxed version is always immutable. *) + ld_sort = Jkind.Sort.Const.void; + ld_type = ld.ld_type; + ld_loc = ld.ld_loc; + ld_attributes = List.filter keep_attribute ld.ld_attributes; + (* Copy label attributes to the unboxed version *) + ld_uid = Uid.unboxed_version ld.ld_uid; + }) + lbls + in + (* CR layouts v11: update type_jkind once we have [layout_of] layouts *) + let jkind = + Jkind.Builtin.product_of_sorts ~why:Unboxed_record (List.length lbls) in + let kind = + Type_record_unboxed_product(lbls_unboxed, Record_unboxed_product, umc) + in + let type_manifest = + let has_unboxed_version path = + match Path.Map.find_opt path path_in_group_has_unboxed_version with + | Some b -> b + | None -> + try Option.is_some (Env.find_type path env).type_unboxed_version with + | Not_found -> Misc.fatal_error "Typedecl.derive_unboxed_versions" + in + match decl.type_manifest with + | None -> None + | Some ty -> + match get_desc ty with + | Tconstr (path, args, _) when has_unboxed_version path -> + Some (Ctype.newconstr (Path.unboxed_version path) args) + | _ -> + (* We're in one of two scenarios: + + 1. The manifest is a Tconstr to a type without an unboxed version. + 2. The manifest is not a Tconstr, and [check_coherence] will reject + this declaration later. + + In both cases, we could just not give this type an unboxed version, + but it's fine to do so, as we already give unboxed versions to + types that don't have one (float and [@@unboxed] records), and this + simplifies things. *) + None + in + Some + { + type_params = decl.type_params; + type_arity = decl.type_arity; + type_kind = kind; + type_jkind = jkind; + type_private = decl.type_private; + type_manifest; + type_variance = + Variance.unknown_signature ~injective:false ~arity:decl.type_arity; + type_separability = + Types.Separability.default_signature ~arity:decl.type_arity; + type_is_newtype = false; + type_expansion_scope = Btype.lowest_level; + type_loc = decl.type_loc; + type_attributes = decl.type_attributes; + type_unboxed_default = false; + type_uid = Uid.unboxed_version decl.type_uid; + type_unboxed_version = None; + } let derive_unboxed_versions decls env = - let unboxed_versions_in_group = - Path.Set.of_list - (List.filter_map - (fun (id, d) -> - if gets_unboxed_version d then Some (Path.Pident id) else None) - decls) + let path_in_group_has_unboxed_version = + Path.Map.of_seq + (List.to_seq decls |> + Seq.map (fun (id, d) -> Path.Pident id, gets_unboxed_version d)) in List.map (fun (id, d) -> let type_unboxed_version = - derive_unboxed_version env unboxed_versions_in_group d + derive_unboxed_version env path_in_group_has_unboxed_version d in id, { d with type_unboxed_version }) decls -(* Float and [@@unboxed] records are typechecked as boxed records until - [update_decls_jkind], so their unboxed versions need to be removed - afterwards. +(* Removes unboxed versions from type declarations not satisfying + [gets_unboxed_version]. In practice, it is float records that lose their + unboxed versions. See Note [Typechecking unboxed versions of types]. Returns new decls and paths whose unboxed versions got removed. *) let remove_unboxed_versions decls = @@ -1206,7 +1319,7 @@ let rec check_constraints_rec env loc visited ty = end; List.iter (check_constraints_rec env loc visited) args | Tpoly (ty, tl) -> - let _, ty = Ctype.instance_poly ~fixed:false tl ty in + let ty = Ctype.instance_poly tl ty in check_constraints_rec env loc visited ty | _ -> Btype.iter_type_expr (check_constraints_rec env loc visited) ty @@ -1538,68 +1651,48 @@ module Element_repr = struct | Bits64 | Vec128 | Word + | Product of t array - type t = + and t = | Unboxed_element of unboxed_element - | Imm_element | Float_element | Value_element | Element_without_runtime_component of { loc : Location.t; ty : type_expr } + (* This type technically permits [Float_element] to appear in an unboxed + product, but we never generate that and make no attempt to apply the + float record optimization to records of unboxed products of floats. Kinds + don't give us enough information to do this reliably, and you could just + use unboxed floats instead. *) - let classify env loc kloc ty jkind = + let classify env loc ty jkind = if is_float env ty then Float_element else let layout = Jkind.get_layout_defaulting_to_value jkind in - let sort = Jkind.Layout.Const.get_sort layout in - let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in - let externality_upper_bound = Jkind.get_externality_upper_bound ~jkind_of_type jkind in - let base = match sort with + let sort = + match Jkind.Layout.Const.get_sort layout with | None -> - Misc.fatal_error "Element_repr.classify: unexpected abstract layout" - | Some (Product _ as c) -> - raise (Error (loc, Invalid_jkind_in_block (ty, c, kloc))) - | Some (Base b) -> b + Misc.fatal_error "Element_repr.classify: unexpected abstract layout" + | Some s -> s in - match base, externality_upper_bound with - (* CR layouts v5.1: We don't allow [External64] in the flat suffix of - mixed blocks. That's because we haven't committed to whether the - unboxing features of flambda2 can be used together with 32 bit - platforms. (If flambda2 stores unboxed things as flat in 32 bits, then - immediate64s must be banned in the flat suffix with backends for 32 bit - platforms that pass through flambda2. Further, we want a record - declaration to be accepted consistently in 32 bits vs. 64 bits. - So, immediate64s must always be banned in the flat suffix.) - - In practice, users can put immediate64s in the value prefix. - (We may consider teaching the middle-ends to mark immediate64s that - abut the non-scannable suffix as non-scannable on 64 bit platforms.) - - We may revisit this decision later when we know better whether we want - flambda2 to unbox for 32 bit platforms. - *) - | Value, (Internal | External64) -> Value_element - | Value, External -> Imm_element - | Float64, _ -> Unboxed_element Float64 - | Float32, _ -> Unboxed_element Float32 - | Word, _ -> Unboxed_element Word - | Bits32, _ -> Unboxed_element Bits32 - | Bits64, _ -> Unboxed_element Bits64 - | Vec128, _ -> Unboxed_element Vec128 - | Void, _ -> Element_without_runtime_component { loc; ty } - - let unboxed_to_flat : unboxed_element -> mixed_block_element = function - | Float64 -> Float64 - | Float32 -> Float32 - | Bits32 -> Bits32 - | Bits64 -> Bits64 - | Vec128 -> Vec128 - | Word -> Word - - let mixed_product_shape loc ts kind = + let rec sort_to_t : Jkind_types.Sort.Const.t -> t = function + | Base Value -> Value_element + | Base Float64 -> Unboxed_element Float64 + | Base Float32 -> Unboxed_element Float32 + | Base Word -> Unboxed_element Word + | Base Bits32 -> Unboxed_element Bits32 + | Base Bits64 -> Unboxed_element Bits64 + | Base Vec128 -> Unboxed_element Vec128 + | Base Void -> Element_without_runtime_component { loc; ty } + | Product l -> + Unboxed_element (Product (Array.of_list (List.map sort_to_t l))) + in + sort_to_t sort + + and mixed_product_shape loc ts kind = let to_shape_element (t,ty) : mixed_block_element = - match t with - | Unboxed_element unboxed -> unboxed_to_flat unboxed - | Float_element | Imm_element | Value_element -> Value + let rec of_t : t -> mixed_block_element = function + | Unboxed_element unboxed -> of_unboxed_element unboxed + | Float_element | Value_element -> Value | Element_without_runtime_component _ -> (* CR layouts v7: Supporting void with mixed blocks will require updating some assumptions in lambda, e.g. the translation of @@ -1607,18 +1700,34 @@ module Element_repr = struct raise (Error (loc, Invalid_jkind_in_block (ty, Base Void, Mixed_product))) + and of_unboxed_element : unboxed_element -> mixed_block_element = function + | Float64 -> Float64 + | Float32 -> Float32 + | Bits32 -> Bits32 + | Bits64 -> Bits64 + | Vec128 -> Vec128 + | Word -> Word + | Product l -> Product (Array.map of_t l) + in + of_t t in - let unboxed_elements = - List.fold_left (fun acc (t,_) -> - match t with - | Unboxed_element _ -> acc+1 - | Element_without_runtime_component _ - | Float_element | Imm_element | Value_element -> acc) 0 ts + let boxed_elements = + let rec count_boxed_in_t acc : t -> int = function + | Unboxed_element u -> count_boxed_in_unboxed_element acc u + | Element_without_runtime_component _ -> acc + | Float_element | Value_element -> acc + 1 + and count_boxed_in_unboxed_element acc : unboxed_element -> int = + function + | Float64 | Float32 | Bits32 | Bits64 | Vec128 | Word -> acc + | Product l -> Array.fold_left count_boxed_in_t acc l + in + List.fold_left (fun acc (t,_) -> count_boxed_in_t acc t) 0 ts + in + let mixed = + List.exists (function (Unboxed_element _, _) -> true | _ -> false) ts in - let mixed = unboxed_elements >= 1 in if not mixed then None else begin - assert_mixed_product_support loc kind - ~value_prefix_len:(List.length ts - unboxed_elements); + assert_mixed_product_support loc kind ~value_prefix_len:boxed_elements; Some (List.map to_shape_element ts |> Array.of_list) end end @@ -1632,16 +1741,14 @@ let update_constructor_representation | Cstr_tuple arg_types_and_modes -> let arg_reprs = List.map2 (fun {Types.ca_type=arg_type; _} arg_jkind -> - let kloc : jkind_sort_loc = Cstr_tuple { unboxed = false } in - Element_repr.classify env loc kloc arg_type arg_jkind, arg_type) + Element_repr.classify env loc arg_type arg_jkind, arg_type) arg_types_and_modes arg_jkinds in Element_repr.mixed_product_shape loc arg_reprs Cstr_tuple | Cstr_record fields -> let arg_reprs = List.map2 (fun ld arg_jkind -> - let kloc = Inlined_record { unboxed = false } in - Element_repr.classify env loc kloc ld.Types.ld_type arg_jkind, + Element_repr.classify env loc ld.Types.ld_type arg_jkind, ld.Types.ld_type) fields arg_jkinds in @@ -1684,8 +1791,7 @@ let rec update_decl_jkind env dpath decl = let open struct (* For tracking what types appear in record blocks. *) type element_repr_summary = - { mutable values : bool; (* excludes [imm], but includes [imm64] *) - mutable imms : bool; + { mutable values : bool; (* includes immediates. *) mutable floats: bool; (* For purposes of this record, [floats] tracks whether any field has layout value and is known to be a float. @@ -1716,13 +1822,12 @@ let rec update_decl_jkind env dpath decl = let reprs = List.map2 (fun lbl jkind -> - let kloc = Record { unboxed = false } in - Element_repr.classify env loc kloc lbl.Types.ld_type jkind, + Element_repr.classify env loc lbl.Types.ld_type jkind, lbl.Types.ld_type) lbls jkinds in let repr_summary = - { values = false; imms = false; floats = false; float64s = false; + { values = false; floats = false; float64s = false; non_float64_unboxed_fields = false; } in @@ -1730,9 +1835,9 @@ let rec update_decl_jkind env dpath decl = (fun ((repr : Element_repr.t), _lbl) -> match repr with | Float_element -> repr_summary.floats <- true - | Imm_element -> repr_summary.imms <- true | Unboxed_element Float64 -> repr_summary.float64s <- true - | Unboxed_element (Float32 | Bits32 | Bits64 | Vec128 | Word) -> + | Unboxed_element ( Float32 | Bits32 | Bits64 | Vec128 | Word + | Product _ ) -> repr_summary.non_float64_unboxed_fields <- true | Value_element -> repr_summary.values <- true | Element_without_runtime_component _ -> ()) @@ -1742,7 +1847,7 @@ let rec update_decl_jkind env dpath decl = (* We store mixed float/float64 records as flat if there are no non-float fields. *) - | { values = false; imms = false; floats = true; + | { values = false; floats = true; float64s = true; non_float64_unboxed_fields = false; } [@warning "+9"] -> let shape = @@ -1755,7 +1860,7 @@ let rec update_decl_jkind env dpath decl = raise (Error (loc, Invalid_jkind_in_block (ty, Base Void, Mixed_product))) - | Unboxed_element _ | Imm_element | Value_element -> + | Unboxed_element _ | Value_element -> Misc.fatal_error "Expected only floats and float64s") reprs |> Array.of_list @@ -1766,7 +1871,6 @@ let rec update_decl_jkind env dpath decl = only when they're unboxed. *) | { values = true; float64s = true } - | { imms = true; float64s = true } | { non_float64_unboxed_fields = true } -> let shape = Element_repr.mixed_product_shape loc reprs Record @@ -1779,17 +1883,16 @@ let rec update_decl_jkind env dpath decl = Record_mixed shape (* value-only records are stored as boxed records *) | { values = true; float64s = false; non_float64_unboxed_fields = false } - | { imms = true; float64s = false; non_float64_unboxed_fields = false } -> rep (* All-float and all-float64 records are stored as flat float records. *) - | { values = false; imms = false; floats = true ; float64s = false; + | { values = false; floats = true ; float64s = false; non_float64_unboxed_fields = false } -> Record_float - | { values = false; imms = false; floats = false; float64s = true; + | { values = false; floats = false; float64s = true; non_float64_unboxed_fields = false } -> Record_ufloat - | { values = false; imms = false; floats = false; float64s = false; + | { values = false; floats = false; float64s = false; non_float64_unboxed_fields = false } [@warning "+9"] -> Misc.fatal_error "Typedecl.update_record_kind: empty record" @@ -1862,7 +1965,13 @@ let rec update_decl_jkind env dpath decl = (idx+1,cstr::cstrs) ) (0,[]) cstrs in - let jkind = Jkind.for_boxed_variant cstrs in + let jkind = + Jkind.for_boxed_variant + ~decl_params:decl.type_params + ~type_apply:(Ctype.apply env) + ~free_vars:(Ctype.free_variable_set_of_list env) + cstrs + in List.rev cstrs, rep, jkind | (([] | (_ :: _)), Variant_unboxed | _, Variant_extensible) -> assert false @@ -1878,7 +1987,7 @@ let rec update_decl_jkind env dpath decl = decl | Type_open -> let type_jkind = - Jkind.Builtin.value ~why:Extensible_variant + Jkind.for_non_float ~why:Extensible_variant (* It's unlikely we'll ever be able to give better kinds than [value] to extensible variants, so we're not worried about backwards compatibility if we mark them as best here, and we want to be able to normalize them away *) @@ -1983,6 +2092,7 @@ let update_decls_jkind env decls = (id, decl, allow_any_crossing, update_decl_jkind env (Pident id) decl)) decls +(* See Note [Typechecking unboxed versions of types]. *) let check_unboxed_paths decls ~unboxed_version_banned = (* We iterate on all subexpressions of the declaration to check "in depth" that no non-existent unboxed version is used. *) @@ -2427,8 +2537,7 @@ let check_regularity ~abs_env env loc path decl to_check = end; List.iter (check_subtype cpath args prev_exp trace ty) args' | Tpoly (ty, tl) -> - let (_, ty) = - Ctype.instance_poly ~keep_names:true ~fixed:false tl ty in + let ty = Ctype.instance_poly ~keep_names:true tl ty in check_regular cpath args prev_exp trace ty | _ -> Btype.iter_type_expr @@ -3558,8 +3667,7 @@ let transl_value_decl env loc ~sig_modalities valdecl = let modalities = match valdecl.pval_modalities with | [] -> sig_modalities - | l -> Typemode.transl_modalities ~maturity:Stable Immutable - valdecl.pval_attributes l + | l -> Typemode.transl_modalities ~maturity:Stable Immutable l in let modalities = Mode.Modality.Value.of_const modalities in (* CR layouts v5: relax this to check for representability. *) @@ -4188,8 +4296,8 @@ let report_error ppf = function let get_jkind_error : _ Errortrace.elt -> _ = function | Bad_jkind (ty, violation) | Bad_jkind_sort (ty, violation) -> Some (ty, violation) - | Unequal_var_jkinds _ | Diff _ | Variant _ | Obj _ - | Escape _ | Incompatible_fields _ | Rec_occur _ -> None + | Unequal_var_jkinds _ | Unequal_tof_kind_jkinds _ | Diff _ | Variant _ + | Obj _ | Escape _ | Incompatible_fields _ | Rec_occur _ -> None in begin match List.find_map get_jkind_error err.trace with | Some (ty, violation) -> @@ -4416,7 +4524,11 @@ let report_error ppf = function (* the type is always printed just above, so print out just the head of the path instead of something like [t/3] *) let offender ppf = - fprintf ppf "type %a" Style.inline_code (Ident.name (Path.head dpath)) + let head_name = Ident.name (Path.head dpath) in + let path_end = + if Path.is_unboxed_version dpath then head_name ^ "#" else head_name + in + fprintf ppf "type %a" Style.inline_code path_end in Jkind.Violation.report_with_offender ~offender ppf v | Jkind_mismatch_of_type (ty,v) -> diff --git a/src/ocaml/typing/typedecl_separability.ml b/src/ocaml/typing/typedecl_separability.ml index 6888110fd..e4b953a13 100644 --- a/src/ocaml/typing/typedecl_separability.ml +++ b/src/ocaml/typing/typedecl_separability.ml @@ -149,6 +149,7 @@ let rec immediate_subtypes : type_expr -> type_expr list = fun ty -> immediate_subtypes_object_row [] ty | Tlink _ | Tsubst _ -> assert false (* impossible due to Ctype.repr *) | Tvar _ | Tunivar _ -> [] + | Tof_kind _ -> [] | Tpoly (pty, _) -> [pty] | Tconstr (_path, tys, _) -> tys @@ -407,7 +408,8 @@ let check_type | (Tvariant(_) , Sep ) | (Tobject(_,_) , Sep ) | ((Tnil | Tfield _) , Sep ) - | (Tpackage(_,_) , Sep ) -> empty + | (Tpackage(_,_) , Sep ) + | (Tof_kind(_) , Sep ) -> empty (* "Deeply separable" case for these same constructors. *) | (Tarrow _ , Deepsep) | (Ttuple _ , Deepsep) @@ -443,6 +445,7 @@ let check_type | (Tpoly(pty,_) , m ) -> check_type hyps pty m | (Tunivar(_) , _ ) -> empty + | (Tof_kind(_) , _ ) -> empty (* Type constructor case. *) | (Tconstr(path,tys,_), m ) -> let msig = (Env.find_type path env).type_separability in diff --git a/src/ocaml/typing/typedecl_variance.ml b/src/ocaml/typing/typedecl_variance.ml index 1d30a8df0..1859c0171 100644 --- a/src/ocaml/typing/typedecl_variance.ml +++ b/src/ocaml/typing/typedecl_variance.ml @@ -104,7 +104,7 @@ let compute_variance env visited vari ty = compute_same (row_more row) | Tpoly (ty, _) -> compute_same ty - | Tvar _ | Tnil | Tlink _ | Tunivar _ -> () + | Tvar _ | Tnil | Tlink _ | Tunivar _ | Tof_kind _ -> () | Tpackage (_, fl) -> let v = Variance.(compose vari full) in List.iter (fun (_, ty) -> compute_variance_rec v ty) fl diff --git a/src/ocaml/typing/typedtree.ml b/src/ocaml/typing/typedtree.ml index cf6a982fd..c3d6e2835 100644 --- a/src/ocaml/typing/typedtree.ml +++ b/src/ocaml/typing/typedtree.ml @@ -236,7 +236,7 @@ and expression_desc = | Texp_record of { fields : ( Types.label_description * record_label_definition ) array; representation : Types.record_representation; - extended_expression : (expression * Unique_barrier.t) option; + extended_expression : (expression * Jkind.sort * Unique_barrier.t) option; alloc_mode : alloc_mode option } | Texp_record_unboxed_product of { @@ -246,8 +246,8 @@ and expression_desc = extended_expression : (expression * Jkind.sort) option; } | Texp_field of - expression * Longident.t loc * label_description * texp_field_boxing * - Unique_barrier.t + expression * Jkind.sort * Longident.t loc * label_description * + texp_field_boxing * Unique_barrier.t | Texp_unboxed_field of expression * Jkind.sort * Longident.t loc * unboxed_label_description * unique_use @@ -265,6 +265,7 @@ and expression_desc = } | Texp_for of { for_id : Ident.t; + for_debug_uid: Shape.Uid.t; for_pat : Parsetree.pattern; for_from : expression; for_to : expression; @@ -290,6 +291,7 @@ and expression_desc = let_ : binding_op; ands : binding_op list; param : Ident.t; + param_debug_uid : Shape.Uid.t; param_sort : Jkind.sort; body : value case; body_sort : Jkind.sort; @@ -334,6 +336,7 @@ and comprehension_clause_binding = and comprehension_iterator = | Texp_comp_range of { ident : Ident.t + ; ident_debug_uid : Shape.Uid.t ; pattern : Parsetree.pattern ; start : expression ; stop : expression @@ -357,6 +360,7 @@ and function_param = { fp_arg_label: arg_label; fp_param: Ident.t; + fp_param_debug_uid : Shape.Uid.t; fp_partial: partial; fp_kind: function_param_kind; fp_sort: Jkind.sort; @@ -383,6 +387,7 @@ and function_cases = fc_ret_type : Types.type_expr; fc_partial: partial; fc_param: Ident.t; + fc_param_debug_uid: Shape.Uid.t; fc_loc: Location.t; fc_exp_extra: exp_extra option; fc_attributes: attributes; @@ -717,6 +722,7 @@ and core_type_desc = | Ttyp_poly of (string * Parsetree.jkind_annotation option) list * core_type | Ttyp_package of package_type | Ttyp_open of Path.t * Longident.t loc * core_type + | Ttyp_of_kind of Parsetree.jkind_annotation | Ttyp_call_pos and package_type = { @@ -1316,7 +1322,7 @@ let rec exp_is_nominal exp = | Texp_variant (_, None) | Texp_construct (_, _, [], _) -> true - | Texp_field (parent, _, _, _, _) | Texp_send (parent, _, _) -> + | Texp_field (parent, _, _, _, _, _) | Texp_send (parent, _, _) -> exp_is_nominal parent | _ -> false diff --git a/src/ocaml/typing/typedtree.mli b/src/ocaml/typing/typedtree.mli index 6db76892b..5c135cf14 100644 --- a/src/ocaml/typing/typedtree.mli +++ b/src/ocaml/typing/typedtree.mli @@ -411,7 +411,7 @@ and expression_desc = | Texp_record of { fields : ( Types.label_description * record_label_definition ) array; representation : Types.record_representation; - extended_expression : (expression * Unique_barrier.t) option; + extended_expression : (expression * Jkind.sort * Unique_barrier.t) option; alloc_mode : alloc_mode option } (** { l1=P1; ...; ln=Pn } (extended_expression = None) @@ -444,10 +444,12 @@ and expression_desc = { fields = [| l1, Kept t1; l2 Override P2 |]; representation; extended_expression = Some E0 } *) - | Texp_field of expression * Longident.t loc * Types.label_description * - texp_field_boxing * Unique_barrier.t - (** [texp_field_boxing] provides extra information depending on if the - projection requires boxing. *) + | Texp_field of expression * Jkind.sort * Longident.t loc * + Types.label_description * texp_field_boxing * Unique_barrier.t + (** - The sort is the sort of the whole record (which may be non-value if + the record is @@unboxed). + - [texp_field_boxing] provides extra information depending on if the + projection requires boxing. *) | Texp_unboxed_field of expression * Jkind.sort * Longident.t loc * Types.unboxed_label_description * unique_use @@ -467,6 +469,7 @@ and expression_desc = } | Texp_for of { for_id : Ident.t; + for_debug_uid: Shape.Uid.t; for_pat : Parsetree.pattern; for_from : expression; for_to : expression; @@ -492,6 +495,7 @@ and expression_desc = let_ : binding_op; ands : binding_op list; param : Ident.t; + param_debug_uid : Shape.Uid.t; param_sort : Jkind.sort; body : value case; body_sort : Jkind.sort; @@ -526,6 +530,7 @@ and function_param = (** [fp_param] is the identifier that is to be used to name the parameter of the function. *) + fp_param_debug_uid: Shape.Uid.t; fp_partial: partial; (** [fp_partial] = @@ -580,6 +585,7 @@ and function_cases = fc_ret_type : Types.type_expr; fc_partial: partial; fc_param: Ident.t; + fc_param_debug_uid : Shape.Uid.t; fc_loc: Location.t; fc_exp_extra: exp_extra option; fc_attributes: attributes; @@ -622,6 +628,7 @@ and comprehension_clause_binding = and comprehension_iterator = | Texp_comp_range of { ident : Ident.t + ; ident_debug_uid : Shape.Uid.t ; pattern : Parsetree.pattern (** Redundant with [ident] *) ; start : expression ; stop : expression @@ -655,9 +662,10 @@ and binding_op = bop_loc : Location.t; } +(* See Note [Type-checking applications] in Typecore *) and ('a, 'b) arg_or_omitted = - | Arg of 'a - | Omitted of 'b + | Arg of 'a (* an argument actually passed to a function *) + | Omitted of 'b (* an argument not passed due to partial application *) and omitted_parameter = { mode_closure : Mode.Alloc.r; @@ -748,6 +756,8 @@ and module_type_constraint = and functor_parameter = | Unit + (* CR sspies: We should add an additional [debug_uid] here to support functor + arguments in the debugger. *) | Named of Ident.t option * string option loc * module_type and module_expr_desc = @@ -988,6 +998,7 @@ and core_type_desc = | Ttyp_poly of (string * Parsetree.jkind_annotation option) list * core_type | Ttyp_package of package_type | Ttyp_open of Path.t * Longident.t loc * core_type + | Ttyp_of_kind of Parsetree.jkind_annotation | Ttyp_call_pos (** [Ttyp_call_pos] represents the type of the value of a Position argument ([lbl:[%call_pos] -> ...]). *) diff --git a/src/ocaml/typing/typemod.ml b/src/ocaml/typing/typemod.ml index ec83ce995..4283da9d3 100644 --- a/src/ocaml/typing/typemod.ml +++ b/src/ocaml/typing/typemod.ml @@ -96,13 +96,13 @@ type error = | Cannot_compile_implementation_as_parameter | Cannot_implement_parameter of Compilation_unit.Name.t * Misc.filepath | Argument_for_non_parameter of Global_module.Name.t * Misc.filepath - | Cannot_find_argument_type of Global_module.Name.t + | Cannot_find_argument_type of Global_module.Parameter_name.t | Inconsistent_argument_types of { - new_arg_type : Global_module.Name.t option; - old_arg_type : Global_module.Name.t option; + new_arg_type : Global_module.Parameter_name.t option; + old_arg_type : Global_module.Parameter_name.t option; old_source_file : Misc.filepath; } - | Duplicate_parameter_name of Global_module.Name.t + | Duplicate_parameter_name of Global_module.Parameter_name.t | Submode_failed of Mode.Value.error | Modal_module_not_supported @@ -366,7 +366,7 @@ let rec instance_name ~loc env syntax = let args = List.map (fun (param, value) : Global_module.Name.argument -> - { param = Global_module.Name.create_no_args param; + { param = Global_module.Parameter_name.of_string param; value = instance_name ~loc env value }) args in @@ -1072,7 +1072,7 @@ let apply_pmd_modalities env sig_modalities pmd_modalities mty = match pmd_modalities with | [] -> sig_modalities | _ :: _ -> - Typemode.transl_modalities ~maturity:Stable Immutable [] pmd_modalities + Typemode.transl_modalities ~maturity:Stable Immutable pmd_modalities in (* Workaround for pmd_modalities @@ -1278,7 +1278,7 @@ and approx_sig_items env ssg= | [] -> sg | _ -> let modalities = - Typemode.transl_modalities ~maturity:Stable Immutable [] moda + Typemode.transl_modalities ~maturity:Stable Immutable moda in let recursive = not @@ Builtin_attributes.has_attribute "no_recursive_modalities" attrs @@ -1787,7 +1787,7 @@ and transl_signature ?(keep_warnings = false) env sig_acc {psg_items; psg_modali let names = Signature_names.create () in let sig_modalities = - Typemode.transl_modalities ~maturity:Stable Immutable [] psg_modalities + Typemode.transl_modalities ~maturity:Stable Immutable psg_modalities in let transl_include ~loc env sig_acc sincl modalities = @@ -1813,7 +1813,7 @@ and transl_signature ?(keep_warnings = false) env sig_acc {psg_items; psg_modali match modalities with | [] -> sig_modalities | _ -> - Typemode.transl_modalities ~maturity:Stable Immutable [] modalities + Typemode.transl_modalities ~maturity:Stable Immutable modalities in let sg = if not @@ Mode.Modality.Value.Const.is_id modalities then @@ -3672,11 +3672,9 @@ let type_module_type_of env smod = let mty = Mtype.scrape_for_type_of ~remove_aliases env tmty.mod_type in (* PR#5036: must not contain non-generalized type variables *) check_nongen_modtype env smod.pmod_loc mty; - (* for [module type of], we zap to identity modality for best legacy - compatibility *) let mty = remove_modality_and_zero_alloc_variables_mty env - ~zap_modality:Mode.Modality.Value.zap_to_id mty + ~zap_modality:Mode.Modality.Value.zap_to_floor mty in tmty, mty @@ -3850,9 +3848,9 @@ let cms_register_toplevel_struct_attributes ~sourcefile ~uid ast = let check_argument_type_if_given env sourcefile actual_sig arg_module_opt = match arg_module_opt with | None -> None - | Some arg_module -> + | Some arg_param -> let arg_import = - Compilation_unit.Name.of_global_name_no_args_exn arg_module + Compilation_unit.Name.of_parameter_name arg_param in (* CR lmaurer: This "look for known name in path" code is duplicated all over the place. *) @@ -3862,8 +3860,15 @@ let check_argument_type_if_given env sourcefile actual_sig arg_module_opt = Load_path.find_normalized (basename ^ ".cmi") with Not_found -> raise(Error(Location.none, Env.empty, - Cannot_find_argument_type arg_module)) in - let arg_cmi = Unit_info.Artifact.from_filename arg_filename in + Cannot_find_argument_type arg_param)) in + let for_pack_prefix = + (* Packed modules can't be arguments *) + Compilation_unit.Prefix.empty + in + let arg_cmi = + Unit_info.Artifact.from_filename ~for_pack_prefix arg_filename + in + let arg_module = Global_module.Name.of_parameter_name arg_param in let arg_sig = Env.read_signature arg_module arg_cmi in if not (Env.is_parameter_unit arg_module) then raise (Error (Location.none, env, @@ -3930,16 +3935,18 @@ let type_implementation target modulename initial_env ast = end else begin let arg_type = !Clflags.as_argument_for - |> Option.map (fun name -> Global_module.Name.create_no_args name) + |> Option.map Global_module.Parameter_name.of_string in let cu_name = Compilation_unit.name modulename in let basename = cu_name |> Compilation_unit.Name.to_string in let source_intf = Unit_info.mli_from_source target in if !Clflags.cmi_file <> None || Sys.file_exists source_intf then begin + let for_pack_prefix = Compilation_unit.for_pack_prefix modulename in let compiled_intf_file = match !Clflags.cmi_file with - | Some cmi_file -> Unit_info.Artifact.from_filename cmi_file + | Some cmi_file -> + Unit_info.Artifact.from_filename ~for_pack_prefix cmi_file | None -> let cmi_file = try @@ -3948,7 +3955,7 @@ let type_implementation target modulename initial_env ast = raise(Error(Location.in_file sourcefile, Env.empty, Interface_not_compiled source_intf)) in - Unit_info.Artifact.from_filename cmi_file + Unit_info.Artifact.from_filename ~for_pack_prefix cmi_file in (* We use pre-5.2 behaviour as regards which interface-related file is reported in error messages. *) @@ -3962,7 +3969,7 @@ let type_implementation target modulename initial_env ast = if Env.is_parameter_unit global_name then error (Cannot_implement_parameter (cu_name, source_intf)); let arg_type_from_cmi = Env.implemented_parameter global_name in - if not (Option.equal Global_module.Name.equal + if not (Option.equal Global_module.Parameter_name.equal arg_type arg_type_from_cmi) then error (Inconsistent_argument_types { new_arg_type = arg_type; old_source_file = source_intf; @@ -4082,7 +4089,7 @@ let type_interface ~sourcefile modulename env ast = let sg = transl_signature env ast in let arg_type = !Clflags.as_argument_for - |> Option.map (fun name -> Global_module.Name.create_no_args name) + |> Option.map Global_module.Parameter_name.of_string in ignore (check_argument_type_if_given env sourcefile sg.sig_type arg_type : Typedtree.argument_interface option); @@ -4127,16 +4134,12 @@ let package_units initial_env objfiles target_cmi modulename = let units = List.map (fun f -> - let pref = chop_extensions f in - let basename = - pref - |> Filename.basename - |> String.capitalize_ascii + let for_pack_prefix = Compilation_unit.to_prefix modulename in + let artifact = Unit_info.Artifact.from_filename ~for_pack_prefix f in + let modname = Unit_info.Artifact.modname artifact in + let global_name = + Compilation_unit.to_global_name_without_prefix modname in - let unit = Compilation_unit.Name.of_string basename in - let global_name = Global_module.Name.create_no_args basename in - let modname = Compilation_unit.create_child modulename unit in - let artifact = Unit_info.Artifact.from_filename f in let sg = Env.read_signature global_name (Unit_info.companion_cmi artifact) in @@ -4506,7 +4509,7 @@ let report_error ~loc _env = function | None -> Format.fprintf ppf "without -as-argument-for" | Some arg_type -> Format.fprintf ppf "with -as-argument-for %a" - Global_module.Name.print arg_type + Global_module.Parameter_name.print arg_type in Location.errorf ~loc "Inconsistent usage of -as-argument-for. Interface@ %s@ was compiled \ @@ -4517,11 +4520,11 @@ let report_error ~loc _env = function | Cannot_find_argument_type arg_type -> Location.errorf ~loc "Parameter module %a@ specified by -as-argument-for cannot be found." - (Style.as_inline_code Global_module.Name.print) arg_type + (Style.as_inline_code Global_module.Parameter_name.print) arg_type | Duplicate_parameter_name name -> Location.errorf ~loc "This instance has multiple arguments with the name %a." - (Style.as_inline_code Global_module.Name.print) name + (Style.as_inline_code Global_module.Parameter_name.print) name | Submode_failed (Error (ax, {left; right})) -> Location.errorf ~loc "This value is %a, but expected to be %a because it is inside a module." diff --git a/src/ocaml/typing/typemod.mli b/src/ocaml/typing/typemod.mli index e79cc11d0..cf6c294b0 100644 --- a/src/ocaml/typing/typemod.mli +++ b/src/ocaml/typing/typemod.mli @@ -158,13 +158,13 @@ type error = | Cannot_compile_implementation_as_parameter | Cannot_implement_parameter of Compilation_unit.Name.t * Misc.filepath | Argument_for_non_parameter of Global_module.Name.t * Misc.filepath - | Cannot_find_argument_type of Global_module.Name.t + | Cannot_find_argument_type of Global_module.Parameter_name.t | Inconsistent_argument_types of { - new_arg_type: Global_module.Name.t option; - old_arg_type: Global_module.Name.t option; + new_arg_type: Global_module.Parameter_name.t option; + old_arg_type: Global_module.Parameter_name.t option; old_source_file: Misc.filepath; } - | Duplicate_parameter_name of Global_module.Name.t + | Duplicate_parameter_name of Global_module.Parameter_name.t | Submode_failed of Mode.Value.error | Modal_module_not_supported diff --git a/src/ocaml/typing/typemode.ml b/src/ocaml/typing/typemode.ml index 617ea9cb6..fbf2f5460 100644 --- a/src/ocaml/typing/typemode.ml +++ b/src/ocaml/typing/typemode.ml @@ -25,8 +25,9 @@ exception Error of Location.t * error module Axis_pair = struct type 'm t = - | Modal_axis_pair : ('m, 'a, 'd) Mode.Alloc.axis * 'a -> modal t + | Modal_axis_pair : ('a, _, _) Mode.Alloc.Axis.t * 'a -> modal t | Any_axis_pair : 'a Axis.t * 'a -> maybe_nonmodal t + | Everything_but_nullability : maybe_nonmodal t let of_string s = let open Mode in @@ -62,6 +63,26 @@ module Axis_pair = struct Any_axis_pair (Modal (Comonadic Yielding), Yielding.Const.Yielding) | "unyielding" -> Any_axis_pair (Modal (Comonadic Yielding), Yielding.Const.Unyielding) + | "stateless" -> + Any_axis_pair + (Modal (Comonadic Statefulness), Statefulness.Const.Stateless) + | "observing" -> + Any_axis_pair + (Modal (Comonadic Statefulness), Statefulness.Const.Observing) + | "stateful" -> + Any_axis_pair (Modal (Comonadic Statefulness), Statefulness.Const.Stateful) + | "immutable" -> + Any_axis_pair (Modal (Monadic Visibility), Visibility.Const.Immutable) + | "read" -> Any_axis_pair (Modal (Monadic Visibility), Visibility.Const.Read) + | "read_write" -> + Any_axis_pair (Modal (Monadic Visibility), Visibility.Const.Read_write) + | "maybe_separable" -> + Any_axis_pair (Nonmodal Separability, Separability.Maybe_separable) + | "separable" -> + Any_axis_pair (Nonmodal Separability, Separability.Separable) + | "non_float" -> + Any_axis_pair (Nonmodal Separability, Separability.Non_float) + | "everything" -> Everything_but_nullability | _ -> raise Not_found end @@ -73,8 +94,9 @@ let transl_annot (type m) ~(annot_type : m annot_type) ~required_mode_maturity required_mode_maturity; let pair : m Axis_pair.t = match Axis_pair.of_string annot.txt, annot_type with - | Any_axis_pair (Nonmodal _, _), (Mode | Modality) | (exception Not_found) - -> + | Any_axis_pair (Nonmodal _, _), (Mode | Modality) + | Everything_but_nullability, (Mode | Modality) + | (exception Not_found) -> raise (Error (annot.loc, Unrecognized_modifier (annot_type, annot.txt))) | Any_axis_pair (Modal axis, mode), Mode -> Modal_axis_pair (axis, mode) | Any_axis_pair (Modal axis, mode), Modality -> Modal_axis_pair (axis, mode) @@ -92,8 +114,11 @@ module Transled_modifiers = struct portability : Mode.Portability.Const.t Location.loc option; contention : Mode.Contention.Const.t Location.loc option; yielding : Mode.Yielding.Const.t Location.loc option; + statefulness : Mode.Statefulness.Const.t Location.loc option; + visibility : Mode.Visibility.Const.t Location.loc option; externality : Jkind_axis.Externality.t Location.loc option; - nullability : Jkind_axis.Nullability.t Location.loc option + nullability : Jkind_axis.Nullability.t Location.loc option; + separability : Jkind_axis.Separability.t Location.loc option } let empty = @@ -103,8 +128,11 @@ module Transled_modifiers = struct portability = None; contention = None; yielding = None; + statefulness = None; + visibility = None; externality = None; - nullability = None + nullability = None; + separability = None } let get (type a) ~(axis : a Axis.t) (t : t) : a Location.loc option = @@ -115,8 +143,11 @@ module Transled_modifiers = struct | Modal (Comonadic Portability) -> t.portability | Modal (Monadic Contention) -> t.contention | Modal (Comonadic Yielding) -> t.yielding + | Modal (Comonadic Statefulness) -> t.statefulness + | Modal (Monadic Visibility) -> t.visibility | Nonmodal Externality -> t.externality | Nonmodal Nullability -> t.nullability + | Nonmodal Separability -> t.separability let set (type a) ~(axis : a Axis.t) (t : t) (value : a Location.loc option) : t = @@ -127,39 +158,166 @@ module Transled_modifiers = struct | Modal (Comonadic Portability) -> { t with portability = value } | Modal (Monadic Contention) -> { t with contention = value } | Modal (Comonadic Yielding) -> { t with yielding = value } + | Modal (Comonadic Statefulness) -> { t with statefulness = value } + | Modal (Monadic Visibility) -> { t with visibility = value } | Nonmodal Externality -> { t with externality = value } | Nonmodal Nullability -> { t with nullability = value } + | Nonmodal Separability -> { t with separability = value } end -let transl_modifier_annots annots = - let step modifiers_so_far annot = - let { txt = Any_axis_pair (type a) ((axis, mode) : a Axis.t * a); loc } = +let transl_mod_bounds annots = + let step bounds_so_far annot = + match transl_annot ~annot_type:Modifier ~required_mode_maturity:None @@ unpack_mode_annot annot - in - let (module A) = Axis.get axis in - let is_top = A.le A.max mode in - if is_top - then - (* CR layouts v2.8: This warning is disabled for now because transl_type_decl - results in 3 calls to transl_annots per user-written annotation. This results - in the warning being reported 3 times. *) - (* Location.prerr_warning new_raw.loc (Warnings.Mod_by_top new_raw.txt) *) - (); - let is_dup = - Option.is_some (Transled_modifiers.get ~axis modifiers_so_far) - in - if is_dup then raise (Error (annot.loc, Duplicated_axis axis)); - Transled_modifiers.set ~axis modifiers_so_far (Some { txt = mode; loc }) + with + | { txt = Any_axis_pair (type a) ((axis, mode) : a Axis.t * a); loc } -> + let (module A) = Axis.get axis in + let is_top = A.le A.max mode in + if is_top + then + (* CR layouts v2.8: This warning is disabled for now because transl_type_decl + results in 3 calls to transl_annots per user-written annotation. This results + in the warning being reported 3 times. *) + (* Location.prerr_warning new_raw.loc (Warnings.Mod_by_top new_raw.txt) *) + (); + let is_dup = + Option.is_some (Transled_modifiers.get ~axis bounds_so_far) + in + if is_dup then raise (Error (annot.loc, Duplicated_axis axis)); + Transled_modifiers.set ~axis bounds_so_far (Some { txt = mode; loc }) + | { txt = Everything_but_nullability; loc } -> + Transled_modifiers. + { locality = Some { txt = Locality.Const.min; loc }; + linearity = Some { txt = Linearity.Const.min; loc }; + uniqueness = Some { txt = Uniqueness.Const_op.min; loc }; + portability = Some { txt = Portability.Const.min; loc }; + contention = Some { txt = Contention.Const_op.min; loc }; + yielding = Some { txt = Yielding.Const.min; loc }; + externality = Some { txt = Externality.min; loc }; + statefulness = Some { txt = Statefulness.Const.min; loc }; + visibility = Some { txt = Visibility.Const_op.min; loc }; + nullability = + Transled_modifiers.get ~axis:(Nonmodal Nullability) bounds_so_far; + separability = + Transled_modifiers.get ~axis:(Nonmodal Separability) bounds_so_far + } in let empty_modifiers = Transled_modifiers.empty in - List.fold_left step empty_modifiers annots + let modifiers = List.fold_left step empty_modifiers annots in + (* Since [yielding] is the default mode in presence of [local], + the [global] modifier must also apply [unyielding] unless specified. *) + let modifiers = + match + ( Transled_modifiers.get ~axis:(Modal (Comonadic Yielding)) modifiers, + Transled_modifiers.get ~axis:(Modal (Comonadic Areality)) modifiers ) + with + | None, Some { txt = Locality.Const.Global; _ } -> + Transled_modifiers.set ~axis:(Modal (Comonadic Yielding)) modifiers + (Some { txt = Yielding.Const.Unyielding; loc = Location.none }) + | _, _ -> modifiers + in + (* Likewise, [immutable] => [contended], [read] => [shared]. *) + let modifiers = + match + ( Transled_modifiers.get ~axis:(Modal (Monadic Contention)) modifiers, + Transled_modifiers.get ~axis:(Modal (Monadic Visibility)) modifiers ) + with + | None, Some { txt = Visibility.Const.Immutable; _ } -> + Transled_modifiers.set ~axis:(Modal (Monadic Contention)) modifiers + (Some { txt = Contention.Const.Contended; loc = Location.none }) + | None, Some { txt = Visibility.Const.Read; _ } -> + Transled_modifiers.set ~axis:(Modal (Monadic Contention)) modifiers + (Some { txt = Contention.Const.Shared; loc = Location.none }) + | _, _ -> modifiers + in + (* Likewise, [stateless] => [portable]. *) + let modifiers = + match + ( Transled_modifiers.get ~axis:(Modal (Comonadic Portability)) modifiers, + Transled_modifiers.get ~axis:(Modal (Comonadic Statefulness)) modifiers + ) + with + | None, Some { txt = Statefulness.Const.Stateless; _ } -> + Transled_modifiers.set ~axis:(Modal (Comonadic Portability)) modifiers + (Some { txt = Portability.Const.Portable; loc = Location.none }) + | _, _ -> modifiers + in + let open Types.Jkind_mod_bounds in + let locality = + Option.fold ~some:Location.get_txt ~none:Locality.max modifiers.locality + in + let linearity = + Option.fold ~some:Location.get_txt ~none:Linearity.max modifiers.linearity + in + let uniqueness = + Option.fold ~some:Location.get_txt ~none:Uniqueness.max modifiers.uniqueness + in + let portability = + Option.fold ~some:Location.get_txt ~none:Portability.max + modifiers.portability + in + let contention = + Option.fold ~some:Location.get_txt ~none:Contention.max modifiers.contention + in + let yielding = + Option.fold ~some:Location.get_txt ~none:Yielding.max modifiers.yielding + in + let statefulness = + Option.fold ~some:Location.get_txt ~none:Statefulness.max + modifiers.statefulness + in + let visibility = + Option.fold ~some:Location.get_txt ~none:Visibility.max modifiers.visibility + in + let externality = + Option.fold ~some:Location.get_txt ~none:Externality.max + modifiers.externality + in + let nullability = + Option.fold ~some:Location.get_txt ~none:Nullability.max + modifiers.nullability + in + let separability = + Option.fold ~some:Location.get_txt ~none:Separability.max + modifiers.separability + in + create ~locality ~linearity ~uniqueness ~portability ~contention ~yielding + ~statefulness ~visibility ~externality ~nullability ~separability + +let default_mode_annots (annots : Alloc.Const.Option.t) = + (* [yielding] has a different default depending on whether [areality] + is [global] or [local]. *) + let yielding = + match annots.yielding, annots.areality with + | (Some _ as y), _ | y, None -> y + | None, Some Locality.Const.Global -> Some Yielding.Const.Unyielding + | None, Some Locality.Const.Local -> Some Yielding.Const.Yielding + in + (* Likewise for [contention]. *) + let contention = + match annots.contention, annots.visibility with + | (Some _ as c), _ | c, None -> c + | None, Some Visibility.Const.Immutable -> Some Contention.Const.Contended + | None, Some Visibility.Const.Read -> Some Contention.Const.Shared + | None, Some Visibility.Const.Read_write -> + Some Contention.Const.Uncontended + in + (* Likewise for [portability]. *) + let portability = + match annots.portability, annots.statefulness with + | (Some _ as p), _ | p, None -> p + | None, Some Statefulness.Const.Stateless -> Some Portability.Const.Portable + | None, Some Statefulness.Const.(Observing | Stateful) -> + Some Portability.Const.Nonportable + in + { annots with yielding; contention; portability } let transl_mode_annots annots : Alloc.Const.Option.t = let step modifiers_so_far annot = let { txt = - Modal_axis_pair (type m a d) - ((axis, mode) : (m, a, d) Mode.Alloc.axis * a); + Modal_axis_pair (type a d0 d1) + ((axis, mode) : (a, d0, d1) Mode.Alloc.Axis.t * a); loc } = transl_annot ~annot_type:Mode ~required_mode_maturity:(Some Stable) @@ -172,53 +330,99 @@ let transl_mode_annots annots : Alloc.Const.Option.t = in let empty_modifiers = Transled_modifiers.empty in let modes = List.fold_left step empty_modifiers annots in - { areality = Option.map get_txt modes.locality; - linearity = Option.map get_txt modes.linearity; - uniqueness = Option.map get_txt modes.uniqueness; - portability = Option.map get_txt modes.portability; - contention = Option.map get_txt modes.contention; - yielding = Option.map get_txt modes.yielding - } - -let untransl_mode_annots ~loc (modes : Mode.Alloc.Const.Option.t) = + default_mode_annots + { areality = Option.map get_txt modes.locality; + linearity = Option.map get_txt modes.linearity; + uniqueness = Option.map get_txt modes.uniqueness; + portability = Option.map get_txt modes.portability; + contention = Option.map get_txt modes.contention; + yielding = Option.map get_txt modes.yielding; + statefulness = Option.map get_txt modes.statefulness; + visibility = Option.map get_txt modes.visibility + } + +let untransl_mode_annots (modes : Mode.Alloc.Const.Option.t) = let print_to_string_opt print a = Option.map (Format.asprintf "%a" print) a in + (* Untranslate [areality] and [yielding]. *) let areality = print_to_string_opt Mode.Locality.Const.print modes.areality in + let yielding = + (* Since [yielding] has non-standard defaults, we special-case + whether we want to print it here. *) + match modes.yielding, modes.areality with + | Some Yielding.Const.Yielding, Some Locality.Const.Local + | Some Yielding.Const.Unyielding, Some Locality.Const.Global -> + None + | _, _ -> print_to_string_opt Mode.Yielding.Const.print modes.yielding + in + (* Untranslate [visibility] and [contention]. *) + let visibility = + print_to_string_opt Mode.Visibility.Const.print modes.visibility + in + let contention = + match modes.visibility, modes.contention with + | Some Visibility.Const.Immutable, Some Contention.Const.Contended + | Some Visibility.Const.Read, Some Contention.Const.Shared + | Some Visibility.Const.Read_write, Some Contention.Const.Uncontended -> + None + | _, _ -> print_to_string_opt Mode.Contention.Const.print modes.contention + in + (* Untranslate [statefulness] and [portability]. *) + let statefulness = + print_to_string_opt Mode.Statefulness.Const.print modes.statefulness + in + let portability = + match modes.statefulness, modes.portability with + | Some Statefulness.Const.Stateless, Some Portability.Const.Portable + | ( Some Statefulness.Const.(Observing | Stateful), + Some Portability.Const.Nonportable ) -> + None + | _, _ -> print_to_string_opt Mode.Portability.Const.print modes.portability + in + (* Untranslate remaining modes. *) let uniqueness = print_to_string_opt Mode.Uniqueness.Const.print modes.uniqueness in let linearity = print_to_string_opt Mode.Linearity.Const.print modes.linearity in - let portability = - print_to_string_opt Mode.Portability.Const.print modes.portability - in - let contention = - print_to_string_opt Mode.Contention.Const.print modes.contention - in - let yielding = print_to_string_opt Mode.Yielding.Const.print modes.yielding in List.filter_map - (fun x -> Option.map (fun s -> { txt = Parsetree.Mode s; loc }) x) - [areality; uniqueness; linearity; portability; contention; yielding] + (fun x -> + Option.map (fun s -> { txt = Parsetree.Mode s; loc = Location.none }) x) + [ areality; + uniqueness; + linearity; + portability; + contention; + yielding; + statefulness; + visibility ] let transl_modality ~maturity { txt = Parsetree.Modality modality; loc } = let axis_pair = transl_annot ~annot_type:Modality ~required_mode_maturity:(Some maturity) { txt = modality; loc } in - match axis_pair.txt with - | Modal_axis_pair (Comonadic Areality, mode) -> - Modality.Atom - (Comonadic Areality, Meet_with (Const.locality_as_regionality mode)) - | Modal_axis_pair (Comonadic Linearity, mode) -> - Modality.Atom (Comonadic Linearity, Meet_with mode) - | Modal_axis_pair (Comonadic Portability, mode) -> - Modality.Atom (Comonadic Portability, Meet_with mode) - | Modal_axis_pair (Monadic Uniqueness, mode) -> - Modality.Atom (Monadic Uniqueness, Join_with mode) - | Modal_axis_pair (Monadic Contention, mode) -> - Modality.Atom (Monadic Contention, Join_with mode) - | Modal_axis_pair (Comonadic Yielding, mode) -> - Modality.Atom (Comonadic Yielding, Meet_with mode) + let atom = + match axis_pair.txt with + | Modal_axis_pair (Comonadic Areality, mode) -> + Modality.Atom + (Comonadic Areality, Meet_with (Const.locality_as_regionality mode)) + | Modal_axis_pair (Comonadic Linearity, mode) -> + Modality.Atom (Comonadic Linearity, Meet_with mode) + | Modal_axis_pair (Comonadic Portability, mode) -> + Modality.Atom (Comonadic Portability, Meet_with mode) + | Modal_axis_pair (Monadic Uniqueness, mode) -> + Modality.Atom (Monadic Uniqueness, Join_with mode) + | Modal_axis_pair (Monadic Contention, mode) -> + Modality.Atom (Monadic Contention, Join_with mode) + | Modal_axis_pair (Comonadic Yielding, mode) -> + Modality.Atom (Comonadic Yielding, Meet_with mode) + | Modal_axis_pair (Comonadic Statefulness, mode) -> + Modality.Atom (Comonadic Statefulness, Meet_with mode) + | Modal_axis_pair (Monadic Visibility, mode) -> + Modality.Atom (Monadic Visibility, Join_with mode) + in + atom, loc let untransl_modality (a : Modality.t) : Parsetree.modality loc = let s = @@ -241,57 +445,143 @@ let untransl_modality (a : Modality.t) : Parsetree.modality loc = | Atom (Comonadic Yielding, Meet_with Yielding.Const.Yielding) -> "yielding" | Atom (Comonadic Yielding, Meet_with Yielding.Const.Unyielding) -> "unyielding" + | Atom (Comonadic Statefulness, Meet_with Statefulness.Const.Stateless) -> + "stateless" + | Atom (Comonadic Statefulness, Meet_with Statefulness.Const.Observing) -> + "observing" + | Atom (Comonadic Statefulness, Meet_with Statefulness.Const.Stateful) -> + "stateful" + | Atom (Monadic Visibility, Join_with Visibility.Const.Immutable) -> + "immutable" + | Atom (Monadic Visibility, Join_with Visibility.Const.Read) -> "read" + | Atom (Monadic Visibility, Join_with Visibility.Const.Read_write) -> + "read_write" | _ -> failwith "BUG: impossible modality atom" in { txt = Modality s; loc = Location.none } (* For now, mutable implies legacy modalities for both comonadic axes and monadic axes. In the future, implications on the comonadic axes will be - removed (and can be experimented currently with using - @no_mutable_implied_modalities). The implications on the monadic axes will - stay. *) + removed. The implications on the monadic axes will stay. Implied modalities + can be overriden. *) (* CR zqian: decouple mutable and comonadic modalities *) -let mutable_implied_modalities (mut : Types.mutability) attrs = +let mutable_implied_modalities (mut : Types.mutability) = let comonadic : Modality.t list = [ Atom (Comonadic Areality, Meet_with Regionality.Const.legacy); Atom (Comonadic Linearity, Meet_with Linearity.Const.legacy); Atom (Comonadic Portability, Meet_with Portability.Const.legacy); - Atom (Comonadic Yielding, Meet_with Yielding.Const.legacy) ] + Atom (Comonadic Yielding, Meet_with Yielding.Const.legacy); + Atom (Comonadic Statefulness, Meet_with Statefulness.Const.legacy) ] in let monadic : Modality.t list = [ Atom (Monadic Uniqueness, Join_with Uniqueness.Const.legacy); - Atom (Monadic Contention, Join_with Contention.Const.legacy) ] + Atom (Monadic Contention, Join_with Contention.Const.legacy); + Atom (Monadic Visibility, Join_with Visibility.Const.legacy) ] + in + match mut with Immutable -> [] | Mutable _ -> monadic @ comonadic + +let mutable_implied_modalities (mut : Types.mutability) = + let l = mutable_implied_modalities mut in + List.fold_left + (fun t (Modality.Atom (ax, a)) -> Modality.Value.Const.set ax a t) + Modality.Value.Const.id l + +(* Since [yielding] is the default mode in presence of [local], + the [global] modality must also apply [unyielding] unless specified. + + Similarly for [visibility]/[contention] and [statefulness]/[portability]. *) +let implied_modalities (Atom (ax, a) : Modality.t) : Modality.t list = + match ax, a with + | Comonadic Areality, Meet_with a -> + let b : Yielding.Const.t = + match a with + | Global -> Unyielding + | Local -> Yielding + | Regional -> assert false + in + [Atom (Comonadic Yielding, Meet_with b)] + | Monadic Visibility, Join_with a -> + let b : Contention.Const.t = + match a with + | Immutable -> Contended + | Read -> Shared + | Read_write -> Uncontended + in + [Atom (Monadic Contention, Join_with b)] + | Comonadic Statefulness, Meet_with a -> + let b : Portability.Const.t = + match a with Stateless -> Portable | Stateful | Observing -> Nonportable + in + [Atom (Comonadic Portability, Meet_with b)] + | _ -> [] + +let least_modalities_implying mut (t : Modality.Value.Const.t) = + let baseline = mutable_implied_modalities mut in + let annotated = Modality.Value.Const.(diff baseline t) in + let implied = List.concat_map implied_modalities annotated in + let exclude_implied = + List.filter (fun x -> not @@ List.mem x implied) annotated + in + let overridden = + List.filter_map + (fun (Modality.Atom (ax, m_implied)) -> + let m_projected = Modality.Value.Const.proj ax t in + if m_projected <> m_implied + then Some (Modality.Atom (ax, m_projected)) + else None) + implied in - match mut with - | Immutable -> [] - | Mutable _ -> - if Builtin_attributes.has_no_mutable_implied_modalities attrs - then monadic - else monadic @ comonadic + exclude_implied @ overridden -let transl_modalities ~maturity mut attrs modalities = - let mut_modalities = mutable_implied_modalities mut attrs in +let sort_dedup_modalities ~warn l = + let compare (Modality.Atom (ax0, _), _) (Modality.Atom (ax1, _), _) = + Value.Axis.compare ax0 ax1 + in + let dedup ~on_dup = + let rec loop x = function + | [] -> [x] + | y :: xs -> + if compare x y = 0 + then ( + on_dup x y; + loop y xs) + else x :: loop y xs + in + function [] -> [] | x :: xs -> loop x xs + in + let on_dup (Modality.Atom (ax0, _), loc0) (a1, _) = + if warn + then + let axis = Format.asprintf "%a" Value.Axis.print ax0 in + let { txt = Modality overriden_by; _ } = untransl_modality a1 in + Location.prerr_warning loc0 + (Warnings.Modal_axis_specified_twice { axis; overriden_by }) + in + l |> List.stable_sort compare |> dedup ~on_dup |> List.map fst + +let transl_modalities ~maturity mut modalities = + let mut_modalities = mutable_implied_modalities mut in let modalities = List.map (transl_modality ~maturity) modalities in - (* mut_modalities is applied before explicit modalities *) - Modality.Value.Const.id - |> List.fold_right - (fun atom m -> Modality.Value.Const.compose ~then_:atom m) - mut_modalities - (* For explicit modalities: - type r = { x : string @@ foo bar hello } - is interpreted as - x = foo (bar (hello (r))) *) - |> List.fold_right - (fun atom m -> Modality.Value.Const.compose ~then_:atom m) - modalities - -let untransl_modalities mut attrs t = - let l = Modality.Value.Const.to_list t in - let l = List.filter (fun a -> not @@ Modality.is_id a) l in - let mut_modalities = mutable_implied_modalities mut attrs in - (* polymorphic equality suffices for now. *) - let l = List.filter (fun x -> not @@ List.mem x mut_modalities) l in - List.map untransl_modality l + (* axes listed in the order of implication. *) + let modalities = sort_dedup_modalities ~warn:true modalities in + let open Modality in + (* - mut_modalities is applied before explicit modalities. + - explicit modalities can override mut_modalities. + - For the same axis, later modalities overrides earlier modalities. *) + List.fold_left + (fun m (Atom (ax, a) as t) -> + let m = Value.Const.set ax a m in + List.fold_left + (fun m (Atom (ax, a)) -> Value.Const.set ax a m) + m (implied_modalities t)) + mut_modalities modalities + +let untransl_modalities mut t = + t + |> least_modalities_implying mut + |> List.map (fun x -> x, Location.none) + |> sort_dedup_modalities ~warn:false + |> List.map untransl_modality let transl_alloc_mode modes = let opt = transl_mode_annots modes in diff --git a/src/ocaml/typing/typemode.mli b/src/ocaml/typing/typemode.mli index baa85bbee..d3c01b76b 100644 --- a/src/ocaml/typing/typemode.mli +++ b/src/ocaml/typing/typemode.mli @@ -1,8 +1,7 @@ (** Interpret mode syntax as mode annotation, where axes can be left unspecified *) val transl_mode_annots : Parsetree.modes -> Mode.Alloc.Const.Option.t -val untransl_mode_annots : - loc:Location.t -> Mode.Alloc.Const.Option.t -> Parsetree.modes +val untransl_mode_annots : Mode.Alloc.Const.Option.t -> Parsetree.modes (** Interpret mode syntax as alloc mode (on arrow types), where axes are set to legacy if unspecified *) @@ -15,7 +14,6 @@ val transl_alloc_mode : Parsetree.modes -> Mode.Alloc.Const.t val transl_modalities : maturity:Language_extension.maturity -> Types.mutability -> - Parsetree.attributes -> Parsetree.modalities -> Mode.Modality.Value.Const.t @@ -25,30 +23,7 @@ val untransl_modality : Mode.Modality.t -> Parsetree.modality Location.loc attributes on the field and remove mutable-implied modalities accordingly. *) val untransl_modalities : - Types.mutability -> - Parsetree.attributes -> - Mode.Modality.Value.Const.t -> - Parsetree.modalities - -module Transled_modifiers : sig - type t = - { locality : Mode.Locality.Const.t Location.loc option; - linearity : Mode.Linearity.Const.t Location.loc option; - uniqueness : Mode.Uniqueness.Const.t Location.loc option; - portability : Mode.Portability.Const.t Location.loc option; - contention : Mode.Contention.Const.t Location.loc option; - yielding : Mode.Yielding.Const.t Location.loc option; - externality : Jkind_axis.Externality.t Location.loc option; - nullability : Jkind_axis.Nullability.t Location.loc option - } - - val empty : t - - val get : axis:'a Jkind_axis.Axis.t -> t -> 'a Location.loc option - - val set : axis:'a Jkind_axis.Axis.t -> t -> 'a Location.loc option -> t -end + Types.mutability -> Mode.Modality.Value.Const.t -> Parsetree.modalities -(** Interpret a list of modifiers. - A "modifier" is any keyword coming after a `mod` in a jkind *) -val transl_modifier_annots : Parsetree.modes -> Transled_modifiers.t +(** Interpret a mod-bounds. *) +val transl_mod_bounds : Parsetree.modes -> Types.Jkind_mod_bounds.t diff --git a/src/ocaml/typing/typeopt.ml b/src/ocaml/typing/typeopt.ml index 44c72bb5e..6cc9612b4 100644 --- a/src/ocaml/typing/typeopt.ml +++ b/src/ocaml/typing/typeopt.ml @@ -176,7 +176,7 @@ let classify ~classify_product env ty sort : _ classification = end | Tarrow _ | Ttuple _ | Tpackage _ | Tobject _ | Tnil | Tvariant _ -> Addr - | Tlink _ | Tsubst _ | Tpoly _ | Tfield _ | Tunboxed_tuple _ -> + | Tlink _ | Tsubst _ | Tpoly _ | Tfield _ | Tunboxed_tuple _ | Tof_kind _ -> assert false end | Base Float64 -> Unboxed_float Unboxed_float64 @@ -564,7 +564,7 @@ let rec value_kind env ~loc ~visited ~depth ~num_nodes_visited ty non_consts = [0, Constructor_uniform fields] })) | Tvariant row -> num_nodes_visited, - if Ctype.tvariant_not_immediate row + if Btype.tvariant_not_immediate row then non_nullable Pgenval else non_nullable Pintval | _ -> @@ -576,10 +576,16 @@ and value_kind_mixed_block_field env ~loc ~visited ~depth ~num_nodes_visited : int * unit Lambda.mixed_block_element = match field with | Value -> - let num_nodes_visited, kind = - value_kind env ~loc ~visited ~depth ~num_nodes_visited ty - in - num_nodes_visited, Value kind + begin match ty with + | Some ty -> + let num_nodes_visited, kind = + value_kind env ~loc ~visited ~depth ~num_nodes_visited ty + in + num_nodes_visited, Value kind + | None -> num_nodes_visited, Value (nullable Pgenval) + (* CR layouts v7.1: assess whether it is important for performance to + support deep value_kinds here *) + end | Float_boxed -> num_nodes_visited, Float_boxed () | Float64 -> num_nodes_visited, Float64 | Float32 -> num_nodes_visited, Float32 @@ -587,6 +593,14 @@ and value_kind_mixed_block_field env ~loc ~visited ~depth ~num_nodes_visited | Bits64 -> num_nodes_visited, Bits64 | Vec128 -> num_nodes_visited, Vec128 | Word -> num_nodes_visited, Word + | Product fs -> + let num_nodes_visited, kinds = + Array.fold_left_map (fun num_nodes_visited field -> + value_kind_mixed_block_field env ~loc ~visited ~depth ~num_nodes_visited + field None + ) num_nodes_visited fs + in + num_nodes_visited, Product kinds and value_kind_mixed_block env ~loc ~visited ~depth ~num_nodes_visited ~shape types = @@ -654,7 +668,7 @@ and value_kind_variant env ~loc ~visited ~depth ~num_nodes_visited ~depth ~num_nodes_visited | Constructor_mixed shape -> value_kind_mixed_block env ~loc ~visited ~depth ~num_nodes_visited - ~shape (List.map field_to_type fields) + ~shape (List.map (fun f -> Some (field_to_type f)) fields) in (false, num_nodes_visited), fields | Cstr_record labels -> @@ -672,7 +686,7 @@ and value_kind_variant env ~loc ~visited ~depth ~num_nodes_visited ~depth ~num_nodes_visited | Constructor_mixed shape -> value_kind_mixed_block env ~loc ~visited ~depth ~num_nodes_visited - ~shape (List.map field_to_type labels) + ~shape (List.map (fun f -> Some (field_to_type f)) labels) in (is_mutable, num_nodes_visited), fields in @@ -787,7 +801,7 @@ and value_kind_record env ~loc ~visited ~depth ~num_nodes_visited | Record_mixed shape -> let types = List.map (fun label -> label.Types.ld_type) labels in value_kind_mixed_block env ~loc ~visited ~depth ~num_nodes_visited - ~shape types + ~shape (List.map (fun t -> Some t) types) in let non_consts = match rep with diff --git a/src/ocaml/typing/types.ml b/src/ocaml/typing/types.ml index 82311382a..5cc9e5264 100644 --- a/src/ocaml/typing/types.ml +++ b/src/ocaml/typing/types.ml @@ -35,8 +35,11 @@ module Jkind_mod_bounds = struct module Portability = Mode.Portability.Const module Contention = Mode.Contention.Const_op module Yielding = Mode.Yielding.Const + module Statefulness = Mode.Statefulness.Const + module Visibility = Mode.Visibility.Const_op module Externality = Jkind_axis.Externality module Nullability = Jkind_axis.Nullability + module Separability = Jkind_axis.Separability type t = { locality: Locality.t; @@ -45,8 +48,11 @@ module Jkind_mod_bounds = struct portability: Portability.t; contention: Contention.t; yielding: Yielding.t; + statefulness: Statefulness.t; + visibility: Visibility.t; externality: Externality.t; nullability: Nullability.t; + separability: Separability.t; } let[@inline] locality t = t.locality @@ -55,8 +61,11 @@ module Jkind_mod_bounds = struct let[@inline] portability t = t.portability let[@inline] contention t = t.contention let[@inline] yielding t = t.yielding + let[@inline] statefulness t = t.statefulness + let[@inline] visibility t = t.visibility let[@inline] externality t = t.externality let[@inline] nullability t = t.nullability + let[@inline] separability t = t.separability let[@inline] create ~locality @@ -65,8 +74,11 @@ module Jkind_mod_bounds = struct ~portability ~contention ~yielding + ~statefulness + ~visibility ~externality - ~nullability = + ~nullability + ~separability = { locality; linearity; @@ -74,8 +86,11 @@ module Jkind_mod_bounds = struct portability; contention; yielding; + statefulness; + visibility; externality; nullability; + separability; } let[@inline] set_locality locality t = { t with locality } @@ -84,8 +99,11 @@ module Jkind_mod_bounds = struct let[@inline] set_portability portability t = { t with portability } let[@inline] set_contention contention t = { t with contention } let[@inline] set_yielding yielding t = { t with yielding } + let[@inline] set_statefulness statefulness t = { t with statefulness } + let[@inline] set_visibility visibility t = { t with visibility } let[@inline] set_externality externality t = { t with externality } let[@inline] set_nullability nullability t = { t with nullability } + let[@inline] set_separability separability t = { t with separability } let[@inline] set_max_in_set t max_axes = let open Jkind_axis.Axis_set in @@ -121,6 +139,16 @@ module Jkind_mod_bounds = struct then Yielding.max else t.yielding in + let statefulness = + if mem max_axes (Modal (Comonadic Statefulness)) + then Statefulness.max + else t.statefulness + in + let visibility = + if mem max_axes (Modal (Monadic Visibility)) + then Visibility.max + else t.visibility + in let externality = if mem max_axes (Nonmodal Externality) then Externality.max @@ -131,6 +159,11 @@ module Jkind_mod_bounds = struct then Nullability.max else t.nullability in + let separability = + if mem max_axes (Nonmodal Separability) + then Separability.max + else t.separability + in { locality; linearity; @@ -138,8 +171,11 @@ module Jkind_mod_bounds = struct portability; contention; yielding; + statefulness; + visibility; externality; nullability; + separability; } let[@inline] set_min_in_set t min_axes = @@ -176,6 +212,16 @@ module Jkind_mod_bounds = struct then Yielding.min else t.yielding in + let statefulness = + if mem min_axes (Modal (Comonadic Statefulness)) + then Statefulness.min + else t.statefulness + in + let visibility = + if mem min_axes (Modal (Monadic Visibility)) + then Visibility.min + else t.visibility + in let externality = if mem min_axes (Nonmodal Externality) then Externality.min @@ -186,15 +232,23 @@ module Jkind_mod_bounds = struct then Nullability.min else t.nullability in + let separability = + if mem min_axes (Nonmodal Separability) + then Separability.min + else t.separability + in { locality; linearity; uniqueness; portability; contention; + statefulness; + visibility; yielding; externality; nullability; + separability; } let[@inline] is_max_within_set t axes = @@ -211,10 +265,16 @@ module Jkind_mod_bounds = struct Contention.(le max (contention t))) && (not (mem axes (Modal (Comonadic Yielding))) || Yielding.(le max (yielding t))) && + (not (mem axes (Modal (Comonadic Statefulness))) || + Statefulness.(le max (statefulness t))) && + (not (mem axes (Modal (Monadic Visibility))) || + Visibility.(le max (visibility t))) && (not (mem axes (Nonmodal Externality)) || Externality.(le max (externality t))) && (not (mem axes (Nonmodal Nullability)) || - Nullability.(le max (nullability t))) + Nullability.(le max (nullability t))) && + (not (mem axes (Nonmodal Separability)) || + Separability.(le max (separability t))) let[@inline] is_max = function | { locality = Local; @@ -223,8 +283,11 @@ module Jkind_mod_bounds = struct portability = Portable; contention = Uncontended; yielding = Yielding; + statefulness = Stateful; + visibility = Read_write; externality = External; - nullability = Maybe_null } -> true + nullability = Maybe_null; + separability = Maybe_separable } -> true | _ -> false let debug_print ppf @@ -234,19 +297,26 @@ module Jkind_mod_bounds = struct portability; contention; yielding; + statefulness; + visibility; externality; - nullability } = + nullability; + separability } = Format.fprintf ppf "@[{ locality = %a;@ linearity = %a;@ uniqueness = %a;@ \ - portability = %a;@ contention = %a;@ yielding = %a;@ externality = %a;@ \ - nullability = %a }@]" + portability = %a;@ contention = %a;@ yielding = %a;@ statefulness = %a;@ \ + visibility = %a;@ externality = %a;@ \ + nullability = %a;@ separability = %a }@]" Locality.print locality Linearity.print linearity Uniqueness.print uniqueness Portability.print portability Contention.print contention Yielding.print yielding + Statefulness.print statefulness + Visibility.print visibility Externality.print externality Nullability.print nullability + Separability.print separability end @@ -277,6 +347,7 @@ and type_desc = | Tunivar of { name : string option; jkind : jkind_lr } | Tpoly of type_expr * type_expr list | Tpackage of Path.t * (Longident.t * type_expr) list + | Tof_kind of jkind_lr and arg_label = | Nolabel @@ -294,7 +365,11 @@ and row_desc = row_fixed: fixed_explanation option; row_name: (Path.t * type_expr list) option } and fixed_explanation = - | Univar of type_expr | Fixed_private | Reified of Path.t | Rigid + | Univar of type_expr + | Fixed_private + | Reified of Path.t + | Rigid + | Fixed_existential and row_field = [`some] row_field_gen and _ row_field_gen = RFpresent : type_expr option -> [> `some] row_field_gen @@ -365,6 +440,7 @@ and 'd jkind = annotation : Parsetree.jkind_annotation option; history : jkind_history; has_warned : bool; + ran_out_of_fuel_during_normalize : bool; quality : 'd jkind_quality; } constraint 'd = 'l * 'r @@ -570,6 +646,7 @@ and mixed_block_element = | Bits64 | Vec128 | Word + | Product of mixed_product_shape and mixed_product_shape = mixed_block_element array @@ -902,19 +979,24 @@ let compare_tag t1 t2 = | Extension _, Null -> -1 | Null, Extension _ -> 1 -let equal_mixed_block_element e1 e2 = +let rec equal_mixed_block_element e1 e2 = match e1, e2 with | Value, Value | Float64, Float64 | Float32, Float32 | Float_boxed, Float_boxed | Word, Word | Bits32, Bits32 | Bits64, Bits64 | Vec128, Vec128 -> true - | (Value | Float64 | Float32 | Float_boxed | Word | Bits32 | Bits64 | Vec128), _ + | Product es1, Product es2 + -> Misc_stdlib.Array.equal equal_mixed_block_element es1 es2 + | ( Value | Float64 | Float32 | Float_boxed | Word | Bits32 | Bits64 | Vec128 + | Product _ ), _ -> false -let compare_mixed_block_element e1 e2 = +let rec compare_mixed_block_element e1 e2 = match e1, e2 with | Value, Value | Float_boxed, Float_boxed | Float64, Float64 | Float32, Float32 | Word, Word | Bits32, Bits32 | Bits64, Bits64 | Vec128, Vec128 -> 0 + | Product es1, Product es2 + -> Misc_stdlib.Array.compare compare_mixed_block_element es1 es2 | Value, _ -> -1 | _, Value -> 1 | Float_boxed, _ -> -1 @@ -929,6 +1011,8 @@ let compare_mixed_block_element e1 e2 = | _, Bits32 -> 1 | Vec128, _ -> -1 | _, Vec128 -> 1 + | Product _, _ -> -1 + | _, Product _ -> 1 let equal_mixed_product_shape r1 r2 = r1 == r2 || array_equal equal_mixed_block_element r1 r2 @@ -1071,7 +1155,7 @@ let signature_item_id = function | Sig_class_type (id, _, _, _) -> id -let mixed_block_element_to_string = function +let rec mixed_block_element_to_string = function | Value -> "Value" | Float_boxed -> "Float_boxed" | Float32 -> "Float32" @@ -1080,6 +1164,11 @@ let mixed_block_element_to_string = function | Bits64 -> "Bits64" | Vec128 -> "Vec128" | Word -> "Word" + | Product es -> + "Product [" + ^ (String.concat ", " + (Array.to_list (Array.map mixed_block_element_to_string es))) + ^ "]" let mixed_block_element_to_lowercase_string = function | Value -> "value" @@ -1090,6 +1179,11 @@ let mixed_block_element_to_lowercase_string = function | Bits64 -> "bits64" | Vec128 -> "vec128" | Word -> "word" + | Product es -> + "product [" + ^ (String.concat ", " + (Array.to_list (Array.map mixed_block_element_to_string es))) + ^ "]" (**** Definitions for backtracking ****) @@ -1214,7 +1308,7 @@ module Transient_expr = struct match ty.desc with | Tvar { name; _ } -> set_desc ty (Tvar { name; jkind = jkind' }) - | _ -> assert false + | _ -> Misc.fatal_error "set_var_jkind called on non-var" let coerce ty = ty let repr = repr let type_expr ty = ty @@ -1279,6 +1373,7 @@ let best_effort_compare_type_expr te1 te2 = | Tunboxed_tuple _ -> 3 | Tconstr (_, _, _) -> 5 | Tpoly (_, _) -> 6 + | Tof_kind _ -> 7 (* Types we should never see *) | Tlink _ -> Misc.fatal_error "Tlink encountered in With_bounds_types" in diff --git a/src/ocaml/typing/types.mli b/src/ocaml/typing/types.mli index 0ec1df142..7bed6fe82 100644 --- a/src/ocaml/typing/types.mli +++ b/src/ocaml/typing/types.mli @@ -76,8 +76,11 @@ module Jkind_mod_bounds : sig module Portability = Mode.Portability.Const module Contention = Mode.Contention.Const_op module Yielding = Mode.Yielding.Const + module Statefulness = Mode.Statefulness.Const + module Visibility = Mode.Visibility.Const_op module Externality = Jkind_axis.Externality module Nullability = Jkind_axis.Nullability + module Separability = Jkind_axis.Separability type t @@ -88,8 +91,11 @@ module Jkind_mod_bounds : sig portability:Portability.t -> contention:Contention.t -> yielding:Yielding.t -> + statefulness:Statefulness.t -> + visibility:Visibility.t -> externality:Externality.t -> nullability:Nullability.t -> + separability:Separability.t -> t val locality : t -> Locality.t @@ -98,8 +104,11 @@ module Jkind_mod_bounds : sig val portability : t -> Portability.t val contention : t -> Contention.t val yielding : t -> Yielding.t + val statefulness : t -> Statefulness.t + val visibility : t -> Visibility.t val externality : t -> Externality.t val nullability : t -> Nullability.t + val separability : t -> Separability.t val set_locality : Locality.t -> t -> t val set_linearity : Linearity.t -> t -> t @@ -107,8 +116,11 @@ module Jkind_mod_bounds : sig val set_portability : Portability.t -> t -> t val set_contention : Contention.t -> t -> t val set_yielding : Yielding.t -> t -> t + val set_statefulness : Statefulness.t -> t -> t + val set_visibility : Visibility.t -> t -> t val set_externality : Externality.t -> t -> t val set_nullability : Nullability.t -> t -> t + val set_separability : Separability.t -> t -> t (** [set_max_in_set bounds axes] sets all the axes in [axes] to their [max] within [bounds] *) @@ -226,6 +238,15 @@ and type_desc = | Tpackage of Path.t * (Longident.t * type_expr) list (** Type of a first-class module (a.k.a package). *) + | Tof_kind of jkind_lr + (** [Tof_kind jkind] ==> [(type : jkind)] + + The "canonical" type of a particular kind. + + These types are uninhabited, and any appearing in translation will cause an error. + They are only used to represent the kinds of existentially-quantified types + mentioned in with-bounds. See test typing-jkind-bounds/gadt.ml *) + (** This is used in the Typedtree. It is distinct from {{!Asttypes.arg_label}[arg_label]} because Position argument labels are discovered through typechecking. *) @@ -240,11 +261,15 @@ and arrow_desc = +(** See also documentation for [row_more], which enumerates how these + constructors arise. *) and fixed_explanation = | Univar of type_expr (** The row type was bound to an univar *) | Fixed_private (** The row type is private *) | Reified of Path.t (** The row was reified *) | Rigid (** The row type was made rigid during constraint verification *) + | Fixed_existential (** The row type is existential in a with-bound. + See Note [With-bounds for GADTs] in Jkind. *) (** [abbrev_memo] allows one to keep track of different expansions of a type alias. This is done for performance purposes. @@ -354,6 +379,7 @@ and 'd jkind = annotation : Parsetree.jkind_annotation option; history : jkind_history; has_warned : bool; + ran_out_of_fuel_during_normalize : bool; quality : 'd jkind_quality; } constraint 'd = 'l * 'r @@ -514,9 +540,57 @@ val create_row: name:(Path.t * type_expr list) option -> row_desc val row_fields: row_desc -> (label * row_field) list + +(** [row_more] returns a [type_expr] with one of the following [type_desc]s + (also described with the return from [row_fixed], which varies similarly): + + * [Tvar]: This is a row variable; it would occur in e.g. [val f : + [> `A | `B] -> int]. When/if we learn more about a polymorphic variant, this + variable might get unified with one of the other [type_desc]s listed here, + or a [Tvariant] that represents a new set of constructors to add to the row. + + During [constraint] checking (toward the end of checking a type declaration, + in [Typedecl.check_constraints_rec]) we [Ctype.rigidify] a type to make it + so that its unification variables will not unify. When a [Tvar] row variable + is rigidified, its [fixed_explanation] will be [Rigid]. + + * [Tunivar]: This is a universally quantified row variable; it would occur + in e.g. [type t = { f : 'a. ([> `A | `B ] as 'a) -> int }]. A [Tunivar] has + a [fixed_explanation] of [Univar]. + + * [Tconstr]: There are two possible ways this can happen: + + 1. This is an abstract [#row] type created by a [private] row type, as in + [type t = private [> `A | `B]]. In this case, the [fixed_explanation] will + be [Fixed_private]. + + 2. This is a locally abstract type created by [Ctype.reify], which happens + when a row variable is free in the type of the scrutinee in a GADT pattern + match. The [fixed_explanation] will be [Reified]. Note that any manifest + of a reified row variable is actually ignored by [row_repr]; this causes + some incompletness in type inference. + + * [Tnil]: Used to denote a static polymorphic variant (with no [>] or [<]). + + * [Tof_kind]: See Wrinkle BW2 in Note [With-bounds for GADTs] in Jkind. + Briefly, [Tof_kind] can appear as a [row_more] when computing the kind + of a GADT with an existentially-bound row variable. The [fixed_explanation] + will be [Fixed_existential]. + + ---------------------------------------- + + It is an invariant that row variables are never shared between different + types. That is, if [row_more row1 == row_more row2], then [row1] and [row2] + come from structurally identical [Tvariant]s (but they might not be + physically equal). When copying types, two types with the same [row_more] + field are replaced by the same copy. +*) val row_more: row_desc -> type_expr val row_closed: row_desc -> bool + +(** See documentation for [row_more]. *) val row_fixed: row_desc -> fixed_explanation option + val row_name: row_desc -> (Path.t * type_expr list) option val set_row_name: row_desc -> (Path.t * type_expr list) option -> row_desc @@ -752,6 +826,8 @@ and mixed_block_element = | Bits64 | Vec128 | Word + | Product of mixed_product_shape + (* Invariant: the array has at least two things in it. *) and mixed_product_shape = mixed_block_element array diff --git a/src/ocaml/typing/typetexp.ml b/src/ocaml/typing/typetexp.ml index 4ae194e1d..15f4a702d 100644 --- a/src/ocaml/typing/typetexp.ml +++ b/src/ocaml/typing/typetexp.ml @@ -1079,6 +1079,10 @@ and transl_type_aux env ~row_context ~aliased ~policy mode styp = in let cty = transl_type new_env ~policy ~row_context mode t in ctyp (Ttyp_open (path, mod_ident, cty)) cty.ctyp_type + | Ptyp_of_kind jkind -> + let tjkind = jkind_of_annotation (Type_of_kind loc) styp.ptyp_attributes jkind in + let ty = newty (Tof_kind tjkind) in + ctyp (Ttyp_of_kind jkind) ty | Ptyp_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) diff --git a/src/ocaml/typing/uniqueness_analysis.ml b/src/ocaml/typing/uniqueness_analysis.ml index f664d089c..ba9a5e5fd 100644 --- a/src/ocaml/typing/uniqueness_analysis.ml +++ b/src/ocaml/typing/uniqueness_analysis.ml @@ -1532,20 +1532,14 @@ end = struct let child proj t = List.map (UF.Path.child proj) t - let modal_child gf proj t = + let modal_child modalities proj t = (* CR zqian: Instead of just ignoring such children, we should add modality to [Projection.t] and add corresponding logic in [UsageTree]. *) - let gf = Modality.Value.Const.to_list gf in - let l = - List.filter - (function - | Atom (Monadic Uniqueness, Join_with Aliased) -> true - | Atom (Comonadic Linearity, Meet_with Many) -> true - | _ -> false - : Modality.t -> _) - gf - in - if List.length l = 2 then untracked else child proj t + let uni = Modality.Value.Const.proj (Monadic Uniqueness) modalities in + let lin = Modality.Value.Const.proj (Comonadic Linearity) modalities in + match uni, lin with + | Join_with Aliased, Meet_with Many -> untracked + | _ -> child proj t let tuple_field i t = child (Projection.Tuple_field i) t @@ -1560,7 +1554,7 @@ end = struct let variant_field s t = child (Projection.Variant_field s) t let array_index mut i t = - let modality = Typemode.transl_modalities ~maturity:Stable mut [] [] in + let modality = Typemode.transl_modalities ~maturity:Stable mut [] in modal_child modality (Projection.Array_index i) t let memory_address t = child Projection.Memory_address t @@ -2236,7 +2230,7 @@ let rec check_uniqueness_exp ~overwrite (ienv : Ienv.t) exp : UF.t = let value, uf_ext = match extended_expression with | None -> Value.fresh, UF.unused - | Some (exp, unique_barrier) -> + | Some (exp, _, unique_barrier) -> let value, uf_exp = check_uniqueness_exp_as_value ienv exp in Unique_barrier.enable unique_barrier; let uf_read = @@ -2427,7 +2421,7 @@ and check_uniqueness_exp_as_value ienv exp : Value.t * UF.t = | Some value -> value in value, UF.unused - | Texp_field (e, _, l, float, unique_barrier) -> ( + | Texp_field (e, _, _, l, float, unique_barrier) -> ( let value, uf = check_uniqueness_exp_as_value ienv e in match Value.paths value with | None -> diff --git a/src/ocaml/parsing/unit_info.ml b/src/ocaml/typing/unit_info.ml similarity index 71% rename from src/ocaml/parsing/unit_info.ml rename to src/ocaml/typing/unit_info.ml index 4cf6dd277..a61c52132 100644 --- a/src/ocaml/parsing/unit_info.ml +++ b/src/ocaml/typing/unit_info.ml @@ -13,6 +13,7 @@ (* *) (**************************************************************************) +type intf_or_impl = Intf | Impl type modname = string type filename = string type file_prefix = string @@ -20,11 +21,13 @@ type file_prefix = string type t = { source_file: filename; prefix: file_prefix; - modname: modname; + modname: Compilation_unit.t; + kind: intf_or_impl; } let source_file (x: t) = x.source_file let modname (x: t) = x.modname +let kind (x: t) = x.kind let prefix (x: t) = x.prefix let basename_chop_extensions basename = @@ -45,6 +48,12 @@ let normalize = Misc.normalized_unit_filename let modname_from_source source_file = source_file |> Filename.basename |> basename_chop_extensions |> modulize +let compilation_unit_from_source ~for_pack_prefix source_file = + let modname = + modname_from_source source_file |> Compilation_unit.Name.of_string + in + Compilation_unit.create for_pack_prefix modname + let start_char = function | 'A' .. 'Z' -> true | _ -> false @@ -61,34 +70,51 @@ let is_unit_name name = && String.for_all is_identchar_latin1 name let check_unit_name file = - if not (is_unit_name (modname file)) then + let name = modname file |> Compilation_unit.name_as_string in + if not (is_unit_name name) then Location.prerr_warning (Location.in_file (source_file file)) - (Warnings.Bad_module_name (modname file)) + (Warnings.Bad_module_name name) -let make ?(check_modname=true) ~source_file prefix = - let modname = modname_from_source prefix in - let p = { modname; prefix; source_file } in +let make ?(check_modname=true) ~source_file ~for_pack_prefix kind prefix = + let modname = compilation_unit_from_source ~for_pack_prefix prefix in + let p = { modname; prefix; source_file; kind } in if check_modname then check_unit_name p; p +(* CR lmaurer: This is something of a wart: some refactoring of `Compile_common` + could probably eliminate the need for it *) +let make_with_known_compilation_unit ~source_file kind prefix modname = + { modname; prefix; source_file; kind } + +let make_dummy ~input_name modname = + make_with_known_compilation_unit ~source_file:input_name + Impl input_name modname + module Artifact = struct type t = { source_file: filename option; filename: filename; - modname: modname; + modname: Compilation_unit.t; } let source_file x = x.source_file let filename x = x.filename let modname x = x.modname let prefix x = Filename.remove_extension (filename x) - let from_filename filename = - let modname = modname_from_source filename in + let from_filename ~for_pack_prefix filename = + let modname = compilation_unit_from_source ~for_pack_prefix filename in + { modname; filename; source_file = None } end +let of_artifact ~dummy_source_file kind (a : Artifact.t) = + let modname = Artifact.modname a in + let prefix = Artifact.prefix a in + let source_file = Option.value a.source_file ~default:dummy_source_file in + { modname; prefix; source_file; kind } + let mk_artifact ext u = { Artifact.filename = u.prefix ^ ext; @@ -123,6 +149,10 @@ let mli_from_source u = let is_cmi f = Filename.check_suffix (Artifact.filename f) ".cmi" let find_normalized_cmi f = - let filename = modname f ^ ".cmi" in + let filename = (modname f |> Compilation_unit.name_as_string) ^ ".cmi" in let filename = Load_path.find_normalized filename in { Artifact.filename; modname = modname f; source_file = Some f.source_file } + +(* Merlin-only *) + +let modify_kind t ~f = { t with kind = f t.kind } diff --git a/src/ocaml/parsing/unit_info.mli b/src/ocaml/typing/unit_info.mli similarity index 76% rename from src/ocaml/parsing/unit_info.mli rename to src/ocaml/typing/unit_info.mli index 5c14180d9..ae367883a 100644 --- a/src/ocaml/parsing/unit_info.mli +++ b/src/ocaml/typing/unit_info.mli @@ -21,12 +21,13 @@ (** {1:modname_from_strings Module name convention and computation} *) -(* CR mshinwell: Consider changing [modname] to be [Compilation_unit.t] *) - +type intf_or_impl = Intf | Impl type modname = string type filename = string type file_prefix = string +(* CR lmaurer: These overlap with functionality in [Compilation_unit] **) + (** [modulize s] capitalizes the first letter of [s]. *) val modulize: string -> modname @@ -67,21 +68,41 @@ val prefix: t -> file_prefix (** [modname u] or [artifact_modname a] is the module name of the unit or compilation artifact.*) -val modname: t -> modname +val modname: t -> Compilation_unit.t + +(** [kind u] is the kind (interface or implementation) of the unit. *) +val kind: t -> intf_or_impl (** [check_unit_name u] prints a warning if the derived module name [modname u] should not be used as a module name as specified by {!is_unit_name}[ ~strict:true]. *) val check_unit_name : t -> unit -(** [make ~check ~source_file prefix] associates both the +(** [make ~check ~source_file ~for_pack_prefix kind prefix] associates both the [source_file] and the module name {!modname_from_source}[ target_prefix] to the prefix filesystem path [prefix]. If [check_modname=true], this function emits a warning if the derived module name is not valid according to {!check_unit_name}. *) -val make: ?check_modname:bool -> source_file:filename -> file_prefix -> t +val make: + ?check_modname:bool -> source_file:filename -> + for_pack_prefix:Compilation_unit.Prefix.t -> + intf_or_impl -> file_prefix -> t + +(** [make_with_known_compilation_unit ~source_file ~for_pack_prefix kind prefix + compilation_unit] associates both the [source_file] and the module name + [compilation_unit] to the prefix filesystem path [prefix]. It is assumed + that checks were performed by [Compilation_unit]. +*) +val make_with_known_compilation_unit: + source_file:filename -> intf_or_impl -> file_prefix -> Compilation_unit.t -> t + +(** [make_dummy ~input_name compilation_unit] is used in places where there's no + actual source file but we do need to specify a [Compilation_unit.t]. The + [input_name] is a string like "startup", suitable as the value for + [Location.input_name] as well. *) +val make_dummy: input_name:string -> Compilation_unit.t -> t (** {1:artifact_function Build artifacts }*) module Artifact: sig @@ -102,11 +123,12 @@ module Artifact: sig val filename: t -> filename (** [modname a] is the module name of the compilation artifact.*) - val modname: t -> modname + val modname: t -> Compilation_unit.t - (** [from_filename filename] reconstructs the module name - [modname_from_source filename] associated to the artifact [filename]. *) - val from_filename: filename -> t + (** [from_filename ~for_pack_prefix filename] reconstructs the module name + [modname_from_source filename] associated to the artifact [filename], + assuming the pack prefix is [for_pack_prefix]. *) + val from_filename: for_pack_prefix:Compilation_unit.Prefix.t -> filename -> t end @@ -160,3 +182,12 @@ val is_cmi: Artifact.t -> bool name [modname u]. @raise Not_found if no such cmi exists *) val find_normalized_cmi: t -> Artifact.t + +(** [of_artifact ~dummy_source_file kind a] builds a [Unit_info.t] from a + [Unit_info.Artifact.t], using [dummy_source_file] as the filename if the + artifact doesn't have one attached. *) +val of_artifact : dummy_source_file:filename -> intf_or_impl -> Artifact.t -> t + +(* Merlin-only *) + +val modify_kind : t -> f:(intf_or_impl -> intf_or_impl) -> t diff --git a/src/ocaml/typing/untypeast.ml b/src/ocaml/typing/untypeast.ml index 28068bedd..3dd4c37d5 100644 --- a/src/ocaml/typing/untypeast.ml +++ b/src/ocaml/typing/untypeast.ml @@ -253,7 +253,7 @@ let type_kind sub tk = match tk with let constructor_argument sub {ca_loc; ca_type; ca_modalities} = let loc = sub.location sub ca_loc in - let pca_modalities = Typemode.untransl_modalities Immutable [] ca_modalities in + let pca_modalities = Typemode.untransl_modalities Immutable ca_modalities in { pca_loc = loc; pca_type = sub.typ sub ca_type; pca_modalities } let constructor_arguments sub = function @@ -274,19 +274,18 @@ let mutable_ (mut : Types.mutability) : mutable_flag = match mut with | Immutable -> Immutable | Mutable m -> - if Mode.Alloc.Comonadic.Const.eq m Mode.Alloc.Comonadic.Const.legacy then + let open Mode.Alloc.Comonadic.Const in + if Misc_stdlib.Le_result.equal ~le m legacy then Mutable else - Misc.fatal_errorf "unexpected mutable(%a)" - Mode.Alloc.Comonadic.Const.print m + Misc.fatal_errorf "unexpected mutable(%a)" print m let label_declaration sub ld = let loc = sub.location sub ld.ld_loc in let attrs = sub.attributes sub ld.ld_attributes in let mut = mutable_ ld.ld_mutable in let modalities = - Typemode.untransl_modalities ld.ld_mutable ld.ld_attributes - ld.ld_modalities + Typemode.untransl_modalities ld.ld_mutable ld.ld_modalities in Type.field ~loc ~attrs ~mut ~modalities (map_loc sub ld.ld_name) @@ -423,7 +422,7 @@ let exp_extra sub (extra, loc, attrs) sexp = Pexp_newtype (label_loc, jkind, sexp) | Texp_stack -> Pexp_stack sexp | Texp_mode modes -> - Pexp_constraint (sexp, None, Typemode.untransl_mode_annots ~loc modes) + Pexp_constraint (sexp, None, Typemode.untransl_mode_annots modes) in Exp.mk ~loc ~attrs desc @@ -587,7 +586,7 @@ let expression sub exp = | _, Overridden (lid, exp) -> (lid, sub.expr sub exp) :: l) [] fields in - Pexp_record (list, Option.map (fun (exp, _) -> sub.expr sub exp) + Pexp_record (list, Option.map (fun (exp, _, _) -> sub.expr sub exp) extended_expression) | Texp_record_unboxed_product { fields; extended_expression; _ } -> let list = Array.fold_left (fun l -> function @@ -598,7 +597,7 @@ let expression sub exp = Pexp_record_unboxed_product (list, Option.map (fun (exp, _) -> sub.expr sub exp) extended_expression) - | Texp_field (exp, lid, _label, _, _) -> + | Texp_field (exp, _sort, lid, _label, _, _) -> Pexp_field (sub.expr sub exp, map_loc sub lid) | Texp_unboxed_field (exp, _, lid, _label, _) -> Pexp_unboxed_field (sub.expr sub exp, map_loc sub lid) @@ -744,7 +743,7 @@ let module_type_declaration sub mtd = let signature sub {sig_items; sig_modalities; sig_sloc} = let psg_items = List.map (sub.signature_item sub) sig_items in - let psg_modalities = Typemode.untransl_modalities Immutable [] sig_modalities in + let psg_modalities = Typemode.untransl_modalities Immutable sig_modalities in let psg_loc = sub.location sub sig_sloc in {psg_items; psg_modalities; psg_loc} @@ -775,7 +774,7 @@ let signature_item sub item = | Tsig_open od -> Psig_open (sub.open_description sub od) | Tsig_include (incl, moda) -> - let pmoda = Typemode.untransl_modalities Immutable [] moda in + let pmoda = Typemode.untransl_modalities Immutable moda in Psig_include (sub.include_description sub incl, pmoda) | Tsig_class list -> Psig_class (List.map (sub.class_description sub) list) @@ -1010,6 +1009,7 @@ let core_type sub ct = Ptyp_poly (bound_vars, sub.typ sub ct) | Ttyp_package pack -> Ptyp_package (sub.package_type sub pack) | Ttyp_open (_path, mod_ident, t) -> Ptyp_open (mod_ident, sub.typ sub t) + | Ttyp_of_kind jkind -> Ptyp_of_kind jkind | Ttyp_call_pos -> Ptyp_extension call_pos_extension in diff --git a/src/ocaml/typing/value_rec_check.ml b/src/ocaml/typing/value_rec_check.ml index a21ade514..ea63e13fd 100644 --- a/src/ocaml/typing/value_rec_check.ml +++ b/src/ocaml/typing/value_rec_check.ml @@ -745,7 +745,8 @@ let rec expression : Typedtree.expression -> term_judg = | Constructor_mixed mixed_shape -> (match mixed_shape.(i) with | Value | Float_boxed -> Guard - | Float64 | Float32 | Bits32 | Bits64 | Vec128 | Word -> + | Float64 | Float32 | Bits32 | Bits64 | Vec128 | Word + | Product _ -> Dereference)) in let arg i e = expression e << arg_mode i in @@ -771,7 +772,8 @@ let rec expression : Typedtree.expression -> term_judg = | Record_mixed mixed_shape -> (match mixed_shape.(i) with | Value | Float_boxed -> Guard - | Float64 | Float32 | Bits32 | Bits64 | Vec128 | Word -> + | Float64 | Float32 | Bits32 | Bits64 | Vec128 | Word + | Product _ -> Dereference) in let field (label, field_def) = @@ -784,7 +786,7 @@ let rec expression : Typedtree.expression -> term_judg = in join [ array field es; - option expression (Option.map fst eo) << Dereference + option expression (Option.map Misc.fst3 eo) << Dereference ] | Texp_record_unboxed_product { fields = es; extended_expression = eo; representation = rep } -> @@ -867,7 +869,7 @@ let rec expression : Typedtree.expression -> term_judg = join [ expression e1 << Dereference ] - | Texp_field (e, _, _, _, _) -> + | Texp_field (e, _, _, _, _, _) -> (* G |- e: m[Dereference] ----------------------- diff --git a/src/ocaml/utils/clflags.ml b/src/ocaml/utils/clflags.ml index 8154acdbd..0829ce54a 100644 --- a/src/ocaml/utils/clflags.ml +++ b/src/ocaml/utils/clflags.ml @@ -4,6 +4,8 @@ type profile_column = [ `Time | `Alloc | `Top_heap | `Abs_top_heap | `Counters ] let cmi_file = ref None let include_dirs = ref [] let hidden_include_dirs = ref [] +let include_paths_files = ref ([] : string list) (* -I-paths *) +let hidden_include_paths_files = ref ([] : string list) (* -H-paths *) let fast = ref false let classic = ref false let all_ppx = ref [] diff --git a/src/ocaml/utils/clflags.mli b/src/ocaml/utils/clflags.mli index e8a45ba74..95c04d267 100644 --- a/src/ocaml/utils/clflags.mli +++ b/src/ocaml/utils/clflags.mli @@ -11,6 +11,8 @@ type profile_column = [ `Time | `Alloc | `Top_heap | `Abs_top_heap | `Counters ] val cmi_file : string option ref val include_dirs : string list ref val hidden_include_dirs : string list ref +val include_paths_files : string list ref +val hidden_include_paths_files : string list ref val fast : bool ref val classic : bool ref val all_ppx : string list ref diff --git a/src/ocaml/utils/config.ml b/src/ocaml/utils/config.ml index 18ffd6fd4..c21cbf291 100644 --- a/src/ocaml/utils/config.ml +++ b/src/ocaml/utils/config.ml @@ -31,13 +31,13 @@ let version = Sys.ocaml_version (* When bumping this number, be sure to also update ../typing/magic_numbers.ml *) -let cmi_magic_number = "Caml1999I560" +let cmi_magic_number = "Caml1999I561" -let ast_impl_magic_number = "Caml1999M560" -let ast_intf_magic_number = "Caml1999N560" -let cmt_magic_number = "Caml1999T560" -let cms_magic_number = "Caml1999S560" -let index_magic_number = "Merl2023I560" +let ast_impl_magic_number = "Caml1999M561" +let ast_intf_magic_number = "Caml1999N561" +let cmt_magic_number = "Caml1999T561" +let cms_magic_number = "Caml1999S561" +let index_magic_number = "Merl2023I561" let interface_suffix = ref ".mli" diff --git a/src/ocaml/utils/language_extension_kernel.ml b/src/ocaml/utils/language_extension_kernel.ml index 7e8ac8dad..24b0f86a4 100644 --- a/src/ocaml/utils/language_extension_kernel.ml +++ b/src/ocaml/utils/language_extension_kernel.ml @@ -18,6 +18,7 @@ type _ t = | Labeled_tuples : unit t | Small_numbers : maturity t | Instances : unit t + | Separability : unit t (* When you update this, update [pair_of_string] below too. *) let to_string : type a. a t -> string = function @@ -34,3 +35,4 @@ let to_string : type a. a t -> string = function | Labeled_tuples -> "labeled_tuples" | Small_numbers -> "small_numbers" | Instances -> "instances" + | Separability -> "separability" diff --git a/src/ocaml/utils/language_extension_kernel.mli b/src/ocaml/utils/language_extension_kernel.mli index 1fdd1c17b..75eb64703 100644 --- a/src/ocaml/utils/language_extension_kernel.mli +++ b/src/ocaml/utils/language_extension_kernel.mli @@ -29,6 +29,7 @@ type _ t = | Labeled_tuples : unit t | Small_numbers : maturity t | Instances : unit t + | Separability : unit t (** Print and parse language extensions; parsing is case-insensitive *) val to_string : _ t -> string diff --git a/src/ocaml/utils/numbers.ml b/src/ocaml/utils/numbers.ml new file mode 100644 index 000000000..88bc8c9f0 --- /dev/null +++ b/src/ocaml/utils/numbers.ml @@ -0,0 +1,228 @@ +(**************************************************************************) +(* *) +(* OCaml *) +(* *) +(* Pierre Chambart, OCamlPro *) +(* Mark Shinwell and Leo White, Jane Street Europe *) +(* *) +(* Copyright 2013--2016 OCamlPro SAS *) +(* Copyright 2014--2016 Jane Street Group LLC *) +(* *) +(* All rights reserved. This file is distributed under the terms of *) +(* the GNU Lesser General Public License version 2.1, with the *) +(* special exception on linking described in the file LICENSE. *) +(* *) +(**************************************************************************) + +module Int_base = Identifiable.Make (struct + type t = int + + let compare = Int.compare + let output oc x = Printf.fprintf oc "%i" x + let hash i = i + let equal (i : int) j = i = j + let print = Format.pp_print_int +end) + +module Int = struct + type t = int + + include Int_base + + let rec zero_to_n n = + if n < 0 then Set.empty else Set.add n (zero_to_n (n-1)) + + let to_string n = Int.to_string n +end + +module Int8 = struct + type t = int + + let zero = 0 + let one = 1 + + let of_int_exn i = + if i < -(1 lsl 7) || i > ((1 lsl 7) - 1) then + Misc.fatal_errorf "Int8.of_int_exn: %d is out of range" i + else + i + + let to_int i = i + + let print ppf t = Format.pp_print_int ppf t +end + +module Uint8 = struct + type t = int + + let print ppf t = Format.pp_print_int ppf t + + let zero = 0 + + let one = 1 + + let of_nonnegative_int_exn i = + if i < 0 || i > (1 lsl 8) - 1 + then Misc.fatal_errorf "Uint8.of_nonnegative_int_exn: %d is out of range" i + else i + + let to_int i = i +end + +module Int16 = struct + type t = int + + let zero = 0 + + let one = 1 + + let of_int_exn i = + if i < -(1 lsl 15) || i > ((1 lsl 15) - 1) then + Misc.fatal_errorf "Int16.of_int_exn: %d is out of range" i + else + i + + let lower_int64 = Int64.neg (Int64.shift_left Int64.one 15) + let upper_int64 = Int64.sub (Int64.shift_left Int64.one 15) Int64.one + + let of_int64_exn i = + if Int64.compare i lower_int64 < 0 + || Int64.compare i upper_int64 > 0 + then + Misc.fatal_errorf "Int16.of_int64_exn: %Ld is out of range" i + else + Int64.to_int i + + let to_int t = t + + let print ppf t = Format.pp_print_int ppf t +end + +module Uint16 = struct + type t = int + + let print ppf t = Format.pp_print_int ppf t + + let of_nonnegative_int_exn i = + if i < 0 || i > (1 lsl 16) - 1 + then Misc.fatal_errorf "Uint16.of_nonnegative_int_exn: %d is out of range" i + else i + + let upper_int64 = Int64.sub (Int64.shift_left Int64.one 16) Int64.one + + let of_nonnegative_int64_exn i = + if Int64.compare i 0L < 0 || Int64.compare i upper_int64 > 0 + then + Misc.fatal_errorf "Uint16.of_nonnegative_int64_exn: %Ld is out of range" i + else Int64.to_int i + + let to_int t = t +end + +module Uint32 = struct + type t = Int64.t + + let zero = 0L + + let print ppf t = Format.fprintf ppf "0x%Lx" t + + let upper_int64 = Int64.sub (Int64.shift_left Int64.one 32) Int64.one + + let of_nonnegative_int_exn i = + if i < 0 + then Misc.fatal_errorf "Uint32.of_nonnegative_int_exn: %d is out of range" i + else + let i64 = Int64.of_int i in + if Int64.compare i64 upper_int64 > 0 + then + Misc.fatal_errorf "Uint32.of_nonnegative_int_exn: %d is out of range" i + else i64 + + let of_nonnegative_int64_exn i = + if Int64.compare i 0L < 0 || Int64.compare i upper_int64 > 0 + then + Misc.fatal_errorf "Uint32.of_nonnegative_int64_exn: %Ld is out of range" i + else i + + let of_nonnegative_int32_exn i = + if Int32.compare i 0l < 0 + then + Misc.fatal_errorf "Uint32.of_nonnegative_int32_exn: %ld is out of range" i + else Int64.of_int32 i + + let to_int64 t = t +end + +module Uint64 = struct + type t = Int64.t + + let zero = 0L + + let succ t = Int64.add 1L t + + let of_nonnegative_int_exn i = + if i < 0 + then Misc.fatal_errorf "Uint64.of_nonnegative_int_exn: %d is out of range" i + else Int64.of_int i + + let of_uint8 i = Int64.of_int i + + let of_uint16 i = Int64.of_int i + + let of_uint32 i = i + + let of_nonnegative_int32_exn i = + if Int32.compare i 0l < 0 + then + Misc.fatal_errorf "Uint64.of_nonnegative_int32_exn: %ld is out of range" i + else Int64.of_int32 i + + let of_nonnegative_int64_exn i = + if Int64.compare i 0L < 0 + then + Misc.fatal_errorf "Uint64.of_nonnegative_int64_exn: %Ld is out of range" i + else i + + let to_int64 t = t + + include Identifiable.Make (struct + type nonrec t = t + + let compare t1 t2 = + (* Only a consistent order is needed here *) + Int64.compare t1 t2 + + let equal t1 t2 = compare t1 t2 = 0 + + let hash t = Hashtbl.hash t + + let print ppf t = Format.fprintf ppf "0x%Lx" t + + let output _ _ = Misc.fatal_error "Not yet implemented" + end) +end + + +module Float = struct + type t = float + + include Identifiable.Make (struct + type t = float + + let compare x y = Stdlib.compare x y + let output oc x = Printf.fprintf oc "%f" x + let hash f = Hashtbl.hash f + let equal (i : float) j = i = j + let print = Format.pp_print_float + end) +end + +module Int64 = struct + + let to_int32_exn n = + if Int64.compare n (Int64.of_int32 Int32.min_int) < 0 + || Int64.compare n (Int64.of_int32 Int32.max_int) > 0 + then Misc.fatal_errorf "Integer %Ld is out of the 32-bit range." n; + Int64.to_int32 n + +end diff --git a/src/ocaml/utils/numbers.mli b/src/ocaml/utils/numbers.mli new file mode 100644 index 000000000..1e2a5ac2e --- /dev/null +++ b/src/ocaml/utils/numbers.mli @@ -0,0 +1,131 @@ +(**************************************************************************) +(* *) +(* OCaml *) +(* *) +(* Pierre Chambart, OCamlPro *) +(* Mark Shinwell and Leo White, Jane Street Europe *) +(* *) +(* Copyright 2013--2016 OCamlPro SAS *) +(* Copyright 2014--2016 Jane Street Group LLC *) +(* *) +(* All rights reserved. This file is distributed under the terms of *) +(* the GNU Lesser General Public License version 2.1, with the *) +(* special exception on linking described in the file LICENSE. *) +(* *) +(**************************************************************************) + +(** Modules about numbers, some of which satisfy {!Identifiable.S}. + + {b Warning:} this module is unstable and part of + {{!Compiler_libs}compiler-libs}. + +*) + +module Int : sig + include Identifiable.S with type t = int + + (** [zero_to_n n] is the set of numbers \{0, ..., n\} (inclusive). *) + val zero_to_n : int -> Set.t + val to_string : int -> string +end + +module Int8 : sig + type t + + val zero : t + val one : t + + val of_int_exn : int -> t + val to_int : t -> int + val print : Format.formatter -> t -> unit +end + +(** Do not use polymorphic comparison on the unsigned integer types. *) + +module Uint8 : sig + type t + + val print : Format.formatter -> t -> unit + + val zero : t + + val one : t + + val of_nonnegative_int_exn : int -> t + + val to_int : t -> int +end + +module Int16 : sig + type t + + val zero : t + val one : t + + val of_int_exn : int -> t + val of_int64_exn : Int64.t -> t + + val to_int : t -> int + val print : Format.formatter -> t -> unit +end + +module Uint16 : sig + type t + + val print : Format.formatter -> t -> unit + + val of_nonnegative_int_exn : int -> t + + val of_nonnegative_int64_exn : Int64.t -> t + + val to_int : t -> int +end + +module Uint32 : sig + type t + + val print : Format.formatter -> t -> unit + + val zero : t + + val of_nonnegative_int_exn : int -> t + + val of_nonnegative_int32_exn : Int32.t -> t + + val of_nonnegative_int64_exn : Int64.t -> t + + val to_int64 : t -> Int64.t +end + +module Uint64 : sig + type t + + val zero : t + + val succ : t -> t + + val of_uint8 : Uint8.t -> t + + val of_uint16 : Uint16.t -> t + + val of_uint32 : Uint32.t -> t + + val of_nonnegative_int_exn : int -> t + + val of_nonnegative_int32_exn : Int32.t -> t + + val of_nonnegative_int64_exn : Int64.t -> t + + val to_int64 : t -> Int64.t + + include Identifiable.S with type t := t +end + + +module Float : Identifiable.S with type t = float + +module Int64 : sig + + val to_int32_exn: int64 -> int32 + +end \ No newline at end of file diff --git a/src/ocaml/utils/warnings.ml b/src/ocaml/utils/warnings.ml index 0a225c64c..967a1d2fa 100644 --- a/src/ocaml/utils/warnings.ml +++ b/src/ocaml/utils/warnings.ml @@ -131,6 +131,10 @@ type t = | Unboxing_impossible (* 210 *) | Mod_by_top of string (* 211 *) (* 212 taken *) + | Modal_axis_specified_twice of + { axis : string; + overriden_by : string; + } (* 213 *) (* If you remove a warning, leave a hole in the numbering. NEVER change the numbers of existing warnings. @@ -220,6 +224,7 @@ let number = function | Unchecked_zero_alloc_attribute -> 199 | Unboxing_impossible -> 210 | Mod_by_top _ -> 211 + | Modal_axis_specified_twice _ -> 213 ;; (* DO NOT REMOVE the ;; above: it is used by the testsuite/ests/warnings/mnemonics.mll test to determine where @@ -611,7 +616,10 @@ let name_to_number = (* Must be the max number returned by the [number] function. *) -let letter = function +let parsed_ocamlparam = ref "" + +(* CR-soon xclerc for xclerc: remove the `for_debug` parameter... *) +let letter for_debug = function | 'a' -> let rec loop i = if i = 0 then [] else i :: loop (i - 1) in loop last_warning_number @@ -640,7 +648,9 @@ let letter = function | 'x' -> [14; 15; 16; 17; 18; 19; 20; 21; 22; 23; 24; 30] | 'y' -> [26] | 'z' -> [27] - | _ -> assert false + | chr -> + let ocamlparam_from_env = match Sys.getenv_opt "OCAMLPARAM" with None -> "-" | Some value -> value in + Misc.fatal_errorf "Warnings.letter %C (for_debug=%S, ocamlparam_from_env=%S ocamlparam_from_compenv=%S)" chr for_debug ocamlparam_from_env !parsed_ocamlparam type state = { @@ -906,7 +916,7 @@ let parse_opt error active errflag s = | None -> if c = lc then Clear else Set | Some m -> m in - List.iter (action modifier) (letter lc) + List.iter (action modifier) (letter s lc) | Num(n1,n2,modifier) -> for n = n1 to Int.min n2 last_warning_number do action modifier n done in @@ -1259,6 +1269,10 @@ let message = function "%s is the top-most modifier.\n\ Modifying by a top element is a no-op." modifier + | Modal_axis_specified_twice {axis; overriden_by} -> + Printf.sprintf + "This %s is overriden by %s later." + axis overriden_by ;; let nerrors = ref 0 @@ -1354,7 +1368,7 @@ let help_warnings () = print_endline " A all warnings"; for i = Char.code 'b' to Char.code 'z' do let c = Char.chr i in - match letter c with + match letter "" c with | [] -> () | [n] -> Printf.printf " %c Alias for warning %i.\n" (Char.uppercase_ascii c) n diff --git a/src/ocaml/utils/warnings.mli b/src/ocaml/utils/warnings.mli index 64a3ae1a5..97746421f 100644 --- a/src/ocaml/utils/warnings.mli +++ b/src/ocaml/utils/warnings.mli @@ -136,6 +136,10 @@ type t = | Unchecked_zero_alloc_attribute (* 199 *) | Unboxing_impossible (* 210 *) | Mod_by_top of string (* 211 *) + | Modal_axis_specified_twice of { + axis : string; + overriden_by : string; + } (* 213 *) type alert = {kind:string; message:string; def:loc; use:loc} @@ -189,5 +193,7 @@ type description = val descriptions : description list +val parsed_ocamlparam : string ref + (* merlin *) val dump : ?verbose:bool -> unit -> Std.json diff --git a/tests/test-dirs/function-recovery.t b/tests/test-dirs/function-recovery.t index cab2dc794..f9856a7cb 100644 --- a/tests/test-dirs/function-recovery.t +++ b/tests/test-dirs/function-recovery.t @@ -20,7 +20,7 @@ pattern (test.ml[2,79+6]..test.ml[2,79+13]) Tpat_var \"problem/280\" - value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);imply(unique,uncontended)(modevar#1[aliased,contended .. unique,uncontended]) + value_mode meet(local,once,nonportable,yielding,stateful)(modevar#0[global,many,portable,unyielding,stateless .. global,many,nonportable,unyielding,stateful]);imply(unique,uncontended,read_write)(modevar#1[aliased,contended,immutable .. unique,uncontended,read_write]) expression (test.ml[2,79+16]..test.ml[2,79+24]) Texp_variant \"Problem\" None @@ -35,7 +35,7 @@ None expression (test.ml[3,104+11]..test.ml[3,104+28]) Texp_function - alloc_mode id(modevar#f[global,many,portable,unyielding .. local,once,nonportable,yielding]);id(modevar#10[aliased,contended .. unique,uncontended]) + alloc_mode id(modevar#f[global,many,portable,unyielding,stateless .. local,once,nonportable,yielding,stateful]);id(modevar#10[aliased,contended,immutable .. unique,uncontended,read_write]) [] Tfunction_body expression (test.ml[3,104+11]..test.ml[3,104+28]) @@ -69,12 +69,12 @@ pattern (type.ml[1,0+4]..type.ml[1,0+5]) Tpat_var \"f/280\" - value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);imply(unique,uncontended)(modevar#1[aliased,contended .. unique,uncontended]) + value_mode meet(local,once,nonportable,yielding,stateful)(modevar#0[global,many,portable,unyielding,stateless .. global,many,nonportable,unyielding,stateful]);imply(unique,uncontended,read_write)(modevar#1[aliased,contended,immutable .. unique,uncontended,read_write]) expression (type.ml[1,0+8]..type.ml[1,0+61]) extra Texp_newtype t Texp_function - alloc_mode map_comonadic(regional_to_global)(modevar#2[global,many,portable,unyielding .. global,many,nonportable,unyielding]);id(modevar#3[aliased,contended .. unique,uncontended]) + alloc_mode map_comonadic(regional_to_global)(modevar#2[global,many,portable,unyielding,stateless .. global,many,nonportable,unyielding,stateful]);id(modevar#3[aliased,contended,immutable .. unique,uncontended,read_write]) [ Nolabel Param_pat @@ -89,7 +89,7 @@ [] ] Tpat_var \"foo/283\" - value_mode map_comonadic(local_to_regional)(modevar#4[global,many,portable,unyielding .. local,once,nonportable,yielding]);imply(unique,uncontended)(modevar#5[aliased,contended .. unique,uncontended]) + value_mode map_comonadic(local_to_regional)(modevar#4[global,many,portable,unyielding,stateless .. local,once,nonportable,yielding,stateful]);imply(unique,uncontended,read_write)(modevar#5[aliased,contended,immutable .. unique,uncontended,read_write]) ] Tfunction_body expression (type.ml[1,0+39]..type.ml[1,0+61]) @@ -193,7 +193,7 @@ "attrs": [], "kind": "pattern (test.ml[1,0+4]..test.ml[1,0+5]) Tpat_var \"f/280\" - value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);imply(unique,uncontended)(modevar#1[aliased,contended .. unique,uncontended]) + value_mode meet(local,once,nonportable,yielding,stateful)(modevar#0[global,many,portable,unyielding,stateless .. global,many,nonportable,unyielding,stateful]);imply(unique,uncontended,read_write)(modevar#1[aliased,contended,immutable .. unique,uncontended,read_write]) ", "children": [] }, @@ -225,7 +225,7 @@ "attrs": [], "kind": "pattern (test.ml[1,0+6]..test.ml[1,0+9]) Tpat_var \"x/282\" - value_mode map_comonadic(local_to_regional)(modevar#4[global,many,portable,unyielding .. local,once,nonportable,yielding]);imply(unique,uncontended)(modevar#5[aliased,contended .. unique,uncontended]) + value_mode map_comonadic(local_to_regional)(modevar#4[global,many,portable,unyielding,stateless .. local,once,nonportable,yielding,stateful]);imply(unique,uncontended,read_write)(modevar#5[aliased,contended,immutable .. unique,uncontended,read_write]) ", "children": [] }, @@ -456,7 +456,7 @@ [ pattern (test.ml[4,57+9]..test.ml[4,57+12]) Tpat_var \"_aa/283\" - value_mode global,many,portable,unyielding;unique,uncontended + value_mode global,many,portable,unyielding,stateless;unique,uncontended,read_write ] None ", @@ -475,7 +475,7 @@ "attrs": [], "kind": "pattern (test.ml[4,57+9]..test.ml[4,57+12]) Tpat_var \"_aa/283\" - value_mode global,many,portable,unyielding;unique,uncontended + value_mode global,many,portable,unyielding,stateless;unique,uncontended,read_write ", "children": [] } diff --git a/tests/test-dirs/hidden-deps/dash-h.t b/tests/test-dirs/hidden-deps/dash-h.t index fe1a6cac2..2c9dd693f 100644 --- a/tests/test-dirs/hidden-deps/dash-h.t +++ b/tests/test-dirs/hidden-deps/dash-h.t @@ -90,7 +90,7 @@ the type) "line": 4, "col": 12 }, - "type": "sig type t = int val x : int @@ portable type s = Baz end", + "type": "sig type t = int val x : int @@ stateless type s = Baz end", "tail": "no" }, { diff --git a/tests/test-dirs/mode-recovery.t b/tests/test-dirs/mode-recovery.t index 660ab8036..08f4c9a2a 100644 --- a/tests/test-dirs/mode-recovery.t +++ b/tests/test-dirs/mode-recovery.t @@ -23,7 +23,7 @@ We can locate the value that was used incorrectly Error from a share lock $ cat > share.ml < let () = - > let f : unit -> unit @@ once = fun () -> () in + > let f : (unit -> unit) @ once = fun () -> () in > for _ = 1 to 10 do > let g = f in > for _ = 1 to 10 do diff --git a/tests/test-dirs/parameters.t/run.t b/tests/test-dirs/parameters.t/run.t index e923c0c34..235e9e7b4 100644 --- a/tests/test-dirs/parameters.t/run.t +++ b/tests/test-dirs/parameters.t/run.t @@ -281,6 +281,20 @@ we're correctly tracking parameters separately per file, even in server mode. $ query_errors reexport.mli [ + { + "start": { + "line": 2, + "col": 18 + }, + "end": { + "line": 2, + "col": 19 + }, + "type": "warning", + "sub": [], + "valid": true, + "message": "Warning 49: no valid cmi file was found in path for module P. P is a parameter" + }, { "start": { "line": 6, diff --git a/tests/test-dirs/type-enclosing/issue1335.t b/tests/test-dirs/type-enclosing/issue1335.t index c6e4911d9..031769f70 100644 --- a/tests/test-dirs/type-enclosing/issue1335.t +++ b/tests/test-dirs/type-enclosing/issue1335.t @@ -89,7 +89,7 @@ provide better result. "line": 1, "col": 25 }, - "type": "type t1 = [ `A of [ `A of 'a | `B ] as 'a | `B ]", + "type": "type t1 : immutable_data with t1 = [ `A of [ `A of 'a | `B ] as 'a | `B ]", "tail": "no" } ], diff --git a/tests/test-dirs/type-enclosing/underscore-ids.t b/tests/test-dirs/type-enclosing/underscore-ids.t index 69e46f64f..53cc66817 100644 --- a/tests/test-dirs/type-enclosing/underscore-ids.t +++ b/tests/test-dirs/type-enclosing/underscore-ids.t @@ -372,7 +372,7 @@ We try several places in the identifier to check the result stability pattern (under.ml[1,0+4]..under.ml[1,0+6]) Tpat_var \"aa/280\" - value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);imply(unique,uncontended)(modevar#1[aliased,contended .. unique,uncontended]) + value_mode meet(local,once,nonportable,yielding,stateful)(modevar#0[global,many,portable,unyielding,stateless .. global,many,nonportable,unyielding,stateful]);imply(unique,uncontended,read_write)(modevar#1[aliased,contended,immutable .. unique,uncontended,read_write]) expression (under.ml[1,0+9]..under.ml[1,0+12]) Texp_constant Const_float 4.2 ] @@ -382,16 +382,16 @@ We try several places in the identifier to check the result stability pattern (under.ml[2,13+4]..under.ml[2,13+5]) Tpat_var \"f/281\" - value_mode meet(local,once,nonportable,yielding)(modevar#5[global,many,portable,unyielding .. global,many,nonportable,unyielding]);imply(unique,uncontended)(modevar#6[aliased,contended .. unique,uncontended]) + value_mode meet(local,once,nonportable,yielding,stateful)(modevar#5[global,many,portable,unyielding,stateless .. global,many,nonportable,unyielding,stateful]);imply(unique,uncontended,read_write)(modevar#6[aliased,contended,immutable .. unique,uncontended,read_write]) expression (under.ml[2,13+6]..under.ml[5,70+17]) ghost Texp_function - alloc_mode map_comonadic(regional_to_global)(modevar#7[global,many,portable,unyielding .. global,many,nonportable,unyielding]);id(modevar#8[aliased,contended .. unique,uncontended]) + alloc_mode map_comonadic(regional_to_global)(modevar#7[global,many,portable,unyielding,stateless .. global,many,nonportable,unyielding,stateful]);id(modevar#8[aliased,contended,immutable .. unique,uncontended,read_write]) [ Nolabel Param_pat pattern (under.ml[2,13+6]..under.ml[2,13+9]) Tpat_var \"x/283\" - value_mode map_comonadic(local_to_regional)(modevar#9[global,many,portable,unyielding .. local,once,nonportable,yielding]);imply(unique,uncontended)(modevar#a[aliased,contended .. unique,uncontended]) + value_mode map_comonadic(local_to_regional)(modevar#9[global,many,portable,unyielding,stateless .. local,once,nonportable,yielding,stateful]);imply(unique,uncontended,read_write)(modevar#a[aliased,contended,immutable .. unique,uncontended,read_write]) ] Tfunction_body expression (under.ml[2,13+18]..under.ml[5,70+17]) diff --git a/tests/test-dirs/typing-recovery.t b/tests/test-dirs/typing-recovery.t index 75ebd3a2d..d99434f08 100644 --- a/tests/test-dirs/typing-recovery.t +++ b/tests/test-dirs/typing-recovery.t @@ -94,10 +94,10 @@ pattern (test.ml[2,15+4]..test.ml[2,15+5]) Tpat_var \"f/283\" - value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);imply(unique,uncontended)(modevar#1[aliased,contended .. unique,uncontended]) + value_mode meet(local,once,nonportable,yielding,stateful)(modevar#0[global,many,portable,unyielding,stateless .. global,many,nonportable,unyielding,stateful]);imply(unique,uncontended,read_write)(modevar#1[aliased,contended,immutable .. unique,uncontended,read_write]) expression (test.ml[2,15+6]..test.ml[6,69+12]) ghost Texp_function - alloc_mode map_comonadic(regional_to_global)(modevar#2[global,many,portable,unyielding .. global,many,nonportable,unyielding]);id(modevar#3[aliased,contended .. unique,uncontended]) + alloc_mode map_comonadic(regional_to_global)(modevar#2[global,many,portable,unyielding,stateless .. global,many,nonportable,unyielding,stateful]);id(modevar#3[aliased,contended,immutable .. unique,uncontended,read_write]) [ Nolabel Param_pat @@ -108,7 +108,7 @@ Ttyp_constr \"t/280\" [] Tpat_var \"x/285\" - value_mode global,many,portable,unyielding;unique,uncontended + value_mode global,many,portable,unyielding,stateless;unique,uncontended,read_write ] Tfunction_body expression (test.ml[3,31+2]..test.ml[6,69+12]) @@ -254,10 +254,10 @@ pattern (test2.ml[2,15+4]..test2.ml[2,15+5]) Tpat_var \"f/283\" - value_mode meet(local,once,nonportable,yielding)(modevar#0[global,many,portable,unyielding .. global,many,nonportable,unyielding]);imply(unique,uncontended)(modevar#1[aliased,contended .. unique,uncontended]) + value_mode meet(local,once,nonportable,yielding,stateful)(modevar#0[global,many,portable,unyielding,stateless .. global,many,nonportable,unyielding,stateful]);imply(unique,uncontended,read_write)(modevar#1[aliased,contended,immutable .. unique,uncontended,read_write]) expression (test2.ml[2,15+6]..test2.ml[2,15+24]) ghost Texp_function - alloc_mode map_comonadic(regional_to_global)(modevar#2[global,many,portable,unyielding .. global,many,nonportable,unyielding]);id(modevar#3[aliased,contended .. unique,uncontended]) + alloc_mode map_comonadic(regional_to_global)(modevar#2[global,many,portable,unyielding,stateless .. global,many,nonportable,unyielding,stateful]);id(modevar#3[aliased,contended,immutable .. unique,uncontended,read_write]) [ Nolabel Param_pat @@ -561,11 +561,11 @@ make sure we also handle that correctly in structures: Ttyp_constr \"int/1!\" [] Tpat_var \"foo1/280\" - value_mode global,many,portable,unyielding;unique,uncontended + value_mode global,many,portable,unyielding,stateless;unique,uncontended,read_write expression (test_ct.ml[1,0+17]..test_ct.ml[1,0+18]) extra Texp_mode - alloc_const_option_mode None,None,None,None,None,None + alloc_const_option_mode None,None,None,None,None,None,None,None Texp_constraint core_type (test_ct.ml[1,0+11]..test_ct.ml[1,0+14]) Ttyp_constr \"int/1!\" @@ -592,11 +592,11 @@ make sure we also handle that correctly in structures: None ] Tpat_var \"foo2/281\" - value_mode meet(local,once,nonportable,yielding)(modevar#5[global,many,portable,unyielding .. global,many,nonportable,unyielding]);imply(unique,uncontended)(modevar#6[aliased,contended .. unique,uncontended]) + value_mode meet(local,once,nonportable,yielding,stateful)(modevar#5[global,many,portable,unyielding,stateless .. global,many,nonportable,unyielding,stateful]);imply(unique,uncontended,read_write)(modevar#6[aliased,contended,immutable .. unique,uncontended,read_write]) expression (test_ct.ml[3,20+24]..test_ct.ml[3,20+28]) extra Texp_mode - alloc_const_option_mode None,None,None,None,None,None + alloc_const_option_mode None,None,None,None,None,None,None,None Texp_constraint core_type (test_ct.ml[3,20+11]..test_ct.ml[3,20+21]) Ttyp_tuple @@ -611,7 +611,7 @@ make sure we also handle that correctly in structures: None ] Texp_tuple - alloc_mode meet(local,once,nonportable,yielding,map_comonadic(regional_to_global)(modevar#5[global,many,portable,unyielding .. global,many,nonportable,unyielding]));unique,uncontended + alloc_mode meet(local,once,nonportable,yielding,stateful,map_comonadic(regional_to_global)(modevar#5[global,many,portable,unyielding,stateless .. global,many,nonportable,unyielding,stateful]));unique,uncontended,read_write [ Label: None expression (test_ct.ml[3,20+24]..test_ct.ml[3,20+25]) @@ -641,11 +641,11 @@ make sure we also handle that correctly in structures: [] ] Tpat_var \"foo3/282\" - value_mode global,many,portable,unyielding;imply(unique,contended)(modevar#b[aliased,contended .. unique,uncontended]) + value_mode global,many,portable,unyielding,stateless;imply(unique,contended,immutable)(modevar#b[aliased,contended,immutable .. unique,uncontended,read_write]) expression (test_ct.ml[5,50+23]..test_ct.ml[5,50+27]) extra Texp_mode - alloc_const_option_mode None,None,None,None,None,None + alloc_const_option_mode None,None,None,None,None,None,None,None Texp_constraint core_type (test_ct.ml[5,50+11]..test_ct.ml[5,50+20]) Ttyp_tuple @@ -660,7 +660,7 @@ make sure we also handle that correctly in structures: [] ] Texp_tuple - alloc_mode global,once,nonportable,yielding;unique,contended + alloc_mode global,once,nonportable,yielding,stateful;unique,contended,immutable [ Label: None expression (test_ct.ml[5,50+23]..test_ct.ml[5,50+24]) diff --git a/tests/test-dirs/version.t b/tests/test-dirs/version.t index c4d84f39f..a8d6938fa 100644 --- a/tests/test-dirs/version.t +++ b/tests/test-dirs/version.t @@ -1,21 +1,21 @@ $ $MERLIN single version | revert-newlines | jq .value.magicNumbers { - "cmi_magic_number": "Caml1999I560", - "ast_intf_magic_number": "Caml1999N560", - "ast_impl_magic_number": "Caml1999M560", - "cmt_magic_number": "Caml1999T560", - "cms_magic_number": "Caml1999S560", - "index_magic_number": "Merl2023I560" + "cmi_magic_number": "Caml1999I561", + "ast_intf_magic_number": "Caml1999N561", + "ast_impl_magic_number": "Caml1999M561", + "cmt_magic_number": "Caml1999T561", + "cms_magic_number": "Caml1999S561", + "index_magic_number": "Merl2023I561" } $ ocaml-index magic-numbers | jq { - "cmi_magic_number": "Caml1999I560", - "ast_intf_magic_number": "Caml1999N560", - "ast_impl_magic_number": "Caml1999M560", - "cmt_magic_number": "Caml1999T560", - "cms_magic_number": "Caml1999S560", - "index_magic_number": "Merl2023I560" + "cmi_magic_number": "Caml1999I561", + "ast_intf_magic_number": "Caml1999N561", + "ast_impl_magic_number": "Caml1999M561", + "cmt_magic_number": "Caml1999T561", + "cms_magic_number": "Caml1999S561", + "index_magic_number": "Merl2023I561" } Verify there is no difference between Merlin and Ocaml-index diff --git a/upstream/ocaml_flambda/base-rev.txt b/upstream/ocaml_flambda/base-rev.txt index aecb3e037..a24f123bf 100644 --- a/upstream/ocaml_flambda/base-rev.txt +++ b/upstream/ocaml_flambda/base-rev.txt @@ -1 +1 @@ -d8dbd01dd6a0b4f0e39bbbf9caec4e5254ca5bb4 +60158e06115c6fc6e30325bb720e65acf351dbce diff --git a/upstream/ocaml_flambda/file_formats/cmi_format.ml b/upstream/ocaml_flambda/file_formats/cmi_format.ml index 9bf67d51a..118b2b1ee 100644 --- a/upstream/ocaml_flambda/file_formats/cmi_format.ml +++ b/upstream/ocaml_flambda/file_formats/cmi_format.ml @@ -23,7 +23,7 @@ type pers_flags = type kind = | Normal of { cmi_impl : Compilation_unit.t; - cmi_arg_for : Global_module.Name.t option; + cmi_arg_for : Global_module.Parameter_name.t option; } | Parameter @@ -65,7 +65,7 @@ type header = { header_kind : kind; header_globals : Global_module.With_precision.t array; header_sign : Serialized.signature; - header_params : Global_module.t list; + header_params : Global_module.Parameter_name.t list; } type 'sg cmi_infos_generic = { @@ -73,7 +73,7 @@ type 'sg cmi_infos_generic = { cmi_kind : kind; cmi_globals : Global_module.With_precision.t array; cmi_sign : 'sg; - cmi_params : Global_module.t list; + cmi_params : Global_module.Parameter_name.t list; cmi_crcs : crcs; cmi_flags : flags; } diff --git a/upstream/ocaml_flambda/file_formats/cmi_format.mli b/upstream/ocaml_flambda/file_formats/cmi_format.mli index a70b82797..b0b115dd5 100644 --- a/upstream/ocaml_flambda/file_formats/cmi_format.mli +++ b/upstream/ocaml_flambda/file_formats/cmi_format.mli @@ -25,7 +25,7 @@ type kind = cmi_impl : Compilation_unit.t; (* If this module takes parameters, [cmi_impl] will be the functor that generates instances *) - cmi_arg_for : Global_module.Name.t option; + cmi_arg_for : Global_module.Parameter_name.t option; } | Parameter @@ -34,7 +34,7 @@ type 'sg cmi_infos_generic = { cmi_kind : kind; cmi_globals : Global_module.With_precision.t array; cmi_sign : 'sg; - cmi_params : Global_module.t list; (* CR lmaurer: Should be [Parameter_name.t list] *) + cmi_params : Global_module.Parameter_name.t list; cmi_crcs : Import_info.t array; cmi_flags : pers_flags list; } diff --git a/upstream/ocaml_flambda/file_formats/cmt_format.ml b/upstream/ocaml_flambda/file_formats/cmt_format.ml index 7829264eb..2a01bf8d0 100644 --- a/upstream/ocaml_flambda/file_formats/cmt_format.ml +++ b/upstream/ocaml_flambda/file_formats/cmt_format.ml @@ -214,7 +214,7 @@ let iter_on_occurrences f ~namespace:Value exp_env path lid | Texp_construct (lid, constr_desc, _, _) -> add_constructor_description exp_env lid constr_desc - | Texp_field (_, lid, label_desc, _, _) + | Texp_field (_, _, lid, label_desc, _, _) | Texp_setfield (_, _, lid, label_desc, _) -> add_label ~namespace:Label exp_env lid label_desc | Texp_unboxed_field (_, _, lid, label_desc, _) -> @@ -267,7 +267,8 @@ let iter_on_occurrences f ~namespace:Module ctyp_env path lid | Ttyp_var _ | Ttyp_arrow _ | Ttyp_tuple _ | Ttyp_object _ | Ttyp_unboxed_tuple _ - | Ttyp_alias _ | Ttyp_variant _ | Ttyp_poly _ | Ttyp_call_pos -> ()); + | Ttyp_alias _ | Ttyp_variant _ | Ttyp_poly _ | Ttyp_of_kind _ + | Ttyp_call_pos -> ()); default_iterator.typ sub ct); pat = diff --git a/upstream/ocaml_flambda/parsing/ast_helper.ml b/upstream/ocaml_flambda/parsing/ast_helper.ml index ed0b340b4..746704433 100644 --- a/upstream/ocaml_flambda/parsing/ast_helper.ml +++ b/upstream/ocaml_flambda/parsing/ast_helper.ml @@ -74,6 +74,7 @@ module Typ = struct 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 open_ ?loc ?attrs mod_ident t = mk ?loc ?attrs (Ptyp_open (mod_ident, t)) + let of_kind ?loc ?attrs a = mk ?loc ?attrs (Ptyp_of_kind a) let force_poly t = match t.ptyp_desc with @@ -132,6 +133,8 @@ module Typ = struct Ptyp_package(longident,List.map (fun (n,typ) -> (n,loop typ) ) lst) | Ptyp_open (mod_ident, core_type) -> Ptyp_open (mod_ident, loop core_type) + | Ptyp_of_kind jkind -> + Ptyp_of_kind (loop_jkind jkind) | Ptyp_extension (s, arg) -> Ptyp_extension (s, arg) in diff --git a/upstream/ocaml_flambda/parsing/ast_helper.mli b/upstream/ocaml_flambda/parsing/ast_helper.mli index 1b6a64205..146b92975 100644 --- a/upstream/ocaml_flambda/parsing/ast_helper.mli +++ b/upstream/ocaml_flambda/parsing/ast_helper.mli @@ -90,6 +90,7 @@ module Typ : val package: ?loc:loc -> ?attrs:attrs -> lid -> (lid * core_type) list -> core_type val open_ : ?loc:loc -> ?attrs:attrs -> lid -> core_type -> core_type + val of_kind : ?loc:loc -> ?attrs:attrs -> jkind_annotation -> core_type val extension: ?loc:loc -> ?attrs:attrs -> extension -> core_type val force_poly: core_type -> core_type diff --git a/upstream/ocaml_flambda/parsing/ast_iterator.ml b/upstream/ocaml_flambda/parsing/ast_iterator.ml index 6c4b3fb5f..f38dae2f0 100644 --- a/upstream/ocaml_flambda/parsing/ast_iterator.ml +++ b/upstream/ocaml_flambda/parsing/ast_iterator.ml @@ -155,6 +155,8 @@ module T = struct | Ptyp_open (mod_ident, t) -> iter_loc sub mod_ident; sub.typ sub t + | Ptyp_of_kind jkind -> + sub.jkind_annotation sub jkind | Ptyp_extension x -> sub.extension sub x let iter_type_declaration sub diff --git a/upstream/ocaml_flambda/parsing/ast_mapper.ml b/upstream/ocaml_flambda/parsing/ast_mapper.ml index e909abc2a..1d83c76c2 100644 --- a/upstream/ocaml_flambda/parsing/ast_mapper.ml +++ b/upstream/ocaml_flambda/parsing/ast_mapper.ml @@ -192,6 +192,8 @@ module T = struct (List.map (map_tuple (map_loc sub) (sub.typ sub)) l) | Ptyp_open (mod_ident, t) -> open_ ~loc ~attrs (map_loc sub mod_ident) (sub.typ sub t) + | Ptyp_of_kind jkind -> + of_kind ~loc ~attrs (sub.jkind_annotation sub jkind) | Ptyp_extension x -> extension ~loc ~attrs (sub.extension sub x) let map_type_declaration sub diff --git a/upstream/ocaml_flambda/parsing/builtin_attributes.ml b/upstream/ocaml_flambda/parsing/builtin_attributes.ml index 1c21cd535..c3d5989f9 100644 --- a/upstream/ocaml_flambda/parsing/builtin_attributes.ml +++ b/upstream/ocaml_flambda/parsing/builtin_attributes.ml @@ -113,7 +113,6 @@ let builtin_attrs = ; "only_generative_effects" ; "error_message" ; "layout_poly" - ; "no_mutable_implied_modalities" ; "or_null_reexport" ; "no_recursive_modalities" ; "jane.non_erasable.instances" @@ -650,9 +649,6 @@ let parse_standard_implementation_attributes attr = zero_alloc_attribute ~in_signature:false attr; unsafe_allow_any_mode_crossing_attribute attr -let has_no_mutable_implied_modalities attrs = - has_attribute "no_mutable_implied_modalities" attrs - let has_local_opt attrs = has_attribute "local_opt" attrs diff --git a/upstream/ocaml_flambda/parsing/builtin_attributes.mli b/upstream/ocaml_flambda/parsing/builtin_attributes.mli index abe5ba0d1..0ee683718 100644 --- a/upstream/ocaml_flambda/parsing/builtin_attributes.mli +++ b/upstream/ocaml_flambda/parsing/builtin_attributes.mli @@ -212,7 +212,6 @@ val parse_standard_implementation_attributes : Parsetree.attribute -> unit val curry_attr_name : string val curry_attr : Location.t -> Parsetree.attribute -val has_no_mutable_implied_modalities: Parsetree.attributes -> bool val has_local_opt: Parsetree.attributes -> bool val has_layout_poly: Parsetree.attributes -> bool val has_curry: Parsetree.attributes -> bool diff --git a/upstream/ocaml_flambda/parsing/depend.ml b/upstream/ocaml_flambda/parsing/depend.ml index ad6a73af9..4868bd9df 100644 --- a/upstream/ocaml_flambda/parsing/depend.ml +++ b/upstream/ocaml_flambda/parsing/depend.ml @@ -123,6 +123,7 @@ let rec add_type bv ty = | Ptyp_open (mod_ident, t) -> let bv = open_module bv mod_ident.txt in add_type bv t + | Ptyp_of_kind jkind -> add_jkind bv jkind | Ptyp_extension e -> handle_extension e and add_type_labeled_tuple bv tl = diff --git a/upstream/ocaml_flambda/parsing/language_extension.ml b/upstream/ocaml_flambda/parsing/language_extension.ml index 691d24cd0..fc26c1bfb 100644 --- a/upstream/ocaml_flambda/parsing/language_extension.ml +++ b/upstream/ocaml_flambda/parsing/language_extension.ml @@ -73,6 +73,7 @@ let get_level_ops : type a. a t -> (module Extension_level with type t = a) = | Labeled_tuples -> (module Unit) | Small_numbers -> (module Maturity) | Instances -> (module Unit) + | Separability -> (module Unit) (* We'll do this in a more principled way later. *) (* CR layouts: Note that layouts is only "mostly" erasable, because of annoying @@ -85,7 +86,8 @@ let get_level_ops : type a. a t -> (module Extension_level with type t = a) = let is_erasable : type a. a t -> bool = function | Mode | Unique | Overwriting | Layouts -> true | Comprehensions | Include_functor | Polymorphic_parameters | Immutable_arrays - | Module_strengthening | SIMD | Labeled_tuples | Small_numbers | Instances -> + | Module_strengthening | SIMD | Labeled_tuples | Small_numbers | Instances + | Separability -> false let maturity_of_unique_for_drf = Stable @@ -109,6 +111,7 @@ module Exist_pair = struct | Pair (Labeled_tuples, ()) -> Stable | Pair (Small_numbers, m) -> m | Pair (Instances, ()) -> Stable + | Pair (Separability, ()) -> Stable let is_erasable : t -> bool = function Pair (ext, _) -> is_erasable ext @@ -122,7 +125,7 @@ module Exist_pair = struct | Pair ( (( Comprehensions | Include_functor | Polymorphic_parameters | Immutable_arrays | Module_strengthening | Labeled_tuples - | Instances | Overwriting ) as ext), + | Instances | Overwriting | Separability ) as ext), _ ) -> to_string ext @@ -153,6 +156,7 @@ module Exist_pair = struct | "small_numbers" -> Some (Pair (Small_numbers, Stable)) | "small_numbers_beta" -> Some (Pair (Small_numbers, Beta)) | "instances" -> Some (Pair (Instances, ())) + | "separability" -> Some (Pair (Separability, ())) | _ -> None end @@ -173,7 +177,8 @@ let all_extensions = Pack SIMD; Pack Labeled_tuples; Pack Small_numbers; - Pack Instances ] + Pack Instances; + Pack Separability ] (**********************************) (* string conversions *) @@ -212,9 +217,11 @@ let equal_t (type a b) (a : a t) (b : b t) : (a, b) Misc.eq option = | Labeled_tuples, Labeled_tuples -> Some Refl | Small_numbers, Small_numbers -> Some Refl | Instances, Instances -> Some Refl + | Separability, Separability -> Some Refl | ( ( Comprehensions | Mode | Unique | Overwriting | Include_functor | Polymorphic_parameters | Immutable_arrays | Module_strengthening - | Layouts | SIMD | Labeled_tuples | Small_numbers | Instances ), + | Layouts | SIMD | Labeled_tuples | Small_numbers | Instances + | Separability ), _ ) -> None diff --git a/upstream/ocaml_flambda/parsing/language_extension.mli b/upstream/ocaml_flambda/parsing/language_extension.mli index 5ce88e276..005829fb8 100644 --- a/upstream/ocaml_flambda/parsing/language_extension.mli +++ b/upstream/ocaml_flambda/parsing/language_extension.mli @@ -31,6 +31,7 @@ type 'a t = 'a Language_extension_kernel.t = | Labeled_tuples : unit t | Small_numbers : maturity t | Instances : unit t + | Separability : unit t (** Require that an extension is enabled for at least the provided level, or else throw an exception at the provided location saying otherwise. *) diff --git a/upstream/ocaml_flambda/parsing/parser.mly b/upstream/ocaml_flambda/parsing/parser.mly index 07898ff8e..42c8571f9 100644 --- a/upstream/ocaml_flambda/parsing/parser.mly +++ b/upstream/ocaml_flambda/parsing/parser.mly @@ -777,6 +777,18 @@ let mkfunction ~loc ~attrs params body_constraint body = attrs end +let mk_functor_typ args mty_mm = + let mty, _ = + List.fold_left (fun (mty, mm) (startpos, arg) -> + let mty = + mkmty ~loc:(startpos, mty.pmty_loc.loc_end) (Pmty_functor (arg, mty, mm)) + in + let mm = [] in + mty, mm) + mty_mm args + in + mty + (* Alternatively, we could keep the generic module type in the Parsetree and extract the package type during type-checking. In that case, the assertions below should be turned into explicit checks. *) @@ -1601,8 +1613,9 @@ functor_arg: LPAREN RPAREN { $startpos, Unit } | (* An argument accompanied with an explicit type. *) - LPAREN x = mkrhs(module_name) COLON mty = module_type mm = optional_atat_mode_expr RPAREN - { $startpos, Named (x, mty, mm) } + LPAREN x = mkrhs(module_name) COLON mty_mm = module_type_with_optional_modes RPAREN + { let mty, mm = mty_mm in + $startpos, Named (x, mty, mm) } ; module_name: @@ -1671,10 +1684,9 @@ module_expr: paren_module_expr: (* A module expression annotated with a module type. *) - LPAREN me = module_expr COLON mty = module_type mm = optional_atat_mode_expr RPAREN - { mkmod ~loc:$sloc (Pmod_constraint(me, Some mty, mm)) } - | LPAREN me = module_expr mm = at_mode_expr RPAREN - { mkmod ~loc:$sloc (Pmod_constraint(me, None, mm)) } + LPAREN me = module_expr mty_mm = module_constraint RPAREN + { let mty, mm = mty_mm in + mkmod ~loc:$sloc (Pmod_constraint(me, mty, mm)) } | LPAREN module_expr COLON module_type error { unclosed "(" $loc($1) ")" $loc($5) } | (* A module expression within parentheses. *) @@ -1803,6 +1815,14 @@ structure_item: Pstr_module body, ext } ; +%inline module_constraint: + COLON mty_mm = module_type_with_optional_modes + { let mty, mm = mty_mm in + (Some mty, mm) + } + | at_mode_expr + { (None, $1) } + (* The body (right-hand side) of a module binding. *) module_binding_body: EQUAL me = module_expr @@ -1810,10 +1830,10 @@ module_binding_body: | COLON error { expecting $loc($1) "=" } | mkmod( - COLON mty = module_type mm = optional_atat_mode_expr EQUAL me = module_expr - { Pmod_constraint(me, Some mty, mm) } - | mm = at_mode_expr EQUAL me = module_expr - { Pmod_constraint(me, None, mm) } + mty_mm = module_constraint EQUAL me = module_expr + { + let mty, mm = mty_mm in + Pmod_constraint(me, mty, mm) } | arg_and_pos = functor_arg body = module_binding_body { let (_, arg) = arg_and_pos in Pmod_functor(arg, body) } @@ -1952,48 +1972,48 @@ open_description: /* Module types */ -module_type: +module_type_atomic: | SIG attrs = attributes s = signature END { mkmty ~loc:$sloc ~attrs (Pmty_signature s) } | SIG attributes signature error { unclosed "sig" $loc($1) "end" $loc($4) } | STRUCT error { expecting $loc($1) "sig" } - | FUNCTOR attrs = attributes args = functor_args - MINUSGREATER mty = module_type mm = optional_at_mode_expr - %prec below_WITH - { wrap_mty_attrs ~loc:$sloc attrs ( - (* return modes go to the innermost functor arrow; - all other return modes are empty *) - let mty, mm = - List.fold_left (fun (acc, mm) (startpos, arg) -> - mkmty ~loc:(startpos, $endpos) (Pmty_functor (arg, acc, mm)), [] - ) (mty, mm) args - in - match mm with - | [] -> mty - | _ :: _ -> assert false - ) } - | MODULE TYPE OF attributes module_expr %prec below_LBRACKETAT - { mkmty ~loc:$sloc ~attrs:$4 (Pmty_typeof $5) } | LPAREN module_type RPAREN { $2 } | LPAREN module_type error { unclosed "(" $loc($1) ")" $loc($3) } - | module_type attribute - { Mty.attr $1 $2 } | mkmty( mkrhs(mty_longident) { Pmty_ident $1 } - | LPAREN RPAREN MINUSGREATER module_type optional_at_mode_expr - { Pmty_functor(Unit, $4, $5) } - | module_type m1=optional_at_mode_expr MINUSGREATER module_type m2=optional_at_mode_expr +/* | LPAREN MODULE mkrhs(mod_longident) RPAREN + { Pmty_alias $3 } */ + ) + { $1 } +; + +module_type: + | module_type_atomic { $1 } + | FUNCTOR attrs = attributes args = functor_args + MINUSGREATER mty_mm = module_type_with_optional_modes + %prec below_WITH + { wrap_mty_attrs ~loc:$sloc attrs (mk_functor_typ args mty_mm) } + | args = functor_args + MINUSGREATER mty_mm = module_type_with_optional_modes + %prec below_WITH + { mk_functor_typ args mty_mm } + | MODULE TYPE OF attributes module_expr %prec below_LBRACKETAT + { mkmty ~loc:$sloc ~attrs:$4 (Pmty_typeof $5) } + | module_type attribute + { Mty.attr $1 $2 } + | mkmty( + module_type_with_optional_modes MINUSGREATER module_type_with_optional_modes %prec below_WITH - { Pmty_functor(Named (mknoloc None, $1, m1), $4, m2) } + { let mty0, mm0 = $1 in + let mty1, mm1 = $3 in + Pmty_functor(Named (mknoloc None, mty0, mm0), mty1, mm1) } | module_type WITH separated_nonempty_llist(AND, with_constraint) { Pmty_with($1, $3) } -/* | LPAREN MODULE mkrhs(mod_longident) RPAREN - { Pmty_alias $3 } */ | extension { Pmty_extension $1 } | module_type WITH mkrhs(mod_ext_longident) @@ -2001,6 +2021,11 @@ module_type: ) { $1 } ; + +%inline module_type_with_optional_modes: + | module_type { $1, [] } + | module_type_atomic at_mode_expr { $1, $2 } + (* A signature, which appears between SIG and END (among other places), is a list of signature elements. *) signature: @@ -2076,8 +2101,10 @@ signature_item: %inline module_declaration: MODULE ext = ext attrs1 = attributes - name_ = module_name_modal(at_modalities_expr) - body = module_declaration_body(optional_atat_modalities_expr) + name_ = module_name_modal(atat_modalities_expr) + body = module_declaration_body( + module_type optional_atat_modalities_expr { ($1, $2) } + ) attrs2 = post_item_attributes { let attrs = attrs1 @ attrs2 in @@ -2091,13 +2118,13 @@ signature_item: ; (* The body (right-hand side) of a module declaration. *) -module_declaration_body(optional_atat_modal_expr): - COLON mty = module_type mm = optional_atat_modal_expr - { mty, mm } +module_declaration_body(module_type_with_optional_modal_expr): + COLON mty_mm = module_type_with_optional_modal_expr + { mty_mm } | EQUAL error { expecting $loc($1) ":" } | mkmty( - arg_and_pos = functor_arg body = module_declaration_body(optional_atat_mode_expr) + arg_and_pos = functor_arg body = module_declaration_body(module_type_with_optional_modes) { let (_, arg) = arg_and_pos in let (ret, mret) = body in Pmty_functor(arg, ret, mret) } @@ -2109,10 +2136,10 @@ module_declaration_body(optional_atat_modal_expr): %inline module_alias: MODULE ext = ext attrs1 = attributes - name_ = module_name_modal(at_modalities_expr) + name_ = module_name_modal(atat_modalities_expr) EQUAL body = module_expr_alias - modalities = optional_at_modalities_expr + modalities = optional_atat_modalities_expr attrs2 = post_item_attributes { let attrs = attrs1 @ attrs2 in @@ -2619,73 +2646,22 @@ seq_expr: ; labeled_simple_pattern: - QUESTION LPAREN modes0=optional_mode_expr_legacy x=label_let_pattern opt_default RPAREN - { let lbl, pat, cty, modes = x in - let loc = $startpos(modes0), $endpos(x) in - (Optional lbl, $5, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - } + QUESTION LPAREN label_let_pattern opt_default RPAREN + { (Optional (fst $3), $4, snd $3) } | QUESTION label_var { (Optional (fst $2), None, snd $2) } - | OPTLABEL LPAREN modes0=optional_mode_expr_legacy x=let_pattern opt_default RPAREN - { let pat, cty, modes = x in - let loc = $startpos(modes0), $endpos(x) in - (Optional $1, $5, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - } + | OPTLABEL LPAREN let_pattern opt_default RPAREN + { (Optional $1, $4, $3) } | OPTLABEL pattern_var { (Optional $1, None, $2) } - | TILDE LPAREN modes0=optional_mode_expr_legacy x=label_let_pattern RPAREN - { let lbl, pat, cty, modes = x in - let loc = $startpos(modes0), $endpos(x) in - (Labelled lbl, None, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - } + | TILDE LPAREN label_let_pattern RPAREN + { (Labelled (fst $3), None, snd $3) } | TILDE label_var { (Labelled (fst $2), None, snd $2) } - | LABEL simple_pattern + | LABEL simple_pattern_extend_modes_or_poly { (Labelled $1, None, $2) } - | LABEL LPAREN modes0=optional_mode_expr_legacy x=let_pattern_required_modes RPAREN - { let pat, cty, modes = x in - let loc = $startpos(modes0), $endpos(x) in - (Labelled $1, None, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - } - | LABEL LPAREN modes=mode_expr_legacy pat=pattern RPAREN - { let loc = $startpos(modes), $endpos(pat) in - (Labelled $1, None, - mkpat_with_modes ~loc ~pat ~cty:None ~modes) - } - | simple_pattern + | simple_pattern_extend_modes_or_poly { (Nolabel, None, $1) } - | LPAREN modes=mode_expr_legacy x=let_pattern_no_modes RPAREN - { let pat, cty = x in - let loc = $startpos(modes), $endpos(x) in - (Nolabel, None, - mkpat_with_modes ~loc ~pat ~cty ~modes) - } - | LPAREN modes0=optional_mode_expr_legacy x=let_pattern_required_modes RPAREN - { let pat, cty, modes = x in - let loc = $startpos(modes0), $endpos(x) in - (Nolabel, None, - mkpat_with_modes ~loc ~pat ~cty ~modes:(modes0 @ modes)) - } - | LABEL LPAREN x=poly_pattern_no_modes RPAREN - { let pat, cty = x in - (Labelled $1, None, - mkpat_with_modes ~loc:$loc(x) ~pat ~cty ~modes:[]) - } - | LABEL LPAREN modes=mode_expr_legacy x=poly_pattern_no_modes RPAREN - { let pat, cty = x in - let loc = $startpos(modes), $endpos(x) in - (Labelled $1, None, - mkpat_with_modes ~loc ~pat ~cty ~modes) - } - | LPAREN x=poly_pattern_no_modes RPAREN - { let pat, cty = x in - (Nolabel, None, - mkpat_with_modes ~loc:$loc(x) ~pat ~cty ~modes:[]) - } ; pattern_var: @@ -2699,23 +2675,26 @@ pattern_var: preceded(EQUAL, seq_expr)? { $1 } ; -label_let_pattern: - x = label_var modes = optional_at_mode_expr - { let lab, pat = x in - lab, pat, None, modes - } - | x = label_var COLON cty = core_type modes = optional_atat_mode_expr - { let lab, pat = x in - lab, pat, Some cty, modes + +optional_poly_type_and_modes: + { None, [] } + | at_mode_expr + { None, $1 } + | COLON cty_mm = poly_type_with_optional_modes + { let cty, mm = cty_mm in + Some cty, mm } - | x = label_var COLON - cty = mktyp (bound_vars = typevar_list - DOT - inner_type = core_type - { Ptyp_poly (bound_vars, inner_type) }) - modes = optional_atat_mode_expr +; + +label_let_pattern: + modes0 = optional_mode_expr_legacy x = label_var + cty_modes1 = optional_poly_type_and_modes { let lab, pat = x in - lab, pat, Some cty, modes + let cty, modes1 = cty_modes1 in + let modes = modes0 @ modes1 in + let loc = $startpos(modes0), $endpos(cty_modes1) in + let pat = mkpat_with_modes ~loc ~pat ~cty ~modes in + lab, pat } ; %inline label_var: @@ -2723,46 +2702,43 @@ label_let_pattern: { ($1.Location.txt, mkpat ~loc:$sloc (Ppat_var $1)) } ; let_pattern: - x=let_pattern_awaiting_at_modes modes=optional_at_mode_expr - { let pat, cty = x in pat, cty, modes } - | x=let_pattern_awaiting_atat_modes modes=optional_atat_mode_expr - { let pat, cty = x in pat, cty, modes } - | LPAREN let_pattern_required_modes RPAREN { $2 } -; - -let_pattern_required_modes: - x=let_pattern_awaiting_at_modes modes=at_mode_expr - { let pat, cty = x in pat, cty, modes } - | x=let_pattern_awaiting_atat_modes modes=atat_mode_expr - { let pat, cty = x in pat, cty, modes } - | LPAREN let_pattern_required_modes RPAREN { $2 } -; - -let_pattern_no_modes: - x=let_pattern_awaiting_at_modes { x } - | x=let_pattern_awaiting_atat_modes { x } -; - -%inline let_pattern_awaiting_atat_modes: - pat=pattern COLON cty=core_type - { pat, Some cty } - | poly_pattern_no_modes - { $1 } + modes0 = optional_mode_expr_legacy pat = pattern + cty_modes1 = optional_poly_type_and_modes + { + let cty, modes1 = cty_modes1 in + let modes = modes0 @ modes1 in + let loc = $startpos(modes0), $endpos(cty_modes1) in + mkpat_with_modes ~loc ~pat ~cty ~modes + } ; -%inline let_pattern_awaiting_at_modes: - pat=pattern { pat, None } -; +(* simple_pattern extended with poly_type and modes *) +simple_pattern_extend_modes_or_poly: + simple_pattern { $1 } + | LPAREN pattern_with_modes_or_poly RPAREN + { $2 } -%inline poly_pattern_no_modes: - pat = pattern - COLON - cty = mktyp(bound_vars = typevar_list - DOT - inner_type = core_type - { Ptyp_poly (bound_vars, inner_type) }) - { pat, Some cty } -; +pattern_with_modes_or_poly: + modes0 = mode_expr_legacy pat = pattern cty_modes1 = optional_poly_type_and_modes + { + let cty, modes1 = cty_modes1 in + let modes = modes0 @ modes1 in + let loc = $startpos(modes0), $endpos(cty_modes1) in + mkpat_with_modes ~loc ~pat ~cty:cty ~modes + } + | pat = pattern COLON cty_modes = poly_type_with_modes + { + let cty, modes = cty_modes in + mkpat_with_modes ~loc:$sloc ~pat ~cty:(Some cty) ~modes + } + | pat = pattern modes = at_mode_expr + { + mkpat_with_modes ~loc:$sloc ~pat ~cty:None ~modes + } + | pat = pattern COLON cty = strictly_poly_type + { + mkpat_with_modes ~loc:$sloc ~pat ~cty:(Some cty) ~modes:[] + } %inline indexop_expr(dot, index, right): | array=simple_expr d=dot LPAREN i=index RPAREN r=right @@ -2785,10 +2761,10 @@ let_pattern_no_modes: %inline qualified_dotop: ioption(DOT mod_longident {$2}) DOTOP { $1, $2 }; optional_atomic_constraint_: - | COLON atomic_type optional_atat_mode_expr { + | COLON atomic_type { { ret_type_constraint = Some (Pconstraint $2) ; mode_annotations = [] - ; ret_mode_annotations = $3 + ; ret_mode_annotations = [] } } | at_mode_expr { @@ -3159,18 +3135,29 @@ labeled_simple_expr: ; %inline pvc_modes: | at_mode_expr {None, $1} - | COLON core_type optional_atat_mode_expr { - Some(Pvc_constraint { locally_abstract_univars=[]; typ=$2 }), $3 + | COLON core_type_with_optional_modes { + let typ, mm = $2 in + Some(Pvc_constraint { locally_abstract_univars=[]; typ }), mm } ; + +%inline empty_list: { [] } + +%inline let_ident_with_modes: + optional_mode_expr_legacy let_ident + { ($2, $1) } + | LPAREN let_ident at_mode_expr RPAREN + { ($2, $3) } + let_binding_body_no_punning: - let_ident strict_binding - { ($1, $2, None, []) } - | modes0 = optional_mode_expr_legacy let_ident constraint_ EQUAL seq_expr + let_ident_with_modes strict_binding_modes + { let v, modes = $1 in + (v, $2 modes, None, modes) } + | let_ident_with_modes constraint_ EQUAL seq_expr (* CR zqian: modes are duplicated, and one of them needs to be made ghost to make internal tools happy. We should try to avoid that. *) - { let v = $2 in (* PR#7344 *) - let typ, modes1 = $3 in + { let v, modes0 = $1 in + let typ, modes1 = $2 in let t = Option.map (function | Pconstraint t -> @@ -3179,17 +3166,17 @@ let_binding_body_no_punning: ) typ in let modes = modes0 @ modes1 in - (v, $5, t, modes) + (v, $4, t, modes) } - | modes0 = optional_mode_expr_legacy let_ident COLON poly(core_type) modes1 = optional_atat_mode_expr EQUAL seq_expr - { let bound_vars, inner_type = $4 in - let ltyp = Ptyp_poly (bound_vars, inner_type) in - let typ = ghtyp ~loc:$loc($4) ltyp in + | let_ident_with_modes COLON strictly_poly_type_with_optional_modes EQUAL seq_expr + { let v, modes0 = $1 in + let typ, modes1 = $3 in let modes = modes0 @ modes1 in - ($2, $7, Some (Pvc_constraint { locally_abstract_univars = []; typ }), + (v, $5, Some (Pvc_constraint { locally_abstract_univars = []; typ }), modes) } - | let_ident COLON TYPE newtypes DOT core_type modes=optional_atat_mode_expr EQUAL seq_expr + | let_ident_with_modes COLON TYPE ntys = newtypes DOT cty = core_type modes1 = empty_list EQUAL e = seq_expr + | let_ident_with_modes COLON TYPE ntys = newtypes DOT cty = tuple_type modes1=at_mode_expr EQUAL e = seq_expr (* The code upstream looks like: {[ let constraint' = @@ -3206,10 +3193,12 @@ let_binding_body_no_punning: version, even though we are creating a slightly different [core_type]. *) { let exp, poly = - wrap_type_annotation ~loc:$sloc ~modes:[] ~typloc:$loc($6) $4 $6 $9 + wrap_type_annotation ~loc:$sloc ~modes:[] ~typloc:$loc(cty) ntys cty e in - let loc = ($startpos($1), $endpos($6)) in - (ghpat_with_modes ~loc ~pat:$1 ~cty:(Some poly) ~modes:[], exp, None, modes) + let v, modes0 = $1 in + let modes = modes0 @ modes1 in + let loc = ($startpos($1), $endpos(modes1)) in + (ghpat_with_modes ~loc ~pat:v ~cty:(Some poly) ~modes:[], exp, None, modes) } | pattern_no_exn EQUAL seq_expr { ($1, $3, None, []) } @@ -3218,14 +3207,6 @@ let_binding_body_no_punning: let pvc, modes = $2 in ($1, $4, pvc, modes) } - | modes=mode_expr_legacy let_ident strict_binding_modes - { - ($2, $3 modes, None, modes) - } - | LPAREN let_ident modes=at_mode_expr RPAREN strict_binding_modes - { - ($2, $5 modes, None, modes) - } ; let_binding_body: | let_binding_body_no_punning @@ -3503,8 +3484,17 @@ type_constraint: ; %inline type_constraint_with_modes: - | type_constraint optional_atat_mode_expr - { $1, $2 } + | COLON core_type_with_optional_modes { + let cty, mm = $2 in + Pconstraint cty, mm } + | COLON core_type COLONGREATER core_type_with_optional_modes { + let cty, mm = $4 in + Pcoerce (Some $2, cty), mm } + | COLONGREATER core_type_with_optional_modes { + let cty, mm = $2 in + Pcoerce (None, cty), mm } + | COLON error { syntax_error() } + | COLONGREATER error { syntax_error() } ; %inline constraint_: @@ -3720,24 +3710,8 @@ simple_pattern_not_ident: | extension { Ppat_extension $1 } ) { $1 } - (* CR modes: when modes on patterns are fully supported, replace the below - cases with these two *) - (* | LPAREN pattern modes=at_mode_expr RPAREN - * { mkpat ~loc:$sloc (Ppat_constraint($2, None, modes)) } - * | LPAREN pattern COLON core_type modes=optional_atat_mode_expr RPAREN - * { mkpat ~loc:$sloc (Ppat_constraint($2, Some $4, modes)) } *) | LPAREN pattern COLON core_type RPAREN { mkpat_with_modes ~loc:$sloc ~pat:$2 ~cty:(Some $4) ~modes:[] } - (* CR cgunn: figure out how to get these errors to work without reduce/reduce - conflicts *) - (* | LPAREN pattern COLON core_type ATAT error - * { - * raise (Syntaxerr.Error (Syntaxerr.Modes_on_pattern (make_loc $sloc))) - * } - * | LPAREN pattern AT error - * { - * raise (Syntaxerr.Error (Syntaxerr.Modes_on_pattern (make_loc $sloc))) - * } *) ; simple_delimited_pattern: @@ -4305,17 +4279,51 @@ with_type_binder: typevar_list DOT X { ($1, $3) } ; -possibly_poly(X): - X - { $1 } +%inline strictly_poly(X): | poly(X) { let bound_vars, inner_type = $1 in mktyp ~loc:$sloc (Ptyp_poly (bound_vars, inner_type)) } ; + +possibly_poly(X): + X + { $1 } +| strictly_poly(X) + { $1 } +; %inline poly_type: possibly_poly(core_type) { $1 } ; + +%inline strictly_poly_type: + strictly_poly(core_type) + { $1 } +; + +%inline strictly_poly_tuple_type: + strictly_poly(tuple_type) + { $1 } + +%inline poly_tuple_type: + | tuple_type { $1 } + | strictly_poly_tuple_type { $1 } +; + +%inline poly_type_with_modes: + | poly_tuple_type at_mode_expr { $1, $2 } +; + +%inline poly_type_with_optional_modes: + | poly_type_with_modes { $1 } + | poly_type { $1, [] } +; + +%inline strictly_poly_type_with_optional_modes: + | strictly_poly_type { $1, [] } + | strictly_poly_tuple_type at_mode_expr { $1, $2 } +; + %inline poly_type_no_attr: possibly_poly(core_type_no_attr) { $1 } @@ -4334,6 +4342,10 @@ core_type: { Typ.attr $1 $2 } ; +%inline core_type_with_optional_modes: + core_type { $1, [] } + | tuple_type at_mode_expr { $1, $2 } + (* A core type without attributes is currently defined as an alias type, but this could change in the future if new forms of types are introduced. From the outside, one should use core_type_no_attr. *) @@ -4511,15 +4523,6 @@ at_mode_expr: } ; -atat_mode_expr: - | ATAT mode_expr {$2} - | ATAT error { expecting $loc($2) "mode expression" } -; - -%inline optional_atat_mode_expr: - | { [] } - | atat_mode_expr {$1} -; /* Modalities */ @@ -4529,22 +4532,16 @@ atat_mode_expr: %inline modalities: | modality+ { $1 } -at_modalities_expr: - | AT modalities {$2} - | AT error { expecting $loc($2) "modality expression" } +atat_modalities_expr: + | ATAT modalities {$2} + | ATAT error { expecting $loc($2) "modality expression" } ; optional_atat_modalities_expr: | %prec below_HASH { [] } - | ATAT modalities { $2 } - | ATAT error { expecting $loc($2) "modality expression" } -; - -optional_at_modalities_expr: - | { [] } - | AT modalities { $2 } - | AT error { expecting $loc($2) "modality expression" } + | atat_modalities_expr + { $1 } ; %inline stack(expr): @@ -4727,6 +4724,8 @@ atomic_type: { mktyp ~loc:$sloc (Ptyp_var (name, Some jkind)) } | LPAREN UNDERSCORE COLON jkind=jkind_annotation RPAREN { mktyp ~loc:$sloc (Ptyp_any (Some jkind)) } + | LPAREN TYPE COLON jkind=jkind_annotation RPAREN + { mktyp ~loc:$loc (Ptyp_of_kind jkind) } (* This is the syntax of the actual type parameters in an application of diff --git a/upstream/ocaml_flambda/parsing/parsetree.mli b/upstream/ocaml_flambda/parsing/parsetree.mli index 1e990f50f..c2a77555d 100644 --- a/upstream/ocaml_flambda/parsing/parsetree.mli +++ b/upstream/ocaml_flambda/parsing/parsetree.mli @@ -202,6 +202,7 @@ and core_type_desc = *) | Ptyp_package of package_type (** [(module S)]. *) | Ptyp_open of Longident.t loc * core_type (** [M.(T)] *) + | Ptyp_of_kind of jkind_annotation (** [(type : k)] *) | Ptyp_extension of extension (** [[%id]]. *) and arg_label = Asttypes.arg_label = diff --git a/upstream/ocaml_flambda/parsing/pprintast.ml b/upstream/ocaml_flambda/parsing/pprintast.ml index 34c6edbe4..55941acd8 100644 --- a/upstream/ocaml_flambda/parsing/pprintast.ml +++ b/upstream/ocaml_flambda/parsing/pprintast.ml @@ -116,11 +116,14 @@ let protect_longident ppf print_longident longprefix txt = let is_curry_attr attr = attr.attr_name.txt = Builtin_attributes.curry_attr_name -let filter_curry_attrs attrs = - List.filter (fun attr -> not (is_curry_attr attr)) attrs - -let has_non_curry_attr attrs = - List.exists (fun attr -> not (is_curry_attr attr)) attrs +let split_out_curry_attr attrs = + let curry, non_curry = List.partition is_curry_attr attrs in + let is_curry = + match curry with + | [] -> false + | _ :: _ -> true + in + is_curry, non_curry type space_formatter = (unit, Format.formatter, unit) format @@ -315,8 +318,6 @@ let legacy_mode f { txt = Mode s; _ } = let s = match s with | "local" -> "local_" - | "unique" -> "unique_" - | "once" -> "once_" | s -> Misc.fatal_errorf "Unrecognized mode %s - should not parse" s in pp_print_string f s @@ -362,14 +363,6 @@ let optional_at_modes f m = | [] -> () | m -> pp f " %@ %a" modes m -let optional_atat_modes f m = - match m with - | [] -> () - | m -> pp f " %@%@ %a" modes m - -let maybe_type_atat_modes pty ctxt f (c, m) = - pp f "%a%a" (pty ctxt) c optional_atat_modes m - let modality f m = let {txt = Modality txt; _} = m in pp_print_string f txt @@ -389,29 +382,24 @@ let optional_space_atat_modalities f m = let pre f () = Format.fprintf f "@ %@%@@ " in optional_modalities ~pre f m -let optional_space_at_modalities f m = - let pre f () = Format.fprintf f "@ %@@ " in - optional_modalities ~pre f m - let optional_atat_modalities_newline f m = let pre f () = Format.fprintf f "%@%@@ " in optional_modalities ~pre ~post:pp_print_newline f m -(* helpers for printing both legacy/new mode syntax *) -let split_out_legacy_modes = - List.partition (fun m -> +(** For a list of modes, we either print everything in old syntax (if they + are purely old modes), or everything in new syntax. *) +let print_modes_in_old_syntax = + List.for_all (fun m -> let Mode txt = m.txt in match txt with - | "local" | "unique" | "once" -> true + | "local" -> true | _ -> false ) -let maybe_legacy_modes_type_at_modes pty ctxt f (c, m) = - let legacy, m = split_out_legacy_modes m in - pp f "%a%a%a" optional_legacy_modes legacy (pty ctxt) c optional_at_modes m - -let split_out_legacy_modalities = - List.partition (fun m -> +(** For a list of modalities, we either print all in old syntax (if they are + purely old modalities), or all in new syntax. *) +let print_modality_in_old_syntax = + List.for_all (fun m -> let Modality txt = m.txt in match txt with | "global" -> true @@ -419,11 +407,15 @@ let split_out_legacy_modalities = ) let modalities_type pty ctxt f pca = - let legacy, m = split_out_legacy_modalities pca.pca_modalities in - pp f "%a%a%a" - optional_legacy_modalities legacy - (pty ctxt) pca.pca_type - optional_space_atat_modalities m + let m = pca.pca_modalities in + if print_modality_in_old_syntax m then + pp f "%a%a" + optional_legacy_modalities m + (pty ctxt) pca.pca_type + else + pp f "%a%a" + (pty ctxt) pca.pca_type + optional_space_atat_modalities m let include_kind f = function | Functor -> pp f "@ functor" @@ -436,17 +428,26 @@ let rec class_params_def f = function pp f "[%a] " (* space *) (list type_param ~sep:",") l +and core_type_with_optional_legacy_modes pty ctxt f (c, m) = + match m with + | [] -> pty ctxt f c + | _ :: _ -> + if print_modes_in_old_syntax m then + pp f "%a%a" optional_legacy_modes m (core_type1 ctxt) c + else + pp f "%a%a" (core_type1 ctxt) c optional_at_modes m + and type_with_label ctxt f (label, c, mode) = match label with | Nolabel -> - maybe_legacy_modes_type_at_modes core_type1 ctxt f (c, mode) + core_type_with_optional_legacy_modes core_type1 ctxt f (c, mode) (* otherwise parenthesize *) | Labelled s -> pp f "%a:%a" ident_of_name s - (maybe_legacy_modes_type_at_modes core_type1 ctxt) (c, mode) + (core_type_with_optional_legacy_modes core_type1 ctxt) (c, mode) | Optional s -> pp f "?%a:%a" ident_of_name s - (maybe_legacy_modes_type_at_modes core_type1 ctxt) (c, mode) + (core_type_with_optional_legacy_modes core_type1 ctxt) (c, mode) and jkind_annotation ?(nested = false) ctxt f k = match k.pjkind_desc with | Default -> pp f "_" @@ -474,12 +475,12 @@ and jkind_annotation ?(nested = false) ctxt f k = match k.pjkind_desc with pp f "@[%a@]" (list (jkind_annotation ~nested:true ctxt) ~sep:"@ & ") ts ) f ts -and tyvar_jkind f (str, jkind) = +and tyvar_jkind tyvar f (str, jkind) = match jkind with | None -> tyvar f str | Some lay -> pp f "(%a : %a)" tyvar str (jkind_annotation reset_ctxt) lay -and tyvar_loc_jkind f (str, jkind) = tyvar_jkind f (str.txt,jkind) +and tyvar_loc_jkind tyvar f (str, jkind) = tyvar_jkind tyvar f (str.txt,jkind) and tyvar_loc_option_jkind f (str, jkind) = match jkind with @@ -500,10 +501,9 @@ and name_jkind f (name, jkind) = and name_loc_jkind f (str, jkind) = name_jkind f (str.txt,jkind) and core_type ctxt f x = - let filtered_attrs = filter_curry_attrs x.ptyp_attributes in - if filtered_attrs <> [] then begin + if x.ptyp_attributes <> [] then begin pp f "((%a)%a)" (core_type ctxt) {x with ptyp_attributes=[]} - (attributes ctxt) filtered_attrs + (attributes ctxt) x.ptyp_attributes end else match x.ptyp_desc with | Ptyp_arrow (l, ct1, ct2, m1, m2) -> @@ -521,17 +521,19 @@ and core_type ctxt f x = | _ -> pp f "%a@;.@;" (list - tyvar_loc_jkind ~sep:"@;") + (tyvar_loc_jkind tyvar) ~sep:"@;") l) sl (core_type ctxt) ct + | Ptyp_of_kind jkind -> + pp f "@[(type@ :@ %a)@]" (jkind_annotation reset_ctxt) jkind | _ -> pp f "@[<2>%a@]" (core_type1 ctxt) x and core_type1 ctxt f x = - if has_non_curry_attr x.ptyp_attributes then core_type ctxt f x + if x.ptyp_attributes <> [] then core_type ctxt f x else match x.ptyp_desc with | Ptyp_any jkind -> tyvar_loc_option_jkind f (None, jkind) - | Ptyp_var (s, jkind) -> tyvar_jkind f (s, jkind) + | Ptyp_var (s, jkind) -> (tyvar_jkind tyvar) f (s, jkind) | Ptyp_tuple tl -> pp f "(%a)" (list (labeled_core_type1 ctxt) ~sep:"@;*@;") tl | Ptyp_unboxed_tuple l -> @@ -608,9 +610,25 @@ and core_type1 ctxt f x = | Ptyp_open(li, ct) -> pp f "@[%a.(%a)@]" longident_loc li (core_type ctxt) ct | Ptyp_extension e -> extension ctxt f e - | (Ptyp_arrow _ | Ptyp_alias _ | Ptyp_poly _) -> + | (Ptyp_arrow _ | Ptyp_alias _ | Ptyp_poly _ | Ptyp_of_kind _) -> paren true (core_type ctxt) f x +and core_type2 ctxt f x = + if x.ptyp_attributes <> [] then core_type ctxt f x + else + match x.ptyp_desc with + | Ptyp_poly (sl, ct) -> + pp f "@[<2>%a%a@]" + (fun f l -> match l with + | [] -> () + | _ -> + pp f "%a@;.@;" + (list + (tyvar_loc_jkind tyvar) ~sep:"@;") + l) + sl (core_type1 ctxt) ct + | _ -> core_type1 ctxt f x + and tyvar_option f = function | None -> pp f "_" | Some name -> tyvar f name @@ -629,8 +647,15 @@ and labeled_core_type1 ctxt f (label, ty) = core_type1 ctxt f ty and return_type ctxt f (x, m) = - if x.ptyp_attributes <> [] then maybe_legacy_modes_type_at_modes core_type1 ctxt f (x, m) - else maybe_legacy_modes_type_at_modes core_type ctxt f (x, m) + let is_curry, ptyp_attributes = split_out_curry_attr x.ptyp_attributes in + let x = {x with ptyp_attributes} in + if is_curry then core_type_with_optional_legacy_modes core_type1 ctxt f (x, m) + else core_type_with_optional_legacy_modes core_type ctxt f (x, m) + +and core_type_with_optional_modes ctxt f (ty, modes) = + match modes with + | [] -> core_type ctxt f ty + | _ :: _ -> pp f "%a%a" (core_type2 ctxt) ty optional_at_modes modes (********************pattern********************) (* be cautious when use [pattern], [pattern1] is preferred *) @@ -739,27 +764,8 @@ and simple_pattern ctxt (f:Format.formatter) (x:pattern) : unit = | Ppat_constant (c) -> pp f "%a" constant c | Ppat_interval (c1, c2) -> pp f "%a..%a" constant c1 constant c2 | Ppat_variant (l,None) -> pp f "`%a" ident_of_name l - | Ppat_constraint (p, ct, m) -> - let legacy, m = split_out_legacy_modes m in - begin match ct, legacy with - | Some ct, [] | Some ({ ptyp_desc = Ptyp_poly _ } as ct), _ -> - pp f "@[<2>(%a%a@;:@;%a%a)@]" - optional_legacy_modes legacy - (pattern1 ctxt) p - (core_type ctxt) ct - optional_atat_modes m - | Some ct, _ :: _ -> - pp f "@[<2>(%a(%a@;:@;%a%a))@]" - optional_legacy_modes legacy - (pattern1 ctxt) p - (core_type ctxt) ct - optional_atat_modes m - | None, _ -> - pp f "@[<2>(%a%a%a)@]" - optional_legacy_modes legacy - (pattern1 ctxt) p - optional_at_modes m - end + | Ppat_constraint (p, ct, _) -> + pp f "@[<2>(%a@;:@;%a)@]" (pattern1 ctxt) p (core_type ctxt) (Option.get ct) | Ppat_lazy p -> pp f "@[<2>(lazy@;%a)@]" (simple_pattern ctxt) p | Ppat_exception p -> @@ -804,11 +810,43 @@ and labeled_tuple_pattern ctxt f ~unboxed l closed = (list ~sep:",@;" (labeled_pattern1 ctxt)) l closed_flag closed +(** for special treatment of modes in labeled expressions *) +and pattern2 ctxt f p = + match p.ppat_desc with + | Ppat_constraint(p, ct, m) -> + begin match ct, print_modes_in_old_syntax m with + | Some ct, true -> + pp f "@[<2>%a%a@;:@;%a@]" + optional_legacy_modes m + (simple_pattern ctxt) p + (core_type ctxt) ct + | Some ct, false -> + pp f "@[<2>%a@;:@;%a@]" + (simple_pattern ctxt) p + (core_type_with_optional_modes ctxt) (ct, m) + | None, true -> + pp f "@[<2>%a%a@]" + optional_legacy_modes m + (simple_pattern ctxt) p + | None, false -> + pp f "@[<2>%a%a@]" + (simple_pattern ctxt) p + optional_at_modes m + end + | _ -> pattern1 ctxt f p + +(** for special treatment of modes in labeled expressions *) +and simple_pattern1 ctxt f p = + match p.ppat_desc with + | Ppat_constraint _ -> + pp f "(%a)" (pattern2 ctxt) p + | _ -> simple_pattern ctxt f p + and label_exp ctxt f (l,opt,p) = match l with | Nolabel -> (* single case pattern parens needed here *) - pp f "%a" (simple_pattern ctxt) p + pp f "%a" (simple_pattern1 ctxt) p | Optional rest -> begin match p with | {ppat_desc = Ppat_var {txt;_}; ppat_attributes = []} @@ -819,32 +857,16 @@ and label_exp ctxt f (l,opt,p) = | None -> pp f "?%a" ident_of_name rest) | _ -> (match opt with - | Some o -> - (* Remove the legacy modes from the pattern here *) - let legacy, p = - match p.ppat_desc with - | Ppat_constraint (p', cty', m') -> - let legacy, m' = split_out_legacy_modes m' in - let p = - match cty', m' with - | None, [] -> p' - | _ -> { p with ppat_desc = Ppat_constraint (p', cty', m') } - in - legacy, p - | _ -> [], p - in - pp f "?%a:(%a%a=@;%a)" - ident_of_name rest - optional_legacy_modes legacy - (pattern1 ctxt) p - (expression ctxt) o - | None -> pp f "?%a:%a" ident_of_name rest (simple_pattern ctxt) p) + | Some o -> + pp f "?%a:(%a=@;%a)@;" + ident_of_name rest (pattern2 ctxt) p (expression ctxt) o + | None -> pp f "?%a:%a@;" ident_of_name rest (simple_pattern1 ctxt) p) end | Labelled l -> match p with | {ppat_desc = Ppat_var {txt;_}; ppat_attributes = []} when txt = l -> pp f "~%a" ident_of_name l - | _ -> pp f "~%a:%a" ident_of_name l (simple_pattern ctxt) p + | _ -> pp f "~%a:%a" ident_of_name l (simple_pattern1 ctxt) p and sugar_expr ctxt f e = if e.pexp_attributes <> [] then false @@ -1151,15 +1173,15 @@ and simple_expr ctxt f x = | Pexp_unboxed_tuple l -> labeled_tuple_expr ctxt f ~unboxed:true l | Pexp_constraint (e, ct, m) -> - begin match ct with - | None -> + begin match ct, print_modes_in_old_syntax m with + | None, true -> pp f "(%a %a)" legacy_modes m (expression ctxt) e - | Some ct -> - let legacy, m = split_out_legacy_modes m in - pp f "(%a%a : %a)" - optional_legacy_modes legacy + | None, false -> + pp f "(%a : _%a)" (expression ctxt) e optional_at_modes m + | Some ct, _ -> + pp f "(%a : %a)" (expression ctxt) e - (maybe_type_atat_modes core_type ctxt) (ct, m) + (core_type_with_optional_modes ctxt) (ct, m) end | Pexp_coerce (e, cto1, ct) -> pp f "(%a%a :> %a)" (expression ctxt) e @@ -1431,6 +1453,16 @@ and kind_abbrev ctxt f name jkind = string_loc name (jkind_annotation ctxt) jkind +and module_type_with_optional_modes ctxt f (mty, mm) = + match mm with + | [] -> module_type ctxt f mty + | _ :: _ -> pp f "%a%a" (module_type1 ctxt) mty optional_at_modes mm + +and module_type1_with_optional_modes ctxt f (mty, mm) = + match mm with + | [] -> module_type1 ctxt f mty + | _ :: _ -> pp f "%a%a" (module_type1 ctxt) mty optional_at_modes mm + and module_type ctxt f x = if x.pmty_attributes <> [] then begin pp f "((%a)%a)" (module_type ctxt) {x with pmty_attributes=[]} @@ -1438,17 +1470,17 @@ and module_type ctxt f x = end else match x.pmty_desc with | Pmty_functor (Unit, mt2, mm2) -> - pp f "@[() ->@ %a%a@]" (module_type ctxt) mt2 optional_at_modes mm2 + pp f "@[() ->@ %a@]" (module_type_with_optional_modes ctxt) (mt2, mm2) | Pmty_functor (Named (s, mt1, mm1), mt2, mm2) -> begin match s.txt with | None -> - pp f "@[%a%a@ ->@ %a%a@]" - (module_type1 ctxt) mt1 optional_at_modes mm1 - (module_type ctxt) mt2 optional_at_modes mm2 + pp f "@[%a@ ->@ %a@]" + (module_type1_with_optional_modes ctxt) (mt1, mm1) + (module_type_with_optional_modes ctxt) (mt2, mm2) | Some name -> - pp f "@[functor@ (%s@ :@ %a%a)@ ->@ %a%a@]" name - (module_type ctxt) mt1 optional_atat_modes mm1 - (module_type ctxt) mt2 optional_at_modes mm2 + pp f "@[functor@ (%s@ :@ %a)@ ->@ %a@]" name + (module_type_with_optional_modes ctxt) (mt1, mm1) + (module_type_with_optional_modes ctxt) (mt2, mm2) end | Pmty_with (mt, []) -> module_type ctxt f mt | Pmty_with (mt, l) -> @@ -1545,7 +1577,7 @@ and signature_item ctxt f x : unit = pp f "@[module@ %s@ =@ %a%a@]%a" (Option.value pmd.pmd_name.txt ~default:"_") longident_loc alias - optional_space_at_modalities pmd.pmd_modalities + optional_space_atat_modalities pmd.pmd_modalities (item_attributes ctxt) pmd.pmd_attributes | Psig_module pmd -> pp f "@[module@ %s@ :@ %a%a@]%a" @@ -1624,19 +1656,18 @@ and module_expr ctxt f x = (module_expr ctxt) me optional_at_modes mm | Some mt -> - pp f "@[(%a@ :@ %a%a)@]" + pp f "@[(%a@ :@ %a)@]" (module_expr ctxt) me - (module_type ctxt) mt - optional_atat_modes mm + (module_type_with_optional_modes ctxt) (mt, mm) end | Pmod_ident (li) -> pp f "%a" longident_loc li; | Pmod_functor (Unit, me) -> pp f "functor ()@;->@;%a" (module_expr ctxt) me | Pmod_functor (Named (s, mt, mm), me) -> - pp f "functor@ (%s@ :@ %a%a)@;->@;%a" + pp f "functor@ (%s@ :@ %a)@;->@;%a" (Option.value s.txt ~default:"_") - (module_type ctxt) mt optional_atat_modes mm (module_expr ctxt) me + (module_type_with_optional_modes ctxt) (mt, mm) (module_expr ctxt) me | Pmod_apply (me1, me2) -> pp f "(%a)(%a)" (module_expr ctxt) me1 (module_expr ctxt) me2 (* Cf: #7200 *) @@ -1686,36 +1717,42 @@ and pp_print_params_then_equals ctxt f x = ~delimiter:"=" | _ -> pp_print_pexp_newtype ctxt "=" f x +and poly_type ctxt core_type f (vars, typ) = + pp f "type@;%a.@;%a" + (list ~sep:"@;" (tyvar_loc_jkind pp_print_string)) vars + (core_type ctxt) typ + +and poly_type_with_optional_modes ctxt f (vars, typ, modes) = + match modes with + | [] -> poly_type ctxt core_type f (vars, typ) + | _ :: _ -> pp f "%a%a" (poly_type ctxt core_type1) (vars, typ) + optional_at_modes modes + (* transform [f = fun g h -> ..] to [f g h = ... ] could be improved *) and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; pvb_modes = modes; _} = (* .pvb_attributes have already been printed by the caller, #bindings *) - let _, modes = split_out_legacy_modes modes in match ct with | Some (Pvc_constraint { locally_abstract_univars = []; typ }) -> - pp f "%a@;:@;%a%a@;=@;%a" + pp f "%a@;:@;%a@;=@;%a" (simple_pattern ctxt) p - (core_type ctxt) typ - optional_atat_modes modes + (core_type_with_optional_modes ctxt) (typ, modes) (expression ctxt) x | Some (Pvc_constraint { locally_abstract_univars = vars; typ }) -> - pp f "%a@;: type@;%a.@;%a%a@;=@;%a" - (simple_pattern ctxt) p (list pp_print_string ~sep:"@;") - (List.map (fun x -> x.txt) vars) - (core_type ctxt) typ - optional_atat_modes modes + pp f "%a@;: %a@;=@;%a" + (simple_pattern ctxt) p + (poly_type_with_optional_modes ctxt) + (List.map (fun x -> (x, None)) vars, typ, modes) (expression ctxt) x | Some (Pvc_coercion {ground=None; coercion }) -> - pp f "%a@;:>@;%a%a@;=@;%a" + pp f "%a@;:>@;%a@;=@;%a" (simple_pattern ctxt) p (core_type ctxt) coercion - optional_at_modes modes (expression ctxt) x | Some (Pvc_coercion {ground=Some ground; coercion }) -> - pp f "%a@;:%a@;:>@;%a%a@;=@;%a" + pp f "%a@;:%a@;:>@;%a@;=@;%a" (simple_pattern ctxt) p (core_type ctxt) ground (core_type ctxt) coercion - optional_atat_modes modes (expression ctxt) x | None -> (* CR layouts 1.5: We just need to check for [is_desugared_gadt] because @@ -1753,12 +1790,10 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; pvb_modes = mode in begin match is_desugared_gadt p x with | Some (p, (_ :: _ as tyvars), ct, e) -> - pp f "%a@;: type@;%a.@;%a%a@;=@;%a" + pp f "%a@;: %a@;=@;%a" (simple_pattern ctxt) p - (list pp_print_string ~sep:"@;") - (tyvars_jkind_str tyvars) - (core_type ctxt) ct - optional_atat_modes modes + (poly_type_with_optional_modes ctxt) + (tyvars, ct, modes) (expression ctxt) e | _ -> begin match p with @@ -1786,7 +1821,12 @@ and binding ctxt f {pvb_pat=p; pvb_expr=x; pvb_constraint = ct; pvb_modes = mode and bindings ctxt f (rf,l) = let binding kwd rf f x = (* The other modes are printed inside [binding] *) - let legacy, _ = split_out_legacy_modes x.pvb_modes in + let legacy, x = + if print_modes_in_old_syntax x.pvb_modes then + x.pvb_modes, {x with pvb_modes = []} + else + [], x + in pp f "@[<2>%s %a%a%a@]%a" kwd rec_flag rf optional_legacy_modes legacy (binding ctxt) x @@ -1829,9 +1869,8 @@ and structure_item ctxt f x = begin match arg_opt with | Unit -> pp f "()" | Named (s, mt, mm) -> - pp f "(%s:%a%a)" (Option.value s.txt ~default:"_") - (module_type ctxt) mt - optional_atat_modes mm + pp f "(%s:%a)" (Option.value s.txt ~default:"_") + (module_type_with_optional_modes ctxt) (mt, mm) end; module_helper me' | me -> me @@ -1847,8 +1886,8 @@ and structure_item ctxt f x = Some ({pmty_desc=(Pmty_ident (_) | Pmty_signature (_));_} as mt), mm); pmod_attributes = []} -> - pp f " :@;%a%a@;=@;%a@;" - (module_type ctxt) mt optional_atat_modes mm (module_expr ctxt) me' + pp f " :@;%a@;=@;%a@;" + (module_type_with_optional_modes ctxt) (mt, mm) (module_expr ctxt) me' | _ -> pp f " =@ %a" (module_expr ctxt) me ) x.pmb_expr (item_attributes ctxt) x.pmb_attributes @@ -1915,10 +1954,9 @@ and structure_item ctxt f x = | Pstr_recmodule decls -> (* 3.07 *) let aux f = function | ({pmb_expr={pmod_desc=Pmod_constraint (expr, Some typ, mm)}} as pmb) -> - pp f "@[@ and@ %s:%a%a@ =@ %a@]%a" + pp f "@[@ and@ %s:%a@ =@ %a@]%a" (Option.value pmb.pmb_name.txt ~default:"_") - (module_type ctxt) typ - optional_atat_modes mm + (module_type_with_optional_modes ctxt) (typ, mm) (module_expr ctxt) expr (item_attributes ctxt) pmb.pmb_attributes | ({pmb_expr={pmod_desc=Pmod_constraint (expr, None, mm)}} as pmb) -> @@ -1935,10 +1973,9 @@ and structure_item ctxt f x = in begin match decls with | ({pmb_expr={pmod_desc=Pmod_constraint (expr, Some typ, mm)}} as pmb) :: l2 -> - pp f "@[@[module@ rec@ %s:%a%a@ =@ %a@]%a@ %a@]" + pp f "@[@[module@ rec@ %s:%a@ =@ %a@]%a@ %a@]" (Option.value pmb.pmb_name.txt ~default:"_") - (module_type ctxt) typ - optional_atat_modes mm + (module_type_with_optional_modes ctxt) (typ, mm) (module_expr ctxt) expr (item_attributes ctxt) pmb.pmb_attributes (fun f l2 -> List.iter (aux f) l2) l2 @@ -2016,7 +2053,12 @@ and type_def_list ctxt f (rf, exported, l) = and record_declaration ctxt f ~unboxed lbls = let type_record_field f pld = - let legacy, m = split_out_legacy_modalities pld.pld_modalities in + let legacy, m = + if print_modality_in_old_syntax pld.pld_modalities then + pld.pld_modalities, [] + else + [], pld.pld_modalities + in pp f "@[<2>%a%a%a:@;%a%a@;%a@]" mutable_flag pld.pld_mutable optional_legacy_modalities legacy @@ -2099,7 +2141,7 @@ and constructor_declaration ctxt f (name, vars_jkinds, args, res, attrs) = let pp_vars f vls = match vls with | [] -> () - | _ -> pp f "%a@;.@;" (list tyvar_loc_jkind ~sep:"@;") + | _ -> pp f "%a@;.@;" (list (tyvar_loc_jkind tyvar) ~sep:"@;") vls in match res with @@ -2256,12 +2298,11 @@ and function_constraint ctxt f x = match[@ocaml.warning "+9"] x with | { ret_type_constraint = Some (Pconstraint ty); ret_mode_annotations; _ } -> - pp f "@;:@;%a%a" (core_type ctxt) ty optional_atat_modes ret_mode_annotations - | { ret_type_constraint = Some (Pcoerce (ty1, ty2)); ret_mode_annotations; _ } -> - pp f "@;%a:>@;%a%a" + pp f "@;:@;%a" (core_type_with_optional_modes ctxt) (ty, ret_mode_annotations) + | { ret_type_constraint = Some (Pcoerce (ty1, ty2)); _ } -> + pp f "@;%a:>@;%a" (option ~first:":@;" (core_type ctxt)) ty1 (core_type ctxt) ty2 - optional_atat_modes ret_mode_annotations | { ret_type_constraint = None; ret_mode_annotations; _} -> pp f "%a" optional_at_modes ret_mode_annotations diff --git a/upstream/ocaml_flambda/parsing/printast.ml b/upstream/ocaml_flambda/parsing/printast.ml index a00b64d32..ce78866d0 100644 --- a/upstream/ocaml_flambda/parsing/printast.ml +++ b/upstream/ocaml_flambda/parsing/printast.ml @@ -220,6 +220,8 @@ let rec core_type i ppf x = | Ptyp_open (mod_ident, t) -> line i ppf "Ptyp_open \"%a\"\n" fmt_longident_loc mod_ident; core_type i ppf t + | Ptyp_of_kind jkind -> + line i ppf "Ptyp_of_kind %a\n" (jkind_annotation (i + 1)) jkind | Ptyp_extension (s, arg) -> line i ppf "Ptyp_extension \"%s\"\n" s.txt; payload i ppf arg diff --git a/upstream/ocaml_flambda/parsing/unit_info.ml b/upstream/ocaml_flambda/parsing/unit_info.ml index a35251b09..ac73012e4 100644 --- a/upstream/ocaml_flambda/parsing/unit_info.ml +++ b/upstream/ocaml_flambda/parsing/unit_info.ml @@ -13,6 +13,7 @@ (* *) (**************************************************************************) +type intf_or_impl = Intf | Impl type modname = string type filename = string type file_prefix = string @@ -20,11 +21,13 @@ type file_prefix = string type t = { source_file: filename; prefix: file_prefix; - modname: modname; + modname: Compilation_unit.t; + kind: intf_or_impl; } let source_file (x: t) = x.source_file let modname (x: t) = x.modname +let kind (x: t) = x.kind let prefix (x: t) = x.prefix let basename_chop_extensions basename = @@ -45,6 +48,12 @@ let normalize = Misc.normalized_unit_filename let modname_from_source source_file = source_file |> Filename.basename |> basename_chop_extensions |> modulize +let compilation_unit_from_source ~for_pack_prefix source_file = + let modname = + modname_from_source source_file |> Compilation_unit.Name.of_string + in + Compilation_unit.create for_pack_prefix modname + let start_char = function | 'A' .. 'Z' -> true | _ -> false @@ -61,34 +70,51 @@ let is_unit_name name = && String.for_all is_identchar_latin1 name let check_unit_name file = - if not (is_unit_name (modname file)) then + let name = modname file |> Compilation_unit.name_as_string in + if not (is_unit_name name) then Location.prerr_warning (Location.in_file (source_file file)) - (Warnings.Bad_module_name (modname file)) + (Warnings.Bad_module_name name) -let make ?(check_modname=true) ~source_file prefix = - let modname = modname_from_source prefix in - let p = { modname; prefix; source_file } in +let make ?(check_modname=true) ~source_file ~for_pack_prefix kind prefix = + let modname = compilation_unit_from_source ~for_pack_prefix prefix in + let p = { modname; prefix; source_file; kind } in if check_modname then check_unit_name p; p +(* CR lmaurer: This is something of a wart: some refactoring of `Compile_common` + could probably eliminate the need for it *) +let make_with_known_compilation_unit ~source_file kind prefix modname = + { modname; prefix; source_file; kind } + +let make_dummy ~input_name modname = + make_with_known_compilation_unit ~source_file:input_name + Impl input_name modname + module Artifact = struct type t = { source_file: filename option; filename: filename; - modname: modname; + modname: Compilation_unit.t; } let source_file x = x.source_file let filename x = x.filename let modname x = x.modname let prefix x = Filename.remove_extension (filename x) - let from_filename filename = - let modname = modname_from_source filename in + let from_filename ~for_pack_prefix filename = + let modname = compilation_unit_from_source ~for_pack_prefix filename in + { modname; filename; source_file = None } end +let of_artifact ~dummy_source_file kind (a : Artifact.t) = + let modname = Artifact.modname a in + let prefix = Artifact.prefix a in + let source_file = Option.value a.source_file ~default:dummy_source_file in + { modname; prefix; source_file; kind } + let mk_artifact ext u = { Artifact.filename = u.prefix ^ ext; @@ -125,6 +151,6 @@ let mli_from_source u = let is_cmi f = Filename.check_suffix (Artifact.filename f) ".cmi" let find_normalized_cmi f = - let filename = modname f ^ ".cmi" in + let filename = (modname f |> Compilation_unit.name_as_string) ^ ".cmi" in let filename = Load_path.find_normalized filename in { Artifact.filename; modname = modname f; source_file = Some f.source_file } diff --git a/upstream/ocaml_flambda/parsing/unit_info.mli b/upstream/ocaml_flambda/parsing/unit_info.mli index 5f25e5f81..bc924b966 100644 --- a/upstream/ocaml_flambda/parsing/unit_info.mli +++ b/upstream/ocaml_flambda/parsing/unit_info.mli @@ -21,12 +21,13 @@ (** {1:modname_from_strings Module name convention and computation} *) -(* CR mshinwell: Consider changing [modname] to be [Compilation_unit.t] *) - +type intf_or_impl = Intf | Impl type modname = string type filename = string type file_prefix = string +(* CR lmaurer: These overlap with functionality in [Compilation_unit] **) + (** [modulize s] capitalizes the first letter of [s]. *) val modulize: string -> modname @@ -67,21 +68,41 @@ val prefix: t -> file_prefix (** [modname u] or [artifact_modname a] is the module name of the unit or compilation artifact.*) -val modname: t -> modname +val modname: t -> Compilation_unit.t + +(** [kind u] is the kind (interface or implementation) of the unit. *) +val kind: t -> intf_or_impl (** [check_unit_name u] prints a warning if the derived module name [modname u] should not be used as a module name as specified by {!is_unit_name}[ ~strict:true]. *) val check_unit_name : t -> unit -(** [make ~check ~source_file prefix] associates both the +(** [make ~check ~source_file ~for_pack_prefix kind prefix] associates both the [source_file] and the module name {!modname_from_source}[ target_prefix] to the prefix filesystem path [prefix]. If [check_modname=true], this function emits a warning if the derived module name is not valid according to {!check_unit_name}. *) -val make: ?check_modname:bool -> source_file:filename -> file_prefix -> t +val make: + ?check_modname:bool -> source_file:filename -> + for_pack_prefix:Compilation_unit.Prefix.t -> + intf_or_impl -> file_prefix -> t + +(** [make_with_known_compilation_unit ~source_file ~for_pack_prefix kind prefix + compilation_unit] associates both the [source_file] and the module name + [compilation_unit] to the prefix filesystem path [prefix]. It is assumed + that checks were performed by [Compilation_unit]. +*) +val make_with_known_compilation_unit: + source_file:filename -> intf_or_impl -> file_prefix -> Compilation_unit.t -> t + +(** [make_dummy ~input_name compilation_unit] is used in places where there's no + actual source file but we do need to specify a [Compilation_unit.t]. The + [input_name] is a string like "startup", suitable as the value for + [Location.input_name] as well. *) +val make_dummy: input_name:string -> Compilation_unit.t -> t (** {1:artifact_function Build artifacts }*) module Artifact: sig @@ -102,11 +123,12 @@ module Artifact: sig val filename: t -> filename (** [modname a] is the module name of the compilation artifact.*) - val modname: t -> modname + val modname: t -> Compilation_unit.t - (** [from_filename filename] reconstructs the module name - [modname_from_source filename] associated to the artifact [filename]. *) - val from_filename: filename -> t + (** [from_filename ~for_pack_prefix filename] reconstructs the module name + [modname_from_source filename] associated to the artifact [filename], + assuming the pack prefix is [for_pack_prefix]. *) + val from_filename: for_pack_prefix:Compilation_unit.Prefix.t -> filename -> t end @@ -162,3 +184,8 @@ val is_cmi: Artifact.t -> bool name [modname u]. @raise Not_found if no such cmi exists *) val find_normalized_cmi: t -> Artifact.t + +(** [of_artifact ~dummy_source_file kind a] builds a [Unit_info.t] from a + [Unit_info.Artifact.t], using [dummy_source_file] as the filename if the + artifact doesn't have one attached. *) +val of_artifact : dummy_source_file:filename -> intf_or_impl -> Artifact.t -> t diff --git a/upstream/ocaml_flambda/typing/allowance.ml b/upstream/ocaml_flambda/typing/allowance.ml index f2855fc49..1c30a2a8b 100644 --- a/upstream/ocaml_flambda/typing/allowance.ml +++ b/upstream/ocaml_flambda/typing/allowance.ml @@ -22,6 +22,10 @@ type right_only = disallowed * allowed type both = allowed * allowed +type 'a pos = 'b * 'c constraint 'a = 'b * 'c + +type 'a neg = 'c * 'b constraint 'a = 'b * 'c + module type Allow_disallow = sig type ('a, 'b, 'd) sided constraint 'd = 'l * 'r diff --git a/upstream/ocaml_flambda/typing/allowance.mli b/upstream/ocaml_flambda/typing/allowance.mli index 2f20b54bc..e8f7b573c 100644 --- a/upstream/ocaml_flambda/typing/allowance.mli +++ b/upstream/ocaml_flambda/typing/allowance.mli @@ -47,6 +47,14 @@ type right_only = disallowed * allowed type both = allowed * allowed +(** Arrange the permissions appropriately for a positive lattice, by +doing nothing. *) +type 'a pos = 'b * 'c constraint 'a = 'b * 'c + +(** Arrange the permissions appropriately for a negative lattice, by + swapping left and right. *) +type 'a neg = 'c * 'b constraint 'a = 'b * 'c + module type Allow_disallow = sig type ('a, 'b, 'd) sided constraint 'd = 'l * 'r diff --git a/upstream/ocaml_flambda/typing/btype.ml b/upstream/ocaml_flambda/typing/btype.ml index 734e2cd4d..686d99667 100644 --- a/upstream/ocaml_flambda/typing/btype.ml +++ b/upstream/ocaml_flambda/typing/btype.ml @@ -20,6 +20,11 @@ open Types open Local_store +(**** Forward declarations ****) + +let print_raw = + ref (fun _ -> assert false : Format.formatter -> type_expr -> unit) + (**** Sets, maps and hashtables of types ****) let wrap_repr f ty = f (Transient_expr.repr ty) @@ -34,6 +39,13 @@ module TypeSet = struct let exists p = TransientTypeSet.exists (wrap_type_expr p) let elements set = List.map Transient_expr.type_expr (TransientTypeSet.elements set) + let debug_print ppf t = + Format.( + fprintf ppf "{ %a }" + (pp_print_seq + ~pp_sep:(fun ppf () -> fprintf ppf ";@,") + !print_raw) + (to_seq t |> Seq.map Transient_expr.type_expr)) end module TransientTypeMap = Map.Make(TransientTypeOps) module TypeMap = struct @@ -95,10 +107,6 @@ module TypePairs = struct f (type_expr t1, type_expr t2)) end -(**** Forward declarations ****) - -let print_raw = - ref (fun _ -> assert false : Format.formatter -> type_expr -> unit) (**** Type level management ****) @@ -149,6 +157,7 @@ let merge_fixed_explanation fixed1 fixed2 = | Some Fixed_private as x, _ | _, (Some Fixed_private as x) -> x | Some Reified _ as x, _ | _, (Some Reified _ as x) -> x | Some Rigid as x, _ | _, (Some Rigid as x) -> x + | Some Fixed_existential as x, _ | _, (Some Fixed_existential as x) -> x | None, None -> None @@ -161,6 +170,7 @@ let fixed_explanation row = | Tvar _ | Tnil -> None | Tunivar _ -> Some (Univar ty) | Tconstr (p,_,_) -> Some (Reified p) + | Tof_kind _ -> Some Fixed_existential | _ -> assert false let is_fixed row = match row_fixed row with @@ -175,6 +185,17 @@ let static_row row = (fun (_,f) -> match row_field_repr f with Reither _ -> false | _ -> true) (row_fields row) +let tvariant_not_immediate row = + (* if all labels are devoid of arguments, not a pointer *) + (* CR layouts v5: Polymorphic variants with all void args can probably + be immediate, but we don't allow them to have void args right now. *) + not (row_closed row) + || List.exists + (fun (_,field) -> match row_field_repr field with + | Rpresent (Some _) | Reither (false, _, _) -> true + | _ -> false) + (row_fields row) + let hash_variant s = let accu = ref 0 in for i = 0 to String.length s - 1 do @@ -260,7 +281,10 @@ let fold_row f init row = (row_fields row) in match get_desc (row_more row) with - | Tvar _ | Tunivar _ | Tsubst _ | Tconstr _ | Tnil -> + | Tvar _ | Tunivar _ | Tsubst _ | Tconstr _ | Tnil + (* Tof_kind can appear in [row_more] in case the row's row variable was existentially + quantified in a GADT *) + | Tof_kind _ -> begin match Option.map (fun (_,l) -> List.fold_left f result l) (row_name row) with @@ -272,6 +296,7 @@ let fold_row f init row = let iter_row f row = fold_row (fun () v -> f v) () row + let fold_type_expr f init ty = match get_desc ty with Tvar _ -> init @@ -300,6 +325,7 @@ let fold_type_expr f init ty = List.fold_left f result tyl | Tpackage (_, fl) -> List.fold_left (fun result (_n, ty) -> f result ty) init fl + | Tof_kind _ -> init let iter_type_expr f ty = fold_type_expr (fun () v -> f v) () ty @@ -481,6 +507,7 @@ let rec copy_type_desc ?(keep_names=false) f = function let tyl = List.map f tyl in Tpoly (f ty, tyl) | Tpackage (p, fl) -> Tpackage (p, List.map (fun (n, ty) -> (n, f ty)) fl) + | Tof_kind jk -> Tof_kind jk (* Utilities for copying *) diff --git a/upstream/ocaml_flambda/typing/btype.mli b/upstream/ocaml_flambda/typing/btype.mli index cfcb14b7f..107403ea4 100644 --- a/upstream/ocaml_flambda/typing/btype.mli +++ b/upstream/ocaml_flambda/typing/btype.mli @@ -27,6 +27,7 @@ module TypeSet : sig val singleton: type_expr -> t val exists: (type_expr -> bool) -> t -> bool val elements: t -> type_expr list + val debug_print : Format.formatter -> t -> unit end module TransientTypeMap : Map.S with type key = transient_expr module TypeMap : sig @@ -106,6 +107,9 @@ val merge_fixed_explanation: val static_row: row_desc -> bool (* Return whether the row is static or not *) +val tvariant_not_immediate: row_desc -> bool + (* Return whether the polymorphic variant is non-immediate + (i.e., has arguments or is open) *) val hash_variant: label -> int (* Hash function for variant tags *) diff --git a/upstream/ocaml_flambda/typing/ctype.ml b/upstream/ocaml_flambda/typing/ctype.ml index 51223c919..5be887548 100644 --- a/upstream/ocaml_flambda/typing/ctype.ml +++ b/upstream/ocaml_flambda/typing/ctype.ml @@ -648,6 +648,16 @@ let free_non_row_variables_of_list tyl = List.iter unmark_type tyl; tl +let free_variable_set_of_list env tys = + let add_one ty jkind _kind acc = + match jkind with + | None -> (* not a Tvar *) acc + | Some _jkind -> TypeSet.add ty acc + in + let ts = free_vars ~zero:TypeSet.empty ~add_one ~env tys in + List.iter unmark_type tys; + ts + let exists_free_variable f ty = let exception Exists in let add_one ty jkind _kind _acc = @@ -1297,7 +1307,7 @@ let rec copy ?partial ?keep_names copy_scope ty = Tsubst (ty, None) -> ty (* TODO: is this case possible? possibly an interaction with (copy more) below? *) - | Tconstr _ | Tnil -> + | Tconstr _ | Tnil | Tof_kind _ -> copy more | Tvar _ | Tunivar _ -> if keep then more else newty mored @@ -1607,7 +1617,7 @@ let copy_sep ~copy_scope ~fixed ~(visited : type_expr TypeHash.t) sch = if keep then (add_delayed_copy t ty; Tvar { name = None; - jkind = Jkind.Builtin.value ~why:Polymorphic_variant }) + jkind = Jkind.for_non_float ~why:Polymorphic_variant }) else let more' = copy_rec ~may_share:false more in let fixed' = fixed && (is_Tvar more || is_Tunivar more) in @@ -1643,9 +1653,14 @@ let instance_poly' copy_scope ~keep_names ~fixed univars sch = let ty = copy_sep ~copy_scope ~fixed ~visited sch in vars, ty -let instance_poly ?(keep_names=false) ~fixed univars sch = +let instance_poly_fixed ?(keep_names=false) univars sch = + For_copy.with_scope (fun copy_scope -> + instance_poly' copy_scope ~keep_names ~fixed:true univars sch + ) + +let instance_poly ?(keep_names=false) univars sch = For_copy.with_scope (fun copy_scope -> - instance_poly' copy_scope ~keep_names ~fixed univars sch + snd (instance_poly' copy_scope ~keep_names ~fixed:false univars sch) ) let instance_label ~fixed lbl = @@ -1662,22 +1677,40 @@ let instance_label ~fixed lbl = (vars, ty_arg, ty_res) ) -let prim_mode mvar = function - | Primitive.Prim_global, _ -> Locality.allow_right Locality.global - | Primitive.Prim_local, _ -> Locality.allow_right Locality.local +(* CR dkalinichenko: we must vary yieldingness together with locality to get + sane behavior around [@local_opt]. Remove once we have mode polymorphism. *) +let prim_mode' mvars = function + | Primitive.Prim_global, _ -> + Locality.allow_right Locality.global, None + | Primitive.Prim_local, _ -> + Locality.allow_right Locality.local, None | Primitive.Prim_poly, _ -> - match mvar with - | Some mvar -> mvar + match mvars with + | Some (mvar_l, mvar_y) -> mvar_l, Some mvar_y | None -> assert false -(** Returns a new mode variable whose locality is the given locality, while - all other axes are from the given [m]. This function is too specific to be - put in [mode.ml] *) -let with_locality locality m = +(* Exported version. *) +let prim_mode mvar prim = + let mvars = Option.map (fun mvar_l -> mvar_l, Yielding.newvar ()) mvar in + fst (prim_mode' mvars prim) + +(** Returns a new mode variable whose locality is the given locality and + whose yieldingness is the given yieldingness, while all other axes are + from the given [m]. This function is too specific to be put in [mode.ml] *) +let with_locality_and_yielding (locality, yielding) m = let m' = Alloc.newvar () in Locality.equate_exn (Alloc.proj (Comonadic Areality) m') locality; - Alloc.submode_exn m' (Alloc.join_with (Comonadic Areality) Locality.Const.max m); - Alloc.submode_exn (Alloc.meet_with (Comonadic Areality) Locality.Const.min m) m'; + let yielding = + Option.value ~default:(Alloc.proj (Comonadic Yielding) m) yielding + in + Yielding.equate_exn (Alloc.proj (Comonadic Yielding) m') yielding; + let c = + { Alloc.Comonadic.Const.max with + areality = Locality.Const.min; + yielding = Yielding.Const.min} + in + Alloc.submode_exn (Alloc.meet_const c m') m; + Alloc.submode_exn (Alloc.meet_const c m) m'; m' let curry_mode alloc arg : Alloc.Const.t = @@ -1701,10 +1734,12 @@ let curry_mode alloc arg : Alloc.Const.t = of the return of a function). *) {acc with uniqueness=Uniqueness.Const.Aliased} -let rec instance_prim_locals locals mvar macc finalret ty = +let rec instance_prim_locals locals mvar_l mvar_y macc (loc, yld) ty = match locals, get_desc ty with | l :: locals, Tarrow ((lbl,marg,mret),arg,ret,commu) -> - let marg = with_locality (prim_mode (Some mvar) l) marg in + let marg = with_locality_and_yielding + (prim_mode' (Some (mvar_l, mvar_y)) l) marg + in let macc = Alloc.join [ Alloc.disallow_right mret; @@ -1714,12 +1749,12 @@ let rec instance_prim_locals locals mvar macc finalret ty = in let mret = match locals with - | [] -> with_locality finalret mret + | [] -> with_locality_and_yielding (loc, yld) mret | _ :: _ -> let mret', _ = Alloc.newvar_above macc in (* curried arrow *) mret' in - let ret = instance_prim_locals locals mvar macc finalret ret in + let ret = instance_prim_locals locals mvar_l mvar_y macc (loc, yld) ret in newty2 ~level:(get_level ty) (Tarrow ((lbl,marg,mret),arg,ret, commu)) | _ :: _, _ -> assert false | [], _ -> @@ -1796,18 +1831,19 @@ let instance_prim_mode (desc : Primitive.description) ty = let is_poly = function Primitive.Prim_poly, _ -> true | _ -> false in if is_poly desc.prim_native_repr_res || List.exists is_poly desc.prim_native_repr_args then - let mode = Locality.newvar () in - let finalret = prim_mode (Some mode) desc.prim_native_repr_res in + let mode_l = Locality.newvar () in + let mode_y = Yielding.newvar () in + let finalret = prim_mode' (Some (mode_l, mode_y)) desc.prim_native_repr_res in instance_prim_locals desc.prim_native_repr_args - mode (Alloc.disallow_right Alloc.legacy) finalret ty, - Some mode + mode_l mode_y (Alloc.disallow_right Alloc.legacy) finalret ty, + Some mode_l, Some mode_y else - ty, None + ty, None, None let instance_prim (desc : Primitive.description) ty = let ty, sort = instance_prim_layout desc ty in - let ty, mode = instance_prim_mode desc ty in - ty, mode, sort + let ty, mode_l, mode_y = instance_prim_mode desc ty in + ty, mode_l, mode_y, sort (**** Instantiation with parameter substitution ****) @@ -2081,7 +2117,7 @@ let rec extract_concrete_typedecl env ty = end | Tpoly(ty, _) -> extract_concrete_typedecl env ty | Tarrow _ | Ttuple _ | Tunboxed_tuple _ | Tobject _ | Tfield _ | Tnil - | Tvariant _ | Tpackage _ -> Has_no_typedecl + | Tvariant _ | Tpackage _ | Tof_kind _ -> Has_no_typedecl | Tvar _ | Tunivar _ -> May_have_typedecl | Tlink _ | Tsubst _ -> assert false @@ -2195,7 +2231,7 @@ let contained_without_boxing env ty = List.map snd labeled_tys | Tpoly (ty, _) -> [ty] | Tvar _ | Tarrow _ | Ttuple _ | Tobject _ | Tfield _ | Tnil | Tlink _ - | Tsubst _ | Tvariant _ | Tunivar _ | Tpackage _ -> [] + | Tsubst _ | Tvariant _ | Tunivar _ | Tpackage _ | Tof_kind _ -> [] (* We use ty_prev to track the last type for which we found a definition, allowing us to return a type for which a definition was found even if @@ -2228,16 +2264,6 @@ let get_unboxed_type_approximation env ty = match get_unboxed_type_representation env ty with | Ok ty | Error ty -> ty -let tvariant_not_immediate row = - (* if all labels are devoid of arguments, not a pointer *) - (* CR layouts v5: Polymorphic variants with all void args can probably - be immediate, but we don't allow them to have void args right now. *) - not (row_closed row) - || List.exists - (fun (_,field) -> match row_field_repr field with - | Rpresent (Some _) | Reither (false, _, _) -> true - | _ -> false) - (row_fields row) (* forward declarations *) let type_equal' = ref (fun _ _ _ -> Misc.fatal_error "type_equal") @@ -2296,9 +2322,7 @@ let rec estimate_type_jkind ~expand_component env ty = | Tnil -> Jkind.Builtin.value ~why:Tnil | Tlink _ | Tsubst _ -> assert false | Tvariant row -> - if tvariant_not_immediate row - then Jkind.Builtin.value ~why:Polymorphic_variant - else Jkind.Builtin.immediate ~why:Immediate_polymorphic_variant + Jkind.for_boxed_row row | Tunivar { jkind } -> Jkind.disallow_right jkind | Tpoly (ty, _) -> let jkind_of_type = !type_jkind_purely_if_principal' env in @@ -2312,7 +2336,8 @@ let rec estimate_type_jkind ~expand_component env ty = down a test case that cares. *) Jkind.round_up ~jkind_of_type |> Jkind.disallow_right - | Tpackage _ -> Jkind.Builtin.value ~why:First_class_module + | Tof_kind jkind -> Jkind.mark_best jkind + | Tpackage _ -> Jkind.for_non_float ~why:First_class_module and close_open_jkind ~expand_component ~is_open env jkind = if is_open (* if the type has free variables, we can't let these leak into @@ -2566,6 +2591,14 @@ let check_type_nullability env ty null = | Ok () -> true | Error _ -> false +let check_type_separability env ty sep = + let upper_bound = + Jkind.set_separability_upper_bound (Jkind.Builtin.any ~why:Dummy_jkind) sep + in + match check_type_jkind env ty upper_bound with + | Ok () -> true + | Error _ -> false + let check_type_jkind_exn env texn ty jkind = match check_type_jkind env ty jkind with | Ok _ -> () @@ -4982,14 +5015,16 @@ let crossing_of_jkind env jkind = Jkind.get_mode_crossing ~jkind_of_type jkind let crossing_of_ty env ?modalities ty = - if not (is_principal ty) - then Crossing.top - else - let jkind = type_jkind_purely env ty in - let crossing = crossing_of_jkind env jkind in - match modalities with - | None -> crossing - | Some m -> Crossing.modality m crossing + let crossing = + if not (is_principal ty) + then Crossing.top + else + let jkind = type_jkind_purely env ty in + crossing_of_jkind env jkind + in + match modalities with + | None -> crossing + | Some m -> Crossing.modality m crossing let cross_left env ?modalities ty mode = let crossing = crossing_of_ty env ?modalities ty in @@ -5523,6 +5558,9 @@ let rec eqtype rename type_pairs subst env ~do_jkind_check t1 t2 = eqtype_subst type_pairs subst t1 k1 t2 k2 ~do_jkind_check | (Tconstr (p1, [], _), Tconstr (p2, [], _)) when Path.same p1 p2 -> () + | (Tof_kind k1, Tof_kind k2) -> + if not (Jkind.equal k1 k2) + then raise_for Equality (Unequal_tof_kind_jkinds (k1, k2)) | _ -> let t1' = expand_head_rigid env t1 in let t2' = expand_head_rigid env t2 in @@ -6295,8 +6333,7 @@ let rec build_subtype env (visited : transient_expr list) let (t1', c) = build_subtype env visited loops posi level t1 in if c > Unchanged then (newty (Tpoly(t1', tl)), c) else (t, Unchanged) - | Tunivar _ | Tpackage _ -> - (t, Unchanged) + | Tunivar _ | Tpackage _ | Tof_kind _ -> (t, Unchanged) and build_subtype_tuple env visited loops posi level t labeled_tlist constructor = @@ -6439,7 +6476,7 @@ let rec subtype_rec env trace t1 t2 cstrs = | (Tpoly (u1, []), Tpoly (u2, [])) -> subtype_rec env trace u1 u2 cstrs | (Tpoly (u1, tl1), Tpoly (u2, [])) -> - let _, u1' = instance_poly ~fixed:false tl1 u1 in + let u1' = instance_poly tl1 u1 in subtype_rec env trace u1' u2 cstrs | (Tpoly (u1, tl1), Tpoly (u2,tl2)) -> begin try diff --git a/upstream/ocaml_flambda/typing/ctype.mli b/upstream/ocaml_flambda/typing/ctype.mli index 689088176..030aad7af 100644 --- a/upstream/ocaml_flambda/typing/ctype.mli +++ b/upstream/ocaml_flambda/typing/ctype.mli @@ -213,9 +213,15 @@ val instance_class: type_expr list -> class_type -> type_expr list * class_type val instance_poly: - ?keep_names:bool -> fixed:bool -> - type_expr list -> type_expr -> type_expr list * type_expr + ?keep_names:bool -> + type_expr list -> type_expr -> type_expr (* Take an instance of a type scheme containing free univars *) +val instance_poly_fixed: + ?keep_names:bool -> + type_expr list -> type_expr -> type_expr list * type_expr + (* Take an instance of a type scheme containing free univars for + checking that an expression matches this scheme. *) + val polyfy: Env.t -> type_expr -> type_expr list -> type_expr * bool val instance_label: fixed:bool -> @@ -226,7 +232,8 @@ val prim_mode : -> (Mode.allowed * 'r) Mode.Locality.t val instance_prim: Primitive.description -> type_expr -> - type_expr * Mode.Locality.lr option * Jkind.Sort.t option + type_expr * Mode.Locality.lr option + * Mode.Yielding.lr option * Jkind.Sort.t option (** Given (a @ m1 -> b -> c) @ m0, where [m0] and [m1] are modes expressed by user-syntax, [curry_mode m0 m1] gives the mode we implicitly interpret b->c @@ -534,6 +541,8 @@ val free_variables: ?env:Env.t -> type_expr -> type_expr list 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 free_variable_set_of_list: Env.t -> type_expr list -> Btype.TypeSet.t + (* post-condition: all elements in the set are Tvars *) val exists_free_variable : (type_expr -> jkind_lr -> bool) -> type_expr -> bool (* Check if there exists a free variable that satisfies the @@ -597,10 +606,6 @@ val contained_without_boxing : Env.t -> type_expr -> type_expr list (or "without indirection" or "flatly"); in the case of [@@unboxed] existentials, these types might have free variables*) -(* Given the row from a variant type, determine if it is immediate. Currently - just checks that all constructors have no arguments, doesn't consider - void. *) -val tvariant_not_immediate : row_desc -> bool (* Cheap upper bound on jkind. Will not expand unboxed types - call [type_jkind] if that's needed. *) @@ -666,6 +671,12 @@ val check_type_externality : val check_type_nullability : Env.t -> type_expr -> Jkind_axis.Nullability.t -> bool +(* Check whether a type's separability is less than some target. + Potentially cheaper than just calling [type_jkind], because this can stop + expansion once it succeeds. *) +val check_type_separability : + Env.t -> type_expr -> Jkind_axis.Separability.t -> bool + (* This function should get called after a type is generalized. It does two things: diff --git a/upstream/ocaml_flambda/typing/datarepr.ml b/upstream/ocaml_flambda/typing/datarepr.ml index a6cc4b1ce..9415ce1e0 100644 --- a/upstream/ocaml_flambda/typing/datarepr.ml +++ b/upstream/ocaml_flambda/typing/datarepr.ml @@ -29,12 +29,12 @@ let free_vars ?(param=false) ty = | Tvar _ -> ret := TypeSet.add ty !ret | Tvariant row -> - iter_row loop row; - if not (static_row row) then begin - match get_desc (row_more row) with - | Tvar _ when param -> ret := TypeSet.add ty !ret - | _ -> loop (row_more row) - end + iter_row loop row; + if not (static_row row) then begin + match get_desc (row_more row) with + | Tvar _ when param -> ret := TypeSet.add ty !ret + | _ -> loop (row_more row) + end (* XXX: What about Tobject ? *) | _ -> iter_type_expr loop ty diff --git a/upstream/ocaml_flambda/typing/datarepr.mli b/upstream/ocaml_flambda/typing/datarepr.mli index 606fa6eab..053e2aded 100644 --- a/upstream/ocaml_flambda/typing/datarepr.mli +++ b/upstream/ocaml_flambda/typing/datarepr.mli @@ -19,7 +19,7 @@ open Types val extension_descr: - current_unit:Compilation_unit.t option -> Path.t -> extension_constructor -> + current_unit:Unit_info.t option -> Path.t -> extension_constructor -> constructor_description val labels_of_type: @@ -29,7 +29,7 @@ val unboxed_labels_of_type: Path.t -> type_declaration -> (Ident.t * unboxed_label_description) list val constructors_of_type: - current_unit:Compilation_unit.t option -> Path.t -> type_declaration -> + current_unit:Unit_info.t option -> Path.t -> type_declaration -> (Ident.t * constructor_description) list diff --git a/upstream/ocaml_flambda/typing/env.ml b/upstream/ocaml_flambda/typing/env.ml index ba56f9201..784942c3f 100644 --- a/upstream/ocaml_flambda/typing/env.ml +++ b/upstream/ocaml_flambda/typing/env.ml @@ -127,9 +127,6 @@ let label_usage_complaint priv mut lu let used_labels : label_usage usage_tbl ref = s_table Types.Uid.Tbl.create 16 -let used_unboxed_labels : label_usage usage_tbl ref = - s_table Types.Uid.Tbl.create 16 - (** Map indexed by the name of module components. *) module NameMap = String.Map @@ -719,7 +716,8 @@ and label_data = label_description and type_data = { tda_declaration : type_declaration; tda_descriptions : type_descriptions; - tda_shape : Shape.t; } + tda_shape : Shape.t; + tda_unboxed_version_descriptions : type_descriptions option } and module_data = { mda_declaration : Subst.Lazy.module_declaration; @@ -782,7 +780,7 @@ type lookup_error = | Unbound_value of Longident.t * unbound_value_hint | Unbound_type of Longident.t | Unbound_constructor of Longident.t - | Unbound_label of (Longident.t * record_form_packed) + | Unbound_label of Longident.t * record_form_packed * label_usage | Unbound_module of Longident.t | Unbound_class of Longident.t | Unbound_modtype of Longident.t @@ -805,14 +803,14 @@ type lookup_error = Mode.Value.Comonadic.error * closure_context | Local_value_used_in_exclave of lock_item * Longident.t | Non_value_used_in_object of Longident.t * type_expr * Jkind.Violation.t - | No_unboxed_version of Longident.t + | No_unboxed_version of Longident.t * type_declaration | Error_from_persistent_env of Persistent_env.error type error = | Missing_module of Location.t * Path.t * Path.t | Illegal_value_name of Location.t * string | Lookup_error of Location.t * t * lookup_error - | Incomplete_instantiation of { unset_param : Global_module.Name.t } + | Incomplete_instantiation of { unset_param : Global_module.Parameter_name.t } exception Error of error @@ -831,14 +829,6 @@ let mode_default mode = { context = None } -let used_labels_by_form (type rep) (record_form : rep record_form) = - match record_form with - | Legacy -> !used_labels - | Unboxed_product -> !used_unboxed_labels - -let find_used_label_by_uid (type rep) (record_form : rep record_form) uid = - Types.Uid.Tbl.find (used_labels_by_form record_form) uid - let env_labels (type rep) (record_form : rep record_form) env : rep gen_label_description TycompTbl.t = match record_form with @@ -1017,18 +1007,22 @@ let rec address_head = function (* The name of the compilation unit currently compiled. *) module Current_unit_name : sig - val get : unit -> Compilation_unit.t option - val set : Compilation_unit.t option -> unit + val get : unit -> Unit_info.t option + val set : Unit_info.t option -> unit val is : string -> bool val is_ident : Ident.t -> bool val is_path : Path.t -> bool end = struct + let current_unit : Unit_info.t option ref = + ref None let get () = - Compilation_unit.get_current () - let set comp_unit = - Compilation_unit.set_current comp_unit + !current_unit + let set unit_info = + current_unit := unit_info + let get_cu () = + Option.map Unit_info.modname (get ()) let get_name () = - Option.map Compilation_unit.name (get ()) + Option.map Compilation_unit.name (get_cu ()) let is name = let current_name_string = Option.map Compilation_unit.Name.to_string (get_name ()) @@ -1188,11 +1182,10 @@ let reset_declaration_caches () = Types.Uid.Tbl.clear !module_declarations; Types.Uid.Tbl.clear !used_constructors; Types.Uid.Tbl.clear !used_labels; - Types.Uid.Tbl.clear !used_unboxed_labels; () let reset_cache ~preserve_persistent_env = - Compilation_unit.set_current None; + Current_unit_name.set None; if not preserve_persistent_env then Persistent_env.clear !persistent_env; reset_declaration_caches (); @@ -1368,6 +1361,7 @@ let type_of_cstr path = function tda_declaration = decl; tda_descriptions = Type_record (labels, repr, umc); tda_shape = Shape.leaf decl.type_uid; + tda_unboxed_version_descriptions = None; } | _ -> assert false end @@ -1404,6 +1398,7 @@ let rec find_type_data path env seen = tda_declaration = decl; tda_descriptions = Type_abstract (Btype.type_origin decl); tda_shape = Shape.leaf decl.type_uid; + tda_unboxed_version_descriptions = None; } | exception Not_found -> begin match path with @@ -1482,17 +1477,15 @@ and find_type_unboxed_version path env seen = and find_type_unboxed_version_data path env seen = let tda_declaration = find_type_unboxed_version path env seen in let descrs = - match tda_declaration.type_kind with - | Type_abstract r -> Type_abstract r - | Type_record_unboxed_product _ - | Type_open | Type_record _ | Type_variant _ -> - Misc.fatal_error - "Env.find_type_data: unexpected unboxed version kind" + match (find_type_data path env seen).tda_unboxed_version_descriptions with + | Some descrs -> descrs + | None -> Type_abstract Definition (* path is an alias *) in { tda_declaration; tda_descriptions = descrs; - tda_shape = Shape.leaf tda_declaration.type_uid + tda_shape = Shape.leaf tda_declaration.type_uid; + tda_unboxed_version_descriptions = None } let find_modtype_lazy path env = @@ -2165,14 +2158,16 @@ let rec components_of_module_maker | Type_open -> Type_open in let descrs = store_decl path final_decl in - ignore - (Option.map (store_decl (Path.unboxed_version path)) - final_decl.type_unboxed_version); + let unboxed_descrs = + Option.map (store_decl (Path.unboxed_version path)) + final_decl.type_unboxed_version + in let shape = Shape.proj cm_shape (Shape.Item.type_ id) in let tda = { tda_declaration = final_decl; tda_descriptions = descrs; - tda_shape = shape; } + tda_shape = shape; + tda_unboxed_version_descriptions = unboxed_descrs } in c.comp_types <- NameMap.add (Ident.name id) tda c.comp_types; env := store_type_infos ~tda_shape:shape id decl !env @@ -2373,9 +2368,20 @@ and store_label let loc = lbl.lbl_loc in let mut = lbl.lbl_mut in let k = lbl.lbl_uid in - if not (Types.Uid.Tbl.mem (used_labels_by_form record_form) k) then + match k with + | Unboxed_version k_boxed -> + (* Never warn if an unboxed version of a label is unused, but its uses + count as uses of the boxed version. *) + begin match Types.Uid.Tbl.find_opt !used_labels k_boxed with + | Some boxed_usages -> + Types.Uid.Tbl.add !used_labels k boxed_usages + | None -> + () + end + | _ -> + if not (Types.Uid.Tbl.mem !used_labels k) then let used = label_usages () in - Types.Uid.Tbl.add (used_labels_by_form record_form) k + Types.Uid.Tbl.add !used_labels k (add_label_usage used); if not (ty_name = "" || ty_name.[0] = '_' || name.[0] = '_') then !add_delayed_check_forward @@ -2433,10 +2439,20 @@ and store_type ~check id info shape env = | Type_open -> Type_open, env in let descrs, env = store_decl (Pident id) info env in + let unboxed_descrs, env = + match info.type_unboxed_version with + | Some uinfo -> + let unboxed_descrs, env = + store_decl (Path.unboxed_version (Pident id)) uinfo env + in + Some unboxed_descrs, env + | None -> None, env + in let tda = { tda_declaration = info; tda_descriptions = descrs; - tda_shape = shape } + tda_shape = shape; + tda_unboxed_version_descriptions = unboxed_descrs } in Builtin_attributes.mark_alerts_used info.type_attributes; { env with @@ -2453,7 +2469,10 @@ and store_type_infos ~tda_shape id info env = { tda_declaration = info; tda_descriptions = Type_abstract (Btype.type_origin info); - tda_shape + tda_shape; + tda_unboxed_version_descriptions = + Option.map (fun uinfo -> Type_abstract (Btype.type_origin uinfo)) + info.type_unboxed_version; } in { env with @@ -2980,8 +2999,8 @@ let mark_extension_used usage ext = | mark -> mark usage | exception Not_found -> () -let mark_label_used record_form usage ld = - match find_used_label_by_uid record_form ld.ld_uid with +let mark_label_used usage ld = + match Types.Uid.Tbl.find !used_labels ld.ld_uid with | mark -> mark usage | exception Not_found -> () @@ -2992,14 +3011,14 @@ let mark_constructor_description_used usage env cstr = | mark -> mark usage | exception Not_found -> () -let mark_label_description_used record_form usage env lbl = +let mark_label_description_used usage env lbl = let ty_path = match get_desc lbl.lbl_res with | Tconstr(path, _, _) -> path | _ -> assert false in mark_type_path_used env ty_path; - match find_used_label_by_uid record_form lbl.lbl_uid with + match Types.Uid.Tbl.find !used_labels lbl.lbl_uid with | mark -> mark usage | exception Not_found -> () @@ -3108,9 +3127,9 @@ let use_cltype ~use ~loc path desc = (Path.name path) end -let use_label ~record_form ~use ~loc usage env lbl = +let use_label ~use ~loc usage env lbl = if use then begin - mark_label_description_used record_form usage env lbl; + mark_label_description_used usage env lbl; Builtin_attributes.check_alerts loc lbl.lbl_attributes lbl.lbl_name; if is_mutating_label_usage usage then Builtin_attributes.check_deprecated_mutable loc lbl.lbl_attributes @@ -3200,7 +3219,7 @@ let share_mode ~errors ~env ~loc ~item ~lid vmode shared_context = (Once_value_used_in (item, lid, shared_context)) | Ok () -> let mode = - Mode.Value.join_with (Monadic Uniqueness) Mode.Uniqueness.Const.Aliased + Mode.Value.join_with Uniqueness Mode.Uniqueness.Const.Aliased vmode.mode in {mode; context = Some shared_context} @@ -3333,12 +3352,13 @@ let lookup_all_ident_labels (type rep) ~(record_form : rep record_form) ~errors ~use ~loc usage s env = match find_all_labels ~record_form ~mark:use s env with | [] -> - may_lookup_error errors loc env (Unbound_label (Lident s, P record_form)) + may_lookup_error errors loc env + (Unbound_label (Lident s, P record_form, usage)) | lbls -> begin List.map (fun (lbl, use_fn) -> let use_fn () = - use_label ~record_form ~use ~loc usage env lbl; + use_label ~use ~loc usage env lbl; use_fn () in (lbl, use_fn)) @@ -3534,11 +3554,11 @@ let lookup_all_dot_labels ~record_form ~errors ~use ~loc usage l s env = match NameMap.find s (comp_labels record_form comps) with | [] | exception Not_found -> may_lookup_error errors loc env - (Unbound_label (Ldot(l, s), P record_form)) + (Unbound_label (Ldot(l, s), P record_form, usage)) | lbls -> List.map (fun lbl -> - let use_fun () = use_label ~record_form ~use ~loc usage env lbl in + let use_fun () = use_label ~use ~loc usage env lbl in (lbl, use_fun)) lbls @@ -3805,12 +3825,13 @@ let lookup_type ~errors ~use ~loc lid env = | Some lid -> (* To get the hash version, look up without the hash, then look for the unboxed version *) - let path, _ = lookup_type_full ~errors ~use ~loc lid env in + let path, data = lookup_type_full ~errors ~use ~loc lid env in match find_type_unboxed_version path env Path.Set.empty with | decl -> Path.unboxed_version path, decl | exception Not_found -> - may_lookup_error errors loc env (No_unboxed_version lid) + may_lookup_error errors loc env + (No_unboxed_version (lid, data.tda_declaration)) let lookup_modtype_lazy ~errors ~use ~loc lid env = match lid with @@ -3865,13 +3886,13 @@ let lookup_all_labels_from_type (type rep) ~use ~(record_form : rep record_form) | (Type_record (lbls, _, _), Legacy) -> List.map (fun lbl -> - let use_fun () = use_label ~record_form ~use ~loc usage env lbl in + let use_fun () = use_label ~use ~loc usage env lbl in (lbl, use_fun)) lbls | (Type_record_unboxed_product (lbls, _, _), Unboxed_product) -> List.map (fun lbl -> - let use_fun () = use_label ~record_form ~use ~loc usage env lbl in + let use_fun () = use_label ~use ~loc usage env lbl in (lbl, use_fun)) lbls | (Type_record (_, _, _), Unboxed_product) -> [] @@ -4442,7 +4463,7 @@ let report_lookup_error _loc env ppf = function fprintf ppf "Unbound constructor %a" (Style.as_inline_code !print_longident) lid; spellcheck ppf extract_constructors env lid; - | Unbound_label (lid, record_form) -> + | Unbound_label (lid, record_form, usage) -> let P record_form = record_form in fprintf ppf "Unbound %s field %a" (record_form_to_string record_form) @@ -4461,7 +4482,25 @@ let report_lookup_error _loc env ppf = function (match label_of_other_form with | Some other_form -> Format.fprintf ppf - "@\n@{Hint@}: There is %s field with this name." other_form + "@\n@{Hint@}: @[There is %s field with this name." other_form; + (match record_form, usage with + | Unboxed_product, _ -> + (* If an unboxed field isn't in scope but a boxed field is, then + the boxed field must come from a record that didn't get an unboxed + version. *) + Format.fprintf ppf + "@ Note that float- and [%@%@unboxed]- records don't get unboxed \ + versions." + | Legacy, Projection -> + let print_projection ppf (op, lid) = + fprintf ppf "%s%a" op !print_longident lid + in + fprintf ppf "@ To project an unboxed record field, use %a instead of \ + %a." + (Style.as_inline_code print_projection) (".#", lid) + (Style.as_inline_code print_projection) (".", lid) + | _ -> ()); + Format.fprintf ppf "@]" | None -> ()); | Unbound_class lid -> begin fprintf ppf "Unbound class %a" @@ -4563,6 +4602,9 @@ let report_lookup_error _loc env ppf = function | Error (Linearity, _) -> "once", "is many" | Error (Portability, _) -> "nonportable", "is portable" | Error (Yielding, _) -> "yielding", "may not yield" + | Error (Statefulness, {left; right}) -> + asprintf "%a" Mode.Statefulness.Const.print left, + asprintf "is %a" Mode.Statefulness.Const.print right in let s, hint = match context with @@ -4600,9 +4642,21 @@ let report_lookup_error _loc env ppf = function (Style.as_inline_code !print_longident) lid (fun v -> Jkind.Violation.report_with_offender ~offender:(fun ppf -> !print_type_expr ppf typ) v) err - | No_unboxed_version lid -> + | No_unboxed_version (lid, decl) -> fprintf ppf "@[The type %a has no unboxed version.@]" - (Style.as_inline_code !print_longident) lid + (Style.as_inline_code !print_longident) lid; + begin match decl.type_kind with + | Type_record (_, Record_unboxed, _) -> + fprintf ppf + "@.@[@{Hint@}: \ + [%@%@unboxed] records don't get unboxed versions.@]" + | Type_record (_, (Record_float | Record_ufloat | Record_mixed _), _) -> + fprintf ppf + "@.@[@{Hint@}: Float records don't get unboxed versions.@]"; + | Type_record_unboxed_product _ -> + fprintf ppf "@.@[@{Hint@}: It is already an unboxed record.@]"; + | _ -> () + end | Error_from_persistent_env err -> Persistent_env.report_error ppf err @@ -4627,7 +4681,7 @@ let report_error ppf = function | Incomplete_instantiation { unset_param } -> fprintf ppf "@[Not enough instance arguments: the parameter@ %a@ is \ required.@]" - Global_module.Name.print unset_param + Global_module.Parameter_name.print unset_param let () = Location.register_error_of_exn @@ -4649,3 +4703,9 @@ let () = | _ -> None ) + +let () = + let get_current_compilation_unit () = + Option.map Unit_info.modname (get_unit_name ()) + in + Compilation_unit.Private.fwd_get_current := get_current_compilation_unit diff --git a/upstream/ocaml_flambda/typing/env.mli b/upstream/ocaml_flambda/typing/env.mli index c6d61a61b..bad3329b3 100644 --- a/upstream/ocaml_flambda/typing/env.mli +++ b/upstream/ocaml_flambda/typing/env.mli @@ -171,7 +171,7 @@ val mark_extension_used: type label_usage = Projection | Mutation | Construct | Exported_private | Exported val mark_label_used: - _ record_form -> label_usage -> label_declaration -> unit + label_usage -> label_declaration -> unit (* Lookup by long identifiers *) @@ -233,7 +233,7 @@ type lookup_error = | Unbound_value of Longident.t * unbound_value_hint | Unbound_type of Longident.t | Unbound_constructor of Longident.t - | Unbound_label of (Longident.t * record_form_packed) + | Unbound_label of Longident.t * record_form_packed * label_usage | Unbound_module of Longident.t | Unbound_class of Longident.t | Unbound_modtype of Longident.t @@ -255,7 +255,7 @@ type lookup_error = | Value_used_in_closure of lock_item * Longident.t * Mode.Value.Comonadic.error * closure_context | Local_value_used_in_exclave of lock_item * Longident.t | Non_value_used_in_object of Longident.t * type_expr * Jkind.Violation.t - | No_unboxed_version of Longident.t + | No_unboxed_version of Longident.t * type_declaration | Error_from_persistent_env of Persistent_env.error val lookup_error: Location.t -> t -> lookup_error -> 'a @@ -518,8 +518,8 @@ val reset_cache: preserve_persistent_env:bool -> unit val reset_cache_toplevel: unit -> unit (* Remember the name of the current compilation unit. *) -val set_unit_name: Compilation_unit.t option -> unit -val get_unit_name: unit -> Compilation_unit.t option +val set_unit_name: Unit_info.t option -> unit +val get_unit_name: unit -> Unit_info.t option (* Read, save a signature to/from a file. *) val read_signature: @@ -539,7 +539,7 @@ val save_signature_with_imports: file name, imported units with their CRCs. *) (* Register a module as a parameter to this unit. *) -val register_parameter: Global_module.Name.t -> unit +val register_parameter: Global_module.Parameter_name.t -> unit (* Return the CRC of the interface of the given compilation unit *) val crc_of_unit: Compilation_unit.Name.t -> Digest.t @@ -559,7 +559,7 @@ val is_bound_to_runtime_parameter: Ident.t -> bool (* Return the list of parameters specified for the current unit, in alphabetical order *) -val parameters: unit -> Global_module.Name.t list +val parameters: unit -> Global_module.Parameter_name.t list (* [is_imported_opaque md] returns true if [md] is an opaque imported module *) val is_imported_opaque: Compilation_unit.Name.t -> bool @@ -573,7 +573,8 @@ val is_parameter_unit: Global_module.Name.t -> bool (* [implemented_parameter md] is the argument given to -as-argument-for when [md] was compiled *) -val implemented_parameter: Global_module.Name.t -> Global_module.Name.t option +val implemented_parameter: + Global_module.Name.t -> Global_module.Parameter_name.t option (* [is_imported_parameter md] is true if [md] has been imported and is a parameter to this module *) @@ -597,7 +598,7 @@ type error = | Missing_module of Location.t * Path.t * Path.t | Illegal_value_name of Location.t * string | Lookup_error of Location.t * t * lookup_error - | Incomplete_instantiation of { unset_param : Global_module.Name.t; } + | Incomplete_instantiation of { unset_param : Global_module.Parameter_name.t; } exception Error of error diff --git a/upstream/ocaml_flambda/typing/errortrace.ml b/upstream/ocaml_flambda/typing/errortrace.ml index 2e37dc489..030935a01 100644 --- a/upstream/ocaml_flambda/typing/errortrace.ml +++ b/upstream/ocaml_flambda/typing/errortrace.ml @@ -112,6 +112,7 @@ type ('a, 'variety) elt = | Bad_jkind_sort : type_expr * Jkind.Violation.t -> ('a, _) elt | Unequal_var_jkinds : type_expr * jkind_lr * type_expr * jkind_lr -> ('a, _) elt + | Unequal_tof_kind_jkinds : jkind_lr * jkind_lr -> ('a, _) elt type ('a, 'variety) t = ('a, 'variety) elt list @@ -128,6 +129,7 @@ let map_elt (type variety) f : ('a, variety) elt -> ('b, variety) elt = function | Bad_jkind _ as x -> x | Bad_jkind_sort _ as x -> x | Unequal_var_jkinds _ as x -> x + | Unequal_tof_kind_jkinds _ as x -> x let map f t = List.map (map_elt f) t diff --git a/upstream/ocaml_flambda/typing/errortrace.mli b/upstream/ocaml_flambda/typing/errortrace.mli index 3b20ec703..10f5281c3 100644 --- a/upstream/ocaml_flambda/typing/errortrace.mli +++ b/upstream/ocaml_flambda/typing/errortrace.mli @@ -97,6 +97,7 @@ type ('a, 'variety) elt = | Bad_jkind_sort : type_expr * Jkind.Violation.t -> ('a, _) elt | Unequal_var_jkinds : type_expr * jkind_lr * type_expr * jkind_lr -> ('a, _) elt + | Unequal_tof_kind_jkinds : jkind_lr * jkind_lr -> ('a, _) elt type ('a, 'variety) t = ('a, 'variety) elt list diff --git a/upstream/ocaml_flambda/typing/global_module.ml b/upstream/ocaml_flambda/typing/global_module.ml index 3dafe27d8..01645d583 100644 --- a/upstream/ocaml_flambda/typing/global_module.ml +++ b/upstream/ocaml_flambda/typing/global_module.ml @@ -1,52 +1,72 @@ -[@@@ocaml.warning "+a-40-41-42"] +module Parameter_name = struct + type t = string + + let of_string t = t + + let to_string t = t + + include Identifiable.Make (struct + type nonrec t = t + + let compare = String.compare + + let equal a b = compare a b = 0 + + let print = Format.pp_print_string + + let output = print |> Misc.output_of_print + + let hash = Hashtbl.hash + end) +end let pp_concat pp ppf list = Format.pp_print_list ~pp_sep:Format.pp_print_cut pp ppf list -type ('name, 'value) duplicate = - | Duplicate of { name : 'name; value1 : 'value; value2 : 'value } +type 'value duplicate = + | Duplicate of { name : Parameter_name.t; value1 : 'value; value2 : 'value } module Argument = struct - type ('param, 'value) t = { - param : 'param; + type 'value t = { + param : Parameter_name.t; value : 'value; } - let compare cmp_param cmp_value + let compare cmp_value ({ param = param1; value = value1 } as t1) ({ param = param2; value = value2 } as t2) = if t1 == t2 then 0 else - match cmp_param param1 param2 with + match Parameter_name.compare param1 param2 with | 0 -> cmp_value value1 value2 | c -> c + + let compare_by_param t1 t2 = Parameter_name.compare t1.param t2.param end -let check_uniqueness_of_sorted l ~cmp = +let check_uniqueness_of_sorted l = let rec loop n1 v1 l = - match (l : (_, _) Argument.t list) with + match (l : _ Argument.t list) with | [] -> Ok () | { param = n2; value = v2 } :: l -> - if cmp n1 n2 = 0 then + if Parameter_name.compare n1 n2 = 0 then Error (Duplicate { name = n1; value1 = v1; value2 = v2 }) else loop n2 v2 l in - match (l : (_, _) Argument.t list) with + match (l : _ Argument.t list) with | [] -> Ok () | { param = n1; value = v1 } :: l -> loop n1 v1 l -let sort_and_check_uniqueness l ~cmp = - let open Argument in - let l = List.stable_sort (fun arg1 arg2 -> cmp arg1.param arg2.param) l in - check_uniqueness_of_sorted l ~cmp |> Result.map (fun () -> l) +let sort_and_check_uniqueness l = + let l = List.stable_sort Argument.compare_by_param l in + check_uniqueness_of_sorted l |> Result.map (fun () -> l) -let check_uniqueness_of_merged (type n v) - (l1 : (n, v) Argument.t list) l2 ~(cmp : n -> n -> int) = +let check_uniqueness_of_merged (type v) l1 l2 = let open Argument in - let exception Found_duplicate of (n, v) duplicate in + let exception Found_duplicate of v duplicate in match Misc.Stdlib.List.merge_iter l1 l2 - ~cmp:(fun arg1 arg2 -> cmp arg1.param arg2.param) + ~cmp:Argument.compare_by_param ~left_only:ignore ~right_only:ignore ~both:(fun { param = name; value = value1 } { value = value2; _ } -> @@ -60,16 +80,22 @@ module Name : sig head : string; args : argument list; } - and argument = (t, t) Argument.t + and argument = t Argument.t - val create : string -> argument list -> (t, (t, t) duplicate) Result.t + val create : string -> argument list -> (t, t duplicate) Result.t val create_exn : string -> argument list -> t val create_no_args : string -> t + val of_parameter_name : Parameter_name.t -> t + val unsafe_create_unchecked : string -> argument list -> t + val find_in_parameter_map : t -> 'a Parameter_name.Map.t -> 'a option + + val mem_parameter_set : t -> Parameter_name.Set.t -> bool + val to_string : t -> string include Identifiable.S with type t := t @@ -78,7 +104,7 @@ end = struct head : string; args : argument list; } - and argument = (t, t) Argument.t + and argument = t Argument.t include Identifiable.Make (struct type nonrec t = t @@ -91,7 +117,8 @@ end = struct match String.compare head1 head2 with | 0 -> List.compare compare_arg args1 args2 | c -> c - and compare_arg arg1 arg2 = Argument.compare compare compare arg1 arg2 + + and compare_arg arg1 arg2 = Argument.compare compare arg1 arg2 let equal t1 t2 = compare t1 t2 = 0 @@ -105,7 +132,7 @@ end = struct head (pp_concat print_arg_pair) args and print_arg_pair ppf ({ param = name; value = arg } : argument) = - Format.fprintf ppf "[%a:%a]" print name print arg + Format.fprintf ppf "[%a:%a]" Parameter_name.print name print arg let output = print |> Misc.output_of_print @@ -113,7 +140,7 @@ end = struct end) let create head args = - sort_and_check_uniqueness args ~cmp:compare + sort_and_check_uniqueness args |> Result.map (fun args -> { head; args }) let create_exn head args = @@ -125,51 +152,84 @@ end = struct let create_no_args head = create_exn head [] + let of_parameter_name param = create_no_args param + let unsafe_create_unchecked head args = { head; args } - let to_string = print |> Misc.to_string_of_print -end + let unsafe_to_parameter_name_opt t = + (* Only safe for use as a lookup key, since it might actually not be a + parameter name *) + match t with + | { head; args = [] } -> Some head + | _ -> None -let compare_arg_name arg1 arg2 = - let open Argument in - Name.compare arg1.param arg2.param + let find_in_parameter_map t map = + match unsafe_to_parameter_name_opt t with + | Some param -> Parameter_name.Map.find_opt param map + | None -> None -let rec list_similar f list1 list2 = - match list1, list2 with - | [], [] -> true - | a :: list1, b :: list2 -> f a b && list_similar f list1 list2 - | (_ :: _), [] | [], (_ :: _) -> false + let mem_parameter_set t set = + match unsafe_to_parameter_name_opt t with + | Some param -> Parameter_name.Set.mem param set + | None -> false + + let to_string = print |> Misc.to_string_of_print +end module T0 : sig type t = private { head : string; visible_args : argument list; + (* CR-someday lmaurer: Could just be the parameter names *) hidden_args : argument list; } - and argument = (Name.t, t) Argument.t + + and argument = t Argument.t include Identifiable.S with type t := t val create : string -> argument list - -> hidden_args:argument list - -> (t, (Name.t, t) duplicate) Result.t + -> hidden_args:Parameter_name.t list + -> (t, t duplicate) Result.t val create_exn : string -> argument list - -> hidden_args:argument list + -> hidden_args:Parameter_name.t list -> t val to_name : t -> Name.t + + val unsafe_create_unchecked + : string + -> argument list + -> hidden_args:argument list + -> t end = struct type t = { head : string; visible_args : argument list; hidden_args : argument list; } - and argument = (Name.t, t) Argument.t + and argument = t Argument.t + + let rec print ppf { head; visible_args; hidden_args } = + let hidden_args = + (* Assume the value is just the name (because it is) *) + List.map (fun ({ param; value = _ } : argument) -> param) hidden_args + in + print_syntax ppf ~head ~visible_args ~hidden_args + and print_syntax ppf ~head ~visible_args ~hidden_args = + Format.fprintf ppf "@[%s%a%a@]" + head + (pp_concat print_visible_pair) visible_args + (pp_concat print_hidden_pair) hidden_args + and print_visible_pair ppf ({ param = name; value } : argument) = + Format.fprintf ppf "[%a:%a]" Parameter_name.print name print value + and print_hidden_pair ppf name = + Format.fprintf ppf "{%a}" Parameter_name.print name include Identifiable.Make (struct type nonrec t = t @@ -186,44 +246,30 @@ end = struct | c -> c end | c -> c - and compare_pairs arg1 arg2 = Argument.compare Name.compare compare arg1 arg2 + + and compare_pairs arg1 arg2 = Argument.compare compare arg1 arg2 let equal t1 t2 = compare t1 t2 = 0 - let rec equal_looking t name = - let { head; visible_args; hidden_args } = t in - let { Name.head = name_head; args = name_args } = name in - hidden_args = [] - && String.equal head name_head - && list_similar equal_looking_args visible_args name_args - and equal_looking_args - ({ param = name1; value = value1 } : argument) - ({ param = name2; value = value2 } : Name.argument) = - Name.equal name1 name2 && equal_looking value1 value2 - - let rec print ppf { head; visible_args; hidden_args } = - Format.fprintf ppf "@[%s%a%a@]" - head - (pp_concat print_visible_pair) visible_args - (pp_concat print_hidden_pair) hidden_args - and print_visible_pair ppf ({ param = name; value } : argument) = - Format.fprintf ppf "[%a:%a]" Name.print name print value - and print_hidden_pair ppf ({ param = name; value } : argument) = - if equal_looking value name then - Format.fprintf ppf "{%a}" Name.print name - else - Format.fprintf ppf "{%a:%a}" Name.print name print value + let print = print let output = print |> Misc.output_of_print let hash = Hashtbl.hash end) + let of_parameter_name param = { head = param; hidden_args = []; visible_args = [] } + let create head visible_args ~hidden_args = + let hidden_args = + List.map + (fun param -> Argument.{ param; value = of_parameter_name param }) + hidden_args + in let (let*) = Result.bind in - let* visible_args = sort_and_check_uniqueness visible_args ~cmp:Name.compare in - let* hidden_args = sort_and_check_uniqueness hidden_args ~cmp:Name.compare in - let* () = check_uniqueness_of_merged visible_args hidden_args ~cmp:Name.compare in + let* visible_args = sort_and_check_uniqueness visible_args in + let* hidden_args = sort_and_check_uniqueness hidden_args in + let* () = check_uniqueness_of_merged visible_args hidden_args in Ok { head; visible_args; hidden_args } let create_exn head visible_args ~hidden_args = @@ -231,7 +277,10 @@ end = struct | Ok t -> t | Error (Duplicate _) -> Misc.fatal_errorf "Names of arguments and parameters must be unique:@ %a" - print { head; visible_args; hidden_args } + (fun ppf () -> print_syntax ppf ~head ~visible_args ~hidden_args) () + + let unsafe_create_unchecked head visible_args ~hidden_args = + { head; visible_args; hidden_args } (* CR-someday lmaurer: Should try and make this unnecessary or at least cheap. Could do it by making [Name.t] an unboxed existential so that converting from @@ -247,20 +296,24 @@ include T0 let to_string = print |> Misc.to_string_of_print -let all_args t = t.visible_args @ t.hidden_args - -module Subst = Name.Map +module Subst = Parameter_name.Map type subst = t Subst.t +let find_in_parameter_map t map = + match t with + | { head; visible_args = []; hidden_args = []; } -> + Parameter_name.Map.find_opt head map + | _ -> None + let rec subst0 (t : t) (s : subst) ~changed = - match Subst.find_opt (to_name t) s with + match find_in_parameter_map t s with | Some rhs -> changed := true; rhs | None -> subst0_inside t s ~changed and subst0_inside { head; visible_args; hidden_args } s ~changed = let matching_hidden_args, non_matching_hidden_args = List.partition_map (fun (({ param = name; value } : argument) as pair) -> - match Subst.find_opt (to_name value) s with + match find_in_parameter_map value s with | Some rhs -> changed := true; Left ({ param = name; value = rhs } : argument) @@ -268,11 +321,15 @@ and subst0_inside { head; visible_args; hidden_args } s ~changed = hidden_args in let visible_args = subst0_alist visible_args s ~changed in - let hidden_args = subst0_alist non_matching_hidden_args s ~changed in let visible_args = - List.merge compare_arg_name visible_args matching_hidden_args + List.merge Argument.compare_by_param visible_args matching_hidden_args + in + let hidden_args = + (* Don't bother substituting: these never have deeper structure *) + non_matching_hidden_args in - create_exn head visible_args ~hidden_args + (* The [List.merge] preserved sorting so everything must still be valid *) + unsafe_create_unchecked head visible_args ~hidden_args and subst0_alist l s ~changed = List.map (fun (arg : argument) -> { arg with value = subst0 arg.value s ~changed }) @@ -288,15 +345,15 @@ let subst_inside t s = let new_t = subst0_inside t s ~changed in if !changed then new_t else t -let check s args = +let check s params = (* This could do more - say, check that the replacement (the argument) has all the parameters of the original (the parameter). (The subset rule requires this, since an argument has to refer to the parameter it implements, and thus the parameter's parameters must include the argument's parameters.) It would be redundant with the checks implemented elsewhere but could still be helpful. *) - let param_set = List.map to_name args |> Name.Set.of_list in - Name.Set.subset (Name.Map.keys s) param_set + let param_set = Parameter_name.Set.of_list params in + Parameter_name.Set.subset (Parameter_name.Map.keys s) param_set let rec is_complete t = let open Argument in @@ -345,7 +402,7 @@ module With_precision = struct let rec meet glob1 glob2 = let visible_args_rev = Misc.Stdlib.List.merge_fold glob1.visible_args glob2.visible_args - ~cmp:compare_arg_name + ~cmp:Argument.compare_by_param ~init:[] ~left_only:(fun _ _ -> raise Inconsistent) ~right_only:(fun _ _ -> raise Inconsistent) @@ -354,7 +411,7 @@ module With_precision = struct let hidden_args_rev = (* Keep only the hidden arguments that appear in both lists *) Misc.Stdlib.List.merge_fold glob1.hidden_args glob2.hidden_args - ~cmp:compare_arg_name + ~cmp:Argument.compare_by_param ~init:[] ~left_only:(fun acc_rev _ -> acc_rev) ~right_only:(fun acc_rev _ -> acc_rev) @@ -363,9 +420,9 @@ module With_precision = struct meet_atom String.equal glob1.head glob2.head; let visible_args = List.rev visible_args_rev in let hidden_args = List.rev hidden_args_rev in - create_exn glob1.head visible_args ~hidden_args + unsafe_create_unchecked glob1.head visible_args ~hidden_args and meet_args (arg1 : _ Argument.t) (arg2 : _ Argument.t) = - meet_atom Name.equal arg1.param arg2.param; + meet_atom Parameter_name.equal arg1.param arg2.param; let value = meet arg1.value arg2.value in ({ param = arg1.param; value } : _ Argument.t) in diff --git a/upstream/ocaml_flambda/typing/global_module.mli b/upstream/ocaml_flambda/typing/global_module.mli index 567271b6b..08b330f42 100644 --- a/upstream/ocaml_flambda/typing/global_module.mli +++ b/upstream/ocaml_flambda/typing/global_module.mli @@ -1,11 +1,19 @@ -[@@@ocaml.warning "+a-9-40-41-42"] +module Parameter_name : sig + type t -type ('name, 'value) duplicate = - | Duplicate of { name : 'name; value1 : 'value; value2 : 'value } + val of_string : string -> t + + val to_string : t -> string + + include Identifiable.S with type t := t +end + +type 'value duplicate = + | Duplicate of { name : Parameter_name.t; value1 : 'value; value2 : 'value } module Argument : sig - type ('param, 'value) t = { - param : 'param; + type 'value t = { + param : Parameter_name.t; value : 'value; } end @@ -15,17 +23,25 @@ module Name : sig head : string; args : argument list; } - and argument = (t, t) Argument.t + and argument = t Argument.t include Identifiable.S with type t := t - val create : string -> argument list -> (t, (t, t) duplicate) Result.t + val create : string -> argument list -> (t, t duplicate) Result.t val create_exn : string -> argument list -> t val create_no_args : string -> t + val of_parameter_name : Parameter_name.t -> t + val to_string : t -> string + + (* Find this name in a map keyed by parameter names. Preferrable to converting + this to a [Parameter_name.t] since it may not in fact be a parameter name *) + val find_in_parameter_map : t -> 'a Parameter_name.Map.t -> 'a option + + val mem_parameter_set : t -> Parameter_name.Set.t -> bool end (** An elaborated form of name in which all arguments are expressed, including @@ -65,25 +81,22 @@ type t = private { visible_args : argument list; hidden_args : argument list; } -and argument = (Name.t, t) Argument.t +and argument = t Argument.t include Identifiable.S with type t := t val create - : string -> argument list -> hidden_args:argument list - -> (t, (Name.t, t) duplicate) Result.t + : string -> argument list -> hidden_args:Parameter_name.t list + -> (t, t duplicate) Result.t -val create_exn : string -> argument list -> hidden_args:argument list -> t +val create_exn : string -> argument list -> hidden_args:Parameter_name.t list -> t val to_string : t -> string val to_name : t -> Name.t -val all_args : t -> argument list - -(** A map from parameter names to their values. Hidden arguments aren't relevant - in the parameter names, so they're represented by [Name.t]s here. *) -type subst = t Name.Map.t +(** A map from parameter names to their values. *) +type subst = t Parameter_name.Map.t (** Apply a substitution to the given global. If it appears in the substitution directly (that is, its [Name.t] form is a key in the map), this simply @@ -100,10 +113,12 @@ val subst : t -> subst -> t * [ `Changed | `Did_not_change ] uninterestingly just the corresponding value. *) val subst_inside : t -> subst -> t +val find_in_parameter_map : t -> 'a Parameter_name.Map.t -> 'a option + (** Check that a substitution is a valid (possibly partial) instantiation of a module with the given parameter list. Each name being substituted must appear in the list. *) -val check : subst -> t list -> bool +val check : subst -> Parameter_name.t list -> bool (** Returns [true] if [hidden_args] is empty and all argument values (if any) are also complete. This is a stronger condition than full application, and diff --git a/upstream/ocaml_flambda/typing/includecore.ml b/upstream/ocaml_flambda/typing/includecore.ml index 2b21d5de9..3901a6123 100644 --- a/upstream/ocaml_flambda/typing/includecore.ml +++ b/upstream/ocaml_flambda/typing/includecore.ml @@ -146,37 +146,31 @@ let value_descriptions ~loc env name | Val_prim p1 -> begin match vd2.val_kind with | Val_prim p2 -> begin - let ty1_global, _, _ = Ctype.instance_prim p1 vd1.val_type in - let ty2_global = - let ty2, mode2, _ = Ctype.instance_prim p2 vd2.val_type in - Option.iter - (fun m -> Mode.Locality.submode_exn m Mode.Locality.global) - mode2; - ty2 - in - (try Ctype.moregeneral env true ty1_global ty2_global - with Ctype.Moregen err -> raise (Dont_match (Type err))); - let ty1_local, _, _ = Ctype.instance_prim p1 vd1.val_type in - let ty2_local = - let ty2, mode2, _ = Ctype.instance_prim p2 vd2.val_type in - Option.iter - (fun m -> Mode.Locality.submode_exn Mode.Locality.local m) - mode2; - ty2 - in - (try Ctype.moregeneral env true ty1_local ty2_local - with Ctype.Moregen err -> raise (Dont_match (Type err))); + let locality = [ Mode.Locality.global; Mode.Locality.local ] in + let yielding = [ Mode.Yielding.unyielding; Mode.Yielding.yielding ] in + List.iter (fun loc -> + List.iter (fun yield -> + let ty1, _, _, _ = Ctype.instance_prim p1 vd1.val_type in + let ty2, mode_l2, mode_y2, _ = Ctype.instance_prim p2 vd2.val_type in + Option.iter (Mode.Locality.equate_exn loc) mode_l2; + Option.iter (Mode.Yielding.equate_exn yield) mode_y2; + try + Ctype.moregeneral env true ty1 ty2 + with Ctype.Moregen err -> + raise (Dont_match (Type err)) + ) yielding + ) locality; match primitive_descriptions p1 p2 with | None -> Tcoerce_none | Some err -> raise (Dont_match (Primitive_mismatch err)) end | _ -> - let ty1, mode1, sort1 = Ctype.instance_prim p1 vd1.val_type in + let ty1, mode_l1, _, sort1 = Ctype.instance_prim p1 vd1.val_type in (try Ctype.moregeneral env true ty1 vd2.val_type with Ctype.Moregen err -> raise (Dont_match (Type err))); let pc = {pc_desc = p1; pc_type = vd2.Types.val_type; - pc_poly_mode = Option.map Mode.Locality.disallow_right mode1; + pc_poly_mode = Option.map Mode.Locality.disallow_right mode_l1; pc_poly_sort=sort1; pc_env = env; pc_loc = vd1.Types.val_loc; } in Tcoerce_primitive pc @@ -698,9 +692,9 @@ module Record_diffing = struct | Immutable, Mutable _ -> Some Second | Mutable m1, Mutable m2 -> let open Mode.Alloc.Comonadic.Const in - (if not (eq m1 legacy) then + (if not (Misc.Le_result.equal ~le m1 legacy) then Misc.fatal_errorf "Unexpected mutable(%a)" print m1); - (if not (eq m2 legacy) then + (if not (Misc.Le_result.equal ~le m2 legacy) then Misc.fatal_errorf "Unexpected mutable(%a)" print m2); None in @@ -1376,7 +1370,7 @@ let type_declarations ?(equality = false) ~loc env ~mark name let mark_and_compare_records record_form labels1 rep1 labels2 rep2 = if mark then begin let mark usage lbls = - List.iter (Env.mark_label_used record_form usage) lbls + List.iter (Env.mark_label_used usage) lbls in let usage : Env.label_usage = if decl2.type_private = Public then Env.Exported diff --git a/upstream/ocaml_flambda/typing/jkind.ml b/upstream/ocaml_flambda/typing/jkind.ml index 5c3277e36..1a10db273 100644 --- a/upstream/ocaml_flambda/typing/jkind.ml +++ b/upstream/ocaml_flambda/typing/jkind.ml @@ -347,6 +347,7 @@ end module Externality = Externality module Nullability = Nullability +module Separability = Jkind_axis.Separability module History = struct include Jkind_intf.History @@ -393,13 +394,13 @@ let raise ~loc err = raise (Error.User_error (loc, err)) (* Returns the set of axes that is relevant under a given modality. For example, under the [global] modality, the locality axis is *not* relevant. *) -let relevant_axes_of_modality ~relevant_for_nullability ~modality = +let relevant_axes_of_modality ~relevant_for_shallow ~modality = Axis_set.create ~f:(fun ~axis:(Pack axis) -> match axis with | Modal axis -> let (P axis) = Mode.Const.Axis.alloc_as_value (P axis) in let modality = Mode.Modality.Value.Const.proj axis modality in - not (Mode.Modality.is_constant modality) + not (Mode.Modality.is_constant (Atom (axis, modality))) (* The kind-inference.md document (in the repo) discusses both constant modalities and identity modalities. Of course, reality has modalities (such as [shared]) that are neither constants nor identities. Here, we @@ -410,7 +411,11 @@ let relevant_axes_of_modality ~relevant_for_nullability ~modality = non-identity modalities. *) | Nonmodal Externality -> true | Nonmodal Nullability -> ( - match relevant_for_nullability with + match relevant_for_shallow with + | `Relevant -> true + | `Irrelevant -> false) + | Nonmodal Separability -> ( + match relevant_for_shallow with | `Relevant -> true | `Irrelevant -> false)) @@ -421,13 +426,17 @@ module Mod_bounds = struct create ~locality:Locality.min ~linearity:Linearity.min ~uniqueness:Uniqueness.min ~portability:Portability.min ~contention:Contention.min ~yielding:Yielding.min + ~statefulness:Statefulness.min ~visibility:Visibility.min ~externality:Externality.min ~nullability:Nullability.min + ~separability:Separability.min let max = create ~locality:Locality.max ~linearity:Linearity.max ~uniqueness:Uniqueness.max ~portability:Portability.max ~contention:Contention.max ~yielding:Yielding.max + ~statefulness:Statefulness.max ~visibility:Visibility.max ~externality:Externality.max ~nullability:Nullability.max + ~separability:Separability.max let join t1 t2 = let locality = Locality.join (locality t1) (locality t2) in @@ -436,10 +445,13 @@ module Mod_bounds = struct let portability = Portability.join (portability t1) (portability t2) in let contention = Contention.join (contention t1) (contention t2) in let yielding = Yielding.join (yielding t1) (yielding t2) in + let statefulness = Statefulness.join (statefulness t1) (statefulness t2) in + let visibility = Visibility.join (visibility t1) (visibility t2) in let externality = Externality.join (externality t1) (externality t2) in let nullability = Nullability.join (nullability t1) (nullability t2) in + let separability = Separability.join (separability t1) (separability t2) in create ~locality ~linearity ~uniqueness ~portability ~contention ~yielding - ~externality ~nullability + ~statefulness ~visibility ~externality ~nullability ~separability let meet t1 t2 = let locality = Locality.meet (locality t1) (locality t2) in @@ -448,10 +460,13 @@ module Mod_bounds = struct let portability = Portability.meet (portability t1) (portability t2) in let contention = Contention.meet (contention t1) (contention t2) in let yielding = Yielding.meet (yielding t1) (yielding t2) in + let statefulness = Statefulness.meet (statefulness t1) (statefulness t2) in + let visibility = Visibility.meet (visibility t1) (visibility t2) in let externality = Externality.meet (externality t1) (externality t2) in let nullability = Nullability.meet (nullability t1) (nullability t2) in + let separability = Separability.meet (separability t1) (separability t2) in create ~locality ~linearity ~uniqueness ~portability ~contention ~yielding - ~externality ~nullability + ~statefulness ~visibility ~externality ~nullability ~separability let less_or_equal t1 t2 = let[@inline] axis_less_or_equal ~le ~axis a b : Sub_result.t = @@ -483,12 +498,25 @@ module Mod_bounds = struct (axis_less_or_equal ~le:Yielding.le ~axis:(Pack (Modal (Comonadic Yielding))) (yielding t1) (yielding t2)) + @@ Sub_result.combine + (axis_less_or_equal ~le:Statefulness.le + ~axis:(Pack (Modal (Comonadic Statefulness))) (statefulness t1) + (statefulness t2)) + @@ Sub_result.combine + (axis_less_or_equal ~le:Visibility.le + ~axis:(Pack (Modal (Monadic Visibility))) (visibility t1) + (visibility t2)) @@ Sub_result.combine (axis_less_or_equal ~le:Externality.le ~axis:(Pack (Nonmodal Externality)) (externality t1) (externality t2)) - @@ axis_less_or_equal ~le:Nullability.le ~axis:(Pack (Nonmodal Nullability)) - (nullability t1) (nullability t2) + @@ Sub_result.combine + (axis_less_or_equal ~le:Nullability.le + ~axis:(Pack (Nonmodal Nullability)) (nullability t1) + (nullability t2)) + @@ axis_less_or_equal ~le:Separability.le + ~axis:(Pack (Nonmodal Separability)) (separability t1) + (separability t2) let equal t1 t2 = Locality.equal (locality t1) (locality t2) @@ -497,8 +525,11 @@ module Mod_bounds = struct && Portability.equal (portability t1) (portability t2) && Contention.equal (contention t1) (contention t2) && Yielding.equal (yielding t1) (yielding t2) + && Statefulness.equal (statefulness t1) (statefulness t2) + && Visibility.equal (visibility t1) (visibility t2) && Externality.equal (externality t1) (externality t2) && Nullability.equal (nullability t1) (nullability t2) + && Separability.equal (separability t1) (separability t2) let[@inline] get (type a) ~(axis : a Axis.t) t : a = match axis with @@ -508,8 +539,11 @@ module Mod_bounds = struct | Modal (Comonadic Linearity) -> linearity t | Modal (Comonadic Portability) -> portability t | Modal (Comonadic Yielding) -> yielding t + | Modal (Comonadic Statefulness) -> statefulness t + | Modal (Monadic Visibility) -> visibility t | Nonmodal Externality -> externality t | Nonmodal Nullability -> nullability t + | Nonmodal Separability -> separability t (** Get all axes that are set to max *) let get_max_axes t = @@ -535,18 +569,29 @@ module Mod_bounds = struct |> add_if (Yielding.le Yielding.max (yielding t)) (Modal (Comonadic Yielding)) + |> add_if + (Statefulness.le Statefulness.max (statefulness t)) + (Modal (Comonadic Statefulness)) + |> add_if + (Visibility.le Visibility.max (visibility t)) + (Modal (Monadic Visibility)) |> add_if (Externality.le Externality.max (externality t)) (Nonmodal Externality) |> add_if (Nullability.le Nullability.max (nullability t)) (Nonmodal Nullability) + |> add_if + (Separability.le Separability.max (separability t)) + (Nonmodal Separability) let for_arrow = create ~linearity:Linearity.max ~locality:Locality.max ~uniqueness:Uniqueness.min ~portability:Portability.max ~contention:Contention.min ~yielding:Yielding.max + ~statefulness:Statefulness.max ~visibility:Visibility.min ~externality:Externality.max ~nullability:Nullability.Non_null + ~separability:Separability.Non_float let to_mode_crossing t = Mode.Crossing.of_bounds @@ -555,9 +600,14 @@ module Mod_bounds = struct { areality = locality t; linearity = linearity t; portability = portability t; - yielding = yielding t + yielding = yielding t; + statefulness = statefulness t }; - monadic = { uniqueness = uniqueness t; contention = contention t } + monadic = + { uniqueness = uniqueness t; + contention = contention t; + visibility = visibility t + } } end @@ -590,7 +640,11 @@ module With_bounds = struct in let irrelevant_axes = Axis_set.complement relevant_axes in (* nullability is always implicitly irrelevant since it isn't deep *) - Axis_set.remove irrelevant_axes (Nonmodal Nullability) + let irrelevant_axes = + Axis_set.remove irrelevant_axes (Nonmodal Nullability) + in + (* same for separability *) + Axis_set.remove irrelevant_axes (Nonmodal Separability) end let to_best_eff_map = function @@ -697,10 +751,10 @@ module With_bounds = struct With_bounds (With_bounds_types.singleton type_expr type_info) | With_bounds bounds -> With_bounds (add_bound type_expr type_info bounds) - let add_modality ~relevant_for_nullability ~modality ~type_expr + let add_modality ~relevant_for_shallow ~modality ~type_expr (t : (allowed * 'r) t) : (allowed * 'r) t = let relevant_axes = - relevant_axes_of_modality ~relevant_for_nullability ~modality + relevant_axes_of_modality ~relevant_for_shallow ~modality in match t with | No_with_bounds -> @@ -885,6 +939,7 @@ module Layout_and_axes = struct type t = { tuple_fuel : int; constr : (int * type_expr list) Path.Map.t; + seen_row_var : Numbers.Int.Set.t; fuel_status : Fuel_status.t } @@ -898,10 +953,12 @@ module Layout_and_axes = struct let starting = { tuple_fuel = initial_fuel_per_ty; constr = Path.Map.empty; + seen_row_var = Numbers.Int.Set.empty; fuel_status = Sufficient_fuel } - let rec check ({ tuple_fuel; constr; fuel_status = _ } as t) ty = + let rec check + ({ tuple_fuel; constr; seen_row_var; fuel_status = _ } as t) ty = match Types.get_desc ty with | Tpoly (ty, _) -> check t ty | Ttuple _ -> @@ -927,8 +984,20 @@ module Layout_and_axes = struct Continue { t with constr = Path.Map.add p (fuel - 1, args) constr } else Stop { t with fuel_status = Ran_out_of_fuel }) + | Tvariant _ -> ( + let row_var_id = get_id (Btype.proxy ty) in + match Numbers.Int.Set.mem row_var_id seen_row_var with + | false -> + Continue + { t with + seen_row_var = Numbers.Int.Set.add row_var_id seen_row_var + } + | true -> + (* For our purposes, row variables are like constructors with no arguments, + so if we saw one already, we don't need to expand it again. *) + Skip) | Tvar _ | Tarrow _ | Tunboxed_tuple _ | Tobject _ | Tfield _ | Tnil - | Tvariant _ | Tunivar _ | Tpackage _ -> + | Tunivar _ | Tpackage _ | Tof_kind _ -> (* these cases either cannot be infinitely recursive or their jkinds do not have with_bounds *) (* CR layouts v2.8: Some of these might get with-bounds someday. We @@ -985,8 +1054,12 @@ module Layout_and_axes = struct (value_for_axis ~axis:(Modal (Comonadic Portability))) ~contention:(value_for_axis ~axis:(Modal (Monadic Contention))) ~yielding:(value_for_axis ~axis:(Modal (Comonadic Yielding))) + ~statefulness: + (value_for_axis ~axis:(Modal (Comonadic Statefulness))) + ~visibility:(value_for_axis ~axis:(Modal (Monadic Visibility))) ~externality:(value_for_axis ~axis:(Nonmodal Externality)) ~nullability:(value_for_axis ~axis:(Nonmodal Nullability)) + ~separability:(value_for_axis ~axis:(Nonmodal Separability)) in let found_jkind_for_ty new_ctl b_upper_bounds b_with_bounds quality : Mod_bounds.t * (l * r2) with_bounds * Fuel_status.t = @@ -1008,6 +1081,15 @@ module Layout_and_axes = struct loop new_ctl bounds_so_far next_relevant_axes (With_bounds.to_list b_with_bounds) in + let nested_with_bounds = + With_bounds.map + (fun ti -> + { relevant_axes = + Axis_set.intersection ti.relevant_axes + next_relevant_axes + }) + nested_with_bounds + in (* CR layouts v2.8: we use [new_ctl] here, not [ctl], to avoid big quadratic stack growth for very widely recursive types. This is sad, since it prevents us from mode crossing a record with 20 @@ -1135,6 +1217,7 @@ let fresh_jkind jkind ~annotation ~why = annotation; history = Creation why; has_warned = false; + ran_out_of_fuel_during_normalize = false; quality = Not_best } |> allow_left |> allow_right @@ -1145,6 +1228,7 @@ let fresh_jkind_poly jkind ~annotation ~why = annotation; history = Creation why; has_warned = false; + ran_out_of_fuel_during_normalize = false; quality = Not_best } @@ -1174,7 +1258,7 @@ let outcometree_of_type = ref (fun _ -> assert false) let set_outcometree_of_type p = outcometree_of_type := p -let outcometree_of_modalities_new = ref (fun _ _ _ -> assert false) +let outcometree_of_modalities_new = ref (fun _ _ -> assert false) let set_outcometree_of_modalities_new p = outcometree_of_modalities_new := p @@ -1215,33 +1299,67 @@ module Const = struct name : string } - let mk_jkind ~mode_crossing ~nullability (layout : Layout.Const.t) = + let mk_jkind ~mode_crossing ~nullability ~separability + (layout : Layout.Const.t) = let mod_bounds = (match mode_crossing with | true -> Mod_bounds.min | false -> Mod_bounds.max) |> Mod_bounds.set_nullability nullability + |> Mod_bounds.set_separability separability in { layout; mod_bounds; with_bounds = No_with_bounds } let any = - { jkind = mk_jkind Any ~mode_crossing:false ~nullability:Maybe_null; + { jkind = + mk_jkind Any ~mode_crossing:false ~nullability:Maybe_null + ~separability:Maybe_separable; name = "any" } + let any_mod_everything = + { jkind = + mk_jkind Any ~mode_crossing:true ~nullability:Maybe_null + ~separability:Maybe_separable; + name = "any mod everything" + } + + (* CR layouts v3: replace with [any_separable] when + [or_null array]s are implemented. *) let any_non_null = - { jkind = mk_jkind Any ~mode_crossing:false ~nullability:Non_null; + { jkind = + mk_jkind Any ~mode_crossing:false ~nullability:Non_null + ~separability:Separable; name = "any_non_null" } + (* CR layouts v3: replace with [any_separable] when + [or_null array]s are implemented. *) + let any_non_null_mod_everything = + { jkind = + mk_jkind Any ~mode_crossing:true ~nullability:Non_null + ~separability:Separable; + name = "any_non_null mod everything" + } + let value_or_null = { jkind = - mk_jkind (Base Value) ~mode_crossing:false ~nullability:Maybe_null; + mk_jkind (Base Value) ~mode_crossing:false ~nullability:Maybe_null + ~separability:Maybe_separable; name = "value_or_null" } + let value_or_null_mod_everything = + { jkind = + mk_jkind (Base Value) ~mode_crossing:true ~nullability:Maybe_null + ~separability:Maybe_separable; + name = "value_or_null mod everything" + } + let value = - { jkind = mk_jkind (Base Value) ~mode_crossing:false ~nullability:Non_null; + { jkind = + mk_jkind (Base Value) ~mode_crossing:false ~nullability:Non_null + ~separability:Separable; name = "value" } @@ -1253,13 +1371,34 @@ module Const = struct ~linearity:Linearity.Const.min ~portability:Portability.Const.min ~yielding:Yielding.Const.min ~uniqueness:Uniqueness.Const_op.max - ~contention:Contention.Const_op.min ~externality:Externality.max - ~nullability:Nullability.Non_null; + ~contention:Contention.Const_op.min + ~statefulness:Statefulness.Const.min + ~visibility:Visibility.Const_op.min ~externality:Externality.max + ~nullability:Nullability.Non_null + ~separability:Separability.Non_float; with_bounds = No_with_bounds }; name = "immutable_data" } + let sync_data = + { jkind = + { layout = Base Value; + mod_bounds = + Mod_bounds.create ~locality:Locality.Const.max + ~linearity:Linearity.Const.min + ~portability:Portability.Const.min ~yielding:Yielding.Const.min + ~uniqueness:Uniqueness.Const_op.max + ~contention:Contention.Const_op.min + ~statefulness:Statefulness.Const.min + ~visibility:Visibility.Const_op.max ~externality:Externality.max + ~nullability:Nullability.Non_null + ~separability:Separability.Non_float; + with_bounds = No_with_bounds + }; + name = "sync_data" + } + let mutable_data = { jkind = { layout = Base Value; @@ -1268,27 +1407,38 @@ module Const = struct ~linearity:Linearity.Const.min ~portability:Portability.Const.min ~yielding:Yielding.Const.min ~contention:Contention.Const_op.max - ~uniqueness:Uniqueness.Const_op.max ~externality:Externality.max - ~nullability:Nullability.Non_null; + ~uniqueness:Uniqueness.Const_op.max + ~statefulness:Statefulness.Const.min + ~visibility:Visibility.Const_op.max ~externality:Externality.max + ~nullability:Nullability.Non_null + ~separability:Separability.Non_float; with_bounds = No_with_bounds }; name = "mutable_data" } - (* CR layouts v3: change to [or_null] when separability is implemented. *) + (* CR layouts v3: replace with [any_separable] when + [or_null array]s are implemented. *) let void = - { jkind = mk_jkind (Base Void) ~mode_crossing:false ~nullability:Non_null; + { jkind = + mk_jkind (Base Void) ~mode_crossing:false ~nullability:Non_null + ~separability:Non_float; name = "void" } let immediate = - { jkind = mk_jkind (Base Value) ~mode_crossing:true ~nullability:Non_null; + { jkind = + mk_jkind (Base Value) ~mode_crossing:true ~nullability:Non_null + ~separability:Non_float; name = "immediate" } + (* CR layouts v3: replace with [any_separable] when + [or_null array]s are implemented. *) let immediate_or_null = { jkind = - mk_jkind (Base Value) ~mode_crossing:true ~nullability:Maybe_null; + mk_jkind (Base Value) ~mode_crossing:true ~nullability:Maybe_null + ~separability:Maybe_separable; name = "immediate_or_null" } @@ -1332,61 +1482,149 @@ module Const = struct name = "immediate64" } - (* CR layouts v3: change to [Maybe_null] when separability is implemented. *) + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) let float64 = { jkind = - mk_jkind (Base Float64) ~mode_crossing:true ~nullability:Non_null; + mk_jkind (Base Float64) ~mode_crossing:false ~nullability:Non_null + ~separability:Non_float; + (* [separability] is intentionally [Non_float]: + only boxed floats are relevant for separability. *) name = "float64" } - (* CR layouts v3: change to [Maybe_null] when separability is implemented. *) + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) + let kind_of_unboxed_float = + { jkind = + mk_jkind (Base Float64) ~mode_crossing:true ~nullability:Non_null + ~separability:Non_float; + (* [separability] is intentionally [Non_float]: + only boxed floats are relevant for separability. *) + name = "float64 mod everything" + } + + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) let float32 = { jkind = - mk_jkind (Base Float32) ~mode_crossing:true ~nullability:Non_null; + mk_jkind (Base Float32) ~mode_crossing:false ~nullability:Non_null + ~separability:Non_float; + (* [separability] is intentionally [Non_float]: + only boxed floats are relevant for separability. *) name = "float32" } - (* CR layouts v3: change to [Maybe_null] when separability is implemented. *) + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) + let kind_of_unboxed_float32 = + { jkind = + mk_jkind (Base Float32) ~mode_crossing:true ~nullability:Non_null + ~separability:Non_float; + (* [separability] is intentionally [Non_float]: + only boxed floats are relevant for separability. *) + name = "float32 mod everything" + } + + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) let word = - { jkind = mk_jkind (Base Word) ~mode_crossing:true ~nullability:Non_null; + { jkind = + mk_jkind (Base Word) ~mode_crossing:false ~nullability:Non_null + ~separability:Non_float; name = "word" } - (* CR layouts v3: change to [Maybe_null] when separability is implemented. *) + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) + let kind_of_unboxed_nativeint = + { jkind = + mk_jkind (Base Word) ~mode_crossing:true ~nullability:Non_null + ~separability:Non_float; + name = "word mod everything" + } + + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) let bits32 = - { jkind = mk_jkind (Base Bits32) ~mode_crossing:true ~nullability:Non_null; + { jkind = + mk_jkind (Base Bits32) ~mode_crossing:false ~nullability:Non_null + ~separability:Non_float; name = "bits32" } - (* CR layouts v3: change to [Maybe_null] when separability is implemented. *) + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) + let kind_of_unboxed_int32 = + { jkind = + mk_jkind (Base Bits32) ~mode_crossing:true ~nullability:Non_null + ~separability:Non_float; + name = "bits32 mod everything" + } + + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) let bits64 = - { jkind = mk_jkind (Base Bits64) ~mode_crossing:true ~nullability:Non_null; + { jkind = + mk_jkind (Base Bits64) ~mode_crossing:false ~nullability:Non_null + ~separability:Non_float; name = "bits64" } - (* CR layouts v3: change to [Maybe_null] when separability is implemented. *) + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) + let kind_of_unboxed_int64 = + { jkind = + mk_jkind (Base Bits64) ~mode_crossing:true ~nullability:Non_null + ~separability:Non_float; + name = "bits64 mod everything" + } + + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) let vec128 = - { jkind = mk_jkind (Base Vec128) ~mode_crossing:true ~nullability:Non_null; + { jkind = + mk_jkind (Base Vec128) ~mode_crossing:false ~nullability:Non_null + ~separability:Non_float; name = "vec128" } + (* CR layouts v3: change to [Maybe_null] when + [or_null array]s are implemented. *) + let kind_of_unboxed_128bit_vectors = + { jkind = + mk_jkind (Base Vec128) ~mode_crossing:true ~nullability:Non_null + ~separability:Non_float; + name = "vec128 mod everything" + } + let all = [ any; + any_mod_everything; any_non_null; + any_non_null_mod_everything; value_or_null; + value_or_null_mod_everything; value; immutable_data; + sync_data; mutable_data; void; immediate; immediate_or_null; immediate64; float64; + kind_of_unboxed_float; float32; + kind_of_unboxed_float32; word; + kind_of_unboxed_nativeint; bits32; + kind_of_unboxed_int32; bits64; - vec128 ] + kind_of_unboxed_int64; + vec128; + kind_of_unboxed_128bit_vectors ] let of_attribute : Builtin_attributes.jkind_attribute -> t = function | Immediate -> immediate @@ -1439,6 +1677,39 @@ module Const = struct | acc, `Valid None -> acc | Some acc, `Valid (Some mode) -> Some (mode :: acc)) (Some []) + |> function + | None -> None + | Some modes -> + (* Handle all the mode implications *) + let modes = + match List.mem "global" modes, List.mem "unyielding" modes with + | true, true -> + (* [global] implies [unyielding], omit it. *) + List.filter (fun m -> m <> "unyielding") modes + | true, false -> + (* Otherwise, print [mod global yielding] to indicate [yielding]. *) + modes @ ["yielding"] + | _, _ -> modes + in + let modes = + (* Likewise for [stateless] and [portable]. *) + match List.mem "stateless" modes, List.mem "portable" modes with + | true, true -> List.filter (fun m -> m <> "portable") modes + | true, false -> modes @ ["portable"] + | _, _ -> modes + in + (* Likewise for [immutable] and [contended], or [read] and [shared]. *) + let modes = + match List.mem "immutable" modes, List.mem "contended" modes with + | true, true -> List.filter (fun m -> m <> "contended") modes + | true, false -> modes @ ["contended"] + | _, _ -> ( + match List.mem "read" modes, List.mem "shared" modes with + | true, true -> List.filter (fun m -> m <> "shared") modes + | true, false -> modes @ ["shared"] + | _, _ -> modes) + in + Some modes let modality_to_ignore_axes axes_to_ignore = (* The modality is constant along axes to ignore and id along others *) @@ -1446,7 +1717,7 @@ module Const = struct (fun acc (Axis.Pack axis) -> match axis with | Modal axis -> - let then_ : Modality.t = + let t : Modality.t = let (P axis) = Mode.Const.Axis.alloc_as_value (P axis) in match axis with | Monadic monadic -> @@ -1457,7 +1728,8 @@ module Const = struct ( axis, Meet_with (Mode.Value.Comonadic.Const.min_axis comonadic) ) in - Modality.Value.Const.compose acc ~then_ + let (Atom (axis, a)) = t in + Modality.Value.Const.set axis a acc | Nonmodal _ -> (* TODO: don't know how to print *) acc) @@ -1481,7 +1753,7 @@ module Const = struct in ( !outcometree_of_type type_expr, !outcometree_of_modalities_new - Types.Immutable [] + Types.Immutable (modality_to_ignore_axes axes_ignored_by_modalities) )) (With_bounds.to_list actual.with_bounds) in @@ -1526,8 +1798,9 @@ module Const = struct { jkind = { layout = jkind.layout; mod_bounds = - Mod_bounds.set_nullability Nullability.Non_null - Mod_bounds.max; + Mod_bounds.set_separability Separability.Separable + (Mod_bounds.set_nullability Nullability.Non_null + Mod_bounds.max); with_bounds = No_with_bounds }; name = Layout.Const.to_string jkind.layout @@ -1537,7 +1810,7 @@ module Const = struct match out_jkind_verbose with | Some out_jkind -> out_jkind | None -> - (* If we fail, try again with nullable jkinds. *) + (* If we fail, try again with nullable/maybe-separable jkinds. *) let out_jkind_verbose = convert_with_base ~base: @@ -1617,34 +1890,15 @@ module Const = struct | "bits64" -> Builtin.bits64.jkind | "vec128" -> Builtin.vec128.jkind | "immutable_data" -> Builtin.immutable_data.jkind + | "sync_data" -> Builtin.sync_data.jkind | "mutable_data" -> Builtin.mutable_data.jkind | _ -> raise ~loc:jkind.pjkind_loc (Unknown_jkind jkind)) |> allow_left |> allow_right | Mod (base, modifiers) -> let base = of_user_written_annotation_unchecked_level context base in (* for each mode, lower the corresponding modal bound to be that mode *) - let parsed_modifiers = Typemode.transl_modifier_annots modifiers in let mod_bounds = - let value_for_axis (type a) ~(axis : a Axis.t) : a = - let (module A) = Axis.get axis in - let parsed_modifier = - Typemode.Transled_modifiers.get ~axis parsed_modifiers - in - let base_bound = Mod_bounds.get ~axis base.mod_bounds in - match parsed_modifier, base_bound with - | None, base_modifier -> base_modifier - | Some parsed_modifier, base_modifier -> - A.meet base_modifier parsed_modifier.txt - in - Mod_bounds.create - ~locality:(value_for_axis ~axis:(Modal (Comonadic Areality))) - ~linearity:(value_for_axis ~axis:(Modal (Comonadic Linearity))) - ~uniqueness:(value_for_axis ~axis:(Modal (Monadic Uniqueness))) - ~portability:(value_for_axis ~axis:(Modal (Comonadic Portability))) - ~contention:(value_for_axis ~axis:(Modal (Monadic Contention))) - ~yielding:(value_for_axis ~axis:(Modal (Comonadic Yielding))) - ~externality:(value_for_axis ~axis:(Nonmodal Externality)) - ~nullability:(value_for_axis ~axis:(Nonmodal Nullability)) + Mod_bounds.meet base.mod_bounds (Typemode.transl_mod_bounds modifiers) in { layout = base.layout; mod_bounds; with_bounds = No_with_bounds } | Product ts -> @@ -1659,14 +1913,13 @@ module Const = struct | Left_jkind (transl_type, _) -> let type_ = transl_type type_ in let modality = - Typemode.transl_modalities ~maturity:Stable Immutable [] modalities + Typemode.transl_modalities ~maturity:Stable Immutable modalities in { layout = base.layout; mod_bounds = base.mod_bounds; with_bounds = - With_bounds.add_modality ~modality - ~relevant_for_nullability:`Irrelevant ~type_expr:type_ - base.with_bounds + With_bounds.add_modality ~modality ~relevant_for_shallow:`Irrelevant + ~type_expr:type_ base.with_bounds }) | Default | Kind_of _ -> raise ~loc:jkind.pjkind_loc Unimplemented_syntax @@ -1732,15 +1985,10 @@ end module Jkind_desc = struct let of_const t = Layout_and_axes.map Layout.of_const t - let add_nullability_crossing t = - { t with - mod_bounds = Mod_bounds.set_nullability Nullability.min t.mod_bounds - } - let unsafely_set_bounds t ~from = { t with mod_bounds = from.mod_bounds; with_bounds = from.with_bounds } - let add_with_bounds ~relevant_for_nullability ~type_expr ~modality t = + let add_with_bounds ~relevant_for_shallow ~type_expr ~modality t = match Types.get_desc type_expr with | Tarrow (_, _, _, _) -> (* Optimization: all arrow types have the same (with-bound-free) jkind, so @@ -1751,13 +1999,13 @@ module Jkind_desc = struct Mod_bounds.join t.mod_bounds (Mod_bounds.set_min_in_set Mod_bounds.for_arrow (Axis_set.complement - (relevant_axes_of_modality ~modality ~relevant_for_nullability))) + (relevant_axes_of_modality ~modality ~relevant_for_shallow))) } | _ -> { t with with_bounds = - With_bounds.add_modality ~relevant_for_nullability ~type_expr - ~modality t.with_bounds + With_bounds.add_modality ~relevant_for_shallow ~type_expr ~modality + t.with_bounds } let max = of_const Const.max @@ -1798,11 +2046,13 @@ module Jkind_desc = struct let map_type_expr f t = Layout_and_axes.map_type_expr f t - let of_new_sort_var nullability_upper_bound = + let of_new_sort_var nullability_upper_bound separability_upper_bound = let layout, sort = Layout.of_new_sort_var () in ( { layout; mod_bounds = - Mod_bounds.set_nullability nullability_upper_bound Mod_bounds.max; + Mod_bounds.max + |> Mod_bounds.set_nullability nullability_upper_bound + |> Mod_bounds.set_separability separability_upper_bound; with_bounds = No_with_bounds }, sort ) @@ -1810,12 +2060,16 @@ module Jkind_desc = struct module Builtin = struct let any = max + let any_non_null = of_const Const.Builtin.any_non_null.jkind + let value_or_null = of_const Const.Builtin.value_or_null.jkind let value = of_const Const.Builtin.value.jkind let immutable_data = of_const Const.Builtin.immutable_data.jkind + let sync_data = of_const Const.Builtin.sync_data.jkind + let mutable_data = of_const Const.Builtin.mutable_data.jkind let void = of_const Const.Builtin.void.jkind @@ -1827,12 +2081,17 @@ module Jkind_desc = struct let product tys_modalities layouts = let layout = Layout.product layouts in + let relevant_for_shallow = + (* Shallow axes like nullability or separability are relevant for + 1-field unboxed records and irrelevant for everything else. *) + match List.length layouts with 1 -> `Relevant | _ -> `Irrelevant + in let mod_bounds = Mod_bounds.min in let with_bounds = List.fold_right (fun (type_expr, modality) bounds -> - With_bounds.add_modality ~relevant_for_nullability:`Relevant - ~type_expr ~modality bounds) + With_bounds.add_modality ~relevant_for_shallow ~type_expr ~modality + bounds) tys_modalities No_with_bounds in { layout; mod_bounds; with_bounds } @@ -1868,6 +2127,7 @@ module Builtin = struct (* this should never get printed: it's a dummy *) history = Creation (Any_creation Dummy_jkind); has_warned = false; + ran_out_of_fuel_during_normalize = false; quality = Not_best } @@ -1881,11 +2141,16 @@ module Builtin = struct fresh_jkind Jkind_desc.Builtin.any ~annotation:(mk_annot "any") ~why:(Any_creation why) + let any_non_null ~why = + fresh_jkind Jkind_desc.Builtin.any_non_null + ~annotation:(mk_annot "any_non_null") ~why:(Any_creation why) + let value_v1_safety_check = { jkind = Jkind_desc.Builtin.value_or_null; annotation = mk_annot "value"; history = Creation (Value_or_null_creation V1_safety_check); has_warned = false; + ran_out_of_fuel_during_normalize = false; quality = Not_best } @@ -1910,6 +2175,10 @@ module Builtin = struct ~annotation:(mk_annot "immutable_data") ~why:(Value_creation why) + let sync_data ~(why : History.value_creation_reason) = + fresh_jkind Jkind_desc.Builtin.sync_data ~annotation:(mk_annot "sync_data") + ~why:(Value_creation why) + let mutable_data ~(why : History.value_creation_reason) = fresh_jkind Jkind_desc.Builtin.mutable_data ~annotation:(mk_annot "mutable_data") ~why:(Value_creation why) @@ -1947,9 +2216,6 @@ module Builtin = struct want [Best] jkinds there. *) end -let add_nullability_crossing t = - { t with jkind = Jkind_desc.add_nullability_crossing t.jkind } - let unsafely_set_bounds (type l r) ~(from : (l * r) jkind) t = { t with jkind = Jkind_desc.unsafely_set_bounds t.jkind ~from:from.jkind } @@ -1959,7 +2225,7 @@ let add_with_bounds ~modality ~type_expr t = Jkind_desc.add_with_bounds (* We only care about types in fields of unboxed products for the nullability of the overall kind *) - ~relevant_for_nullability:`Irrelevant ~type_expr ~modality t.jkind + ~relevant_for_shallow:`Irrelevant ~type_expr ~modality t.jkind } let has_with_bounds (type r) (t : (_ * r) jkind) = @@ -1971,13 +2237,13 @@ let has_with_bounds (type r) (t : (_ * r) jkind) = (* construction *) let of_new_sort_var ~why = - let jkind, sort = Jkind_desc.of_new_sort_var Maybe_null in + let jkind, sort = Jkind_desc.of_new_sort_var Maybe_null Maybe_separable in fresh_jkind jkind ~annotation:None ~why:(Concrete_creation why), sort let of_new_sort ~why = fst (of_new_sort_var ~why) let of_new_legacy_sort_var ~why = - let jkind, sort = Jkind_desc.of_new_sort_var Non_null in + let jkind, sort = Jkind_desc.of_new_sort_var Non_null Separable in fresh_jkind jkind ~annotation:None ~why:(Concrete_legacy_creation why), sort let of_new_legacy_sort ~why = fst (of_new_legacy_sort_var ~why) @@ -1988,6 +2254,7 @@ let of_const (type l r) ~annotation ~why ~(quality : (l * r) jkind_quality) annotation; history = Creation why; has_warned = false; + ran_out_of_fuel_during_normalize = false; quality } @@ -2091,10 +2358,138 @@ let for_unboxed_record lbls = in Builtin.product ~why:Unboxed_record tys_modalities layouts -let for_boxed_variant cstrs = +let for_non_float ~(why : History.value_creation_reason) = + let mod_bounds = + Mod_bounds.create ~locality:Locality.Const.max + ~linearity:Linearity.Const.max ~portability:Portability.Const.max + ~yielding:Yielding.Const.max ~uniqueness:Uniqueness.Const_op.max + ~contention:Contention.Const_op.max ~statefulness:Statefulness.Const.max + ~visibility:Visibility.Const_op.max ~externality:Externality.max + ~nullability:Nullability.Non_null ~separability:Separability.Non_float + in + fresh_jkind + { layout = Sort (Base Value); mod_bounds; with_bounds = No_with_bounds } + ~annotation:None ~why:(Value_creation why) + +(* Note [With-bounds for GADTs] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + Inferring the with-bounds for a variant requires gathering bounds from each + constructor. We thus loop over each constructor: + + A. If a constructor is not a GADT constructor, just add its fields and their + modalities as with-bounds. + + B. If a constructor uses GADT syntax: + + GADT constructors introduce their own local scope. That is, when we see + + {[ + type 'a t = K : 'b option -> 'b t + ]} + + the ['b] in the constructor is distinct from the ['a] in the type header. + This would be true even if we wrote ['a] in the constructor: the variables + introduced in the type head never scope over GADT constructors. + + So in order to get properly-scoped with-bounds, we must substitute. But + what, exactly, do we substitute? The domain is the bare variables that appear + as arguments in the return type. The range is the corresponding variables in + the type head (even if those are written as [_]s; which are turned into + proper type variables by now). + + We use [Ctype.apply] (passed in as [type_apply]) to perform the substitution. + + We thus have + + * STEP B1. Gather such variables from the result type, matching them with + their corresponding variables in the type head. We'll call these B1 + variables. + + We do not actually substitute quite yet. + + There may still be other free type variables in the constructor type. Here + are some examples: + + {[ + type 'a t = + | K1 : 'o -> int t + | K2 : 'o -> 'o option t + | K3 : 'o -> 'b t + ]} + + In each constructor, the type variable ['o] is not a B1 variable. (The ['b] + in [K3] /is/ a B1 variable.) We call these variables /orphaned/. All + existential variables are orphans (as we see in [K1] and [K3]), but even + non-existential variables can be orphan (as we see in [K2]; note that ['o] + appears in the result). + + We wish to replace each orphaned type variable with a [Tof_kind], holding + just its kind. Since [Tof_kind] has a *best* kind, they'll just get + normalized away during normalization, except in the case that they show up as + an argument to a type constructor representing an abstract type - in which + case, they still end up in the (fully normalized) with-bounds. For example, + the following type: + + {[ + type t : A : ('a : value mod portable). 'a abstract -> t + ]} + + has kind: + + {[ + immutable_data with (type : value mod portable) abstract + ]} + + This use of the [(type : <>)] construct is the reason we have + [Tof_kind] in the first place. + + We thus have + + * STEP B2. Gather the orphaned variables + * STEP B3. Build the [Tof_kind] types to use in the substitution + * STEP B4. Perform the substitution + + There are wrinkles: + + BW1. For repeated types on arguments, e.g. in the following type: + + {[ + type ('x, 'y) t = A : 'a -> ('a, 'a) t + ]} + + we substitute only the *first* time we see an argument. That means that in + the above type, we'll map all instances of ['a] to ['x] and infer a kind of + [immutable_data with 'x]. This is sound, but somewhat restrictive; in a + perfect world, we'd infer a kind of [immutable_data with ('x OR 'y)], but + that goes beyond what with-bounds can describe (which, if we implemented it, + would introduce a disjunction in type inference, requiring backtracking). At + some point in the future, we should at least change the subsumption algorithm + to accept either [immutable_data with 'x] or [immutable_data with 'y] + (* CR layouts v2.8: do that *) + + BW2. All of the above applies for row variables. Here is an example: + + {[ + type t = K : [> `A] -> t + ]} + + The row variable in the [ [> `A] ] is existential, and thus gets transformed + into a [(type : value)] when computing the kind of [t]. + + This fact has a few consequences: + + * [Tof_kind] can appear as a [row_more]. + * When [Tof_kind] is a [row_more], that row is considered fixed; it thus + needs a [fixed_explanation]. The [fixed_explanation] is [Existential], used + only for this purpose. +*) +let for_boxed_variant ~decl_params ~type_apply ~free_vars cstrs = let open Types in if List.for_all - (fun cstr -> + (* CR layouts v12: This code assumes that all voids mode-cross. I + think that's probably not what we want. *) + (fun cstr -> match cstr.cd_args with | Cstr_tuple args -> List.for_all (fun arg -> Sort.Const.(equal void arg.ca_sort)) args @@ -2110,32 +2505,96 @@ let for_boxed_variant cstrs = | Cstr_record lbls -> has_mutable_label lbls) cstrs in - let has_gadt_constructor = - List.exists - (fun cstr -> match cstr.cd_res with None -> false | Some _ -> true) - cstrs + let base = + (if is_mutable then Builtin.mutable_data else Builtin.immutable_data) + ~why:Boxed_variant + |> mark_best in - if has_gadt_constructor - (* CR layouts v2.8: This is sad, but I don't know how to account for - existentials in the with_bounds. See doc named "Existential - with_bounds". *) - then Builtin.value ~why:Boxed_variant - else - let base = - (if is_mutable then Builtin.mutable_data else Builtin.immutable_data) - ~why:Boxed_variant - |> mark_best - in - let add_cstr_args cstr jkind = + let add_with_bounds_for_cstr jkind_so_far cstr = + let cstr_arg_tys, cstr_arg_modalities = match cstr.cd_args with | Cstr_tuple args -> - List.fold_right - (fun arg -> - add_with_bounds ~modality:arg.ca_modalities ~type_expr:arg.ca_type) - args jkind - | Cstr_record lbls -> add_labels_as_with_bounds lbls jkind + List.fold_left + (fun (tys, ms) arg -> arg.ca_type :: tys, arg.ca_modalities :: ms) + ([], []) args + | Cstr_record lbls -> + List.fold_left + (fun (tys, ms) lbl -> lbl.ld_type :: tys, lbl.ld_modalities :: ms) + ([], []) lbls in - List.fold_right add_cstr_args cstrs base + let cstr_arg_tys = + match cstr.cd_res with + | None -> cstr_arg_tys + | Some res -> + (* See Note [With-bounds for GADTs] for an overview *) + let apply_subst domain range tys = + if Misc.Stdlib.List.is_empty domain + then tys + else List.map (fun ty -> type_apply domain ty range) tys + in + (* STEP B1 from Note [With-bounds for GADTs]: *) + let res_args = + match Types.get_desc res with + | Tconstr (_, args, _) -> args + | _ -> Misc.fatal_error "cd_res must be Tconstr" + in + let domain, range, seen = + List.fold_left2 + (fun ((domain, range, seen) as acc) arg param -> + if Btype.TypeSet.mem arg seen + then + (* We've already seen this type parameter, so don't add it + again. See wrinkle BW1 from Note [With-bounds for GADTs] + *) + acc + else + match Types.get_desc arg with + | Tvar _ -> + (* Only add types which are direct variables. Note that + types which aren't variables might themselves /contain/ + variables; if those variables don't show up on another + parameter, they're treated as orphaned. See example K2 + from Note [With-bounds for GADTs] *) + arg :: domain, param :: range, Btype.TypeSet.add arg seen + | _ -> acc) + ([], [], Btype.TypeSet.empty) + res_args decl_params + in + (* STEP B2 from Note [With-bounds for GADTs]: *) + let free_var_set = free_vars cstr_arg_tys in + let orphaned_type_var_set = Btype.TypeSet.diff free_var_set seen in + let orphaned_type_var_list = + Btype.TypeSet.elements orphaned_type_var_set + in + (* STEP B3 from Note [With-bounds for GADTs]: *) + let mk_type_of_kind ty = + match Types.get_desc ty with + (* use [newgenty] not [newty] here because we've already + generalized the decl and want to keep things at + generic_level *) + | Tvar { jkind; name = _ } -> Btype.newgenty (Tof_kind jkind) + | _ -> + Misc.fatal_error + "post-condition of [free_variable_set_of_list] violated" + in + let type_of_kind_list = + List.map mk_type_of_kind orphaned_type_var_list + in + (* STEP B4 from Note [With-bounds for GADTs]: *) + let cstr_arg_tys = + apply_subst + (orphaned_type_var_list @ domain) + (type_of_kind_list @ range) + cstr_arg_tys + in + cstr_arg_tys + in + List.fold_left2 + (fun jkind type_expr modality -> + add_with_bounds ~modality ~type_expr jkind) + jkind_so_far cstr_arg_tys cstr_arg_modalities + in + List.fold_left add_with_bounds_for_cstr base cstrs let for_boxed_tuple elts = List.fold_right @@ -2144,6 +2603,36 @@ let for_boxed_tuple elts = elts (Builtin.immutable_data ~why:Tuple |> mark_best) +let for_open_boxed_row = + let mod_bounds = + Mod_bounds.create ~locality:Locality.Const.max + ~linearity:Linearity.Const.max ~portability:Portability.Const.max + ~yielding:Yielding.Const.max ~uniqueness:Uniqueness.Const_op.max + ~contention:Contention.Const_op.max ~statefulness:Statefulness.Const.max + ~visibility:Visibility.Const_op.max ~externality:Externality.max + ~nullability:Nullability.Non_null ~separability:Separability.Non_float + in + fresh_jkind + { layout = Sort (Base Value); mod_bounds; with_bounds = No_with_bounds } + ~annotation:None ~why:(Value_creation Polymorphic_variant) + +let for_boxed_row row = + if Btype.tvariant_not_immediate row + then + if not (Btype.static_row row) + then + (* CR layouts v2.8: We can probably do a fair bit better here in most cases *) + for_open_boxed_row + else + let base = Builtin.immutable_data ~why:Polymorphic_variant in + Btype.fold_row + (fun jkind type_expr -> + add_with_bounds ~modality:Mode.Modality.Value.Const.id ~type_expr + jkind) + base row + |> mark_best + else Builtin.immediate ~why:Immediate_polymorphic_variant + let for_arrow = fresh_jkind { layout = Sort (Base Value); @@ -2157,23 +2646,38 @@ let for_object = (* The crossing of objects are based on the fact that they are produced/defined/allocated at legacy, which applies to only the comonadic axes. *) - let ({ linearity; areality = locality; portability; yielding } + let ({ linearity; areality = locality; portability; yielding; statefulness } : Mode.Alloc.Comonadic.Const.t) = Alloc.Comonadic.Const.legacy in - let ({ contention; uniqueness } : Mode.Alloc.Monadic.Const_op.t) = + let ({ contention; uniqueness; visibility } : Mode.Alloc.Monadic.Const_op.t) = Alloc.Monadic.Const_op.max in fresh_jkind { layout = Sort (Base Value); mod_bounds = Mod_bounds.create ~linearity ~locality ~uniqueness ~portability - ~contention ~yielding ~externality:Externality.max - ~nullability:Non_null; + ~contention ~yielding ~statefulness ~visibility + ~externality:Externality.max ~nullability:Non_null + ~separability:Separability.Non_float; with_bounds = No_with_bounds } ~annotation:None ~why:(Value_creation Object) +let for_float ident = + let mod_bounds = + Mod_bounds.create ~locality:Locality.Const.max + ~linearity:Linearity.Const.min ~portability:Portability.Const.min + ~yielding:Yielding.Const.min ~uniqueness:Uniqueness.Const_op.max + ~contention:Contention.Const_op.min ~statefulness:Statefulness.Const.min + ~visibility:Visibility.Const_op.min ~externality:Externality.max + ~nullability:Nullability.Non_null ~separability:Separability.Separable + in + fresh_jkind + { layout = Sort (Base Value); mod_bounds; with_bounds = No_with_bounds } + ~annotation:None ~why:(Primitive ident) + |> mark_best + (******************************) (* elimination and defaulting *) @@ -2194,7 +2698,11 @@ let[@inline] normalize ~mode ~jkind_of_type t = quality = (match t.quality, fuel_result with | Not_best, _ | _, Ran_out_of_fuel -> Not_best - | Best, Sufficient_fuel -> Best) + | Best, Sufficient_fuel -> Best); + ran_out_of_fuel_during_normalize = + (match fuel_result with + | Ran_out_of_fuel -> true + | _ -> t.ran_out_of_fuel_during_normalize) } let get_layout_defaulting_to_value { jkind = { layout; _ }; _ } = @@ -2233,11 +2741,13 @@ let get_modal_bounds (type l r) ~jkind_of_type (jk : (l * r) jkind) = { areality = locality mod_bounds; linearity = linearity mod_bounds; portability = portability mod_bounds; - yielding = yielding mod_bounds + yielding = yielding mod_bounds; + statefulness = statefulness mod_bounds }; monadic = { uniqueness = uniqueness mod_bounds; - contention = contention mod_bounds + contention = contention mod_bounds; + visibility = visibility mod_bounds } } @@ -2300,11 +2810,21 @@ let set_nullability_upper_bound jk nullability_upper_bound = in { jk with jkind = { jk.jkind with mod_bounds = new_bounds } } +let set_separability_upper_bound jk separability_upper_bound = + { jk with + jkind = + { jk.jkind with + mod_bounds = + Mod_bounds.set_separability separability_upper_bound + jk.jkind.mod_bounds + } + } + let set_layout jk layout = { jk with jkind = { jk.jkind with layout } } let apply_modality_l modality jk = let relevant_axes = - relevant_axes_of_modality ~modality ~relevant_for_nullability:`Relevant + relevant_axes_of_modality ~modality ~relevant_for_shallow:`Relevant in let mod_bounds = Mod_bounds.set_min_in_set jk.jkind.mod_bounds @@ -2321,7 +2841,7 @@ let apply_modality_l modality jk = let apply_modality_r modality jk = let relevant_axes = - relevant_axes_of_modality ~modality ~relevant_for_nullability:`Relevant + relevant_axes_of_modality ~modality ~relevant_for_shallow:`Relevant in let mod_bounds = Mod_bounds.set_max_in_set jk.jkind.mod_bounds @@ -2499,6 +3019,8 @@ module Format_history = struct | Type_variable name -> fprintf ppf "the type variable %s" name | Type_wildcard loc -> fprintf ppf "the wildcard _ at %a" Location.print_loc_in_lowercase loc + | Type_of_kind loc -> + fprintf ppf "the type at %a" Location.print_loc_in_lowercase loc | With_error_message (_message, context) -> (* message gets printed in [format_flattened_history] so we ignore it here *) format_annotation_context ppf context @@ -2602,6 +3124,14 @@ module Format_history = struct fprintf ppf "it's an unannotated existential type variable" | Array_comprehension_element -> fprintf ppf "it's the element type of array comprehension" + | List_comprehension_iterator_element -> + fprintf ppf + "it's the element type of a list that is iterated over in a \ + comprehension" + | Array_comprehension_iterator_element -> + fprintf ppf + "it's the element type of an array that is iterated over in a \ + comprehension" | Lazy_expression -> fprintf ppf "it's the type of a lazy expression" | Class_type_argument -> fprintf ppf "it's a type argument to a class constructor" @@ -2847,6 +3377,23 @@ module Violation = struct pp_bound sub.jkind pp_bound super.jkind)) | No_intersection _ -> () + let report_fuel ppf violation = + let report_fuel_for_type which = + fprintf ppf + "@;\ + @[Note: I gave up trying to find the simplest kind for the %s,@,\ + as it is very large or deeply recursive.@]" which + in + let first_ran_out, second_ran_out = + match violation with + | Not_a_subjkind (k1, k2, _) -> + k1.ran_out_of_fuel_during_normalize, k2.ran_out_of_fuel_during_normalize + | No_intersection (k1, k2) -> + k1.ran_out_of_fuel_during_normalize, k2.ran_out_of_fuel_during_normalize + in + if first_ran_out then report_fuel_for_type "first"; + if second_ran_out then report_fuel_for_type "second" + let report_general preamble pp_former former ppf t = let mismatch_type = match t.violation with @@ -2935,7 +3482,8 @@ module Violation = struct fprintf ppf "@[%s%a has %t,@ which %t.@]" preamble pp_former former fmt_k1 fmt_k2; report_missing_cmi ppf missing_cmi_option; - report_reason ppf t.violation + report_reason ppf t.violation; + report_fuel ppf t.violation let pp_t ppf x = fprintf ppf "%t" x @@ -2951,9 +3499,20 @@ end (* relations *) let equate_or_equal ~allow_mutation - { jkind = jkind1; annotation = _; history = _; has_warned = _; quality = _ } - { jkind = jkind2; annotation = _; history = _; has_warned = _; quality = _ } - = + { jkind = jkind1; + annotation = _; + history = _; + has_warned = _; + ran_out_of_fuel_during_normalize = _; + quality = _ + } + { jkind = jkind2; + annotation = _; + history = _; + has_warned = _; + ran_out_of_fuel_during_normalize = _; + quality = _ + } = Jkind_desc.equate_or_equal ~allow_mutation jkind1 jkind2 (* CR layouts v2.8: Switch this back to ~allow_mutation:false *) @@ -3023,6 +3582,9 @@ let intersection_or_error ~type_equal ~jkind_of_type ~reason t1 t2 = combine_histories ~type_equal ~jkind_of_type reason (Pack_jkind t1) (Pack_jkind t2); has_warned = t1.has_warned || t2.has_warned; + ran_out_of_fuel_during_normalize = + t1.ran_out_of_fuel_during_normalize + || t2.ran_out_of_fuel_during_normalize; quality = Not_best (* As required by the fact that this is a [jkind_r] *) } @@ -3190,7 +3752,9 @@ let is_value_for_printing ~ignore_null { jkind; _ } = then { value with mod_bounds = - Mod_bounds.set_nullability Nullability.Maybe_null value.mod_bounds + Mod_bounds.set_separability Separability.Maybe_separable + (Mod_bounds.set_nullability Nullability.Maybe_null + value.mod_bounds) } :: values else values @@ -3250,6 +3814,7 @@ module Debug_printers = struct | Type_variable name -> fprintf ppf "Type_variable %S" name | Type_wildcard loc -> fprintf ppf "Type_wildcard (%a)" Location.print_loc loc + | Type_of_kind loc -> fprintf ppf "Type_of_kind (%a)" Location.print_loc loc | With_error_message (message, context) -> fprintf ppf "With_error_message (%s, %a)" message annotation_context context @@ -3315,6 +3880,10 @@ module Debug_printers = struct | Default_type_jkind -> fprintf ppf "Default_type_jkind" | Existential_type_variable -> fprintf ppf "Existential_type_variable" | Array_comprehension_element -> fprintf ppf "Array_comprehension_element" + | List_comprehension_iterator_element -> + fprintf ppf "List_comprehension_iterator_element" + | Array_comprehension_iterator_element -> + fprintf ppf "Array_comprehension_iterator_element" | Lazy_expression -> fprintf ppf "Lazy_expression" | Class_type_argument -> fprintf ppf "Class_type_argument" | Class_term_argument -> fprintf ppf "Class_term_argument" @@ -3386,16 +3955,23 @@ module Debug_printers = struct | Creation c -> fprintf ppf "Creation (%a)" creation_reason c let t (type l r) ppf - ({ jkind; annotation = a; history = h; has_warned = _; quality = q } : + ({ jkind; + annotation = a; + history = h; + has_warned = _; + ran_out_of_fuel_during_normalize = roofdn; + quality = q + } : (l * r) jkind) : unit = fprintf ppf "@[{ jkind = %a@,\ ; annotation = %a@,\ ; history = %a@,\ + ; ran_out_of_fuel_during_normalize = %a@,\ ; quality = %s@,\ \ }@]" Jkind_desc.Debug_printers.t jkind (pp_print_option Pprintast.jkind_annotation) - a history h + a history h pp_print_bool roofdn (match q with Best -> "Best" | Not_best -> "Not_best") module Const = struct diff --git a/upstream/ocaml_flambda/typing/jkind.mli b/upstream/ocaml_flambda/typing/jkind.mli index 0dd15f6eb..b77d7c704 100644 --- a/upstream/ocaml_flambda/typing/jkind.mli +++ b/upstream/ocaml_flambda/typing/jkind.mli @@ -273,10 +273,13 @@ module Const : sig (** This is the jkind of normal ocaml values *) val value : t - (** Immutable values that don't contain functions. *) + (** Immutable non-float values that don't contain functions. *) val immutable_data : t - (** Mutable values that don't contain functions. *) + (** Atomically mutable non-float values that don't contain functions. *) + val sync_data : t + + (** Mutable non-float values that don't contain functions. *) val mutable_data : t (** Values of types of this jkind are immediate on 64-bit platforms; on other @@ -289,30 +292,42 @@ module Const : sig (** Values of types of this jkind are either immediate or null pointers *) val immediate_or_null : t - (** This is the jkind of unboxed 64-bit floats. They have sort - Float64. Mode-crosses. *) + (** The jkind of unboxed 64-bit floats with no mode crossing. *) val float64 : t - (** This is the jkind of unboxed 32-bit floats. They have sort - Float32. Mode-crosses. *) + (** The jkind of unboxed 64-bit floats with mode crossing. *) + val kind_of_unboxed_float : t + + (** The jkind of unboxed 32-bit floats with no mode crossing. *) val float32 : t - (** This is the jkind of unboxed native-sized integers. They have sort - Word. Does not mode-cross. *) + (** The jkind of unboxed 32-bit floats with mode crossing. *) + val kind_of_unboxed_float32 : t + + (** The jkind of unboxed 32-bit native-sized integers with no mode crossing. *) val word : t - (** This is the jkind of unboxed 32-bit integers. They have sort Bits32. Does - not mode-cross. *) + (** The jkind of unboxed 32-bit native-sized integers with mode crossing. *) + val kind_of_unboxed_nativeint : t + + (** The jkind of unboxed 32-bit integers with no mode crossing. *) val bits32 : t - (** This is the jkind of unboxed 64-bit integers. They have sort Bits64. Does - not mode-cross. *) + (** The jkind of unboxed 32-bit integers with mode crossing. *) + val kind_of_unboxed_int32 : t + + (** The jkind of unboxed 64-bit integers with no mode crossing. *) val bits64 : t - (** This is the jkind of unboxed 128-bit simd vectors. They have sort Vec128. Does - not mode-cross. *) + (** The jkind of unboxed 64-bit integers with mode crossing. *) + val kind_of_unboxed_int64 : t + + (** The jkind of unboxed 128-bit vectors with no mode crossing. *) val vec128 : t + (** The jkind of unboxed 128-bit vectors with mode crossing. *) + val kind_of_unboxed_128bit_vectors : t + (** A list of all Builtin jkinds *) val all : t list end @@ -324,6 +339,11 @@ module Builtin : sig [any]. *) val any : why:History.any_creation_reason -> 'd Types.jkind + (* CR layouts v3: change to [any_separable]. *) + + (** Jkind of array elements. *) + val any_non_null : why:History.any_creation_reason -> 'd Types.jkind + (** Value of types of this jkind are not retained at all at runtime *) val void : why:History.void_creation_reason -> ('l * disallowed) Types.jkind @@ -336,6 +356,9 @@ module Builtin : sig (** This is suitable for records or variants without mutable fields. *) val immutable_data : why:History.value_creation_reason -> 'd Types.jkind + (** This is suitable for records or variants with atomically mutable fields. *) + val sync_data : why:History.value_creation_reason -> 'd Types.jkind + (** This is suitable for records or variants with mutable fields. *) val mutable_data : why:History.value_creation_reason -> 'd Types.jkind @@ -370,9 +393,6 @@ module Builtin : sig why:History.product_creation_reason -> int -> Types.jkind_l end -(** Take an existing [t] and add an ability to cross across the nullability axis. *) -val add_nullability_crossing : 'd Types.jkind -> 'd Types.jkind - (** Forcibly change the mod- and with-bounds of a [t] based on the mod- and with-bounds of [from]. *) val unsafely_set_bounds : from:'d Types.jkind -> 'd Types.jkind -> 'd Types.jkind @@ -477,18 +497,39 @@ val for_boxed_record : Types.label_declaration list -> Types.jkind_l (** Choose an appropriate jkind for an unboxed record type. *) val for_unboxed_record : Types.label_declaration list -> Types.jkind_l -(** Choose an appropriate jkind for a boxed variant type. *) -val for_boxed_variant : Types.constructor_declaration list -> Types.jkind_l +(** Choose an appropriate jkind for a boxed variant type. + + [decl_params] is the parameters in the head of the type declaration. [type_apply] + should be [Ctype.apply] partially applied to an [env]. *) +val for_boxed_variant : + decl_params:Types.type_expr list -> + type_apply: + (Types.type_expr list -> + Types.type_expr -> + Types.type_expr list -> + Types.type_expr) -> + free_vars:(Types.type_expr list -> Btype.TypeSet.t) -> + Types.constructor_declaration list -> + Types.jkind_l (** Choose an appropriate jkind for a boxed tuple type. *) val for_boxed_tuple : (string option * Types.type_expr) list -> Types.jkind_l +(** Choose an appropriate jkind for a row type. *) +val for_boxed_row : Types.row_desc -> Types.jkind_l + (** The jkind of an arrow type. *) val for_arrow : Types.jkind_l (** The jkind of an object type. *) val for_object : Types.jkind_l +(** The jkind of a float. *) +val for_float : Ident.t -> Types.jkind_l + +(** The jkind for values that are not floats. *) +val for_non_float : why:History.value_creation_reason -> 'd Types.jkind + (******************************) (* elimination and defaulting *) @@ -562,10 +603,15 @@ val get_nullability : Jkind_axis.Nullability.t (** Computes a jkind that is the same as the input but with an updated maximum - mode for the externality axis *) + mode for the nullability axis *) val set_nullability_upper_bound : Types.jkind_r -> Jkind_axis.Nullability.t -> Types.jkind_r +(** Computes a jkind that is the same as the input but with an updated maximum + mode for the separability axis *) +val set_separability_upper_bound : + Types.jkind_r -> Jkind_axis.Separability.t -> Types.jkind_r + (** Sets the layout in a jkind. *) val set_layout : 'd Types.jkind -> Sort.t Layout.t -> 'd Types.jkind @@ -619,7 +665,6 @@ val set_outcometree_of_type : (Types.type_expr -> Outcometree.out_type) -> unit val set_outcometree_of_modalities_new : (Types.mutability -> - Parsetree.attributes -> Mode.Modality.Value.Const.t -> Outcometree.out_mode_new list) -> unit diff --git a/upstream/ocaml_flambda/typing/jkind_axis.ml b/upstream/ocaml_flambda/typing/jkind_axis.ml index 2fda07dc0..88a0ceda1 100644 --- a/upstream/ocaml_flambda/typing/jkind_axis.ml +++ b/upstream/ocaml_flambda/typing/jkind_axis.ml @@ -114,15 +114,70 @@ module Nullability = struct | Maybe_null -> Format.fprintf ppf "maybe_null" end +module Separability = struct + type t = + | Non_float + | Separable + | Maybe_separable + + let max = Maybe_separable + + let min = Non_float + + let legacy = Separable + + let equal s1 s2 = + match s1, s2 with + | Non_float, Non_float -> true + | Separable, Separable -> true + | Maybe_separable, Maybe_separable -> true + | (Non_float | Separable | Maybe_separable), _ -> false + + let less_or_equal s1 s2 : Misc.Le_result.t = + match s1, s2 with + | Non_float, Non_float -> Equal + | Non_float, (Separable | Maybe_separable) -> Less + | Separable, Non_float -> Not_le + | Separable, Separable -> Equal + | Separable, Maybe_separable -> Less + | Maybe_separable, (Non_float | Separable) -> Not_le + | Maybe_separable, Maybe_separable -> Equal + + let le s1 s2 = Misc.Le_result.is_le (less_or_equal s1 s2) + + let meet s1 s2 = + match s1, s2 with + | Non_float, (Non_float | Separable | Maybe_separable) + | (Separable | Maybe_separable), Non_float -> + Non_float + | Separable, (Separable | Maybe_separable) | Maybe_separable, Separable -> + Separable + | Maybe_separable, Maybe_separable -> Maybe_separable + + let join s1 s2 = + match s1, s2 with + | Maybe_separable, (Maybe_separable | Separable | Non_float) + | (Separable | Non_float), Maybe_separable -> + Maybe_separable + | Separable, (Separable | Non_float) | Non_float, Separable -> Separable + | Non_float, Non_float -> Non_float + + let print ppf = function + | Non_float -> Format.fprintf ppf "non_float" + | Separable -> Format.fprintf ppf "separable" + | Maybe_separable -> Format.fprintf ppf "maybe_separable" +end + module Axis = struct module Nonmodal = struct type 'a t = | Externality : Externality.t t | Nullability : Nullability.t t + | Separability : Separability.t t end type 'a t = - | Modal : ('m, 'a, 'd) Mode.Alloc.axis -> 'a t + | Modal : ('a, _, _) Mode.Alloc.Axis.t -> 'a t | Nonmodal : 'a Nonmodal.t -> 'a t type packed = Pack : 'a t -> packed [@@unboxed] @@ -142,9 +197,10 @@ module Axis = struct let get (type a) : a t -> (module Axis_ops with type t = a) = function | Modal axis -> - (module Accent_lattice ((val Mode.Alloc.lattice_of_axis axis))) + (module Accent_lattice ((val Mode.Alloc.Const.lattice_of_axis axis))) | Nonmodal Externality -> (module Externality) | Nonmodal Nullability -> (module Nullability) + | Nonmodal Separability -> (module Separability) let all = [ Pack (Modal (Comonadic Areality)); @@ -153,23 +209,17 @@ module Axis = struct Pack (Modal (Monadic Contention)); Pack (Modal (Comonadic Portability)); Pack (Modal (Comonadic Yielding)); + Pack (Modal (Comonadic Statefulness)); + Pack (Modal (Monadic Visibility)); Pack (Nonmodal Externality); - Pack (Nonmodal Nullability) ] + Pack (Nonmodal Nullability); + Pack (Nonmodal Separability) ] let name (type a) : a t -> string = function - | Modal axis -> Format.asprintf "%a" Mode.Alloc.print_axis axis + | Modal axis -> Format.asprintf "%a" Mode.Alloc.Axis.print axis | Nonmodal Externality -> "externality" | Nonmodal Nullability -> "nullability" - - let is_modal (type a) : a t -> bool = function - | Modal (Comonadic Areality) -> true - | Modal (Comonadic Linearity) -> true - | Modal (Monadic Uniqueness) -> true - | Modal (Comonadic Portability) -> true - | Modal (Monadic Contention) -> true - | Modal (Comonadic Yielding) -> true - | Nonmodal Externality -> true - | Nonmodal Nullability -> false + | Nonmodal Separability -> "separability" end module Axis_set = struct @@ -178,8 +228,6 @@ module Axis_set = struct normalization) *) type t = int - (* CR layouts: if we had unboxed types in the compiler, this could be represented with a - uint8 since there are only 8 bits that we care about *) let[@inline] axis_index (type a) : a Axis.t -> _ = function | Modal (Comonadic Areality) -> 0 @@ -188,8 +236,11 @@ module Axis_set = struct | Modal (Comonadic Portability) -> 3 | Modal (Monadic Contention) -> 4 | Modal (Comonadic Yielding) -> 5 - | Nonmodal Externality -> 6 - | Nonmodal Nullability -> 7 + | Modal (Comonadic Statefulness) -> 6 + | Modal (Monadic Visibility) -> 7 + | Nonmodal Externality -> 8 + | Nonmodal Nullability -> 9 + | Nonmodal Separability -> 10 let[@inline] axis_mask ax = 1 lsl axis_index ax @@ -215,8 +266,11 @@ module Axis_set = struct |> set_axis (Modal (Comonadic Portability)) |> set_axis (Modal (Monadic Contention)) |> set_axis (Modal (Comonadic Yielding)) + |> set_axis (Modal (Comonadic Statefulness)) + |> set_axis (Modal (Monadic Visibility)) |> set_axis (Nonmodal Externality) |> set_axis (Nonmodal Nullability) + |> set_axis (Nonmodal Separability) let all = create ~f:(fun ~axis:_ -> true) diff --git a/upstream/ocaml_flambda/typing/jkind_axis.mli b/upstream/ocaml_flambda/typing/jkind_axis.mli index 1dfd540d3..30f7d08a3 100644 --- a/upstream/ocaml_flambda/typing/jkind_axis.mli +++ b/upstream/ocaml_flambda/typing/jkind_axis.mli @@ -40,16 +40,26 @@ module Nullability : sig include Axis_ops with type t := t end +module Separability : sig + type t = + | Non_float + | Separable + | Maybe_separable + + include Axis_ops with type t := t +end + module Axis : sig module Nonmodal : sig type 'a t = | Externality : Externality.t t | Nullability : Nullability.t t + | Separability : Separability.t t end (** Represents an axis of a jkind *) type 'a t = - | Modal : ('m, 'a, 'd) Mode.Alloc.axis -> 'a t + | Modal : ('a, _, _) Mode.Alloc.Axis.t -> 'a t | Nonmodal : 'a Nonmodal.t -> 'a t type packed = Pack : 'a t -> packed [@@unboxed] @@ -62,10 +72,6 @@ module Axis : sig val all : packed list val name : _ t -> string - - (** Is this a modal axis? Includes externality, because that will one - day be modal (it is a deep property). *) - val is_modal : _ t -> bool end module Axis_set : sig diff --git a/upstream/ocaml_flambda/typing/jkind_intf.ml b/upstream/ocaml_flambda/typing/jkind_intf.ml index 967dfda0f..f02f7e5d9 100644 --- a/upstream/ocaml_flambda/typing/jkind_intf.ml +++ b/upstream/ocaml_flambda/typing/jkind_intf.ml @@ -80,7 +80,7 @@ module type Sort = sig val for_variant_arg : t - val for_record : t + val for_boxed_record : t val for_block_element : t @@ -235,6 +235,7 @@ module History = struct | Univar : string -> (allowed * allowed) annotation_context | Type_variable : string -> (allowed * allowed) annotation_context | Type_wildcard : Location.t -> (allowed * allowed) annotation_context + | Type_of_kind : Location.t -> (allowed * allowed) annotation_context | With_error_message : string * 'd annotation_context -> 'd annotation_context @@ -290,6 +291,8 @@ module History = struct | Default_type_jkind | Existential_type_variable | Array_comprehension_element + | List_comprehension_iterator_element + | Array_comprehension_iterator_element | Lazy_expression | Class_type_argument | Class_term_argument diff --git a/upstream/ocaml_flambda/typing/jkind_types.ml b/upstream/ocaml_flambda/typing/jkind_types.ml index 951158e4c..0326906b8 100644 --- a/upstream/ocaml_flambda/typing/jkind_types.ml +++ b/upstream/ocaml_flambda/typing/jkind_types.ml @@ -126,7 +126,7 @@ module Sort = struct let for_poly_variant = value - let for_record = value + let for_boxed_record = value let for_object = value diff --git a/upstream/ocaml_flambda/typing/mode.ml b/upstream/ocaml_flambda/typing/mode.ml index 6c790605b..035cae65a 100644 --- a/upstream/ocaml_flambda/typing/mode.ml +++ b/upstream/ocaml_flambda/typing/mode.ml @@ -25,14 +25,20 @@ type nonrec disallowed = disallowed type nonrec equate_step = equate_step -module type BiHeyting = sig - (** Extend the [Lattice] interface with operations of bi-Heyting algebras *) +module type Heyting = sig + (** Extend the [Lattice] interface with operations of Heyting algebras *) include Lattice (** [imply c] is the right adjoint of [meet c]; That is, for any [a] and [b], [meet c a <= b] iff [a <= imply c b] *) val imply : t -> t -> t +end + +module type CoHeyting = sig + (** Extend the [Lattice] interface with operations of co-Heyting algebras *) + + include Lattice (** [subtract _ c] is the left adjoint of [join c]. That is, for any [a] and [b], [subtract a c <= b] iff [a <= join c b] *) @@ -42,59 +48,45 @@ end (* Even though our lattices are all bi-heyting algebras, that knowledge is internal to this module. Externally they are seen as normal lattices. *) module Lattices = struct - module Opposite (L : BiHeyting) : BiHeyting with type t = L.t = struct - type t = L.t - - let min = L.max - - let max = L.min - - let legacy = L.legacy - - let[@inline] le a b = L.le b a - - let equal = L.equal - - let join = L.meet - - let meet = L.join + module Total = struct + (** A lattice is total order, if for any [a] [b], [a <= b] or [b <= a]. *) + + module CoHeyting (L : Lattice) : CoHeyting with type t := L.t = struct + (** A total lattice has a co-heyting structure. *) + + include L + + (* Prove the [subtract] below is the left adjoint of [join]. + - If [subtract a c <= b], by the definition of [subtract] below, + that could mean one of two things: + - Took the branch [a <= c], and [min <= b]. In this case, we have [a <= c <= join c b]. + - Took the other branch, and [a <= b]. In this case, we have [a <= b <= join c b]. + + - In the other direction: Given [a <= join c b], compare [c] and [b]: + - if [c <= b], then [a <= join c b = b], and: + - either [a <= c], then [subtract a c = min <= b] + - or the other branch, then [subtract a c = a <= b] + - if [b <= c], then [a <= join c b = c], then [subtract a c = min <= b] + *) + let subtract a c = if le a c then min else a + end + [@@inline] - let print = L.print + module Heyting (L : Lattice) : Heyting with type t := L.t = struct + (** A total lattice has a heyting structure. *) - let imply a b = L.subtract b a + include L - let subtract a b = L.imply b a - end - [@@inline] - - (* A lattice is total order, if for any [a] [b], [a <= b] or [b <= a]. - A total lattice has a bi-heyting structure given as follows. *) - module Total (L : Lattice) : BiHeyting with type t := L.t = struct - include L - - (* Prove the [subtract] below is the left adjoint of [join]. - - If [subtract a c <= b], by the definition of [subtract] below, - that could mean one of two things: - - Took the branch [a <= c], and [min <= b]. In this case, we have [a <= c <= join c b]. - - Took the other branch, and [a <= b]. In this case, we have [a <= b <= join c b]. - - - In the other direction: Given [a <= join c b], compare [c] and [b]: - - if [c <= b], then [a <= join c b = b], and: - - either [a <= c], then [subtract a c = min <= b] - - or the other branch, then [subtract a c = a <= b] - - if [b <= c], then [a <= join c b = c], then [subtract a c = min <= b] - *) - let subtract a c = if le a c then min else a - - (* The proof for [imply] is dual and omitted. *) - let imply c b = if le c b then max else b + (* The proof for [imply] is dual and omitted. *) + let imply c b = if le c b then max else b + end + [@@inline] end - [@@inline] (* Make the type of [Locality] and [Regionality] below distinguishable, so that we can be sure [Comonadic_with] is applied correctly. *) module type Areality = sig - include BiHeyting + include Heyting val _is_areality : unit end @@ -104,7 +96,7 @@ module Lattices = struct | Global | Local - include Total (struct + include Total.Heyting (struct type nonrec t = t let min = Global @@ -145,7 +137,7 @@ module Lattices = struct | Regional | Local - include Total (struct + include Total.Heyting (struct type nonrec t = t let min = Global @@ -196,7 +188,7 @@ module Lattices = struct | Unique | Aliased - include Total (struct + include Total.CoHeyting (struct type nonrec t = t let min = Unique @@ -232,14 +224,12 @@ module Lattices = struct end) end - module Uniqueness_op = Opposite (Uniqueness) - module Linearity = struct type t = | Many | Once - include Total (struct + include Total.Heyting (struct type nonrec t = t let min = Many @@ -274,7 +264,7 @@ module Lattices = struct | Portable | Nonportable - include Total (struct + include Total.Heyting (struct type nonrec t = t let min = Portable @@ -316,7 +306,7 @@ module Lattices = struct | Shared | Uncontended - include Total (struct + include Total.CoHeyting (struct type nonrec t = t let min = Uncontended @@ -360,14 +350,12 @@ module Lattices = struct end) end - module Contention_op = Opposite (Contention) - module Yielding = struct type t = | Yielding | Unyielding - include Total (struct + include Total.Heyting (struct type nonrec t = t let min = Unyielding @@ -403,9 +391,110 @@ module Lattices = struct end) end + module Statefulness = struct + type t = + | Stateless + | Observing + | Stateful + + include Total.Heyting (struct + type nonrec t = t + + let min = Stateless + + let max = Stateful + + let legacy = Stateful + + let[@inline] le a b = + match a, b with + | Stateless, _ | _, Stateful -> true + | _, Stateless | Stateful, _ -> false + | Observing, Observing -> true + + let[@inline] equal a b = + match a, b with + | Stateless, Stateless -> true + | Observing, Observing -> true + | Stateful, Stateful -> true + | Stateless, (Observing | Stateful) + | Observing, (Stateless | Stateful) + | Stateful, (Stateless | Observing) -> + false + + let join a b = + match a, b with + | Stateful, _ | _, Stateful -> Stateful + | Observing, _ | _, Observing -> Observing + | Stateless, Stateless -> Stateless + + let meet a b = + match a, b with + | Stateless, _ | _, Stateless -> Stateless + | Observing, _ | _, Observing -> Observing + | Stateful, Stateful -> Stateful + + let print ppf = function + | Stateless -> Format.fprintf ppf "stateless" + | Observing -> Format.fprintf ppf "observing" + | Stateful -> Format.fprintf ppf "stateful" + end) + end + + module Visibility = struct + type t = + | Immutable + | Read + | Read_write + + include Total.CoHeyting (struct + type nonrec t = t + + let min = Read_write + + let max = Immutable + + let legacy = Read_write + + let[@inline] le a b = + match a, b with + | Read_write, _ | _, Immutable -> true + | _, Read_write | Immutable, _ -> false + | Read, Read -> true + + let[@inline] equal a b = + match a, b with + | Immutable, Immutable -> true + | Read, Read -> true + | Read_write, Read_write -> true + | Immutable, (Read | Read_write) + | Read, (Immutable | Read_write) + | Read_write, (Immutable | Read) -> + false + + let join a b = + match a, b with + | Immutable, _ | _, Immutable -> Immutable + | Read, _ | _, Read -> Read + | Read_write, Read_write -> Read_write + + let meet a b = + match a, b with + | Read_write, _ | _, Read_write -> Read_write + | Read, _ | _, Read -> Read + | Immutable, Immutable -> Immutable + + let print ppf = function + | Immutable -> Format.fprintf ppf "immutable" + | Read -> Format.fprintf ppf "read" + | Read_write -> Format.fprintf ppf "read_write" + end) + end + type monadic = { uniqueness : Uniqueness.t; - contention : Contention.t + contention : Contention.t; + visibility : Visibility.t } module Monadic = struct @@ -414,60 +503,84 @@ module Lattices = struct let min = let uniqueness = Uniqueness.min in let contention = Contention.min in - { uniqueness; contention } + let visibility = Visibility.min in + { uniqueness; contention; visibility } let max = let uniqueness = Uniqueness.max in let contention = Contention.max in - { uniqueness; contention } + let visibility = Visibility.max in + { uniqueness; contention; visibility } let legacy = let uniqueness = Uniqueness.legacy in let contention = Contention.legacy in - { uniqueness; contention } + let visibility = Visibility.legacy in + { uniqueness; contention; visibility } let le m1 m2 = - let { uniqueness = uniqueness1; contention = contention1 } = m1 in - let { uniqueness = uniqueness2; contention = contention2 } = m2 in + let { uniqueness = uniqueness1; + contention = contention1; + visibility = visibility1 + } = + m1 + in + let { uniqueness = uniqueness2; + contention = contention2; + visibility = visibility2 + } = + m2 + in Uniqueness.le uniqueness1 uniqueness2 && Contention.le contention1 contention2 + && Visibility.le visibility1 visibility2 let equal m1 m2 = - let { uniqueness = uniqueness1; contention = contention1 } = m1 in - let { uniqueness = uniqueness2; contention = contention2 } = m2 in + let { uniqueness = uniqueness1; + contention = contention1; + visibility = visibility1 + } = + m1 + in + let { uniqueness = uniqueness2; + contention = contention2; + visibility = visibility2 + } = + m2 + in Uniqueness.equal uniqueness1 uniqueness2 && Contention.equal contention1 contention2 + && Visibility.equal visibility1 visibility2 let join m1 m2 = let uniqueness = Uniqueness.join m1.uniqueness m2.uniqueness in let contention = Contention.join m1.contention m2.contention in - { uniqueness; contention } + let visibility = Visibility.join m1.visibility m2.visibility in + { uniqueness; contention; visibility } let meet m1 m2 = let uniqueness = Uniqueness.meet m1.uniqueness m2.uniqueness in let contention = Contention.meet m1.contention m2.contention in - { uniqueness; contention } - - let imply m1 m2 = - let uniqueness = Uniqueness.imply m1.uniqueness m2.uniqueness in - let contention = Contention.imply m1.contention m2.contention in - { uniqueness; contention } + let visibility = Visibility.meet m1.visibility m2.visibility in + { uniqueness; contention; visibility } let subtract m1 m2 = let uniqueness = Uniqueness.subtract m1.uniqueness m2.uniqueness in let contention = Contention.subtract m1.contention m2.contention in - { uniqueness; contention } + let visibility = Visibility.subtract m1.visibility m2.visibility in + { uniqueness; contention; visibility } let print ppf m = - Format.fprintf ppf "%a,%a" Uniqueness.print m.uniqueness Contention.print - m.contention + Format.fprintf ppf "%a,%a,%a" Uniqueness.print m.uniqueness + Contention.print m.contention Visibility.print m.visibility end type 'areality comonadic_with = { areality : 'areality; linearity : Linearity.t; portability : Portability.t; - yielding : Yielding.t + yielding : Yielding.t; + statefulness : Statefulness.t } module Comonadic_with (Areality : Areality) = struct @@ -478,34 +591,39 @@ module Lattices = struct let linearity = Linearity.min in let portability = Portability.min in let yielding = Yielding.min in - { areality; linearity; portability; yielding } + let statefulness = Statefulness.min in + { areality; linearity; portability; yielding; statefulness } let max = let areality = Areality.max in let linearity = Linearity.max in let portability = Portability.max in let yielding = Yielding.max in - { areality; linearity; portability; yielding } + let statefulness = Statefulness.max in + { areality; linearity; portability; yielding; statefulness } let legacy = let areality = Areality.legacy in let linearity = Linearity.legacy in let portability = Portability.legacy in let yielding = Yielding.legacy in - { areality; linearity; portability; yielding } + let statefulness = Statefulness.legacy in + { areality; linearity; portability; yielding; statefulness } let le m1 m2 = let { areality = areality1; linearity = linearity1; portability = portability1; - yielding = yielding1 + yielding = yielding1; + statefulness = statefulness1 } = m1 in let { areality = areality2; linearity = linearity2; portability = portability2; - yielding = yielding2 + yielding = yielding2; + statefulness = statefulness2 } = m2 in @@ -513,19 +631,22 @@ module Lattices = struct && Linearity.le linearity1 linearity2 && Portability.le portability1 portability2 && Yielding.le yielding1 yielding2 + && Statefulness.le statefulness1 statefulness2 let equal m1 m2 = let { areality = areality1; linearity = linearity1; portability = portability1; - yielding = yielding1 + yielding = yielding1; + statefulness = statefulness1 } = m1 in let { areality = areality2; linearity = linearity2; portability = portability2; - yielding = yielding2 + yielding = yielding2; + statefulness = statefulness2 } = m2 in @@ -533,50 +654,85 @@ module Lattices = struct && Linearity.equal linearity1 linearity2 && Portability.equal portability1 portability2 && Yielding.equal yielding1 yielding2 + && Statefulness.equal statefulness1 statefulness2 let join m1 m2 = let areality = Areality.join m1.areality m2.areality in let linearity = Linearity.join m1.linearity m2.linearity in let portability = Portability.join m1.portability m2.portability in let yielding = Yielding.join m1.yielding m2.yielding in - { areality; linearity; portability; yielding } + let statefulness = Statefulness.join m1.statefulness m2.statefulness in + { areality; linearity; portability; yielding; statefulness } let meet m1 m2 = let areality = Areality.meet m1.areality m2.areality in let linearity = Linearity.meet m1.linearity m2.linearity in let portability = Portability.meet m1.portability m2.portability in let yielding = Yielding.meet m1.yielding m2.yielding in - { areality; linearity; portability; yielding } + let statefulness = Statefulness.meet m1.statefulness m2.statefulness in + { areality; linearity; portability; yielding; statefulness } let imply m1 m2 = let areality = Areality.imply m1.areality m2.areality in let linearity = Linearity.imply m1.linearity m2.linearity in let portability = Portability.imply m1.portability m2.portability in let yielding = Yielding.imply m1.yielding m2.yielding in - { areality; linearity; portability; yielding } - - let subtract m1 m2 = - let areality = Areality.subtract m1.areality m2.areality in - let linearity = Linearity.subtract m1.linearity m2.linearity in - let portability = Portability.subtract m1.portability m2.portability in - let yielding = Yielding.subtract m1.yielding m2.yielding in - { areality; linearity; portability; yielding } + let statefulness = Statefulness.imply m1.statefulness m2.statefulness in + { areality; linearity; portability; yielding; statefulness } let print ppf m = - Format.fprintf ppf "%a,%a,%a,%a" Areality.print m.areality Linearity.print - m.linearity Portability.print m.portability Yielding.print m.yielding + Format.fprintf ppf "%a,%a,%a,%a,%a" Areality.print m.areality + Linearity.print m.linearity Portability.print m.portability + Yielding.print m.yielding Statefulness.print m.statefulness end [@@inline] + module Opposite (L : CoHeyting) : Heyting with type t = L.t = struct + type t = L.t + + let min = L.max + + let max = L.min + + let legacy = L.legacy + + let[@inline] le a b = L.le b a + + let equal = L.equal + + let join = L.meet + + let meet = L.join + + let print = L.print + + let imply a b = L.subtract b a + end + [@@inline] + + (* Notes on flipping + + Our lattices are categorized into two fragments: monadic and comonadic. Moreover: + - Morphisms between lattices in the same fragment are always monotone. + - Morphisms between lattices from opposite fragments are always antitone. + + [Solver_mono] only supports monotone morphisms. To conform to this limitation, we + flip all lattices in the monadic fragment, which makes morphisms between opposite + fragments monotone. We submit this category of lattices (original comonadic lattices + + flipped monadic lattices) to [Solver_mono]. + + The resulted interface given by [Solver_mono] therefore has the monadic lattices + flipped, which is unsuitable for the user of [mode.ml]. Therefore, We build on top of + that and provide an interface to the user where monadic lattices are flipped back to + its original ordering. See [module Monadic_gen] and [module Monadic]. + *) + module Uniqueness_op = Opposite (Uniqueness) + module Contention_op = Opposite (Contention) + module Visibility_op = Opposite (Visibility) module Monadic_op = Opposite (Monadic) module Comonadic_with_locality = Comonadic_with (Locality) module Comonadic_with_regionality = Comonadic_with (Regionality) - (* Axes are categorized into monadic and comonadic fragments, and in general: - - Morphisms between the same fragment are always monotone. - - Morphisms between different fragments are always antitone. - To play well with the solver, here we flip the whole monadic fragment, so all - morphisms are monotone. [Solver_polarized] will flip it back. *) type 'a obj = | Locality : Locality.t obj | Regionality : Regionality.t obj @@ -584,7 +740,9 @@ module Lattices = struct | Linearity : Linearity.t obj | Portability : Portability.t obj | Yielding : Yielding.t obj + | Statefulness : Statefulness.t obj | Contention_op : Contention_op.t obj + | Visibility_op : Visibility_op.t obj | Monadic_op : Monadic_op.t obj | Comonadic_with_regionality : Comonadic_with_regionality.t obj | Comonadic_with_locality : Comonadic_with_locality.t obj @@ -597,7 +755,9 @@ module Lattices = struct | Linearity -> Format.fprintf ppf "Linearity" | Portability -> Format.fprintf ppf "Portability" | Yielding -> Format.fprintf ppf "Yielding" + | Statefulness -> Format.fprintf ppf "Statefulness" | Contention_op -> Format.fprintf ppf "Contention_op" + | Visibility_op -> Format.fprintf ppf "Visibility_op" | Monadic_op -> Format.fprintf ppf "Monadic_op" | Comonadic_with_locality -> Format.fprintf ppf "Comonadic_with_locality" | Comonadic_with_regionality -> @@ -608,7 +768,9 @@ module Lattices = struct | Regionality -> Regionality.min | Uniqueness_op -> Uniqueness_op.min | Contention_op -> Contention_op.min + | Visibility_op -> Visibility_op.min | Yielding -> Yielding.min + | Statefulness -> Statefulness.min | Linearity -> Linearity.min | Portability -> Portability.min | Monadic_op -> Monadic_op.min @@ -620,9 +782,11 @@ module Lattices = struct | Regionality -> Regionality.max | Uniqueness_op -> Uniqueness_op.max | Contention_op -> Contention_op.max + | Visibility_op -> Visibility_op.max | Linearity -> Linearity.max | Portability -> Portability.max | Yielding -> Yielding.max + | Statefulness -> Statefulness.max | Monadic_op -> Monadic_op.max | Comonadic_with_locality -> Comonadic_with_locality.max | Comonadic_with_regionality -> Comonadic_with_regionality.max @@ -634,9 +798,11 @@ module Lattices = struct | Regionality -> Regionality.le a b | Uniqueness_op -> Uniqueness_op.le a b | Contention_op -> Contention_op.le a b + | Visibility_op -> Visibility_op.le a b | Linearity -> Linearity.le a b | Portability -> Portability.le a b | Yielding -> Yielding.le a b + | Statefulness -> Statefulness.le a b | Monadic_op -> Monadic_op.le a b | Comonadic_with_locality -> Comonadic_with_locality.le a b | Comonadic_with_regionality -> Comonadic_with_regionality.le a b @@ -648,9 +814,11 @@ module Lattices = struct | Regionality -> Regionality.join a b | Uniqueness_op -> Uniqueness_op.join a b | Contention_op -> Contention_op.join a b + | Visibility_op -> Visibility_op.join a b | Linearity -> Linearity.join a b | Portability -> Portability.join a b | Yielding -> Yielding.join a b + | Statefulness -> Statefulness.join a b | Monadic_op -> Monadic_op.join a b | Comonadic_with_locality -> Comonadic_with_locality.join a b | Comonadic_with_regionality -> Comonadic_with_regionality.join a b @@ -662,9 +830,11 @@ module Lattices = struct | Regionality -> Regionality.meet a b | Uniqueness_op -> Uniqueness_op.meet a b | Contention_op -> Contention_op.meet a b + | Visibility_op -> Visibility_op.meet a b | Linearity -> Linearity.meet a b | Portability -> Portability.meet a b | Yielding -> Yielding.meet a b + | Statefulness -> Statefulness.meet a b | Monadic_op -> Monadic_op.meet a b | Comonadic_with_locality -> Comonadic_with_locality.meet a b | Comonadic_with_regionality -> Comonadic_with_regionality.meet a b @@ -676,36 +846,26 @@ module Lattices = struct | Regionality -> Regionality.imply a b | Uniqueness_op -> Uniqueness_op.imply a b | Contention_op -> Contention_op.imply a b + | Visibility_op -> Visibility_op.imply a b | Linearity -> Linearity.imply a b | Portability -> Portability.imply a b | Yielding -> Yielding.imply a b + | Statefulness -> Statefulness.imply a b | Comonadic_with_locality -> Comonadic_with_locality.imply a b | Comonadic_with_regionality -> Comonadic_with_regionality.imply a b | Monadic_op -> Monadic_op.imply a b - let subtract : type a. a obj -> a -> a -> a = - fun obj a b -> - match obj with - | Locality -> Locality.subtract a b - | Regionality -> Regionality.subtract a b - | Uniqueness_op -> Uniqueness_op.subtract a b - | Contention_op -> Contention_op.subtract a b - | Linearity -> Linearity.subtract a b - | Portability -> Portability.subtract a b - | Yielding -> Yielding.subtract a b - | Comonadic_with_locality -> Comonadic_with_locality.subtract a b - | Comonadic_with_regionality -> Comonadic_with_regionality.subtract a b - | Monadic_op -> Monadic_op.subtract a b - (* not hotpath, Ok to curry *) let print : type a. a obj -> _ -> a -> unit = function | Locality -> Locality.print | Regionality -> Regionality.print | Uniqueness_op -> Uniqueness_op.print | Contention_op -> Contention_op.print + | Visibility_op -> Visibility_op.print | Linearity -> Linearity.print | Portability -> Portability.print | Yielding -> Yielding.print + | Statefulness -> Statefulness.print | Monadic_op -> Monadic_op.print | Comonadic_with_locality -> Comonadic_with_locality.print | Comonadic_with_regionality -> Comonadic_with_regionality.print @@ -720,15 +880,17 @@ module Lattices = struct | Regionality, Regionality -> Some Refl | Uniqueness_op, Uniqueness_op -> Some Refl | Contention_op, Contention_op -> Some Refl + | Visibility_op, Visibility_op -> Some Refl | Linearity, Linearity -> Some Refl | Portability, Portability -> Some Refl | Yielding, Yielding -> Some Refl + | Statefulness, Statefulness -> Some Refl | Monadic_op, Monadic_op -> Some Refl | Comonadic_with_locality, Comonadic_with_locality -> Some Refl | Comonadic_with_regionality, Comonadic_with_regionality -> Some Refl - | ( ( Locality | Regionality | Uniqueness_op | Contention_op | Linearity - | Portability | Yielding | Monadic_op | Comonadic_with_locality - | Comonadic_with_regionality ), + | ( ( Locality | Regionality | Uniqueness_op | Contention_op + | Visibility_op | Linearity | Portability | Yielding | Statefulness + | Monadic_op | Comonadic_with_locality | Comonadic_with_regionality ), _ ) -> None end) @@ -742,12 +904,26 @@ module Lattices_mono = struct module Axis = struct type ('t, 'r) t = | Areality : ('a comonadic_with, 'a) t + | Yielding : ('areality comonadic_with, Yielding.t) t | Linearity : ('areality comonadic_with, Linearity.t) t + | Statefulness : ('areality comonadic_with, Statefulness.t) t | Portability : ('areality comonadic_with, Portability.t) t - | Yielding : ('areality comonadic_with, Yielding.t) t | Uniqueness : (Monadic_op.t, Uniqueness_op.t) t + | Visibility : (Monadic_op.t, Visibility_op.t) t | Contention : (Monadic_op.t, Contention_op.t) t + let to_int : type a b. (a, b) t -> int = function + | Areality -> 0 + | Yielding -> 1 + | Linearity -> 2 + | Statefulness -> 3 + | Portability -> 4 + | Uniqueness -> 5 + | Visibility -> 6 + | Contention -> 7 + + let compare a b = to_int a - to_int b + let print : type p r. _ -> (p, r) t -> unit = fun ppf -> function | Areality -> Format.fprintf ppf "locality" @@ -756,6 +932,8 @@ module Lattices_mono = struct | Uniqueness -> Format.fprintf ppf "uniqueness" | Contention -> Format.fprintf ppf "contention" | Yielding -> Format.fprintf ppf "yielding" + | Statefulness -> Format.fprintf ppf "statefulness" + | Visibility -> Format.fprintf ppf "visibility" let eq : type p r0 r1. (p, r0) t -> (p, r1) t -> (r0, r1) Misc.eq option = fun ax0 ax1 -> @@ -766,8 +944,10 @@ module Lattices_mono = struct | Uniqueness, Uniqueness -> Some Refl | Contention, Contention -> Some Refl | Yielding, Yielding -> Some Refl + | Statefulness, Statefulness -> Some Refl + | Visibility, Visibility -> Some Refl | ( ( Areality | Linearity | Uniqueness | Portability | Contention - | Yielding ), + | Yielding | Statefulness | Visibility ), _ ) -> None @@ -778,30 +958,30 @@ module Lattices_mono = struct | Linearity -> t.linearity | Portability -> t.portability | Yielding -> t.yielding + | Statefulness -> t.statefulness | Uniqueness -> t.uniqueness | Contention -> t.contention + | Visibility -> t.visibility - let update : type p r. (p, r) t -> r -> p -> p = + let set : type p r. (p, r) t -> r -> p -> p = fun ax r t -> match ax with | Areality -> { t with areality = r } | Linearity -> { t with linearity = r } | Portability -> { t with portability = r } | Yielding -> { t with yielding = r } + | Statefulness -> { t with statefulness = r } | Uniqueness -> { t with uniqueness = r } | Contention -> { t with contention = r } + | Visibility -> { t with visibility = r } end type ('a, 'b, 'd) morph = - | Id : ('a, 'a, 'd) morph (** identity morphism *) + | Id : ('a, 'a, 'l * 'r) morph (** identity morphism *) | Meet_with : 'a -> ('a, 'a, 'l * 'r) morph (** Meet the input with the parameter *) - | Imply : 'a -> ('a, 'a, disallowed * 'd) morph + | Imply : 'a -> ('a, 'a, disallowed * 'r) morph (** The right adjoint of [Meet_with] *) - | Join_with : 'a -> ('a, 'a, 'l * 'r) morph - (** Join the input with the parameter *) - | Subtract : 'a -> ('a, 'a, 'd * disallowed) morph - (** The left adjoint of [Join_with] *) | Proj : 't obj * ('t, 'r_) Axis.t -> ('t, 'r_, 'l * 'r) morph (** Project from a product to an axis *) | Max_with : ('t, 'r_) Axis.t -> ('r_, 't, disallowed * 'r) morph @@ -809,8 +989,8 @@ module Lattices_mono = struct | Min_with : ('t, 'r_) Axis.t -> ('r_, 't, 'l * disallowed) morph (** Combine an axis with minima along other axes *) | Map_comonadic : - ('a0, 'a1, 'd) morph - -> ('a0 comonadic_with, 'a1 comonadic_with, 'd) morph + ('a0, 'a1, 'l * 'r) morph + -> ('a0 comonadic_with, 'a1 comonadic_with, 'l * 'r) morph (** Lift an morphism on areality to a morphism on the comonadic fragment *) | Monadic_to_comonadic_min : (Monadic_op.t, 'a comonadic_with, 'l * disallowed) morph @@ -834,8 +1014,11 @@ module Lattices_mono = struct (** Maps regional to global, identity otherwise *) | Global_to_regional : (Locality.t, Regionality.t, disallowed * 'r) morph (** Maps global to regional, local to local *) - | Compose : ('b, 'c, 'd) morph * ('a, 'b, 'd) morph -> ('a, 'c, 'd) morph - (** Compoistion of two morphisms *) + | Compose : + ('b, 'c, 'l * 'r) morph * ('a, 'b, 'l * 'r) morph + -> ('a, 'c, 'l * 'r) morph (** Compoistion of two morphisms *) + constraint 'd = _ * _ + [@@ocaml.warning "-62"] include Magic_allow_disallow (struct type ('a, 'b, 'd) sided = ('a, 'b, 'd) morph constraint 'd = 'l * 'r @@ -847,8 +1030,6 @@ module Lattices_mono = struct | Proj (src, ax) -> Proj (src, ax) | Min_with ax -> Min_with ax | Meet_with c -> Meet_with c - | Join_with c -> Join_with c - | Subtract c -> Subtract c | Compose (f, g) -> let f = allow_left f in let g = allow_left g in @@ -869,7 +1050,6 @@ module Lattices_mono = struct | Id -> Id | Proj (src, ax) -> Proj (src, ax) | Max_with ax -> Max_with ax - | Join_with c -> Join_with c | Meet_with c -> Meet_with c | Imply c -> Imply c | Compose (f, g) -> @@ -893,8 +1073,6 @@ module Lattices_mono = struct | Proj (src, ax) -> Proj (src, ax) | Min_with ax -> Min_with ax | Max_with ax -> Max_with ax - | Join_with c -> Join_with c - | Subtract c -> Subtract c | Meet_with c -> Meet_with c | Imply c -> Imply c | Compose (f, g) -> @@ -920,8 +1098,6 @@ module Lattices_mono = struct | Proj (src, ax) -> Proj (src, ax) | Min_with ax -> Min_with ax | Max_with ax -> Max_with ax - | Join_with c -> Join_with c - | Subtract c -> Subtract c | Meet_with c -> Meet_with c | Imply c -> Imply c | Compose (f, g) -> @@ -955,8 +1131,11 @@ module Lattices_mono = struct | Portability, Comonadic_with_regionality -> Portability | Yielding, Comonadic_with_locality -> Yielding | Yielding, Comonadic_with_regionality -> Yielding + | Statefulness, Comonadic_with_locality -> Statefulness + | Statefulness, Comonadic_with_regionality -> Statefulness | Uniqueness, Monadic_op -> Uniqueness_op | Contention, Monadic_op -> Contention_op + | Visibility, Monadic_op -> Visibility_op let comonadic_with_obj : type a. a obj -> a comonadic_with obj = fun a0 -> @@ -964,20 +1143,19 @@ module Lattices_mono = struct | Locality -> Comonadic_with_locality | Regionality -> Comonadic_with_regionality | Uniqueness_op | Linearity | Monadic_op | Comonadic_with_regionality - | Comonadic_with_locality | Contention_op | Portability | Yielding -> + | Comonadic_with_locality | Contention_op | Visibility_op | Portability + | Yielding | Statefulness -> assert false - let rec src : type a b d. b obj -> (a, b, d) morph -> a obj = + let rec src : type a b l r. b obj -> (a, b, l * r) morph -> a obj = fun dst f -> match f with | Id -> dst | Proj (src, _) -> src | Max_with ax -> proj_obj ax dst | Min_with ax -> proj_obj ax dst - | Join_with _ -> dst | Meet_with _ -> dst | Imply _ -> dst - | Subtract _ -> dst | Compose (f, g) -> let mid = src dst f in src mid g @@ -1023,9 +1201,7 @@ module Lattices_mono = struct not requird to be complete: i.e., it's allowed to return [None] when it should return [Some]. It would cause duplication but not error. *) if c0 = c1 then Some Refl else None - | Join_with c0, Join_with c1 -> if c0 = c1 then Some Refl else None | Imply c0, Imply c1 -> if c0 = c1 then Some Refl else None - | Subtract c0, Subtract c1 -> if c0 = c1 then Some Refl else None | Monadic_to_comonadic_min, Monadic_to_comonadic_min -> Some Refl | Comonadic_to_monadic a0, Comonadic_to_monadic a1 -> ( match eq_obj a0 a1 with None -> None | Some Refl -> Some Refl) @@ -1042,12 +1218,11 @@ module Lattices_mono = struct match equal g0 g1 with None -> None | Some Refl -> Some Refl)) | Map_comonadic f, Map_comonadic g -> ( match equal f g with Some Refl -> Some Refl | None -> None) - | ( ( Id | Proj _ | Max_with _ | Min_with _ | Meet_with _ | Join_with _ + | ( ( Id | Proj _ | Max_with _ | Min_with _ | Meet_with _ | Monadic_to_comonadic_min | Comonadic_to_monadic _ | Monadic_to_comonadic_max | Local_to_regional | Locality_as_regionality | Global_to_regional | Regional_to_local - | Regional_to_global | Compose _ | Map_comonadic _ | Imply _ - | Subtract _ ), + | Regional_to_global | Compose _ | Map_comonadic _ | Imply _ ), _ ) -> None end) @@ -1055,13 +1230,11 @@ module Lattices_mono = struct let eq_morph = Equal_morph.equal let rec print_morph : - type a b d. b obj -> Format.formatter -> (a, b, d) morph -> unit = + type a b l r. b obj -> Format.formatter -> (a, b, l * r) morph -> unit = fun dst ppf -> function | Id -> Format.fprintf ppf "id" - | Join_with c -> Format.fprintf ppf "join(%a)" (print dst) c | Meet_with c -> Format.fprintf ppf "meet(%a)" (print dst) c | Imply c -> Format.fprintf ppf "imply(%a)" (print dst) c - | Subtract c -> Format.fprintf ppf "subtract_%a" (print dst) c | Proj (_, ax) -> Format.fprintf ppf "proj_%a" Axis.print ax | Max_with ax -> Format.fprintf ppf "max_with_%a" Axis.print ax | Min_with ax -> Format.fprintf ppf "min_with_%a" Axis.print ax @@ -1121,9 +1294,19 @@ module Lattices_mono = struct | Locality.Local -> Regionality.Local | Locality.Global -> Regionality.Regional - let min_with dst ax a = Axis.update ax a (min dst) + let statefulness_to_visibility = function + | Statefulness.Stateless -> Visibility.Immutable + | Statefulness.Observing -> Visibility.Read + | Statefulness.Stateful -> Visibility.Read_write - let max_with dst ax a = Axis.update ax a (max dst) + let visibility_to_statefulness = function + | Visibility.Immutable -> Statefulness.Stateless + | Visibility.Read -> Statefulness.Observing + | Visibility.Read_write -> Statefulness.Stateful + + let min_with dst ax a = Axis.set ax a (min dst) + + let max_with dst ax a = Axis.set ax a (max dst) let monadic_to_comonadic_min : type a. a comonadic_with obj -> Monadic_op.t -> a comonadic_with = @@ -1136,14 +1319,16 @@ module Lattices_mono = struct let linearity = unique_to_linear m.uniqueness in let portability = contended_to_portable m.contention in let yielding = Yielding.min in - { areality; linearity; portability; yielding } + let statefulness = visibility_to_statefulness m.visibility in + { areality; linearity; portability; yielding; statefulness } let comonadic_to_monadic : type a. a comonadic_with obj -> a comonadic_with -> Monadic_op.t = fun _ m -> let uniqueness = linear_to_unique m.linearity in let contention = portable_to_contended m.portability in - { uniqueness; contention } + let visibility = statefulness_to_visibility m.statefulness in + { uniqueness; contention; visibility } let monadic_to_comonadic_max : type a. a comonadic_with obj -> Monadic_op.t -> a comonadic_with = @@ -1156,9 +1341,10 @@ module Lattices_mono = struct let linearity = unique_to_linear m.uniqueness in let portability = contended_to_portable m.contention in let yielding = Yielding.max in - { areality; linearity; portability; yielding } + let statefulness = visibility_to_statefulness m.visibility in + { areality; linearity; portability; yielding; statefulness } - let rec apply : type a b d. b obj -> (a, b, d) morph -> a -> b = + let rec apply : type a b l r. b obj -> (a, b, l * r) morph -> a -> b = fun dst f a -> match f with | Compose (f, g) -> @@ -1171,9 +1357,7 @@ module Lattices_mono = struct | Max_with ax -> max_with dst ax a | Min_with ax -> min_with dst ax a | Meet_with c -> meet dst c a - | Join_with c -> join dst c a | Imply c -> imply dst c a - | Subtract c -> subtract dst a c | Monadic_to_comonadic_min -> monadic_to_comonadic_min dst a | Comonadic_to_monadic src -> comonadic_to_monadic src a | Monadic_to_comonadic_max -> monadic_to_comonadic_max dst a @@ -1190,38 +1374,27 @@ module Lattices_mono = struct (** Compose m0 after m1. Returns [Some f] if the composition can be represented by [f] instead of [Compose m0 m1]. [None] otherwise. *) let rec maybe_compose : - type a b c d. - c obj -> (b, c, d) morph -> (a, b, d) morph -> (a, c, d) morph option = + type a b c l r. + c obj -> + (b, c, l * r) morph -> + (a, b, l * r) morph -> + (a, c, l * r) morph option = fun dst m0 m1 -> let is_max c = le dst (max dst) c in - let is_min c = le dst c (min dst) in let is_mid_max c = let mid = src dst m0 in le mid (max mid) c in - let is_mid_min c = - let mid = src dst m0 in - le mid c (min mid) - in match m0, m1 with | Id, m -> Some m | m, Id -> Some m | Meet_with c0, Meet_with c1 -> Some (Meet_with (meet dst c0 c1)) - | Join_with c0, Join_with c1 -> Some (Join_with (join dst c0 c1)) | Imply c0, Imply c1 -> Some (Imply (meet dst c0 c1)) - | Subtract c0, Subtract c1 -> Some (Subtract (join dst c0 c1)) - | Imply c0, Join_with c1 when le dst c0 c1 -> Some (Join_with (max dst)) | Imply c0, Meet_with c1 when le dst c0 c1 -> Some (Imply c0) - | Subtract c0, Meet_with c1 when le dst c1 c0 -> Some (Meet_with (min dst)) - | Subtract c0, Join_with c1 when le dst c1 c0 -> Some (Subtract c0) | Meet_with c0, m1 when is_max c0 -> Some m1 - | Join_with c0, m1 when is_min c0 -> Some m1 | Imply c0, m1 when is_max c0 -> Some m1 - | Subtract c0, m1 when is_min c0 -> Some m1 | m1, Meet_with c0 when is_mid_max c0 -> Some m1 - | m1, Join_with c0 when is_mid_min c0 -> Some m1 | m1, Imply c0 when is_mid_max c0 -> Some m1 - | m1, Subtract c0 when is_mid_min c0 -> Some m1 | Compose (f0, f1), g -> ( let mid = src dst f0 in match maybe_compose mid f1 g with @@ -1234,8 +1407,6 @@ module Lattices_mono = struct | None -> None) | Proj (mid, ax), Meet_with c -> Some (compose dst (Meet_with (Axis.proj ax c)) (Proj (mid, ax))) - | Proj (mid, ax), Join_with c -> - Some (compose dst (Join_with (Axis.proj ax c)) (Proj (mid, ax))) | Proj (_, ax0), Max_with ax1 -> ( match Axis.eq ax0 ax1 with None -> None | Some Refl -> Some Id) | Proj (_, ax0), Min_with ax1 -> ( @@ -1246,7 +1417,8 @@ module Lattices_mono = struct | Areality -> Some (compose dst f (Proj (src', Areality))) | Linearity -> Some (Proj (src', Linearity)) | Portability -> Some (Proj (src', Portability)) - | Yielding -> Some (Proj (src', Yielding))) + | Yielding -> Some (Proj (src', Yielding)) + | Statefulness -> Some (Proj (src', Statefulness))) | Proj _, Monadic_to_comonadic_min -> None | Proj _, Monadic_to_comonadic_max -> None | Proj _, Comonadic_to_monadic _ -> None @@ -1254,41 +1426,21 @@ module Lattices_mono = struct let dst0 = proj_obj Areality dst in Some (Map_comonadic (compose dst0 f g)) | Regional_to_local, Local_to_regional -> Some Id - | Regional_to_local, Global_to_regional -> Some (Join_with Locality.Local) + | Regional_to_local, Global_to_regional -> Some (Imply Locality.Global) | Regional_to_local, Locality_as_regionality -> Some Id | Regional_to_local, Meet_with c -> Some (compose dst (Meet_with (regional_to_local c)) Regional_to_local) - | Regional_to_local, Join_with c -> - Some (compose dst (Join_with (regional_to_local c)) Regional_to_local) - | Regional_to_global, Join_with c -> - Some (compose dst (Join_with (regional_to_global c)) Regional_to_global) | Regional_to_global, Meet_with c -> Some (compose dst (Meet_with (regional_to_global c)) Regional_to_global) | Local_to_regional, Meet_with c -> Some (compose dst (Meet_with (local_to_regional c)) Local_to_regional) - | Local_to_regional, Join_with c -> - Some (compose dst (Join_with (local_to_regional c)) Local_to_regional) | Global_to_regional, Meet_with c -> Some (compose dst (Meet_with (global_to_regional c)) Global_to_regional) - | Global_to_regional, Join_with c -> - Some (compose dst (Join_with (global_to_regional c)) Global_to_regional) | Locality_as_regionality, Meet_with c -> Some (compose dst (Meet_with (locality_as_regionality c)) Locality_as_regionality) - | Locality_as_regionality, Join_with c -> - Some - (compose dst - (Join_with (locality_as_regionality c)) - Locality_as_regionality) - | Map_comonadic f, Join_with c -> - let dst0 = proj_obj Areality dst in - let areality = Axis.proj Areality c in - Some - (compose dst - (Join_with (set_areality (min dst0) c)) - (Map_comonadic (compose dst0 f (Join_with areality)))) | Map_comonadic f, Meet_with c -> let dst0 = proj_obj Areality dst in let areality = Axis.proj Areality c in @@ -1303,13 +1455,6 @@ module Lattices_mono = struct (compose dst (Imply (set_areality (max dst0) c)) (Map_comonadic (compose dst0 f (Imply areality)))) - | Map_comonadic f, Subtract c -> - let dst0 = proj_obj Areality dst in - let areality = Axis.proj Areality c in - Some - (compose dst - (Subtract (set_areality (min dst0) c)) - (Map_comonadic (compose dst0 f (Subtract areality)))) | Regional_to_global, Locality_as_regionality -> Some Id | Regional_to_global, Local_to_regional -> Some (Meet_with Locality.Global) | Local_to_regional, Regional_to_local -> None @@ -1323,12 +1468,8 @@ module Lattices_mono = struct | Max_with _, _ -> None | _, Meet_with _ -> None | Meet_with _, _ -> None - | _, Join_with _ -> None - | Join_with _, _ -> None | _, Imply _ -> None | Imply _, _ -> None - | _, Subtract _ -> None - | Subtract _, _ -> None | _, Proj _ -> None | Map_comonadic _, _ -> None | Monadic_to_comonadic_min, _ -> None @@ -1348,8 +1489,9 @@ module Lattices_mono = struct . and compose : - type a b c d. - c obj -> (b, c, d) morph -> (a, b, d) morph -> (a, c, d) morph = + type a b c l r. + c obj -> (b, c, l * r) morph -> (a, b, l * r) morph -> (a, c, l * r) morph + = fun dst f g -> match maybe_compose dst f g with Some m -> m | None -> Compose (f, g) @@ -1366,7 +1508,6 @@ module Lattices_mono = struct let f' = left_adjoint dst f in let g' = left_adjoint mid g in Compose (g', f') - | Join_with c -> Subtract c | Meet_with _c -> (* The downward closure of [Meet_with c]'s image is all [x <= c]. For those, [x <= meet c y] is equivalent to [x <= y]. *) @@ -1397,11 +1538,6 @@ module Lattices_mono = struct let g' = right_adjoint mid g in Compose (g', f') | Meet_with c -> Imply c - | Subtract c -> Join_with c - | Join_with _c -> - (* The upward closure of [Join_with c]'s image is all [x >= c]. - For those, [join c y <= x] is equivalent to [y <= x]. *) - Id | Comonadic_to_monadic _ -> Monadic_to_comonadic_max | Monadic_to_comonadic_min -> Comonadic_to_monadic dst | Local_to_regional -> Regional_to_local @@ -1415,18 +1551,21 @@ module Lattices_mono = struct end module C = Lattices_mono -module S = Solvers_polarized (C) +module Solver = Solver_mono (C) +module S = Solver type monadic = C.monadic = { uniqueness : C.Uniqueness.t; - contention : C.Contention.t + contention : C.Contention.t; + visibility : C.Visibility.t } type 'a comonadic_with = 'a C.comonadic_with = { areality : 'a; linearity : C.Linearity.t; portability : C.Portability.t; - yielding : C.Yielding.t + yielding : C.Yielding.t; + statefulness : C.Statefulness.t } module Axis = C.Axis @@ -1440,16 +1579,12 @@ let append_changes : (changes ref -> unit) ref = ref (fun _ -> assert false) let set_append_changes f = append_changes := f -type ('a, 'd) mode_monadic = ('a, 'd) S.Negative.mode - -type ('a, 'd) mode_comonadic = ('a, 'd) S.Positive.mode +type ('a, 'd) mode = ('a, 'd) S.mode (** Representing a single object *) module type Obj = sig type const - module Solver : S.Solver_polarized - val obj : const C.obj end @@ -1491,10 +1626,10 @@ let equate_from_submode' submode m0 m1 = | Ok () -> Ok ()) [@@inline] -module Common (Obj : Obj) = struct +module Comonadic_gen (Obj : Obj) = struct open Obj - type 'd t = (const, 'd) Solver.mode + type 'd t = (const, 'l * 'r) Solver.mode constraint 'd = 'l * 'r type l = (allowed * disallowed) t @@ -1548,6 +1683,10 @@ module Common (Obj : Obj) = struct let of_const : type l r. const -> (l * r) t = fun a -> Solver.of_const obj a + let meet_const c m = Solver.apply obj (Meet_with c) m + + let imply c m = Solver.apply obj (Imply c) (Solver.disallow_left m) + module Guts = struct let get_floor m = Solver.get_floor obj m @@ -1560,18 +1699,88 @@ module Common (Obj : Obj) = struct end [@@inline] +module Monadic_gen (Obj : Obj) = struct + (* Monadic lattices are flipped. See "Notes on flipping". *) + open Obj + + type 'd t = (const, 'r * 'l) Solver.mode constraint 'd = 'l * 'r + + type l = (allowed * disallowed) t + + type r = (disallowed * allowed) t + + type lr = (allowed * allowed) t + + type nonrec error = const error + + type equate_error = equate_step * error + + type (_, _, 'd) sided = 'd t + + let flip_error = function + | Ok _ as r -> r + | Error { left; right } -> Error { left = right; right = left } + + let disallow_right m = Solver.disallow_left m + + let disallow_left m = Solver.disallow_right m + + let allow_left m = Solver.allow_right m + + let allow_right m = Solver.allow_left m + + let newvar () = Solver.newvar obj + + let min = Solver.max obj + + let max = Solver.min obj + + let newvar_above m = Solver.newvar_below obj m + + let newvar_below m = Solver.newvar_above obj m + + let submode_log a b ~log = Solver.submode obj b a ~log |> flip_error + + let submode a b = try_with_log (submode_log a b) + + let join l = Solver.meet obj l + + let meet l = Solver.join obj l + + let submode_exn m0 m1 = assert (submode m0 m1 |> Result.is_ok) + + let equate a b = try_with_log (equate_from_submode submode_log a b) + + let equate_exn m0 m1 = assert (equate m0 m1 |> Result.is_ok) + + let print ?verbose () ppf m = Solver.print ?verbose obj ppf m + + let zap_to_ceil m = with_log (Solver.zap_to_floor obj m) + + let zap_to_floor m = with_log (Solver.zap_to_ceil obj m) + + let of_const : type l r. const -> (l * r) t = fun a -> Solver.of_const obj a + + let join_const c m = Solver.apply Obj.obj (Meet_with c) m + + let subtract c m = Solver.apply obj (Imply c) (Solver.disallow_left m) + + module Guts = struct + let get_ceil m = Solver.get_floor obj m + end +end +[@@inline] + module Locality = struct module Const = C.Locality module Obj = struct type const = Const.t - module Solver = S.Positive - let obj = C.Locality end - include Common (Obj) + include Comonadic_gen (Obj) let global = of_const Global @@ -1600,12 +1809,10 @@ module Regionality = struct module Obj = struct type const = Const.t - module Solver = S.Positive - let obj = C.Regionality end - include Common (Obj) + include Comonadic_gen (Obj) let local = of_const Const.Local @@ -1624,12 +1831,10 @@ module Linearity = struct module Obj = struct type const = Const.t - module Solver = S.Positive - let obj : _ C.obj = C.Linearity end - include Common (Obj) + include Comonadic_gen (Obj) let many = of_const Many @@ -1640,22 +1845,68 @@ module Linearity = struct let zap_to_legacy = zap_to_floor end +module Statefulness = struct + module Const = C.Statefulness + + module Obj = struct + type const = Const.t + + let obj = C.Statefulness + end + + include Comonadic_gen (Obj) + + let stateless = of_const Stateless + + let observing = of_const Observing + + let stateful = of_const Stateful + + let legacy = of_const Const.legacy + + let zap_to_legacy = zap_to_ceil +end + +module Visibility = struct + module Const = C.Visibility + module Const_op = C.Visibility_op + + module Obj = struct + type const = Const.t + + let obj = C.Visibility_op + end + + include Monadic_gen (Obj) + + let immutable = of_const Immutable + + let read = of_const Read + + let read_write = of_const Read_write + + let legacy = of_const Const.legacy + + let zap_to_legacy = zap_to_floor +end + module Portability = struct module Const = C.Portability module Obj = struct type const = Const.t - module Solver = S.Positive - let obj : _ C.obj = C.Portability end - include Common (Obj) + include Comonadic_gen (Obj) let legacy = of_const Const.legacy - let zap_to_legacy = zap_to_ceil + let zap_to_legacy ~statefulness = + match statefulness with + | Statefulness.Const.Stateful | Statefulness.Const.Observing -> zap_to_ceil + | Statefulness.Const.Stateless -> zap_to_floor end module Uniqueness = struct @@ -1665,13 +1916,10 @@ module Uniqueness = struct module Obj = struct type const = Const.t - (* the negation of Uniqueness_op gives us the proper uniqueness *) - module Solver = S.Negative - let obj = C.Uniqueness_op end - include Common (Obj) + include Monadic_gen (Obj) let aliased = of_const Aliased @@ -1689,17 +1937,18 @@ module Contention = struct module Obj = struct type const = Const.t - (* the negation of Contention_op gives us the proper contention *) - module Solver = S.Negative - let obj = C.Contention_op end - include Common (Obj) + include Monadic_gen (Obj) let legacy = of_const Const.legacy - let zap_to_legacy = zap_to_floor + (* CR dkalinichenko: ideally, [read] should zap to [shared]. *) + let zap_to_legacy ~visibility = + match visibility with + | Visibility.Const.Read_write | Visibility.Const.Read -> zap_to_floor + | Visibility.Const.Immutable -> zap_to_ceil end module Yielding = struct @@ -1708,47 +1957,64 @@ module Yielding = struct module Obj = struct type const = Const.t - module Solver = S.Positive - let obj = C.Yielding end - include Common (Obj) + include Comonadic_gen (Obj) + + let yielding = of_const Yielding + + let unyielding = of_const Unyielding let legacy = of_const Const.legacy - let zap_to_legacy = zap_to_floor + (* [unyielding] is the default for [global]s and [yielding] for [local] + or [regional] values, so we vary [zap_to_legacy] accordingly. *) + let zap_to_legacy ~global = + match global with true -> zap_to_floor | false -> zap_to_ceil end -let regional_to_local m = - S.Positive.via_monotone Locality.Obj.obj C.Regional_to_local m +let regional_to_local m = S.apply Locality.Obj.obj C.Regional_to_local m let locality_as_regionality m = - S.Positive.via_monotone Regionality.Obj.obj C.Locality_as_regionality m + S.apply Regionality.Obj.obj C.Locality_as_regionality m -let regional_to_global m = - S.Positive.via_monotone Locality.Obj.obj C.Regional_to_global m +let regional_to_global m = S.apply Locality.Obj.obj C.Regional_to_global m module type Areality = sig module Const : C.Areality - module Obj : Obj with type const = Const.t and module Solver = S.Positive + module Obj : Obj with type const = Const.t - val zap_to_legacy : (Const.t, allowed * 'r) Obj.Solver.mode -> Const.t + val zap_to_legacy : (Const.t, allowed * 'r) Solver.mode -> Const.t +end + +module Lattice_Product (L : Lattice) = struct + open L + + type 'a axis = (t, 'a) Axis.t + + let min_with ax c = Axis.set ax c min + + let max_with ax c = Axis.set ax c max + + let min_axis ax = Axis.proj ax min + + let max_axis ax = Axis.proj ax max end module Comonadic_with (Areality : Areality) = struct module Obj = struct - type const = Areality.Obj.const C.comonadic_with - - module Solver = S.Positive + type const = Areality.Const.t C.comonadic_with let obj = C.comonadic_with_obj Areality.Obj.obj end - include Common (Obj) + include Comonadic_gen (Obj) - type error = Error : (Obj.const, 'a) C.Axis.t * 'a Solver.error -> error + type 'a axis = (Obj.const, 'a) C.Axis.t + + type error = Error : 'a axis * 'a Solver.error -> error type equate_error = equate_step * error @@ -1756,27 +2022,16 @@ module Comonadic_with (Areality : Areality) = struct module Const = struct include C.Comonadic_with (Areality.Const) + include Lattice_Product (C.Comonadic_with (Areality.Const)) - let eq a b = le a b && le b a + let print_axis ax ppf a = + let obj = proj_obj ax in + C.print obj ppf a let le_axis ax a b = let obj = proj_obj ax in C.le obj a b - let min_axis ax = - let obj = proj_obj ax in - C.min obj - - let max_axis ax = - let obj = proj_obj ax in - C.max obj - - let max_with ax c = Axis.update ax c (C.max Obj.obj) - - let print_axis ax ppf a = - let obj = proj_obj ax in - C.print obj ppf a - let lattice_of_axis (type a) (axis : (t, a) Axis.t) : (module Lattice with type t = a) = match axis with @@ -1784,36 +2039,29 @@ module Comonadic_with (Areality : Areality) = struct | Linearity -> (module Linearity.Const) | Portability -> (module Portability.Const) | Yielding -> (module Yielding.Const) + | Statefulness -> (module Statefulness.Const) end - let proj ax m = Obj.Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m - - let meet_const c m = Obj.Solver.via_monotone Obj.obj (Meet_with c) m - - let join_const c m = Obj.Solver.via_monotone Obj.obj (Join_with c) m + let proj ax m = Solver.apply (proj_obj ax) (Proj (Obj.obj, ax)) m let min_with ax m = - Obj.Solver.via_monotone Obj.obj (Min_with ax) (Obj.Solver.disallow_right m) + Solver.apply Obj.obj (Min_with ax) (Solver.disallow_right m) let max_with ax m = - Obj.Solver.via_monotone Obj.obj (Max_with ax) (Obj.Solver.disallow_left m) - - let join_with ax c m = join_const (C.min_with Obj.obj ax c) m + Solver.apply Obj.obj (Max_with ax) (Solver.disallow_left m) - let meet_with ax c m = meet_const (C.max_with Obj.obj ax c) m + let meet_with ax c m = meet_const (Const.max_with ax c) m let zap_to_legacy m : Const.t = let areality = proj Areality m |> Areality.zap_to_legacy in let linearity = proj Linearity m |> Linearity.zap_to_legacy in - let portability = proj Portability m |> Portability.zap_to_legacy in - let yielding = proj Yielding m |> Yielding.zap_to_legacy in - { areality; linearity; portability; yielding } - - let imply c m = - Obj.Solver.via_monotone Obj.obj (Imply c) (Obj.Solver.disallow_left m) - - let subtract c m = - Obj.Solver.via_monotone Obj.obj (Subtract c) (Obj.Solver.disallow_right m) + let statefulness = proj Statefulness m |> Statefulness.zap_to_legacy in + let portability = + proj Portability m |> Portability.zap_to_legacy ~statefulness + in + let global = Areality.Const.(equal areality legacy) in + let yielding = proj Yielding m |> Yielding.zap_to_legacy ~global in + { areality; linearity; portability; yielding; statefulness } let legacy = of_const Const.legacy @@ -1822,13 +2070,15 @@ module Comonadic_with (Areality : Areality) = struct { areality = areality1; linearity = linearity1; portability = portability1; - yielding = yielding1 + yielding = yielding1; + statefulness = statefulness1 }; right = { areality = areality2; linearity = linearity2; portability = portability2; - yielding = yielding2 + yielding = yielding2; + statefulness = statefulness2 } } = err @@ -1840,7 +2090,15 @@ module Comonadic_with (Areality : Areality) = struct if Portability.Const.le portability1 portability2 then if Yielding.Const.le yielding1 yielding2 - then assert false + then + if Statefulness.Const.le statefulness1 statefulness2 + then assert false + else + Error + ( Statefulness, + { left = err.left.statefulness; + right = err.right.statefulness + } ) else Error ( Yielding, @@ -1869,19 +2127,18 @@ end [@@inline] module Monadic = struct + (* Monadic lattices are flipped. See "Notes on flipping". *) module Obj = struct type const = C.Monadic_op.t - (* Negative solver on the opposite of monadic should give the monadic - fragment with original ordering *) - module Solver = S.Negative - let obj = C.Monadic_op end - include Common (Obj) + include Monadic_gen (Obj) + + type 'a axis = (Obj.const, 'a) C.Axis.t - type error = Error : (Obj.const, 'a) C.Axis.t * 'a Solver.error -> error + type error = Error : 'a axis * 'a Solver.error -> error type equate_error = equate_step * error @@ -1889,19 +2146,11 @@ module Monadic = struct module Const = struct include C.Monadic + include Lattice_Product (C.Monadic) - (* CR zqian: The flipping logic leaking to here is bad. Refactoring needed. *) - - (* Monadic fragment is flipped, so are the following definitions. *) - let min_with ax c = Axis.update ax c (C.max Obj.obj) - - let min_axis ax = - let obj = proj_obj ax in - C.max obj - - let max_axis ax = + let print_axis ax ppf a = let obj = proj_obj ax in - C.min obj + C.print obj ppf a let le_axis ax a b = let obj = proj_obj ax in @@ -1912,53 +2161,57 @@ module Monadic = struct match axis with | Uniqueness -> (module Uniqueness.Const_op) | Contention -> (module Contention.Const_op) + | Visibility -> (module Visibility.Const_op) end module Const_op = C.Monadic_op - let proj ax m = Obj.Solver.via_monotone (proj_obj ax) (Proj (Obj.obj, ax)) m - - (* The monadic fragment is inverted. Most of the inversion logic is taken care - by [Solver_polarized], but some remain, such as the [Min_with] below which - is inverted from [Max_with]. *) + let proj ax m = Solver.apply (proj_obj ax) (Proj (Obj.obj, ax)) m - let meet_const c m = Obj.Solver.via_monotone Obj.obj (Join_with c) m - - let join_const c m = Obj.Solver.via_monotone Obj.obj (Meet_with c) m + (* The monadic fragment is inverted. *) let max_with ax m = - Obj.Solver.via_monotone Obj.obj (Min_with ax) (Obj.Solver.disallow_left m) + Solver.apply Obj.obj (Min_with ax) (Solver.disallow_right m) let min_with ax m = - Obj.Solver.via_monotone Obj.obj (Max_with ax) (Obj.Solver.disallow_right m) - - let join_with ax c m = join_const (C.max_with Obj.obj ax c) m - - let meet_with ax c m = meet_const (C.min_with Obj.obj ax c) m + Solver.apply Obj.obj (Max_with ax) (Solver.disallow_left m) - let imply c m = - Obj.Solver.via_monotone Obj.obj (Subtract c) (Obj.Solver.disallow_left m) - - let subtract c m = - Obj.Solver.via_monotone Obj.obj (Imply c) (Obj.Solver.disallow_right m) + let join_with ax c m = join_const (Const.min_with ax c) m let zap_to_legacy m : Const.t = let uniqueness = proj Uniqueness m |> Uniqueness.zap_to_legacy in - let contention = proj Contention m |> Contention.zap_to_legacy in - { uniqueness; contention } + let visibility = proj Visibility m |> Visibility.zap_to_legacy in + let contention = + proj Contention m |> Contention.zap_to_legacy ~visibility + in + { uniqueness; contention; visibility } let legacy = of_const Const.legacy let axis_of_error (err : Obj.const Solver.error) : error = - let { left = { uniqueness = uniqueness1; contention = contention1 }; - right = { uniqueness = uniqueness2; contention = contention2 } + let { left = + { uniqueness = uniqueness1; + contention = contention1; + visibility = visibility1 + }; + right = + { uniqueness = uniqueness2; + contention = contention2; + visibility = visibility2 + } } = err in if Uniqueness.Const.le uniqueness1 uniqueness2 then if Contention.Const.le contention1 contention2 - then assert false + then + if Visibility.Const.le visibility1 visibility2 + then assert false + else + Error + ( Visibility, + { left = err.left.visibility; right = err.right.visibility } ) else Error ( Contention, @@ -1997,61 +2250,84 @@ module Value_with (Areality : Areality) = struct type lr = (allowed * allowed) t - type ('m, 'a, 'd) axis = - | Monadic : - (Monadic.Const.t, 'a) Axis.t - -> (('a, 'd) mode_monadic, 'a, 'd) axis - | Comonadic : - (Comonadic.Const.t, 'a) Axis.t - -> (('a, 'd) mode_comonadic, 'a, 'd) axis - - type 'd axis_packed = P : ('m, 'a, 'd) axis -> 'd axis_packed - - let print_axis (type m a d) ppf (axis : (m, a, d) axis) = - match axis with - | Monadic ax -> Axis.print ppf ax - | Comonadic ax -> Axis.print ppf ax - - let lattice_of_axis (type m a d) (axis : (m, a, d) axis) : - (module Lattice with type t = a) = - match axis with - | Comonadic ax -> Comonadic.Const.lattice_of_axis ax - | Monadic ax -> Monadic.Const.lattice_of_axis ax - - let all_axes = - [ P (Comonadic Areality); - P (Monadic Uniqueness); - P (Comonadic Linearity); - P (Monadic Contention); - P (Comonadic Portability) ] - - let proj_obj : type m a d. (m, a, d) axis -> a C.obj = function + module Axis = struct + type ('a, 'd0, 'd1) t = + | Monadic : (Monadic.Const.t, 'a) Axis.t -> ('a, 'd, 'd neg) t + | Comonadic : (Comonadic.Const.t, 'a) Axis.t -> ('a, 'd, 'd pos) t + + let compare : type a d0 d1 b e0 e1. (a, d0, d1) t -> (b, e0, e1) t -> int = + fun t0 t1 -> + match t0, t1 with + | Monadic t0, Monadic t1 -> Axis.compare t0 t1 + | Monadic _, Comonadic _ -> 1 + | Comonadic _, Monadic _ -> -1 + | Comonadic t0, Comonadic t1 -> Axis.compare t0 t1 + + type packed = P : (_, _, _) t -> packed + + let print (type a d0 d1) ppf (t : (a, d0, d1) t) = + match t with + | Monadic ax -> Axis.print ppf ax + | Comonadic ax -> Axis.print ppf ax + + let all = + [ P (Comonadic Areality); + P (Comonadic Linearity); + P (Monadic Uniqueness); + P (Comonadic Portability); + P (Monadic Contention); + P (Comonadic Yielding); + P (Comonadic Statefulness); + P (Monadic Visibility) ] + |> List.sort (fun (P ax0) (P ax1) -> compare ax0 ax1) + end + + let proj_obj : type a d0 d1. (a, d0, d1) Axis.t -> a C.obj = function | Monadic ax -> Monadic.proj_obj ax | Comonadic ax -> Comonadic.proj_obj ax - type ('a, 'b, 'c, 'd, 'e, 'f) modes = + type ('a, 'b, 'c, 'd, 'e, 'f, 'g, 'h) modes = { areality : 'a; linearity : 'b; uniqueness : 'c; portability : 'd; contention : 'e; - yielding : 'f + yielding : 'f; + statefulness : 'g; + visibility : 'h } let split - { areality; linearity; portability; yielding; uniqueness; contention } = - let monadic : Monadic.Const.t = { uniqueness; contention } in + { areality; + linearity; + portability; + yielding; + statefulness; + uniqueness; + contention; + visibility + } = + let monadic : Monadic.Const.t = { uniqueness; contention; visibility } in let comonadic : Comonadic.Const.t = - { areality; linearity; portability; yielding } + { areality; linearity; portability; yielding; statefulness } in { comonadic; monadic } let merge { comonadic; monadic } = - let ({ areality; linearity; portability; yielding } : Comonadic.Const.t) = + let ({ areality; linearity; portability; yielding; statefulness } + : Comonadic.Const.t) = comonadic in - let ({ uniqueness; contention } : Monadic.Const.t) = monadic in - { areality; linearity; portability; yielding; uniqueness; contention } + let ({ uniqueness; contention; visibility } : Monadic.Const.t) = monadic in + { areality; + linearity; + portability; + yielding; + statefulness; + uniqueness; + contention; + visibility + } let print ?verbose () ppf { monadic; comonadic } = Format.fprintf ppf "%a;%a" @@ -2076,7 +2352,9 @@ module Value_with (Areality : Areality) = struct Uniqueness.Const.t, Portability.Const.t, Contention.Const.t, - Yielding.Const.t ) + Yielding.Const.t, + Statefulness.Const.t, + Visibility.Const.t ) modes let min = merge { comonadic = Comonadic.min; monadic = Monadic.min } @@ -2115,6 +2393,12 @@ module Value_with (Areality : Areality) = struct let comonadic = Comonadic.join m0.comonadic m1.comonadic in merge { monadic; comonadic } + let lattice_of_axis (type a d0 d1) (axis : (a, d0, d1) Axis.t) : + (module Lattice with type t = a) = + match axis with + | Comonadic ax -> Comonadic.lattice_of_axis ax + | Monadic ax -> Monadic.lattice_of_axis ax + module Option = struct type some = t @@ -2124,7 +2408,9 @@ module Value_with (Areality : Areality) = struct Uniqueness.Const.t option, Portability.Const.t option, Contention.Const.t option, - Yielding.Const.t option ) + Yielding.Const.t option, + Statefulness.Const.t option, + Visibility.Const.t option ) modes let none = @@ -2133,7 +2419,9 @@ module Value_with (Areality : Areality) = struct linearity = None; portability = None; contention = None; - yielding = None + yielding = None; + statefulness = None; + visibility = None } let value opt ~default = @@ -2149,16 +2437,37 @@ module Value_with (Areality : Areality) = struct Option.value opt.contention ~default:default.contention in let yielding = Option.value opt.yielding ~default:default.yielding in - { areality; uniqueness; linearity; portability; contention; yielding } + let statefulness = + Option.value opt.statefulness ~default:default.statefulness + in + let visibility = + Option.value opt.visibility ~default:default.visibility + in + { areality; + uniqueness; + linearity; + portability; + contention; + yielding; + statefulness; + visibility + } let print ppf - { areality; uniqueness; linearity; portability; contention; yielding } - = + { areality; + uniqueness; + linearity; + portability; + contention; + yielding; + statefulness; + visibility + } = let option_print print ppf = function | None -> Format.fprintf ppf "None" | Some a -> Format.fprintf ppf "Some %a" print a in - Format.fprintf ppf "%a,%a,%a,%a,%a,%a" + Format.fprintf ppf "%a,%a,%a,%a,%a,%a,%a,%a" (option_print Areality.Const.print) areality (option_print Linearity.Const.print) @@ -2171,6 +2480,10 @@ module Value_with (Areality : Areality) = struct contention (option_print Yielding.Const.print) yielding + (option_print Statefulness.Const.print) + statefulness + (option_print Visibility.Const.print) + visibility end let diff m0 m1 = @@ -2183,7 +2496,19 @@ module Value_with (Areality : Areality) = struct in let contention = diff Contention.Const.le m0.contention m1.contention in let yielding = diff Yielding.Const.le m0.yielding m1.yielding in - { areality; linearity; uniqueness; portability; contention; yielding } + let statefulness = + diff Statefulness.Const.le m0.statefulness m1.statefulness + in + let visibility = diff Visibility.Const.le m0.visibility m1.visibility in + { areality; + linearity; + uniqueness; + portability; + contention; + yielding; + statefulness; + visibility + } (** See [Alloc.close_over] for explanation. *) let close_over m = @@ -2203,29 +2528,29 @@ module Value_with (Areality : Areality) = struct let monadic = Monadic.min in merge { comonadic; monadic } - let print_axis : type m a d. (m, a, d) axis -> _ -> a -> unit = + let print_axis : type a. (a, _, _) Axis.t -> _ -> a -> unit = fun ax ppf a -> let obj = proj_obj ax in C.print obj ppf a - let le_axis : type m a d. (m, a, d) axis -> a -> a -> bool = + let le_axis : type a d0 d1. (a, d0, d1) Axis.t -> a -> a -> bool = fun ax m0 m1 -> match ax with | Comonadic ax -> Comonadic.le_axis ax m0 m1 | Monadic ax -> Monadic.le_axis ax m0 m1 - let min_axis : type m a d. (m, a, d) axis -> a = function + let min_axis : type a d0 d1. (a, d0, d1) Axis.t -> a = function | Comonadic ax -> Comonadic.min_axis ax | Monadic ax -> Monadic.min_axis ax - let max_axis : type m a d. (m, a, d) axis -> a = function + let max_axis : type a d0 d1. (a, d0, d1) Axis.t -> a = function | Comonadic ax -> Comonadic.max_axis ax | Monadic ax -> Monadic.max_axis ax - let is_max : type m a d. (m, a, d) axis -> a -> bool = + let is_max : type a d0 d1. (a, d0, d1) Axis.t -> a -> bool = fun ax m -> le_axis ax (max_axis ax) m - let is_min : type m a d. (m, a, d) axis -> a -> bool = + let is_min : type a d0 d1. (a, d0, d1) Axis.t -> a -> bool = fun ax m -> le_axis ax m (min_axis ax) let split = split @@ -2276,7 +2601,7 @@ module Value_with (Areality : Areality) = struct let monadic, b1 = Monadic.newvar_below monadic in { monadic; comonadic }, b0 || b1 - type error = Error : ('m, 'a, 'd) axis * 'a Solver.error -> error + type error = Error : ('a, _, _) Axis.t * 'a Solver.error -> error type equate_error = equate_step * error @@ -2312,7 +2637,9 @@ module Value_with (Areality : Areality) = struct let proj_comonadic ax { comonadic; _ } = Comonadic.proj ax comonadic - let proj : type m a l r. (m, a, l * r) axis -> (l * r) t -> m = + let proj : + type a l0 l1 r0 r1. + (a, l0 * r0, l1 * r1) Axis.t -> (l0 * r0) t -> (a, l1 * r1) mode = fun ax m -> match ax with | Monadic ax -> proj_monadic ax m @@ -2330,7 +2657,9 @@ module Value_with (Areality : Areality) = struct let monadic = Monadic.max |> Monadic.disallow_left |> Monadic.allow_right in { comonadic; monadic } - let max_with : type m a l r. (m, a, l * r) axis -> m -> (disallowed * r) t = + let max_with : + type a l0 l1 r0 r1. + (a, l0 * r0, l1 * r1) Axis.t -> (a, l1 * r1) mode -> (disallowed * r0) t = fun ax m -> match ax with | Monadic ax -> max_with_monadic ax m @@ -2348,42 +2677,22 @@ module Value_with (Areality : Areality) = struct let monadic = Monadic.min |> Monadic.disallow_right |> Monadic.allow_left in { comonadic; monadic } - let min_with : type m a l r. (m, a, l * r) axis -> m -> (l * disallowed) t = + let min_with : + type a l0 l1 r0 r1. + (a, l0 * r0, l1 * r1) Axis.t -> (a, l1 * r1) mode -> (l0 * disallowed) t = fun ax m -> match ax with | Monadic ax -> min_with_monadic ax m | Comonadic ax -> min_with_comonadic ax m - let join_with_monadic ax c { monadic; comonadic } = + let join_with ax c { monadic; comonadic } = let monadic = Monadic.join_with ax c monadic in { monadic; comonadic } - let join_with_comonadic ax c { monadic; comonadic } = - let comonadic = Comonadic.join_with ax c comonadic in - { comonadic; monadic } - - let join_with : type m a d l r. (m, a, d) axis -> a -> (l * r) t -> (l * r) t - = - fun ax c m -> - match ax with - | Monadic ax -> join_with_monadic ax c m - | Comonadic ax -> join_with_comonadic ax c m - - let meet_with_monadic ax c { monadic; comonadic } = - let monadic = Monadic.meet_with ax c monadic in - { monadic; comonadic } - - let meet_with_comonadic ax c { monadic; comonadic } = + let meet_with ax c { monadic; comonadic } = let comonadic = Comonadic.meet_with ax c comonadic in { comonadic; monadic } - let meet_with : type m a d l r. (m, a, d) axis -> a -> (l * r) t -> (l * r) t - = - fun ax c m -> - match ax with - | Monadic ax -> meet_with_monadic ax c m - | Comonadic ax -> meet_with_comonadic ax c m - let join l = let como, mo = List.fold_left @@ -2407,35 +2716,17 @@ module Value_with (Areality : Areality) = struct { comonadic; monadic } let comonadic_to_monadic m = - S.Negative.via_antitone Monadic.Obj.obj - (Comonadic_to_monadic Comonadic.Obj.obj) m + S.apply Monadic.Obj.obj (Comonadic_to_monadic Comonadic.Obj.obj) m let monadic_to_comonadic_min m = - S.Positive.via_antitone Comonadic.Obj.obj Monadic_to_comonadic_min - (Monadic.disallow_left m) + S.apply Comonadic.Obj.obj Monadic_to_comonadic_min (Monadic.disallow_left m) let meet_const c { comonadic; monadic } = - let c = split c in - let comonadic = Comonadic.meet_const c.comonadic comonadic in - let monadic = Monadic.meet_const c.monadic monadic in - { monadic; comonadic } - - let imply c { comonadic; monadic } = - let c = split c in - let comonadic = Comonadic.imply c.comonadic comonadic in - let monadic = Monadic.imply c.monadic monadic in + let comonadic = Comonadic.meet_const c comonadic in { monadic; comonadic } let join_const c { comonadic; monadic } = - let c = split c in - let comonadic = Comonadic.join_const c.comonadic comonadic in - let monadic = Monadic.join_const c.monadic monadic in - { monadic; comonadic } - - let subtract c { comonadic; monadic } = - let c = split c in - let comonadic = Comonadic.subtract c.comonadic comonadic in - let monadic = Monadic.subtract c.monadic monadic in + let monadic = Monadic.join_const c monadic in { monadic; comonadic } let zap_to_ceil { comonadic; monadic } = @@ -2443,6 +2734,11 @@ module Value_with (Areality : Areality) = struct let comonadic = Comonadic.zap_to_ceil comonadic in merge { monadic; comonadic } + let zap_to_floor { comonadic; monadic } = + let monadic = Monadic.zap_to_floor monadic in + let comonadic = Comonadic.zap_to_floor comonadic in + merge { monadic; comonadic } + let zap_to_legacy { comonadic; monadic } = let monadic = Monadic.zap_to_legacy monadic in let comonadic = Comonadic.zap_to_legacy comonadic in @@ -2493,32 +2789,48 @@ module Alloc = Value_with (Locality) module Const = struct let alloc_as_value - ({ areality; linearity; portability; uniqueness; contention; yielding } : + ({ areality; + linearity; + portability; + uniqueness; + contention; + yielding; + statefulness; + visibility + } : Alloc.Const.t) : Value.Const.t = let areality = C.locality_as_regionality areality in - { areality; linearity; portability; uniqueness; contention; yielding } + { areality; + linearity; + portability; + uniqueness; + contention; + yielding; + statefulness; + visibility + } module Axis = struct - let alloc_as_value : type d. d Alloc.axis_packed -> d Value.axis_packed = - function + let alloc_as_value : Alloc.Axis.packed -> Value.Axis.packed = function | P (Comonadic Areality) -> P (Comonadic Areality) | P (Comonadic Linearity) -> P (Comonadic Linearity) | P (Comonadic Portability) -> P (Comonadic Portability) | P (Comonadic Yielding) -> P (Comonadic Yielding) + | P (Comonadic Statefulness) -> P (Comonadic Statefulness) | P (Monadic Uniqueness) -> P (Monadic Uniqueness) | P (Monadic Contention) -> P (Monadic Contention) + | P (Monadic Visibility) -> P (Monadic Visibility) end let locality_as_regionality = C.locality_as_regionality end let comonadic_locality_as_regionality comonadic = - S.Positive.via_monotone Value.Comonadic.Obj.obj - (Map_comonadic Locality_as_regionality) comonadic + S.apply Value.Comonadic.Obj.obj (Map_comonadic Locality_as_regionality) + comonadic let comonadic_regional_to_local comonadic = - S.Positive.via_monotone Alloc.Comonadic.Obj.obj - (Map_comonadic Regional_to_local) comonadic + S.apply Alloc.Comonadic.Obj.obj (Map_comonadic Regional_to_local) comonadic let alloc_as_value m = let { comonadic; monadic } = m in @@ -2528,8 +2840,7 @@ let alloc_as_value m = let alloc_to_value_l2r m = let { comonadic; monadic } = Alloc.disallow_right m in let comonadic = - S.Positive.via_monotone Value.Comonadic.Obj.obj - (Map_comonadic Local_to_regional) comonadic + S.apply Value.Comonadic.Obj.obj (Map_comonadic Local_to_regional) comonadic in { comonadic; monadic } @@ -2537,8 +2848,7 @@ let value_to_alloc_r2g : type l r. (l * r) Value.t -> (l * r) Alloc.t = fun m -> let { comonadic; monadic } = m in let comonadic = - S.Positive.via_monotone Alloc.Comonadic.Obj.obj - (Map_comonadic Regional_to_global) comonadic + S.apply Alloc.Comonadic.Obj.obj (Map_comonadic Regional_to_global) comonadic in { comonadic; monadic } @@ -2548,11 +2858,11 @@ let value_to_alloc_r2l m = { comonadic; monadic } module Modality = struct - type ('m, 'a) raw = - | Meet_with : 'a -> (('a, 'l * 'r) mode_comonadic, 'a) raw - | Join_with : 'a -> (('a, 'l * 'r) mode_monadic, 'a) raw + type 'a raw = + | Meet_with : 'a -> 'a raw + | Join_with : 'a -> 'a raw - type t = Atom : ('m, 'a, _) Value.axis * ('m, 'a) raw -> t + type t = Atom : ('a, _, _) Value.Axis.t * 'a raw -> t let is_id (Atom (ax, a)) = match a with @@ -2570,13 +2880,68 @@ module Modality = struct | Atom (ax, Meet_with c) -> Format.fprintf ppf "meet_with(%a)" (C.print (Value.proj_obj ax)) c + (* Inferred modalities + + Similar to constant modalities, an inferred modality maps the mode of a + record/structure to the mode of a value therein. An inferred modality [f] + is inferred from the structure/record mode [mm] and the value mode [m]. It + will only be applied on some [x >= mm]: That is, it will only be applied + on the original module. + + It should satisfy the following conditions: + + Zapping: [f] should be of the form [join_c] for monadic axes, or [meet_c] + for comonadic axes. + + Soundness: You should not get a value from a record/structure at a mode + strictly stronger than how it was put in. That is, for any [x >= mm], [f x + >= m]. + + Completeness: Ideally we also want [f mm <= m]. + + Monadic axes + + Soundness condition says [join_c x >= m] for any [x >= mm]. Equivalently, + [join_c mm >= m]. By adjunction, [c >= subtract_mm m]. We take the lower + bound [c := subtract_mm m]. Note that this is equivalent to taking [c := m + >= subtract_mm m]. Proof: + + - [join_m x >= join_(subtract_mm m) x] is trivial since [m >= subtract_mm + m]. + - [join_m x <= join_(subtract_mm m) x], or equivalently [m <= + join_(subtract_mm m) x], or equivalently [subtract_x m <= subtract_mm m], + which is trivial since [x >= mm]. + + Taking [c := subtract_mm m] is better for zapping since it's lower and + thus closer to identity modality. Taking [c := m] is easier for [apply] + and [sub]. + + Comonadic axes + + Soundness condition says [meet_c x >= m] for any [x >= mm]. Equivalently, + [meet_c mm >= m]. By def. of [meet], we have both [c >= m] and [mm >= m]. + The latter is guaranteed by the user of [infer]. We guarantee the former + by taking [c := imply_mm m >= m]. One might worry that this is too relaxed + and will be "less complete" than taking [c := m]; however, note that + [imply_mm m <= imply_mm m] and thus by adjunction [meet_(imply_mm m) mm <= + m], which means the chosen [c] is complete. + + Taking [c := m] is easier for [apply] and [sub]. Taking [c := imply_mm m] + is better for zapping since it's higher and thus closer to identity + modality. However, note that we DON'T have [meet_m x = meet_(imply_mm m) + x], which means [apply/sub] and [zap] might behave in a confusing (albeit + sound) manner. + + CR zqian: once we support binary mode solver, [c := imply_mm m] will be + used uniformly by [apply] [sub] and [zap]. + *) + module Monadic = struct module Mode = Value.Monadic - type 'a axis = (Mode.Const.t, 'a) Axis.t + type 'a axis = 'a Mode.axis - type error = - | Error : 'a axis * (('a, _) mode_monadic, 'a) raw Solver.error -> error + type error = Error : 'a axis * 'a raw Solver.error -> error module Const = struct type t = Join_const of Mode.Const.t @@ -2599,14 +2964,6 @@ module Modality = struct Error (Error (ax, { left = Join_with left; right = Join_with right })) - let compose : - type a l r. a axis -> ((a, l * r) mode_monadic, a) raw -> t -> t = - fun ax a t -> - match a, t with - | Join_with c0, Join_const c -> - Join_const (Mode.Const.join (Mode.Const.min_with ax c0) c) - | Meet_with _, Join_const _ -> assert false - let concat ~then_ t = match then_, t with | Join_const c0, Join_const c1 -> Join_const (Mode.Const.join c0 c1) @@ -2614,34 +2971,20 @@ module Modality = struct let apply : type l r. t -> (l * r) Mode.t -> (l * r) Mode.t = fun t x -> match t with Join_const c -> Mode.join_const c x - let to_list = function - | Join_const c -> - [ (let ax : _ Axis.t = Uniqueness in - Atom (Monadic ax, Join_with (Axis.proj ax c))); - (let ax : _ Axis.t = Contention in - Atom (Monadic ax, Join_with (Axis.proj ax c))) ] + let proj ax (Join_const c) = Join_with (Axis.proj ax c) - let proj ax = function - | Join_const c -> Atom (Monadic ax, Join_with (Axis.proj ax c)) + let set ax a (Join_const c) = + match a with + | Join_with a -> Join_const (Axis.set ax a c) + | Meet_with _ -> assert false let print ppf = function | Join_const c -> Format.fprintf ppf "join_const(%a)" Mode.Const.print c end - (* Similar to constant modalities, an inferred modality maps the mode of a - record/structure to the mode of a value therein. An inferred modality [f] is - inferred from the structure/record mode [mm] and the value mode [m]. - - Soundness: You should not get a value from a record/structure at a mode strictly - stronger than how it was put in. That is, [f mm >= m]. - - Completeness: You should be able to get a value from a record/structure at a mode - not strictly weaker than how it was put in. That is, [f mm <= m]. *) - type t = | Const of Const.t - | Diff of Mode.lr * Mode.lr - (** inferred modality. See [apply] for its behavior. *) + | Diff of Mode.lr * Mode.lr (** See "Inferred modalities" comments *) | Undefined let sub_log left right ~log : (unit, error) Result.t = @@ -2728,10 +3071,9 @@ module Modality = struct module Comonadic = struct module Mode = Value.Comonadic - type 'a axis = (Mode.Const.t, 'a) Axis.t + type 'a axis = 'a Mode.axis - type error = - | Error : 'a axis * (('a, _) mode_comonadic, 'a) raw Solver.error -> error + type error = Error : 'a axis * 'a raw Solver.error -> error module Const = struct type t = Meet_const of Mode.Const.t @@ -2754,14 +3096,6 @@ module Modality = struct Error (Error (ax, { left = Meet_with left; right = Meet_with right })) - let compose : - type a l r. a axis -> ((a, l * r) mode_comonadic, a) raw -> t -> t = - fun ax a t -> - match a, t with - | Meet_with c0, Meet_const c -> - Meet_const (Mode.Const.meet (Mode.Const.max_with ax c0) c) - | Join_with _, Meet_const _ -> assert false - let concat ~then_ t = match then_, t with | Meet_const c0, Meet_const c1 -> Meet_const (Mode.Const.meet c0 c1) @@ -2769,19 +3103,12 @@ module Modality = struct let apply : type l r. t -> (l * r) Mode.t -> (l * r) Mode.t = fun t x -> match t with Meet_const c -> Mode.meet_const c x - let to_list = function - | Meet_const c -> - [ (let ax : _ Axis.t = Areality in - Atom (Comonadic ax, Meet_with (Axis.proj ax c))); - (let ax : _ Axis.t = Linearity in - Atom (Comonadic ax, Meet_with (Axis.proj ax c))); - (let ax : _ Axis.t = Portability in - Atom (Comonadic ax, Meet_with (Axis.proj ax c))); - (let ax : _ Axis.t = Yielding in - Atom (Comonadic ax, Meet_with (Axis.proj ax c))) ] + let proj ax (Meet_const c) = Meet_with (Axis.proj ax c) - let proj ax = function - | Meet_const c -> Atom (Comonadic ax, Meet_with (Axis.proj ax c)) + let set ax a (Meet_const c) = + match a with + | Meet_with a -> Meet_const (Axis.set ax a c) + | Join_with _ -> assert false let print ppf = function | Meet_const c -> Format.fprintf ppf "meet_const(%a)" Mode.Const.print c @@ -2790,17 +3117,19 @@ module Modality = struct type t = | Const of Const.t | Undefined - | Exactly of Mode.lr * Mode.lr - (** inferred modality. See [apply] for its behavior. *) + | Exactly of Mode.lr * Mode.lr (** See "Inferred modalities" comments *) let sub_log left right ~log : (unit, error) Result.t = match left, right with | Const c0, Const c1 -> Const.sub c0 c1 | Exactly (_mm, m), Const (Meet_const c) -> ( - (* Check for all x >= mm, m <= meet x c. Equivalent to check [m <= meet - mm c]. By definition of meet, equivalent to check [m <= mm] and [m <= - c]. The former is the precondition of [Exactly]. So we only check the - latter. *) + (* Check for all [x >= mm], [meet_(imply_mm m) x <= meet_c x], or + equivalently [meet_(imply_mm m) x <= c], or equivalently [meet_(imply_mm + m) max <= c], or equivalently [imply_mm m <= c]. We can't check this + without binary mode solver. + + So instead we check [meet_m x <= meet_c x] (See "Inferred modalities" + comments), which amounts to [m <= c]. *) match Mode.submode_log m (Mode.of_const c) ~log with | Ok () -> Ok () | Error (Error (ax, { left; _ })) -> @@ -2829,7 +3158,12 @@ module Modality = struct | Const c -> Const.apply c x |> Mode.disallow_right | Undefined -> Misc.fatal_error "modality Undefined should not be applied." - | Exactly (_mm, m) -> Mode.disallow_right m + | Exactly (_mm, m) -> + (* Ideally want to return [meet_(imply_mm m) x], which we can't do + without binary mode solver, so instead we return [meet_m x] (See + "Inferred modalities" comments), which because of [x >= mm >= m] is + equal to [m]. *) + Mode.disallow_right m let print ppf = function | Const c -> Const.print ppf c @@ -2887,7 +3221,7 @@ module Modality = struct module Value = struct type error = - | Error : ('m, 'a, _) Value.axis * ('m, 'a) raw Solver.error -> error + | Error : ('a, _, _) Value.Axis.t * 'a raw Solver.error -> error type equate_error = equate_step * error @@ -2917,32 +3251,35 @@ module Modality = struct let comonadic = Comonadic.apply t.comonadic comonadic in { monadic; comonadic } - let compose ~then_:(Atom (ax, a)) t = - match ax with - | Monadic ax -> - let monadic = Monadic.compose ax a t.monadic in - { t with monadic } - | Comonadic ax -> - let comonadic = Comonadic.compose ax a t.comonadic in - { t with comonadic } - let concat ~then_ t = let monadic = Monadic.concat ~then_:then_.monadic t.monadic in let comonadic = Comonadic.concat ~then_:then_.comonadic t.comonadic in { monadic; comonadic } - let of_list = List.fold_left (fun m atom -> compose m ~then_:atom) id - - let singleton a = compose ~then_:a id - - let to_list { monadic; comonadic } = - Comonadic.to_list comonadic @ Monadic.to_list monadic - - let proj (type m a d) (ax : (m, a, d) Value.axis) { monadic; comonadic } = + let proj (type a d0 d1) (ax : (a, d0, d1) Value.Axis.t) + { monadic; comonadic } = match ax with | Monadic ax -> Monadic.proj ax monadic | Comonadic ax -> Comonadic.proj ax comonadic + let set (type a d0 d1) (ax : (a, d0, d1) Value.Axis.t) (a : a raw) + { monadic; comonadic } = + match ax with + | Monadic ax -> + let monadic = Monadic.set ax a monadic in + { monadic; comonadic } + | Comonadic ax -> + let comonadic = Comonadic.set ax a comonadic in + { monadic; comonadic } + + let diff t0 t1 = + List.filter_map + (fun (Value.Axis.P ax) -> + let a0 = proj ax t0 in + let a1 = proj ax t1 in + if a0 = a1 then None else Some (Atom (ax, a1))) + Value.Axis.all + let print ppf { monadic; comonadic } = Format.fprintf ppf "%a;%a" Monadic.print monadic Comonadic.print comonadic @@ -3163,8 +3500,12 @@ module Crossing = struct | Modality.Atom (ax, Meet_with c) -> C.print (Value.proj_obj ax) ppf c in let l = - t |> Modality.Value.Const.to_list - |> List.filter (fun t -> not @@ Modality.is_id t) + List.filter_map + (fun (Value.Axis.P ax) -> + let a = Modality.Value.Const.proj ax t in + let a = Modality.Atom (ax, a) in + if Modality.is_id a then None else Some a) + Value.Axis.all in Format.(pp_print_list ~pp_sep:pp_print_space print_atom ppf l) end diff --git a/upstream/ocaml_flambda/typing/mode_intf.mli b/upstream/ocaml_flambda/typing/mode_intf.mli index 8016e8b63..edb0bea56 100644 --- a/upstream/ocaml_flambda/typing/mode_intf.mli +++ b/upstream/ocaml_flambda/typing/mode_intf.mli @@ -39,6 +39,30 @@ module type Lattice = sig val print : Format.formatter -> t -> unit end +module type Lattice_product = sig + include Lattice + + type 'a axis + + (** [min_axis ax] returns the [min] for the [ax] axis. *) + val min_axis : 'a axis -> 'a + + (** [max_axis ax] returns the [max] for the [ax] axis. *) + val max_axis : 'a axis -> 'a + + (** [min_with ax elt] returns [min] but with the axis [ax] set to [elt]. *) + val min_with : 'a axis -> 'a -> t + + (** [max_with ax elt] returns [max] but with the axis [ax] set to [elt]. *) + val max_with : 'a axis -> 'a -> t + + (** [le_axis ax] returns the [le] function for the [ax] axis. *) + val le_axis : 'a axis -> 'a -> 'a -> bool + + (** [print_axis ax] returns the [print] function for the [ax] axis. *) + val print_axis : 'a axis -> Format.formatter -> 'a -> unit +end + type equate_step = | Left_le_right | Right_le_left @@ -93,6 +117,27 @@ module type Common = sig val print : ?verbose:bool -> unit -> Format.formatter -> ('l * 'r) t -> unit val of_const : Const.t -> ('l * 'r) t + + val zap_to_ceil : ('l * allowed) t -> Const.t + + val zap_to_floor : (allowed * 'r) t -> Const.t +end + +module type Common_axis = sig + module Const : Lattice + + include + Common with module Const := Const and type error = Const.t Solver.error +end + +module type Common_product = sig + type 'a axis + + module Const : Lattice_product with type 'a axis = 'a axis + + type error = Error : 'a axis * 'a Solver.error -> error + + include Common with type error := error and module Const := Const end module type S = sig @@ -108,9 +153,7 @@ module type S = sig type nonrec equate_step = equate_step - type ('a, 'd) mode_monadic constraint 'd = 'l * 'r - - type ('a, 'd) mode_comonadic constraint 'd = 'l * 'r + type ('a, 'd) mode constraint 'd = 'l * 'r type ('a, 'b) monadic_comonadic = { monadic : 'a; @@ -126,22 +169,15 @@ module type S = sig include Lattice with type t := t end - type error = Const.t Solver.error - include - Common + Common_axis with module Const := Const - and type error := error - and type 'd t = (Const.t, 'd) mode_comonadic + and type 'd t = (Const.t, 'd pos) mode val global : lr val local : lr - val zap_to_floor : (allowed * 'r) t -> Const.t - - val zap_to_ceil : ('l * allowed) t -> Const.t - module Guts : sig (** This module exposes some functions that allow callers to inspect modes directly, which could be useful for error printing and dev tools (such as @@ -169,13 +205,10 @@ module type S = sig include Lattice with type t := t end - type error = Const.t Solver.error - include - Common + Common_axis with module Const := Const - and type error := error - and type 'd t = (Const.t, 'd) mode_comonadic + and type 'd t = (Const.t, 'd pos) mode val global : lr @@ -193,13 +226,10 @@ module type S = sig include Lattice with type t := t end - type error = Const.t Solver.error - include - Common + Common_axis with module Const := Const - and type error := error - and type 'd t = (Const.t, 'd) mode_comonadic + and type 'd t = (Const.t, 'd pos) mode val many : lr @@ -215,13 +245,10 @@ module type S = sig include Lattice with type t := t end - type error = Const.t Solver.error - include - Common + Common_axis with module Const := Const - and type error := error - and type 'd t = (Const.t, 'd) mode_comonadic + and type 'd t = (Const.t, 'd pos) mode end module Uniqueness : sig @@ -235,19 +262,14 @@ module type S = sig module Const_op : Lattice with type t = Const.t - type error = Const.t Solver.error - include - Common + Common_axis with module Const := Const - and type error := error - and type 'd t = (Const.t, 'd) mode_monadic + and type 'd t = (Const.t, 'd neg) mode val aliased : lr val unique : lr - - val zap_to_ceil : ('l * allowed) t -> Const.t end module Contention : sig @@ -262,13 +284,10 @@ module type S = sig module Const_op : Lattice with type t = Const.t - type error = Const.t Solver.error - include - Common + Common_axis with module Const := Const - and type error := error - and type 'd t = (Const.t, 'd) mode_monadic + and type 'd t = (Const.t, 'd neg) mode end module Yielding : sig @@ -280,36 +299,89 @@ module type S = sig include Lattice with type t := t end - type error = Const.t Solver.error + include + Common_axis + with module Const := Const + and type 'd t = (Const.t, 'd pos) mode + + val yielding : lr + + val unyielding : lr + end + + module Statefulness : sig + module Const : sig + type t = + | Stateless + | Observing + | Stateful + + include Lattice with type t := t + end include - Common + Common_axis with module Const := Const - and type error := error - and type 'd t = (Const.t, 'd) mode_comonadic + and type 'd t = (Const.t, 'd pos) mode + + val stateless : lr + + val observing : lr + + val stateful : lr + end + + module Visibility : sig + module Const : sig + type t = + | Immutable + | Read + | Read_write + + include Lattice with type t := t + end + + module Const_op : Lattice with type t = Const.t + + include + Common_axis + with module Const := Const + and type 'd t = (Const.t, 'd neg) mode + + val immutable : lr + + val read : lr + + val read_write : lr end type 'a comonadic_with = { areality : 'a; linearity : Linearity.Const.t; portability : Portability.Const.t; - yielding : Yielding.Const.t + yielding : Yielding.Const.t; + statefulness : Statefulness.Const.t } type monadic = { uniqueness : Uniqueness.Const.t; - contention : Contention.Const.t + contention : Contention.Const.t; + visibility : Visibility.Const.t } module Axis : sig (** ('p, 'r) t represents a projection from a product of type ['p] to an - element of type ['r]. *) + element of type ['r]. + + NB: must listed in the order of axis implication. See [typemode.ml]. *) type ('p, 'r) t = | Areality : ('a comonadic_with, 'a) t + | Yielding : ('areality comonadic_with, Yielding.Const.t) t | Linearity : ('areality comonadic_with, Linearity.Const.t) t + | Statefulness : ('areality comonadic_with, Statefulness.Const.t) t | Portability : ('areality comonadic_with, Portability.Const.t) t - | Yielding : ('areality comonadic_with, Yielding.Const.t) t | Uniqueness : (monadic, Uniqueness.Const.t) t + | Visibility : (monadic, Visibility.Const.t) t | Contention : (monadic, Contention.Const.t) t val print : Format.formatter -> ('p, 'r) t -> unit @@ -321,68 +393,48 @@ module type S = sig module Areality : Common module Monadic : sig - module Const : sig - include Lattice with type t = monadic - - val max_axis : (t, 'a) Axis.t -> 'a - - val min_axis : (t, 'a) Axis.t -> 'a - end - - module Const_op : Lattice with type t = monadic - - include Common with module Const := Const + include + Common_product + with type Const.t = monadic + and type 'a axis := (monadic, 'a) Axis.t - val join_const : Const.t -> ('l * 'r) t -> ('l * 'r) t + module Const_op : Lattice with type t = Const.t end - module Comonadic : sig - module Const : sig - include Lattice with type t = Areality.Const.t comonadic_with + module Comonadic : + Common_product + with type Const.t = Areality.Const.t comonadic_with + and type 'a axis := (Areality.Const.t comonadic_with, 'a) Axis.t - val eq : t -> t -> bool + module Axis' := Axis - val print_axis : (t, 'a) Axis.t -> Format.formatter -> 'a -> unit + module Axis : sig + (** Represents a mode axis in this product whose constant is ['a], and whose + allowance is ['d1] given the product's allowance ['d0]. *) + type ('a, 'd0, 'd1) t = + | Monadic : (Monadic.Const.t, 'a) Axis.t -> ('a, 'd, 'd neg) t + | Comonadic : (Comonadic.Const.t, 'a) Axis.t -> ('a, 'd, 'd pos) t - val max_axis : (t, 'a) Axis.t -> 'a + (** Compare two axes in implication order. If A implies B, then A is before B. *) + val compare : ('a, 'd0, 'd1) t -> ('b, 'e0, 'e1) t -> int - val min_axis : (t, 'a) Axis.t -> 'a - end + type packed = P : (_, _, _) t -> packed - type error = Error : (Const.t, 'a) Axis.t * 'a Solver.error -> error + val print : Format.formatter -> ('a, _, _) t -> unit - include Common with type error := error and module Const := Const - - val meet_const : Const.t -> ('l * 'r) t -> ('l * 'r) t + (** List of all axes, ordered by [compare]. *) + val all : packed list end - (** Represents a mode axis in this product whose constant is ['a], and - whose variable is ['m] given the allowness ['d]. *) - type ('m, 'a, 'd) axis = - | Monadic : - (Monadic.Const.t, 'a) Axis.t - -> (('a, 'd) mode_monadic, 'a, 'd) axis - | Comonadic : - (Comonadic.Const.t, 'a) Axis.t - -> (('a, 'd) mode_comonadic, 'a, 'd) axis - - type 'd axis_packed = P : ('m, 'a, 'd) axis -> 'd axis_packed - - val print_axis : Format.formatter -> ('m, 'a, 'd) axis -> unit - - (** Gets the normal lattice for comonadic axes and the "op"ped lattice for - monadic ones. *) - val lattice_of_axis : ('m, 'a, 'd) axis -> (module Lattice with type t = 'a) - - val all_axes : ('l * 'r) axis_packed list - - type ('a, 'b, 'c, 'd, 'e, 'f) modes = + type ('a, 'b, 'c, 'd, 'e, 'f, 'g, 'h) modes = { areality : 'a; linearity : 'b; uniqueness : 'c; portability : 'd; contention : 'e; - yielding : 'f + yielding : 'f; + statefulness : 'g; + visibility : 'h } module Const : sig @@ -394,9 +446,16 @@ module type S = sig Uniqueness.Const.t, Portability.Const.t, Contention.Const.t, - Yielding.Const.t ) + Yielding.Const.t, + Statefulness.Const.t, + Visibility.Const.t ) modes + (** Gets the normal lattice for comonadic axes and the "op"ped lattice for + monadic ones. *) + val lattice_of_axis : + ('a, _, _) Axis.t -> (module Lattice with type t = 'a) + module Option : sig type some = t @@ -406,7 +465,9 @@ module type S = sig Uniqueness.Const.t option, Portability.Const.t option, Contention.Const.t option, - Yielding.Const.t option ) + Yielding.Const.t option, + Statefulness.Const.t option, + Visibility.Const.t option ) modes val none : t @@ -416,9 +477,9 @@ module type S = sig val print : Format.formatter -> t -> unit end - val is_max : ('m, 'a, 'd) axis -> 'a -> bool + val is_max : ('a, _, _) Axis.t -> 'a -> bool - val is_min : ('m, 'a, 'd) axis -> 'a -> bool + val is_min : ('a, _, _) Axis.t -> 'a -> bool val split : t -> (Monadic.Const.t, Comonadic.Const.t) monadic_comonadic @@ -435,10 +496,10 @@ module type S = sig val partial_apply : t -> t (** Prints a constant on any axis. *) - val print_axis : ('m, 'a, 'd) axis -> Format.formatter -> 'a -> unit + val print_axis : ('a, _, _) Axis.t -> Format.formatter -> 'a -> unit end - type error = Error : ('m, 'a, 'd) axis * 'a Solver.error -> error + type error = Error : ('a, _, _) Axis.t * 'a Solver.error -> error type 'd t = ('d Monadic.t, 'd Comonadic.t) monadic_comonadic @@ -453,29 +514,34 @@ module type S = sig include Allow_disallow with type (_, _, 'd) sided = 'd t list end - val proj : ('m, 'a, 'l * 'r) axis -> ('l * 'r) t -> 'm + val proj : + ('a, 'l0 * 'r0, 'l1 * 'r1) Axis.t -> ('l0 * 'r0) t -> ('a, 'l1 * 'r1) mode - val max_with : ('m, 'a, 'l * 'r) axis -> 'm -> (disallowed * 'r) t + val meet_const : Comonadic.Const.t -> ('l * 'r) t -> ('l * 'r) t - val min_with : ('m, 'a, 'l * 'r) axis -> 'm -> ('l * disallowed) t + val join_const : Monadic.Const.t -> ('l * 'r) t -> ('l * 'r) t - val meet_with : (_, 'a, _) axis -> 'a -> ('l * 'r) t -> ('l * 'r) t + (** [max_with ax elt] returns [max] but with the axis [ax] set to [elt]. *) + val max_with : + ('a, 'l0 * 'r0, 'l1 * 'r1) Axis.t -> + ('a, 'l1 * 'r1) mode -> + (disallowed * 'r0) t - val join_with : (_, 'a, _) axis -> 'a -> ('l * 'r) t -> ('l * 'r) t + (** [min_with ax elt] returns [min] but with the axis [ax] set to [elt]. *) + val min_with : + ('a, 'l0 * 'r0, 'l1 * 'r1) Axis.t -> + ('a, 'l1 * 'r1) mode -> + ('l0 * disallowed) t - val zap_to_legacy : lr -> Const.t - - val zap_to_ceil : ('l * allowed) t -> Const.t - - val comonadic_to_monadic : ('l * 'r) Comonadic.t -> ('r * 'l) Monadic.t + val meet_with : + (Comonadic.Const.t, 'a) Axis'.t -> 'a -> ('l0 * 'r0) t -> ('l0 * 'r0) t - val meet_const : Const.t -> ('l * 'r) t -> ('l * 'r) t + val join_with : + (Monadic.Const.t, 'a) Axis'.t -> 'a -> ('l0 * 'r0) t -> ('l0 * 'r0) t - val imply : Const.t -> ('l * 'r) t -> (disallowed * 'r) t - - val join_const : Const.t -> ('l * 'r) t -> ('l * 'r) t + val zap_to_legacy : lr -> Const.t - val subtract : Const.t -> ('l * 'r) t -> ('l * disallowed) t + val comonadic_to_monadic : ('l * 'r) Comonadic.t -> ('r * 'l) Monadic.t (* The following two are about the scenario where we partially apply a function [A -> B -> C] to [A] and get back [B -> C]. The mode of the @@ -503,7 +569,7 @@ module type S = sig val alloc_as_value : Alloc.Const.t -> Value.Const.t module Axis : sig - val alloc_as_value : 'd Alloc.axis_packed -> 'd Value.axis_packed + val alloc_as_value : Alloc.Axis.packed -> Value.Axis.packed end val locality_as_regionality : Locality.Const.t -> Regionality.Const.t @@ -531,16 +597,16 @@ module type S = sig val value_to_alloc_r2g : ('l * 'r) Value.t -> ('l * 'r) Alloc.t module Modality : sig - type ('m, 'a) raw = - | Meet_with : 'a -> (('a, 'd) mode_comonadic, 'a) raw + type 'a raw = + | Meet_with : 'a -> 'a raw (** [Meet_with c] takes [x] and returns [meet c x]. [c] can be [max] in which case it's the identity modality. *) - | Join_with : 'a -> (('a, 'd) mode_monadic, 'a) raw + | Join_with : 'a -> 'a raw (** [Join_with c] takes [x] and returns [join c x]. [c] can be [min] in which case it's the identity modality. *) (** An atom modality is a [raw] accompanied by the axis it acts on. *) - type t = Atom : ('m, 'a, _) Value.axis * ('m, 'a) raw -> t + type t = Atom : ('a, _, _) Value.Axis.t * 'a raw -> t (** Test if the given modality is the identity modality. *) val is_id : t -> bool @@ -555,7 +621,7 @@ module type S = sig type atom := t type error = - | Error : ('m, 'a, _) Value.axis * ('m, 'a) raw Solver.error -> error + | Error : ('a, _, _) Value.Axis.t * 'a raw Solver.error -> error type nonrec equate_error = equate_step * error @@ -586,26 +652,18 @@ module type S = sig (** Apply a modality on mode. *) val apply : t -> ('l * 'r) Value.t -> ('l * 'r) Value.t - (** [compose ~then_ t] returns the modality that is [then_] after [t]. *) - val compose : then_:atom -> t -> t - (** [concat ~then t] returns the modality that is [then_] after [t]. *) val concat : then_:t -> t -> t - (** [singleton m] returns the modality containing only [m]. *) - val singleton : atom -> t - - (** Returns the list of [atom] in the given modality. The list is - commutative. Post-condition: each axis is represented in the - output list exactly once. *) - val to_list : t -> atom list + (** [set ax a t] overwrite the [ax] axis of [t] to be [a]. *) + val set : ('a, _, _) Value.Axis.t -> 'a raw -> t -> t - (** Builds up a modality from a list of [atom], by composing each atom with - identity. The modalities are applied left to right. *) - val of_list : atom list -> t + (** Project out the [raw] for the given axis in the given modality. *) + val proj : ('a, _, _) Value.Axis.t -> t -> 'a raw - (** Project out the [atom] for the given axis in the given modality. *) - val proj : ('m, 'a, 'd) Value.axis -> t -> atom + (** [diff t0 t1] returns a list of atoms in [t1] that are different than + [t0]. *) + val diff : t -> t -> atom list (** [equate t0 t1] checks that [t0 = t1]. Definition: [t0 = t1] iff [t0 <= t1] and [t1 <= t0]. *) @@ -625,7 +683,12 @@ module type S = sig (** The undefined modality. *) val undefined : t - (** Apply a modality on a left mode. *) + (* CR zqian: note that currently, [apply] and [sub] and [zap] are NOT + coherent for comonadic axes. That is, we do NOT have + [apply t m = Const.apply (zap t) m]. This is probably fine. *) + + (** Apply a modality on a left mode. The calller should ensure that [apply + t m] is only called for [m >= md_mode] for inferred modalities. *) val apply : t -> (allowed * 'r) Value.t -> Value.l (** [sub t0 t1] checks that [t0 <= t1]. diff --git a/upstream/ocaml_flambda/typing/oprint.ml b/upstream/ocaml_flambda/typing/oprint.ml index 0fb9e395b..7dc20e4ec 100644 --- a/upstream/ocaml_flambda/typing/oprint.ml +++ b/upstream/ocaml_flambda/typing/oprint.ml @@ -559,10 +559,12 @@ and print_out_type_3 ppf = | Otyp_attribute (t, attr) -> fprintf ppf "@[<1>(%a [@@%s])@]" print_out_type_0 t attr.oattr_name - | Otyp_jkind_annot (t, lay) -> + | Otyp_jkind_annot (t, jk) -> fprintf ppf "@[<1>(%a@ :@ %a)@]" print_out_type_0 t - print_out_jkind lay + print_out_jkind jk + | Otyp_of_kind jk -> + fprintf ppf "(type@ :@ %a)" print_out_jkind jk and print_out_type ppf typ = print_out_type_0 ppf typ and print_simple_out_type ppf typ = diff --git a/upstream/ocaml_flambda/typing/outcometree.mli b/upstream/ocaml_flambda/typing/outcometree.mli index 7e8f993e6..d18899871 100644 --- a/upstream/ocaml_flambda/typing/outcometree.mli +++ b/upstream/ocaml_flambda/typing/outcometree.mli @@ -154,6 +154,7 @@ and out_type = | Otyp_jkind_annot of out_type * out_jkind (* Currently only introduced with very explicit code in [Printtyp] and not synthesized directly from the [Typedtree] *) + | Otyp_of_kind of out_jkind and out_constructor = { ocstr_name: string; diff --git a/upstream/ocaml_flambda/typing/persistent_env.ml b/upstream/ocaml_flambda/typing/persistent_env.ml index 5b21ff835..7f175a452 100644 --- a/upstream/ocaml_flambda/typing/persistent_env.ml +++ b/upstream/ocaml_flambda/typing/persistent_env.ml @@ -37,24 +37,24 @@ type error = | Not_compiled_as_parameter of Global_module.Name.t | Imported_module_has_unset_parameter of { imported : Global_module.Name.t; - parameter : Global_module.Name.t; + parameter : Global_module.Parameter_name.t; } | Imported_module_has_no_such_parameter of { imported : CU.Name.t; - valid_parameters : Global_module.Name.t list; - parameter : Global_module.Name.t; + valid_parameters : Global_module.Parameter_name.t list; + parameter : Global_module.Parameter_name.t; value : Global_module.Name.t; } | Not_compiled_as_argument of - { param : Global_module.Name.t; + { param : Global_module.Parameter_name.t; value : Global_module.Name.t; filename : filepath; } | Argument_type_mismatch of { value : Global_module.Name.t; filename : filepath; - expected : Global_module.Name.t; - actual : Global_module.Name.t; + expected : Global_module.Parameter_name.t; + actual : Global_module.Parameter_name.t; } | Unbound_module_as_argument_value of { instance: Global_module.Name.t; @@ -99,8 +99,8 @@ type global_name_info = { (* Data relating directly to a .cmi - does not depend on arguments *) type import = { imp_is_param : bool; - imp_params : Global_module.t list; (* CR lmaurer: Should be [Parameter_name.t list] *) - imp_arg_for : Global_module.Name.t option; + imp_params : Global_module.Parameter_name.t list; + imp_arg_for : Global_module.Parameter_name.t option; imp_impl : CU.t option; (* None iff import is a parameter *) imp_raw_sign : Signature_with_global_bindings.t; imp_filename : string; @@ -124,9 +124,6 @@ type import_info = type pers_name = { pn_import : import; pn_global : Global_module.t; - pn_arg_for : Global_module.Name.t option; - (* Currently always the same as [pn_import.imp_arg_for], since parameters - don't have parameters *) pn_sign : Subst.Lazy.signature; } @@ -144,7 +141,7 @@ type 'a pers_struct_info = { ps_val : 'a; } -module Param_set = Global_module.Name.Set +module Param_set = Global_module.Parameter_name.Set (* If you add something here, _do not forget_ to add it to [clear]! *) type 'a t = { @@ -213,7 +210,7 @@ let add_import {imported_units; _} s = let rec add_imports_in_name penv (g : Global_module.Name.t) = add_import penv (g |> CU.Name.of_head_of_global_name); let add_in_arg ({ param; value } : Global_module.Name.argument) = - add_imports_in_name penv param; + add_import penv (param |> CU.Name.of_parameter_name); add_imports_in_name penv value in List.iter add_in_arg g.args @@ -241,18 +238,15 @@ let find_in_cache penv name = find_info_in_cache penv name |> Option.map (fun ps -> ps.ps_val) let register_parameter ({param_imports; _} as penv) modname = - let import = - (* Note that parameters cannot themselves be parameterised. (This may be lifted in the - future, but dependent types are hard.) *) - CU.Name.of_global_name_no_args_exn modname - in + let import = CU.Name.of_parameter_name modname in begin match find_import_info_in_cache penv import with | None -> (* Not loaded yet; if it's wrong, we'll get an error at load time *) () | Some imp -> if not imp.imp_is_param then - raise (Error (Not_compiled_as_parameter modname)) + raise (Error (Not_compiled_as_parameter + (Global_module.Name.of_parameter_name modname))) end; param_imports := Param_set.add modname !param_imports @@ -285,8 +279,8 @@ let check_consistency penv imp = | (Normal _ | Parameter), _ -> error (Inconsistent_import(name, auth, source)) -let is_registered_parameter_import {param_imports; _} import = - Param_set.mem import !param_imports +let is_registered_parameter_import {param_imports; _} name = + Global_module.Name.mem_parameter_set name !param_imports let is_parameter_import t modname = let import = CU.Name.of_head_of_global_name modname in @@ -482,16 +476,8 @@ let rec approximate_global_by_name penv global_name = !param_imports visible_args in - let arg_of_param (param : Global_module.Name.t) : Global_module.t = - (* CR-someday Really should just have a separate Parameter_name.t type *) - (* Assume the parameter has no arguments because it can't have any *) - Global_module.create_exn param.head [] ~hidden_args:[] - in let hidden_args = Param_set.elements params_not_being_passed - |> List.map - (fun param -> - ({ param; value = arg_of_param param } : _ Global_module.Argument.t)) in let global = Global_module.create_exn head visible_args ~hidden_args in remember_global penv global ~precision:Approximate ~mentioned_by:Current; @@ -537,12 +523,12 @@ let current_unit_is_instance_of name = parameter.) *) let check_for_unset_parameters penv global = List.iter - (fun ({ param = _; value = arg_value } : Global_module.argument) -> + (fun ({ param = parameter; value = arg_value } : Global_module.argument) -> let value_name = Global_module.to_name arg_value in if not (is_registered_parameter_import penv value_name) then error (Imported_module_has_unset_parameter { imported = Global_module.to_name global; - parameter = value_name; + parameter; })) global.Global_module.hidden_args @@ -569,31 +555,16 @@ and compute_global penv modname ~params ~check ~allow_excess_args = (Unbound_module_as_argument_value { instance = modname; value })) modname.Global_module.Name.args in - let subst : Global_module.subst = Global_module.Name.Map.of_list arg_global_by_param_name in + let subst : Global_module.subst = + Global_module.Parameter_name.Map.of_list arg_global_by_param_name + in if check && modname.Global_module.Name.args <> [] then begin - (* A paragraph for the future that I don't want to lose track of: - - Produce the expected type of each argument. This takes into account - substitutions among the parameter types: if the parameters are T and - To_string[T] and the arguments are [Int] and [Int_to_string], we want to - check that [Int] has type [T] and that [Int_to_string] has type - [To_string[T\Int]]. - - For now, our parameters don't take parameters, so we can just assert that - the parameter name has no arguments and keep it as the expected type. *) - let expected_type_by_param_name = - List.map - (fun param -> - assert (not (Global_module.has_arguments param)); - Global_module.to_name param, param) - params - in - let compare_by_param (param1, _) (param2, _) = - Global_module.Name.compare param1 param2 + let compare_by_param param1 (param2, _) = + Global_module.Parameter_name.compare param1 param2 in Misc.Stdlib.List.merge_iter ~cmp:compare_by_param - expected_type_by_param_name + params arg_global_by_param_name ~left_only: (fun _ -> @@ -607,61 +578,41 @@ and compute_global penv modname ~params ~check ~allow_excess_args = raise (Error (Imported_module_has_no_such_parameter { imported = CU.Name.of_head_of_global_name modname; - valid_parameters = - params |> List.map Global_module.to_name; + valid_parameters = params; parameter = param; value = value |> Global_module.to_name; }))) ~both: - (fun (param_name, expected_type_global) (_arg_name, arg_value_global) -> + (fun expected_type (_arg_name, arg_value_global) -> let arg_value = arg_value_global |> Global_module.to_name in let pn = find_pers_name ~allow_hidden:true penv ~check arg_value ~allow_excess_args in let actual_type = - match pn.pn_arg_for with + match pn.pn_import.imp_arg_for with | None -> error (Not_compiled_as_argument - { param = param_name; value = arg_value; + { param = expected_type; value = arg_value; filename = pn.pn_import.imp_filename }) | Some ty -> ty in - let actual_type_global = - global_of_global_name ~allow_excess_args penv ~check actual_type - in - if not (Global_module.equal expected_type_global actual_type_global) + if not (Global_module.Parameter_name.equal expected_type actual_type) then begin - let expected_type = Global_module.to_name expected_type_global in - if Global_module.Name.equal expected_type actual_type then - (* This shouldn't happen, I don't think, but if it does, I'd rather - not output an "X != X" sort of error message *) - Misc.fatal_errorf - "Mismatched argument type (despite same name):@ \ - expected %a,@ got %a" - Global_module.print expected_type_global - Global_module.print actual_type_global - else - raise (Error (Argument_type_mismatch { - value = arg_value; - filename = pn.pn_import.imp_filename; - expected = expected_type; - actual = actual_type; - })) + raise (Error (Argument_type_mismatch { + value = arg_value; + filename = pn.pn_import.imp_filename; + expected = expected_type; + actual = actual_type; + })) end) end; (* Form the name without any arguments at all, then substitute in all the arguments. A bit roundabout but should be sound *) - let hidden_args = - List.map - (fun param : Global_module.argument -> - { param = Global_module.to_name param; value = param }) - params - in let global_without_args = (* Won't raise an exception, since the hidden args are all different (since the params are different, or else we have bigger problems) *) - Global_module.create_exn modname.Global_module.Name.head [] ~hidden_args + Global_module.create_exn modname.Global_module.Name.head [] ~hidden_args:params in let global, _changed = Global_module.subst global_without_args subst in global @@ -705,7 +656,6 @@ and acknowledge_new_pers_name penv check global_name global import = through here already. *) check_for_unset_parameters penv global; let {persistent_names; _} = penv in - let arg_for = import.imp_arg_for in let sign = import.imp_raw_sign in let sign = let bindings = @@ -724,7 +674,6 @@ and acknowledge_new_pers_name penv check global_name global import = sign.bound_globals; let pn = { pn_import = import; pn_global = global; - pn_arg_for = arg_for; pn_sign = sign.sign; } in if check then check_consistency penv import; @@ -816,7 +765,7 @@ let make_binding penv (global : Global_module.t) (impl : CU.t option) : binding | _ -> (* Make sure the unit isn't supposed to be packed *) assert (not (CU.is_packed unit_from_cmi)); - CU.of_global_name name + CU.of_complete_global_exn global in Constant unit @@ -947,25 +896,47 @@ let check_pers_struct ~allow_hidden penv f ~loc name = (Style.as_inline_code Location.print_filename) filename (Style.as_inline_code CU.Name.print) ps_name (Style.as_inline_code CU.Name.print) name - | Inconsistent_import _ -> assert false + | Inconsistent_import _ -> + (* Can't be raised by [find_pers_struct ~check:false] *) + assert false | Need_recursive_types name -> Format.asprintf "%a uses recursive types" (Style.as_inline_code CU.Name.print) name - | Inconsistent_package_declaration_between_imports _ -> assert false + | Inconsistent_package_declaration_between_imports _ -> + (* Can't be raised by [find_pers_struct ~check:false] *) + assert false | Direct_reference_from_wrong_package (unit, _filename, prefix) -> Format.asprintf "%a is inaccessible from %a" CU.print unit describe_prefix prefix - (* The cmi is necessary, otherwise the functor cannot be - generated. Moreover, aliases of functor arguments are forbidden. *) - | Illegal_import_of_parameter _ -> assert false - | Not_compiled_as_parameter _ -> assert false - | Imported_module_has_unset_parameter _ -> assert false - | Imported_module_has_no_such_parameter _ -> assert false - | Not_compiled_as_argument _ -> assert false - | Argument_type_mismatch _ -> assert false - | Unbound_module_as_argument_value _ -> assert false + | Illegal_import_of_parameter (name, _) -> + Format.asprintf "%a is a parameter" + (Style.as_inline_code Global_module.Name.print) name + | Not_compiled_as_parameter name -> + Format.asprintf "%a should be a parameter but isn't" + (Style.as_inline_code Global_module.Name.print) name + | Imported_module_has_unset_parameter { imported; parameter } -> + Format.asprintf "%a requires argument for %a" + (Style.as_inline_code Global_module.Name.print) imported + (Style.as_inline_code Global_module.Parameter_name.print) + parameter + | Imported_module_has_no_such_parameter { imported; parameter; _ } -> + Format.asprintf "%a has no parameter %a" + (Style.as_inline_code CU.Name.print) imported + (Style.as_inline_code Global_module.Parameter_name.print) + parameter + | Not_compiled_as_argument { value; _ } -> + Format.asprintf "%a is not compiled as an argument" + (Style.as_inline_code Global_module.Name.print) value + | Argument_type_mismatch { value; expected; actual; _ } -> + Format.asprintf "%a implements %a, not %a" + (Style.as_inline_code Global_module.Name.print) value + (Style.as_inline_code Global_module.Parameter_name.print) actual + (Style.as_inline_code Global_module.Parameter_name.print) expected + | Unbound_module_as_argument_value { value; _ } -> + Format.asprintf "Can't find argument %a" + (Style.as_inline_code Global_module.Name.print) value in let warn = Warnings.No_cmi_file(name_as_string, Some msg) in Location.prerr_warning loc warn @@ -1062,7 +1033,7 @@ let is_imported_opaque {imported_opaque_units; _} s = let implemented_parameter penv modname = match find_name_info_in_cache penv modname with - | Some { pn_arg_for; _ } -> pn_arg_for + | Some { pn_import = { imp_arg_for; _ }; _ } -> imp_arg_for | None -> None let make_cmi penv modname kind sign alerts = @@ -1076,7 +1047,6 @@ let make_cmi penv modname kind sign alerts = let params = (* Needs to be consistent with [Translmod] *) parameters penv - |> List.map (global_of_global_name penv ~check:true ~allow_excess_args:false) in (* Need to calculate [params] before these since [global_of_global_name] has side effects *) @@ -1189,9 +1159,9 @@ let report_error ppf = @[Pass @{-parameter %a@}@ to add %a@ as a parameter@ \ of the current unit.@]@]" (Style.as_inline_code Global_module.Name.print) modname - (Style.as_inline_code Global_module.Name.print) param - Global_module.Name.print param - (Style.as_inline_code Global_module.Name.print) param + (Style.as_inline_code Global_module.Parameter_name.print) param + Global_module.Parameter_name.print param + (Style.as_inline_code Global_module.Parameter_name.print) param | Imported_module_has_no_such_parameter { valid_parameters; imported = modname; parameter = param; value = _; } -> let pp_hint ppf () = @@ -1201,11 +1171,11 @@ let report_error ppf = "Compile %a@ with @{-parameter %a@}@ to make it a \ parameter." (Style.as_inline_code CU.Name.print) modname - Global_module.Name.print param + Global_module.Parameter_name.print param | _ -> let print_params = Format.pp_print_list ~pp_sep:Format.pp_print_space - (Style.as_inline_code Global_module.Name.print) + (Style.as_inline_code Global_module.Parameter_name.print) in fprintf ppf "Parameters for %a:@ @[%a@]" (Style.as_inline_code CU.Name.print) modname @@ -1215,7 +1185,7 @@ let report_error ppf = "@[The module %a@ has no parameter %a.@]@.\ @[@{Hint@}: @[%a@]@]" (Style.as_inline_code CU.Name.print) modname - (Style.as_inline_code Global_module.Name.print) param + (Style.as_inline_code Global_module.Parameter_name.print) param pp_hint () | Not_compiled_as_argument { param; value; filename } -> fprintf ppf @@ -1224,9 +1194,9 @@ let report_error ppf = @[@{Hint@}: \ @[Compile %a@ with @{-as-argument-for %a@}.@]@]" (Style.as_inline_code Global_module.Name.print) value - (Style.as_inline_code Global_module.Name.print) param + (Style.as_inline_code Global_module.Parameter_name.print) param (Style.as_inline_code Location.print_filename) filename - Global_module.Name.print param + Global_module.Parameter_name.print param | Argument_type_mismatch { value; filename; expected; actual; } -> fprintf ppf "@[The module %a@ is used as an argument for the parameter %a@ \ @@ -1235,11 +1205,11 @@ let report_error ppf = @[%a@ was compiled with \ @{-as-argument-for %a@}.@]@]" (Style.as_inline_code Global_module.Name.print) value - (Style.as_inline_code Global_module.Name.print) expected + (Style.as_inline_code Global_module.Parameter_name.print) expected (Style.as_inline_code Global_module.Name.print) value - (Style.as_inline_code Global_module.Name.print) actual + (Style.as_inline_code Global_module.Parameter_name.print) actual (Style.as_inline_code Location.print_filename) filename - Global_module.Name.print expected + Global_module.Parameter_name.print expected | Unbound_module_as_argument_value { instance; value } -> fprintf ppf "@[Unbound module %a@ in instance %a@]" diff --git a/upstream/ocaml_flambda/typing/persistent_env.mli b/upstream/ocaml_flambda/typing/persistent_env.mli index dec11bbb2..8c72f6325 100644 --- a/upstream/ocaml_flambda/typing/persistent_env.mli +++ b/upstream/ocaml_flambda/typing/persistent_env.mli @@ -34,24 +34,24 @@ type error = | Not_compiled_as_parameter of Global_module.Name.t | Imported_module_has_unset_parameter of { imported : Global_module.Name.t; - parameter : Global_module.Name.t; + parameter : Global_module.Parameter_name.t; } | Imported_module_has_no_such_parameter of { imported : Compilation_unit.Name.t; - valid_parameters : Global_module.Name.t list; - parameter : Global_module.Name.t; + valid_parameters : Global_module.Parameter_name.t list; + parameter : Global_module.Parameter_name.t; value : Global_module.Name.t; } | Not_compiled_as_argument of - { param : Global_module.Name.t; + { param : Global_module.Parameter_name.t; value : Global_module.Name.t; filename : filepath; } | Argument_type_mismatch of { value : Global_module.Name.t; filename : filepath; - expected : Global_module.Name.t; - actual : Global_module.Name.t; + expected : Global_module.Parameter_name.t; + actual : Global_module.Parameter_name.t; } | Unbound_module_as_argument_value of { instance : Global_module.Name.t; value : Global_module.Name.t; } @@ -116,7 +116,7 @@ val check : allow_hidden:bool -> 'a t -> 'a sig_reader (* Lets it be known that the given module is a parameter to this module and thus is expected to have been compiled as such. Raises an exception if the module has already been imported as a non-parameter. *) -val register_parameter : 'a t -> Global_module.Name.t -> unit +val register_parameter : 'a t -> Global_module.Parameter_name.t -> unit (* [is_parameter_import penv md] checks if [md] is a parameter. Raises a fatal error if the module has not been imported. *) @@ -138,7 +138,7 @@ val register_import_as_opaque : 'a t -> Compilation_unit.Name.t -> unit (* [implemented_parameter penv md] returns the argument to [-as-argument-for] that [md] was compiled with. *) val implemented_parameter : 'a t - -> Global_module.Name.t -> Global_module.Name.t option + -> Global_module.Name.t -> Global_module.Parameter_name.t option val global_of_global_name : 'a t -> check:bool @@ -196,7 +196,7 @@ val is_imported_parameter : 'a t -> Global_module.Name.t -> bool All of these will have been specified by [-parameter] but not all of them are necessarily imported - any that don't appear in the source are still considered parameters of the module but will not appear in [imports]. *) -val parameters : 'a t -> Global_module.Name.t list +val parameters : 'a t -> Global_module.Parameter_name.t list (* Return the CRC of the interface of the given compilation unit *) val crc_of_unit: 'a t -> Compilation_unit.Name.t -> Digest.t diff --git a/upstream/ocaml_flambda/typing/predef.ml b/upstream/ocaml_flambda/typing/predef.ml index afded8347..290e47c49 100644 --- a/upstream/ocaml_flambda/typing/predef.ml +++ b/upstream/ocaml_flambda/typing/predef.ml @@ -389,8 +389,7 @@ let build_initial_env add_type add_extension empty_env = |> add_type1 ident_array ~variance:Variance.full ~separability:Separability.Ind - ~param_jkind:(Jkind.add_nullability_crossing - (Jkind.Builtin.any ~why:Array_type_argument)) + ~param_jkind:(Jkind.Builtin.any_non_null ~why:Array_type_argument) ~jkind:(fun param -> Jkind.Builtin.mutable_data ~why:(Primitive ident_array) |> Jkind.add_with_bounds @@ -399,8 +398,7 @@ let build_initial_env add_type add_extension empty_env = |> add_type1 ident_iarray ~variance:Variance.covariant ~separability:Separability.Ind - ~param_jkind:(Jkind.add_nullability_crossing - (Jkind.Builtin.any ~why:Array_type_argument)) + ~param_jkind:(Jkind.Builtin.any_non_null ~why:Array_type_argument) ~jkind:(fun param -> Jkind.Builtin.immutable_data ~why:(Primitive ident_iarray) |> Jkind.add_with_bounds @@ -410,16 +408,17 @@ let build_initial_env add_type add_extension empty_env = ~kind:(variant [ cstr ident_false []; cstr ident_true []]) ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_char ~jkind:Jkind.Const.Builtin.immediate - |> add_type ident_exn ~kind:Type_open ~jkind:Jkind.Const.Builtin.value - |> add_type ident_extension_constructor ~jkind:Jkind.Const.Builtin.value - |> add_type ident_float ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.float64 + |> add_type_with_jkind ident_exn ~kind:Type_open + ~jkind:(Jkind.for_non_float ~why:(Primitive ident_exn)) + |> add_type ident_extension_constructor ~jkind:Jkind.Const.Builtin.immutable_data + |> add_type_with_jkind ident_float ~jkind:(Jkind.for_float ident_float) + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_float |> add_type ident_floatarray ~jkind:Jkind.Const.Builtin.mutable_data |> add_type ident_int ~jkind:Jkind.Const.Builtin.immediate |> add_type ident_int32 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.bits32 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_int32 |> add_type ident_int64 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.bits64 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_int64 |> add_type1 ident_lazy_t ~variance:Variance.covariant ~separability:Separability.Ind @@ -428,7 +427,7 @@ let build_initial_env add_type add_extension empty_env = It might also cross portability, linearity, uniqueness subject to its parameter. But I'm also fine not doing that for now (and wait until users complains). *) - ~jkind:(fun _ -> Jkind.Builtin.value ~why:(Primitive ident_lazy_t)) + ~jkind:(fun _ -> Jkind.for_non_float ~why:(Primitive ident_lazy_t)) |> add_type1 ident_list ~variance:Variance.covariant ~separability:Separability.Ind @@ -440,7 +439,7 @@ let build_initial_env add_type add_extension empty_env = ~jkind:list_jkind |> add_type ident_nativeint ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.word + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_nativeint |> add_type1 ident_option ~variance:Variance.covariant ~separability:Separability.Ind @@ -521,23 +520,23 @@ let add_simd_stable_extension_types add_type env = let _, add_type = mk_add_type add_type in env |> add_type ident_int8x16 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.vec128 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_128bit_vectors |> add_type ident_int16x8 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.vec128 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_128bit_vectors |> add_type ident_int32x4 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.vec128 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_128bit_vectors |> add_type ident_int64x2 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.vec128 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_128bit_vectors |> add_type ident_float32x4 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.vec128 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_128bit_vectors |> add_type ident_float64x2 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.vec128 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_128bit_vectors let add_small_number_extension_types add_type env = let _, add_type = mk_add_type add_type in env |> add_type ident_float32 ~jkind:Jkind.Const.Builtin.immutable_data - ~unboxed_jkind:Jkind.Const.Builtin.float32 + ~unboxed_jkind:Jkind.Const.Builtin.kind_of_unboxed_float32 let add_small_number_beta_extension_types add_type env = let _, add_type = mk_add_type add_type in diff --git a/upstream/ocaml_flambda/typing/primitive.ml b/upstream/ocaml_flambda/typing/primitive.ml index b49b687c5..31cbf0a44 100644 --- a/upstream/ocaml_flambda/typing/primitive.ml +++ b/upstream/ocaml_flambda/typing/primitive.ml @@ -445,10 +445,21 @@ module Repr_check = struct | Untagged_immediate -> true | Same_as_ocaml_repr _ | Repr_poly -> false - let is_not_product = function + let is_not_product_sort : Jkind_types.Sort.Const.t -> bool = function + | Base _ -> true + | Product _ -> false + + let valid_c_stub_arg = function + | Same_as_ocaml_repr s -> is_not_product_sort s + | Unboxed_float _ | Unboxed_integer _ | Unboxed_vector _ + | Untagged_immediate | Repr_poly -> true + + let valid_c_stub_return = function | Same_as_ocaml_repr (Base _) | Unboxed_float _ | Unboxed_integer _ | Unboxed_vector _ | Untagged_immediate | Repr_poly -> true + | Same_as_ocaml_repr (Product [s1; s2]) -> + is_not_product_sort s1 && is_not_product_sort s2 | Same_as_ocaml_repr (Product _) -> false let check checks prim = @@ -475,11 +486,14 @@ module Repr_check = struct (List.init (arity+1) (fun _ -> value_or_unboxed_or_untagged)) prim - let no_product_repr prim = + let check_c_stub prim = + (* C externals are allowed to return a tuple, but may not take products as + arguments or return products with more than two elements. *) let arity = List.length prim.prim_native_repr_args in - check - (List.init (arity+1) (fun _ -> is_not_product)) - prim + let checks = + (List.init arity (fun _ -> valid_c_stub_arg)) @ [valid_c_stub_return] + in + check checks prim end (* Note: [any] here is not the same as jkind [any]. It means we allow any @@ -765,17 +779,7 @@ let prim_has_valid_reprs ~loc prim = | "%sendcache" |} *) - else - (* CR layouts v7.1: Right now we're restricting C externals that - use unboxed products to "alpha", because they are untested and - the calling convention will change. The backend PR that adds - better support and testing should change this "else" case to - require [beta]. Then when we move products out of beta we can - change it back to its original definition: [fun _ -> Success] - *) - if Language_extension.(is_at_least Layouts Alpha) - then fun _ -> Success - else no_product_repr) + else check_c_stub) in match check prim with | Success -> () diff --git a/upstream/ocaml_flambda/typing/printtyp.ml b/upstream/ocaml_flambda/typing/printtyp.ml index e28083ce4..d8fbd1727 100644 --- a/upstream/ocaml_flambda/typing/printtyp.ml +++ b/upstream/ocaml_flambda/typing/printtyp.ml @@ -451,7 +451,8 @@ let instance_name global = String.concat "" (head :: List.map string_of_arg args) and string_of_arg arg = let ({ param; value } : Global_module.Name.argument) = arg in - sprintf "(%s)(%s)" (string_of_global param) (string_of_global value) + sprintf "(%s)(%s)" + (Global_module.Parameter_name.to_string param) (string_of_global value) in let printed_name = string_of_global global ^ " [@jane.non_erasable.instances]" @@ -661,6 +662,22 @@ and raw_lid_type_list tl = raw_list (fun ppf (lid, typ) -> fprintf ppf "(@,%a,@,%a)" longident lid raw_type typ) tl +and raw_row_desc ppf row = + let Row {fields; more; name; fixed; closed} = row_repr row in + fprintf ppf + "@[{@[%s@,%a;@]@ @[%s@,%a;@]@ %s%B;@ %s%a;@ @[<1>%s%t@]}@]" + "row_fields=" + (raw_list (fun ppf (l, f) -> + fprintf ppf "@[%s,@ %a@]" l raw_field f)) + fields + "row_more=" raw_type more + "row_closed=" closed + "row_fixed=" raw_row_fixed fixed + "row_name=" + (fun ppf -> + match name with None -> fprintf ppf "None" + | Some(p,tl) -> + fprintf ppf "Some(@,%a,@,%a)" path p raw_type_list tl) and raw_type_desc ppf = function Tvar { name; jkind } -> fprintf ppf "Tvar (@,%a,@,%a)" @@ -703,30 +720,19 @@ and raw_type_desc ppf = function raw_type t raw_type_list tl | Tvariant row -> - let Row {fields; more; name; fixed; closed} = row_repr row in - fprintf ppf - "@[{@[%s@,%a;@]@ @[%s@,%a;@]@ %s%B;@ %s%a;@ @[<1>%s%t@]}@]" - "row_fields=" - (raw_list (fun ppf (l, f) -> - fprintf ppf "@[%s,@ %a@]" l raw_field f)) - fields - "row_more=" raw_type more - "row_closed=" closed - "row_fixed=" raw_row_fixed fixed - "row_name=" - (fun ppf -> - match name with None -> fprintf ppf "None" - | Some(p,tl) -> - fprintf ppf "Some(@,%a,@,%a)" path p raw_type_list tl) + raw_row_desc ppf row | Tpackage (p, fl) -> fprintf ppf "@[Tpackage(@,%a,@,%a)@]" path p raw_lid_type_list fl + | Tof_kind jkind -> + fprintf ppf "(type@ :@ %a)" Jkind.format jkind and raw_row_fixed ppf = function | None -> fprintf ppf "None" | Some Types.Fixed_private -> fprintf ppf "Some Fixed_private" | Some Types.Rigid -> fprintf ppf "Some Rigid" | Some Types.Univar t -> fprintf ppf "Some(Univar(%a))" raw_type t | Some Types.Reified p -> fprintf ppf "Some(Reified(%a))" path p +| Some Types.Fixed_existential -> fprintf ppf "Some Fixed_existential" and raw_field ppf rf = match_row_field @@ -1401,40 +1407,73 @@ let outcome_label : Types.arg_label -> Outcometree.arg_label = function | Optional l -> Optional l | Position l -> Position l +let rec all_or_none f = function + | [] -> Some [] + | x :: xs -> + Option.bind (f x) (fun y -> + Option.bind (all_or_none f xs) (fun ys -> + Some (y :: ys) + ) + ) + let tree_of_modality_new (t: Parsetree.modality loc) = - let Modality s = t.txt in s + let Modality s = t.txt in Ogf_new s -let tree_of_modality (t: Parsetree.modality loc) = +let tree_of_modality_old (t: Parsetree.modality loc) = match t.txt with - | Modality "global" -> Ogf_legacy Ogf_global - | _ -> Ogf_new (tree_of_modality_new t) + | Modality "global" -> Some (Ogf_legacy Ogf_global) + | _ -> None -let tree_of_modalities mut attrs t = - let t = Typemode.untransl_modalities mut attrs t in - List.map tree_of_modality t +let tree_of_modalities mut t = + let t = Typemode.untransl_modalities mut t in + match all_or_none tree_of_modality_old t with + | Some l -> l + | None -> List.map tree_of_modality_new t -let tree_of_modalities_new mut attrs t = - let l = Typemode.untransl_modalities mut attrs t in - List.map tree_of_modality_new l +let tree_of_modalities_new mut t = + let l = Typemode.untransl_modalities mut t in + List.map (fun ({txt = Parsetree.Modality s; _}) -> s) l (** [tree_of_mode m l] finds the outcome node in [l] that corresponds to [m]. Raise if not found. *) -let tree_of_mode (mode : 'm option) (l : ('m * out_mode) list) : out_mode option = - Option.map (fun x -> List.assoc x l) mode +let tree_of_mode_old (t : Parsetree.mode loc) = + match t.txt with + | Mode "local" -> Some (Omd_legacy Omd_local) + | _ -> None + +let tree_of_mode_new (t: Parsetree.mode loc) = + let Mode s = t.txt in Omd_new s -let tree_of_modes modes = +let tree_of_modes (modes : Mode.Alloc.Const.t) = let diff = Mode.Alloc.Const.diff modes Mode.Alloc.Const.legacy in - (* The mapping passed to [tree_of_mode] must cover all non-legacy modes *) - let l = [ - tree_of_mode diff.areality [Mode.Locality.Const.Local, Omd_legacy Omd_local]; - tree_of_mode diff.linearity [Mode.Linearity.Const.Once, Omd_new "once"]; - tree_of_mode diff.uniqueness [Mode.Uniqueness.Const.Unique, Omd_new "unique"]; - tree_of_mode diff.portability [Mode.Portability.Const.Portable, Omd_new "portable"]; - tree_of_mode diff.contention [Mode.Contention.Const.Contended, Omd_new "contended"; - Mode.Contention.Const.Shared, Omd_new "shared"]; - tree_of_mode diff.yielding [Mode.Yielding.Const.Yielding, Omd_new "yielding"]] + + (* [yielding] has implied defaults depending on [areality]: *) + let yielding = + match modes.areality, modes.yielding with + | Local, Yielding | Global, Unyielding -> None + | _, _ -> Some modes.yielding + in + + (* [contention] has implied defaults based on [visibility]: *) + let contention = + match modes.visibility, modes.contention with + | Immutable, Contended | Read, Shared | Read_write, Uncontended -> None + | _, _ -> Some modes.contention in - List.filter_map Fun.id l + + (* [portability] has implied defaults based on [statefulness]: *) + let portability = + match modes.statefulness, modes.portability with + | Stateless, Portable | (Observing | Stateful), Nonportable -> None + | _, _ -> Some modes.portability + in + + let diff = {diff with yielding; contention; portability} in + (* The mapping passed to [tree_of_mode] must cover all non-legacy modes *) + let l = Typemode.untransl_mode_annots diff in + match all_or_none tree_of_mode_old l with + | Some l -> l + | None -> List.map tree_of_mode_new l (* [alloc_mode] is the mode that our printing has expressed on [ty]. For the example [A -> local_ (B -> C)], we will call [tree_of_typexp] on (B -> C) with @@ -1565,6 +1604,8 @@ let rec tree_of_typexp mode alloc_mode ty = tree_of_typexp mode Alloc.Const.legacy ty )) fl in Otyp_module (tree_of_path (Some Module_type) p, fl) + | Tof_kind jkind -> + Otyp_of_kind (out_jkind_of_desc (Jkind.get jkind)) in if List.memq px !delayed then delayed := List.filter ((!=) px) !delayed; alias_nongen_row mode px ty; @@ -1609,7 +1650,7 @@ and tree_of_labeled_typlist mode tyl = and tree_of_typ_gf {ca_type=ty; ca_modalities=gf; _} = (tree_of_typexp Type Alloc.Const.legacy ty, - tree_of_modalities Immutable [] gf) + tree_of_modalities Immutable gf) (** We are on the RHS of an arrow type, where [ty] is the return type, and [m] is the return mode. This function decides the printed modes on [ty]. @@ -1687,12 +1728,13 @@ let tree_of_typexp mode ty = tree_of_typexp mode Alloc.Const.legacy ty let typexp mode ppf ty = !Oprint.out_type ppf (tree_of_typexp mode ty) +(* Only used for printing a single modality in error message *) let modality ?(id = fun _ppf -> ()) ppf modality = if Mode.Modality.is_id modality then id ppf else modality |> Typemode.untransl_modality - |> tree_of_modality + |> tree_of_modality_new |> !Oprint.out_modality ppf let prepared_type_expr ppf ty = typexp Type ppf ty @@ -1798,7 +1840,8 @@ let tree_of_label l = match l.ld_mutable with | Mutable m -> let mut = - if Alloc.Comonadic.Const.eq m Alloc.Comonadic.Const.legacy then + let open Alloc.Comonadic.Const in + if Misc.Le_result.equal ~le m legacy then Om_mutable None else Om_mutable (Some "") @@ -1806,9 +1849,7 @@ let tree_of_label l = mut | Immutable -> Om_immutable in - let ld_modalities = - tree_of_modalities l.ld_mutable l.ld_attributes l.ld_modalities - in + let ld_modalities = tree_of_modalities l.ld_mutable l.ld_modalities in (Ident.name l.ld_id, mut, tree_of_typexp Type l.ld_type, ld_modalities) let tree_of_constructor_arguments = function @@ -2229,8 +2270,7 @@ let tree_of_value_description id decl = let vd = { oval_name = id; oval_type = Otyp_poly(qtvs, ty); - oval_modalities = - tree_of_modalities_new Immutable decl.val_attributes moda; + oval_modalities = tree_of_modalities_new Immutable moda; oval_prims = []; oval_attributes = attrs } @@ -3004,6 +3044,7 @@ let explain_fixed_row pos expl = match expl with print_path p ppf)) p | Rigid -> ignore + | Fixed_existential -> ignore let explain_variant (type variety) : variety Errortrace.variant -> _ = function (* Common *) @@ -3027,7 +3068,7 @@ let explain_variant (type variety) : variety Errortrace.variant -> _ = function dprintf "@,@[%t,@ %a@]" (explain_fixed_row pos e) explain_fixed_row_case k ) - | Errortrace.Fixed_row (_,_, Rigid) -> + | Errortrace.Fixed_row (_,_, (Rigid | Fixed_existential)) -> (* this case never happens *) None (* Equality & Moregen *) @@ -3149,14 +3190,22 @@ let explanation (type variety) intro prev env Some (dprintf "@ @[%a@]" (Jkind.Violation.report_with_offender_sort ~offender:(fun ppf -> type_expr ppf t)) e) - | Errortrace.Unequal_var_jkinds (t1,l1,t2,l2) -> - let fmt_history t l ppf = + | Errortrace.Unequal_var_jkinds (t1,k1,t2,k2) -> + let fmt_history t k ppf = Jkind.(format_history ~intro:( - dprintf "The layout of %a is %a" prepared_type_expr t format l) ppf l) + dprintf "The layout of %a is %a" prepared_type_expr t format k) ppf k) in Some (dprintf "@ because the layouts of their variables are different.\ @ @[%t@;%t@]" - (fmt_history t1 l1) (fmt_history t2 l2)) + (fmt_history t1 k1) (fmt_history t2 k2)) + | Errortrace.Unequal_tof_kind_jkinds (k1, k2) -> + let fmt_history which k ppf = + Jkind.(format_history ~intro:( + dprintf "The kind of %s is %a" which format k) ppf k) + in + Some (dprintf "@ because their kinds are different.\ + @ @[%t@;%t@]" + (fmt_history "the first" k1) (fmt_history "the second" k2)) let mismatch intro env trace = Errortrace.explain trace (fun ~prev h -> explanation intro prev env h) @@ -3220,7 +3269,8 @@ let error trace_format mode subst env tr txt1 ppf txt2 ty_expect_explanation = tr in let jkind_error = match Misc.last tr with - | Some (Bad_jkind _ | Bad_jkind_sort _ | Unequal_var_jkinds _) -> + | Some (Bad_jkind _ | Bad_jkind_sort _ | Unequal_var_jkinds _ + | Unequal_tof_kind_jkinds _) -> true | Some (Diff _ | Escape _ | Variant _ | Obj _ | Incompatible_fields _ | Rec_occur _) diff --git a/upstream/ocaml_flambda/typing/printtyp.mli b/upstream/ocaml_flambda/typing/printtyp.mli index 44d3fdd06..afc96496d 100644 --- a/upstream/ocaml_flambda/typing/printtyp.mli +++ b/upstream/ocaml_flambda/typing/printtyp.mli @@ -41,6 +41,7 @@ val strings_of_paths: namespace -> Path.t list -> string list (** Print a list of paths, using the same naming context to avoid name collisions *) +val raw_row_desc : formatter -> row_desc -> unit val raw_type_expr: formatter -> type_expr -> unit val raw_field : formatter -> row_field -> unit val string_of_label: Types.arg_label -> string diff --git a/upstream/ocaml_flambda/typing/printtyped.ml b/upstream/ocaml_flambda/typing/printtyped.ml index f586f6942..c28985322 100644 --- a/upstream/ocaml_flambda/typing/printtyped.ml +++ b/upstream/ocaml_flambda/typing/printtyped.ml @@ -308,6 +308,8 @@ let rec core_type i ppf x = | Ttyp_open (path, _mod_ident, t) -> line i ppf "Ttyp_open %a\n" fmt_path path; core_type i ppf t + | Ttyp_of_kind jkind -> + line i ppf "Ttyp_of_kind %a\n" (jkind_annotation i) jkind; | Ttyp_call_pos -> line i ppf "Ttyp_call_pos\n"; and labeled_core_type i ppf (l, t) = @@ -418,7 +420,8 @@ and function_body i ppf (body : function_body) = expression (i+1) ppf e | Tfunction_cases { fc_cases; fc_loc; fc_exp_extra; fc_attributes; fc_arg_mode; - fc_arg_sort; fc_param = _; fc_partial; fc_env = _; fc_ret_type = _ } + fc_arg_sort; fc_param = _; fc_param_debug_uid = _; + fc_partial; fc_env = _; fc_ret_type = _ } -> line i ppf "Tfunction_cases%a %a\n" fmt_partiality fc_partial @@ -543,7 +546,7 @@ and expression i ppf x = line i ppf "representation =\n"; record_representation (i+1) ppf representation; line i ppf "extended_expression =\n"; - option (i+1) expression ppf (Option.map fst extended_expression); + option (i+1) expression ppf (Option.map Misc.fst3 extended_expression); | Texp_record_unboxed_product { fields; representation; extended_expression } -> line i ppf "Texp_record_unboxed_product\n"; @@ -554,7 +557,7 @@ and expression i ppf x = record_unboxed_product_representation (i+1) ppf representation; line i ppf "extended_expression =\n"; option (i+1) expression ppf (Option.map fst extended_expression); - | Texp_field (e, li, _, _, _) -> + | Texp_field (e, _, li, _, _, _) -> line i ppf "Texp_field\n"; expression i ppf e; longident i ppf li; diff --git a/upstream/ocaml_flambda/typing/shape.ml b/upstream/ocaml_flambda/typing/shape.ml index b0a986f65..7caed292b 100644 --- a/upstream/ocaml_flambda/typing/shape.ml +++ b/upstream/ocaml_flambda/typing/shape.ml @@ -70,7 +70,8 @@ module Uid = struct incr id; let comp_unit = match current_unit with - | Some cu -> cu |> Compilation_unit.full_path_as_string + | Some cu -> + Unit_info.modname cu |> Compilation_unit.full_path_as_string | None -> "" in Item { comp_unit; id = !id } @@ -403,9 +404,17 @@ let of_path ~find_shape ~namespace path = Path of label: M.t.lbl Path of label of inline record: - M.t.C.lbl *) + M.t.C.lbl + Path of label of implicit unboxed record: + M.t#.lbl + *) let rec aux : Sig_component_kind.t -> Path.t -> t = fun ns -> function | Pident id -> find_shape ns id + | Pdot (Pextra_ty (path, Punboxed_ty), name) -> + (match ns with + Unboxed_label -> () + | _ -> Misc.fatal_error "Shape.of_path"); + proj (aux Type path) (name, Label) | Pdot (path, name) -> let namespace : Sig_component_kind.t = match (ns : Sig_component_kind.t) with diff --git a/upstream/ocaml_flambda/typing/shape.mli b/upstream/ocaml_flambda/typing/shape.mli index 53f0d818d..3a18698cb 100644 --- a/upstream/ocaml_flambda/typing/shape.mli +++ b/upstream/ocaml_flambda/typing/shape.mli @@ -64,7 +64,7 @@ module Uid : sig val reinit : unit -> unit - val mk : current_unit:Compilation_unit.t option -> t + val mk : current_unit:Unit_info.t option -> t val of_compilation_unit_id : Compilation_unit.t -> t val of_compilation_unit_name : Compilation_unit.Name.t -> t val of_predef_id : Ident.t -> t diff --git a/upstream/ocaml_flambda/typing/signature_with_global_bindings.ml b/upstream/ocaml_flambda/typing/signature_with_global_bindings.ml index a93ee0559..da3b3a850 100644 --- a/upstream/ocaml_flambda/typing/signature_with_global_bindings.ml +++ b/upstream/ocaml_flambda/typing/signature_with_global_bindings.ml @@ -20,18 +20,27 @@ let array_fold_left_filter_map f init array = in ans, new_array -let subst t (args : (Global_module.Name.t * Global_module.t) list) = +let name_in_subst (name : Global_module.Name.t) subst = + match name with + | { head; args = [] } -> + (* Not generally okay to just convert to a parameter name, but we're only doing this + to check whether there happens to be a parameter with this name in the subst *) + let head_as_param_name = head |> Global_module.Parameter_name.of_string in + Global_module.Parameter_name.Map.mem head_as_param_name subst + | _ -> false + +let subst t (args : (Global_module.Parameter_name.t * Global_module.t) list) = let { sign; bound_globals } = t in match args with | [] -> t | _ -> (* The global-level substitution *) - let arg_subst = Global_module.Name.Map.of_list args in + let arg_subst = Global_module.Parameter_name.Map.of_list args in (* Take a bound global, substitute arguments into it, then return the updated global while also adding it to the term-level substitution *) let add_and_update_binding subst (bound_global, prec) = let name = Global_module.to_name bound_global in - if Global_module.Name.Map.mem name arg_subst then + if name_in_subst name arg_subst then (* This shouldn't happen: only globals with hidden arguments should be in [bound_globals], and parameters shouldn't have arguments. Previous code that was meant to handle parameterised parameters @@ -69,7 +78,9 @@ let subst t (args : (Global_module.Name.t * Global_module.t) list) = in (* Add an argument to the substitution. *) let add_arg subst (name, value) = - let name_id = Ident.create_global name in + let name_id = + Ident.create_global (name |> Global_module.Name.of_parameter_name) + in let value_as_name = Global_module.to_name value in let value_id = Ident.create_global value_as_name in Subst.add_module name_id (Pident value_id) subst diff --git a/upstream/ocaml_flambda/typing/signature_with_global_bindings.mli b/upstream/ocaml_flambda/typing/signature_with_global_bindings.mli index bf5d76efa..609f413f5 100644 --- a/upstream/ocaml_flambda/typing/signature_with_global_bindings.mli +++ b/upstream/ocaml_flambda/typing/signature_with_global_bindings.mli @@ -51,4 +51,4 @@ val read_from_cmi : Cmi_format.cmi_infos_lazy -> t Note that the argument values themselves won't be returned in the new list of bound globals, since it's assumed that they are already accounted for in the environment. *) -val subst : t -> (Global_module.Name.t * Global_module.t) list -> t +val subst : t -> (Global_module.Parameter_name.t * Global_module.t) list -> t diff --git a/upstream/ocaml_flambda/typing/solver.ml b/upstream/ocaml_flambda/typing/solver.ml index ff972766e..b4691fadf 100644 --- a/upstream/ocaml_flambda/typing/solver.ml +++ b/upstream/ocaml_flambda/typing/solver.ml @@ -34,6 +34,8 @@ type 'a error = } module Solver_mono (C : Lattices_mono) = struct + type nonrec 'a error = 'a error + type any_morph = Any_morph : ('a, 'b, 'd) C.morph -> any_morph module VarMap = Map.Make (struct @@ -98,6 +100,8 @@ module Solver_mono (C : Lattices_mono) = struct and ('b, 'd) morphvar = | Amorphvar : 'a var * ('a, 'b, 'd) C.morph -> ('b, 'd) morphvar + constraint 'd = _ * _ + [@@ocaml.warning "-62"] let get_key (Amorphvar (v, m)) = v.id, Any_morph m @@ -134,6 +138,8 @@ module Solver_mono (C : Lattices_mono) = struct 'a * ('a, disallowed * 'r) morphvar VarMap.t -> ('a, disallowed * 'r) mode (** [Amodemeet a [mv0, mv1, ..]] represents [a meet mv0 meet mv1 meet ..]. *) + constraint 'd = _ * _ + [@@ocaml.warning "-62"] (** Prints a mode variable, including the set of variables below it (recursively). To handle cycles, [traversed] is the set of variables that @@ -169,7 +175,8 @@ module Solver_mono (C : Lattices_mono) = struct (var_map_to_list v.vlower) and print_morphvar : - type a d. ?traversed:VarSet.t -> a C.obj -> _ -> (a, d) morphvar -> _ = + type a l r. + ?traversed:VarSet.t -> a C.obj -> _ -> (a, l * r) morphvar -> _ = fun ?traversed dst ppf (Amorphvar (v, f)) -> let src = C.src dst f in Format.fprintf ppf "%a(%a)" (C.print_morph dst) f (print_var ?traversed src) @@ -260,7 +267,7 @@ module Solver_mono (C : Lattices_mono) = struct let max (type a) (obj : a C.obj) = Amode (C.max obj) - let of_const a = Amode a + let of_const _obj a = Amode a let apply_morphvar dst morph (Amorphvar (var, morph')) = Amorphvar (var, C.compose dst morph morph') @@ -690,163 +697,3 @@ module Solver_mono (C : Lattices_mono) = struct allow_left (Amodevar mu), true end [@@inline always] - -module Solvers_polarized (C : Lattices_mono) = struct - module S = Solver_mono (C) - - type changes = S.changes - - let empty_changes = S.empty_changes - - let undo_changes = S.undo_changes - - module type Solver_polarized = - Solver_polarized - with type ('a, 'b, 'd) morph := ('a, 'b, 'd) C.morph - and type 'a obj := 'a C.obj - and type 'a error := 'a error - and type changes := changes - - module rec Positive : - (Solver_polarized - with type 'd polarized = 'd pos - and type ('a, 'd) mode_op = ('a, 'd) Negative.mode) = struct - type 'd polarized = 'd pos - - type ('a, 'd) mode_op = ('a, 'd) Negative.mode - - type ('a, 'd) mode = ('a, 'd) S.mode constraint 'd = 'l * 'r - - include Magic_allow_disallow (S) - - let newvar = S.newvar - - let submode = S.submode - - let join = S.join - - let meet = S.meet - - let of_const _ = S.of_const - - let min = S.min - - let max = S.max - - let zap_to_floor = S.zap_to_floor - - let zap_to_ceil = S.zap_to_ceil - - let newvar_above = S.newvar_above - - let newvar_below = S.newvar_below - - let get_ceil = S.get_ceil - - let get_floor = S.get_floor - - let get_loose_ceil = S.get_loose_ceil - - let get_loose_floor = S.get_loose_floor - - let print ?(verbose = false) = S.print ~verbose - - let via_monotone = S.apply - - let via_antitone = S.apply - end - - and Negative : - (Solver_polarized - with type 'd polarized = 'd neg - and type ('a, 'd) mode_op = ('a, 'd) Positive.mode) = struct - type 'd polarized = 'd neg - - type ('a, 'd) mode_op = ('a, 'd) Positive.mode - - type ('a, 'd) mode = ('a, 'r * 'l) S.mode constraint 'd = 'l * 'r - - include Magic_allow_disallow (struct - type ('a, _, 'd) sided = ('a, 'd) mode - - let disallow_right = S.disallow_left - - let disallow_left = S.disallow_right - - let allow_right = S.allow_left - - let allow_left = S.allow_right - end) - - let newvar = S.newvar - - let submode obj m0 m1 ~log = - Result.map_error - (fun { left; right } -> { left = right; right = left }) - (S.submode obj m1 m0 ~log) - - let join = S.meet - - let meet = S.join - - let of_const _ = S.of_const - - let min = S.max - - let max = S.min - - let zap_to_floor = S.zap_to_ceil - - let zap_to_ceil = S.zap_to_floor - - let newvar_above = S.newvar_below - - let newvar_below = S.newvar_above - - let get_ceil = S.get_floor - - let get_floor = S.get_ceil - - let get_loose_ceil = S.get_loose_floor - - let get_loose_floor = S.get_loose_ceil - - let print ?(verbose = false) = S.print ~verbose - - let via_monotone = S.apply - - let via_antitone = S.apply - end - - (* Definitions to show that this solver works over a category. *) - module Category = struct - type 'a obj = 'a C.obj - - type ('a, 'b, 'd) morph = ('a, 'b, 'd) C.morph - - type ('a, 'd) mode = - | Positive of ('a, 'd pos) Positive.mode - | Negative of ('a, 'd neg) Negative.mode - - let apply_into_positive : - type a b l r. - b obj -> - (a, b, l * r) morph -> - (a, l * r) mode -> - (b, l * r) Positive.mode = - fun obj morph -> function - | Positive mode -> Positive.via_monotone obj morph mode - | Negative mode -> Positive.via_antitone obj morph mode - - let apply_into_negative : - type a b l r. - b obj -> - (a, b, l * r) morph -> - (a, l * r) mode -> - (b, r * l) Negative.mode = - fun obj morph -> function - | Positive mode -> Negative.via_antitone obj morph mode - | Negative mode -> Negative.via_monotone obj morph mode - end -end -[@@inline always] diff --git a/upstream/ocaml_flambda/typing/solver_intf.mli b/upstream/ocaml_flambda/typing/solver_intf.mli index 8eed401fa..d8c970222 100644 --- a/upstream/ocaml_flambda/typing/solver_intf.mli +++ b/upstream/ocaml_flambda/typing/solver_intf.mli @@ -61,7 +61,7 @@ module type Lattices_mono = sig - [disallowed], meaning the morphism cannot be on the left because it does not have right adjoint. Similar for ['r]. *) - type ('a, 'b, 'd) morph + type ('a, 'b, 'd) morph constraint 'd = 'l * 'r (* Due to the implementation in [solver.ml], a mode doesn't have sufficient information to infer the object it lives in, whether at compile-time or @@ -160,41 +160,40 @@ module type Lattices_mono = sig val print_morph : 'b obj -> Format.formatter -> ('a, 'b, 'd) morph -> unit end -(** Arrange the permissions appropriately for a positive lattice, by - doing nothing. *) -type 'a pos = 'b * 'c constraint 'a = 'b * 'c - -(** Arrange the permissions appropriately for a negative lattice, by - swapping left and right. *) -type 'a neg = 'c * 'b constraint 'a = 'b * 'c - -module type Solver_polarized = sig +module type Solver_mono = sig (* These first few types will be replaced with types from the Lattices_mono *) (** The morphism type from the [Lattices_mono] we're working with. See comments on [Lattices_mono.morph]. *) - type ('a, 'b, 'd) morph + type ('a, 'b, 'd) morph constraint 'd = 'l * 'r (** The object type from the [Lattices_mono] we're working with *) type 'a obj type 'a error - (** For a negative lattice, we reverse the direction of adjoints. We thus use - [neg] for [polarized] for negative lattices, which reverses ['l * 'r] to - ['r * 'l]. (Use [pos] for positive lattices.) *) - type 'd polarized constraint 'd = 'l * 'r + (* Backtracking facilities used by [types.ml] *) + (** Represents a sequence of state mutations caused by mode operations. All + mutating operations in this module take a [log:changes ref option] and + append to it all changes made, regardless of success or failure. It is + [option] only for performance reasons; the caller should never provide + [log:None]. The caller is responsible for taking care of the appended log: + they can either revert the changes using [undo_changes], or commit the + changes to the global log in [types.ml]. *) type changes + (** An empty sequence of changes. *) + val empty_changes : changes + + (** Undo the sequence of changes recorded. *) + val undo_changes : changes -> unit + (** A mode with carrier type ['a] and allowance ['d]. See Note [Allowance] in allowance.mli.*) type ('a, 'd) mode constraint 'd = 'l * 'r - (** The mode type for the opposite polarity. *) - type ('a, 'd) mode_op constraint 'd = 'l * 'r - include Allow_disallow with type ('a, _, 'd) sided = ('a, 'd) mode (** Returns the mode representing the given constant. *) @@ -269,23 +268,12 @@ module type Solver_polarized = sig val print : ?verbose:bool -> 'a obj -> Format.formatter -> ('a, 'l * 'r) mode -> unit - (** Apply a monotone morphism whose source and target modes are of the - polarity of this enclosing module. That is, [Positive.apply_monotone] - takes a positive mode to a positive mode. *) - val via_monotone : + (** Apply a monotone morphism. *) + val apply : 'b obj -> - ('a, 'b, ('l * 'r) polarized) morph -> + ('a, 'b, 'l * 'r) morph -> ('a, 'l * 'r) mode -> ('b, 'l * 'r) mode - - (** Apply an antitone morphism whose target mode is the mode defined in - this module and whose source mode is the dual mode. That is, - [Positive.apply_antitone] takes a negative mode to a positive one. *) - val via_antitone : - 'b obj -> - ('a, 'b, ('l * 'r) polarized) morph -> - ('a, 'r * 'l) mode_op -> - ('b, 'l * 'r) mode end module type S = sig @@ -304,70 +292,10 @@ module type S = sig module Magic_equal (X : Equal) : Equal with type ('a, 'b, 'c) t = ('a, 'b, 'c) X.t - (** Solver that supports polarized lattices; needed because some morphisms - are antitone *) - module Solvers_polarized (C : Lattices_mono) : sig - (* Backtracking facilities used by [types.ml] *) - - (** Represents a sequence of state mutations caused by mode operations. All - mutating operations in this module take a [log:changes ref option] and - append to it all changes made, regardless of success or failure. It is - [option] only for performance reasons; the caller should never provide - [log:None]. The caller is responsible for taking care of the appended log: - they can either revert the changes using [undo_changes], or commit the - changes to the global log in [types.ml]. *) - type changes - - (** An empty sequence of changes. *) - val empty_changes : changes - - (** Undo the sequence of changes recorded. *) - val undo_changes : changes -> unit - - (* Construct a new category based on the original category [C]. Objects are - two copies of the objects in [C] of opposite polarity. The positive copy - is identical to the original lattice. The negative copy has its lattice - structure reversed. Morphism are four copies of the morphisms in [C], from - two copies of objects to two copies of objects. *) - - module type Solver_polarized = - Solver_polarized - with type ('a, 'b, 'd) morph := ('a, 'b, 'd) C.morph - and type 'a obj := 'a C.obj - and type 'a error := 'a error - and type changes := changes - - module rec Positive : - (Solver_polarized - with type 'd polarized = 'd pos - and type ('a, 'd) mode_op = ('a, 'd) Negative.mode) - - and Negative : - (Solver_polarized - with type 'd polarized = 'd neg - and type ('a, 'd) mode_op = ('a, 'd) Positive.mode) - - (* The following definitions show how this solver works over a category by - defining objects and morphisms. These definitions are not used in - practice. They are put into a module to make it easy to spot if we end up - using these in the future. *) - module Category : sig - type 'a obj = 'a C.obj - - type ('a, 'b, 'd) morph = ('a, 'b, 'd) C.morph - - type ('a, 'd) mode = - | Positive of ('a, 'd pos) Positive.mode - | Negative of ('a, 'd neg) Negative.mode - - val apply_into_positive : - 'b obj -> ('a, 'b, 'd) morph -> ('a, 'd) mode -> ('b, 'd) Positive.mode - - val apply_into_negative : - 'b obj -> - ('a, 'b, 'l * 'r) morph -> - ('a, 'l * 'r) mode -> - ('b, 'r * 'l) Negative.mode - end - end + (** Solver that supports lattices with monotone morphisms between them. *) + module Solver_mono (C : Lattices_mono) : + Solver_mono + with type ('a, 'b, 'd) morph := ('a, 'b, 'd) C.morph + and type 'a obj := 'a C.obj + and type 'a error = 'a error end diff --git a/upstream/ocaml_flambda/typing/subst.ml b/upstream/ocaml_flambda/typing/subst.ml index 9bae5f50a..0ad8a22e6 100644 --- a/upstream/ocaml_flambda/typing/subst.ml +++ b/upstream/ocaml_flambda/typing/subst.ml @@ -474,7 +474,7 @@ let rec typexp copy_scope s ty = let more' = match mored with Tsubst (ty, None) -> ty - | Tconstr _ | Tnil -> typexp copy_scope s more + | Tconstr _ | Tnil | Tof_kind _ -> typexp copy_scope s more | Tunivar _ | Tvar _ -> if should_duplicate_vars then newpersty mored else if dup && is_Tvar more then newgenty mored diff --git a/upstream/ocaml_flambda/typing/tast_iterator.ml b/upstream/ocaml_flambda/typing/tast_iterator.ml index c73c0ad6f..800334834 100644 --- a/upstream/ocaml_flambda/typing/tast_iterator.ml +++ b/upstream/ocaml_flambda/typing/tast_iterator.ml @@ -313,7 +313,7 @@ let function_body sub body = | Tfunction_cases { fc_cases; fc_exp_extra; fc_loc; fc_attributes; fc_env; fc_arg_mode = _; fc_arg_sort = _; fc_ret_type = _; - fc_partial = _; fc_param = _; + fc_partial = _; fc_param = _; fc_param_debug_uid = _; } -> List.iter (sub.case sub) fc_cases; Option.iter (extra sub) fc_exp_extra; @@ -363,11 +363,11 @@ let expr sub {exp_loc; exp_extra; exp_desc; exp_env; exp_attributes; _} = Option.iter (fun (expr, _) -> sub.expr sub expr) expo | Texp_record { fields; extended_expression; _} -> iter_fields fields; - Option.iter (fun (exp, _) -> sub.expr sub exp) extended_expression; + Option.iter (fun (exp, _, _) -> sub.expr sub exp) extended_expression; | Texp_record_unboxed_product { fields; extended_expression; _} -> iter_fields fields; Option.iter (fun (exp, _) -> sub.expr sub exp) extended_expression; - | Texp_field (exp, lid, _, _, _) -> + | Texp_field (exp, _, lid, _, _, _) -> iter_loc sub lid; sub.expr sub exp | Texp_unboxed_field (exp, _, lid, _, _) -> @@ -676,6 +676,7 @@ let typ sub {ctyp_loc; ctyp_desc; ctyp_env; ctyp_attributes; _} = | Ttyp_open (_, mod_ident, t) -> iter_loc sub mod_ident; sub.typ sub t + | Ttyp_of_kind jkind -> sub.jkind_annotation sub jkind | Ttyp_call_pos -> () let class_structure sub {cstr_self; cstr_fields; _} = diff --git a/upstream/ocaml_flambda/typing/tast_mapper.ml b/upstream/ocaml_flambda/typing/tast_mapper.ml index 425f10613..de9792458 100644 --- a/upstream/ocaml_flambda/typing/tast_mapper.ml +++ b/upstream/ocaml_flambda/typing/tast_mapper.ml @@ -339,6 +339,7 @@ let pat let function_param sub { fp_kind; fp_param; + fp_param_debug_uid; fp_arg_label; fp_partial; fp_curry; @@ -365,6 +366,7 @@ let function_param sub in { fp_kind; fp_param; + fp_param_debug_uid; fp_arg_label; fp_partial; fp_curry; @@ -389,7 +391,8 @@ let function_body sub body = | Tfunction_body body -> Tfunction_body (sub.expr sub body) | Tfunction_cases - { fc_cases; fc_partial; fc_param; fc_loc; fc_exp_extra; fc_attributes; + { fc_cases; fc_partial; fc_param; fc_param_debug_uid; + fc_loc; fc_exp_extra; fc_attributes; fc_arg_mode; fc_arg_sort; fc_env; fc_ret_type; } -> let fc_loc = sub.location sub fc_loc in @@ -398,7 +401,8 @@ let function_body sub body = let fc_exp_extra = Option.map (extra sub) fc_exp_extra in let fc_env = sub.env sub fc_env in Tfunction_cases - { fc_cases; fc_partial; fc_param; fc_loc; fc_exp_extra; fc_attributes; + { fc_cases; fc_partial; fc_param; fc_param_debug_uid; + fc_loc; fc_exp_extra; fc_attributes; fc_arg_mode; fc_arg_sort; fc_env; fc_ret_type; } let expr sub x = @@ -421,10 +425,12 @@ let expr sub x = in let comp_cb_iterator = match comp_cb_iterator with | Texp_comp_range - { ident; pattern; start; stop; direction } + { ident; ident_debug_uid; pattern; start; stop; + direction } -> Texp_comp_range { ident + ; ident_debug_uid ; pattern (* Just mirroring [ident], ignored (see [Texp_for] *) @@ -498,7 +504,8 @@ let expr sub x = Texp_record { fields = map_fields fields; representation; extended_expression = - Option.map (fun (exp, ubr) -> (sub.expr sub exp, ubr)) extended_expression; + Option.map (fun (exp, sort, ubr) -> (sub.expr sub exp, sort, ubr)) + extended_expression; alloc_mode } | Texp_record_unboxed_product @@ -509,8 +516,8 @@ let expr sub x = Option.map (fun (exp, sort) -> (sub.expr sub exp, sort)) extended_expression } - | Texp_field (exp, lid, ld, float, ubr) -> - Texp_field (sub.expr sub exp, map_loc sub lid, ld, float, ubr) + | Texp_field (exp, sort, lid, ld, float, ubr) -> + Texp_field (sub.expr sub exp, sort, map_loc sub lid, ld, float, ubr) | Texp_unboxed_field (exp, sort, lid, ld, uu) -> Texp_unboxed_field (sub.expr sub exp, sort, map_loc sub lid, ld, uu) | Texp_setfield (exp1, am, lid, ld, exp2) -> @@ -601,11 +608,13 @@ let expr sub x = Texp_object (sub.class_structure sub cl, sl) | Texp_pack mexpr -> Texp_pack (sub.module_expr sub mexpr) - | Texp_letop {let_; ands; param; param_sort; body; body_sort; partial} -> + | Texp_letop {let_; ands; param; param_debug_uid; param_sort; + body; body_sort; partial} -> Texp_letop{ let_ = sub.binding_op sub let_; ands = List.map (sub.binding_op sub) ands; param; + param_debug_uid; param_sort; body = sub.case sub body; body_sort; @@ -935,6 +944,8 @@ let typ sub x = Ttyp_package (sub.package_type sub pack) | Ttyp_open (path, mod_ident, t) -> Ttyp_open (path, map_loc sub mod_ident, sub.typ sub t) + | Ttyp_of_kind jkind -> + Ttyp_of_kind (sub.jkind_annotation sub jkind) in let ctyp_attributes = sub.attributes sub x.ctyp_attributes in {x with ctyp_loc; ctyp_desc; ctyp_env; ctyp_attributes} diff --git a/upstream/ocaml_flambda/typing/typeclass.ml b/upstream/ocaml_flambda/typing/typeclass.ml index 91b80e52d..f849b2396 100644 --- a/upstream/ocaml_flambda/typing/typeclass.ml +++ b/upstream/ocaml_flambda/typing/typeclass.ml @@ -831,7 +831,7 @@ let rec class_field_first_pass self_loc cl_num sign self_scope acc cf = Ctype.unify val_env (Ctype.newmono ty') ty; Typecore.type_approx val_env sbody ty' | Tpoly (ty1, tl) -> - let _, ty1' = Ctype.instance_poly ~fixed:false tl ty1 in + let ty1' = Ctype.instance_poly tl ty1 in Typecore.type_approx val_env sbody ty1' | _ -> assert false with Ctype.Unify err -> diff --git a/upstream/ocaml_flambda/typing/typecore.ml b/upstream/ocaml_flambda/typing/typecore.ml index 7dacc4787..659514894 100644 --- a/upstream/ocaml_flambda/typing/typecore.ml +++ b/upstream/ocaml_flambda/typing/typecore.ml @@ -124,6 +124,10 @@ type contention_context = | Write_mutable | Force_lazy +type visibility_context = + | Read_mutable + | Write_mutable + type unsupported_stack_allocation = | Lazy | Module @@ -255,6 +259,7 @@ type error = Value.error * submode_reason * Env.locality_context option * contention_context option * + visibility_context option * Env.shared_context option | Curried_application_complete of arg_label * Mode.Alloc.error * [`Prefix|`Single_arg|`Entire_apply] @@ -391,6 +396,9 @@ type expected_mode = contention_context : contention_context option; (** Explains why contention axis of [mode] is low. *) + visibility_context : visibility_context option; + (** Explains why visibility axis of [mode] is low. *) + mode : Value.r; (** The upper bound, hence r (right) *) @@ -469,12 +477,13 @@ let check_tail_call_local_returning loc env ap_mode {region_mode; _} = let meet_regional mode = let mode = Value.disallow_left mode in - Value.meet_with (Comonadic Areality) Regionality.Const.Regional mode + Value.meet_with Areality Regionality.Const.Regional mode let mode_default mode = { position = RNontail; locality_context = None; contention_context = None; + visibility_context = None; mode = Value.disallow_left mode; strictly_local = false; tuple_modes = None } @@ -524,10 +533,15 @@ let mode_with_position mode position = let mode_max_with_position position = { mode_max with position } +(** Take the expected mode of [exclave_ exp], return the expected mode of [exp]. + [expected_mode] must be higher than [regional]. *) let mode_exclave expected_mode = let mode = - Value.join_with (Comonadic Areality) - Regionality.Const.Local (as_single_mode expected_mode) + as_single_mode expected_mode + (* if we expect an exclave to be [regional], then inside the exclave the + body should be [local] *) + |> value_to_alloc_r2l + |> alloc_as_value in { (mode_default mode) with strictly_local = true @@ -543,18 +557,26 @@ let mode_coerce mode expected_mode = let mode_lazy expected_mode = let expected_mode = - mode_coerce (Value.max_with (Comonadic Areality) Regionality.global) + mode_coerce ( + Value.max_with (Comonadic Areality) Regionality.global + |> Value.meet_with Yielding Yielding.Const.Unyielding) expected_mode in + let mode_crossing = + Crossing.of_bounds { + comonadic = { + Alloc.Comonadic.Const.max with + (* The thunk is evaluated only once, so we only require it to be [once], + even if the [lazy] is [many]. *) + linearity = Many; + (* The thunk is evaluated only when the [lazy] is [uncontended], so we + only require it to be [nonportable], even if the [lazy] is [portable]. + *) + portability = Portable }; + monadic = Alloc.Monadic.Const.min } + in let closure_mode = - expected_mode - |> as_single_mode - (* The thunk is evaluated only once, so we only require it to be [once], - even if the [lazy] is [many]. *) - |> Value.join_with (Comonadic Linearity) Linearity.Const.Once - (* The thunk is evaluated only when the [lazy] is [uncontended], so we only require it - to be [nonportable], even if the [lazy] is [portable]. *) - |> Value.join_with (Comonadic Portability) Portability.Const.Nonportable + expected_mode |> as_single_mode |> Crossing.apply_right mode_crossing in {expected_mode with locality_context = Some Lazy }, closure_mode @@ -618,9 +640,10 @@ let submode ~loc ~env ?(reason = Other) ?shared_context mode expected_mode = | Error failure_reason -> let locality_context = expected_mode.locality_context in let contention_context = expected_mode.contention_context in + let visibility_context = expected_mode.visibility_context in let error = Submode_failed(failure_reason, reason, locality_context, - contention_context, shared_context) + contention_context, visibility_context, shared_context) in raise (Error(loc, env, error)) @@ -651,7 +674,9 @@ let tuple_pat_mode mode tuple_modes = let global_pat_mode {mode; _}= let mode = - Value.meet_with (Comonadic Areality) Regionality.Const.Global mode + mode + |> Value.meet_with Areality Regionality.Const.Global + |> Value.meet_with Yielding Yielding.Const.Unyielding in simple_pat_mode mode @@ -1001,22 +1026,26 @@ let check_construct_mutability ~loc ~env mutability ty ?modalities block_mode = (** The [expected_mode] of the record when projecting a mutable field. *) let mode_project_mutable = let mode = - Contention.Const.Shared - |> Contention.of_const - |> Value.max_with (Monadic Contention) + { Value.Const.max with + visibility = Visibility.Const.Read; + contention = Contention.Const.Shared } + |> Value.of_const in { (mode_default mode) with - contention_context = Some Read_mutable } + contention_context = Some Read_mutable; + visibility_context = Some Read_mutable } (** The [expected_mode] of the record when mutating a mutable field. *) let mode_mutate_mutable = let mode = - Contention.Const.Uncontended - |> Contention.of_const - |> Value.max_with (Monadic Contention) + { Value.Const.max with + visibility = Read_write; + contention = Uncontended } + |> Value.of_const in { (mode_default mode) with - contention_context = Some Write_mutable } + contention_context = Some Write_mutable; + visibility_context = Some Write_mutable } (** The [expected_mode] of the lazy expression when forcing it. *) let mode_force_lazy = @@ -1803,7 +1832,7 @@ let solve_Ppat_constraint tps loc env mode sty expected_ty = let expected_ty' = match get_desc expected_ty' with | Tpoly (expected_ty', tl) -> - snd (instance_poly ~keep_names:true ~fixed:false tl expected_ty') + instance_poly ~keep_names:true tl expected_ty' | _ -> expected_ty' in (cty, ty, expected_ty') @@ -2630,7 +2659,7 @@ and type_pat_aux solve_Ppat_array ~refine:false loc penv mutability expected_ty in let modalities = - Typemode.transl_modalities ~maturity:Stable mutability [] [] + Typemode.transl_modalities ~maturity:Stable mutability [] in check_project_mutability ~loc ~env:!!penv mutability alloc_mode.mode; let alloc_mode = Modality.Value.Const.apply modalities alloc_mode.mode in @@ -3707,6 +3736,7 @@ let list_labels env ty = (* Collecting arguments for function applications *) +(* See also Note [Type-checking applications] *) type untyped_apply_arg = | Known_arg of { sarg : Parsetree.expression; @@ -3822,6 +3852,71 @@ let check_curried_application_complete ~env ~app_loc args = in loop false args +(* Note [Type-checking applications] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + This Note explains how we type-check a function application. It focuses on + the common case. Additions to this Note explaining the various special + cases (and why levels are bumped where they are) are welcome. + + 1. We type-check the function. This is done right in [type_expect_] in + the [Pexp_apply] case. (Everything hereafter is done in [type_application].) + + 2. We analyze the type of the function, building up a list of [Arg] and + [Omitted] nodes describing the arguments in that type. This is done in + [collect_apply_args]. The ordering in this list is based on the type of the + function, *not* the order of arguments as written in the source code. (The + actual arguments passed in the source code are reordered by a quadratic + algorithm, calling [extract_label] for each arrow evident in the function's + type. But this algorithm is fast in the common case.) An [Arg] denotes an + argument that will actually be passed to the function. It is one of these + cases: + + * [Known_arg]: This is an argument whose type is dictated by the (known) + type of the function being applied. + + * [Unknown_arg]: This is an argument whose type is unknown, either because + the type of the function is unknown (because the function is itself + lambda-bound) or because the function is over-applied. + + * [Eliminated_optional_arg]: This is an optional argument (either a normal + optional argument with [?] or one labeled with [%call_pos]) that will be + supplied, even though the user did not actually write the argument in. + + An [Omitted] argument denotes one left off by partial application. However, + [collect_apply_args] stops when it runs out of source arguments at the + application site, so any omitted arguments after all the supplied arguments + are left off the list returned from [collect_apply_args]. + + 3. Type-check all of the [Arg] arguments, by mapping [type_apply_arg] over + the list of arguments. This handles all three varieties of [Arg] argument; + we no longer track the distinction between the three cases. + + [Omitted] arguments are left untouched. + + 4. Type-check all of the [Omitted] arguments, in [type_omitted_parameters]. + There are two critical steps of type-checking an omitted argument: + + * Adjust the final type of the application to be a function taking the type + of the omitted argument as a parameter. + + * Ensure that the constructed arrow (and allocation of the closure) has the + correct mode: if any of the closed-over arguments is local or once, say, + then the final result must also be local or once. + + This is done (working right-to-left over the list produced by + [collect_apply_args]) by collecting up passed [Arg]s until an [Omitted] is + encountered, and then doing a submode check on each collected [Arg] against + the expected mode of the final closure. In addition, we use the [close_over] + and [partial_apply] functions from [Mode.Alloc] to make sure that the modes + of the constructed arrows themselves are correct. This algorithm is + quadratic, looking at each previously seen [Arg] for every [Omitted]. (It + seems to be easy to make this not quadratic, though.) +*) + +(* This function processes any arguments remaining after traversing the type of + the function; these would be over-saturated arguments or arguments to a + function whose type is not known. *) let collect_unknown_apply_args env funct ty_fun mode_fun rev_args sargs ret_tvar = let labels_match ~param ~arg = param = arg @@ -3916,6 +4011,7 @@ let collect_unknown_apply_args env funct ty_fun mode_fun rev_args sargs ret_tvar in loop ty_fun mode_fun rev_args sargs +(* See Note [Type-checking applications] for an overview *) let collect_apply_args env funct ignore_labels ty_fun ty_fun0 mode_fun sargs ret_tvar = let warned = ref false in let rec loop ty_fun ty_fun0 mode_fun rev_args sargs = @@ -4026,6 +4122,7 @@ let collect_apply_args env funct ignore_labels ty_fun ty_fun0 mode_fun sargs ret in loop ty_fun ty_fun0 mode_fun [] sargs +(* See Note [Type-checking applications] for an overview *) let type_omitted_parameters expected_mode env loc ty_ret mode_ret args = let ty_ret, mode_ret, _, _, args = List.fold_left @@ -4126,7 +4223,7 @@ let rec is_nonexpansive exp = lbl.lbl_mut = Immutable && is_nonexpansive exp | Kept _ -> true) fields - && is_nonexpansive_opt (Option.map fst extended_expression) + && is_nonexpansive_opt (Option.map Misc.fst3 extended_expression) | Texp_record_unboxed_product { fields; extended_expression } -> Array.for_all (fun (lbl, definition) -> @@ -4136,7 +4233,7 @@ let rec is_nonexpansive exp = | Kept _ -> true) fields && is_nonexpansive_opt (Option.map fst extended_expression) - | Texp_field(exp, _, _, _, _) -> is_nonexpansive exp + | Texp_field(exp, _, _, _, _, _) -> is_nonexpansive exp | Texp_unboxed_field(exp, _, _, _, _) -> is_nonexpansive exp | Texp_ifthenelse(_cond, ifso, ifnot) -> is_nonexpansive ifso && is_nonexpansive_opt ifnot @@ -4173,12 +4270,9 @@ let rec is_nonexpansive exp = | Texp_assert (exp, _) -> is_nonexpansive exp | Texp_apply ( - { exp_desc = Texp_ident (_, _, {val_kind = - Val_prim {Primitive.prim_name = - ("%raise" | "%reraise" | "%raise_notrace")}}, - Id_prim _, _) }, - [Nolabel, Arg (e, _)], _, _, _) -> - is_nonexpansive e + { exp_desc = Texp_ident (_, _, {val_kind = Val_prim prim}, Id_prim _, _) }, + args, _, _, _) -> + is_nonexpansive_prim prim args | Texp_array (_, _, _ :: _, _) | Texp_apply _ | Texp_try _ @@ -4205,6 +4299,15 @@ let rec is_nonexpansive exp = which is non-expansive: *) | Texp_hole _ -> true +and is_nonexpansive_prim (prim : Primitive.description) args = + match prim.prim_name, args with + | ("%raise" | "%reraise" | "%raise_notrace"), [Nolabel, Arg (e, _)] -> + is_nonexpansive e + | ("%identity" | "%obj_magic"), [Nolabel, Arg (e, _)] + when not (Language_extension.erasable_extensions_only ()) -> + is_nonexpansive e + | _ -> false + and is_nonexpansive_mod mexp = match mexp.mod_desc with | Tmod_ident _ @@ -4506,9 +4609,9 @@ let check_univars env kind exp ty_expected vars = match get_desc pty with Tpoly (body, tl) -> (* Enforce scoping for type_let: - since body is not generic, instance_poly only makes + since body is not generic, instance_poly_fixed only makes copies of nodes that have a Tunivar as descendant *) - let univars, ty' = instance_poly ~fixed:true tl body in + let univars, ty' = instance_poly_fixed tl body in let vars, exp_ty = instance_parameterized_type vars exp.exp_type in List.iter2 (fun uvar var -> (* This checks that the term doesn't require more specific jkinds @@ -4844,11 +4947,12 @@ let proper_exp_loc exp = (* To find reasonable names for let-bound and lambda-bound idents *) let rec name_pattern default = function - [] -> Ident.create_local default + [] -> Ident.create_local default, + Shape.Uid.internal_not_actually_unique | p :: rem -> match p.pat_desc with - Tpat_var (id, _, _, _) -> id - | Tpat_alias(_, id, _, _, _, _) -> id + Tpat_var (id, _, uid, _) -> id, uid + | Tpat_alias(_, id, _, uid, _, _) -> id, uid | _ -> name_pattern default rem let name_cases default lst = @@ -4950,13 +5054,13 @@ let unique_use ~loc ~env mode_l mode_r = | Ok () -> () | Error e -> let e : Mode.Value.error = Error (Monadic Uniqueness, e) in - raise (Error(loc, env, Submode_failed(e, Other, None, None, None))) + raise (Error(loc, env, Submode_failed(e, Other, None, None, None, None))) ); (match Linearity.submode linearity Linearity.many with | Ok () -> () | Error e -> let e : Mode.Value.error = Error (Comonadic Linearity, e) in - raise (Error (loc, env, Submode_failed(e, Other, None, None, None))) + raise (Error (loc, env, Submode_failed(e, Other, None, None, None, None))) ); (Uniqueness.disallow_left Uniqueness.aliased, Linearity.disallow_right Linearity.many) @@ -5111,7 +5215,7 @@ let split_function_ty if vars = [] then ty else begin with_level ~level:generic_level - (fun () -> snd (instance_poly ~keep_names:true ~fixed:false vars ty)) + (fun () -> instance_poly ~keep_names:true vars ty) end end in @@ -5536,7 +5640,16 @@ and type_expect_ Array.map (unify_kept loc exp.exp_loc ty_exp mode) lbl.lbl_all in let ubr = Unique_barrier.not_computed () in - Some ({exp with exp_type = ty_exp}, ubr), label_definitions + let sort = + match + Ctype.type_sort ~why:Record_functional_update ~fixed:false + env exp.exp_type + with + | Ok sort -> sort + | Error err -> + raise (Error (loc, env, Record_not_rep(ty_expected, err))) + in + Some ({exp with exp_type = ty_exp}, sort, ubr), label_definitions in let num_fields = match lbl_exp_list with [] -> assert false @@ -5563,16 +5676,7 @@ and type_expect_ | Unboxed_product -> let opt_exp = match opt_exp with | None -> None - | Some (exp, _) -> - let sort = - Ctype.type_sort ~why:Record_functional_update ~fixed:false - env exp.exp_type - in - match sort with - | Ok sort -> Some (exp, sort) - | Error err -> - raise - (Error (loc, env, Record_not_rep(ty_expected, err))) + | Some (exp, sort, _) -> Some (exp, sort) in Texp_record_unboxed_product { fields; representation; @@ -5787,6 +5891,7 @@ and type_expect_ } end | Pexp_apply(sfunct, sargs) -> + (* See Note [Type-checking applications] *) assert (sargs <> []); let pm = position_and_mode env expected_mode sexp in let funct_mode, funct_expected_mode = @@ -5999,7 +6104,7 @@ and type_expect_ Language_extension.assert_enabled ~loc Layouts Language_extension.Stable; type_expect_record ~overwrite Unboxed_product lid_sexp_list opt_sexp | Pexp_field(srecord, lid) -> - let (record, rmode, label, _) = + let (record, record_sort, rmode, label, _) = type_label_access Legacy env srecord Env.Projection lid in let ty_arg = @@ -6021,7 +6126,8 @@ and type_expect_ | Record_mixed mixed -> begin match mixed.(label.lbl_num) with | Float_boxed -> true - | Float64 | Float32 | Value | Bits32 | Bits64 | Vec128 | Word -> + | Float64 | Float32 | Value | Bits32 | Bits64 | Vec128 | Word + | Product _ -> false end | _ -> false @@ -6042,14 +6148,16 @@ and type_expect_ Non_boxing uu in rue { - exp_desc = Texp_field(record, lid, label, boxing, Unique_barrier.not_computed ()); + exp_desc = + Texp_field(record, record_sort, lid, label, boxing, + Unique_barrier.not_computed ()); exp_loc = loc; exp_extra = []; exp_type = ty_arg; exp_attributes = sexp.pexp_attributes; exp_env = env } | Pexp_unboxed_field(srecord, lid) -> Language_extension.assert_enabled ~loc Layouts Language_extension.Stable; - let (record, rmode, label, _) = + let (record, record_sort, rmode, label, _) = type_label_access Unboxed_product env srecord Env.Projection lid in let ty_arg = @@ -6065,15 +6173,6 @@ and type_expect_ if Types.is_mutable label.lbl_mut then fatal_error "Typecore.type_expect_: unboxed record labels are never mutable"; - let record_sort = - Ctype.type_sort ~why:Record_projection ~fixed:false env record.exp_type - in - let record_sort = match record_sort with - | Ok sort -> sort - | Error err -> - raise - (Error (loc, env, Record_projection_not_rep(record.exp_type, err))) - in let mode = Modality.Value.Const.apply label.lbl_modalities rmode in let mode = cross_left env ty_arg mode in submode ~loc ~env mode expected_mode; @@ -6085,7 +6184,7 @@ and type_expect_ exp_attributes = sexp.pexp_attributes; exp_env = env } | Pexp_setfield(srecord, lid, snewval) -> - let (record, rmode, label, expected_type) = + let (record, _, rmode, label, expected_type) = type_label_access Legacy env srecord Env.Mutation lid in let ty_record = if expected_type = None @@ -6209,8 +6308,7 @@ and type_expect_ (mk_expected ~explanation:For_loop_stop_index Predef.type_int) in let env = Env.add_share_lock For_loop env in - (* When we'll want to add Uid to for loops, we can take it from here. *) - let (for_id, _for_uid), new_env = + let (for_id, for_uid), new_env = type_for_loop_index ~loc ~env ~param in let new_env = Env.add_region_lock new_env in @@ -6219,8 +6317,9 @@ and type_expect_ type_statement ~explanation:For_loop_body ~position new_env sbody in rue { - exp_desc = Texp_for {for_id; for_pat = param; for_from; for_to; - for_dir = dir; for_body; for_body_sort }; + exp_desc = Texp_for {for_id; for_debug_uid = for_uid; for_pat = param; + for_from; for_to; for_dir = dir; for_body; + for_body_sort }; exp_loc = loc; exp_extra = []; exp_type = instance Predef.type_unit; exp_attributes = sexp.pexp_attributes; @@ -6291,7 +6390,7 @@ and type_expect_ if !Clflags.principal && get_level typ <> generic_level then Location.prerr_warning loc (Warnings.Not_principal "this use of a polymorphic method"); - snd (instance_poly ~fixed:false tl ty) + instance_poly tl ty | Tvar _ -> let ty' = newvar (Jkind.Builtin.value ~why:Object_field) in unify env (instance typ) (newty(Tpoly(ty',[]))); @@ -6535,7 +6634,7 @@ and type_expect_ with_local_level begin fun () -> let vars, ty'' = with_local_level_if_principal - (fun () -> instance_poly ~fixed:true tl ty') + (fun () -> instance_poly_fixed tl ty') ~post:(fun (_,ty'') -> generalize_structure ty'') in let exp = type_expect env expected_mode sbody (mk_expected ty'') in @@ -6670,7 +6769,7 @@ and type_expect_ | [case] -> case | _ -> assert false in - let param = name_cases "param" cases in + let param, param_debug_uid = name_cases "param" cases in let let_ = { bop_op_name = slet.pbop_op; bop_op_path = op_path; @@ -6682,7 +6781,8 @@ and type_expect_ bop_loc = slet.pbop_loc; } in let desc = - Texp_letop{let_; ands; param; param_sort; body; body_sort; partial} + Texp_letop{let_; ands; param; param_debug_uid; param_sort; body; + body_sort; partial} in rue { exp_desc = desc; exp_loc = sexp.pexp_loc; @@ -6764,11 +6864,7 @@ and type_expect_ exp_attributes = sexp.pexp_attributes; exp_env = env } | Pexp_stack e -> - let expected_mode' = - mode_morph (Value.join_with (Comonadic Areality) Regionality.Const.Local) - expected_mode - in - let exp = type_expect env expected_mode' e ty_expected_explained in + let exp = type_expect env expected_mode e ty_expected_explained in let unsupported category = raise (Error (exp.exp_loc, env, Unsupported_stack_allocation category)) in @@ -6778,7 +6874,7 @@ and type_expect_ | Texp_variant (_, Some (_, alloc_mode)) | Texp_record {alloc_mode = Some alloc_mode; _} | Texp_array (_, _, _, alloc_mode) - | Texp_field (_, _, _, Boxing (alloc_mode, _), _) -> + | Texp_field (_, _, _, _, Boxing (alloc_mode, _), _) -> begin submode ~loc ~env (Value.min_with (Comonadic Areality) Regionality.local) @@ -6829,22 +6925,34 @@ and type_expect_ (* The overwritten cell has to be unique and should have the areality expected here: *) Value.newvar_below - (Value.meet_with (Monadic Uniqueness) Uniqueness.Const.Unique - (Value.max_with (Comonadic Areality) - (Value.proj (Comonadic Areality) expected_mode.mode))) + (Value.meet [ + Value.max_with (Monadic Uniqueness) + Uniqueness.(of_const Const.Unique); + Value.max_with (Comonadic Areality) + (Value.proj (Comonadic Areality) expected_mode.mode)]) in let cell_type = (* CR uniqueness: this could be the jkind of exp2 *) - mk_expected (newvar (Jkind.Builtin.value ~why:Boxed_record)) + mk_expected (newvar (Jkind.for_non_float ~why:Boxed_record)) in let exp1 = type_expect ~recarg env (mode_default cell_mode) exp1 cell_type in - let exp2 = + let new_fields_mode = (* The newly-written fields have to be global to avoid heap-to-stack pointers. We enforce that here, by asking the allocation to be global. This makes the block alloc_heap, but we ignore that information anyway. *) + (* CR uniqueness: this shouldn't mention yielding *) + { Value.Comonadic.Const.max with + areality = Regionality.Const.Global + ; yielding = Yielding.Const.Unyielding } + in + let exp2 = let exp2_mode = mode_coerce - (Value.max_with (Comonadic Areality) Regionality.global) + Value.({ + comonadic = new_fields_mode; + monadic = Monadic.Const.max} + |> Const.merge + |> of_const) expected_mode in (* When typing holes, we will enforce: fields_mode <= expected_mode. @@ -6855,7 +6963,7 @@ and type_expect_ And we have also checked above that for regionality cell_mode <= expected_mode. Therefore, we can safely ignore regionality when checking the mode of holes. *) let fields_mode = - Value.meet_with (Comonadic Areality) Regionality.Const.Global cell_mode + Value.meet_const new_fields_mode cell_mode |> Value.disallow_right in let overwrite = @@ -7084,7 +7192,7 @@ and type_ident env ?(recarg=Rejected) lid = let val_type, kind = match desc.val_kind with | Val_prim prim -> - let ty, mode, sort = instance_prim prim desc.val_type in + let ty, mode, _, sort = instance_prim prim desc.val_type in let ty = instance ty in begin match prim.prim_native_repr_res, mode with (* if the locality of returned value of the primitive is poly @@ -7347,14 +7455,17 @@ and type_function else if is_position typed_arg_label && not_nolabel_function ty_ret then Location.prerr_warning pat.pat_loc Warnings.Unerasable_position_argument; - let fp_kind, fp_param = + let fp_kind, fp_param, fp_param_debug_uid = match default_arg with | None -> - let param = name_pattern "param" [ pat ] in - Tparam_pat pat, param + let param, param_uid = name_pattern "param" [ pat ] in + Tparam_pat pat, param, param_uid | Some (default_arg, arg_label, default_arg_sort) -> let param = Ident.create_local ("*opt*" ^ arg_label) in - Tparam_optional_default (pat, default_arg, default_arg_sort), param + let param_uid = Shape.Uid.internal_not_actually_unique in + Tparam_optional_default (pat, default_arg, default_arg_sort), + param, + param_uid in let param = { has_poly; @@ -7362,6 +7473,7 @@ and type_function { fp_kind; fp_arg_label = typed_arg_label; fp_param; + fp_param_debug_uid; fp_partial = partial; fp_newtypes = newtypes; fp_sort = arg_sort; @@ -7477,12 +7589,15 @@ and type_function and type_label_access : 'rep . 'rep record_form -> _ -> _ -> _ -> _ -> - _ * _ * 'rep gen_label_description * _ + _ * _ * _ * 'rep gen_label_description * _ = fun record_form env srecord usage lid -> let mode = Value.newvar () in + let record_jkind, record_sort = Jkind.of_new_sort_var ~why:Record_projection in let record = with_local_level_if_principal ~post:generalize_structure_exp - (fun () -> type_exp ~recarg:Allowed env (mode_default mode) srecord) + (fun () -> + type_expect ~recarg:Allowed env (mode_default mode) srecord + (mk_expected (newvar record_jkind))) in let ty_exp = record.exp_type in let expected_type = @@ -7502,7 +7617,7 @@ and type_label_access let label = wrap_disambiguate "This expression has" (mk_expected ty_exp) (label_disambiguate record_form usage lid env expected_type) labels in - (record, Mode.Value.disallow_right mode, label, expected_type) + (record, record_sort, Mode.Value.disallow_right mode, label, expected_type) (* Typing format strings for printing or reading. These formats are used by functions in modules Printf, Format, and Scanf. @@ -8026,16 +8141,17 @@ and type_argument ?explanation ?recarg ~overwrite env (mode : expected_mode) sar let e = {texp with exp_type = ty_res; exp_desc = Texp_exclave e} in let cases = [ case eta_pat e ] in let cases_loc = { texp.exp_loc with loc_ghost = true } in - let param = name_cases "param" cases in + let param, param_uid = name_cases "param" cases in { texp with exp_type = ty_fun; exp_desc = Texp_function { params = []; body = Tfunction_cases { fc_cases = cases; fc_partial = Total; fc_param = param; - fc_env = env; fc_ret_type = ty_res; - fc_loc = cases_loc; fc_exp_extra = None; - fc_attributes = []; fc_arg_mode = Alloc.disallow_right marg; + fc_param_debug_uid = param_uid; fc_env = env; + fc_ret_type = ty_res; fc_loc = cases_loc; + fc_exp_extra = None; fc_attributes = []; + fc_arg_mode = Alloc.disallow_right marg; fc_arg_sort = arg_sort; }; ret_mode = Alloc.disallow_right mret; @@ -8052,10 +8168,16 @@ and type_argument ?explanation ?recarg ~overwrite env (mode : expected_mode) sar (Warnings.Non_principal_labels "eliminated omittable argument"); (* let-expand to have side effects *) let let_pat, let_var = var_pair ~mode:exp_mode "arg" texp.exp_type in + let let_pat_sort = + (* The sort of the let-bound variable, which here is always a function + (observe it is passed to [func], which builds an application of + it). *) + Jkind.Sort.value + in re { texp with exp_type = ty_fun; exp_desc = Texp_let (Nonrecursive, - [{vb_pat=let_pat; vb_expr=texp; vb_sort=arg_sort; + [{vb_pat=let_pat; vb_expr=texp; vb_sort=let_pat_sort; vb_attributes=[]; vb_loc=Location.none; vb_rec_kind = Dynamic; }], @@ -8069,6 +8191,7 @@ and type_argument ?explanation ?recarg ~overwrite env (mode : expected_mode) sar unify_exp env texp ty_expected; texp +(* See Note [Type-checking applications] for an overview *) and type_apply_arg env ~app_loc ~funct ~index ~position_and_mode ~partial_app (lbl, arg) = match arg with | Arg (Unknown_arg { sarg; ty_arg_mono; mode_arg; sort_arg }) -> @@ -8122,11 +8245,11 @@ and type_apply_arg env ~app_loc ~funct ~index ~position_and_mode ~partial_app (l with_local_level begin fun () -> let vars, ty_arg' = with_local_level_if separate begin fun () -> - instance_poly ~fixed:false vars ty_arg' + instance_poly_fixed vars ty_arg' end ~post:(fun (_, ty_arg') -> generalize_structure ty_arg') in let (ty_arg0', vars0) = tpoly_get_poly ty_arg0 in - let vars0, ty_arg0' = instance_poly ~fixed:false vars0 ty_arg0' in + let vars0, ty_arg0' = instance_poly_fixed vars0 ty_arg0' in List.iter2 (fun ty ty' -> unify_var env ty ty') vars vars0; let arg = type_argument ~overwrite:No_overwrite env expected_mode sarg ty_arg' ty_arg0' @@ -8189,6 +8312,7 @@ and type_application env app_loc expected_mode position_and_mode check_partial_application ~statement:false exp; ([Nolabel, Arg (exp, arg_sort)], ty_ret, ap_mode, position_and_mode) | _ -> + (* See Note [Type-checking applications] for an overview *) let ty = funct.exp_type in let ignore_labels = !Clflags.classic || @@ -8966,11 +9090,12 @@ and type_function_cases_expect (Tarrow ((Nolabel, arg_mode, ret_mode), ty_arg, ty_ret, commu_ok))) in unify_exp_types loc env ty_fun (instance ty_expected); - let param = name_cases "param" cases in + let param , param_uid = name_cases "param" cases in let cases = { fc_cases = cases; fc_partial = partial; fc_param = param; + fc_param_debug_uid = param_uid; fc_loc = loc; fc_exp_extra = None; fc_env = env; @@ -9043,7 +9168,7 @@ and type_let ?check ?check_strict ?(force_toplevel = false) match get_desc pat.pat_type with | Tpoly (ty, tl) -> {pat with pat_type = - snd (instance_poly ~keep_names:true ~fixed:false tl ty)} + instance_poly ~keep_names:true tl ty} | _ -> pat in let bound_expr = vb_exp_constraint binding in @@ -9120,7 +9245,7 @@ and type_let ?check ?check_strict ?(force_toplevel = false) let vars, ty' = with_local_level_if_principal ~post:(fun (_,ty') -> generalize_structure ty') - (fun () -> instance_poly ~keep_names:true ~fixed:true tl ty) + (fun () -> instance_poly_fixed ~keep_names:true tl ty) in let exp = Builtin_attributes.warning_scope pvb_attributes (fun () -> @@ -9419,9 +9544,7 @@ and type_generic_array if Types.is_mutable mutability then Predef.type_array else Predef.type_iarray in - let modalities = - Typemode.transl_modalities ~maturity:Stable mutability [] [] - in + let modalities = Typemode.transl_modalities ~maturity:Stable mutability [] in let argument_mode = mode_modality modalities array_mode in let jkind, elt_sort = Jkind.of_new_legacy_sort_var ~why:Array_element in let ty = newgenvar jkind in @@ -9797,16 +9920,24 @@ and type_comprehension_iterator let stop = tbound ~explanation:Comprehension_for_stop stop in (* When we'll want to add Uid to comprehension bindings, we can take it from here. *) - let (ident, _uid) = + let (ident, uid) = type_comprehension_for_range_iterator_index tps ~loc ~env ~param:pattern in - Texp_comp_range { ident; pattern; start; stop; direction } + Texp_comp_range { ident; ident_debug_uid = uid; pattern; start; stop; + direction } | Pcomp_in seq -> - let item_ty = newvar (Jkind.Builtin.any ~why:Dummy_jkind) in + let value_reason = + match (comprehension_type : comprehension_type) with + | Array_comprehension _ -> + Jkind.History.Array_comprehension_iterator_element + | List_comprehension -> + Jkind.History.List_comprehension_iterator_element + in + let item_ty = newvar (Jkind.Builtin.value ~why:value_reason) in let seq_ty = container_type item_ty in let sequence = (* To understand why we can currently only iterate over [mode_global] @@ -10214,14 +10345,14 @@ let escaping_hint (failure_reason : Value.error) submode_reason let contention_hint _fail_reason _submode_reason context = - match context with + match (context : contention_context option) with | Some Read_mutable -> [Location.msg - "@[Hint: In order to read from the mutable fields,@ \ + "@[Hint: In order to read from its mutable fields,@ \ this record needs to be at least shared.@]"] | Some Write_mutable -> [Location.msg - "@[Hint: In order to write into the mutable fields,@ \ + "@[Hint: In order to write into its mutable fields,@ \ this record needs to be uncontended.@]"] | Some Force_lazy -> [Location.msg @@ -10229,6 +10360,18 @@ let contention_hint _fail_reason _submode_reason context = the lazy needs to be uncontended.@]"] | None -> [] +let visibility_hint _fail_reason _submode_reason context = + match (context : visibility_context option) with + | Some Read_mutable -> + [Location.msg + "@[Hint: In order to read from its mutable fields,@ \ + this record needs to have read visibility.@]"] + | Some Write_mutable -> + [Location.msg + "@[Hint: In order to write into its mutable fields,@ \ + this record needs to have read_write visibility.@]"] + | None -> [] + let report_type_expected_explanation_opt expl ppf = match expl with | None -> () @@ -10851,7 +10994,7 @@ let report_error ~loc env = (Style.as_inline_code Printtyp.type_expr) ty actual expected | Submode_failed(fail_reason, submode_reason, locality_context, - contention_context, shared_context) + contention_context, visibility_context, shared_context) -> let sub = match fail_reason with @@ -10865,17 +11008,33 @@ let report_error ~loc env = escaping_hint fail_reason submode_reason locality_context | Error (Monadic Contention, _ ) -> contention_hint fail_reason submode_reason contention_context + | Error (Monadic Visibility, _) -> + visibility_hint fail_reason submode_reason visibility_context | Error (Comonadic Portability, _ ) -> [] | Error (Comonadic Yielding, _) -> [] + | Error (Comonadic Statefulness, _) -> [] in Location.errorf ~loc ~sub "@[%t@]" begin match fail_reason with | Error (Comonadic Areality, _) -> Format.dprintf "This value escapes its region." | Error (ax, {left; right}) -> + let pp_expectation ppf () = + let open Contention.Const in + match ax, right with + | Monadic Contention, Shared -> + (* Could generalize this to other error cases where we expect + something besides bottom, but currently (besides areality, + already covered above) there are no other such cases. *) + Format.fprintf ppf "%a or %a" + (Style.as_inline_code Contention.Const.print) Shared + (Style.as_inline_code Contention.Const.print) Uncontended + | _, _ -> + Style.as_inline_code (Value.Const.print_axis ax) ppf right + in Format.dprintf "This value is %a but expected to be %a." (Style.as_inline_code (Value.Const.print_axis ax)) left - (Style.as_inline_code (Value.Const.print_axis ax)) right + pp_expectation () end | Curried_application_complete (lbl, Error (ax, {left; _}), loc_kind) -> let sub = diff --git a/upstream/ocaml_flambda/typing/typecore.mli b/upstream/ocaml_flambda/typing/typecore.mli index 35a4a6bef..503181e54 100644 --- a/upstream/ocaml_flambda/typing/typecore.mli +++ b/upstream/ocaml_flambda/typing/typecore.mli @@ -168,8 +168,9 @@ val optimise_allocations: unit -> unit val has_poly_constraint : Parsetree.pattern -> bool -val name_pattern : string -> Typedtree.pattern list -> Ident.t -val name_cases : string -> Typedtree.value Typedtree.case list -> Ident.t +val name_pattern : string -> Typedtree.pattern list -> Ident.t * Uid.t +val name_cases : + string -> Typedtree.value Typedtree.case list -> Ident.t * Uid.t (* Why are we calling [submode]? This tells us why. *) type submode_reason = @@ -188,6 +189,10 @@ type contention_context = | Write_mutable | Force_lazy +type visibility_context = + | Read_mutable + | Write_mutable + type unsupported_stack_allocation = | Lazy | Module @@ -299,6 +304,7 @@ type error = Mode.Value.error * submode_reason * Env.locality_context option * contention_context option * + visibility_context option * Env.shared_context option | Curried_application_complete of arg_label * Mode.Alloc.error * [`Prefix|`Single_arg|`Entire_apply] diff --git a/upstream/ocaml_flambda/typing/typedecl.ml b/upstream/ocaml_flambda/typing/typedecl.ml index fb5950935..5039eadac 100644 --- a/upstream/ocaml_flambda/typing/typedecl.ml +++ b/upstream/ocaml_flambda/typing/typedecl.ml @@ -490,7 +490,7 @@ let transl_labels (type rep) ~(record_form : rep record_form) ~new_var_jkind | Unboxed_product -> raise(Error(loc, Unboxed_mutable_label)) in let modalities = - Typemode.transl_modalities ~maturity:Stable mut attrs modalities + Typemode.transl_modalities ~maturity:Stable mut modalities in let arg = Ast_helper.Typ.force_poly arg in let cty = transl_simple_type ~new_var_jkind env ?univars ~closed Mode.Alloc.Const.legacy arg in @@ -531,8 +531,7 @@ let transl_types_gf ~new_var_jkind env loc univars closed cal kloc = Mode.Alloc.Const.legacy arg.pca_type in let gf = - Typemode.transl_modalities ~maturity:Stable Immutable [] - arg.pca_modalities + Typemode.transl_modalities ~maturity:Stable Immutable arg.pca_modalities in {ca_modalities = gf; ca_type = cty; ca_loc = arg.pca_loc} in @@ -955,7 +954,7 @@ let transl_declaration env sdecl (id, uid) = Constructor_uniform_value, sorts) (Array.of_list cstrs) ), - Jkind.Builtin.value ~why:Boxed_variant + Jkind.for_non_float ~why:Boxed_variant in Ttype_variant tcstrs, Type_variant (cstrs, rep, None), jkind | Ptype_record lbls -> @@ -973,7 +972,7 @@ let transl_declaration env sdecl (id, uid) = [Record_mixed]. Those cases are fixed up after we can get accurate sorts for the fields, in [update_decl_jkind]. *) Record_boxed (Array.make (List.length lbls) Jkind.Sort.Const.void), - Jkind.Builtin.value ~why:Boxed_record + Jkind.for_non_float ~why:Boxed_record in Ttype_record lbls, Type_record(lbls', rep, None), jkind | Ptype_record_unboxed_product lbls -> @@ -994,7 +993,7 @@ let transl_declaration env sdecl (id, uid) = Type_record_unboxed_product(lbls', Record_unboxed_product, None), jkind | Ptype_open -> Ttype_open, Type_open, - Jkind.Builtin.value ~why:Extensible_variant + Jkind.for_non_float ~why:Extensible_variant in let jkind = (* - If there's an annotation, we use that. It's checked against @@ -1096,7 +1095,26 @@ let transl_declaration env sdecl (id, uid) = decl, typ_shape end -(* Record declarations with representation [Record_unboxed] get an implicit +(* Note [Typechecking unboxed versions of types] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + Unboxed versions are computed in three steps: + + 1. In the temporary environment computed by [enter_type], all types get an + unboxed version. + + 2. After translating declarations, [derive_unboxed_versions] gives the + [Record_boxed] records unboxed versions. + + 3. But some of these [Record_boxed]s are a lie, and become + [Record_float]/[Record_ufloat]/[Record_mixed] after [update_decls_jkind]. + As float records should not end up with unboxed versions, we then remove + theirs in [remove_unboxed_versions]. + + After steps 2 and 3, the set of unboxed versions decreases, so we check for + newly-unbound unboxed paths with [check_unboxed_paths]. +*) + +(* Record declarations with representation [Record_boxed] get an implicit unboxed record stored in [type_unboxed_version]. If that record is also an alias, so is its stored unboxed version. E.g. [type t = r = { i : int }]'s unboxed version gets kind [#{ i : int}] and manifest [r#]. @@ -1105,36 +1123,131 @@ let transl_declaration env sdecl (id, uid) = also have unboxed versions, but these aren't stored in [type_unboxed_version]. *) +let record_gets_unboxed_version = function + | Record_unboxed | Record_inlined _ | Record_float | Record_ufloat -> false + | Record_boxed _ -> true + | Record_mixed shape -> + let rec shape_has_float_boxed shape = + Array.exists + (fun (kind : mixed_block_element) -> + match kind with + | Value | Float64 | Float32 | Bits32 | Bits64 | Vec128 | Word -> false + | Float_boxed -> true + | Product shape -> shape_has_float_boxed shape) + shape + in + not (shape_has_float_boxed shape) let gets_unboxed_version decl = - (* CR-soon layouts v7.2: update for implicit unboxed records *) - ignore decl; - false -let derive_unboxed_version env unboxed_versions_in_group decl = - (* CR-soon layouts v7.2: update for implicit unboxed records *) - ignore env; - ignore unboxed_versions_in_group; - ignore decl; - None + (* This must be kept in sync with the match in [derive_unboxed_version] *) + match decl.type_kind with + | Type_abstract _ | Type_open | Type_record_unboxed_product _ + | Type_variant _ -> false + | Type_record (_, repr, _) -> record_gets_unboxed_version repr +let derive_unboxed_version env path_in_group_has_unboxed_version decl = + (* This must be kept in sync with the match in [gets_unboxed_version] *) + match decl.type_kind with + | Type_abstract _ | Type_open | Type_record_unboxed_product _ + | Type_variant _ -> + None + | Type_record (_, repr, _) when not (record_gets_unboxed_version repr) -> + None + | Type_record (lbls, _, umc) -> + let keep_attribute a = + (* If we keep [@deprecated_mutable], then a record that aliases + a record with a [@deprecated_mutable] label will cause two alerts, + if both have unboxed versions (because the unboxed version is a second + alias). *) + not (Builtin_attributes.attr_equals_builtin a "deprecated_mutable") + in + let lbls_unboxed = + List.map + (fun (ld : Types.label_declaration) -> + { Types.ld_id = Ident.create_local (Ident.name ld.ld_id); + ld_mutable = Immutable; + ld_modalities = ld.ld_modalities; + (* Inherit modalities from the boxed version. Note that these + are affected by the mutability of the boxed label, even + though the unboxed version is always immutable. *) + ld_sort = Jkind.Sort.Const.void; + ld_type = ld.ld_type; + ld_loc = ld.ld_loc; + ld_attributes = List.filter keep_attribute ld.ld_attributes; + (* Copy label attributes to the unboxed version *) + ld_uid = Uid.unboxed_version ld.ld_uid; + }) + lbls + in + (* CR layouts v11: update type_jkind once we have [layout_of] layouts *) + let jkind = + Jkind.Builtin.product_of_sorts ~why:Unboxed_record (List.length lbls) in + let kind = + Type_record_unboxed_product(lbls_unboxed, Record_unboxed_product, umc) + in + let type_manifest = + let has_unboxed_version path = + match Path.Map.find_opt path path_in_group_has_unboxed_version with + | Some b -> b + | None -> + try Option.is_some (Env.find_type path env).type_unboxed_version with + | Not_found -> Misc.fatal_error "Typedecl.derive_unboxed_versions" + in + match decl.type_manifest with + | None -> None + | Some ty -> + match get_desc ty with + | Tconstr (path, args, _) when has_unboxed_version path -> + Some (Ctype.newconstr (Path.unboxed_version path) args) + | _ -> + (* We're in one of two scenarios: + + 1. The manifest is a Tconstr to a type without an unboxed version. + 2. The manifest is not a Tconstr, and [check_coherence] will reject + this declaration later. + + In both cases, we could just not give this type an unboxed version, + but it's fine to do so, as we already give unboxed versions to + types that don't have one (float and [@@unboxed] records), and this + simplifies things. *) + None + in + Some + { + type_params = decl.type_params; + type_arity = decl.type_arity; + type_kind = kind; + type_jkind = jkind; + type_private = decl.type_private; + type_manifest; + type_variance = + Variance.unknown_signature ~injective:false ~arity:decl.type_arity; + type_separability = + Types.Separability.default_signature ~arity:decl.type_arity; + type_is_newtype = false; + type_expansion_scope = Btype.lowest_level; + type_loc = decl.type_loc; + type_attributes = decl.type_attributes; + type_unboxed_default = false; + type_uid = Uid.unboxed_version decl.type_uid; + type_unboxed_version = None; + } let derive_unboxed_versions decls env = - let unboxed_versions_in_group = - Path.Set.of_list - (List.filter_map - (fun (id, d) -> - if gets_unboxed_version d then Some (Path.Pident id) else None) - decls) + let path_in_group_has_unboxed_version = + Path.Map.of_seq + (List.to_seq decls |> + Seq.map (fun (id, d) -> Path.Pident id, gets_unboxed_version d)) in List.map (fun (id, d) -> let type_unboxed_version = - derive_unboxed_version env unboxed_versions_in_group d + derive_unboxed_version env path_in_group_has_unboxed_version d in id, { d with type_unboxed_version }) decls -(* Float and [@@unboxed] records are typechecked as boxed records until - [update_decls_jkind], so their unboxed versions need to be removed - afterwards. +(* Removes unboxed versions from type declarations not satisfying + [gets_unboxed_version]. In practice, it is float records that lose their + unboxed versions. See Note [Typechecking unboxed versions of types]. Returns new decls and paths whose unboxed versions got removed. *) let remove_unboxed_versions decls = @@ -1196,7 +1309,7 @@ let rec check_constraints_rec env loc visited ty = end; List.iter (check_constraints_rec env loc visited) args | Tpoly (ty, tl) -> - let _, ty = Ctype.instance_poly ~fixed:false tl ty in + let ty = Ctype.instance_poly tl ty in check_constraints_rec env loc visited ty | _ -> Btype.iter_type_expr (check_constraints_rec env loc visited) ty @@ -1528,68 +1641,48 @@ module Element_repr = struct | Bits64 | Vec128 | Word + | Product of t array - type t = + and t = | Unboxed_element of unboxed_element - | Imm_element | Float_element | Value_element | Element_without_runtime_component of { loc : Location.t; ty : type_expr } + (* This type technically permits [Float_element] to appear in an unboxed + product, but we never generate that and make no attempt to apply the + float record optimization to records of unboxed products of floats. Kinds + don't give us enough information to do this reliably, and you could just + use unboxed floats instead. *) - let classify env loc kloc ty jkind = + let classify env loc ty jkind = if is_float env ty then Float_element else let layout = Jkind.get_layout_defaulting_to_value jkind in - let sort = Jkind.Layout.Const.get_sort layout in - let jkind_of_type ty = Some (Ctype.type_jkind_purely env ty) in - let externality_upper_bound = Jkind.get_externality_upper_bound ~jkind_of_type jkind in - let base = match sort with + let sort = + match Jkind.Layout.Const.get_sort layout with | None -> - Misc.fatal_error "Element_repr.classify: unexpected abstract layout" - | Some (Product _ as c) -> - raise (Error (loc, Invalid_jkind_in_block (ty, c, kloc))) - | Some (Base b) -> b + Misc.fatal_error "Element_repr.classify: unexpected abstract layout" + | Some s -> s in - match base, externality_upper_bound with - (* CR layouts v5.1: We don't allow [External64] in the flat suffix of - mixed blocks. That's because we haven't committed to whether the - unboxing features of flambda2 can be used together with 32 bit - platforms. (If flambda2 stores unboxed things as flat in 32 bits, then - immediate64s must be banned in the flat suffix with backends for 32 bit - platforms that pass through flambda2. Further, we want a record - declaration to be accepted consistently in 32 bits vs. 64 bits. - So, immediate64s must always be banned in the flat suffix.) - - In practice, users can put immediate64s in the value prefix. - (We may consider teaching the middle-ends to mark immediate64s that - abut the non-scannable suffix as non-scannable on 64 bit platforms.) - - We may revisit this decision later when we know better whether we want - flambda2 to unbox for 32 bit platforms. - *) - | Value, (Internal | External64) -> Value_element - | Value, External -> Imm_element - | Float64, _ -> Unboxed_element Float64 - | Float32, _ -> Unboxed_element Float32 - | Word, _ -> Unboxed_element Word - | Bits32, _ -> Unboxed_element Bits32 - | Bits64, _ -> Unboxed_element Bits64 - | Vec128, _ -> Unboxed_element Vec128 - | Void, _ -> Element_without_runtime_component { loc; ty } - - let unboxed_to_flat : unboxed_element -> mixed_block_element = function - | Float64 -> Float64 - | Float32 -> Float32 - | Bits32 -> Bits32 - | Bits64 -> Bits64 - | Vec128 -> Vec128 - | Word -> Word - - let mixed_product_shape loc ts kind = + let rec sort_to_t : Jkind_types.Sort.Const.t -> t = function + | Base Value -> Value_element + | Base Float64 -> Unboxed_element Float64 + | Base Float32 -> Unboxed_element Float32 + | Base Word -> Unboxed_element Word + | Base Bits32 -> Unboxed_element Bits32 + | Base Bits64 -> Unboxed_element Bits64 + | Base Vec128 -> Unboxed_element Vec128 + | Base Void -> Element_without_runtime_component { loc; ty } + | Product l -> + Unboxed_element (Product (Array.of_list (List.map sort_to_t l))) + in + sort_to_t sort + + and mixed_product_shape loc ts kind = let to_shape_element (t,ty) : mixed_block_element = - match t with - | Unboxed_element unboxed -> unboxed_to_flat unboxed - | Float_element | Imm_element | Value_element -> Value + let rec of_t : t -> mixed_block_element = function + | Unboxed_element unboxed -> of_unboxed_element unboxed + | Float_element | Value_element -> Value | Element_without_runtime_component _ -> (* CR layouts v7: Supporting void with mixed blocks will require updating some assumptions in lambda, e.g. the translation of @@ -1597,18 +1690,34 @@ module Element_repr = struct raise (Error (loc, Invalid_jkind_in_block (ty, Base Void, Mixed_product))) + and of_unboxed_element : unboxed_element -> mixed_block_element = function + | Float64 -> Float64 + | Float32 -> Float32 + | Bits32 -> Bits32 + | Bits64 -> Bits64 + | Vec128 -> Vec128 + | Word -> Word + | Product l -> Product (Array.map of_t l) + in + of_t t in - let unboxed_elements = - List.fold_left (fun acc (t,_) -> - match t with - | Unboxed_element _ -> acc+1 - | Element_without_runtime_component _ - | Float_element | Imm_element | Value_element -> acc) 0 ts + let boxed_elements = + let rec count_boxed_in_t acc : t -> int = function + | Unboxed_element u -> count_boxed_in_unboxed_element acc u + | Element_without_runtime_component _ -> acc + | Float_element | Value_element -> acc + 1 + and count_boxed_in_unboxed_element acc : unboxed_element -> int = + function + | Float64 | Float32 | Bits32 | Bits64 | Vec128 | Word -> acc + | Product l -> Array.fold_left count_boxed_in_t acc l + in + List.fold_left (fun acc (t,_) -> count_boxed_in_t acc t) 0 ts + in + let mixed = + List.exists (function (Unboxed_element _, _) -> true | _ -> false) ts in - let mixed = unboxed_elements >= 1 in if not mixed then None else begin - assert_mixed_product_support loc kind - ~value_prefix_len:(List.length ts - unboxed_elements); + assert_mixed_product_support loc kind ~value_prefix_len:boxed_elements; Some (List.map to_shape_element ts |> Array.of_list) end end @@ -1622,16 +1731,14 @@ let update_constructor_representation | Cstr_tuple arg_types_and_modes -> let arg_reprs = List.map2 (fun {Types.ca_type=arg_type; _} arg_jkind -> - let kloc : jkind_sort_loc = Cstr_tuple { unboxed = false } in - Element_repr.classify env loc kloc arg_type arg_jkind, arg_type) + Element_repr.classify env loc arg_type arg_jkind, arg_type) arg_types_and_modes arg_jkinds in Element_repr.mixed_product_shape loc arg_reprs Cstr_tuple | Cstr_record fields -> let arg_reprs = List.map2 (fun ld arg_jkind -> - let kloc = Inlined_record { unboxed = false } in - Element_repr.classify env loc kloc ld.Types.ld_type arg_jkind, + Element_repr.classify env loc ld.Types.ld_type arg_jkind, ld.Types.ld_type) fields arg_jkinds in @@ -1674,8 +1781,7 @@ let rec update_decl_jkind env dpath decl = let open struct (* For tracking what types appear in record blocks. *) type element_repr_summary = - { mutable values : bool; (* excludes [imm], but includes [imm64] *) - mutable imms : bool; + { mutable values : bool; (* includes immediates. *) mutable floats: bool; (* For purposes of this record, [floats] tracks whether any field has layout value and is known to be a float. @@ -1706,13 +1812,12 @@ let rec update_decl_jkind env dpath decl = let reprs = List.map2 (fun lbl jkind -> - let kloc = Record { unboxed = false } in - Element_repr.classify env loc kloc lbl.Types.ld_type jkind, + Element_repr.classify env loc lbl.Types.ld_type jkind, lbl.Types.ld_type) lbls jkinds in let repr_summary = - { values = false; imms = false; floats = false; float64s = false; + { values = false; floats = false; float64s = false; non_float64_unboxed_fields = false; } in @@ -1720,9 +1825,9 @@ let rec update_decl_jkind env dpath decl = (fun ((repr : Element_repr.t), _lbl) -> match repr with | Float_element -> repr_summary.floats <- true - | Imm_element -> repr_summary.imms <- true | Unboxed_element Float64 -> repr_summary.float64s <- true - | Unboxed_element (Float32 | Bits32 | Bits64 | Vec128 | Word) -> + | Unboxed_element ( Float32 | Bits32 | Bits64 | Vec128 | Word + | Product _ ) -> repr_summary.non_float64_unboxed_fields <- true | Value_element -> repr_summary.values <- true | Element_without_runtime_component _ -> ()) @@ -1732,7 +1837,7 @@ let rec update_decl_jkind env dpath decl = (* We store mixed float/float64 records as flat if there are no non-float fields. *) - | { values = false; imms = false; floats = true; + | { values = false; floats = true; float64s = true; non_float64_unboxed_fields = false; } [@warning "+9"] -> let shape = @@ -1745,7 +1850,7 @@ let rec update_decl_jkind env dpath decl = raise (Error (loc, Invalid_jkind_in_block (ty, Base Void, Mixed_product))) - | Unboxed_element _ | Imm_element | Value_element -> + | Unboxed_element _ | Value_element -> Misc.fatal_error "Expected only floats and float64s") reprs |> Array.of_list @@ -1756,7 +1861,6 @@ let rec update_decl_jkind env dpath decl = only when they're unboxed. *) | { values = true; float64s = true } - | { imms = true; float64s = true } | { non_float64_unboxed_fields = true } -> let shape = Element_repr.mixed_product_shape loc reprs Record @@ -1769,17 +1873,16 @@ let rec update_decl_jkind env dpath decl = Record_mixed shape (* value-only records are stored as boxed records *) | { values = true; float64s = false; non_float64_unboxed_fields = false } - | { imms = true; float64s = false; non_float64_unboxed_fields = false } -> rep (* All-float and all-float64 records are stored as flat float records. *) - | { values = false; imms = false; floats = true ; float64s = false; + | { values = false; floats = true ; float64s = false; non_float64_unboxed_fields = false } -> Record_float - | { values = false; imms = false; floats = false; float64s = true; + | { values = false; floats = false; float64s = true; non_float64_unboxed_fields = false } -> Record_ufloat - | { values = false; imms = false; floats = false; float64s = false; + | { values = false; floats = false; float64s = false; non_float64_unboxed_fields = false } [@warning "+9"] -> Misc.fatal_error "Typedecl.update_record_kind: empty record" @@ -1852,7 +1955,13 @@ let rec update_decl_jkind env dpath decl = (idx+1,cstr::cstrs) ) (0,[]) cstrs in - let jkind = Jkind.for_boxed_variant cstrs in + let jkind = + Jkind.for_boxed_variant + ~decl_params:decl.type_params + ~type_apply:(Ctype.apply env) + ~free_vars:(Ctype.free_variable_set_of_list env) + cstrs + in List.rev cstrs, rep, jkind | (([] | (_ :: _)), Variant_unboxed | _, Variant_extensible) -> assert false @@ -1868,7 +1977,7 @@ let rec update_decl_jkind env dpath decl = decl | Type_open -> let type_jkind = - Jkind.Builtin.value ~why:Extensible_variant + Jkind.for_non_float ~why:Extensible_variant (* It's unlikely we'll ever be able to give better kinds than [value] to extensible variants, so we're not worried about backwards compatibility if we mark them as best here, and we want to be able to normalize them away *) @@ -1973,6 +2082,7 @@ let update_decls_jkind env decls = (id, decl, allow_any_crossing, update_decl_jkind env (Pident id) decl)) decls +(* See Note [Typechecking unboxed versions of types]. *) let check_unboxed_paths decls ~unboxed_version_banned = (* We iterate on all subexpressions of the declaration to check "in depth" that no non-existent unboxed version is used. *) @@ -2417,8 +2527,7 @@ let check_regularity ~abs_env env loc path decl to_check = end; List.iter (check_subtype cpath args prev_exp trace ty) args' | Tpoly (ty, tl) -> - let (_, ty) = - Ctype.instance_poly ~keep_names:true ~fixed:false tl ty in + let ty = Ctype.instance_poly ~keep_names:true tl ty in check_regular cpath args prev_exp trace ty | _ -> Btype.iter_type_expr @@ -3545,8 +3654,7 @@ let transl_value_decl env loc ~sig_modalities valdecl = let modalities = match valdecl.pval_modalities with | [] -> sig_modalities - | l -> Typemode.transl_modalities ~maturity:Stable Immutable - valdecl.pval_attributes l + | l -> Typemode.transl_modalities ~maturity:Stable Immutable l in let modalities = Mode.Modality.Value.of_const modalities in (* CR layouts v5: relax this to check for representability. *) @@ -4173,8 +4281,8 @@ let report_error ppf = function let get_jkind_error : _ Errortrace.elt -> _ = function | Bad_jkind (ty, violation) | Bad_jkind_sort (ty, violation) -> Some (ty, violation) - | Unequal_var_jkinds _ | Diff _ | Variant _ | Obj _ - | Escape _ | Incompatible_fields _ | Rec_occur _ -> None + | Unequal_var_jkinds _ | Unequal_tof_kind_jkinds _ | Diff _ | Variant _ + | Obj _ | Escape _ | Incompatible_fields _ | Rec_occur _ -> None in begin match List.find_map get_jkind_error err.trace with | Some (ty, violation) -> @@ -4401,7 +4509,11 @@ let report_error ppf = function (* the type is always printed just above, so print out just the head of the path instead of something like [t/3] *) let offender ppf = - fprintf ppf "type %a" Style.inline_code (Ident.name (Path.head dpath)) + let head_name = Ident.name (Path.head dpath) in + let path_end = + if Path.is_unboxed_version dpath then head_name ^ "#" else head_name + in + fprintf ppf "type %a" Style.inline_code path_end in Jkind.Violation.report_with_offender ~offender ppf v | Jkind_mismatch_of_type (ty,v) -> diff --git a/upstream/ocaml_flambda/typing/typedecl_separability.ml b/upstream/ocaml_flambda/typing/typedecl_separability.ml index 6888110fd..e4b953a13 100644 --- a/upstream/ocaml_flambda/typing/typedecl_separability.ml +++ b/upstream/ocaml_flambda/typing/typedecl_separability.ml @@ -149,6 +149,7 @@ let rec immediate_subtypes : type_expr -> type_expr list = fun ty -> immediate_subtypes_object_row [] ty | Tlink _ | Tsubst _ -> assert false (* impossible due to Ctype.repr *) | Tvar _ | Tunivar _ -> [] + | Tof_kind _ -> [] | Tpoly (pty, _) -> [pty] | Tconstr (_path, tys, _) -> tys @@ -407,7 +408,8 @@ let check_type | (Tvariant(_) , Sep ) | (Tobject(_,_) , Sep ) | ((Tnil | Tfield _) , Sep ) - | (Tpackage(_,_) , Sep ) -> empty + | (Tpackage(_,_) , Sep ) + | (Tof_kind(_) , Sep ) -> empty (* "Deeply separable" case for these same constructors. *) | (Tarrow _ , Deepsep) | (Ttuple _ , Deepsep) @@ -443,6 +445,7 @@ let check_type | (Tpoly(pty,_) , m ) -> check_type hyps pty m | (Tunivar(_) , _ ) -> empty + | (Tof_kind(_) , _ ) -> empty (* Type constructor case. *) | (Tconstr(path,tys,_), m ) -> let msig = (Env.find_type path env).type_separability in diff --git a/upstream/ocaml_flambda/typing/typedecl_variance.ml b/upstream/ocaml_flambda/typing/typedecl_variance.ml index 1d30a8df0..1859c0171 100644 --- a/upstream/ocaml_flambda/typing/typedecl_variance.ml +++ b/upstream/ocaml_flambda/typing/typedecl_variance.ml @@ -104,7 +104,7 @@ let compute_variance env visited vari ty = compute_same (row_more row) | Tpoly (ty, _) -> compute_same ty - | Tvar _ | Tnil | Tlink _ | Tunivar _ -> () + | Tvar _ | Tnil | Tlink _ | Tunivar _ | Tof_kind _ -> () | Tpackage (_, fl) -> let v = Variance.(compose vari full) in List.iter (fun (_, ty) -> compute_variance_rec v ty) fl diff --git a/upstream/ocaml_flambda/typing/typedtree.ml b/upstream/ocaml_flambda/typing/typedtree.ml index 470a8bc14..9157a66e9 100644 --- a/upstream/ocaml_flambda/typing/typedtree.ml +++ b/upstream/ocaml_flambda/typing/typedtree.ml @@ -236,7 +236,7 @@ and expression_desc = | Texp_record of { fields : ( Types.label_description * record_label_definition ) array; representation : Types.record_representation; - extended_expression : (expression * Unique_barrier.t) option; + extended_expression : (expression * Jkind.sort * Unique_barrier.t) option; alloc_mode : alloc_mode option } | Texp_record_unboxed_product of { @@ -246,8 +246,8 @@ and expression_desc = extended_expression : (expression * Jkind.sort) option; } | Texp_field of - expression * Longident.t loc * label_description * texp_field_boxing * - Unique_barrier.t + expression * Jkind.sort * Longident.t loc * label_description * + texp_field_boxing * Unique_barrier.t | Texp_unboxed_field of expression * Jkind.sort * Longident.t loc * unboxed_label_description * unique_use @@ -265,6 +265,7 @@ and expression_desc = } | Texp_for of { for_id : Ident.t; + for_debug_uid: Shape.Uid.t; for_pat : Parsetree.pattern; for_from : expression; for_to : expression; @@ -290,6 +291,7 @@ and expression_desc = let_ : binding_op; ands : binding_op list; param : Ident.t; + param_debug_uid : Shape.Uid.t; param_sort : Jkind.sort; body : value case; body_sort : Jkind.sort; @@ -333,6 +335,7 @@ and comprehension_clause_binding = and comprehension_iterator = | Texp_comp_range of { ident : Ident.t + ; ident_debug_uid : Shape.Uid.t ; pattern : Parsetree.pattern ; start : expression ; stop : expression @@ -356,6 +359,7 @@ and function_param = { fp_arg_label: arg_label; fp_param: Ident.t; + fp_param_debug_uid : Shape.Uid.t; fp_partial: partial; fp_kind: function_param_kind; fp_sort: Jkind.sort; @@ -382,6 +386,7 @@ and function_cases = fc_ret_type : Types.type_expr; fc_partial: partial; fc_param: Ident.t; + fc_param_debug_uid: Shape.Uid.t; fc_loc: Location.t; fc_exp_extra: exp_extra option; fc_attributes: attributes; @@ -715,6 +720,7 @@ and core_type_desc = | Ttyp_poly of (string * Parsetree.jkind_annotation option) list * core_type | Ttyp_package of package_type | Ttyp_open of Path.t * Longident.t loc * core_type + | Ttyp_of_kind of Parsetree.jkind_annotation | Ttyp_call_pos and package_type = { @@ -1314,7 +1320,7 @@ let rec exp_is_nominal exp = | Texp_variant (_, None) | Texp_construct (_, _, [], _) -> true - | Texp_field (parent, _, _, _, _) | Texp_send (parent, _, _) -> + | Texp_field (parent, _, _, _, _, _) | Texp_send (parent, _, _) -> exp_is_nominal parent | _ -> false diff --git a/upstream/ocaml_flambda/typing/typedtree.mli b/upstream/ocaml_flambda/typing/typedtree.mli index f7da23d56..edaa8f8e9 100644 --- a/upstream/ocaml_flambda/typing/typedtree.mli +++ b/upstream/ocaml_flambda/typing/typedtree.mli @@ -411,7 +411,7 @@ and expression_desc = | Texp_record of { fields : ( Types.label_description * record_label_definition ) array; representation : Types.record_representation; - extended_expression : (expression * Unique_barrier.t) option; + extended_expression : (expression * Jkind.sort * Unique_barrier.t) option; alloc_mode : alloc_mode option } (** { l1=P1; ...; ln=Pn } (extended_expression = None) @@ -444,10 +444,12 @@ and expression_desc = { fields = [| l1, Kept t1; l2 Override P2 |]; representation; extended_expression = Some E0 } *) - | Texp_field of expression * Longident.t loc * Types.label_description * - texp_field_boxing * Unique_barrier.t - (** [texp_field_boxing] provides extra information depending on if the - projection requires boxing. *) + | Texp_field of expression * Jkind.sort * Longident.t loc * + Types.label_description * texp_field_boxing * Unique_barrier.t + (** - The sort is the sort of the whole record (which may be non-value if + the record is @@unboxed). + - [texp_field_boxing] provides extra information depending on if the + projection requires boxing. *) | Texp_unboxed_field of expression * Jkind.sort * Longident.t loc * Types.unboxed_label_description * unique_use @@ -467,6 +469,7 @@ and expression_desc = } | Texp_for of { for_id : Ident.t; + for_debug_uid: Shape.Uid.t; for_pat : Parsetree.pattern; for_from : expression; for_to : expression; @@ -492,6 +495,7 @@ and expression_desc = let_ : binding_op; ands : binding_op list; param : Ident.t; + param_debug_uid : Shape.Uid.t; param_sort : Jkind.sort; body : value case; body_sort : Jkind.sort; @@ -522,6 +526,7 @@ and function_param = (** [fp_param] is the identifier that is to be used to name the parameter of the function. *) + fp_param_debug_uid: Shape.Uid.t; fp_partial: partial; (** [fp_partial] = @@ -576,6 +581,7 @@ and function_cases = fc_ret_type : Types.type_expr; fc_partial: partial; fc_param: Ident.t; + fc_param_debug_uid : Shape.Uid.t; fc_loc: Location.t; fc_exp_extra: exp_extra option; fc_attributes: attributes; @@ -618,6 +624,7 @@ and comprehension_clause_binding = and comprehension_iterator = | Texp_comp_range of { ident : Ident.t + ; ident_debug_uid : Shape.Uid.t ; pattern : Parsetree.pattern (** Redundant with [ident] *) ; start : expression ; stop : expression @@ -651,9 +658,10 @@ and binding_op = bop_loc : Location.t; } +(* See Note [Type-checking applications] in Typecore *) and ('a, 'b) arg_or_omitted = - | Arg of 'a - | Omitted of 'b + | Arg of 'a (* an argument actually passed to a function *) + | Omitted of 'b (* an argument not passed due to partial application *) and omitted_parameter = { mode_closure : Mode.Alloc.r; @@ -744,6 +752,8 @@ and module_type_constraint = and functor_parameter = | Unit + (* CR sspies: We should add an additional [debug_uid] here to support functor + arguments in the debugger. *) | Named of Ident.t option * string option loc * module_type and module_expr_desc = @@ -983,6 +993,7 @@ and core_type_desc = | Ttyp_poly of (string * Parsetree.jkind_annotation option) list * core_type | Ttyp_package of package_type | Ttyp_open of Path.t * Longident.t loc * core_type + | Ttyp_of_kind of Parsetree.jkind_annotation | Ttyp_call_pos (** [Ttyp_call_pos] represents the type of the value of a Position argument ([lbl:[%call_pos] -> ...]). *) diff --git a/upstream/ocaml_flambda/typing/typemod.ml b/upstream/ocaml_flambda/typing/typemod.ml index 741d198ca..06eb5a73a 100644 --- a/upstream/ocaml_flambda/typing/typemod.ml +++ b/upstream/ocaml_flambda/typing/typemod.ml @@ -96,13 +96,13 @@ type error = | Cannot_compile_implementation_as_parameter | Cannot_implement_parameter of Compilation_unit.Name.t * Misc.filepath | Argument_for_non_parameter of Global_module.Name.t * Misc.filepath - | Cannot_find_argument_type of Global_module.Name.t + | Cannot_find_argument_type of Global_module.Parameter_name.t | Inconsistent_argument_types of { - new_arg_type : Global_module.Name.t option; - old_arg_type : Global_module.Name.t option; + new_arg_type : Global_module.Parameter_name.t option; + old_arg_type : Global_module.Parameter_name.t option; old_source_file : Misc.filepath; } - | Duplicate_parameter_name of Global_module.Name.t + | Duplicate_parameter_name of Global_module.Parameter_name.t | Submode_failed of Mode.Value.error | Modal_module_not_supported @@ -357,7 +357,7 @@ let rec instance_name ~loc env syntax = let args = List.map (fun (param, value) : Global_module.Name.argument -> - { param = Global_module.Name.create_no_args param; + { param = Global_module.Parameter_name.of_string param; value = instance_name ~loc env value }) args in @@ -1062,7 +1062,7 @@ let apply_pmd_modalities env sig_modalities pmd_modalities mty = match pmd_modalities with | [] -> sig_modalities | _ :: _ -> - Typemode.transl_modalities ~maturity:Stable Immutable [] pmd_modalities + Typemode.transl_modalities ~maturity:Stable Immutable pmd_modalities in (* Workaround for pmd_modalities @@ -1268,7 +1268,7 @@ and approx_sig_items env ssg= | [] -> sg | _ -> let modalities = - Typemode.transl_modalities ~maturity:Stable Immutable [] moda + Typemode.transl_modalities ~maturity:Stable Immutable moda in let recursive = not @@ Builtin_attributes.has_attribute "no_recursive_modalities" attrs @@ -1770,7 +1770,7 @@ and transl_signature env {psg_items; psg_modalities; psg_loc} = let names = Signature_names.create () in let sig_modalities = - Typemode.transl_modalities ~maturity:Stable Immutable [] psg_modalities + Typemode.transl_modalities ~maturity:Stable Immutable psg_modalities in let transl_include ~loc env sig_acc sincl modalities = @@ -1796,7 +1796,7 @@ and transl_signature env {psg_items; psg_modalities; psg_loc} = match modalities with | [] -> sig_modalities | _ -> - Typemode.transl_modalities ~maturity:Stable Immutable [] modalities + Typemode.transl_modalities ~maturity:Stable Immutable modalities in let sg = if not @@ Mode.Modality.Value.Const.is_id modalities then @@ -3562,11 +3562,9 @@ let type_module_type_of env smod = let mty = Mtype.scrape_for_type_of ~remove_aliases env tmty.mod_type in (* PR#5036: must not contain non-generalized type variables *) check_nongen_modtype env smod.pmod_loc mty; - (* for [module type of], we zap to identity modality for best legacy - compatibility *) let mty = remove_modality_and_zero_alloc_variables_mty env - ~zap_modality:Mode.Modality.Value.zap_to_id mty + ~zap_modality:Mode.Modality.Value.zap_to_floor mty in tmty, mty @@ -3739,9 +3737,9 @@ let cms_register_toplevel_struct_attributes ~sourcefile ~uid ast = let check_argument_type_if_given env sourcefile actual_sig arg_module_opt = match arg_module_opt with | None -> None - | Some arg_module -> + | Some arg_param -> let arg_import = - Compilation_unit.Name.of_global_name_no_args_exn arg_module + Compilation_unit.Name.of_parameter_name arg_param in (* CR lmaurer: This "look for known name in path" code is duplicated all over the place. *) @@ -3751,8 +3749,15 @@ let check_argument_type_if_given env sourcefile actual_sig arg_module_opt = Load_path.find_normalized (basename ^ ".cmi") with Not_found -> raise(Error(Location.none, Env.empty, - Cannot_find_argument_type arg_module)) in - let arg_cmi = Unit_info.Artifact.from_filename arg_filename in + Cannot_find_argument_type arg_param)) in + let for_pack_prefix = + (* Packed modules can't be arguments *) + Compilation_unit.Prefix.empty + in + let arg_cmi = + Unit_info.Artifact.from_filename ~for_pack_prefix arg_filename + in + let arg_module = Global_module.Name.of_parameter_name arg_param in let arg_sig = Env.read_signature arg_module arg_cmi in if not (Env.is_parameter_unit arg_module) then raise (Error (Location.none, env, @@ -3821,16 +3826,18 @@ let type_implementation target modulename initial_env ast = end else begin let arg_type = !Clflags.as_argument_for - |> Option.map (fun name -> Global_module.Name.create_no_args name) + |> Option.map Global_module.Parameter_name.of_string in let cu_name = Compilation_unit.name modulename in let basename = cu_name |> Compilation_unit.Name.to_string in let source_intf = Unit_info.mli_from_source target in if !Clflags.cmi_file <> None || Sys.file_exists source_intf then begin + let for_pack_prefix = Compilation_unit.for_pack_prefix modulename in let compiled_intf_file = match !Clflags.cmi_file with - | Some cmi_file -> Unit_info.Artifact.from_filename cmi_file + | Some cmi_file -> + Unit_info.Artifact.from_filename ~for_pack_prefix cmi_file | None -> let cmi_file = try @@ -3839,7 +3846,7 @@ let type_implementation target modulename initial_env ast = raise(Error(Location.in_file sourcefile, Env.empty, Interface_not_compiled source_intf)) in - Unit_info.Artifact.from_filename cmi_file + Unit_info.Artifact.from_filename ~for_pack_prefix cmi_file in (* We use pre-5.2 behaviour as regards which interface-related file is reported in error messages. *) @@ -3853,7 +3860,7 @@ let type_implementation target modulename initial_env ast = if Env.is_parameter_unit global_name then error (Cannot_implement_parameter (cu_name, source_intf)); let arg_type_from_cmi = Env.implemented_parameter global_name in - if not (Option.equal Global_module.Name.equal + if not (Option.equal Global_module.Parameter_name.equal arg_type arg_type_from_cmi) then error (Inconsistent_argument_types { new_arg_type = arg_type; old_source_file = source_intf; @@ -3979,7 +3986,7 @@ let type_interface ~sourcefile modulename env ast = let sg = transl_signature env ast in let arg_type = !Clflags.as_argument_for - |> Option.map (fun name -> Global_module.Name.create_no_args name) + |> Option.map Global_module.Parameter_name.of_string in ignore (check_argument_type_if_given env sourcefile sg.sig_type arg_type : Typedtree.argument_interface option); @@ -4024,16 +4031,12 @@ let package_units initial_env objfiles target_cmi modulename = let units = List.map (fun f -> - let pref = chop_extensions f in - let basename = - pref - |> Filename.basename - |> String.capitalize_ascii + let for_pack_prefix = Compilation_unit.to_prefix modulename in + let artifact = Unit_info.Artifact.from_filename ~for_pack_prefix f in + let modname = Unit_info.Artifact.modname artifact in + let global_name = + Compilation_unit.to_global_name_without_prefix modname in - let unit = Compilation_unit.Name.of_string basename in - let global_name = Global_module.Name.create_no_args basename in - let modname = Compilation_unit.create_child modulename unit in - let artifact = Unit_info.Artifact.from_filename f in let sg = Env.read_signature global_name (Unit_info.companion_cmi artifact) in @@ -4403,7 +4406,7 @@ let report_error ~loc _env = function | None -> Format.fprintf ppf "without -as-argument-for" | Some arg_type -> Format.fprintf ppf "with -as-argument-for %a" - Global_module.Name.print arg_type + Global_module.Parameter_name.print arg_type in Location.errorf ~loc "Inconsistent usage of -as-argument-for. Interface@ %s@ was compiled \ @@ -4414,11 +4417,11 @@ let report_error ~loc _env = function | Cannot_find_argument_type arg_type -> Location.errorf ~loc "Parameter module %a@ specified by -as-argument-for cannot be found." - (Style.as_inline_code Global_module.Name.print) arg_type + (Style.as_inline_code Global_module.Parameter_name.print) arg_type | Duplicate_parameter_name name -> Location.errorf ~loc "This instance has multiple arguments with the name %a." - (Style.as_inline_code Global_module.Name.print) name + (Style.as_inline_code Global_module.Parameter_name.print) name | Submode_failed (Error (ax, {left; right})) -> Location.errorf ~loc "This value is %a, but expected to be %a because it is inside a module." diff --git a/upstream/ocaml_flambda/typing/typemod.mli b/upstream/ocaml_flambda/typing/typemod.mli index 3e75654c7..131f47722 100644 --- a/upstream/ocaml_flambda/typing/typemod.mli +++ b/upstream/ocaml_flambda/typing/typemod.mli @@ -156,13 +156,13 @@ type error = | Cannot_compile_implementation_as_parameter | Cannot_implement_parameter of Compilation_unit.Name.t * Misc.filepath | Argument_for_non_parameter of Global_module.Name.t * Misc.filepath - | Cannot_find_argument_type of Global_module.Name.t + | Cannot_find_argument_type of Global_module.Parameter_name.t | Inconsistent_argument_types of { - new_arg_type: Global_module.Name.t option; - old_arg_type: Global_module.Name.t option; + new_arg_type: Global_module.Parameter_name.t option; + old_arg_type: Global_module.Parameter_name.t option; old_source_file: Misc.filepath; } - | Duplicate_parameter_name of Global_module.Name.t + | Duplicate_parameter_name of Global_module.Parameter_name.t | Submode_failed of Mode.Value.error | Modal_module_not_supported diff --git a/upstream/ocaml_flambda/typing/typemode.ml b/upstream/ocaml_flambda/typing/typemode.ml index 617ea9cb6..fbf2f5460 100644 --- a/upstream/ocaml_flambda/typing/typemode.ml +++ b/upstream/ocaml_flambda/typing/typemode.ml @@ -25,8 +25,9 @@ exception Error of Location.t * error module Axis_pair = struct type 'm t = - | Modal_axis_pair : ('m, 'a, 'd) Mode.Alloc.axis * 'a -> modal t + | Modal_axis_pair : ('a, _, _) Mode.Alloc.Axis.t * 'a -> modal t | Any_axis_pair : 'a Axis.t * 'a -> maybe_nonmodal t + | Everything_but_nullability : maybe_nonmodal t let of_string s = let open Mode in @@ -62,6 +63,26 @@ module Axis_pair = struct Any_axis_pair (Modal (Comonadic Yielding), Yielding.Const.Yielding) | "unyielding" -> Any_axis_pair (Modal (Comonadic Yielding), Yielding.Const.Unyielding) + | "stateless" -> + Any_axis_pair + (Modal (Comonadic Statefulness), Statefulness.Const.Stateless) + | "observing" -> + Any_axis_pair + (Modal (Comonadic Statefulness), Statefulness.Const.Observing) + | "stateful" -> + Any_axis_pair (Modal (Comonadic Statefulness), Statefulness.Const.Stateful) + | "immutable" -> + Any_axis_pair (Modal (Monadic Visibility), Visibility.Const.Immutable) + | "read" -> Any_axis_pair (Modal (Monadic Visibility), Visibility.Const.Read) + | "read_write" -> + Any_axis_pair (Modal (Monadic Visibility), Visibility.Const.Read_write) + | "maybe_separable" -> + Any_axis_pair (Nonmodal Separability, Separability.Maybe_separable) + | "separable" -> + Any_axis_pair (Nonmodal Separability, Separability.Separable) + | "non_float" -> + Any_axis_pair (Nonmodal Separability, Separability.Non_float) + | "everything" -> Everything_but_nullability | _ -> raise Not_found end @@ -73,8 +94,9 @@ let transl_annot (type m) ~(annot_type : m annot_type) ~required_mode_maturity required_mode_maturity; let pair : m Axis_pair.t = match Axis_pair.of_string annot.txt, annot_type with - | Any_axis_pair (Nonmodal _, _), (Mode | Modality) | (exception Not_found) - -> + | Any_axis_pair (Nonmodal _, _), (Mode | Modality) + | Everything_but_nullability, (Mode | Modality) + | (exception Not_found) -> raise (Error (annot.loc, Unrecognized_modifier (annot_type, annot.txt))) | Any_axis_pair (Modal axis, mode), Mode -> Modal_axis_pair (axis, mode) | Any_axis_pair (Modal axis, mode), Modality -> Modal_axis_pair (axis, mode) @@ -92,8 +114,11 @@ module Transled_modifiers = struct portability : Mode.Portability.Const.t Location.loc option; contention : Mode.Contention.Const.t Location.loc option; yielding : Mode.Yielding.Const.t Location.loc option; + statefulness : Mode.Statefulness.Const.t Location.loc option; + visibility : Mode.Visibility.Const.t Location.loc option; externality : Jkind_axis.Externality.t Location.loc option; - nullability : Jkind_axis.Nullability.t Location.loc option + nullability : Jkind_axis.Nullability.t Location.loc option; + separability : Jkind_axis.Separability.t Location.loc option } let empty = @@ -103,8 +128,11 @@ module Transled_modifiers = struct portability = None; contention = None; yielding = None; + statefulness = None; + visibility = None; externality = None; - nullability = None + nullability = None; + separability = None } let get (type a) ~(axis : a Axis.t) (t : t) : a Location.loc option = @@ -115,8 +143,11 @@ module Transled_modifiers = struct | Modal (Comonadic Portability) -> t.portability | Modal (Monadic Contention) -> t.contention | Modal (Comonadic Yielding) -> t.yielding + | Modal (Comonadic Statefulness) -> t.statefulness + | Modal (Monadic Visibility) -> t.visibility | Nonmodal Externality -> t.externality | Nonmodal Nullability -> t.nullability + | Nonmodal Separability -> t.separability let set (type a) ~(axis : a Axis.t) (t : t) (value : a Location.loc option) : t = @@ -127,39 +158,166 @@ module Transled_modifiers = struct | Modal (Comonadic Portability) -> { t with portability = value } | Modal (Monadic Contention) -> { t with contention = value } | Modal (Comonadic Yielding) -> { t with yielding = value } + | Modal (Comonadic Statefulness) -> { t with statefulness = value } + | Modal (Monadic Visibility) -> { t with visibility = value } | Nonmodal Externality -> { t with externality = value } | Nonmodal Nullability -> { t with nullability = value } + | Nonmodal Separability -> { t with separability = value } end -let transl_modifier_annots annots = - let step modifiers_so_far annot = - let { txt = Any_axis_pair (type a) ((axis, mode) : a Axis.t * a); loc } = +let transl_mod_bounds annots = + let step bounds_so_far annot = + match transl_annot ~annot_type:Modifier ~required_mode_maturity:None @@ unpack_mode_annot annot - in - let (module A) = Axis.get axis in - let is_top = A.le A.max mode in - if is_top - then - (* CR layouts v2.8: This warning is disabled for now because transl_type_decl - results in 3 calls to transl_annots per user-written annotation. This results - in the warning being reported 3 times. *) - (* Location.prerr_warning new_raw.loc (Warnings.Mod_by_top new_raw.txt) *) - (); - let is_dup = - Option.is_some (Transled_modifiers.get ~axis modifiers_so_far) - in - if is_dup then raise (Error (annot.loc, Duplicated_axis axis)); - Transled_modifiers.set ~axis modifiers_so_far (Some { txt = mode; loc }) + with + | { txt = Any_axis_pair (type a) ((axis, mode) : a Axis.t * a); loc } -> + let (module A) = Axis.get axis in + let is_top = A.le A.max mode in + if is_top + then + (* CR layouts v2.8: This warning is disabled for now because transl_type_decl + results in 3 calls to transl_annots per user-written annotation. This results + in the warning being reported 3 times. *) + (* Location.prerr_warning new_raw.loc (Warnings.Mod_by_top new_raw.txt) *) + (); + let is_dup = + Option.is_some (Transled_modifiers.get ~axis bounds_so_far) + in + if is_dup then raise (Error (annot.loc, Duplicated_axis axis)); + Transled_modifiers.set ~axis bounds_so_far (Some { txt = mode; loc }) + | { txt = Everything_but_nullability; loc } -> + Transled_modifiers. + { locality = Some { txt = Locality.Const.min; loc }; + linearity = Some { txt = Linearity.Const.min; loc }; + uniqueness = Some { txt = Uniqueness.Const_op.min; loc }; + portability = Some { txt = Portability.Const.min; loc }; + contention = Some { txt = Contention.Const_op.min; loc }; + yielding = Some { txt = Yielding.Const.min; loc }; + externality = Some { txt = Externality.min; loc }; + statefulness = Some { txt = Statefulness.Const.min; loc }; + visibility = Some { txt = Visibility.Const_op.min; loc }; + nullability = + Transled_modifiers.get ~axis:(Nonmodal Nullability) bounds_so_far; + separability = + Transled_modifiers.get ~axis:(Nonmodal Separability) bounds_so_far + } in let empty_modifiers = Transled_modifiers.empty in - List.fold_left step empty_modifiers annots + let modifiers = List.fold_left step empty_modifiers annots in + (* Since [yielding] is the default mode in presence of [local], + the [global] modifier must also apply [unyielding] unless specified. *) + let modifiers = + match + ( Transled_modifiers.get ~axis:(Modal (Comonadic Yielding)) modifiers, + Transled_modifiers.get ~axis:(Modal (Comonadic Areality)) modifiers ) + with + | None, Some { txt = Locality.Const.Global; _ } -> + Transled_modifiers.set ~axis:(Modal (Comonadic Yielding)) modifiers + (Some { txt = Yielding.Const.Unyielding; loc = Location.none }) + | _, _ -> modifiers + in + (* Likewise, [immutable] => [contended], [read] => [shared]. *) + let modifiers = + match + ( Transled_modifiers.get ~axis:(Modal (Monadic Contention)) modifiers, + Transled_modifiers.get ~axis:(Modal (Monadic Visibility)) modifiers ) + with + | None, Some { txt = Visibility.Const.Immutable; _ } -> + Transled_modifiers.set ~axis:(Modal (Monadic Contention)) modifiers + (Some { txt = Contention.Const.Contended; loc = Location.none }) + | None, Some { txt = Visibility.Const.Read; _ } -> + Transled_modifiers.set ~axis:(Modal (Monadic Contention)) modifiers + (Some { txt = Contention.Const.Shared; loc = Location.none }) + | _, _ -> modifiers + in + (* Likewise, [stateless] => [portable]. *) + let modifiers = + match + ( Transled_modifiers.get ~axis:(Modal (Comonadic Portability)) modifiers, + Transled_modifiers.get ~axis:(Modal (Comonadic Statefulness)) modifiers + ) + with + | None, Some { txt = Statefulness.Const.Stateless; _ } -> + Transled_modifiers.set ~axis:(Modal (Comonadic Portability)) modifiers + (Some { txt = Portability.Const.Portable; loc = Location.none }) + | _, _ -> modifiers + in + let open Types.Jkind_mod_bounds in + let locality = + Option.fold ~some:Location.get_txt ~none:Locality.max modifiers.locality + in + let linearity = + Option.fold ~some:Location.get_txt ~none:Linearity.max modifiers.linearity + in + let uniqueness = + Option.fold ~some:Location.get_txt ~none:Uniqueness.max modifiers.uniqueness + in + let portability = + Option.fold ~some:Location.get_txt ~none:Portability.max + modifiers.portability + in + let contention = + Option.fold ~some:Location.get_txt ~none:Contention.max modifiers.contention + in + let yielding = + Option.fold ~some:Location.get_txt ~none:Yielding.max modifiers.yielding + in + let statefulness = + Option.fold ~some:Location.get_txt ~none:Statefulness.max + modifiers.statefulness + in + let visibility = + Option.fold ~some:Location.get_txt ~none:Visibility.max modifiers.visibility + in + let externality = + Option.fold ~some:Location.get_txt ~none:Externality.max + modifiers.externality + in + let nullability = + Option.fold ~some:Location.get_txt ~none:Nullability.max + modifiers.nullability + in + let separability = + Option.fold ~some:Location.get_txt ~none:Separability.max + modifiers.separability + in + create ~locality ~linearity ~uniqueness ~portability ~contention ~yielding + ~statefulness ~visibility ~externality ~nullability ~separability + +let default_mode_annots (annots : Alloc.Const.Option.t) = + (* [yielding] has a different default depending on whether [areality] + is [global] or [local]. *) + let yielding = + match annots.yielding, annots.areality with + | (Some _ as y), _ | y, None -> y + | None, Some Locality.Const.Global -> Some Yielding.Const.Unyielding + | None, Some Locality.Const.Local -> Some Yielding.Const.Yielding + in + (* Likewise for [contention]. *) + let contention = + match annots.contention, annots.visibility with + | (Some _ as c), _ | c, None -> c + | None, Some Visibility.Const.Immutable -> Some Contention.Const.Contended + | None, Some Visibility.Const.Read -> Some Contention.Const.Shared + | None, Some Visibility.Const.Read_write -> + Some Contention.Const.Uncontended + in + (* Likewise for [portability]. *) + let portability = + match annots.portability, annots.statefulness with + | (Some _ as p), _ | p, None -> p + | None, Some Statefulness.Const.Stateless -> Some Portability.Const.Portable + | None, Some Statefulness.Const.(Observing | Stateful) -> + Some Portability.Const.Nonportable + in + { annots with yielding; contention; portability } let transl_mode_annots annots : Alloc.Const.Option.t = let step modifiers_so_far annot = let { txt = - Modal_axis_pair (type m a d) - ((axis, mode) : (m, a, d) Mode.Alloc.axis * a); + Modal_axis_pair (type a d0 d1) + ((axis, mode) : (a, d0, d1) Mode.Alloc.Axis.t * a); loc } = transl_annot ~annot_type:Mode ~required_mode_maturity:(Some Stable) @@ -172,53 +330,99 @@ let transl_mode_annots annots : Alloc.Const.Option.t = in let empty_modifiers = Transled_modifiers.empty in let modes = List.fold_left step empty_modifiers annots in - { areality = Option.map get_txt modes.locality; - linearity = Option.map get_txt modes.linearity; - uniqueness = Option.map get_txt modes.uniqueness; - portability = Option.map get_txt modes.portability; - contention = Option.map get_txt modes.contention; - yielding = Option.map get_txt modes.yielding - } - -let untransl_mode_annots ~loc (modes : Mode.Alloc.Const.Option.t) = + default_mode_annots + { areality = Option.map get_txt modes.locality; + linearity = Option.map get_txt modes.linearity; + uniqueness = Option.map get_txt modes.uniqueness; + portability = Option.map get_txt modes.portability; + contention = Option.map get_txt modes.contention; + yielding = Option.map get_txt modes.yielding; + statefulness = Option.map get_txt modes.statefulness; + visibility = Option.map get_txt modes.visibility + } + +let untransl_mode_annots (modes : Mode.Alloc.Const.Option.t) = let print_to_string_opt print a = Option.map (Format.asprintf "%a" print) a in + (* Untranslate [areality] and [yielding]. *) let areality = print_to_string_opt Mode.Locality.Const.print modes.areality in + let yielding = + (* Since [yielding] has non-standard defaults, we special-case + whether we want to print it here. *) + match modes.yielding, modes.areality with + | Some Yielding.Const.Yielding, Some Locality.Const.Local + | Some Yielding.Const.Unyielding, Some Locality.Const.Global -> + None + | _, _ -> print_to_string_opt Mode.Yielding.Const.print modes.yielding + in + (* Untranslate [visibility] and [contention]. *) + let visibility = + print_to_string_opt Mode.Visibility.Const.print modes.visibility + in + let contention = + match modes.visibility, modes.contention with + | Some Visibility.Const.Immutable, Some Contention.Const.Contended + | Some Visibility.Const.Read, Some Contention.Const.Shared + | Some Visibility.Const.Read_write, Some Contention.Const.Uncontended -> + None + | _, _ -> print_to_string_opt Mode.Contention.Const.print modes.contention + in + (* Untranslate [statefulness] and [portability]. *) + let statefulness = + print_to_string_opt Mode.Statefulness.Const.print modes.statefulness + in + let portability = + match modes.statefulness, modes.portability with + | Some Statefulness.Const.Stateless, Some Portability.Const.Portable + | ( Some Statefulness.Const.(Observing | Stateful), + Some Portability.Const.Nonportable ) -> + None + | _, _ -> print_to_string_opt Mode.Portability.Const.print modes.portability + in + (* Untranslate remaining modes. *) let uniqueness = print_to_string_opt Mode.Uniqueness.Const.print modes.uniqueness in let linearity = print_to_string_opt Mode.Linearity.Const.print modes.linearity in - let portability = - print_to_string_opt Mode.Portability.Const.print modes.portability - in - let contention = - print_to_string_opt Mode.Contention.Const.print modes.contention - in - let yielding = print_to_string_opt Mode.Yielding.Const.print modes.yielding in List.filter_map - (fun x -> Option.map (fun s -> { txt = Parsetree.Mode s; loc }) x) - [areality; uniqueness; linearity; portability; contention; yielding] + (fun x -> + Option.map (fun s -> { txt = Parsetree.Mode s; loc = Location.none }) x) + [ areality; + uniqueness; + linearity; + portability; + contention; + yielding; + statefulness; + visibility ] let transl_modality ~maturity { txt = Parsetree.Modality modality; loc } = let axis_pair = transl_annot ~annot_type:Modality ~required_mode_maturity:(Some maturity) { txt = modality; loc } in - match axis_pair.txt with - | Modal_axis_pair (Comonadic Areality, mode) -> - Modality.Atom - (Comonadic Areality, Meet_with (Const.locality_as_regionality mode)) - | Modal_axis_pair (Comonadic Linearity, mode) -> - Modality.Atom (Comonadic Linearity, Meet_with mode) - | Modal_axis_pair (Comonadic Portability, mode) -> - Modality.Atom (Comonadic Portability, Meet_with mode) - | Modal_axis_pair (Monadic Uniqueness, mode) -> - Modality.Atom (Monadic Uniqueness, Join_with mode) - | Modal_axis_pair (Monadic Contention, mode) -> - Modality.Atom (Monadic Contention, Join_with mode) - | Modal_axis_pair (Comonadic Yielding, mode) -> - Modality.Atom (Comonadic Yielding, Meet_with mode) + let atom = + match axis_pair.txt with + | Modal_axis_pair (Comonadic Areality, mode) -> + Modality.Atom + (Comonadic Areality, Meet_with (Const.locality_as_regionality mode)) + | Modal_axis_pair (Comonadic Linearity, mode) -> + Modality.Atom (Comonadic Linearity, Meet_with mode) + | Modal_axis_pair (Comonadic Portability, mode) -> + Modality.Atom (Comonadic Portability, Meet_with mode) + | Modal_axis_pair (Monadic Uniqueness, mode) -> + Modality.Atom (Monadic Uniqueness, Join_with mode) + | Modal_axis_pair (Monadic Contention, mode) -> + Modality.Atom (Monadic Contention, Join_with mode) + | Modal_axis_pair (Comonadic Yielding, mode) -> + Modality.Atom (Comonadic Yielding, Meet_with mode) + | Modal_axis_pair (Comonadic Statefulness, mode) -> + Modality.Atom (Comonadic Statefulness, Meet_with mode) + | Modal_axis_pair (Monadic Visibility, mode) -> + Modality.Atom (Monadic Visibility, Join_with mode) + in + atom, loc let untransl_modality (a : Modality.t) : Parsetree.modality loc = let s = @@ -241,57 +445,143 @@ let untransl_modality (a : Modality.t) : Parsetree.modality loc = | Atom (Comonadic Yielding, Meet_with Yielding.Const.Yielding) -> "yielding" | Atom (Comonadic Yielding, Meet_with Yielding.Const.Unyielding) -> "unyielding" + | Atom (Comonadic Statefulness, Meet_with Statefulness.Const.Stateless) -> + "stateless" + | Atom (Comonadic Statefulness, Meet_with Statefulness.Const.Observing) -> + "observing" + | Atom (Comonadic Statefulness, Meet_with Statefulness.Const.Stateful) -> + "stateful" + | Atom (Monadic Visibility, Join_with Visibility.Const.Immutable) -> + "immutable" + | Atom (Monadic Visibility, Join_with Visibility.Const.Read) -> "read" + | Atom (Monadic Visibility, Join_with Visibility.Const.Read_write) -> + "read_write" | _ -> failwith "BUG: impossible modality atom" in { txt = Modality s; loc = Location.none } (* For now, mutable implies legacy modalities for both comonadic axes and monadic axes. In the future, implications on the comonadic axes will be - removed (and can be experimented currently with using - @no_mutable_implied_modalities). The implications on the monadic axes will - stay. *) + removed. The implications on the monadic axes will stay. Implied modalities + can be overriden. *) (* CR zqian: decouple mutable and comonadic modalities *) -let mutable_implied_modalities (mut : Types.mutability) attrs = +let mutable_implied_modalities (mut : Types.mutability) = let comonadic : Modality.t list = [ Atom (Comonadic Areality, Meet_with Regionality.Const.legacy); Atom (Comonadic Linearity, Meet_with Linearity.Const.legacy); Atom (Comonadic Portability, Meet_with Portability.Const.legacy); - Atom (Comonadic Yielding, Meet_with Yielding.Const.legacy) ] + Atom (Comonadic Yielding, Meet_with Yielding.Const.legacy); + Atom (Comonadic Statefulness, Meet_with Statefulness.Const.legacy) ] in let monadic : Modality.t list = [ Atom (Monadic Uniqueness, Join_with Uniqueness.Const.legacy); - Atom (Monadic Contention, Join_with Contention.Const.legacy) ] + Atom (Monadic Contention, Join_with Contention.Const.legacy); + Atom (Monadic Visibility, Join_with Visibility.Const.legacy) ] + in + match mut with Immutable -> [] | Mutable _ -> monadic @ comonadic + +let mutable_implied_modalities (mut : Types.mutability) = + let l = mutable_implied_modalities mut in + List.fold_left + (fun t (Modality.Atom (ax, a)) -> Modality.Value.Const.set ax a t) + Modality.Value.Const.id l + +(* Since [yielding] is the default mode in presence of [local], + the [global] modality must also apply [unyielding] unless specified. + + Similarly for [visibility]/[contention] and [statefulness]/[portability]. *) +let implied_modalities (Atom (ax, a) : Modality.t) : Modality.t list = + match ax, a with + | Comonadic Areality, Meet_with a -> + let b : Yielding.Const.t = + match a with + | Global -> Unyielding + | Local -> Yielding + | Regional -> assert false + in + [Atom (Comonadic Yielding, Meet_with b)] + | Monadic Visibility, Join_with a -> + let b : Contention.Const.t = + match a with + | Immutable -> Contended + | Read -> Shared + | Read_write -> Uncontended + in + [Atom (Monadic Contention, Join_with b)] + | Comonadic Statefulness, Meet_with a -> + let b : Portability.Const.t = + match a with Stateless -> Portable | Stateful | Observing -> Nonportable + in + [Atom (Comonadic Portability, Meet_with b)] + | _ -> [] + +let least_modalities_implying mut (t : Modality.Value.Const.t) = + let baseline = mutable_implied_modalities mut in + let annotated = Modality.Value.Const.(diff baseline t) in + let implied = List.concat_map implied_modalities annotated in + let exclude_implied = + List.filter (fun x -> not @@ List.mem x implied) annotated + in + let overridden = + List.filter_map + (fun (Modality.Atom (ax, m_implied)) -> + let m_projected = Modality.Value.Const.proj ax t in + if m_projected <> m_implied + then Some (Modality.Atom (ax, m_projected)) + else None) + implied in - match mut with - | Immutable -> [] - | Mutable _ -> - if Builtin_attributes.has_no_mutable_implied_modalities attrs - then monadic - else monadic @ comonadic + exclude_implied @ overridden -let transl_modalities ~maturity mut attrs modalities = - let mut_modalities = mutable_implied_modalities mut attrs in +let sort_dedup_modalities ~warn l = + let compare (Modality.Atom (ax0, _), _) (Modality.Atom (ax1, _), _) = + Value.Axis.compare ax0 ax1 + in + let dedup ~on_dup = + let rec loop x = function + | [] -> [x] + | y :: xs -> + if compare x y = 0 + then ( + on_dup x y; + loop y xs) + else x :: loop y xs + in + function [] -> [] | x :: xs -> loop x xs + in + let on_dup (Modality.Atom (ax0, _), loc0) (a1, _) = + if warn + then + let axis = Format.asprintf "%a" Value.Axis.print ax0 in + let { txt = Modality overriden_by; _ } = untransl_modality a1 in + Location.prerr_warning loc0 + (Warnings.Modal_axis_specified_twice { axis; overriden_by }) + in + l |> List.stable_sort compare |> dedup ~on_dup |> List.map fst + +let transl_modalities ~maturity mut modalities = + let mut_modalities = mutable_implied_modalities mut in let modalities = List.map (transl_modality ~maturity) modalities in - (* mut_modalities is applied before explicit modalities *) - Modality.Value.Const.id - |> List.fold_right - (fun atom m -> Modality.Value.Const.compose ~then_:atom m) - mut_modalities - (* For explicit modalities: - type r = { x : string @@ foo bar hello } - is interpreted as - x = foo (bar (hello (r))) *) - |> List.fold_right - (fun atom m -> Modality.Value.Const.compose ~then_:atom m) - modalities - -let untransl_modalities mut attrs t = - let l = Modality.Value.Const.to_list t in - let l = List.filter (fun a -> not @@ Modality.is_id a) l in - let mut_modalities = mutable_implied_modalities mut attrs in - (* polymorphic equality suffices for now. *) - let l = List.filter (fun x -> not @@ List.mem x mut_modalities) l in - List.map untransl_modality l + (* axes listed in the order of implication. *) + let modalities = sort_dedup_modalities ~warn:true modalities in + let open Modality in + (* - mut_modalities is applied before explicit modalities. + - explicit modalities can override mut_modalities. + - For the same axis, later modalities overrides earlier modalities. *) + List.fold_left + (fun m (Atom (ax, a) as t) -> + let m = Value.Const.set ax a m in + List.fold_left + (fun m (Atom (ax, a)) -> Value.Const.set ax a m) + m (implied_modalities t)) + mut_modalities modalities + +let untransl_modalities mut t = + t + |> least_modalities_implying mut + |> List.map (fun x -> x, Location.none) + |> sort_dedup_modalities ~warn:false + |> List.map untransl_modality let transl_alloc_mode modes = let opt = transl_mode_annots modes in diff --git a/upstream/ocaml_flambda/typing/typemode.mli b/upstream/ocaml_flambda/typing/typemode.mli index baa85bbee..d3c01b76b 100644 --- a/upstream/ocaml_flambda/typing/typemode.mli +++ b/upstream/ocaml_flambda/typing/typemode.mli @@ -1,8 +1,7 @@ (** Interpret mode syntax as mode annotation, where axes can be left unspecified *) val transl_mode_annots : Parsetree.modes -> Mode.Alloc.Const.Option.t -val untransl_mode_annots : - loc:Location.t -> Mode.Alloc.Const.Option.t -> Parsetree.modes +val untransl_mode_annots : Mode.Alloc.Const.Option.t -> Parsetree.modes (** Interpret mode syntax as alloc mode (on arrow types), where axes are set to legacy if unspecified *) @@ -15,7 +14,6 @@ val transl_alloc_mode : Parsetree.modes -> Mode.Alloc.Const.t val transl_modalities : maturity:Language_extension.maturity -> Types.mutability -> - Parsetree.attributes -> Parsetree.modalities -> Mode.Modality.Value.Const.t @@ -25,30 +23,7 @@ val untransl_modality : Mode.Modality.t -> Parsetree.modality Location.loc attributes on the field and remove mutable-implied modalities accordingly. *) val untransl_modalities : - Types.mutability -> - Parsetree.attributes -> - Mode.Modality.Value.Const.t -> - Parsetree.modalities - -module Transled_modifiers : sig - type t = - { locality : Mode.Locality.Const.t Location.loc option; - linearity : Mode.Linearity.Const.t Location.loc option; - uniqueness : Mode.Uniqueness.Const.t Location.loc option; - portability : Mode.Portability.Const.t Location.loc option; - contention : Mode.Contention.Const.t Location.loc option; - yielding : Mode.Yielding.Const.t Location.loc option; - externality : Jkind_axis.Externality.t Location.loc option; - nullability : Jkind_axis.Nullability.t Location.loc option - } - - val empty : t - - val get : axis:'a Jkind_axis.Axis.t -> t -> 'a Location.loc option - - val set : axis:'a Jkind_axis.Axis.t -> t -> 'a Location.loc option -> t -end + Types.mutability -> Mode.Modality.Value.Const.t -> Parsetree.modalities -(** Interpret a list of modifiers. - A "modifier" is any keyword coming after a `mod` in a jkind *) -val transl_modifier_annots : Parsetree.modes -> Transled_modifiers.t +(** Interpret a mod-bounds. *) +val transl_mod_bounds : Parsetree.modes -> Types.Jkind_mod_bounds.t diff --git a/upstream/ocaml_flambda/typing/typeopt.ml b/upstream/ocaml_flambda/typing/typeopt.ml index 99b6be447..487382eb8 100644 --- a/upstream/ocaml_flambda/typing/typeopt.ml +++ b/upstream/ocaml_flambda/typing/typeopt.ml @@ -32,7 +32,7 @@ type error = | Unsupported_sort of Jkind.Sort.Const.t | Unsupported_product_in_lazy of Jkind.Sort.Const.t | Unsupported_vector_in_product_array - | Mixed_product_array of Jkind.Sort.Const.t + | Mixed_product_array of Jkind.Sort.Const.t * type_expr | Product_iarrays_unsupported exception Error of Location.t * error @@ -186,7 +186,7 @@ let classify ~classify_product env loc ty sort : _ classification = end | Tarrow _ | Ttuple _ | Tpackage _ | Tobject _ | Tnil | Tvariant _ -> Addr - | Tlink _ | Tsubst _ | Tpoly _ | Tfield _ | Tunboxed_tuple _ -> + | Tlink _ | Tsubst _ | Tpoly _ | Tfield _ | Tunboxed_tuple _ | Tof_kind _ -> assert false end | Base Float64 -> Unboxed_float Unboxed_float64 @@ -199,20 +199,22 @@ let classify ~classify_product env loc ty sort : _ classification = raise (Error (loc, Unsupported_sort c)) | Product c -> Product (classify_product ty c) -let rec scannable_product_array_kind loc sorts = - List.map (sort_to_scannable_product_element_kind loc) sorts +let rec scannable_product_array_kind elt_ty_for_error loc sorts = + List.map (sort_to_scannable_product_element_kind elt_ty_for_error loc) sorts -and sort_to_scannable_product_element_kind loc (s : Jkind.Sort.Const.t) = +and sort_to_scannable_product_element_kind elt_ty_for_error loc + (s : Jkind.Sort.Const.t) = (* Unfortunate: this never returns `Pint_scannable`. Doing so would require this to traverse the type, rather than just the kind, or to add product kinds. *) match s with | Base Value -> Paddr_scannable | Base (Float64 | Float32 | Bits32 | Bits64 | Word | Vec128) as c -> - raise (Error (loc, Mixed_product_array c)) + raise (Error (loc, Mixed_product_array (c, elt_ty_for_error))) | Base Void as c -> raise (Error (loc, Unsupported_sort c)) - | Product sorts -> Pproduct_scannable (scannable_product_array_kind loc sorts) + | Product sorts -> + Pproduct_scannable (scannable_product_array_kind elt_ty_for_error loc sorts) let rec ignorable_product_array_kind loc sorts = List.map (sort_to_ignorable_product_element_kind loc) sorts @@ -237,14 +239,23 @@ let array_kind_of_elt ~elt_sort env loc ty = Jkind.Sort.default_for_transl_and_get (type_legacy_sort ~why:Array_element env loc ty) in + let elt_ty_for_error = ty in (* report the un-scraped ty in errors *) let classify_product ty sorts = if is_always_gc_ignorable env ty then Pgcignorableproductarray (ignorable_product_array_kind loc sorts) else - Pgcscannableproductarray (scannable_product_array_kind loc sorts) + Pgcscannableproductarray + (scannable_product_array_kind elt_ty_for_error loc sorts) in + (* CR dkalinichenko: many checks in [classify] are redundant + with separability. *) match classify ~classify_product env loc ty elt_sort with - | Any -> if Config.flat_float_array then Pgenarray else Paddrarray + | Any -> + if Config.flat_float_array + && not (Language_extension.is_at_least Separability () + && Ctype.check_type_separability env ty Non_float) + then Pgenarray + else Paddrarray | Float -> if Config.flat_float_array then Pfloatarray else Paddrarray | Addr | Lazy -> Paddrarray | Int -> Pintarray @@ -599,7 +610,7 @@ let rec value_kind env ~loc ~visited ~depth ~num_nodes_visited ty non_consts = [0, Constructor_uniform fields] })) | Tvariant row -> num_nodes_visited, - if Ctype.tvariant_not_immediate row + if Btype.tvariant_not_immediate row then non_nullable Pgenval else non_nullable Pintval | _ -> @@ -611,10 +622,16 @@ and value_kind_mixed_block_field env ~loc ~visited ~depth ~num_nodes_visited : int * unit Lambda.mixed_block_element = match field with | Value -> - let num_nodes_visited, kind = - value_kind env ~loc ~visited ~depth ~num_nodes_visited ty - in - num_nodes_visited, Value kind + begin match ty with + | Some ty -> + let num_nodes_visited, kind = + value_kind env ~loc ~visited ~depth ~num_nodes_visited ty + in + num_nodes_visited, Value kind + | None -> num_nodes_visited, Value (nullable Pgenval) + (* CR layouts v7.1: assess whether it is important for performance to + support deep value_kinds here *) + end | Float_boxed -> num_nodes_visited, Float_boxed () | Float64 -> num_nodes_visited, Float64 | Float32 -> num_nodes_visited, Float32 @@ -622,6 +639,14 @@ and value_kind_mixed_block_field env ~loc ~visited ~depth ~num_nodes_visited | Bits64 -> num_nodes_visited, Bits64 | Vec128 -> num_nodes_visited, Vec128 | Word -> num_nodes_visited, Word + | Product fs -> + let num_nodes_visited, kinds = + Array.fold_left_map (fun num_nodes_visited field -> + value_kind_mixed_block_field env ~loc ~visited ~depth ~num_nodes_visited + field None + ) num_nodes_visited fs + in + num_nodes_visited, Product kinds and value_kind_mixed_block env ~loc ~visited ~depth ~num_nodes_visited ~shape types = @@ -689,7 +714,7 @@ and value_kind_variant env ~loc ~visited ~depth ~num_nodes_visited ~depth ~num_nodes_visited | Constructor_mixed shape -> value_kind_mixed_block env ~loc ~visited ~depth ~num_nodes_visited - ~shape (List.map field_to_type fields) + ~shape (List.map (fun f -> Some (field_to_type f)) fields) in (false, num_nodes_visited), fields | Cstr_record labels -> @@ -707,7 +732,7 @@ and value_kind_variant env ~loc ~visited ~depth ~num_nodes_visited ~depth ~num_nodes_visited | Constructor_mixed shape -> value_kind_mixed_block env ~loc ~visited ~depth ~num_nodes_visited - ~shape (List.map field_to_type labels) + ~shape (List.map (fun f -> Some (field_to_type f)) labels) in (is_mutable, num_nodes_visited), fields in @@ -822,7 +847,7 @@ and value_kind_record env ~loc ~visited ~depth ~num_nodes_visited | Record_mixed shape -> let types = List.map (fun label -> label.Types.ld_type) labels in value_kind_mixed_block env ~loc ~visited ~depth ~num_nodes_visited - ~shape types + ~shape (List.map (fun t -> Some t) types) in let non_consts = match rep with @@ -1107,11 +1132,17 @@ let report_error ppf = function fprintf ppf "Unboxed vector types are not yet supported in arrays of unboxed@ \ products." - | Mixed_product_array const -> + | Mixed_product_array (const, elt_ty) -> fprintf ppf - "Unboxed product array elements must be external or contain all gc@ \ - scannable types. The product type this function is applied at is@ \ - not external but contains an element of sort %a." + "An unboxed product array element must be formed from all@ \ + external types (which are ignored by the gc) or all gc-scannable \ + types.@ But this array operation is peformed for an array whose@ \ + element type is %a, which is an unboxed product@ \ + that is not external and contains a type with the non-scannable@ \ + layout %a.@ \ + @[Hint: if the array contents should not be scanned, annotating@ \ + contained abstract types as [mod external] may resolve this error.@]" + Printtyp.type_expr elt_ty Jkind.Sort.Const.format const | Product_iarrays_unsupported -> fprintf ppf diff --git a/upstream/ocaml_flambda/typing/types.ml b/upstream/ocaml_flambda/typing/types.ml index 92db7d2b9..bffb35b53 100644 --- a/upstream/ocaml_flambda/typing/types.ml +++ b/upstream/ocaml_flambda/typing/types.ml @@ -35,8 +35,11 @@ module Jkind_mod_bounds = struct module Portability = Mode.Portability.Const module Contention = Mode.Contention.Const_op module Yielding = Mode.Yielding.Const + module Statefulness = Mode.Statefulness.Const + module Visibility = Mode.Visibility.Const_op module Externality = Jkind_axis.Externality module Nullability = Jkind_axis.Nullability + module Separability = Jkind_axis.Separability type t = { locality: Locality.t; @@ -45,8 +48,11 @@ module Jkind_mod_bounds = struct portability: Portability.t; contention: Contention.t; yielding: Yielding.t; + statefulness: Statefulness.t; + visibility: Visibility.t; externality: Externality.t; nullability: Nullability.t; + separability: Separability.t; } let[@inline] locality t = t.locality @@ -55,8 +61,11 @@ module Jkind_mod_bounds = struct let[@inline] portability t = t.portability let[@inline] contention t = t.contention let[@inline] yielding t = t.yielding + let[@inline] statefulness t = t.statefulness + let[@inline] visibility t = t.visibility let[@inline] externality t = t.externality let[@inline] nullability t = t.nullability + let[@inline] separability t = t.separability let[@inline] create ~locality @@ -65,8 +74,11 @@ module Jkind_mod_bounds = struct ~portability ~contention ~yielding + ~statefulness + ~visibility ~externality - ~nullability = + ~nullability + ~separability = { locality; linearity; @@ -74,8 +86,11 @@ module Jkind_mod_bounds = struct portability; contention; yielding; + statefulness; + visibility; externality; nullability; + separability; } let[@inline] set_locality locality t = { t with locality } @@ -84,8 +99,11 @@ module Jkind_mod_bounds = struct let[@inline] set_portability portability t = { t with portability } let[@inline] set_contention contention t = { t with contention } let[@inline] set_yielding yielding t = { t with yielding } + let[@inline] set_statefulness statefulness t = { t with statefulness } + let[@inline] set_visibility visibility t = { t with visibility } let[@inline] set_externality externality t = { t with externality } let[@inline] set_nullability nullability t = { t with nullability } + let[@inline] set_separability separability t = { t with separability } let[@inline] set_max_in_set t max_axes = let open Jkind_axis.Axis_set in @@ -121,6 +139,16 @@ module Jkind_mod_bounds = struct then Yielding.max else t.yielding in + let statefulness = + if mem max_axes (Modal (Comonadic Statefulness)) + then Statefulness.max + else t.statefulness + in + let visibility = + if mem max_axes (Modal (Monadic Visibility)) + then Visibility.max + else t.visibility + in let externality = if mem max_axes (Nonmodal Externality) then Externality.max @@ -131,6 +159,11 @@ module Jkind_mod_bounds = struct then Nullability.max else t.nullability in + let separability = + if mem max_axes (Nonmodal Separability) + then Separability.max + else t.separability + in { locality; linearity; @@ -138,8 +171,11 @@ module Jkind_mod_bounds = struct portability; contention; yielding; + statefulness; + visibility; externality; nullability; + separability; } let[@inline] set_min_in_set t min_axes = @@ -176,6 +212,16 @@ module Jkind_mod_bounds = struct then Yielding.min else t.yielding in + let statefulness = + if mem min_axes (Modal (Comonadic Statefulness)) + then Statefulness.min + else t.statefulness + in + let visibility = + if mem min_axes (Modal (Monadic Visibility)) + then Visibility.min + else t.visibility + in let externality = if mem min_axes (Nonmodal Externality) then Externality.min @@ -186,15 +232,23 @@ module Jkind_mod_bounds = struct then Nullability.min else t.nullability in + let separability = + if mem min_axes (Nonmodal Separability) + then Separability.min + else t.separability + in { locality; linearity; uniqueness; portability; contention; + statefulness; + visibility; yielding; externality; nullability; + separability; } let[@inline] is_max_within_set t axes = @@ -211,10 +265,16 @@ module Jkind_mod_bounds = struct Contention.(le max (contention t))) && (not (mem axes (Modal (Comonadic Yielding))) || Yielding.(le max (yielding t))) && + (not (mem axes (Modal (Comonadic Statefulness))) || + Statefulness.(le max (statefulness t))) && + (not (mem axes (Modal (Monadic Visibility))) || + Visibility.(le max (visibility t))) && (not (mem axes (Nonmodal Externality)) || Externality.(le max (externality t))) && (not (mem axes (Nonmodal Nullability)) || - Nullability.(le max (nullability t))) + Nullability.(le max (nullability t))) && + (not (mem axes (Nonmodal Separability)) || + Separability.(le max (separability t))) let[@inline] is_max = function | { locality = Local; @@ -223,8 +283,11 @@ module Jkind_mod_bounds = struct portability = Portable; contention = Uncontended; yielding = Yielding; + statefulness = Stateful; + visibility = Read_write; externality = External; - nullability = Maybe_null } -> true + nullability = Maybe_null; + separability = Maybe_separable } -> true | _ -> false let debug_print ppf @@ -234,19 +297,26 @@ module Jkind_mod_bounds = struct portability; contention; yielding; + statefulness; + visibility; externality; - nullability } = + nullability; + separability } = Format.fprintf ppf "@[{ locality = %a;@ linearity = %a;@ uniqueness = %a;@ \ - portability = %a;@ contention = %a;@ yielding = %a;@ externality = %a;@ \ - nullability = %a }@]" + portability = %a;@ contention = %a;@ yielding = %a;@ statefulness = %a;@ \ + visibility = %a;@ externality = %a;@ \ + nullability = %a;@ separability = %a }@]" Locality.print locality Linearity.print linearity Uniqueness.print uniqueness Portability.print portability Contention.print contention Yielding.print yielding + Statefulness.print statefulness + Visibility.print visibility Externality.print externality Nullability.print nullability + Separability.print separability end @@ -277,6 +347,7 @@ and type_desc = | Tunivar of { name : string option; jkind : jkind_lr } | Tpoly of type_expr * type_expr list | Tpackage of Path.t * (Longident.t * type_expr) list + | Tof_kind of jkind_lr and arg_label = | Nolabel @@ -294,7 +365,11 @@ and row_desc = row_fixed: fixed_explanation option; row_name: (Path.t * type_expr list) option } and fixed_explanation = - | Univar of type_expr | Fixed_private | Reified of Path.t | Rigid + | Univar of type_expr + | Fixed_private + | Reified of Path.t + | Rigid + | Fixed_existential and row_field = [`some] row_field_gen and _ row_field_gen = RFpresent : type_expr option -> [> `some] row_field_gen @@ -365,6 +440,7 @@ and 'd jkind = annotation : Parsetree.jkind_annotation option; history : jkind_history; has_warned : bool; + ran_out_of_fuel_during_normalize : bool; quality : 'd jkind_quality; } constraint 'd = 'l * 'r @@ -571,6 +647,7 @@ and mixed_block_element = | Bits64 | Vec128 | Word + | Product of mixed_product_shape and mixed_product_shape = mixed_block_element array @@ -887,19 +964,24 @@ let compare_tag t1 t2 = | Extension _, Null -> -1 | Null, Extension _ -> 1 -let equal_mixed_block_element e1 e2 = +let rec equal_mixed_block_element e1 e2 = match e1, e2 with | Value, Value | Float64, Float64 | Float32, Float32 | Float_boxed, Float_boxed | Word, Word | Bits32, Bits32 | Bits64, Bits64 | Vec128, Vec128 -> true - | (Value | Float64 | Float32 | Float_boxed | Word | Bits32 | Bits64 | Vec128), _ + | Product es1, Product es2 + -> Misc.Stdlib.Array.equal equal_mixed_block_element es1 es2 + | ( Value | Float64 | Float32 | Float_boxed | Word | Bits32 | Bits64 | Vec128 + | Product _ ), _ -> false -let compare_mixed_block_element e1 e2 = +let rec compare_mixed_block_element e1 e2 = match e1, e2 with | Value, Value | Float_boxed, Float_boxed | Float64, Float64 | Float32, Float32 | Word, Word | Bits32, Bits32 | Bits64, Bits64 | Vec128, Vec128 -> 0 + | Product es1, Product es2 + -> Misc.Stdlib.Array.compare compare_mixed_block_element es1 es2 | Value, _ -> -1 | _, Value -> 1 | Float_boxed, _ -> -1 @@ -914,6 +996,8 @@ let compare_mixed_block_element e1 e2 = | _, Bits32 -> 1 | Vec128, _ -> -1 | _, Vec128 -> 1 + | Product _, _ -> -1 + | _, Product _ -> 1 let equal_mixed_product_shape r1 r2 = r1 == r2 || Misc.Stdlib.Array.equal equal_mixed_block_element r1 r2 @@ -1056,7 +1140,7 @@ let signature_item_id = function | Sig_class_type (id, _, _, _) -> id -let mixed_block_element_to_string = function +let rec mixed_block_element_to_string = function | Value -> "Value" | Float_boxed -> "Float_boxed" | Float32 -> "Float32" @@ -1065,6 +1149,11 @@ let mixed_block_element_to_string = function | Bits64 -> "Bits64" | Vec128 -> "Vec128" | Word -> "Word" + | Product es -> + "Product [" + ^ (String.concat ", " + (Array.to_list (Array.map mixed_block_element_to_string es))) + ^ "]" let mixed_block_element_to_lowercase_string = function | Value -> "value" @@ -1075,6 +1164,11 @@ let mixed_block_element_to_lowercase_string = function | Bits64 -> "bits64" | Vec128 -> "vec128" | Word -> "word" + | Product es -> + "product [" + ^ (String.concat ", " + (Array.to_list (Array.map mixed_block_element_to_string es))) + ^ "]" (**** Definitions for backtracking ****) @@ -1195,7 +1289,7 @@ module Transient_expr = struct match ty.desc with | Tvar { name; _ } -> set_desc ty (Tvar { name; jkind = jkind' }) - | _ -> assert false + | _ -> Misc.fatal_error "set_var_jkind called on non-var" let coerce ty = ty let repr = repr let type_expr ty = ty @@ -1260,6 +1354,7 @@ let best_effort_compare_type_expr te1 te2 = | Tunboxed_tuple _ -> 3 | Tconstr (_, _, _) -> 5 | Tpoly (_, _) -> 6 + | Tof_kind _ -> 7 (* Types we should never see *) | Tlink _ -> Misc.fatal_error "Tlink encountered in With_bounds_types" in diff --git a/upstream/ocaml_flambda/typing/types.mli b/upstream/ocaml_flambda/typing/types.mli index 1cc7732e0..fb43ef1fe 100644 --- a/upstream/ocaml_flambda/typing/types.mli +++ b/upstream/ocaml_flambda/typing/types.mli @@ -76,8 +76,11 @@ module Jkind_mod_bounds : sig module Portability = Mode.Portability.Const module Contention = Mode.Contention.Const_op module Yielding = Mode.Yielding.Const + module Statefulness = Mode.Statefulness.Const + module Visibility = Mode.Visibility.Const_op module Externality = Jkind_axis.Externality module Nullability = Jkind_axis.Nullability + module Separability = Jkind_axis.Separability type t @@ -88,8 +91,11 @@ module Jkind_mod_bounds : sig portability:Portability.t -> contention:Contention.t -> yielding:Yielding.t -> + statefulness:Statefulness.t -> + visibility:Visibility.t -> externality:Externality.t -> nullability:Nullability.t -> + separability:Separability.t -> t val locality : t -> Locality.t @@ -98,8 +104,11 @@ module Jkind_mod_bounds : sig val portability : t -> Portability.t val contention : t -> Contention.t val yielding : t -> Yielding.t + val statefulness : t -> Statefulness.t + val visibility : t -> Visibility.t val externality : t -> Externality.t val nullability : t -> Nullability.t + val separability : t -> Separability.t val set_locality : Locality.t -> t -> t val set_linearity : Linearity.t -> t -> t @@ -107,8 +116,11 @@ module Jkind_mod_bounds : sig val set_portability : Portability.t -> t -> t val set_contention : Contention.t -> t -> t val set_yielding : Yielding.t -> t -> t + val set_statefulness : Statefulness.t -> t -> t + val set_visibility : Visibility.t -> t -> t val set_externality : Externality.t -> t -> t val set_nullability : Nullability.t -> t -> t + val set_separability : Separability.t -> t -> t (** [set_max_in_set bounds axes] sets all the axes in [axes] to their [max] within [bounds] *) @@ -226,6 +238,15 @@ and type_desc = | Tpackage of Path.t * (Longident.t * type_expr) list (** Type of a first-class module (a.k.a package). *) + | Tof_kind of jkind_lr + (** [Tof_kind jkind] ==> [(type : jkind)] + + The "canonical" type of a particular kind. + + These types are uninhabited, and any appearing in translation will cause an error. + They are only used to represent the kinds of existentially-quantified types + mentioned in with-bounds. See test typing-jkind-bounds/gadt.ml *) + (** This is used in the Typedtree. It is distinct from {{!Asttypes.arg_label}[arg_label]} because Position argument labels are discovered through typechecking. *) @@ -240,11 +261,15 @@ and arrow_desc = +(** See also documentation for [row_more], which enumerates how these + constructors arise. *) and fixed_explanation = | Univar of type_expr (** The row type was bound to an univar *) | Fixed_private (** The row type is private *) | Reified of Path.t (** The row was reified *) | Rigid (** The row type was made rigid during constraint verification *) + | Fixed_existential (** The row type is existential in a with-bound. + See Note [With-bounds for GADTs] in Jkind. *) (** [abbrev_memo] allows one to keep track of different expansions of a type alias. This is done for performance purposes. @@ -354,6 +379,7 @@ and 'd jkind = annotation : Parsetree.jkind_annotation option; history : jkind_history; has_warned : bool; + ran_out_of_fuel_during_normalize : bool; quality : 'd jkind_quality; } constraint 'd = 'l * 'r @@ -514,9 +540,57 @@ val create_row: name:(Path.t * type_expr list) option -> row_desc val row_fields: row_desc -> (label * row_field) list + +(** [row_more] returns a [type_expr] with one of the following [type_desc]s + (also described with the return from [row_fixed], which varies similarly): + + * [Tvar]: This is a row variable; it would occur in e.g. [val f : + [> `A | `B] -> int]. When/if we learn more about a polymorphic variant, this + variable might get unified with one of the other [type_desc]s listed here, + or a [Tvariant] that represents a new set of constructors to add to the row. + + During [constraint] checking (toward the end of checking a type declaration, + in [Typedecl.check_constraints_rec]) we [Ctype.rigidify] a type to make it + so that its unification variables will not unify. When a [Tvar] row variable + is rigidified, its [fixed_explanation] will be [Rigid]. + + * [Tunivar]: This is a universally quantified row variable; it would occur + in e.g. [type t = { f : 'a. ([> `A | `B ] as 'a) -> int }]. A [Tunivar] has + a [fixed_explanation] of [Univar]. + + * [Tconstr]: There are two possible ways this can happen: + + 1. This is an abstract [#row] type created by a [private] row type, as in + [type t = private [> `A | `B]]. In this case, the [fixed_explanation] will + be [Fixed_private]. + + 2. This is a locally abstract type created by [Ctype.reify], which happens + when a row variable is free in the type of the scrutinee in a GADT pattern + match. The [fixed_explanation] will be [Reified]. Note that any manifest + of a reified row variable is actually ignored by [row_repr]; this causes + some incompletness in type inference. + + * [Tnil]: Used to denote a static polymorphic variant (with no [>] or [<]). + + * [Tof_kind]: See Wrinkle BW2 in Note [With-bounds for GADTs] in Jkind. + Briefly, [Tof_kind] can appear as a [row_more] when computing the kind + of a GADT with an existentially-bound row variable. The [fixed_explanation] + will be [Fixed_existential]. + + ---------------------------------------- + + It is an invariant that row variables are never shared between different + types. That is, if [row_more row1 == row_more row2], then [row1] and [row2] + come from structurally identical [Tvariant]s (but they might not be + physically equal). When copying types, two types with the same [row_more] + field are replaced by the same copy. +*) val row_more: row_desc -> type_expr val row_closed: row_desc -> bool + +(** See documentation for [row_more]. *) val row_fixed: row_desc -> fixed_explanation option + val row_name: row_desc -> (Path.t * type_expr list) option val set_row_name: row_desc -> (Path.t * type_expr list) option -> row_desc @@ -752,6 +826,8 @@ and mixed_block_element = | Bits64 | Vec128 | Word + | Product of mixed_product_shape + (* Invariant: the array has at least two things in it. *) and mixed_product_shape = mixed_block_element array diff --git a/upstream/ocaml_flambda/typing/typetexp.ml b/upstream/ocaml_flambda/typing/typetexp.ml index 7c38f474b..88f19da23 100644 --- a/upstream/ocaml_flambda/typing/typetexp.ml +++ b/upstream/ocaml_flambda/typing/typetexp.ml @@ -1066,6 +1066,10 @@ and transl_type_aux env ~row_context ~aliased ~policy mode styp = in let cty = transl_type new_env ~policy ~row_context mode t in ctyp (Ttyp_open (path, mod_ident, cty)) cty.ctyp_type + | Ptyp_of_kind jkind -> + let tjkind = jkind_of_annotation (Type_of_kind loc) styp.ptyp_attributes jkind in + let ty = newty (Tof_kind tjkind) in + ctyp (Ttyp_of_kind jkind) ty | Ptyp_extension ext -> raise (Error_forward (Builtin_attributes.error_of_extension ext)) diff --git a/upstream/ocaml_flambda/typing/uniqueness_analysis.ml b/upstream/ocaml_flambda/typing/uniqueness_analysis.ml index 193db4a0d..e6aaf2b99 100644 --- a/upstream/ocaml_flambda/typing/uniqueness_analysis.ml +++ b/upstream/ocaml_flambda/typing/uniqueness_analysis.ml @@ -1532,20 +1532,14 @@ end = struct let child proj t = List.map (UF.Path.child proj) t - let modal_child gf proj t = + let modal_child modalities proj t = (* CR zqian: Instead of just ignoring such children, we should add modality to [Projection.t] and add corresponding logic in [UsageTree]. *) - let gf = Modality.Value.Const.to_list gf in - let l = - List.filter - (function - | Atom (Monadic Uniqueness, Join_with Aliased) -> true - | Atom (Comonadic Linearity, Meet_with Many) -> true - | _ -> false - : Modality.t -> _) - gf - in - if List.length l = 2 then untracked else child proj t + let uni = Modality.Value.Const.proj (Monadic Uniqueness) modalities in + let lin = Modality.Value.Const.proj (Comonadic Linearity) modalities in + match uni, lin with + | Join_with Aliased, Meet_with Many -> untracked + | _ -> child proj t let tuple_field i t = child (Projection.Tuple_field i) t @@ -1560,7 +1554,7 @@ end = struct let variant_field s t = child (Projection.Variant_field s) t let array_index mut i t = - let modality = Typemode.transl_modalities ~maturity:Stable mut [] [] in + let modality = Typemode.transl_modalities ~maturity:Stable mut [] in modal_child modality (Projection.Array_index i) t let memory_address t = child Projection.Memory_address t @@ -2236,7 +2230,7 @@ let rec check_uniqueness_exp ~overwrite (ienv : Ienv.t) exp : UF.t = let value, uf_ext = match extended_expression with | None -> Value.fresh, UF.unused - | Some (exp, unique_barrier) -> + | Some (exp, _, unique_barrier) -> let value, uf_exp = check_uniqueness_exp_as_value ienv exp in Unique_barrier.enable unique_barrier; let uf_read = @@ -2426,7 +2420,7 @@ and check_uniqueness_exp_as_value ienv exp : Value.t * UF.t = | Some value -> value in value, UF.unused - | Texp_field (e, _, l, float, unique_barrier) -> ( + | Texp_field (e, _, _, l, float, unique_barrier) -> ( let value, uf = check_uniqueness_exp_as_value ienv e in match Value.paths value with | None -> diff --git a/upstream/ocaml_flambda/typing/untypeast.ml b/upstream/ocaml_flambda/typing/untypeast.ml index 0df216b27..9c4544536 100644 --- a/upstream/ocaml_flambda/typing/untypeast.ml +++ b/upstream/ocaml_flambda/typing/untypeast.ml @@ -253,7 +253,7 @@ let type_kind sub tk = match tk with let constructor_argument sub {ca_loc; ca_type; ca_modalities} = let loc = sub.location sub ca_loc in - let pca_modalities = Typemode.untransl_modalities Immutable [] ca_modalities in + let pca_modalities = Typemode.untransl_modalities Immutable ca_modalities in { pca_loc = loc; pca_type = sub.typ sub ca_type; pca_modalities } let constructor_arguments sub = function @@ -274,19 +274,18 @@ let mutable_ (mut : Types.mutability) : mutable_flag = match mut with | Immutable -> Immutable | Mutable m -> - if Mode.Alloc.Comonadic.Const.eq m Mode.Alloc.Comonadic.Const.legacy then + let open Mode.Alloc.Comonadic.Const in + if Misc.Le_result.equal ~le m legacy then Mutable else - Misc.fatal_errorf "unexpected mutable(%a)" - Mode.Alloc.Comonadic.Const.print m + Misc.fatal_errorf "unexpected mutable(%a)" print m let label_declaration sub ld = let loc = sub.location sub ld.ld_loc in let attrs = sub.attributes sub ld.ld_attributes in let mut = mutable_ ld.ld_mutable in let modalities = - Typemode.untransl_modalities ld.ld_mutable ld.ld_attributes - ld.ld_modalities + Typemode.untransl_modalities ld.ld_mutable ld.ld_modalities in Type.field ~loc ~attrs ~mut ~modalities (map_loc sub ld.ld_name) @@ -423,7 +422,7 @@ let exp_extra sub (extra, loc, attrs) sexp = Pexp_newtype (label_loc, jkind, sexp) | Texp_stack -> Pexp_stack sexp | Texp_mode modes -> - Pexp_constraint (sexp, None, Typemode.untransl_mode_annots ~loc modes) + Pexp_constraint (sexp, None, Typemode.untransl_mode_annots modes) in Exp.mk ~loc ~attrs desc @@ -587,7 +586,7 @@ let expression sub exp = | _, Overridden (lid, exp) -> (lid, sub.expr sub exp) :: l) [] fields in - Pexp_record (list, Option.map (fun (exp, _) -> sub.expr sub exp) + Pexp_record (list, Option.map (fun (exp, _, _) -> sub.expr sub exp) extended_expression) | Texp_record_unboxed_product { fields; extended_expression; _ } -> let list = Array.fold_left (fun l -> function @@ -598,7 +597,7 @@ let expression sub exp = Pexp_record_unboxed_product (list, Option.map (fun (exp, _) -> sub.expr sub exp) extended_expression) - | Texp_field (exp, lid, _label, _, _) -> + | Texp_field (exp, _sort, lid, _label, _, _) -> Pexp_field (sub.expr sub exp, map_loc sub lid) | Texp_unboxed_field (exp, _, lid, _label, _) -> Pexp_unboxed_field (sub.expr sub exp, map_loc sub lid) @@ -743,7 +742,7 @@ let module_type_declaration sub mtd = let signature sub {sig_items; sig_modalities; sig_sloc} = let psg_items = List.map (sub.signature_item sub) sig_items in - let psg_modalities = Typemode.untransl_modalities Immutable [] sig_modalities in + let psg_modalities = Typemode.untransl_modalities Immutable sig_modalities in let psg_loc = sub.location sub sig_sloc in {psg_items; psg_modalities; psg_loc} @@ -774,7 +773,7 @@ let signature_item sub item = | Tsig_open od -> Psig_open (sub.open_description sub od) | Tsig_include (incl, moda) -> - let pmoda = Typemode.untransl_modalities Immutable [] moda in + let pmoda = Typemode.untransl_modalities Immutable moda in Psig_include (sub.include_description sub incl, pmoda) | Tsig_class list -> Psig_class (List.map (sub.class_description sub) list) @@ -1006,6 +1005,7 @@ let core_type sub ct = Ptyp_poly (bound_vars, sub.typ sub ct) | Ttyp_package pack -> Ptyp_package (sub.package_type sub pack) | Ttyp_open (_path, mod_ident, t) -> Ptyp_open (mod_ident, sub.typ sub t) + | Ttyp_of_kind jkind -> Ptyp_of_kind jkind | Ttyp_call_pos -> Ptyp_extension call_pos_extension in diff --git a/upstream/ocaml_flambda/typing/value_rec_check.ml b/upstream/ocaml_flambda/typing/value_rec_check.ml index dc50390de..c27f9c370 100644 --- a/upstream/ocaml_flambda/typing/value_rec_check.ml +++ b/upstream/ocaml_flambda/typing/value_rec_check.ml @@ -743,7 +743,8 @@ let rec expression : Typedtree.expression -> term_judg = | Constructor_mixed mixed_shape -> (match mixed_shape.(i) with | Value | Float_boxed -> Guard - | Float64 | Float32 | Bits32 | Bits64 | Vec128 | Word -> + | Float64 | Float32 | Bits32 | Bits64 | Vec128 | Word + | Product _ -> Dereference)) in let arg i e = expression e << arg_mode i in @@ -769,7 +770,8 @@ let rec expression : Typedtree.expression -> term_judg = | Record_mixed mixed_shape -> (match mixed_shape.(i) with | Value | Float_boxed -> Guard - | Float64 | Float32 | Bits32 | Bits64 | Vec128 | Word -> + | Float64 | Float32 | Bits32 | Bits64 | Vec128 | Word + | Product _ -> Dereference) in let field (label, field_def) = @@ -782,7 +784,7 @@ let rec expression : Typedtree.expression -> term_judg = in join [ array field es; - option expression (Option.map fst eo) << Dereference + option expression (Option.map Misc.fst3 eo) << Dereference ] | Texp_record_unboxed_product { fields = es; extended_expression = eo; representation = rep } -> @@ -865,7 +867,7 @@ let rec expression : Typedtree.expression -> term_judg = join [ expression e1 << Dereference ] - | Texp_field (e, _, _, _, _) -> + | Texp_field (e, _, _, _, _, _) -> (* G |- e: m[Dereference] ----------------------- diff --git a/upstream/ocaml_flambda/utils/clflags.ml b/upstream/ocaml_flambda/utils/clflags.ml index d45417c9c..837151df7 100644 --- a/upstream/ocaml_flambda/utils/clflags.ml +++ b/upstream/ocaml_flambda/utils/clflags.ml @@ -44,14 +44,6 @@ and dllibs = ref ([] : string list) (* .so and -dllib -lxxx *) let cmi_file = ref None -module Libloc = struct - type t = { - path: string; - libs: string list; - hidden_libs: string list - } -end - type profile_column = [ `Time | `Alloc | `Top_heap | `Abs_top_heap | `Counters ] type profile_granularity_level = File_level | Function_level | Block_level type flambda_invariant_checks = No_checks | Light_checks | Heavy_checks @@ -59,8 +51,9 @@ type flambda_invariant_checks = No_checks | Light_checks | Heavy_checks let compile_only = ref false (* -c *) and output_name = ref (None : string option) (* -o *) and include_dirs = ref ([] : string list) (* -I *) -and libloc = ref ([] : Libloc.t list) (* -libloc *) and hidden_include_dirs = ref ([] : string list) (* -H *) +and include_paths_files = ref ([] : string list) (* -I-paths *) +and hidden_include_paths_files = ref ([] : string list) (* -H-paths *) and no_std_include = ref false (* -nostdlib *) and no_cwd = ref false (* -nocwd *) and print_types = ref false (* -i *) @@ -129,6 +122,7 @@ and dump_typedtree = ref false (* -dtypedtree *) and dump_shape = ref false (* -dshape *) and dump_rawlambda = ref false (* -drawlambda *) and dump_lambda = ref false (* -dlambda *) +and dump_blambda = ref false (* -dblambda *) and dump_letreclambda = ref false (* -dletreclambda *) and dump_rawclambda = ref false (* -drawclambda *) and dump_clambda = ref false (* -dclambda *) @@ -457,7 +451,7 @@ let error_style_reader = { let unboxed_types = ref false -(* This is used by the -save-ir-after option. *) +(* This is used by the -save-ir-after and -save-ir-before options. *) module Compiler_ir = struct type t = Linear | Cfg @@ -547,6 +541,7 @@ module Compiler_pass = struct *) type t = Parsing | Typing | Lambda | Middle_end | Linearization | Emit | Simplify_cfg | Selection + | Register_allocation let to_string = function | Parsing -> "parsing" @@ -557,6 +552,7 @@ module Compiler_pass = struct | Emit -> "emit" | Simplify_cfg -> "simplify_cfg" | Selection -> "selection" + | Register_allocation -> "register_allocation" let of_string = function | "parsing" -> Some Parsing @@ -567,6 +563,7 @@ module Compiler_pass = struct | "emit" -> Some Emit | "simplify_cfg" -> Some Simplify_cfg | "selection" -> Some Selection + | "register_allocation" -> Some Register_allocation | _ -> None let rank = function @@ -575,6 +572,7 @@ module Compiler_pass = struct | Lambda -> 2 | Middle_end -> 3 | Selection -> 20 + | Register_allocation -> 30 | Simplify_cfg -> 49 | Linearization -> 50 | Emit -> 60 @@ -588,6 +586,7 @@ module Compiler_pass = struct Emit; Simplify_cfg; Selection; + Register_allocation; ] let is_compilation_pass _ = true let is_native_only = function @@ -596,6 +595,7 @@ module Compiler_pass = struct | Emit -> true | Simplify_cfg -> true | Selection -> true + | Register_allocation -> true | Parsing | Typing | Lambda -> false let enabled is_native t = not (is_native_only t) || is_native @@ -603,6 +603,12 @@ module Compiler_pass = struct | Linearization -> true | Simplify_cfg -> true | Selection -> true + | Register_allocation -> false + | Parsing | Typing | Lambda | Middle_end | Emit -> false + + let can_save_ir_before = function + | Register_allocation -> true + | Linearization | Simplify_cfg | Selection | Parsing | Typing | Lambda | Middle_end | Emit -> false let available_pass_names ~filter ~native = @@ -619,6 +625,7 @@ module Compiler_pass = struct | Linearization -> prefix ^ Compiler_ir.(extension Linear) | Simplify_cfg -> prefix ^ Compiler_ir.(extension Cfg) | Selection -> prefix ^ Compiler_ir.(extension Cfg) ^ "-sel" + | Register_allocation -> prefix ^ Compiler_ir.(extension Cfg) ^ "-regalloc" | Emit | Parsing | Typing | Lambda | Middle_end -> Misc.fatal_error "Not supported" let of_input_filename name = @@ -638,19 +645,29 @@ let should_stop_after pass = | Some stop -> Compiler_pass.rank stop <= Compiler_pass.rank pass let save_ir_after = ref [] +let save_ir_before = ref [] let should_save_ir_after pass = List.mem pass !save_ir_after -let set_save_ir_after pass enabled = - let other_passes = List.filter ((<>) pass) !save_ir_after in +let should_save_ir_before pass = + List.mem pass !save_ir_before + +let set_save_ir ref pass enabled = + let other_passes = List.filter ((<>) pass) !ref in let new_passes = if enabled then pass :: other_passes else other_passes in - save_ir_after := new_passes + ref := new_passes + +let set_save_ir_after pass enabled = + set_save_ir save_ir_after pass enabled + +let set_save_ir_before pass enabled = + set_save_ir save_ir_before pass enabled module String = Misc.Stdlib.String diff --git a/upstream/ocaml_flambda/utils/clflags.mli b/upstream/ocaml_flambda/utils/clflags.mli index 8b4fca2c3..120079f22 100644 --- a/upstream/ocaml_flambda/utils/clflags.mli +++ b/upstream/ocaml_flambda/utils/clflags.mli @@ -51,14 +51,6 @@ val set_int_arg : val set_float_arg : int option -> Float_arg_helper.parsed ref -> float -> float option -> unit -module Libloc : sig - type t = { - path: string; - libs: string list; - hidden_libs: string list - } -end - type profile_column = [ `Time | `Alloc | `Top_heap | `Abs_top_heap | `Counters ] type profile_granularity_level = File_level | Function_level | Block_level type flambda_invariant_checks = No_checks | Light_checks | Heavy_checks @@ -70,8 +62,9 @@ val cmi_file : string option ref val compile_only : bool ref val output_name : string option ref val include_dirs : string list ref -val libloc : Libloc.t list ref val hidden_include_dirs : string list ref +val include_paths_files : string list ref +val hidden_include_paths_files : string list ref val no_std_include : bool ref val no_cwd : bool ref val print_types : bool ref @@ -140,6 +133,7 @@ val dump_typedtree : bool ref val dump_shape : bool ref val dump_rawlambda : bool ref val dump_lambda : bool ref +val dump_blambda : bool ref val dump_letreclambda : bool ref val dump_rawclambda : bool ref val dump_clambda : bool ref @@ -271,11 +265,13 @@ end module Compiler_pass : sig type t = Parsing | Typing | Lambda | Middle_end | Linearization | Emit | Simplify_cfg | Selection + | Register_allocation val of_string : string -> t option val to_string : t -> string val is_compilation_pass : t -> bool val available_pass_names : filter:(t -> bool) -> native:bool -> string list val can_save_ir_after : t -> bool + val can_save_ir_before : t -> bool val compare : t -> t -> int val to_output_filename: t -> prefix:string -> string val of_input_filename: string -> t option @@ -283,7 +279,9 @@ end val stop_after : Compiler_pass.t option ref val should_stop_after : Compiler_pass.t -> bool val set_save_ir_after : Compiler_pass.t -> bool -> unit +val set_save_ir_before : Compiler_pass.t -> bool -> unit val should_save_ir_after : Compiler_pass.t -> bool +val should_save_ir_before : Compiler_pass.t -> bool val is_flambda2 : unit -> bool diff --git a/upstream/ocaml_flambda/utils/compilation_unit.ml b/upstream/ocaml_flambda/utils/compilation_unit.ml index a172da7ab..fee34feac 100644 --- a/upstream/ocaml_flambda/utils/compilation_unit.ml +++ b/upstream/ocaml_flambda/utils/compilation_unit.ml @@ -23,7 +23,7 @@ module String = Misc.Stdlib.String type error = | Invalid_character of char * string | Bad_compilation_unit_name of string - | Child_of_instance of { child_name : string } + | Child_of_instance of { parent_name : string } | Packed_instance of { name : string } | Already_an_instance of { name : string } @@ -44,10 +44,12 @@ module Name : sig val of_head_of_global_name : Global_module.Name.t -> t - val of_global_name_no_args_exn : Global_module.Name.t -> t + val of_parameter_name : Global_module.Parameter_name.t -> t val to_global_name : t -> Global_module.Name.t + val to_parameter_name : t -> Global_module.Parameter_name.t + val check_as_path_component : t -> unit end = struct (* Be VERY careful changing this. Anything not equivalent to [string] will @@ -80,20 +82,13 @@ end = struct let of_head_of_global_name (name : Global_module.Name.t) = of_string name.head - let of_global_name_no_args_exn (name : Global_module.Name.t) = - match name.args with - | [] -> of_head_of_global_name name - | _ -> - (* This is a wart. We should have a separate type - [Global_module.Parameter_name.t] that is known not to have arguments, - and then we can convert without runtime checks here. Note that we can't - actually be specific in this message about why the thing isn't supposed - to have arguments. *) - Misc.fatal_errorf "Arguments not allowed in name:@ %a" - Global_module.Name.print name + let of_parameter_name (name : Global_module.Parameter_name.t) = + of_string (Global_module.Parameter_name.to_string name) let to_global_name t = Global_module.Name.create_no_args t + let to_parameter_name t = Global_module.Parameter_name.of_string t + (* This is so called (and separate from [of_string]) because we only want to check a name if it has a prefix. In particular, this allows single-module executables to have names like ".cinaps" that aren't valid module names. *) @@ -190,7 +185,7 @@ module T0 : sig } and argument = - { param : t; + { param : Name.t; value : t } @@ -227,7 +222,7 @@ end = struct } and argument = - { param : t; + { param : Name.t; value : t } @@ -261,7 +256,7 @@ end = struct let convert_arguments l = ListLabels.map ~f:(fun ({ param; value } : Global_module.Name.argument) -> - { param = of_global_name param; value = of_global_name value }) + { param = Name.of_parameter_name param; value = of_global_name value }) l let descr t = @@ -341,10 +336,10 @@ end = struct and compare_instance_arg { param = param1; value = value1 } { param = param2; value = value2 } = - let c = compare param1 param2 in + let c = Name.compare param1 param2 in if c <> 0 then c else compare value1 value2 - let compare_argument_by_name arg1 arg2 = compare arg1.param arg2.param + let compare_argument_by_name arg1 arg2 = Name.compare arg1.param arg2.param let to_global_name_exn t = if is_plain_name t @@ -403,7 +398,7 @@ end = struct let arguments = ListLabels.map ~f:(fun { param; value } : Global_module.Name.argument -> - { param = to_global_name_exn param; + { param = Name.to_parameter_name param; value = to_global_name_exn value }) arguments @@ -416,15 +411,18 @@ include T0 let create prefix name = create_full prefix name [] -let create_child parent name_ = +let to_prefix parent = + (* CR lmaurer: This is an obvious (and alarmingly longstanding) bug. Should be + checking the instance arguments, not the prefix. The result is that packed + packs are (I presume) currently broken. *) if not (Prefix.is_empty (for_pack_prefix parent)) then (* CR-someday lmaurer: Same as for [create_full] *) - raise (Error (Child_of_instance { child_name = name_ |> Name.to_string })); - let prefix = - (for_pack_prefix parent |> Prefix.to_list) @ [name parent] |> Prefix.of_list - in - create prefix name_ + raise + (Error (Child_of_instance { parent_name = name parent |> Name.to_string })); + (for_pack_prefix parent |> Prefix.to_list) @ [name parent] |> Prefix.of_list + +let create_child parent name_ = create (to_prefix parent) name_ let of_string str = let for_pack_prefix, name = @@ -476,7 +474,7 @@ include Identifiable.Make (struct ListLabels.iter ~f:(print_arg fmt) arguments and print_arg fmt { param; value } = - Format.fprintf fmt "[%a:%a]" print param print value + Format.fprintf fmt "[%a:%a]" Name.print param print value let output = Misc.output_of_print print @@ -487,7 +485,7 @@ include Identifiable.Make (struct Prefix.hash for_pack_prefix, ListLabels.map ~f:hash_arg arguments ) - and hash_arg { param; value } = Hashtbl.hash (hash param, hash value) + and hash_arg { param; value } = Hashtbl.hash (Name.hash param, hash value) end) let is_instance t = @@ -522,9 +520,8 @@ let full_path t = Prefix.to_list (for_pack_prefix t) @ [name t] let flatten t = let rec flatten_arg { param; value } ~depth = assert (not (is_packed value)); - let param_name = name param in let { name; arguments; _ } = descr value in - (depth, param_name, name) + (depth, param, name) :: ListLabels.concat_map ~f:(flatten_arg ~depth:(depth + 1)) arguments in let { for_pack_prefix; name; arguments } = descr t in @@ -637,17 +634,20 @@ let print_debug ppf t = "@[(@[(for_pack_prefix@ %a)@]@;@[(name@ %a)@]" Prefix.print for_pack_prefix Name.print name -let current = ref None +let fwd_get_current : (unit -> t option) ref = ref (fun () -> assert false) -let set_current t_opt = current := t_opt +let get_current () = !fwd_get_current () -let get_current () = !current - -let get_current_or_dummy () = Option.value !current ~default:dummy +let get_current_or_dummy () = Option.value (get_current ()) ~default:dummy let get_current_exn () = - match !current with + match get_current () with | Some t -> t | None -> Misc.fatal_error "No compilation unit set" -let is_current t = match !current with None -> false | Some t' -> equal t t' +let is_current t = + match get_current () with None -> false | Some t' -> equal t t' + +module Private = struct + let fwd_get_current = fwd_get_current +end diff --git a/upstream/ocaml_flambda/utils/compilation_unit.mli b/upstream/ocaml_flambda/utils/compilation_unit.mli index 5e4215107..348d7a15b 100644 --- a/upstream/ocaml_flambda/utils/compilation_unit.mli +++ b/upstream/ocaml_flambda/utils/compilation_unit.mli @@ -47,7 +47,7 @@ module Name : sig val of_head_of_global_name : Global_module.Name.t -> t - val of_global_name_no_args_exn : Global_module.Name.t -> t + val of_parameter_name : Global_module.Parameter_name.t -> t val to_global_name : t -> Global_module.Name.t @@ -100,12 +100,14 @@ val print_debug : Format.formatter -> t -> unit mangled in any way). *) val create : Prefix.t -> Name.t -> t -(** Create a compilation unit contained by another. Effectively uses the - parent compilation unit as the prefix. *) +(** Convert a compilation unit to a prefix. Used to form a child of a pack. *) +val to_prefix : t -> Prefix.t + +(** Combines [create] and [to_prefix]. *) val create_child : t -> Name.t -> t type argument = - { param : t; + { param : Name.t; value : t } @@ -114,26 +116,6 @@ type argument = parameter name. *) val create_instance : t -> argument list -> t -(* CR lmaurer: [of_global_name] would be better if (a) it insisted on taking a - complete instantiation (the exceptional cases mentioned are handled by other - functions) and (b) it took a [Global_module.t], which would allow it to - verify that it's complete. (For (b), we'll also want an [of_parameter] - function taking [Parameter.t] once that exists.) *) - -(** Create the compilation unit named by the given [Global_module.Name.t]. - Usually only meaningful if the global name is a _complete instantiation_, - which is to say either (a) the named module has no parameters, or (b) there - is an argument for each parameter and each argument is itself a complete - instantiation. This ensures the name determines a compile-time constant, and - then the [t] returned here is the module corresponding to that constant. - - The exception to the above is that a global name with _no_ arguments makes - sense even if the named module takes parameters, only in this case the [t] - refers to the module with the instantiating functor. This is only relevant - in two cases: when we're compiling the parameterised module itself, and - when we're instantiating it. *) -val of_global_name : Global_module.Name.t -> t - (** Convert the compilation unit to a [Global_module.Name.t], if possible (which is to say, if its prefix is empty). *) val to_global_name : t -> Global_module.Name.t option @@ -290,15 +272,13 @@ val split_instance_exn : t -> t * argument list type error = private | Invalid_character of char * string | Bad_compilation_unit_name of string - | Child_of_instance of { child_name : string } + | Child_of_instance of { parent_name : string } | Packed_instance of { name : string } | Already_an_instance of { name : string } (** The exception raised by conversion functions in this module. *) exception Error of error -val set_current : t option -> unit - val get_current : unit -> t option val get_current_or_dummy : unit -> t @@ -306,3 +286,7 @@ val get_current_or_dummy : unit -> t val get_current_exn : unit -> t val is_current : t -> bool + +module Private : sig + val fwd_get_current : (unit -> t option) ref +end diff --git a/upstream/ocaml_flambda/utils/config.mli b/upstream/ocaml_flambda/utils/config.mli index 29475ba2e..a65344b76 100644 --- a/upstream/ocaml_flambda/utils/config.mli +++ b/upstream/ocaml_flambda/utils/config.mli @@ -300,9 +300,16 @@ val runtime5 : bool val no_stack_checks : bool (** [true] if stack checks are disabled; used only if [runtime5] is [true]. *) +val multidomain : bool +(** Whether creating multiple domains is allowed. + Requires stack checks and poll insertion. *) + val tsan : bool (** Whether ThreadSanitizer instrumentation is enabled *) +val parameterised_modules : bool +(** Whether parameterised modules are supported *) + (** Access to configuration values *) val print_config : out_channel -> unit diff --git a/upstream/ocaml_flambda/utils/language_extension_kernel.ml b/upstream/ocaml_flambda/utils/language_extension_kernel.ml index 7e8ac8dad..24b0f86a4 100644 --- a/upstream/ocaml_flambda/utils/language_extension_kernel.ml +++ b/upstream/ocaml_flambda/utils/language_extension_kernel.ml @@ -18,6 +18,7 @@ type _ t = | Labeled_tuples : unit t | Small_numbers : maturity t | Instances : unit t + | Separability : unit t (* When you update this, update [pair_of_string] below too. *) let to_string : type a. a t -> string = function @@ -34,3 +35,4 @@ let to_string : type a. a t -> string = function | Labeled_tuples -> "labeled_tuples" | Small_numbers -> "small_numbers" | Instances -> "instances" + | Separability -> "separability" diff --git a/upstream/ocaml_flambda/utils/language_extension_kernel.mli b/upstream/ocaml_flambda/utils/language_extension_kernel.mli index 1fdd1c17b..75eb64703 100644 --- a/upstream/ocaml_flambda/utils/language_extension_kernel.mli +++ b/upstream/ocaml_flambda/utils/language_extension_kernel.mli @@ -29,6 +29,7 @@ type _ t = | Labeled_tuples : unit t | Small_numbers : maturity t | Instances : unit t + | Separability : unit t (** Print and parse language extensions; parsing is case-insensitive *) val to_string : _ t -> string diff --git a/upstream/ocaml_flambda/utils/load_path.ml b/upstream/ocaml_flambda/utils/load_path.ml index fff46e5d5..142e7e924 100644 --- a/upstream/ocaml_flambda/utils/load_path.ml +++ b/upstream/ocaml_flambda/utils/load_path.ml @@ -28,7 +28,7 @@ module Dir : sig val hidden : t -> bool val create : hidden:bool -> string -> t - val create_libloc : hidden:bool -> libloc:string -> string -> t + val create_from_path_list_file : hidden:bool -> path_list_file:string -> t val find : t -> string -> string option val find_normalized : t -> string -> string option @@ -80,7 +80,7 @@ end = struct |> List.map (fun basename -> { basename; path = Filename.concat path basename }) in { path; files; hidden } - let read_libloc_file path = + let read_path_list_file' path = let ic = open_in path in Misc.try_finally (fun () -> @@ -94,18 +94,20 @@ end = struct loop []) ~always:(fun () -> close_in ic) - let create_libloc ~hidden ~libloc libname = - let libloc_lib_path = Filename.concat libloc libname in - let files = read_libloc_file (Filename.concat libloc_lib_path "cmi-cmx") in - let files = List.map (fun { basename; path } -> + let read_path_list_file path = + let files = read_path_list_file' path in + List.map (fun { basename; path } -> let path = if Filename.is_relative path then - (* Paths are relative to parent directory of libloc directory *) - Filename.concat (Filename.dirname libloc) path + (* Paths are relative to parent directory of path list file *) + Filename.concat (Filename.dirname path) path else path in - { basename; path }) files in - { path = libloc_lib_path; files; hidden } + { basename; path }) files + + let create_from_path_list_file ~hidden ~path_list_file = + let files = read_path_list_file path_list_file in + { path = path_list_file; files; hidden } end type visibility = Visible | Hidden @@ -216,10 +218,16 @@ let init ~auto_include ~visible ~hidden = reset (); visible_dirs := List.rev_map (Dir.create ~hidden:false) visible; hidden_dirs := List.rev_map (Dir.create ~hidden:true) hidden; - List.iter (fun (libloc : Clflags.Libloc.t) -> - visible_dirs := Misc.rev_map_end (fun lib -> Dir.create_libloc ~hidden:false ~libloc:libloc.path lib) libloc.libs !visible_dirs; - hidden_dirs := Misc.rev_map_end (fun lib -> Dir.create_libloc ~hidden:true ~libloc:libloc.path lib) libloc.hidden_libs !hidden_dirs - ) !Clflags.libloc; + List.iter (fun path_list_file -> + visible_dirs := + Dir.create_from_path_list_file ~hidden:false ~path_list_file :: + !visible_dirs; + ) !Clflags.include_paths_files; + List.iter (fun path_list_file -> + hidden_dirs := + Dir.create_from_path_list_file ~hidden:true ~path_list_file :: + !hidden_dirs; + ) !Clflags.hidden_include_paths_files; List.iter Path_cache.prepend_add !hidden_dirs; List.iter Path_cache.prepend_add !visible_dirs; auto_include_callback := auto_include diff --git a/upstream/ocaml_flambda/utils/misc.ml b/upstream/ocaml_flambda/utils/misc.ml index a2fde2f2d..a4e09bef8 100644 --- a/upstream/ocaml_flambda/utils/misc.ml +++ b/upstream/ocaml_flambda/utils/misc.ml @@ -402,6 +402,33 @@ module Stdlib = struct let a = Array.make (1 + List.length tl) (f hd) in List.iteri (fun i x -> Array.unsafe_set a (i+1) (f x)) tl; a + + let concat_arrays : 'a array array -> 'a array = fun arrays -> + (* CR-soon xclerc for xclerc: should we simply use the following? + `arrays |> Array.to_list |> Array.concat` *) + let total_len = ref 0 in + let init = ref None in + for i = 0 to pred (Array.length arrays) do + let array = Array.unsafe_get arrays i in + let len = Array.length array in + total_len := !total_len + len; + if len > 0 then init := Some (Array.unsafe_get array 0) + done; + match !total_len, !init with + | 0, None -> [||] + | 0, Some _ -> fatal_error "broken invariant" + | _, None -> fatal_error "broken invariant" + | _, Some init -> + let dst = Array.make !total_len init in + let dst_pos = ref 0 in + for i = 0 to pred (Array.length arrays) do + let array = Array.unsafe_get arrays i in + let len = Array.length array in + (* CR-soon xclerc for xclerc: use unsafe_blit? *) + ArrayLabels.blit ~src:array ~src_pos:0 ~dst ~dst_pos:!dst_pos ~len; + dst_pos := !dst_pos + len + done; + dst end module String = struct @@ -764,6 +791,13 @@ let rec log2 n = let rec log2_nativeint n = if n <= 1n then 0 else 1 + log2_nativeint (Nativeint.shift_right n 1) +let power ~base n = + let res = ref 1 in + for _ = 1 to n do + res := !res * base + done; + !res + let align n a = if n >= 0 then (n + a - 1) land (-a) else n land (-a) diff --git a/upstream/ocaml_flambda/utils/misc.mli b/upstream/ocaml_flambda/utils/misc.mli index 4da3343cd..97cf17b49 100644 --- a/upstream/ocaml_flambda/utils/misc.mli +++ b/upstream/ocaml_flambda/utils/misc.mli @@ -286,6 +286,9 @@ module Stdlib : sig [f e == e] then [map_sharing f a == a] *) val of_list_map : ('a -> 'b) -> 'a list -> 'b array + + val concat_arrays : 'a array array -> 'a array + (** Concatenate an array of arrays into a single array. *) end (** {2 Extensions to the String module} *) @@ -498,6 +501,9 @@ val log2_nativeint: nativeint -> int [n = Nativeint.shift_left 1n s] *) +val power : base:int -> int -> int +(** [power ~base x] computes [base**x]. *) + val align: int -> int -> int (** [align n a] rounds [n] upwards to a multiple of [a] (a power of 2). *) diff --git a/upstream/ocaml_flambda/utils/numbers.ml b/upstream/ocaml_flambda/utils/numbers.ml index 70ec2b085..88bc8c9f0 100644 --- a/upstream/ocaml_flambda/utils/numbers.ml +++ b/upstream/ocaml_flambda/utils/numbers.ml @@ -216,3 +216,13 @@ module Float = struct let print = Format.pp_print_float end) end + +module Int64 = struct + + let to_int32_exn n = + if Int64.compare n (Int64.of_int32 Int32.min_int) < 0 + || Int64.compare n (Int64.of_int32 Int32.max_int) > 0 + then Misc.fatal_errorf "Integer %Ld is out of the 32-bit range." n; + Int64.to_int32 n + +end diff --git a/upstream/ocaml_flambda/utils/numbers.mli b/upstream/ocaml_flambda/utils/numbers.mli index 159778351..1e2a5ac2e 100644 --- a/upstream/ocaml_flambda/utils/numbers.mli +++ b/upstream/ocaml_flambda/utils/numbers.mli @@ -123,3 +123,9 @@ end module Float : Identifiable.S with type t = float + +module Int64 : sig + + val to_int32_exn: int64 -> int32 + +end \ No newline at end of file diff --git a/upstream/ocaml_flambda/utils/profile_counters_functions.ml b/upstream/ocaml_flambda/utils/profile_counters_functions.ml index e590a2c4c..dd247d1b4 100644 --- a/upstream/ocaml_flambda/utils/profile_counters_functions.ml +++ b/upstream/ocaml_flambda/utils/profile_counters_functions.ml @@ -11,7 +11,7 @@ let count_language_extensions typing_input = | Labeled_tuples -> Language_extension_kernel.to_string lang_ext | Mode | Unique | Polymorphic_parameters | Layouts | SIMD | Small_numbers - | Instances | Overwriting -> + | Instances | Overwriting | Separability -> let error_msg = Format.sprintf "No counters supported for language extension : %s." (Language_extension_kernel.to_string lang_ext) diff --git a/upstream/ocaml_flambda/utils/warnings.ml b/upstream/ocaml_flambda/utils/warnings.ml index 66237c1fe..409aac412 100644 --- a/upstream/ocaml_flambda/utils/warnings.ml +++ b/upstream/ocaml_flambda/utils/warnings.ml @@ -131,6 +131,10 @@ type t = | Unboxing_impossible (* 210 *) | Mod_by_top of string (* 211 *) (* 212 taken *) + | Modal_axis_specified_twice of + { axis : string; + overriden_by : string; + } (* 213 *) (* If you remove a warning, leave a hole in the numbering. NEVER change the numbers of existing warnings. @@ -220,6 +224,7 @@ let number = function | Unchecked_zero_alloc_attribute -> 199 | Unboxing_impossible -> 210 | Mod_by_top _ -> 211 + | Modal_axis_specified_twice _ -> 213 ;; (* DO NOT REMOVE the ;; above: it is used by the testsuite/ests/warnings/mnemonics.mll test to determine where @@ -611,7 +616,10 @@ let name_to_number = (* Must be the max number returned by the [number] function. *) -let letter = function +let parsed_ocamlparam = ref "" + +(* CR-soon xclerc for xclerc: remove the `for_debug` parameter... *) +let letter for_debug = function | 'a' -> let rec loop i = if i = 0 then [] else i :: loop (i - 1) in loop last_warning_number @@ -640,7 +648,9 @@ let letter = function | 'x' -> [14; 15; 16; 17; 18; 19; 20; 21; 22; 23; 24; 30] | 'y' -> [26] | 'z' -> [27] - | _ -> assert false + | chr -> + let ocamlparam_from_env = match Sys.getenv_opt "OCAMLPARAM" with None -> "-" | Some value -> value in + Misc.fatal_errorf "Warnings.letter %C (for_debug=%S, ocamlparam_from_env=%S ocamlparam_from_compenv=%S)" chr for_debug ocamlparam_from_env !parsed_ocamlparam type state = { @@ -899,7 +909,7 @@ let parse_opt error active errflag s = | None -> if c = lc then Clear else Set | Some m -> m in - List.iter (action modifier) (letter lc) + List.iter (action modifier) (letter s lc) | Num(n1,n2,modifier) -> for n = n1 to Misc.Stdlib.Int.min n2 last_warning_number do action modifier n done in @@ -1251,6 +1261,10 @@ let message = function "%s is the top-most modifier.\n\ Modifying by a top element is a no-op." modifier + | Modal_axis_specified_twice {axis; overriden_by} -> + Printf.sprintf + "This %s is overriden by %s later." + axis overriden_by ;; let nerrors = ref 0 @@ -1343,7 +1357,7 @@ let help_warnings () = print_endline " A all warnings"; for i = Char.code 'b' to Char.code 'z' do let c = Char.chr i in - match letter c with + match letter "" c with | [] -> () | [n] -> Printf.printf " %c Alias for warning %i.\n" (Char.uppercase_ascii c) n diff --git a/upstream/ocaml_flambda/utils/warnings.mli b/upstream/ocaml_flambda/utils/warnings.mli index 71d8c676b..f7dcdd255 100644 --- a/upstream/ocaml_flambda/utils/warnings.mli +++ b/upstream/ocaml_flambda/utils/warnings.mli @@ -136,6 +136,10 @@ type t = | Unchecked_zero_alloc_attribute (* 199 *) | Unboxing_impossible (* 210 *) | Mod_by_top of string (* 211 *) + | Modal_axis_specified_twice of { + axis : string; + overriden_by : string; + } (* 213 *) type alert = {kind:string; message:string; def:loc; use:loc} @@ -188,3 +192,5 @@ type description = since : Sys.ocaml_release_info option; } val descriptions : description list + +val parsed_ocamlparam : string ref